diff --git a/.browserslistrc b/.browserslistrc index 80848532e..e6f1183e7 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -2,11 +2,15 @@ # 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 -> 0.5% -last 2 versions +last 2 Chrome versions +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index 3097a3a50..c72c27eba 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -21,6 +21,7 @@ "@angular-eslint/no-empty-lifecycle-method": "warn", "@angular-eslint/component-class-suffix": "warn", "@angular-eslint/no-output-on-prefix": "warn", + "@typescript-eslint/no-inferrable-types": "off", "@angular-eslint/directive-selector": [ "warn", { diff --git a/.prettierignore b/.prettierignore index 6461f1438..25257e586 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,3 +2,5 @@ package.json package-lock.json yarn.lock dist +build +e2e diff --git a/.prettierrc b/.prettierrc index 8d3dfb047..d73829a93 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,8 +1,9 @@ { - "printWidth": 120, - "singleQuote": true, - "useTabs": false, + "printWidth": 100, "tabWidth": 2, - "semi": true, - "bracketSpacing": true + "tabs": false, + "singleQuote": true, + "semicolon": true, + "quoteProps": "preserve", + "bracketSpacing": false } diff --git a/Gruntfile.js b/Gruntfile.js index 559e65b61..d05e0b8b1 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -8,12 +8,10 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-browser-sync'); - grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-coffee'); grunt.loadNpmTasks('grunt-sass'); grunt.loadNpmTasks('grunt-contrib-connect'); - grunt.loadNpmTasks('grunt-conventional-changelog'); grunt.loadNpmTasks('grunt-bump'); grunt.loadNpmTasks('grunt-coffeelint'); grunt.loadNpmTasks('grunt-karma'); @@ -339,21 +337,6 @@ module.exports = function (grunt) { } }, - /** - * Minify the sources! - */ - uglify: { - compile: { - options: { - banner: '<%= meta.banner %>', - mangle: false - }, - files: { - '<%= concat.compile_js.dest %>': '<%= concat.compile_js.dest %>' - } - } - }, - /** * `jshint` defines the rules of our linter as well as which files we * should check. This file, all javascript sources, and all our unit tests @@ -702,7 +685,6 @@ module.exports = function (grunt) { 'copy:compile_assets', 'ngAnnotate', 'concat', - 'uglify', 'index:compile' ]); diff --git a/README.md b/README.md index 9280d9584..39ea3a039 100644 --- a/README.md +++ b/README.md @@ -14,263 +14,218 @@ A modern, lightweight learning management system. SUMMARY: -41 / 209 components migrated +73 / 132 components migrated MIGRATED: -- [x] ./src/app/admin/institution-settings/activity-type-list/activity-type-list.component.ts -- [x] ./src/app/admin/institution-settings/campuses/campus-list/campus-list.component.ts -- [x] ./src/app/admin/institution-settings/institution-settings.component.ts -- [x] ./src/app/admin/institution-settings/overseer-images/overseer-image-list.component.ts -- [x] ./src/app/common/audio-player/audio-player.component.ts -- [x] ./src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.ts -- [x] ./src/app/common/audio-recorder/audio/microphone-tester/microphone-tester.component.ts -- [x] ./src/app/common/header/task-dropdown/task-dropdown.component.ts -- [x] ./src/app/common/header/unit-dropdown/unit-dropdown.component.ts -- [x] ./src/app/common/header/header.component.ts -- [x] ./src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.component.ts -- [x] ./src/app/common/modals/calendar-modal/calendar-modal.component.ts -- [x] ./src/app/common/modals/extension-modal/extension-modal.component.ts -- [x] ./src/app/common/modals/task-assessment-modal/task-assessment-modal.component.ts -- [x] ./src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.ts -- [x] ./src/app/common/pdf-viewer/pdf-viewer.component.ts -- [x] ./src/app/common/status-icon/status-icon.component.ts -- [x] ./src/app/common/user-icon/user-icon.component.ts - [x] ./src/app/home/splash-screen/splash-screen.component.ts - [x] ./src/app/home/states/home/home.component.ts -- [x] ./src/app/projects/states/dashboard/directives/student-task-list/create-portfolio-task-list-item/create-portfolio-task-list-item.component.ts -- [x] ./src/app/projects/states/dashboard/directives/student-task-list/task-list-item/task-list-item.component.ts -- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-description-card/task-description-card.component.ts -- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-plagiarism-card/task-plagiarism-card.component.ts -- [x] ./src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.ts -- [x] ./src/app/tasks/task-comment-composer/task-comment-composer.component.ts -- [x] ./src/app/tasks/task-comments-viewer/comment-bubble-action/comment-bubble-action.component.ts +- [x] ./src/app/tasks/task-submission-history/task-submission-history.component.ts +- [x] ./src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.ts - [x] ./src/app/tasks/task-comments-viewer/extension-comment/extension-comment.component.ts - [x] ./src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-player.component.ts - [x] ./src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-recorder/intelligent-discussion-recorder.component.ts - [x] ./src/app/tasks/task-comments-viewer/pdf-image-comment/pdf-image-comment.component.ts -- [x] ./src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.ts +- [x] ./src/app/tasks/task-comments-viewer/comment-bubble-action/comment-bubble-action.component.ts - [x] ./src/app/tasks/task-comments-viewer/task-comments-viewer.component.ts -- [x] ./src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.ts -- [x] ./src/app/tasks/task-submission-history/task-submission-history.component.ts -- [x] ./src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.ts +- [x] ./src/app/tasks/task-comment-composer/task-comment-composer.component.ts +- [x] ./src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.ts +- [x] ./src/app/projects/states/dashboard/directives/student-task-list/create-portfolio-task-list-item/create-portfolio-task-list-item.component.ts +- [x] ./src/app/projects/states/dashboard/directives/student-task-list/task-list-item/task-list-item.component.ts +- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-assessment-card/task-assessment-card.component.ts +- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-similarity-view/task-similarity-view.component.ts +- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-submission-card/task-submission-card.component.ts +- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-due-card/task-due-card.component.ts +- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-description-card/task-description-card.component.ts +- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-status-card/task-status-card.component.ts +- [x] ./src/app/projects/states/dashboard/directives/task-dashboard/task-dashboard.component.ts +- [x] ./src/app/admin/institution-settings/overseer-images/overseer-image-list.component.ts +- [x] ./src/app/admin/institution-settings/institution-settings.component.ts +- [x] ./src/app/admin/institution-settings/campuses/campus-list/campus-list.component.ts +- [x] ./src/app/admin/institution-settings/activity-type-list/activity-type-list.component.ts +- [x] ./src/app/admin/tii-action-log/tii-action-log.component.ts +- [x] ./src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts +- [x] ./src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.ts +- [x] ./src/app/eula/accept-eula/accept-eula.component.ts +- [x] ./src/app/welcome/welcome.component.ts +- [x] ./src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.ts +- [x] ./src/app/units/states/tasks/inbox/inbox.component.ts - [x] ./src/app/units/states/edit/directives/unit-students-editor/student-tutorial-select/student-tutorial-select.component.ts - [x] ./src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.ts -- [x] ./src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.ts +- [x] ./src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.ts - [x] ./src/app/units/states/edit/directives/unit-tutorials-manager/unit-tutorials-manager.component.ts -- [x] ./src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.ts +- [x] ./src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.ts +- [x] ./src/app/units/states/analytics/unit-analytics-route.component.ts +- [x] ./src/app/common/footer/footer.component.ts +- [x] ./src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.ts +- [x] ./src/app/common/audio-recorder/audio/microphone-tester/microphone-tester.component.ts +- [x] ./src/app/common/audio-player/audio-player.component.ts +- [x] ./src/app/common/edit-profile-form/edit-profile-form.component.ts +- [x] ./src/app/common/file-drop/file-drop.component.ts +- [x] ./src/app/common/modals/extension-modal/extension-modal.component.ts +- [x] ./src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.component.ts +- [x] ./src/app/common/modals/calendar-modal/calendar-modal.component.ts +- [x] ./src/app/common/modals/task-assessment-modal/task-assessment-modal.component.ts +- [x] ./src/app/common/pdf-viewer/pdf-viewer.component.ts +- [x] ./src/app/common/obect-select/object-select.component.ts +- [x] ./src/app/common/hero-sidebar/hero-sidebar.component.ts +- [x] ./src/app/common/project-progress-bar/project-progress-bar.component.ts +- [x] ./src/app/common/f-chip/f-chip.component.ts +- [x] ./src/app/common/status-icon/status-icon.component.ts +- [x] ./src/app/common/user-badge/user-badge.component.ts +- [x] ./src/app/common/file-viewer/file-viewer.component.ts +- [x] ./src/app/common/user-icon/user-icon.component.ts +- [x] ./src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.ts +- [x] ./src/app/common/header/header.component.ts +- [x] ./src/app/common/header/task-dropdown/task-dropdown.component.ts +- [x] ./src/app/common/header/unit-dropdown/unit-dropdown.component.ts +- [x] ./src/app/common/services/alert.service.ts +- [x] ./src/app/sessions/states/sign-in/sign-in.component.ts +- [x] ./src/app/account/edit-profile/edit-profile.component.ts TODO: -- [ ] ./src/app/admin/admin.coffee -- [ ] ./src/app/admin/modals/create-break-modal/create-break-modal.coffee -- [ ] ./src/app/admin/modals/create-unit-modal/create-unit-modal.coffee -- [ ] ./src/app/admin/modals/modals.coffee -- [ ] ./src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.coffee -- [ ] ./src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.coffee -- [ ] ./src/app/admin/modals/user-notification-settings-modal/user-notification-settings-modal.coffee -- [ ] ./src/app/admin/modals/user-settings-modal/user-settings-modal.coffee -- [ ] ./src/app/admin/states/states.coffee -- [ ] ./src/app/admin/states/teaching-periods/teaching-period-edit/directives/directives.coffee -- [ ] ./src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.coffee -- [ ] ./src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.coffee -- [ ] ./src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.coffee -- [ ] ./src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.coffee -- [ ] ./src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.coffee -- [ ] ./src/app/admin/states/units/units.coffee -- [ ] ./src/app/admin/states/users/users.coffee -- [ ] ./src/app/api/api.coffee -- [ ] ./src/app/api/models/break.coffee -- [ ] ./src/app/api/models/convenor.coffee -- [ ] ./src/app/api/models/group-member.coffee -- [ ] ./src/app/api/models/group-set.coffee -- [ ] ./src/app/api/models/group.coffee -- [ ] ./src/app/api/models/intended-learning-outcome.coffee -- [ ] ./src/app/api/models/learning-alignments.coffee -- [ ] ./src/app/api/models/models.coffee -- [ ] ./src/app/api/models/portfolion-submission.coffee -- [ ] ./src/app/api/models/project.coffee -- [ ] ./src/app/api/models/rollover-unit.coffee -- [ ] ./src/app/api/models/students.coffee -- [ ] ./src/app/api/models/task-alignment.coffee -- [ ] ./src/app/api/models/task-comment.coffee -- [ ] ./src/app/api/models/task-completion-csv.coffee -- [ ] ./src/app/api/models/task-definition.coffee -- [ ] ./src/app/api/models/task-feedback.coffee -- [ ] ./src/app/api/models/task-similarity.coffee -- [ ] ./src/app/api/models/task.coffee -- [ ] ./src/app/api/models/teaching-period.coffee -- [ ] ./src/app/api/models/tutor.coffee -- [ ] ./src/app/api/models/tutorial.coffee -- [ ] ./src/app/api/models/unit-role.coffee -- [ ] ./src/app/api/models/unit.coffee -- [ ] ./src/app/api/models/user-role.coffee -- [ ] ./src/app/api/models/user.coffee -- [ ] ./src/app/api/resource-plus.coffee -- [ ] ./src/app/common/alert-list/alert-list.coffee -- [ ] ./src/app/common/common.coffee -- [ ] ./src/app/common/content-editable/content-editable.coffee -- [ ] ./src/app/common/file-uploader/file-uploader.coffee -- [ ] ./src/app/common/filters/filters.coffee -- [ ] ./src/app/common/grade-icon/grade-icon.coffee -- [ ] ./src/app/common/header/header.coffee -- [ ] ./src/app/common/long-press/on-long-press.coffee -- [ ] ./src/app/common/modals/comments-modal/comments-modal.coffee -- [ ] ./src/app/common/modals/confirmation-modal/confirmation-modal.coffee -- [ ] ./src/app/common/modals/csv-result-modal/csv-result-modal.coffee -- [ ] ./src/app/common/modals/modals.coffee -- [ ] ./src/app/common/modals/progress-modal/progress-modal.coffee -- [ ] ./src/app/common/services/alert-service.coffee -- [ ] ./src/app/common/services/analytics-service.coffee -- [ ] ./src/app/common/services/date-service.coffee -- [ ] ./src/app/common/services/grade-service.coffee -- [ ] ./src/app/common/services/group-service.coffee -- [ ] ./src/app/common/services/header-service.coffee -- [ ] ./src/app/common/services/listener-service.coffee -- [ ] ./src/app/common/services/media-service.coffee -- [ ] ./src/app/common/services/outcome-service.coffee -- [ ] ./src/app/common/services/recorder-service.coffee -- [ ] ./src/app/common/services/services.coffee -- [ ] ./src/app/common/services/task-service.coffee -- [ ] ./src/app/common/services/unit-service.coffee -- [ ] ./src/app/common/services/project-service.coffee -- [ ] ./src/app/config/analytics/analytics.coffee -- [ ] ./src/app/config/config.coffee -- [ ] ./src/app/config/debug/debug.coffee -- [ ] ./src/app/config/local-storage/local-storage.coffee +- [ ] ./src/app/visualisations/alignment-bar-chart.coffee +- [ ] ./src/app/visualisations/summary-task-status-scatter.coffee +- [ ] ./src/app/visualisations/target-grade-pie-chart.coffee +- [ ] ./src/app/visualisations/achievement-custom-bar-chart.coffee +- [ ] ./src/app/visualisations/student-task-status-pie-chart.coffee +- [ ] ./src/app/visualisations/alignment-bullet-chart.coffee +- [ ] ./src/app/visualisations/progress-burndown-chart.coffee +- [ ] ./src/app/visualisations/task-status-pie-chart.coffee +- [ ] ./src/app/visualisations/achievement-box-plot.coffee +- [ ] ./src/app/visualisations/task-completion-box-plot.coffee +- [ ] ./src/app/visualisations/visualisations.coffee +- [ ] ./src/app/tasks/task-status-selector/task-status-selector.coffee +- [ ] ./src/app/tasks/tasks.coffee +- [ ] ./src/app/tasks/modals/modals.coffee +- [ ] ./src/app/tasks/modals/upload-submission-modal/upload-submission-modal.coffee +- [ ] ./src/app/tasks/modals/grade-task-modal/grade-task-modal.coffee +- [ ] ./src/app/tasks/task-definition-selector/task-definition-selector.coffee +- [ ] ./src/app/tasks/project-tasks-list/project-tasks-list.coffee +- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-rater/task-ilo-alignment-rater.coffee +- [ ] ./src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment-modal/task-ilo-alignment-modal.coffee +- [ ] ./src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment.coffee +- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-editor/task-ilo-alignment-editor.coffee +- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment.coffee +- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-viewer/task-ilo-alignment-viewer.coffee - [ ] ./src/app/config/privacy-policy/privacy-policy.coffee +- [ ] ./src/app/config/config.coffee +- [ ] ./src/app/config/runtime/runtime.coffee - [ ] ./src/app/config/root-controller/root-controller.coffee +- [ ] ./src/app/config/local-storage/local-storage.coffee - [ ] ./src/app/config/routing/routing.coffee -- [ ] ./src/app/config/runtime/runtime.coffee - [ ] ./src/app/config/vendor-dependencies/vendor-dependencies.coffee -- [ ] ./src/app/errors/errors.coffee -- [ ] ./src/app/errors/states/not-found/not-found.coffee -- [ ] ./src/app/errors/states/states.coffee -- [ ] ./src/app/errors/states/timeout/timeout.coffee -- [ ] ./src/app/errors/states/unauthorised/unauthorised.coffee -- [ ] ./src/app/groups/group-member-contribution-assigner/group-member-contribution-assigner.coffee -- [ ] ./src/app/groups/group-member-list/group-member-list.coffee -- [ ] ./src/app/groups/group-selector/group-selector.coffee -- [ ] ./src/app/groups/group-set-manager/group-set-manager.coffee -- [ ] ./src/app/groups/group-set-selector/group-set-selector.coffee -- [ ] ./src/app/groups/groups.coffee -- [ ] ./src/app/groups/student-group-manager/student-group-manager.coffee -- [ ] ./src/app/groups/tutor-group-manager/tutor-group-manager.coffee -- [ ] ./src/app/projects/project-outcome-alignment/project-outcome-alignment.coffee -- [ ] ./src/app/projects/project-progress-dashboard/project-progress-dashboard.coffee +- [ ] ./src/app/config/analytics/analytics.coffee +- [ ] ./src/app/config/debug/debug.coffee - [ ] ./src/app/projects/projects.coffee -- [ ] ./src/app/projects/states/all/all.coffee -- [ ] ./src/app/projects/states/all/directives/all-projects-list/all-projects-list.coffee +- [ ] ./src/app/projects/project-progress-dashboard/project-progress-dashboard.coffee +- [ ] ./src/app/projects/states/states.coffee - [ ] ./src/app/projects/states/all/directives/directives.coffee -- [ ] ./src/app/projects/states/dashboard/dashboard.coffee +- [ ] ./src/app/projects/states/all/directives/all-projects-list/all-projects-list.coffee +- [ ] ./src/app/projects/states/all/all.coffee +- [ ] ./src/app/projects/states/groups/groups.coffee +- [ ] ./src/app/projects/states/feedback/feedback.coffee - [ ] ./src/app/projects/states/dashboard/directives/directives.coffee - [ ] ./src/app/projects/states/dashboard/directives/progress-dashboard/progress-dashboard.coffee - [ ] ./src/app/projects/states/dashboard/directives/student-task-list/student-task-list.coffee - [ ] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/directives.coffee -- [ ] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-assessment-card/task-assessment-card.coffee -- [ ] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-due-card/task-due-card.coffee - [ ] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-outcomes-card/task-outcomes-card.coffee -- [ ] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-status-card/task-status-card.coffee -- [ ] ./src/app/projects/states/dashboard/directives/task-dashboard/directives/task-submission-card/task-submission-card.coffee - [ ] ./src/app/projects/states/dashboard/directives/task-dashboard/task-dashboard.coffee -- [ ] ./src/app/projects/states/feedback/feedback.coffee -- [ ] ./src/app/projects/states/groups/groups.coffee -- [ ] ./src/app/projects/states/index/index.coffee +- [ ] ./src/app/projects/states/dashboard/dashboard.coffee - [ ] ./src/app/projects/states/outcomes/outcomes.coffee +- [ ] ./src/app/projects/states/portfolio/directives/portfolio-review-step/portfolio-review-step.coffee - [ ] ./src/app/projects/states/portfolio/directives/directives.coffee +- [ ] ./src/app/projects/states/portfolio/directives/portfolio-learning-summary-report-step/portfolio-learning-summary-report-step.coffee - [ ] ./src/app/projects/states/portfolio/directives/portfolio-add-extra-files-step/portfolio-add-extra-files-step.coffee - [ ] ./src/app/projects/states/portfolio/directives/portfolio-grade-select-step/portfolio-grade-select-step.coffee -- [ ] ./src/app/projects/states/portfolio/directives/portfolio-learning-summary-report-step/portfolio-learning-summary-report-step.coffee -- [ ] ./src/app/projects/states/portfolio/directives/portfolio-review-step/portfolio-review-step.coffee -- [ ] ./src/app/projects/states/portfolio/directives/portfolio-tasks-step/portfolio-tasks-step.coffee - [ ] ./src/app/projects/states/portfolio/directives/portfolio-welcome-step/portfolio-welcome-step.coffee +- [ ] ./src/app/projects/states/portfolio/directives/portfolio-tasks-step/portfolio-tasks-step.coffee - [ ] ./src/app/projects/states/portfolio/portfolio.coffee -- [ ] ./src/app/projects/states/states.coffee +- [ ] ./src/app/projects/states/index/index.coffee - [ ] ./src/app/projects/states/tutorials/tutorials.coffee -- [ ] ./src/app/sessions/auth/auth.coffee -- [ ] ./src/app/sessions/auth/http-auth-injector.coffee -- [ ] ./src/app/sessions/auth/roles/if-role.coffee -- [ ] ./src/app/sessions/auth/roles/roles.coffee -- [ ] ./src/app/sessions/cookies/cookies.coffee -- [ ] ./src/app/sessions/current-user/current-user.coffee -- [ ] ./src/app/sessions/sessions.coffee -- [ ] ./src/app/sessions/states/sign-in/sign-in.coffee -- [ ] ./src/app/sessions/states/sign-out/sign-out.coffee -- [ ] ./src/app/sessions/states/states.coffee -- [ ] ./src/app/tasks/modals/grade-task-modal/grade-task-modal.coffee -- [ ] ./src/app/tasks/modals/modals.coffee -- [ ] ./src/app/tasks/modals/plagiarism-report-modal/plagiarism-report-modal.coffee -- [ ] ./src/app/tasks/modals/upload-submission-modal/upload-submission-modal.coffee -- [ ] ./src/app/tasks/project-tasks-list/project-tasks-list.coffee -- [ ] ./src/app/tasks/task-definition-editor/task-definition-editor.coffee -- [ ] ./src/app/tasks/task-definition-selector/task-definition-selector.coffee -- [ ] ./src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment-modal/task-ilo-alignment-modal.coffee -- [ ] ./src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment.coffee -- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-editor/task-ilo-alignment-editor.coffee -- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-rater/task-ilo-alignment-rater.coffee -- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment-viewer/task-ilo-alignment-viewer.coffee -- [ ] ./src/app/tasks/task-ilo-alignment/task-ilo-alignment.coffee -- [ ] ./src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.coffee -- [ ] ./src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.coffee -- [ ] ./src/app/tasks/task-status-selector/task-status-selector.coffee -- [ ] ./src/app/tasks/task-submission-viewer/task-submission-viewer.coffee -- [ ] ./src/app/tasks/tasks.coffee +- [ ] ./src/app/projects/project-outcome-alignment/project-outcome-alignment.coffee +- [ ] ./src/app/admin/modals/modals.coffee +- [ ] ./src/app/admin/modals/create-unit-modal/create-unit-modal.coffee +- [ ] ./src/app/admin/states/states.coffee +- [ ] ./src/app/admin/states/units/units.coffee +- [ ] ./src/app/admin/states/users/users.coffee +- [ ] ./src/app/admin/admin.coffee +- [ ] ./src/app/groups/group-selector/group-selector.coffee +- [ ] ./src/app/groups/group-set-manager/group-set-manager.coffee +- [ ] ./src/app/groups/group-member-contribution-assigner/group-member-contribution-assigner.coffee +- [ ] ./src/app/groups/group-member-list/group-member-list.coffee +- [ ] ./src/app/groups/group-set-selector/group-set-selector.coffee +- [ ] ./src/app/groups/tutor-group-manager/tutor-group-manager.coffee +- [ ] ./src/app/groups/groups.coffee +- [ ] ./src/app/units/modals/unit-student-enrolment-modal/unit-student-enrolment-modal.coffee - [ ] ./src/app/units/modals/modals.coffee - [ ] ./src/app/units/modals/unit-ilo-edit-modal/unit-ilo-edit-modal.coffee -- [ ] ./src/app/units/modals/unit-student-enrolment-modal/unit-student-enrolment-modal.coffee -- [ ] ./src/app/units/states/all/all.coffee +- [ ] ./src/app/units/units.coffee +- [ ] ./src/app/units/states/states.coffee +- [ ] ./src/app/units/states/tasks/inbox/inbox.coffee +- [ ] ./src/app/units/states/tasks/tasks.coffee +- [ ] ./src/app/units/states/tasks/viewer/directives/directives.coffee +- [ ] ./src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.coffee +- [ ] ./src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.coffee +- [ ] ./src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.coffee +- [ ] ./src/app/units/states/tasks/viewer/viewer.coffee +- [ ] ./src/app/units/states/tasks/definition/definition.coffee +- [ ] ./src/app/units/states/portfolios/portfolios.coffee - [ ] ./src/app/units/states/all/directives/all-units-list/all-units-list.coffee - [ ] ./src/app/units/states/all/directives/directives.coffee -- [ ] ./src/app/units/states/analytics/analytics.coffee -- [ ] ./src/app/units/states/analytics/directives/directives.coffee -- [ ] ./src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.coffee -- [ ] ./src/app/units/states/analytics/directives/task-status-stats/task-status-stats.coffee -- [ ] ./src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.coffee -- [ ] ./src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.coffee -- [ ] ./src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.coffee +- [ ] ./src/app/units/states/all/all.coffee +- [ ] ./src/app/units/states/groups/groups.coffee - [ ] ./src/app/units/states/edit/directives/directives.coffee -- [ ] ./src/app/units/states/edit/directives/unit-details-editor/unit-details-editor.coffee - [ ] ./src/app/units/states/edit/directives/unit-group-set-editor/unit-group-set-editor.coffee -- [ ] ./src/app/units/states/edit/directives/unit-ilo-editor/unit-ilo-editor.coffee +- [ ] ./src/app/units/states/edit/directives/unit-details-editor/unit-details-editor.coffee - [ ] ./src/app/units/states/edit/directives/unit-staff-editor/unit-staff-editor.coffee -- [ ] ./src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.coffee +- [ ] ./src/app/units/states/edit/directives/unit-ilo-editor/unit-ilo-editor.coffee - [ ] ./src/app/units/states/edit/edit.coffee -- [ ] ./src/app/units/states/groups/groups.coffee -- [ ] ./src/app/units/states/index/index.coffee -- [ ] ./src/app/units/states/plagiarism/directives/directives.coffee -- [ ] ./src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.coffee -- [ ] ./src/app/units/states/plagiarism/plagiarism.coffee -- [ ] ./src/app/units/states/portfolios/portfolios.coffee - [ ] ./src/app/units/states/rollover/directives/directives.coffee - [ ] ./src/app/units/states/rollover/directives/unit-dates-selector/unit-dates-selector.coffee - [ ] ./src/app/units/states/rollover/rollover.coffee -- [ ] ./src/app/units/states/states.coffee +- [ ] ./src/app/units/states/index/index.coffee - [ ] ./src/app/units/states/students-list/students-list.coffee -- [ ] ./src/app/units/states/tasks/definition/definition.coffee -- [ ] ./src/app/units/states/tasks/inbox/directives/directives.coffee -- [ ] ./src/app/units/states/tasks/inbox/inbox.coffee -- [ ] ./src/app/units/states/tasks/offline/offline.coffee -- [ ] ./src/app/units/states/tasks/tasks.coffee -- [ ] ./src/app/units/states/tasks/viewer/directives/directives.coffee -- [ ] ./src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.coffee -- [ ] ./src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.coffee -- [ ] ./src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.coffee -- [ ] ./src/app/units/states/tasks/viewer/viewer.coffee -- [ ] ./src/app/units/units.coffee -- [ ] ./src/app/visualisations/achievement-box-plot.coffee -- [ ] ./src/app/visualisations/achievement-custom-bar-chart.coffee -- [ ] ./src/app/visualisations/alignment-bar-chart.coffee -- [ ] ./src/app/visualisations/alignment-bullet-chart.coffee -- [ ] ./src/app/visualisations/progress-burndown-chart.coffee -- [ ] ./src/app/visualisations/student-task-status-pie-chart.coffee -- [ ] ./src/app/visualisations/summary-task-status-scatter.coffee -- [ ] ./src/app/visualisations/target-grade-pie-chart.coffee -- [ ] ./src/app/visualisations/task-completion-box-plot.coffee -- [ ] ./src/app/visualisations/task-status-pie-chart.coffee -- [ ] ./src/app/visualisations/visualisations.coffee -- [ ] ./src/app/welcome/states/states.coffee -- [ ] ./src/app/welcome/states/welcome/welcome.coffee -- [ ] ./src/app/welcome/welcome.coffee +- [ ] ./src/app/units/states/analytics/analytics.coffee +- [ ] ./src/app/common/filters/filters.coffee +- [ ] ./src/app/common/content-editable/content-editable.coffee +- [ ] ./src/app/common/alert-list/alert-list.coffee +- [ ] ./src/app/common/modals/confirmation-modal/confirmation-modal.coffee +- [ ] ./src/app/common/modals/comments-modal/comments-modal.coffee +- [ ] ./src/app/common/modals/modals.coffee +- [ ] ./src/app/common/modals/csv-result-modal/csv-result-modal.coffee +- [ ] ./src/app/common/modals/progress-modal/progress-modal.coffee +- [ ] ./src/app/common/grade-icon/grade-icon.coffee +- [ ] ./src/app/common/file-uploader/file-uploader.coffee +- [ ] ./src/app/common/common.coffee +- [ ] ./src/app/common/services/grade-service.coffee +- [ ] ./src/app/common/services/date-service.coffee +- [ ] ./src/app/common/services/alert-service.coffee +- [ ] ./src/app/common/services/media-service.coffee +- [ ] ./src/app/common/services/recorder-service.coffee +- [ ] ./src/app/common/services/outcome-service.coffee +- [ ] ./src/app/common/services/listener-service.coffee +- [ ] ./src/app/common/services/analytics-service.coffee +- [ ] ./src/app/common/services/services.coffee +- [ ] ./src/app/sessions/auth/http-auth-injector.coffee +- [ ] ./src/app/sessions/auth/roles/roles.coffee +- [ ] ./src/app/sessions/auth/roles/if-role.coffee +- [ ] ./src/app/sessions/sessions.coffee +- [ ] ./src/app/errors/errors.coffee +- [ ] ./src/app/errors/states/states.coffee +- [ ] ./src/app/errors/states/unauthorised/unauthorised.coffee +- [ ] ./src/app/errors/states/not-found/not-found.coffee +- [ ] ./src/app/errors/states/timeout/timeout.coffee ## Table of Contents diff --git a/angular.json b/angular.json index 745d058b3..2d54b447a 100644 --- a/angular.json +++ b/angular.json @@ -15,12 +15,12 @@ }, "architect": { "build": { - "builder": "@angular-devkit/build-angular:browser", + "builder": "@angular-devkit/build-angular:application", "options": { "outputPath": "dist", "index": "build/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", + "browser": "src/main.ts", + "polyfills": ["src/polyfills.ts"], "tsConfig": "src/tsconfig.app.json", "assets": [ "src/assets", @@ -28,6 +28,7 @@ ], "styles": [ "src/theme.scss", + "src/styles.scss", "./node_modules/bootstrap/dist/css/bootstrap.css", "./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css", "./build/assets/doubtfire.css", @@ -47,14 +48,12 @@ "node_modules/codemirror/lib/codemirror.js", "node_modules/codemirror/addon/display/placeholder.js", "node_modules/codemirror/mode/markdown/markdown.js", - "node_modules/showdown/dist/showdown.js" + "node_modules/showdown/dist/showdown.js", + "node_modules/canvas-confetti/dist/confetti.browser.js" ], - "vendorChunk": true, "extractLicenses": false, - "buildOptimizer": false, "sourceMap": true, - "optimization": false, - "namedChunks": true + "optimization": false }, "configurations": { "production": { @@ -77,38 +76,31 @@ "optimization": true, "outputHashing": "bundles", "sourceMap": false, - "namedChunks": false, "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "serviceWorker": true, - "ngswConfigPath": "ngsw-config.json" + "serviceWorker": "ngsw-config.json" }, "development": { - "buildOptimizer": false, "optimization": false, - "vendorChunk": true, "extractLicenses": false, - "sourceMap": true, - "namedChunks": true + "sourceMap": true } } }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { - "browserTarget": "doubtfire:build" + "buildTarget": "doubtfire:build" }, "configurations": { "production": { - "browserTarget": "doubtfire:build:production" + "buildTarget": "doubtfire:build:production" } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { - "browserTarget": "doubtfire:build" + "buildTarget": "doubtfire:build" } }, "test": { diff --git a/migration_progress.sh b/migration_progress.sh index 1314d3d79..da81aabd4 100755 --- a/migration_progress.sh +++ b/migration_progress.sh @@ -1,3 +1,5 @@ +#!/bin/zsh + function count_to_migrate() { grep -Ril --include \*.coffee "angular.module" ./src/app | sed 's/^/- [ ] /'; } function count_migrated() { grep -Ril --include \*.ts "@Component" ./src/app | sed 's/^/- [x] /';} function print_progress() { echo $1 / $2 components migrated; } diff --git a/package-lock.json b/package-lock.json index 9a214ce42..87e462bb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,30 +9,30 @@ "version": "7.0.15", "license": "AGPL-3.0", "dependencies": { - "@angular/animations": "^15.2.8", - "@angular/cdk": "^15.2.1", - "@angular/cli": "^15.2.7", - "@angular/common": "^15.2.8", - "@angular/compiler": "^15.2.8", - "@angular/core": "^15.2.8", + "@angular/animations": "^17.0.1", + "@angular/cdk": "^17.0.0", + "@angular/cli": "^17.0.0", + "@angular/common": "^17.0.1", + "@angular/compiler": "^17.0.1", + "@angular/core": "^17.0.1", "@angular/flex-layout": "^15.0.0-beta.42", - "@angular/forms": "^15.2.8", - "@angular/material": "^15.2.1", - "@angular/material-moment-adapter": "^15.2.1", - "@angular/platform-browser": "^15.2.8", - "@angular/platform-browser-dynamic": "^15.2.8", - "@angular/router": "^15.2.8", - "@angular/service-worker": "^15.2.8", - "@angular/upgrade": "^15.2.8", - "@ctrl/ngx-emoji-mart": "^7.0.0", - "@uirouter/angular": "^11.1.0", - "@uirouter/angular-hybrid": "^15.0.2", + "@angular/forms": "^17.0.1", + "@angular/material": "^17.0.0", + "@angular/material-moment-adapter": "^17.0.0", + "@angular/platform-browser": "^17.0.1", + "@angular/platform-browser-dynamic": "^17.0.1", + "@angular/router": "^17.0.1", + "@angular/service-worker": "^17.0.1", + "@angular/upgrade": "^17.0.1", + "@ctrl/ngx-emoji-mart": "^9.2.0", + "@uirouter/angular": "^12.0", + "@uirouter/angular-hybrid": "^16.0", "@uirouter/angularjs": "^1.0.30", - "@uirouter/core": "^6.0.8", + "@uirouter/core": "^6.1.0", "@uirouter/rx": "^1.0.0", "angular": "1.5.11", "angular-cookies": "1.5.11", - "angular-file-upload": "1.1.1", + "angular-file-upload": "~1", "angular-filter": "0.5.17", "angular-local-storage": "0.7.1", "angular-markdown-filter": "1.3.2", @@ -46,8 +46,9 @@ "angular-xeditable": "0.9.0", "angulartics": "~1.0.3", "angulartics-google-analytics": "0.1.4", - "bootstrap": "3.4.1", - "bootstrap-sass": "3.3.7", + "bootstrap": "~3.4", + "bootstrap-sass": "~3.4", + "canvas-confetti": "^1.6.0", "codemirror": "5.65.0", "core-js": "^3.21.1", "d3": "3.5.17", @@ -55,15 +56,15 @@ "file-saver": "^2.0.5", "font-awesome": "~4.7.0", "jquery": "2.1.4", - "lodash": "^4.17.11", - "lottie-web": "^5.11.0", + "lodash": "~4.17", + "lottie-web": "^5", "marked": "^4.0.10", "moment": "^2.29.1", "ng-csv": "0.2.3", "ng-file-upload": "~5.0.9", - "ng2-pdf-viewer": "^9.1.3", + "ng2-pdf-viewer": "^9.1.5", "ngx-bootstrap": "^6.1.0", - "ngx-entity-service": "^0.0.35", + "ngx-entity-service": "^0.0.37", "ngx-lottie": "^10.0.0", "nvd3": "1.8.6", "rxjs": "~7.4.0", @@ -71,39 +72,39 @@ "ts-md5": "^1.2.7", "tslib": "^2.3.1", "underscore.string": "2.3.3", - "zone.js": "~0.11.4" + "zone.js": "~0.14" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.2.7", - "@angular-eslint/builder": "^15.2.1", - "@angular-eslint/eslint-plugin": "15.2.1", - "@angular-eslint/eslint-plugin-template": "15.2.1", - "@angular-eslint/schematics": "^15.2.1", - "@angular-eslint/template-parser": "15.2.1", - "@angular/compiler-cli": "^15.2.8", - "@angular/language-service": "^15.2.8", + "@angular-devkit/build-angular": "^17.0.0", + "@angular-eslint/builder": "^17.0.0", + "@angular-eslint/eslint-plugin": "^17.0.0", + "@angular-eslint/eslint-plugin-template": "^17.0.0", + "@angular-eslint/schematics": "^17.0.0", + "@angular-eslint/template-parser": "^17.0.0", + "@angular/compiler-cli": "^17.0.1", + "@angular/language-service": "^17.0.1", "@commitlint/cli": "^16.0.1", - "@commitlint/config-conventional": "^16.0.0", + "@commitlint/config-conventional": "^17", "@types/angular": "1.5.11", + "@types/canvas-confetti": "^1.6.0", "@types/d3": "^3.5.17", "@types/file-saver": "^2.0.1", "@types/jasmine": "~3.9.1", "@types/jasminewd2": "~2.0.3", "@types/lodash": "^4.14.115", "@types/node": "^18.0", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.43.0", - "autoprefixer": "^6.3.3", + "@typescript-eslint/eslint-plugin": "^6.10.0", + "@typescript-eslint/parser": "^6.10.0", + "autoprefixer": "~6", "canonical-path": "0.0.2", "concurrently": "^3.2.0", - "eslint": "^8.28.0", + "eslint": "^8.53.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsdoc": "39.3.6", "eslint-plugin-prefer-arrow": "1.2.3", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.0.1", "grunt": "^1.0.4", - "grunt-browser-sync": "^2.2.0", "grunt-bump": "0.8.0", "grunt-coffeelint": "0.0.16", "grunt-contrib-clean": "~1.0.0", @@ -112,19 +113,17 @@ "grunt-contrib-connect": "^1.0.2", "grunt-contrib-copy": "~1.0.0", "grunt-contrib-jshint": "~1.0.0", - "grunt-contrib-uglify": "~2.0.0", "grunt-contrib-watch": "^1.1.0", - "grunt-conventional-changelog": "~6.1.0", "grunt-env": "0.4.4", "grunt-html2js": "^0.6.0", "grunt-karma": "~2.0.0", "grunt-newer": "^1.1.2", "grunt-ng-annotate": "^3.0.0", - "grunt-postcss": "^0.8.0", + "grunt-postcss": "~0.8", "grunt-preprocess": "5.1.0", "grunt-sass": "^3.0.2", "grunt-sass-globbing": "^1.4.0", - "husky": "^7.0.4", + "husky": "~8", "ip": "^1.1.2", "jasmine-core": "~4.1.0", "jasmine-spec-reporter": "~5.0.0", @@ -135,26 +134,47 @@ "karma-jasmine-html-reporter": "^1.5.0", "load-grunt-tasks": "^5.0.0", "npm-run-all": "^4.1.5", - "postcss": "^8.3.4", + "postcss": "^8.4.27", "postcss-scss": "^0.1.7", - "prettier": "^2.7.1", - "pretty-quick": "^3.0.2", + "prettier": "^3.1.0", "protractor": "~7.0.0", "sass": "^1.48.0", - "ts-node": "~10.9.0", - "typescript": "~4.8", + "tailwindcss": "~3.3", + "ts-node": "~10.9", + "typescript": "~5.2", "underscore": "^1.8.3" }, "engines": { "node": ">=18" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -162,116 +182,119 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1502.7", - "license": "MIT", + "version": "0.1700.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.0.tgz", + "integrity": "sha512-whi7HvOjv1J3He9f+H8xNJWKyjAmWuWNl8gxNW6EZP/XLcrOu+/5QT4bPtXQBRIL/avZuc++5sNQS+kReaNCig==", "dependencies": { - "@angular-devkit/core": "15.2.7", - "rxjs": "6.6.7" + "@angular-devkit/core": "17.0.0", + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^18.13.0 || >=20.9.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "6.6.7", - "license": "Apache-2.0", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" + "tslib": "^2.1.0" } }, - "node_modules/@angular-devkit/architect/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, "node_modules/@angular-devkit/build-angular": { - "version": "15.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1502.7", - "@angular-devkit/build-webpack": "0.1502.7", - "@angular-devkit/core": "15.2.7", - "@babel/core": "7.20.12", - "@babel/generator": "7.20.14", - "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/helper-split-export-declaration": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.19.6", - "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.13", - "@babel/template": "7.20.7", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.0.tgz", + "integrity": "sha512-hkV8k4moAnUquac2Dz5XPd5izDDgEF82NeUkSwizcTaqlJqYOdmWASMsXyVBzdrTmDtFKQiphfA96i7eo5MlvA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1700.0", + "@angular-devkit/build-webpack": "0.1700.0", + "@angular-devkit/core": "17.0.0", + "@babel/core": "7.23.2", + "@babel/generator": "7.23.0", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.2", + "@babel/plugin-transform-async-to-generator": "7.22.5", + "@babel/plugin-transform-runtime": "7.23.2", + "@babel/preset-env": "7.23.2", + "@babel/runtime": "7.23.2", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.2.7", + "@ngtools/webpack": "17.0.0", + "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.13", - "babel-loader": "9.1.2", + "autoprefixer": "10.4.16", + "babel-loader": "9.1.3", "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.5", - "cacache": "17.0.4", + "browser-sync": "2.29.3", + "browserslist": "^4.21.5", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", - "critters": "0.0.16", - "css-loader": "6.7.3", - "esbuild-wasm": "0.17.8", - "glob": "8.1.0", - "https-proxy-agent": "5.0.1", - "inquirer": "8.2.4", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.19.5", + "fast-glob": "3.3.1", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.2", + "inquirer": "9.2.11", "jsonc-parser": "3.2.0", "karma-source-map-support": "1.4.0", - "less": "4.1.3", + "less": "4.2.0", "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.29.0", - "mini-css-extract-plugin": "2.7.2", - "open": "8.4.1", + "magic-string": "0.30.5", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "1.0.1", + "open": "8.4.2", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", - "piscina": "3.2.0", - "postcss": "8.4.21", - "postcss-loader": "7.0.2", + "picomatch": "3.0.1", + "piscina": "4.1.0", + "postcss": "8.4.31", + "postcss-loader": "7.3.3", "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.58.1", - "sass-loader": "13.2.0", - "semver": "7.3.8", + "rxjs": "7.8.1", + "sass": "1.69.5", + "sass-loader": "13.3.2", + "semver": "7.5.4", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.16.3", + "terser": "5.24.0", "text-table": "0.2.0", "tree-kill": "1.2.2", - "tslib": "2.5.0", - "webpack": "5.76.1", - "webpack-dev-middleware": "6.0.1", - "webpack-dev-server": "4.11.1", - "webpack-merge": "5.8.0", + "tslib": "2.6.2", + "undici": "5.27.2", + "vite": "4.5.0", + "webpack": "5.89.0", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^18.13.0 || >=20.9.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.17.8" + "esbuild": "0.19.5" }, "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "@angular/localize": "^15.0.0", - "@angular/platform-server": "^15.0.0", - "@angular/service-worker": "^15.0.0", + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^15.0.0", + "ng-packagr": "^17.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.8.2 <5.0" + "typescript": ">=5.2 <5.3" }, "peerDependenciesMeta": { "@angular/localize": { @@ -283,6 +306,12 @@ "@angular/service-worker": { "optional": true }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, "karma": { "optional": true }, @@ -297,599 +326,984 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/autoprefixer": { - "version": "10.4.13", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "cpu": [ + "arm" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } + "optional": true, + "os": [ + "android" ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/build-angular/node_modules/immutable": { - "version": "4.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@angular-devkit/build-angular/node_modules/postcss": { - "version": "8.4.21", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } + "optional": true, + "os": [ + "android" ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=12" } }, - "node_modules/@angular-devkit/build-angular/node_modules/postcss-value-parser": { - "version": "4.2.0", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.6.7", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "npm": ">=2.0.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "0BSD" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/sass": { - "version": "1.58.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=12.0.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1502.7", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1502.7", - "rxjs": "6.6.7" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.6.7", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "cpu": [ + "arm" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "npm": ">=2.0.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { - "version": "1.14.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-devkit/core": { - "version": "15.2.7", - "license": "MIT", - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.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": ">=12" } }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.6.7", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "npm": ">=2.0.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/core/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@angular-devkit/schematics": { - "version": "15.2.7", - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "15.2.7", - "jsonc-parser": "3.2.0", - "magic-string": "0.29.0", - "ora": "5.4.1", - "rxjs": "6.6.7" - }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "6.6.7", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "npm": ">=2.0.0" + "node": ">=12" } }, - "node_modules/@angular-devkit/schematics/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@angular-eslint/builder": { - "version": "15.2.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "15.2.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "MIT" - }, - "node_modules/@angular-eslint/eslint-plugin": { - "version": "15.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/utils": "5.48.2" - }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "15.2.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", - "aria-query": "5.1.3", - "axobject-query": "3.1.1" - }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@angular-eslint/schematics": { - "version": "15.2.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@angular-eslint/eslint-plugin": "15.2.1", - "@angular-eslint/eslint-plugin-template": "15.2.1", - "ignore": "5.2.4", - "strip-json-comments": "3.1.1", - "tmp": "0.2.1" - }, - "peerDependencies": { - "@angular/cli": ">= 15.0.0 < 16.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@angular-eslint/template-parser": { - "version": "15.2.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "eslint-scope": "^7.0.0" - }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@angular-eslint/utils": { - "version": "15.2.1", + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@typescript-eslint/utils": "5.48.2" - }, - "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", - "typescript": "*" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@angular/animations": { - "version": "15.2.8", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/core": "15.2.8" + "node": ">=12" } }, - "node_modules/@angular/cdk": { - "version": "15.2.8", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, - "peerDependencies": { - "@angular/common": "^15.0.0 || ^16.0.0", - "@angular/core": "^15.0.0 || ^16.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@angular/cli": { - "version": "15.2.7", - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1502.7", - "@angular-devkit/core": "15.2.7", - "@angular-devkit/schematics": "15.2.7", - "@schematics/angular": "15.2.7", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "3.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "npm-package-arg": "10.1.0", - "npm-pick-manifest": "8.0.1", - "open": "8.4.1", - "ora": "5.4.1", - "pacote": "15.1.0", - "resolve": "1.22.1", - "semver": "7.3.8", - "symbol-observable": "4.0.0", - "yargs": "17.6.2" - }, - "bin": { - "ng": "bin/ng.js" - }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=12" } }, - "node_modules/@angular/common": { - "version": "15.2.8", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/core": "15.2.8", - "rxjs": "^6.5.3 || ^7.4.0" + "node": ">=12" } }, - "node_modules/@angular/compiler": { - "version": "15.2.8", - "license": "MIT", + "node_modules/@angular-devkit/build-angular/node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "tslib": "^2.3.0" + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^10 || ^12 || >=14" }, "peerDependencies": { - "@angular/core": "15.2.8" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } + "postcss": "^8.1.0" } }, - "node_modules/@angular/compiler-cli": { - "version": "15.2.8", + "node_modules/@angular-devkit/build-angular/node_modules/esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "7.19.3", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.11.0", - "magic-string": "^0.27.0", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, + "hasInstallScript": true, + "optional": true, "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/main-ngcc.js" + "esbuild": "bin/esbuild" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": ">=12" }, - "peerDependencies": { - "@angular/compiler": "15.2.8", - "typescript": ">=4.8.2 <5.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.19.3", + "optionalDependencies": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/@angular/compiler-cli/node_modules/magic-string": { - "version": "0.27.0", + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/@angular/core": { - "version": "15.2.8", - "license": "MIT", + "node_modules/@angular-devkit/build-angular/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1700.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.0.tgz", + "integrity": "sha512-Hx9JUb32gigsHlbBZJ5sw3q3H7qHeX8HTh4aIq4Glvb/5e+HgPlclVSIA5BY2ZYatHixU+CUAXRmcIKxViS02Q==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" + "@angular-devkit/architect": "0.1700.0", + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4 || ~0.12.0 || ~0.13.0" + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" } }, - "node_modules/@angular/flex-layout": { - "version": "15.0.0-beta.42", - "license": "MIT", + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/cdk": ">=15.0.0", - "@angular/common": ">=15.0.2", - "@angular/core": ">=15.0.2", - "@angular/platform-browser": ">=15.0.2", - "rxjs": "^6.5.3 || ^7.4.0" + "tslib": "^2.1.0" } }, - "node_modules/@angular/forms": { - "version": "15.2.8", + "node_modules/@angular-devkit/core": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.0.tgz", + "integrity": "sha512-QUu3LnEi4A8t733v2+I0sLtyBJx3Q7zdTAhaauCbxbFhDid0cbYm8hYsyG/njor1irTPxSJbn6UoetVkwUQZxg==", + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.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/core/node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.0.tgz", + "integrity": "sha512-LD7fjDORuBf139/oJ/gSwbIzQPfsm6Y67s1FD+XLi0QXaRt6dw4r7BMD08l1r//oPQofNgbEH4coGVO4NdCL/A==", + "dependencies": { + "@angular-devkit/core": "17.0.0", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-eslint/builder": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.0.0.tgz", + "integrity": "sha512-cquqJH0R/IIh2PElcGXdo9FTcrkwO78H2MXk9ChGFBjQrYjihFLhFm12VuQsih7X6bJjA0cmr2PL1KbtgjMk1Q==", + "dev": true, + "dependencies": { + "@nx/devkit": "17.0.3", + "nx": "17.0.3" + }, + "peerDependencies": { + "eslint": "^7.20.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/bundled-angular-compiler": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.0.0.tgz", + "integrity": "sha512-nHLliW18XduO51+e/RST8O2YnhcQR3+NSSy8zlmYyjLeUi5NBpC/Hwp68KxPP2YcUYie1tWlaw48YJYo97qE6A==", + "dev": true + }, + "node_modules/@angular-eslint/eslint-plugin": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.0.0.tgz", + "integrity": "sha512-I2gb7hDthNiWbeNXlINBYQIbwKkPPM8442EIPeWtwgOQ2qjMwTAz1l3FA46U7pwbaXsdlY0p9Kp4ABy9T0cknA==", + "dev": true, + "dependencies": { + "@angular-eslint/utils": "17.0.0", + "@typescript-eslint/utils": "6.10.0" + }, + "peerDependencies": { + "eslint": "^7.20.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/eslint-plugin-template": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.0.0.tgz", + "integrity": "sha512-Yy9097HAkMEiYANGw2UZQuJSO0fXpBWUMOxwWUFDD5Am7eB51a+5BiOdBe8uy4lM5OnIfm+aIASwbmvPHwjjTA==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "17.0.0", + "@angular-eslint/utils": "17.0.0", + "@typescript-eslint/type-utils": "6.10.0", + "@typescript-eslint/utils": "6.10.0", + "aria-query": "5.3.0", + "axobject-query": "4.0.0" + }, + "peerDependencies": { + "eslint": "^7.20.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/schematics": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.0.0.tgz", + "integrity": "sha512-lNeLPJoCjq67D0SHIehcseJqMe2rG485inH8ZmA1bIoRYAyQ3s/sLH2+Qbkh7aP3m+Jd3TVLArt3g1hbqFWRUA==", + "dev": true, + "dependencies": { + "@angular-eslint/eslint-plugin": "17.0.0", + "@angular-eslint/eslint-plugin-template": "17.0.0", + "@nx/devkit": "17.0.3", + "ignore": "5.2.4", + "nx": "17.0.3", + "strip-json-comments": "3.1.1", + "tmp": "0.2.1" + }, + "peerDependencies": { + "@angular/cli": ">= 17.0.0 < 18.0.0" + } + }, + "node_modules/@angular-eslint/template-parser": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.0.0.tgz", + "integrity": "sha512-uYdANaTVEXxvsTYPQU0dh7dNK4b9Ez6y512DH9Hgnv1T6CSwBPjMk0/rQfefJevk+LxDjCBspnbXcgnY/yi88Q==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "17.0.0", + "eslint-scope": "^7.0.0" + }, + "peerDependencies": { + "eslint": "^7.20.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/utils": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.0.0.tgz", + "integrity": "sha512-kfKk4jqmvX/aFCHhl3BfAyvF+DRE/qPyGMBbFL/dm7mRTr4ZRsNX88KyzpWlA9tD355b+cFvM2jd9hqtPM8KIQ==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "17.0.0", + "@typescript-eslint/utils": "6.10.0" + }, + "peerDependencies": { + "eslint": "^7.20.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular/animations": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.1.tgz", + "integrity": "sha512-Uee6E8zyU6XjDfKFozybcf+JZy0nUFQ1bUEmRwFP5HvYJSSJ5YiUDokNiVxyn9znwZ7zKHlM6Bq9ZY9cCmeKKQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.1" + } + }, + "node_modules/@angular/cdk": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.0.tgz", + "integrity": "sha512-8F1z0YhDjKWqB29+AUh33OKr2Ts5PVUUogVXEVmmPipPDtj82iIQLbtBnR6xpWvmsw9mS3oD76EwBoUhHQgi6g==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.0.tgz", + "integrity": "sha512-VzKYmN+1wSE2wLBEFu/NHSrRQbeaKkEDO9aZxd7nAnxC5T1Zcva7dfqZIXMHXH2HESYAZCvOS8ikBE/7DCtWWw==", + "dependencies": { + "@angular-devkit/architect": "0.1700.0", + "@angular-devkit/core": "17.0.0", + "@angular-devkit/schematics": "17.0.0", + "@schematics/angular": "17.0.0", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.4", + "resolve": "1.22.8", + "semver": "7.5.4", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@angular/common": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.1.tgz", + "integrity": "sha512-AvvhZc+PhX5lVEW/Vorxe3Zf1rIEJJvfduRuRv+nsjijo3ZGjdgYjTYEx4ighZgH60RLIAuwyBE24gPkT2Pm7g==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.1", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.1.tgz", + "integrity": "sha512-qlKqCvjoxPHJ1e8+UMaBl/n9zzrmGXI5eWMVhULSvQnQvPWkwNlUh5XFeoSFcTEQxORjaO2/08Z31DmTJAqlPA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.1" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.1.tgz", + "integrity": "sha512-Rnvh2V2CYhG7NR5VI4cESGKk9jyqLat0HoqXa06v3TtbjkiZyjjwh0SyZ8NYOBMkQeWiQTHGcgxGvjKD3L3qqA==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.0.1", + "typescript": ">=5.2 <5.3" + } + }, + "node_modules/@angular/core": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.1.tgz", + "integrity": "sha512-yVwU+oz0G8g6Q5ORyOCpgqMPdSiCdfW+uQhjI37WROnXHja3jY843AqrYTKE6mMx1r6q9h1wbDy+x2E61OWP7A==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/flex-layout": { + "version": "15.0.0-beta.42", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, + "peerDependencies": { + "@angular/cdk": ">=15.0.0", + "@angular/common": ">=15.0.2", + "@angular/core": ">=15.0.2", + "@angular/platform-browser": ">=15.0.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.1.tgz", + "integrity": "sha512-FpmUf2kgzwZXVbFB4VrwbnrO0m88QLUBsDsbLfQVQQwb7KxwSaftUu/aIrjst1gFCdl9k0Vqtrq2gwLZKzdSGQ==", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "15.2.8", - "@angular/core": "15.2.8", - "@angular/platform-browser": "15.2.8", + "@angular/common": "17.0.1", + "@angular/core": "17.0.1", + "@angular/platform-browser": "17.0.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "15.2.8", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.1.tgz", + "integrity": "sha512-kDKmtMj410We8Rbph4e2xSuIs+MlzE7+QvIR07tofcoAR6Qpe2hr6WdsfExGBNIk5LNMYI3zdbEkAofG/JuRDA==", "dev": true, - "license": "MIT", "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0" } }, "node_modules/@angular/material": { - "version": "15.2.8", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/auto-init": "15.0.0-canary.684e33d25.0", - "@material/banner": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/card": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/chips": "15.0.0-canary.684e33d25.0", - "@material/circular-progress": "15.0.0-canary.684e33d25.0", - "@material/data-table": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dialog": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/drawer": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/fab": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/form-field": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/image-list": "15.0.0-canary.684e33d25.0", - "@material/layout-grid": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/linear-progress": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/radio": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/segmented-button": "15.0.0-canary.684e33d25.0", - "@material/select": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/slider": "15.0.0-canary.684e33d25.0", - "@material/snackbar": "15.0.0-canary.684e33d25.0", - "@material/switch": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", - "@material/tab-bar": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/tab-scroller": "15.0.0-canary.684e33d25.0", - "@material/textfield": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tooltip": "15.0.0-canary.684e33d25.0", - "@material/top-app-bar": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.0.0.tgz", + "integrity": "sha512-rd7H7NhkDPDiyLHADm2FHOJlmgaWV7ZYNYPe/4yTXlt++GTSLhKus+PTCZYVsKGlA3mxDhNnC1RY+fdjtx/G2A==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/auto-init": "15.0.0-canary.a246a4439.0", + "@material/banner": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/card": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/chips": "15.0.0-canary.a246a4439.0", + "@material/circular-progress": "15.0.0-canary.a246a4439.0", + "@material/data-table": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dialog": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/drawer": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/fab": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/form-field": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/image-list": "15.0.0-canary.a246a4439.0", + "@material/layout-grid": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/linear-progress": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/radio": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/segmented-button": "15.0.0-canary.a246a4439.0", + "@material/select": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/slider": "15.0.0-canary.a246a4439.0", + "@material/snackbar": "15.0.0-canary.a246a4439.0", + "@material/switch": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "@material/tab-bar": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/tab-scroller": "15.0.0-canary.a246a4439.0", + "@material/textfield": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tooltip": "15.0.0-canary.a246a4439.0", + "@material/top-app-bar": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^15.0.0 || ^16.0.0", - "@angular/cdk": "15.2.8", - "@angular/common": "^15.0.0 || ^16.0.0", - "@angular/core": "^15.0.0 || ^16.0.0", - "@angular/forms": "^15.0.0 || ^16.0.0", - "@angular/platform-browser": "^15.0.0 || ^16.0.0", + "@angular/animations": "^17.0.0 || ^18.0.0", + "@angular/cdk": "17.0.0", + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/forms": "^17.0.0 || ^18.0.0", + "@angular/platform-browser": "^17.0.0 || ^18.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material-moment-adapter": { - "version": "15.2.8", - "license": "MIT", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-17.0.0.tgz", + "integrity": "sha512-8B6g3uz0E++aKYen35Wz9HPSK9ImalXH+s+en5djnTXHxmX8sDbks9YkCVpM/qZk7L6bVLSolMsewZtf2wToyg==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^15.0.0 || ^16.0.0", - "@angular/material": "15.2.8", + "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/material": "17.0.0", "moment": "^2.18.1" } }, "node_modules/@angular/platform-browser": { - "version": "15.2.8", - "license": "MIT", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.1.tgz", + "integrity": "sha512-JpvU0YDEM5KYdHtxC0Kdzk/hdwvZPq5vju5lTmIjTVa2OOabApOrQ6cq1MpKlrvjv1rw8MClHIM0l5Y0g9KH5g==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "15.2.8", - "@angular/common": "15.2.8", - "@angular/core": "15.2.8" + "@angular/animations": "17.0.1", + "@angular/common": "17.0.1", + "@angular/core": "17.0.1" }, "peerDependenciesMeta": { "@angular/animations": { @@ -898,40 +1312,43 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "15.2.8", - "license": "MIT", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.1.tgz", + "integrity": "sha512-xEcbB/ukXc65LaX4JBQYEM7D5Z8LcUIZniSJFneY7deZt3wNiKgmPZrPoXUyDV26QULh7N0IADEzvbcMF60AFQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "15.2.8", - "@angular/compiler": "15.2.8", - "@angular/core": "15.2.8", - "@angular/platform-browser": "15.2.8" + "@angular/common": "17.0.1", + "@angular/compiler": "17.0.1", + "@angular/core": "17.0.1", + "@angular/platform-browser": "17.0.1" } }, "node_modules/@angular/router": { - "version": "15.2.8", - "license": "MIT", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.1.tgz", + "integrity": "sha512-73PCDDsRAjemODMRndZhwEN6Tb9rVVbDfMWgLQ4HgfgKnjek8P9BoYf8rOf3qV5fXf3c1Sm9MmKtaPv+l5lU9Q==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "15.2.8", - "@angular/core": "15.2.8", - "@angular/platform-browser": "15.2.8", + "@angular/common": "17.0.1", + "@angular/core": "17.0.1", + "@angular/platform-browser": "17.0.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "15.2.8", - "license": "MIT", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-17.0.1.tgz", + "integrity": "sha512-KkMa2pOT8W9xiCs/aXn6MpkzRahygHEHG20PNreg3PCBIg/4UAlvTNlI+cecbVyc4FEAinl0GAOGZs0P0ux3gA==", "dependencies": { "tslib": "^2.3.0" }, @@ -939,73 +1356,79 @@ "ngsw-config": "ngsw-config.js" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "15.2.8", - "@angular/core": "15.2.8" + "@angular/common": "17.0.1", + "@angular/core": "17.0.1" } }, "node_modules/@angular/upgrade": { - "version": "15.2.8", - "license": "MIT", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-17.0.1.tgz", + "integrity": "sha512-hfhtJhdt6iCLW/eTOioM/LekQ7IDoBNArlGvS2zCE/I7RC/iDxgUuEpkiIAONF5/OwkwNCNWEgOCn5YONc+f/g==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "15.2.8", - "@angular/core": "15.2.8", - "@angular/platform-browser": "15.2.8", - "@angular/platform-browser-dynamic": "15.2.8" + "@angular/compiler": "17.0.1", + "@angular/core": "17.0.1", + "@angular/platform-browser": "17.0.1", + "@angular/platform-browser-dynamic": "17.0.1" } }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true }, "node_modules/@babel/code-frame": { - "version": "7.21.4", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.5", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1015,102 +1438,100 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.20.14", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.5", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1120,21 +1541,23 @@ } }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.5", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1144,136 +1567,137 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.21.5", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.5", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1283,112 +1707,121 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.21.5", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.5", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -1396,9 +1829,10 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.5", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -1407,11 +1841,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1421,13 +1856,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1436,16 +1872,11 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, "engines": { "node": ">=6.9.0" }, @@ -1453,44 +1884,37 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1499,43 +1923,37 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1544,13 +1962,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1559,121 +1977,95 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1681,21 +2073,26 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { + "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1706,34 +2103,47 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" @@ -1742,89 +2152,148 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1833,12 +2302,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1847,12 +2317,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1861,14 +2333,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1877,12 +2349,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1891,12 +2365,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1905,20 +2380,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1927,13 +2397,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.21.5", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1942,12 +2413,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1956,13 +2428,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1971,12 +2444,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1985,13 +2459,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2000,12 +2475,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.5", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2014,14 +2492,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -2030,12 +2510,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2044,27 +2526,29 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2073,14 +2557,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -2089,15 +2573,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -2106,13 +2589,17 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -2121,27 +2608,30 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -2150,13 +2640,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", + "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -2166,11 +2658,46 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -2180,11 +2707,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2194,12 +2722,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.21.5", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -2209,11 +2738,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2223,16 +2753,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.6", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -2242,19 +2773,21 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2264,12 +2797,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2279,11 +2813,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2293,11 +2828,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2307,11 +2843,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2321,11 +2858,28 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2335,12 +2889,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2349,38 +2904,43 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/preset-env": { - "version": "7.20.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -2390,45 +2950,62 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -2438,70 +3015,74 @@ } }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/regjsgen": { "version": "0.8.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true }, "node_modules/@babel/runtime": { - "version": "7.20.13", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dev": true, - "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.20.7", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2509,40 +3090,14 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/types": { - "version": "7.21.5", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2580,14 +3135,15 @@ } }, "node_modules/@commitlint/config-conventional": { - "version": "16.2.4", + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.7.tgz", + "integrity": "sha512-4oTpEUC0HRM54QRHBPMOJW1pETp7usxXn9RuNYNWHcmu8wi1mpws95hvS20u2n6HtIkTn0jfn7vHioCm4AGUTw==", "dev": true, - "license": "MIT", "dependencies": { - "conventional-changelog-conventionalcommits": "^4.3.1" + "conventional-changelog-conventionalcommits": "^5.0.0" }, "engines": { - "node": ">=v12" + "node": ">=v14" } }, "node_modules/@commitlint/config-validator": { @@ -2859,6 +3415,19 @@ "node": ">=8" } }, + "node_modules/@commitlint/load/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/@commitlint/message": { "version": "16.2.1", "dev": true, @@ -3040,13 +3609,14 @@ } }, "node_modules/@ctrl/ngx-emoji-mart": { - "version": "7.1.0", - "license": "MIT", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@ctrl/ngx-emoji-mart/-/ngx-emoji-mart-9.2.0.tgz", + "integrity": "sha512-q8B7DiXPfyTe+VOGO6Ix7eh5gKCuADxAsud2xXRTlECTfchoKGTmirSczyjaxIKE/xmB+/ZsnkpthZqUM7SAJQ==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": ">=14.0.0-0" + "@angular/core": ">=15.0.0-0" } }, "node_modules/@discoveryjs/json-ext": { @@ -3070,23 +3640,360 @@ "node": "^14 || ^16 || ^17 || ^18" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.8", + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", "cpu": [ - "arm64" + "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ - "linux" + "android" ], "engines": { "node": ">=12" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "dev": true, "license": "MIT", "dependencies": { @@ -3100,21 +4007,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3131,8 +4040,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3146,13 +4056,15 @@ }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -3165,8 +4077,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3176,13 +4089,15 @@ }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -3191,23 +4106,30 @@ } }, "node_modules/@eslint/js": { - "version": "8.39.0", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "license": "MIT" + "node_modules/@fastify/busboy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", + "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", + "dev": true, + "engines": { + "node": ">=14" + } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -3228,10 +4150,100 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause" - }, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "dev": true, @@ -3303,13 +4315,27 @@ "node": ">=8" } }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -3340,19 +4366,6 @@ "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "license": "MIT" @@ -3373,722 +4386,786 @@ }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/@material/animation": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-0eV06UGYeuFwC/4t+yjg3LCRGRLq72ybBtJYzcBDpP4ASTjie0WmpAOFJYXRq2U5X/yxLviDMhpRemoSUjgZ0Q==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/auto-init": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-0QfmjT5elQ10hCxToVgq/WaC3301tVH1sJaO3O2yocVzr7s6iWm8/zch16V5hcHzQHbtcT3Rf4y1ZzmdNys2Iw==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/banner": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-PBLgH7JEbEpTkLy33oyWXUhIFmSsdOrR6Gn6qIgQRo1qrnk5RSBGW2gEq4Z6793vjxM107gKudDb23E4Fcu4vg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/base": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/ob3v3IFU8q2gGdVNWw5kNPjW2mRTeBIz1YdhGWUmRxKn2Kl8bdLOvrAmZtQMmPn/4cGXvinxpec/zVBWQKDkA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/button": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-rGpVRde0Aqhv2t9QvT8Zl3HvG89BeUNPOpgfpaLBZ4SGGAO4rIrckl/eCENibKgmmdCKcYZlG9gc5abQVPfUvw==", + "dependencies": { + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/card": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+rYUnBPgv5QVF6BeUs3toIRdSwFVohGmjk2ptTXMZkKxqAJt7Nr9Znbm3Ym2hD8GUHJeh3pyGFvEs6rG6JMYAw==", + "dependencies": { + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/checkbox": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-sQwHzm1TSxHUoPrqplWTk/BhyzdDhzcwlbucwJK9W0o9WXMDk+d9PvcCxpP/9sAnVqZk42BfE89Y0T1DHglZ9A==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/chips": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-TiV9WJ5taEHPGWPhXbxJvUJhLzThg+VpK7aAlvL4RurtmJ7pURuEdRS4Z6o0OEqi3wKQ4z/+K44kZUn/+9HALg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "node_modules/@material/circular-progress": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/progress-indicator": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+QTfyExPWzgm2tqMInd32qQOftsC1b8MUhAhZSfuecYBfqAc7KZkQEKa2nm4y8EHKMFWe8/DcxLV6IxMBLgHwA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/progress-indicator": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/data-table": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/linear-progress": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/select": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-89qVOjR7gqby6fsmh7tKj29SjQ2sGLXu2IzCeX3Vni4mz+xxo5dv11jxYNADvdgJDfhyDJFPh1FlqAH7O09nFA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/linear-progress": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/select": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/density": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-h8BJVCWkPR97WeWCN6/atVbSOP8J4+ZbbssidcwsnX7b3+3IaWdtBxGii25dsILX8pUVwwqxVis24y211b+8rg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/dialog": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4lyxd+5ccOEMUGKzZcssaYyzkCsYTpYCSQSANR0toQPLv3voDwKMfA709uZI6+nL7Re6Xdf7jx8qe+QpTTjVcw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/dom": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-AftSOGQoQg/Ys2kOVjZzvqWmsnhg3Kam/2UC4Gj0DMMCu36J4MAoD+3PpnOd1aG3wiJKtUXR2vPIwE8I/PM9yg==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/drawer": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/JUmbzRBaikdbZ250yA9ZTPqp2W5nGvvuHYoNVAAmtOmxuwGvvNNpWiVZy2lIYeYcf1hA7hJ5mEQxs0aSD7iWQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/elevation": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-lwPIOb8fHyOljIWYcVLPT73dPIEOKat/CXu6gqYIVMQgZQIksQNUA7z1O3l7apkRSuYUOYSXqrgU7AnWP4KcJg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/fab": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-XUex3FNqxPD1i/4jITucB/RWTNkkdv52mbNmwrvbuThZlhuhyH9GzOQYTDop/b2783TPcv++xr8UUbuh8GWYzA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/feature-targeting": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/SU9X5y8CRp6RS9qnjnM/N5qfsJ8bYILpR841eZmN6DLqMupaM9Yy7Mx8+v/QvpBLLhk+jmu79nFzwkwW54d6Q==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/floating-label": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-832qZ/qxKx0KUatoeVY3Q2NmboVgiWBG0/1VsbJyodHrgQWfnBOHgLE+M322o6uM3OhvO+kWm4iYbvwhmLZGsw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/focus-ring": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-ar0BtACFS3K14k/enAg0ePeEA/f/RJY4Ji4L/00Dw/B3XVpNRbqLH49jkcbtcQjdTS0FEyk2sWSNMZl6wVi0/A==", "dependencies": { - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0" + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0" } }, "node_modules/@material/form-field": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Q/+ErgtAUFUPPUmWA1m5IP5voiN8XjPRwyoAlFxSTa/4t+EA5B18Z8Bsn9b6I0AC8RHke06H7UWrKz8XUDIFpw==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/icon-button": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Igyo94rkIlqC91BR1Tv+WLTz1ZWcZZjl1xU7Vsx8mbWA1PnaRDUTNVV5LFi4e0ORp6GSblFTImpHngEy4agMEg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/image-list": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Rcj3q7Tp7Nwbe5ht6ptTc3zqK8TSDJHaPDBf+kzi0kkh6MAB4qoHPgn+HnA+zIZ79CScU56bN7zjA6XYaZvsLw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/layout-grid": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-bkfxZuVzgtjEJgR3n8pvDQbe88ffULDJ5d2DF34IR8SOiRmQcj7UzqAt95XwIUcWlfisLCoIryP4U8XSpFb1EQ==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/line-ripple": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-20WmwRrejmtOdI37+959UqEVIjbMtAXlkDOkfCIA3OUhp+oZSjVkCqKxI16jxxVlnzJ353fy8xeSKzOHe4sExQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/linear-progress": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/progress-indicator": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-IcCd4476pXHloTYadHDJ+2c2lntoVigeNnQEiD/ASQTKqKrJqkIdvvczFm9Ryu+V2+TKhp7vvQGFLUMaLPcmhw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/progress-indicator": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/list": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4H5dKIjCUGIPmKjfcegV0SBybD5NNdHp26OU6sovvWIvxSGQtDJr6z9I7i+0vF/HIS5ScbHD2+9/txtL80iqCA==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/menu": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-2HOHQAIdWQtXjSvEIrW3lnbcIwFf5XaQhFzCEZ04FcSGApc4iLwsmRFVW3PzWx+mVrUrEfO/K42DVULIX9J1Pg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/menu-surface": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4h4wZ0Rs7qBg1Otldw8ljp+LCULNL42pqbqcTXhKAkJM7pHcSw4k7IfoThSRLU3+V8T3/+qiAXyeQix2OGHzwg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/notched-outline": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-zmRZHJ+5cOWsBatRyK50wuht78olXySyKOJIIEmy8lxSMZefI1764u0mr8tS1KYF8vSAl5cUlwCC3/2Njz1FPg==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/progress-indicator": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-92HM5niUnqG5Y3M/xkscBD+2lkaWPDcIRPo0RHPYcyldL+EhWRv/sdQpfdiXw/h3uvKSowKxBMCHm8krAyf+sQ==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/radio": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-on8EVztWXc/ajcaowFZ31ClGADYxQrhj4ulMne0NxdHHWQ44ttf5aXOVqtv5mxeOzrRACOkQyTUXBG07yTWCEQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/ripple": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Vl615/PIBpBD+IOI9Xypz0SV3RsmYJYSNx890Rih7irhUOaPsOUBmTYOWF5AsGBynqLcXoTNVhK92drYLKtJwQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/rtl": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-pgJFw8ZRpWGpwv7ZuBTJ+WdNmFBKoLVoMbbxKQWTHXVwhAqn3aoIq95o62T5QeEG/+sguNShdquG45CpAMmSRw==", "dependencies": { - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/segmented-button": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-oqGHs2C7C+yJW/xZf/wP8jBGLs6HcerhM3CsorLAEMH3MGuIlVC17WcisBewEWucsILYEWbySXy/7T4h6/psZA==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/select": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-odoNLiVOgdwbEeePkjHtlr43pjskDwyO8hi4z3jcud1Rg1czk5zoJ2mUI0+olOJjBQ26PGocwrSLqf3qaThbIA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/shape": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-rcWPlCoHyP79ozeEKk73KWt9WTWdh6R68+n75l08TSTvnWZB5RRTmsI9BMkz55O9OJD/8H8ZsOxBe4x2QXUT7w==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/slider": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-is1BSBpxaXBBv+wSVpe9WGWmWl59yJEeDNubTES2UFD0er3BmA+PdKkL09vvytDnBcbKf77TbxaRiUSGVaKUQA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/snackbar": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-2NAtC1qozR/uajszZnPy08Ej8HNnpgvCjNCBerDN4SLH2Q0/aWrVrUjqRCp2ayAvsX+szoroGbCboMhaWRzDuQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/switch": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-o0wcbYgm2yRs4een5uxT4RJnJ003DxXe33rk8vTBG2o7cdiSR3X7GJQxeIK3D9wPgWCAwBLhNYSzXrlTL5pkMw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "node_modules/@material/tab": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-HGLK774uMeLnhbjDJBOjft7S6SurZnKb+6Und88OMDUVUEG6MkFBAKQQr09iBIeLE2sUAiGQhBVQtb7LJKwolQ==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/tab-bar": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/tab-scroller": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-dMQb1vXsBchQXcjbwgJZIGqTZHngm+3QGSOSb4LWjqHIgC5+w2RRrHsIAjNTyRhKssJ9nKKrbpM/Yz5vTPWH6w==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/tab-scroller": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/tab-indicator": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-gG2BgHT+ggKnUOaT8LjmH/+9nknRLh8v9qemrhUkDuCtZ8inlaC33OVbbxfrpQW3J+UzBh5YCUSC+2KrN39uUA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/tab-scroller": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-6KvBpalc4SwLbHFm0rnuIE64VffUj7AKhnPc+mqM6VmxOvDzQ/ZSYga0rWlUfM4mCDFX3ZkSxim+iNzVF+Ejaw==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/textfield": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4BW5bUERPlIeiPnLSby21h1/xDmySuAG9Ucn1LM801a0+5mK3IwWb8031AP3filKZZqTx5JJvOJYZd6/OWBJVA==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/theme": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-HWxC5Nhz8JZKTLTVmAsNxIGB3Kzr53+YFMg327S8/XuEDmI0RFHFvtwM9rADmyrHFBmUaVhV4iELyxFdi67c9w==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/tokens": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+5iGfQ51YSb0Qau8uC6/jHXCSC3enKaQKDf/iPHfuXAe04UznW3tmm1/Ju227aZXNISTJcnQYa2rpm1M14MeUg==", "dependencies": { - "@material/elevation": "15.0.0-canary.684e33d25.0" + "@material/elevation": "15.0.0-canary.a246a4439.0" } }, "node_modules/@material/tooltip": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Ja2Z4aZQkYWD6InXA+MG4M9zdKR6dYsXXlYzQppYpfcQzXylZqh5Y7WBLulG5fA2o83pHVwILfwFZM7j7ht08Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "node_modules/@material/top-app-bar": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-twQchmCa1In/FFrALPYojgeM8vmV7KH96wRY9NmPSJ046ANgPCicLBgLuSzrLETCFqAwbztqzxSG4xMBL81rYg==", + "dependencies": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/touch-target": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-ubyD1TUjZnRPEdDnk6Lrcm2ZsjnU7CV5y7IX8pj9IPawiM6bx4FkjZBxUvclbv3WiTGk5UOnwPOySYAJYAMQ1w==", + "dependencies": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@material/typography": { - "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-eXzBl9ROzWZ+41nan5pCrn1C/Zq3o/VsrLFaGv8fdRmhRR6/wHMeuvCCwGf5VtEmWdAE9FpJzRU/4ZPiJCJUyg==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", "tslib": "^2.1.0" } }, "node_modules/@ngtools/webpack": { - "version": "15.2.7", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.0.tgz", + "integrity": "sha512-/Bb5MXlphNp3UDsQDa4EB4AwpF4D/plrCPd5YGfVvD43j5g5Rpen+cqz5jai1zfAkF1dPl2qq0nRp/jwmJO3uA==", "dev": true, - "license": "MIT", "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^18.13.0 || >=20.9.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "typescript": ">=4.8.2 <5.0", + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.3", "webpack": "^5.54.0" } }, @@ -4124,9 +5201,33 @@ "node": ">= 8" } }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/@npmcli/fs": { "version": "3.1.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "dependencies": { "semver": "^7.3.5" }, @@ -4135,45 +5236,57 @@ } }, "node_modules/@npmcli/git": { - "version": "4.0.4", - "license": "ISC", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", + "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "license": "ISC", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/installed-package-contents": { "version": "2.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -4185,132 +5298,420 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@npmcli/node-gyp": { "version": "3.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "license": "ISC", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", + "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", "dependencies": { - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "license": "ISC", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { - "version": "6.0.1", - "license": "ISC", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", + "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", "dependencies": { "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "license": "ISC", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" + "node_modules/@nrwl/devkit": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.0.3.tgz", + "integrity": "sha512-k1o0tvmGcg2/Kw2d56ULixqngCj5zTfp3mn6yS0ytIJrTQnJVkI8GcFCtpnqbzQjD8nKHhvTIcOMsj2BzLos9A==", + "dev": true, + "dependencies": { + "@nx/devkit": "17.0.3" } }, - "node_modules/@scarf/scarf": { - "version": "1.1.1", - "hasInstallScript": true, - "license": "Apache-2.0" - }, - "node_modules/@schematics/angular": { - "version": "15.2.7", - "license": "MIT", + "node_modules/@nrwl/tao": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.0.3.tgz", + "integrity": "sha512-X6zcwf6c3z7TuztRJWM/OCfzm7+LI4Uw4coc9+PWr44ohHkgId2wEJTzXrDT3+lvv8DgwPpgWPwqntw+YcgRYg==", + "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.7", - "@angular-devkit/schematics": "15.2.7", - "jsonc-parser": "3.2.0" + "nx": "17.0.3", + "tslib": "^2.3.0" }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "bin": { + "tao": "index.js" } }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", - "license": "Apache-2.0", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node_modules/@nx/devkit": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.0.3.tgz", + "integrity": "sha512-gW9aVc2BJBQ6PME07lsiaHg2Tjm9FN/qFjzxeSQYe2cR/s4hXqCBUfgKEqjgzMq+ykDR2Japkd8Vg8BN0uWnpA==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "17.0.3", + "ejs": "^3.1.7", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "semver": "7.5.3", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "nx": ">= 16 <= 18" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", + "node_modules/@nx/nx-darwin-arm64": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.0.3.tgz", + "integrity": "sha512-KA75JC/hgkt9qwK4dnN1tlaTXWdYItkNMjji6YjkyAYabbLKQKVcQoPocYP/RB/Gng+vNslXwuug2atgxDf43g==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { "node": ">= 10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", + "node_modules/@nx/nx-darwin-x64": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.0.3.tgz", + "integrity": "sha512-YVWk9jNibD7fzn8oNBl/UNu8NEfcVwFo5wiNyfOql495yP0tyGdZNHD4i/7aS2Y654G1JYDRf7TutJ7wWFU8bg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-freebsd-x64": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.0.3.tgz", + "integrity": "sha512-yiYkfY+3IrlBrlaXN6SO4Fnb0a+Ti+FPwAqRPpH6q3uTCh0NmNgE99ydtT31ZbgCF1ZwRK8NdCbuNO3w9uznwA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.0.3.tgz", + "integrity": "sha512-x4h6QJlESJZ0bigUlxNEVyi7F/VWQQx+1IBptofXhK5eTOPjJ5qgINdM38AZg+kBJDz5XOVMDejg6RzHlhs0Tg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.0.3.tgz", + "integrity": "sha512-1lysnsZv9FS+9fciK0qh5PhsQ8U+vyFoR/jiJl+3vqYNUwEmNLD0VEAZzpZL2SJXQqD5E0bjuQpYxiD7YRXImQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.0.3.tgz", + "integrity": "sha512-0/bvSpbc4vOy9E24fu0ajDGe3SO8lmLtlxjXwGRcnzlt/MWM8sazoO0lX163/X2wF6tuL6+HXHOr6AeqsdeRXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.0.3.tgz", + "integrity": "sha512-tKO6MYUxpUsHMuZrYy8hG20RIOdBY3kyEK8wxH8JZZaXKeYUK+5vv5DavWpY5wuu2jffNIJNsbUzcrqOlcbDOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-musl": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.0.3.tgz", + "integrity": "sha512-H88yBLrI51m6NGoCkpBYhacRyTBfDuf7x00SnxSfD1yLlxCazPUG7CGkMedpzXo10YHxCFvg7B/Fa23DRRleUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.0.3.tgz", + "integrity": "sha512-bKzmzjvgLB4IzLWTySqXgBgXawfw0ZSjUkscFQ3ZHrK9loMba1Ue8Ugy2DktlkUrCyPmGSot+YZViTzWP75C3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.0.3.tgz", + "integrity": "sha512-SJssAOyUM1IW9t84/Uzau9JHo14hnG5mxvcrborNGlLq+WnP0jzISVs7gvV2xWZ9j1JemxA5KLbkMuIkJyR6qQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pkgr/utils/node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@scarf/scarf": { + "version": "1.1.1", + "hasInstallScript": true, + "license": "Apache-2.0" + }, + "node_modules/@schematics/angular": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.0.tgz", + "integrity": "sha512-9jKU5x/WzaBsfSkUowK1X74FqtMXa6+A60XgW4ACO8i6fwKfPeS+tIrAieeYOX80/njBh7I5CvcpHmWA2SbcXQ==", + "dependencies": { + "@angular-devkit/core": "17.0.0", + "@angular-devkit/schematics": "17.0.0", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", + "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz", + "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==", + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", + "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", "dev": true, "license": "MIT" }, @@ -4330,38 +5731,42 @@ "license": "MIT" }, "node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models": { - "version": "1.0.3", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^7.4.6" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models/node_modules/brace-expansion": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "7.4.6", - "license": "ISC", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4391,34 +5796,44 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.2", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, - "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/bonjour": { - "version": "3.5.10", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/canvas-confetti": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@types/canvas-confetti/-/canvas-confetti-1.6.0.tgz", + "integrity": "sha512-Yq6rIccwcco0TLD5SMUrIM7Fk7Fe/C0jmNRxJJCLtAF6gebDkPuUjK5EHedxecm69Pi/aA+It39Ux4OHmFhjRw==", + "dev": true + }, "node_modules/@types/connect": { - "version": "3.4.35", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.0", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.3.tgz", + "integrity": "sha512-6mfQ6iNvhSKCZJoY6sIG3m0pKkdUcweVNOLuBBKvoWGzl2yRxOJcYOTRyLKt3nxXvBLJWa6QkW//tgbIwJehmA==", "dev": true, - "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -4461,14 +5876,16 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", - "dev": true, - "license": "MIT" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true }, "node_modules/@types/express": { - "version": "4.17.17", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -4477,9 +5894,10 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.34", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4492,10 +5910,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, "node_modules/@types/http-proxy": { - "version": "1.17.11", + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4519,9 +5944,10 @@ "license": "MIT" }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "dev": true, - "license": "MIT" + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", @@ -4534,9 +5960,10 @@ "license": "MIT" }, "node_modules/@types/mime": { - "version": "1.3.2", - "dev": true, - "license": "MIT" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true }, "node_modules/@types/minimatch": { "version": "3.0.5", @@ -4553,6 +5980,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node-forge": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.9.tgz", + "integrity": "sha512-meK88cx/sTalPSLSoCzkiUB4VPIFHmxtXm5FaaqRDqBX2i/Sy8bJ4odsan0b20RBjPh06dAQ+OTTdnyQyhJZyQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", "dev": true, @@ -4569,19 +6005,22 @@ "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.7", - "dev": true, - "license": "MIT" + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "dev": true }, "node_modules/@types/range-parser": { - "version": "1.2.4", - "dev": true, - "license": "MIT" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true }, "node_modules/@types/retry": { "version": "0.12.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true }, "node_modules/@types/selenium-webdriver": { "version": "3.0.20", @@ -4589,78 +6028,87 @@ "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.3.13", - "dev": true, - "license": "MIT" + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true }, "node_modules/@types/send": { - "version": "0.17.1", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, - "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-index": { - "version": "1.9.1", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, - "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.1", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, - "license": "MIT", "dependencies": { + "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/sockjs": { - "version": "0.3.33", + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/ws": { - "version": "8.5.4", + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", + "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.1", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", + "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/type-utils": "5.59.1", - "@typescript-eslint/utils": "5.59.1", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/type-utils": "6.10.0", + "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -4668,96 +6116,60 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "5.59.1", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "yallist": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=10" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.59.1", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "lru-cache": "^6.0.0" }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.1", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", + "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -4766,15 +6178,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.1", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", + "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -4782,62 +6195,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.2", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", + "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/utils": "6.10.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -4845,28 +6221,13 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.59.1", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", + "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", "dev": true, - "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -4874,20 +6235,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.1", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", + "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -4899,131 +6261,108 @@ } } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.48.2", + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" + "yallist": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": ">=10" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.2", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "lru-cache": "^6.0.0" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "dev": true, - "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", + "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/typescript-estree": "6.10.0", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.48.2", - "eslint-visitor-keys": "^3.3.0" + "yallist": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10" } }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.1", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", + "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.10.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -5031,8 +6370,9 @@ } }, "node_modules/@uirouter/angular": { - "version": "11.1.0", - "license": "MIT", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@uirouter/angular/-/angular-12.0.0.tgz", + "integrity": "sha512-UTJ2lyiZowD0xLAWbfEMA7jZpgFZQYFml/53mqY8vNPc7D7/5dHBaUu+Kx+Xmm3fmy+K1c9HSKA2eZQS4AqmDA==", "dependencies": { "tslib": "^2.3.0" }, @@ -5040,22 +6380,23 @@ "node": ">=6.0.0" }, "peerDependencies": { - "@angular/common": "^15.0.0", - "@angular/core": "^15.0.0", + "@angular/common": "^16.0.0", + "@angular/core": "^16.0.0", "@uirouter/core": "^6.0.8", "@uirouter/rx": "^1.0.0" } }, "node_modules/@uirouter/angular-hybrid": { - "version": "15.0.2", - "license": "MIT", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@uirouter/angular-hybrid/-/angular-hybrid-16.0.0.tgz", + "integrity": "sha512-QD6Bvb9gV1wqvVIsBJnX5yL3OqkPpcK6vyY8hfJaCrI2My9+4L9j8FvuWfiY6SK/Em4WlUCFmop5dV69rTE82w==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^14.0.0 || ^15.0.0", - "@angular/upgrade": "^14.0.0 || ^15.0.0", - "@uirouter/angular": "^11.0.0", + "@angular/core": "^14.0.0 || ^15.0.0 || ^16.0.0", + "@angular/upgrade": "^14.0.0 || ^15.0.0 || ^16.0.0", + "@uirouter/angular": "^12.0.0", "@uirouter/angularjs": "^1.0.30", "@uirouter/core": "^6.1.0", "angular": "^1.5.0" @@ -5087,176 +6428,244 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "dev": true, - "license": "MIT" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "dev": true, - "license": "MIT" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "dev": true, - "license": "MIT" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "dev": true, - "license": "MIT" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, - "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "dev": true, - "license": "MIT" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, - "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/abab": { - "version": "2.0.6", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" }, - "node_modules/accepts": { - "version": "1.3.8", + "node_modules/@yarnpkg/parsers": { + "version": "3.0.0-rc.46", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", + "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", "dev": true, - "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" }, "engines": { - "node": ">= 0.6" + "node": ">=14.15.0" } }, - "node_modules/acorn": { - "version": "8.8.2", + "node_modules/@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@zkochan/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/accepts": { + "version": "1.3.8", "dev": true, "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -5286,17 +6695,19 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.8.0", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^8" } }, "node_modules/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, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -5343,30 +6754,20 @@ } }, "node_modules/agent-base": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.3.0", - "license": "MIT", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" + "debug": "^4.3.4" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 14" } }, "node_modules/aggregate-error": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5419,6 +6820,7 @@ "version": "0.1.4", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -5432,6 +6834,7 @@ "version": "3.2.2", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -5935,7 +7338,8 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dependencies": { "type-fest": "^0.21.3" }, @@ -5948,11 +7352,12 @@ }, "node_modules/ansi-html-community": { "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, "engines": [ "node >= 0.8.0" ], - "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -5975,6 +7380,11 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, "node_modules/anymatch": { "version": "3.1.3", "devOptional": true, @@ -5987,33 +7397,6 @@ "node": ">= 8" } }, - "node_modules/aproba": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/arg": { "version": "4.1.3", "dev": true, @@ -6028,11 +7411,12 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/arr-diff": { @@ -6087,18 +7471,11 @@ "node": ">=0.10.0" } }, - "node_modules/array-find-index": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-flatten": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true }, "node_modules/array-ify": { "version": "1.0.0", @@ -6228,8 +7605,9 @@ }, "node_modules/async-each-series": { "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -6252,8 +7630,9 @@ }, "node_modules/autoprefixer": { "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^1.7.6", "caniuse-db": "^1.0.30000634", @@ -6265,24 +7644,28 @@ }, "node_modules/autoprefixer/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/autoprefixer/node_modules/ansi-styles": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/autoprefixer/node_modules/browserslist": { "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", "dev": true, - "license": "MIT", "dependencies": { "caniuse-db": "^1.0.30000639", "electron-to-chromium": "^1.2.7" @@ -6293,8 +7676,9 @@ }, "node_modules/autoprefixer/node_modules/chalk": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -6308,24 +7692,27 @@ }, "node_modules/autoprefixer/node_modules/chalk/node_modules/supports-color": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/autoprefixer/node_modules/has-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/autoprefixer/node_modules/postcss": { "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -6336,18 +7723,26 @@ "node": ">=0.12" } }, + "node_modules/autoprefixer/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, "node_modules/autoprefixer/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, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/autoprefixer/node_modules/strip-ansi": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -6357,8 +7752,9 @@ }, "node_modules/autoprefixer/node_modules/supports-color": { "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^1.0.0" }, @@ -6392,26 +7788,29 @@ }, "node_modules/axios": { "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, - "license": "MIT", "dependencies": { "follow-redirects": "^1.14.0" } }, "node_modules/axobject-query": { - "version": "3.1.1", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/babel-loader": { - "version": "9.1.2", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, - "license": "MIT", "dependencies": { - "find-cache-dir": "^3.3.2", + "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" }, "engines": { @@ -6438,47 +7837,51 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-runtime": { @@ -6651,6 +8054,15 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/big.js": { "version": "5.2.2", "dev": true, @@ -6667,6 +8079,16 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.1.0", "license": "MIT", @@ -6807,8 +8229,9 @@ }, "node_modules/bonjour-service": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, - "license": "MIT", "dependencies": { "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", @@ -6818,8 +8241,9 @@ }, "node_modules/boolbase": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true }, "node_modules/bootstrap": { "version": "3.4.1", @@ -6829,11 +8253,25 @@ } }, "node_modules/bootstrap-sass": { - "version": "3.3.7", - "license": "MIT" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/bootstrap-sass/-/bootstrap-sass-3.4.3.tgz", + "integrity": "sha512-vPgFnGMp1jWZZupOND65WS6mkR8rxhJxndT/AcMbqcq1hHMdkcH4sMPhznLzzoHOHkSCrd6J9F8pWBriPCKP2Q==" + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } }, "node_modules/brace-expansion": { "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -6852,14 +8290,14 @@ } }, "node_modules/browser-sync": { - "version": "2.29.1", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "browser-sync-client": "^2.29.1", - "browser-sync-ui": "^2.29.1", + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", "bs-recipes": "1.3.4", - "bs-snippet-injector": "^2.0.1", "chalk": "4.1.2", "chokidar": "^3.5.1", "connect": "3.6.6", @@ -6876,7 +8314,6 @@ "micromatch": "^4.0.2", "opn": "5.3.0", "portscanner": "2.2.0", - "qs": "^6.11.0", "raw-body": "^2.3.2", "resp-modifier": "6.0.2", "rx": "4.1.0", @@ -6896,9 +8333,10 @@ } }, "node_modules/browser-sync-client": { - "version": "2.29.1", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", "dev": true, - "license": "ISC", "dependencies": { "etag": "1.8.1", "fresh": "0.5.2", @@ -6909,9 +8347,10 @@ } }, "node_modules/browser-sync-ui": { - "version": "2.29.1", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "async-each-series": "0.1.1", "chalk": "4.1.2", @@ -6924,8 +8363,9 @@ }, "node_modules/browser-sync-ui/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6938,8 +8378,9 @@ }, "node_modules/browser-sync-ui/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6953,8 +8394,9 @@ }, "node_modules/browser-sync-ui/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6964,21 +8406,24 @@ }, "node_modules/browser-sync-ui/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/browser-sync-ui/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/browser-sync-ui/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6988,8 +8433,9 @@ }, "node_modules/browser-sync/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -7002,8 +8448,9 @@ }, "node_modules/browser-sync/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7017,8 +8464,9 @@ }, "node_modules/browser-sync/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7028,13 +8476,39 @@ }, "node_modules/browser-sync/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT" + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/browser-sync/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/browser-sync/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true }, "node_modules/browser-sync/node_modules/fs-extra": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^3.0.0", @@ -7043,29 +8517,123 @@ }, "node_modules/browser-sync/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/browser-sync/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/browser-sync/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, "node_modules/browser-sync/node_modules/jsonfile": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", "dev": true, - "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, + "node_modules/browser-sync/node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "bin": { + "mime": "cli.js" + } + }, + "node_modules/browser-sync/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/browser-sync/node_modules/rx": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "node_modules/browser-sync/node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "dev": true, - "license": "Apache-2.0" + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/browser-sync/node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/browser-sync/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/browser-sync/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, "node_modules/browser-sync/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7075,22 +8643,17 @@ }, "node_modules/browser-sync/node_modules/universalify": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } }, - "node_modules/browserify-zlib": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "pako": "~0.2.0" - } - }, - "node_modules/browserslist": { - "version": "4.21.5", + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "funding": [ { @@ -7100,14 +8663,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -7157,13 +8723,9 @@ }, "node_modules/bs-recipes": { "version": "1.3.4", - "dev": true, - "license": "ISC" - }, - "node_modules/bs-snippet-injector": { - "version": "2.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", + "dev": true }, "node_modules/buffer": { "version": "5.7.1", @@ -7194,11 +8756,27 @@ }, "node_modules/builtins": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dependencies": { "semver": "^7.0.0" } }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.1.2", "dev": true, @@ -7208,32 +8786,76 @@ } }, "node_modules/cacache": { - "version": "17.0.4", - "license": "ISC", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { - "node": ">=12" + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cache-base": { @@ -7257,7 +8879,6 @@ }, "node_modules/call-bind": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1", @@ -7292,6 +8913,14 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/camelcase-keys": { "version": "6.2.2", "dev": true, @@ -7309,12 +8938,15 @@ } }, "node_modules/caniuse-db": { - "version": "1.0.30001481", - "dev": true, - "license": "CC-BY-4.0" + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001517.tgz", + "integrity": "sha512-4Zqz0VZi9AwF05TyOh+DLABlwBcInExwNbP+ZanivBVztBb5EreEfB56S7XpIrKWiR+x+gg1ov7VAImMKULcew==", + "dev": true }, "node_modules/caniuse-lite": { - "version": "1.0.30001481", + "version": "1.0.30001561", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", + "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", "dev": true, "funding": [ { @@ -7329,14 +8961,22 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/canonical-path": { "version": "0.0.2", "dev": true, "license": "MIT" }, + "node_modules/canvas-confetti": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/canvas-confetti/-/canvas-confetti-1.6.0.tgz", + "integrity": "sha512-ej+w/m8Jzpv9Z7W7uJZer14Ke8P2ogsjg4ZMGIuq4iqUOqY2Jq8BNW42iGmNfRwREaaEfFIczLuZZiEVSYNHAA==", + "funding": { + "type": "donate", + "url": "https://www.paypal.me/kirilvatev" + } + }, "node_modules/caseless": { "version": "0.12.0", "dev": true, @@ -7346,6 +8986,7 @@ "version": "0.1.3", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "align-text": "^0.1.3", "lazy-cache": "^1.0.3" @@ -7378,7 +9019,8 @@ }, "node_modules/chardet": { "version": "0.7.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "node_modules/chokidar": { "version": "3.5.3", @@ -7408,7 +9050,8 @@ }, "node_modules/chownr": { "version": "2.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "engines": { "node": ">=10" } @@ -7456,7 +9099,8 @@ }, "node_modules/clean-stack": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "engines": { "node": ">=6" } @@ -7494,10 +9138,11 @@ } }, "node_modules/cli-width": { - "version": "3.0.0", - "license": "ISC", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/cli/node_modules/glob": { @@ -7540,8 +9185,9 @@ }, "node_modules/clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -7732,17 +9378,11 @@ "dev": true, "license": "MIT" }, - "node_modules/color-support": { - "version": "1.1.3", - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colorette": { "version": "2.0.20", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true }, "node_modules/colors": { "version": "1.1.2", @@ -7779,10 +9419,11 @@ "node": ">= 12.0.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true }, "node_modules/compare-func": { "version": "2.0.0", @@ -7800,8 +9441,9 @@ }, "node_modules/compressible": { "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -7811,8 +9453,9 @@ }, "node_modules/compression": { "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "license": "MIT", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -7828,42 +9471,32 @@ }, "node_modules/compression/node_modules/bytes": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", "dev": true, - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } + "license": "MIT" }, "node_modules/concurrently": { "version": "3.6.1", @@ -7923,8 +9556,9 @@ }, "node_modules/connect-history-api-fallback": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8" } @@ -7957,10 +9591,6 @@ "date-now": "^0.1.4" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "license": "ISC" - }, "node_modules/constantinople": { "version": "3.1.2", "dev": true, @@ -7975,8 +9605,9 @@ }, "node_modules/content-disposition": { "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -7986,6 +9617,8 @@ }, "node_modules/content-disposition/node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -8000,8 +9633,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/content-type": { "version": "1.0.5", @@ -8015,24 +9647,6 @@ "version": "0.3.1", "dev": true }, - "node_modules/conventional-changelog": { - "version": "1.1.24", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-changelog-angular": "^1.6.6", - "conventional-changelog-atom": "^0.2.8", - "conventional-changelog-codemirror": "^0.3.8", - "conventional-changelog-core": "^2.0.11", - "conventional-changelog-ember": "^0.3.12", - "conventional-changelog-eslint": "^1.0.9", - "conventional-changelog-express": "^0.3.6", - "conventional-changelog-jquery": "^0.1.0", - "conventional-changelog-jscs": "^0.1.0", - "conventional-changelog-jshint": "^0.3.8", - "conventional-changelog-preset-loader": "^1.1.8" - } - }, "node_modules/conventional-changelog-angular": { "version": "5.0.13", "dev": true, @@ -8045,26 +9659,11 @@ "node": ">=10" } }, - "node_modules/conventional-changelog-atom": { - "version": "0.2.8", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - } - }, - "node_modules/conventional-changelog-codemirror": { - "version": "0.3.8", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - } - }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz", + "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==", "dev": true, - "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "lodash": "^4.17.15", @@ -8074,2404 +9673,2615 @@ "node": ">=10" } }, - "node_modules/conventional-changelog-core": { - "version": "2.0.11", + "node_modules/conventional-commits-parser": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "conventional-changelog-writer": "^3.0.9", - "conventional-commits-parser": "^2.1.7", - "dateformat": "^3.0.0", - "get-pkg-repo": "^1.0.0", - "git-raw-commits": "^1.3.6", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^1.3.6", - "lodash": "^4.2.1", - "normalize-package-data": "^2.3.5", - "q": "^1.5.1", - "read-pkg": "^1.1.0", - "read-pkg-up": "^1.0.1", - "through2": "^2.0.0" - } - }, - "node_modules/conventional-changelog-core/node_modules/arrify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/conventional-changelog-core/node_modules/camelcase": { - "version": "4.1.0", + "node_modules/convert-source-map": { + "version": "1.9.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/conventional-changelog-core/node_modules/camelcase-keys": { - "version": "4.2.0", + "node_modules/cookie": { + "version": "0.4.2", "dev": true, "license": "MIT", - "dependencies": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/conventional-changelog-core/node_modules/conventional-commits-parser": { - "version": "2.1.7", + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", "dev": true, "license": "MIT", "dependencies": { - "is-text-path": "^1.0.0", - "JSONStream": "^1.0.4", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" + "is-what": "^3.14.1" }, - "bin": { - "conventional-commits-parser": "cli.js" + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/conventional-changelog-core/node_modules/dargs": { - "version": "4.1.0", + "node_modules/copy-descriptor": { + "version": "0.1.1", "dev": true, "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-core/node_modules/dateformat": { - "version": "3.0.3", + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", "dev": true, "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, "engines": { - "node": "*" + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" } }, - "node_modules/conventional-changelog-core/node_modules/find-up": { - "version": "2.1.0", + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "locate-path": "^2.0.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=4" + "node": ">=10.13.0" } }, - "node_modules/conventional-changelog-core/node_modules/git-raw-commits": { - "version": "1.3.6", + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.1.4", "dev": true, "license": "MIT", "dependencies": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0" + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, - "bin": { - "git-raw-commits": "cli.js" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-core/node_modules/indent-string": { - "version": "3.2.0", + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-core/node_modules/load-json-file": { - "version": "1.1.0", - "dev": true, + "node_modules/core-js": { + "version": "3.30.1", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/conventional-changelog-core/node_modules/locate-path": { - "version": "2.0.0", + "node_modules/core-js-compat": { + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "browserslist": "^4.22.1" }, - "engines": { - "node": ">=4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/conventional-changelog-core/node_modules/map-obj": { - "version": "2.0.0", + "node_modules/core-util-is": { + "version": "1.0.3", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/conventional-changelog-core/node_modules/meow": { - "version": "4.0.1", + "node_modules/cors": { + "version": "2.8.5", "dev": true, "license": "MIT", "dependencies": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, - "node_modules/conventional-changelog-core/node_modules/meow/node_modules/load-json-file": { - "version": "4.0.0", + "node_modules/cosmiconfig": { + "version": "7.1.0", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/conventional-changelog-core/node_modules/meow/node_modules/parse-json": { - "version": "4.0.0", + "node_modules/cosmiconfig-typescript-loader": { + "version": "2.0.2", "dev": true, "license": "MIT", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "cosmiconfig": "^7", + "ts-node": "^10.8.1" }, "engines": { - "node": ">=4" + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "typescript": ">=3" } }, - "node_modules/conventional-changelog-core/node_modules/meow/node_modules/path-type": { - "version": "3.0.0", + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/critters": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", "dev": true, - "license": "MIT", "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "pretty-bytes": "^5.3.0" } }, - "node_modules/conventional-changelog-core/node_modules/meow/node_modules/pify": { - "version": "3.0.0", + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg": { - "version": "3.0.0", + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg-up": { - "version": "3.0.0", + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/conventional-changelog-core/node_modules/meow/node_modules/strip-bom": { - "version": "3.0.0", + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/conventional-changelog-core/node_modules/minimist-options": { - "version": "3.0.2", + "node_modules/critters/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "dev": true, - "license": "MIT", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - }, - "engines": { - "node": ">= 4" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, - "node_modules/conventional-changelog-core/node_modules/p-limit": { - "version": "1.3.0", + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "p-try": "^1.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/conventional-changelog-core/node_modules/p-locate": { - "version": "2.0.0", - "dev": true, + "node_modules/cross-spawn": { + "version": "7.0.3", "license": "MIT", "dependencies": { - "p-limit": "^1.1.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/conventional-changelog-core/node_modules/p-try": { - "version": "1.0.0", + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", "dev": true, - "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, "engines": { - "node": ">=4" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node_modules/conventional-changelog-core/node_modules/parse-json": { - "version": "2.2.0", + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, - "license": "MIT", "dependencies": { - "error-ex": "^1.2.0" + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/conventional-changelog-core/node_modules/path-exists": { - "version": "3.0.0", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/conventional-changelog-core/node_modules/path-type": { - "version": "1.1.0", + "node_modules/cssesc": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/conventional-changelog-core/node_modules/quick-lru": { - "version": "1.1.0", + "node_modules/custom-event": { + "version": "1.0.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/conventional-changelog-core/node_modules/read-pkg": { - "version": "1.1.0", + "node_modules/d3": { + "version": "3.5.17", + "license": "BSD-3-Clause" + }, + "node_modules/dargs": { + "version": "7.0.0", "dev": true, "license": "MIT", - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/conventional-changelog-core/node_modules/redent": { - "version": "2.0.0", + "node_modules/dashdash": { + "version": "1.14.1", "dev": true, "license": "MIT", "dependencies": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "assert-plus": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10" } }, - "node_modules/conventional-changelog-core/node_modules/split2": { - "version": "2.2.0", + "node_modules/date-fns": { + "version": "1.30.1", "dev": true, - "license": "ISC", - "dependencies": { - "through2": "^2.0.2" - } + "license": "MIT" }, - "node_modules/conventional-changelog-core/node_modules/strip-bom": { - "version": "2.0.0", + "node_modules/date-format": { + "version": "4.0.14", "dev": true, "license": "MIT", - "dependencies": { - "is-utf8": "^0.2.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/conventional-changelog-core/node_modules/strip-indent": { - "version": "2.0.0", + "node_modules/date-now": { + "version": "0.1.4", + "dev": true + }, + "node_modules/dateformat": { + "version": "4.6.3", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/conventional-changelog-core/node_modules/through2": { - "version": "2.0.5", - "dev": true, + "node_modules/debug": { + "version": "4.3.4", "license": "MIT", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/conventional-changelog-core/node_modules/trim-newlines": { - "version": "2.0.0", - "dev": true, - "license": "MIT", + "ms": "2.1.2" + }, "engines": { - "node": ">=4" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/conventional-changelog-ember": { - "version": "0.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" + "node_modules/decamelize": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-eslint": { - "version": "1.0.9", + "node_modules/decamelize-keys": { + "version": "1.1.1", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "q": "^1.5.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-express": { - "version": "0.3.6", + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-jquery": { - "version": "0.1.0", + "node_modules/decode-uri-component": { + "version": "0.2.2", "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.4.1" + "license": "MIT", + "engines": { + "node": ">=0.10" } }, - "node_modules/conventional-changelog-jscs": { - "version": "0.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.4.1" - } + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, - "node_modules/conventional-changelog-jshint": { - "version": "0.3.8", + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", "dev": true, - "license": "ISC", "dependencies": { - "compare-func": "^1.3.1", - "q": "^1.5.1" + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-jshint/node_modules/compare-func": { - "version": "1.3.4", + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", "dev": true, - "license": "MIT", "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-jshint/node_modules/dot-prop": { - "version": "3.0.0", + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, - "license": "MIT", "dependencies": { - "is-obj": "^1.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/conventional-changelog-jshint/node_modules/is-obj": { - "version": "1.0.1", + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=14.18.0" } }, - "node_modules/conventional-changelog-preset-loader": { - "version": "1.1.8", - "dev": true, - "license": "MIT" - }, - "node_modules/conventional-changelog-writer": { - "version": "3.0.9", + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, - "license": "MIT", - "dependencies": { - "compare-func": "^1.3.1", - "conventional-commits-filter": "^1.1.6", - "dateformat": "^3.0.0", - "handlebars": "^4.0.2", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "semver": "^5.5.0", - "split": "^1.0.0", - "through2": "^2.0.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "bin": { - "conventional-changelog-writer": "cli.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/arrify": { - "version": "1.0.1", + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/camelcase": { - "version": "4.1.0", + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, - "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/camelcase-keys": { - "version": "4.2.0", + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, - "license": "MIT", "dependencies": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/compare-func": { - "version": "1.3.4", + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/dateformat": { - "version": "3.0.3", + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, - "license": "MIT", "engines": { - "node": "*" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/dot-prop": { - "version": "3.0.0", + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, - "license": "MIT", "dependencies": { - "is-obj": "^1.0.0" + "execa": "^5.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/conventional-changelog-writer/node_modules/find-up": { - "version": "2.1.0", - "dev": true, + "node_modules/defaults": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "locate-path": "^2.0.0" + "clone": "^1.0.2" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/conventional-changelog-writer/node_modules/indent-string": { - "version": "3.2.0", + "node_modules/define-properties": { + "version": "1.2.0", "dev": true, "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/conventional-changelog-writer/node_modules/is-obj": { - "version": "1.0.1", + "node_modules/define-property": { + "version": "0.2.5", "dev": true, "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/locate-path": { - "version": "2.0.0", + "node_modules/del": { + "version": "2.2.2", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/map-obj": { - "version": "2.0.0", + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", "dev": true, "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/meow": { - "version": "4.0.1", + "node_modules/del/node_modules/arrify": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/minimist-options": { - "version": "3.0.2", + "node_modules/del/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 4" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/conventional-changelog-writer/node_modules/p-limit": { - "version": "1.3.0", + "node_modules/del/node_modules/globby": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^1.0.0" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/p-locate": { - "version": "2.0.0", + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "p-limit": "^1.1.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=4" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/conventional-changelog-writer/node_modules/p-try": { + "node_modules/delayed-stream": { "version": "1.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/conventional-changelog-writer/node_modules/path-exists": { - "version": "3.0.0", + "node_modules/depd": { + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "node_modules/conventional-changelog-writer/node_modules/quick-lru": { - "version": "1.1.0", + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/conventional-changelog-writer/node_modules/read-pkg-up": { - "version": "3.0.0", + "node_modules/destroy": { + "version": "1.2.0", "dev": true, "license": "MIT", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/conventional-changelog-writer/node_modules/redent": { - "version": "2.0.0", + "node_modules/detect-file": { + "version": "1.0.0", "dev": true, "license": "MIT", - "dependencies": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "5.7.1", + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", "dev": true, - "license": "ISC", "bin": { - "semver": "bin/semver" + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/conventional-changelog-writer/node_modules/strip-indent": { - "version": "2.0.0", + "node_modules/di": { + "version": "0.0.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/conventional-changelog-writer/node_modules/through2": { - "version": "2.0.5", + "node_modules/didyoumean": { + "version": "1.2.2", "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", + "integrity": "sha512-9wfm3RLzMp/PyTFWuw9liEzdlxsdGixCW0ZTU1XDmtlAkvpVXTPGF8KnfSs0hm3BPbg19OrUPPsRkHXoREpP1g==", + "dev": true, + "engines": { + "node": ">=0.3.1" } }, - "node_modules/conventional-changelog-writer/node_modules/trim-newlines": { - "version": "2.0.0", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/conventional-changelog/node_modules/compare-func": { - "version": "1.3.4", + "node_modules/dir-glob": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/conventional-changelog/node_modules/conventional-changelog-angular": { - "version": "1.6.6", + "node_modules/dlv": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, - "license": "ISC", "dependencies": { - "compare-func": "^1.3.1", - "q": "^1.5.1" + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, - "node_modules/conventional-changelog/node_modules/dot-prop": { + "node_modules/doctrine": { "version": "3.0.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "is-obj": "^1.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/conventional-changelog/node_modules/is-obj": { - "version": "1.0.1", + "node_modules/doctypes": { + "version": "1.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "optional": true }, - "node_modules/conventional-commits-filter": { - "version": "1.1.6", + "node_modules/dom-serialize": { + "version": "2.2.1", "dev": true, "license": "MIT", "dependencies": { - "is-subset": "^0.1.1", - "modify-values": "^1.0.0" + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" } }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, - "license": "MIT", "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/convert-source-map": { - "version": "1.9.0", + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "node_modules/cookie": { - "version": "0.4.2", + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, - "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0" + }, "engines": { - "node": ">= 0.6" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "dev": true, + "node_modules/dommatrix": { + "version": "1.0.3", "license": "MIT" }, - "node_modules/copy-anything": { - "version": "2.0.6", + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, - "license": "MIT", "dependencies": { - "is-what": "^3.14.1" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { - "url": "https://github.com/sponsors/mesqueeb" + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/copy-descriptor": { - "version": "0.1.1", + "node_modules/dot-prop": { + "version": "5.3.0", "dev": true, "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, "engines": { - "node": ">= 14.15.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" + "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", + "node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", "dev": true, - "license": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "lodash": "^4.17.10" }, "engines": { - "node": ">=10.13.0" + "node": ">= 4.0.0" } }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.4", + "node_modules/eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, - "license": "MIT", "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "chalk": "4.1.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", + "node_modules/eazy-logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/core-js": { - "version": "3.30.1", - "hasInstallScript": true, - "license": "MIT", + "node_modules/eazy-logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/core-js-compat": { - "version": "3.30.1", + "node_modules/eazy-logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "browserslist": "^4.21.5" + "color-name": "~1.1.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "dev": true, - "license": "MIT" + "node_modules/eazy-logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/cors": { - "version": "2.8.5", + "node_modules/eazy-logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", + "node_modules/eazy-logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "2.0.2", + "node_modules/ecc-jsbn": { + "version": "0.1.2", "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^7", - "ts-node": "^10.8.1" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "typescript": ">=3" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/create-require": { + "node_modules/ee-first": { "version": "1.1.1", "dev": true, "license": "MIT" }, - "node_modules/critters": { - "version": "0.0.16", + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "chalk": "^4.1.0", - "css-select": "^4.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "postcss": "^8.3.7", - "pretty-bytes": "^5.3.0" + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/electron-to-chromium": { + "version": "1.4.579", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.579.tgz", + "integrity": "sha512-bJKvA+awBIzYR0xRced7PrQuRIwGQPpo6ZLP62GAShahU9fWpsNN2IP6BSP1BLDDSbxvBVRGAMWlvVVq3npmLA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 4" } }, - "node_modules/critters/node_modules/chalk": { - "version": "4.1.2", + "node_modules/encodeurl": { + "version": "1.0.2", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 0.8" } }, - "node_modules/critters/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10.0.0" } }, - "node_modules/critters/node_modules/color-name": { - "version": "1.1.4", + "node_modules/engine.io-client": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz", + "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==", "dev": true, - "license": "MIT" + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } }, - "node_modules/critters/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/engine.io-client/node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/critters/node_modules/parse5": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/engine.io-parser": { + "version": "5.0.6", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "license": "MIT", + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">= 8" + "node": ">=10.13.0" } }, - "node_modules/css-loader": { - "version": "6.7.3", + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, - "license": "MIT", "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.19", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "ansi-colors": "^4.1.1" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "node": ">=8.6" } }, - "node_modules/css-loader/node_modules/postcss-value-parser": { - "version": "4.2.0", + "node_modules/ent": { + "version": "2.2.0", "dev": true, "license": "MIT" }, - "node_modules/css-select": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, "engines": { - "node": ">= 6" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/currently-unhandled": { - "version": "0.4.1", + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "node_modules/errno": { + "version": "0.1.8", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "array-find-index": "^1.0.1" + "prr": "~1.0.1" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "errno": "cli.js" } }, - "node_modules/custom-event": { - "version": "1.0.1", + "node_modules/error": { + "version": "7.2.1", "dev": true, - "license": "MIT" - }, - "node_modules/d3": { - "version": "3.5.17", - "license": "BSD-3-Clause" + "dependencies": { + "string-template": "~0.2.1" + } }, - "node_modules/dargs": { - "version": "7.0.0", + "node_modules/error-ex": { + "version": "1.3.2", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/dashdash": { - "version": "1.14.1", + "node_modules/es-abstract": { + "version": "1.21.2", "dev": true, "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0" - }, + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/date-fns": { - "version": "1.30.1", - "dev": true, - "license": "MIT" + "node_modules/es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "dev": true }, - "node_modules/date-format": { - "version": "4.0.14", + "node_modules/es-set-tostringtag": { + "version": "2.0.1", "dev": true, "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" } }, - "node_modules/date-now": { - "version": "0.1.4", - "dev": true - }, - "node_modules/dateformat": { - "version": "4.6.3", + "node_modules/es-shim-unscopables": { + "version": "1.0.0", "dev": true, "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "has": "^1.0.3" } }, - "node_modules/debug": { - "version": "4.3.4", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/decamelize": { - "version": "1.2.0", + "node_modules/es5-shim": { + "version": "4.6.7", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/decamelize-keys": { - "version": "1.1.1", + "node_modules/es6-promise": { + "version": "4.2.8", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "es6-promise": "^4.0.3" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", + "node_modules/esbuild-wasm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz", + "integrity": "sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA==", "dev": true, - "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "dev": true, + "node_modules/escalade": { + "version": "3.1.1", "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=6" } }, - "node_modules/deep-equal": { - "version": "2.2.1", + "node_modules/escape-html": { + "version": "1.0.3", "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.0", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/deep-is": { - "version": "0.1.4", + "node_modules/escape-string-regexp": { + "version": "1.0.5", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "node_modules/default-gateway": { - "version": "6.0.3", + "node_modules/eslint": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "execa": "^5.0.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.53.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">= 10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/defaults": { - "version": "1.0.4", + "node_modules/eslint-config-prettier": { + "version": "8.8.0", + "dev": true, "license": "MIT", - "dependencies": { - "clone": "^1.0.2" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, - "node_modules/define-properties": { - "version": "1.2.0", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "ms": "^2.1.1" } }, - "node_modules/define-property": { - "version": "0.2.5", + "node_modules/eslint-module-utils": { + "version": "2.8.0", "dev": true, "license": "MIT", "dependencies": { - "is-descriptor": "^0.1.0" + "debug": "^3.2.7" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/del": { - "version": "2.2.2", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" + "ms": "^2.1.1" } }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", + "node_modules/eslint-plugin-import": { + "version": "2.26.0", "dev": true, "license": "MIT", "dependencies": { - "array-uniq": "^1.0.1" + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/del/node_modules/arrify": { - "version": "1.0.1", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "ms": "2.0.0" } }, - "node_modules/del/node_modules/globby": { - "version": "5.0.0", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "39.3.6", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "glob": "^7.1.3" + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delegates": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/depd": { - "version": "2.0.0", + "node_modules/eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" + "peerDependencies": { + "eslint": ">=2.0.0" } }, - "node_modules/dependency-graph": { - "version": "0.11.0", + "node_modules/eslint-plugin-prettier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", "dev": true, - "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + }, "engines": { - "node": ">= 0.6.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/destroy": { - "version": "1.2.0", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "license": "MIT", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/detect-file": { - "version": "1.0.0", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/detect-node": { - "version": "2.1.0", + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } }, - "node_modules/dev-ip": { - "version": "1.0.1", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, - "bin": { - "dev-ip": "lib/dev-ip.js" + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/di": { - "version": "0.0.1", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", "dev": true, - "license": "MIT" + "license": "Python-2.0" }, - "node_modules/diff": { - "version": "2.2.3", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.3.1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/dir-glob": { - "version": "3.0.1", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/dns-equal": { - "version": "1.0.0", + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", "dev": true, "license": "MIT" }, - "node_modules/dns-packet": { - "version": "5.6.0", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/doctrine": { - "version": "3.0.0", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "esutils": "^2.0.2" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=6.0.0" + "node": ">=10.13.0" } }, - "node_modules/doctypes": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/dom-serialize": { - "version": "2.2.1", + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", "dev": true, "license": "MIT", "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "4.3.1", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, + "license": "MIT", "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": ">=8" } }, - "node_modules/dommatrix": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/domutils": { - "version": "2.8.0", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "argparse": "^2.0.1" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/dot-prop": { - "version": "5.3.0", + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", "dev": true, "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/easy-extender": { - "version": "2.3.4", + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", "dev": true, - "dependencies": { - "lodash": "^4.17.10" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 4.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eazy-logger": { - "version": "4.0.1", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "chalk": "4.1.2" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">= 0.8.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eazy-logger/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/esprima": { + "version": "4.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, - "node_modules/eazy-logger/node_modules/chalk": { - "version": "4.1.2", + "node_modules/esquery": { + "version": "1.5.0", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10" } }, - "node_modules/eazy-logger/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/esrecurse": { + "version": "4.3.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "color-name": "~1.1.4" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=4.0" } }, - "node_modules/eazy-logger/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/eazy-logger/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/estraverse": { + "version": "5.3.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/eazy-logger/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/esutils": { + "version": "2.0.3", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", + "node_modules/etag": { + "version": "1.8.1", "dev": true, "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "dev": true, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter2": { + "version": "0.4.14", "license": "MIT" }, - "node_modules/electron-to-chromium": { - "version": "1.4.377", + "node_modules/eventemitter3": { + "version": "4.0.7", "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", "license": "MIT" }, - "node_modules/emojis-list": { - "version": "3.0.0", + "node_modules/events": { + "version": "3.3.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=0.8.x" } }, - "node_modules/encodeurl": { - "version": "1.0.2", + "node_modules/execa": { + "version": "5.1.1", "dev": true, "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/encoding": { - "version": "0.1.13", + "node_modules/exit": { + "version": "0.1.2", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "iconv-lite": "^0.6.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", "dependencies": { - "once": "^1.4.0" + "ms": "2.0.0" } }, - "node_modules/engine.io": { - "version": "6.4.1", + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", "dev": true, "license": "MIT", "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/engine.io-client": { - "version": "6.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - } + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" }, - "node_modules/engine.io-parser": { - "version": "5.0.6", + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, - "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.10.0" } }, - "node_modules/enhanced-resolve": { - "version": "5.13.0", + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, - "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/ent": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/entities": { - "version": "2.2.0", + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/err-code": { - "version": "2.0.3", - "license": "MIT" + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } }, - "node_modules/errno": { - "version": "0.1.8", + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, - "license": "MIT", - "optional": true, "dependencies": { - "prr": "~1.0.1" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" }, - "bin": { - "errno": "cli.js" + "engines": { + "node": ">= 0.8" } }, - "node_modules/error": { - "version": "7.2.1", + "node_modules/express/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { - "string-template": "~0.2.1" + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/error-ex": { - "version": "1.3.2", + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/es-abstract": { - "version": "1.21.2", + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "side-channel": "^1.0.4" }, "engines": { - "node": ">= 0.4" + "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.8" } }, - "node_modules/es-module-lexer": { - "version": "0.9.3", + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/es-set-tostringtag": { + "node_modules/express/node_modules/statuses": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">= 0.8" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", + "node_modules/extend": { + "version": "3.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - } + "license": "MIT" }, - "node_modules/es-to-primitive": { - "version": "1.2.1", + "node_modules/extend-shallow": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/es5-shim": { - "version": "4.6.7", - "license": "MIT", + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, "engines": { - "node": ">=0.4.0" + "node": ">=4" } }, - "node_modules/es6-promise": { - "version": "4.2.8", - "dev": true, - "license": "MIT" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "dev": true, - "license": "MIT", + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dependencies": { - "es6-promise": "^4.0.3" + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/esbuild": { - "version": "0.17.8", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "bin": { - "esbuild": "bin/esbuild" + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.8", - "@esbuild/android-arm64": "0.17.8", - "@esbuild/android-x64": "0.17.8", - "@esbuild/darwin-arm64": "0.17.8", - "@esbuild/darwin-x64": "0.17.8", - "@esbuild/freebsd-arm64": "0.17.8", - "@esbuild/freebsd-x64": "0.17.8", - "@esbuild/linux-arm": "0.17.8", - "@esbuild/linux-arm64": "0.17.8", - "@esbuild/linux-ia32": "0.17.8", - "@esbuild/linux-loong64": "0.17.8", - "@esbuild/linux-mips64el": "0.17.8", - "@esbuild/linux-ppc64": "0.17.8", - "@esbuild/linux-riscv64": "0.17.8", - "@esbuild/linux-s390x": "0.17.8", - "@esbuild/linux-x64": "0.17.8", - "@esbuild/netbsd-x64": "0.17.8", - "@esbuild/openbsd-x64": "0.17.8", - "@esbuild/sunos-x64": "0.17.8", - "@esbuild/win32-arm64": "0.17.8", - "@esbuild/win32-ia32": "0.17.8", - "@esbuild/win32-x64": "0.17.8" + "node": ">=0.6.0" } }, - "node_modules/esbuild-wasm": { - "version": "0.17.8", + "node_modules/extglob": { + "version": "2.0.4", "dev": true, "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/escalade": { - "version": "3.1.1", + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/escape-html": { - "version": "1.0.3", + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/eslint": { - "version": "8.39.0", + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "kind-of": "^6.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=0.10.0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.8.0", + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", "dev": true, "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", + "node_modules/extsprintf": { + "version": "1.3.0", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - } + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } + "license": "Apache-2.0" }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^3.2.7" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "node": ">=8.6.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", "dependencies": { - "ms": "^2.1.1" + "reusify": "^1.0.4" } }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", + "node_modules/faye-websocket": { + "version": "0.10.0", "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "websocket-driver": ">=0.5.1" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "node": ">=0.4.0" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dependencies": { - "ms": "2.0.0" + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", + "node_modules/file-entry-cache": { + "version": "6.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-jsdoc": { - "version": "39.3.6", - "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@es-joy/jsdoccomment": "~0.31.0", - "comment-parser": "1.3.1", - "debug": "^4.3.4", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "semver": "^7.3.7", - "spdx-expression-parse": "^3.0.1" + "flat-cache": "^3.0.4" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { - "version": "4.0.0", + "node_modules/file-saver": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/file-sync-cmp": { + "version": "0.1.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/eslint-plugin-prefer-arrow": { - "version": "1.2.3", + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=2.0.0" - } + "optional": true }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, - "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "minimatch": "^5.0.1" } }, - "node_modules/eslint-scope": { - "version": "7.2.0", + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "balanced-match": "^1.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "brace-expansion": "^2.0.1" }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/fill-range": { + "version": "7.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=8" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", + "node_modules/finalhandler": { + "version": "1.1.0", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">= 0.8" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "ms": "2.0.0" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", "dev": true, - "license": "Python-2.0" + "license": "MIT" }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/find-up": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -10479,1675 +12289,1632 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", + "node_modules/findup-sync": { + "version": "5.0.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 10.13.0" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", + "node_modules/fined": { + "version": "1.2.0", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.10" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/flagged-respawn": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, "bin": { - "js-yaml": "bin/js-yaml.js" + "flat": "cli.js" } }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/flat-cache": { + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=8" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", + "node_modules/flatted": { + "version": "3.2.7", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "ISC" }, - "node_modules/espree": { - "version": "9.5.1", + "node_modules/follow-redirects": { + "version": "1.15.2", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - }, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=4.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/esprima": { - "version": "4.0.1", + "node_modules/font-awesome": { + "version": "4.7.0", + "license": "(OFL-1.1 AND MIT)", + "engines": { + "node": ">=0.10.3" + } + }, + "node_modules/for-each": { + "version": "0.3.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/esquery": { - "version": "1.5.0", + "node_modules/for-own": { + "version": "1.0.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "estraverse": "^5.1.0" + "for-in": "^1.0.1" }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dependencies": { - "estraverse": "^5.2.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=4.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "engines": { - "node": ">=4.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/esutils": { - "version": "2.0.3", + "node_modules/forever-agent": { + "version": "0.6.1", "dev": true, - "license": "BSD-2-Clause", + "license": "Apache-2.0", "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/etag": { - "version": "1.8.1", + "node_modules/form-data": { + "version": "2.3.3", "dev": true, "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.12" } }, - "node_modules/eventemitter-asyncresource": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/eventemitter2": { - "version": "0.4.14", - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.8.x" + "node": ">= 0.6" } }, - "node_modules/execa": { - "version": "5.1.1", + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, "engines": { - "node": ">=10" + "node": "*" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "engines": { - "node": ">= 0.8.0" + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, - "node_modules/expand-brackets": { - "version": "2.1.4", + "node_modules/fragment-cache": { + "version": "0.2.1", "dev": true, "license": "MIT", "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "map-cache": "^0.2.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", + "node_modules/fresh": { + "version": "0.5.2", "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true }, - "node_modules/expand-tilde": { - "version": "2.0.2", + "node_modules/fs-extra": { + "version": "10.1.0", "dev": true, "license": "MIT", "dependencies": { - "homedir-polyfill": "^1.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/express": { - "version": "4.18.2", - "dev": true, - "license": "MIT", + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "dev": true, - "license": "MIT" + "node_modules/fs-monkey": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", + "dev": true }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", + "node_modules/fs.realpath": { + "version": "1.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } + "license": "ISC" }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "license": "MIT", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.6" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.2.0", + "node_modules/function.prototype.name": { + "version": "1.1.5", "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/functions-have-names": { + "version": "1.2.3", "dev": true, "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/mime": { - "version": "1.6.0", + "node_modules/gaze": { + "version": "1.1.3", "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "globule": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 4.0.0" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/on-finished": { - "version": "2.4.1", + "node_modules/gensync": { + "version": "1.0.0-beta.2", "dev": true, "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, "engines": { - "node": ">= 0.8" + "node": ">=6.9.0" } }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "license": "ISC", "engines": { - "node": ">=0.6" + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", + "node_modules/get-package-type": { + "version": "0.1.0", "dev": true, "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, "engines": { - "node": ">= 0.8" + "node": ">=8.0.0" } }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/express/node_modules/send": { - "version": "0.18.0", + "node_modules/get-stdin": { + "version": "4.0.1", "dev": true, "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/express/node_modules/send/node_modules/ms": { - "version": "2.1.3", + "node_modules/get-stream": { + "version": "6.0.1", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/express/node_modules/serve-static": { - "version": "1.15.0", + "node_modules/get-symbol-description": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.1", + "node_modules/get-value": { + "version": "2.0.6", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/extend": { - "version": "3.0.2", + "node_modules/getobject": { + "version": "1.0.2", "dev": true, - "license": "MIT" + "engines": { + "node": ">=10" + } }, - "node_modules/extend-shallow": { - "version": "2.0.1", + "node_modules/getpass": { + "version": "0.1.7", "dev": true, "license": "MIT", "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "assert-plus": "^1.0.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", + "node_modules/git-raw-commits": { + "version": "2.0.11", + "dev": true, "license": "MIT", "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", + "node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "license": "MIT", + "node_modules/glob-parent": { + "version": "5.1.2", + "devOptional": true, + "license": "ISC", "dependencies": { - "os-tmpdir": "~1.0.2" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=0.6.0" + "node": ">= 6" } }, - "node_modules/extglob": { - "version": "2.0.4", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/global-dirs": { + "version": "0.1.1", "dev": true, "license": "MIT", "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "ini": "^1.3.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/extglob/node_modules/define-property": { + "node_modules/global-dirs/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/global-modules": { "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "is-descriptor": "^1.0.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", + "node_modules/global-prefix": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "which": "bin/which" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.2.0", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "Apache-2.0" + "engines": { + "node": ">=4" + } }, - "node_modules/fast-glob": { - "version": "3.2.12", + "node_modules/globalthis": { + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.15.0", + "node_modules/globby": { + "version": "11.1.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/faye-websocket": { - "version": "0.10.0", + "node_modules/globule": { + "version": "1.3.4", "dev": true, "license": "MIT", "dependencies": { - "websocket-driver": ">=0.5.1" + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.10" } }, - "node_modules/figures": { - "version": "3.2.0", - "license": "MIT", + "node_modules/globule/node_modules/glob": { + "version": "7.1.7", + "dev": true, + "license": "ISC", "dependencies": { - "escape-string-regexp": "^1.0.5" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", + "node_modules/globule/node_modules/minimatch": { + "version": "3.0.8", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "flat-cache": "^3.0.4" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "*" } }, - "node_modules/file-saver": { - "version": "2.0.5", - "license": "MIT" - }, - "node_modules/file-sync-cmp": { - "version": "0.1.1", + "node_modules/gopd": { + "version": "1.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "devOptional": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "get-intrinsic": "^1.1.3" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/finalhandler": { - "version": "1.1.0", + "node_modules/graceful-fs": { + "version": "4.2.11", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/grunt": { + "version": "1.6.1", "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" + "dateformat": "~4.6.2", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~5.0.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.6.3", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "nopt": "~3.0.6" + }, + "bin": { + "grunt": "bin/grunt" }, "engines": { - "node": ">= 0.8" + "node": ">=16" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", + "node_modules/grunt-bump": { + "version": "0.8.0", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "semver": "^5.1.0" + }, + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": ">=1.0.1" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", + "node_modules/grunt-bump/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "MIT" + "bin": { + "semver": "bin/semver" + } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", + "node_modules/grunt-cli": { + "version": "1.4.3", "dev": true, "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "bin": { + "grunt": "bin/grunt" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/grunt-cli/node_modules/nopt": { + "version": "4.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "bin": { + "nopt": "bin/nopt.js" } }, - "node_modules/find-up": { - "version": "5.0.0", + "node_modules/grunt-coffeelint": { + "version": "0.0.16", "dev": true, - "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "coffeelint": "^1", + "coffeelint-stylish": "~0.1.0" }, "engines": { - "node": ">=10" + "node": "*" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "grunt": ">=0.4.0" } }, - "node_modules/findup-sync": { - "version": "5.0.0", + "node_modules/grunt-contrib-clean": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" + "async": "^1.5.2", + "rimraf": "^2.5.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10.0" + }, + "peerDependencies": { + "grunt": ">= 0.4.5" } }, - "node_modules/fined": { - "version": "1.2.0", + "node_modules/grunt-contrib-clean/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 0.10" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/flagged-respawn": { - "version": "1.0.1", + "node_modules/grunt-contrib-clean/node_modules/rimraf": { + "version": "2.7.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "node_modules/flat-cache": { - "version": "3.0.4", + "node_modules/grunt-contrib-coffee": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "chalk": "~1.0.0", + "coffee-script": "~1.10.0", + "lodash": "~4.3.0", + "uri-path": "~1.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 0.10.0" + }, + "peerDependencies": { + "grunt": ">= 0.4.5" } }, - "node_modules/flatted": { - "version": "3.2.7", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", + "node_modules/grunt-contrib-coffee/node_modules/ansi-regex": { + "version": "1.1.1", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "license": "MIT", "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/font-awesome": { - "version": "4.7.0", - "license": "(OFL-1.1 AND MIT)", + "node_modules/grunt-contrib-coffee/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.3" + "node": ">=0.10.0" } }, - "node_modules/for-each": { - "version": "0.3.3", + "node_modules/grunt-contrib-coffee/node_modules/chalk": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "ansi-styles": "^2.0.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^1.0.3", + "strip-ansi": "^2.0.1", + "supports-color": "^1.3.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/for-in": { - "version": "1.0.2", + "node_modules/grunt-contrib-coffee/node_modules/coffee-script": { + "version": "1.10.0", "dev": true, "license": "MIT", + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/for-own": { - "version": "1.0.0", + "node_modules/grunt-contrib-coffee/node_modules/has-ansi": { + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { - "for-in": "^1.0.1" + "ansi-regex": "^1.1.0", + "get-stdin": "^4.0.1" + }, + "bin": { + "has-ansi": "cli.js" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/foreground-child": { - "version": "3.1.1", - "license": "ISC", + "node_modules/grunt-contrib-coffee/node_modules/lodash": { + "version": "4.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/grunt-contrib-coffee/node_modules/strip-ansi": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "ansi-regex": "^1.0.0" }, - "engines": { - "node": ">=14" + "bin": { + "strip-ansi": "cli.js" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.0.1", - "license": "ISC", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/forever-agent": { - "version": "0.6.1", + "node_modules/grunt-contrib-coffee/node_modules/supports-color": { + "version": "1.3.1", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "bin": { + "supports-color": "cli.js" + }, "engines": { - "node": "*" + "node": ">=0.8.0" } }, - "node_modules/form-data": { - "version": "2.3.3", + "node_modules/grunt-contrib-concat": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "chalk": "^1.0.0", + "source-map": "^0.5.3" }, "engines": { - "node": ">= 0.12" + "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", + "node_modules/grunt-contrib-concat/node_modules/ansi-regex": { + "version": "2.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/fraction.js": { - "version": "4.2.0", + "node_modules/grunt-contrib-concat/node_modules/ansi-styles": { + "version": "2.2.1", "dev": true, "license": "MIT", "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" + "node": ">=0.10.0" } }, - "node_modules/fragment-cache": { - "version": "0.2.1", + "node_modules/grunt-contrib-concat/node_modules/chalk": { + "version": "1.1.3", "dev": true, "license": "MIT", "dependencies": { - "map-cache": "^0.2.2" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/fresh": { - "version": "0.5.2", + "node_modules/grunt-contrib-concat/node_modules/source-map": { + "version": "0.5.7", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/fs-extra": { - "version": "10.1.0", + "node_modules/grunt-contrib-concat/node_modules/strip-ansi": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/fs-minipass": { - "version": "3.0.2", - "license": "ISC", + "node_modules/grunt-contrib-concat/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-contrib-connect": { + "version": "1.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^5.0.0" + "async": "^1.5.2", + "connect": "^3.4.0", + "connect-livereload": "^0.5.0", + "http2": "^3.3.4", + "morgan": "^1.6.1", + "opn": "^4.0.0", + "portscanner": "^1.0.0", + "serve-index": "^1.7.1", + "serve-static": "^1.10.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" } }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", + "node_modules/grunt-contrib-connect/node_modules/opn": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "dev": true, - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", + "node_modules/grunt-contrib-connect/node_modules/portscanner": { + "version": "1.2.0", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "async": "1.5.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.4", + "npm": ">=1.0.0" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", + "node_modules/grunt-contrib-copy": { + "version": "1.0.0", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "4.0.4", - "license": "ISC", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.10.0" } }, - "node_modules/gaze": { - "version": "1.1.3", + "node_modules/grunt-contrib-copy/node_modules/ansi-regex": { + "version": "2.1.1", "dev": true, "license": "MIT", - "dependencies": { - "globule": "^1.0.0" - }, "engines": { - "node": ">= 4.0.0" + "node": ">=0.10.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", + "node_modules/grunt-contrib-copy/node_modules/ansi-styles": { + "version": "2.2.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=0.10.0" } }, - "node_modules/get-intrinsic": { - "version": "1.2.0", + "node_modules/grunt-contrib-copy/node_modules/chalk": { + "version": "1.1.3", "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo": { - "version": "1.4.0", + "node_modules/grunt-contrib-copy/node_modules/strip-ansi": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", - "through2": "^2.0.0" + "ansi-regex": "^2.0.0" }, - "bin": { - "get-pkg-repo": "cli.js" - } - }, - "node_modules/get-pkg-repo/node_modules/camelcase": { - "version": "2.1.1", - "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo/node_modules/camelcase-keys": { - "version": "2.1.0", + "node_modules/grunt-contrib-copy/node_modules/supports-color": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/get-pkg-repo/node_modules/indent-string": { - "version": "2.1.0", + "node_modules/grunt-contrib-jshint": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "repeating": "^2.0.0" + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.1" }, "engines": { "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" } }, - "node_modules/get-pkg-repo/node_modules/map-obj": { - "version": "1.0.1", + "node_modules/grunt-contrib-jshint/node_modules/ansi-regex": { + "version": "2.1.1", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo/node_modules/meow": { - "version": "3.7.0", + "node_modules/grunt-contrib-jshint/node_modules/ansi-styles": { + "version": "2.2.1", "dev": true, "license": "MIT", - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo/node_modules/redent": { - "version": "1.0.0", + "node_modules/grunt-contrib-jshint/node_modules/chalk": { + "version": "1.1.3", "dev": true, "license": "MIT", "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo/node_modules/strip-indent": { - "version": "1.0.1", + "node_modules/grunt-contrib-jshint/node_modules/strip-ansi": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" + "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/trim-newlines": { - "version": "1.0.0", + "node_modules/grunt-contrib-jshint/node_modules/supports-color": { + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/get-stdin": { - "version": "4.0.1", + "node_modules/grunt-contrib-watch": { + "version": "1.1.0", "dev": true, "license": "MIT", + "dependencies": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", + "node_modules/grunt-contrib-watch/node_modules/async": { + "version": "2.6.4", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "lodash": "^4.17.14" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", + "node_modules/grunt-env": { + "version": "0.4.4", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" + "ini": "~1.3.0", + "lodash": "~2.4.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/getobject": { - "version": "1.0.2", + "node_modules/grunt-env/node_modules/ini": { + "version": "1.3.8", "dev": true, - "engines": { - "node": ">=10" - } + "license": "ISC" }, - "node_modules/getpass": { - "version": "0.1.7", + "node_modules/grunt-env/node_modules/lodash": { + "version": "2.4.2", "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } + "engines": [ + "node", + "rhino" + ], + "license": "MIT" }, - "node_modules/git-raw-commits": { - "version": "2.0.11", + "node_modules/grunt-html2js": { + "version": "0.6.0", "dev": true, - "license": "MIT", + "license": "SEE LICENSE IN LICENSE-MIT", "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" + "chokidar": "^2", + "html-minifier": "^3" }, "engines": { - "node": ">=10" + "node": ">= 0.8.0" + }, + "optionalDependencies": { + "pug": "^2" + }, + "peerDependencies": { + "grunt": ">=0.4.0" } }, - "node_modules/git-remote-origin-url": { + "node_modules/grunt-html2js/node_modules/anymatch": { "version": "2.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "node_modules/git-semver-tags": { - "version": "1.3.6", + "node_modules/grunt-html2js/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", "dev": true, "license": "MIT", "dependencies": { - "meow": "^4.0.0", - "semver": "^5.5.0" + "remove-trailing-separator": "^1.0.1" }, - "bin": { - "git-semver-tags": "cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/arrify": { - "version": "1.0.1", + "node_modules/grunt-html2js/node_modules/binary-extensions": { + "version": "1.13.1", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/camelcase": { - "version": "4.1.0", + "node_modules/grunt-html2js/node_modules/braces": { + "version": "2.3.2", "dev": true, "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/camelcase-keys": { - "version": "4.2.0", + "node_modules/grunt-html2js/node_modules/chokidar": { + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" }, - "engines": { - "node": ">=4" + "optionalDependencies": { + "fsevents": "^1.2.7" } }, - "node_modules/git-semver-tags/node_modules/find-up": { - "version": "2.1.0", + "node_modules/grunt-html2js/node_modules/define-property": { + "version": "2.0.2", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^2.0.0" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/indent-string": { - "version": "3.2.0", + "node_modules/grunt-html2js/node_modules/fill-range": { + "version": "4.0.0", "dev": true, "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/locate-path": { - "version": "2.0.0", + "node_modules/grunt-html2js/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", "dev": true, - "license": "MIT", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "bindings": "^1.5.0", + "nan": "^2.12.1" }, "engines": { - "node": ">=4" + "node": ">= 4.0" } }, - "node_modules/git-semver-tags/node_modules/map-obj": { - "version": "2.0.0", + "node_modules/grunt-html2js/node_modules/glob-parent": { + "version": "3.1.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "node_modules/git-semver-tags/node_modules/meow": { - "version": "4.0.1", + "node_modules/grunt-html2js/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" + "is-extglob": "^2.1.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/minimist-options": { - "version": "3.0.2", + "node_modules/grunt-html2js/node_modules/is-accessor-descriptor": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "kind-of": "^6.0.0" }, "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/p-limit": { - "version": "1.3.0", + "node_modules/grunt-html2js/node_modules/is-binary-path": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^1.0.0" + "binary-extensions": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/p-locate": { - "version": "2.0.0", + "node_modules/grunt-html2js/node_modules/is-data-descriptor": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^1.1.0" + "kind-of": "^6.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/p-try": { - "version": "1.0.0", + "node_modules/grunt-html2js/node_modules/is-descriptor": { + "version": "1.0.2", "dev": true, "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/path-exists": { - "version": "3.0.0", + "node_modules/grunt-html2js/node_modules/is-extendable": { + "version": "1.0.1", "dev": true, "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/quick-lru": { - "version": "1.1.0", + "node_modules/grunt-html2js/node_modules/is-number": { + "version": "3.0.0", "dev": true, "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/read-pkg-up": { - "version": "3.0.0", + "node_modules/grunt-html2js/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/redent": { - "version": "2.0.0", + "node_modules/grunt-html2js/node_modules/micromatch": { + "version": "3.1.10", "dev": true, "license": "MIT", "dependencies": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "5.7.1", + "node_modules/grunt-html2js/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/git-semver-tags/node_modules/strip-indent": { - "version": "2.0.0", + "node_modules/grunt-html2js/node_modules/readdirp": { + "version": "2.2.1", "dev": true, "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, "engines": { - "node": ">=4" + "node": ">=0.10" } }, - "node_modules/git-semver-tags/node_modules/trim-newlines": { - "version": "2.0.0", + "node_modules/grunt-html2js/node_modules/to-regex-range": { + "version": "2.1.1", "dev": true, "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", + "node_modules/grunt-karma": { + "version": "2.0.0", "dev": true, - "license": "BSD", + "license": "MIT", "dependencies": { - "ini": "^1.3.2" + "lodash": "^3.10.1" + }, + "peerDependencies": { + "grunt": ">=0.4.x", + "karma": "^0.13.0 || >= 0.14.0-rc.0" } }, - "node_modules/gitconfiglocal/node_modules/ini": { - "version": "1.3.8", + "node_modules/grunt-karma/node_modules/lodash": { + "version": "3.10.1", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/glob": { - "version": "8.1.0", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, + "node_modules/grunt-known-options": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "devOptional": true, - "license": "ISC", + "node_modules/grunt-legacy-log": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" }, "engines": { - "node": ">= 6" + "node": ">= 0.10.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", + "node_modules/grunt-legacy-log-utils": { + "version": "2.1.0", "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" + "chalk": "~4.1.0", + "lodash": "~4.17.19" }, "engines": { "node": ">=10" } }, - "node_modules/global-dirs": { - "version": "0.1.1", + "node_modules/grunt-legacy-log-utils/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "ini": "^1.3.4" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/global-dirs/node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" - }, - "node_modules/global-modules": { - "version": "1.0.0", + "node_modules/grunt-legacy-log-utils/node_modules/chalk": { + "version": "4.1.2", "dev": true, "license": "MIT", "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/global-prefix": { - "version": "1.0.2", + "node_modules/grunt-legacy-log-utils/node_modules/color-convert": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/global-prefix/node_modules/ini": { - "version": "1.3.8", + "node_modules/grunt-legacy-log-utils/node_modules/color-name": { + "version": "1.1.4", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", + "node_modules/grunt-legacy-log-utils/node_modules/has-flag": { + "version": "4.0.0", "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/globals": { - "version": "11.12.0", + "node_modules/grunt-legacy-log-utils/node_modules/supports-color": { + "version": "7.2.0", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/globalthis": { - "version": "1.0.3", + "node_modules/grunt-legacy-util": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/globby": { - "version": "11.1.0", + "node_modules/grunt-legacy-util/node_modules/async": { + "version": "3.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/grunt-legacy-util/node_modules/sprintf-js": { + "version": "1.1.2", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/grunt-legacy-util/node_modules/underscore.string": { + "version": "3.3.6", "dev": true, "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=10" + "node": "*" + } + }, + "node_modules/grunt-lib-contrib": { + "version": "0.6.1", + "dependencies": { + "zlib-browserify": "0.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/globule": { - "version": "1.3.4", + "node_modules/grunt-newer": { + "version": "1.3.0", "dev": true, "license": "MIT", "dependencies": { - "glob": "~7.1.1", - "lodash": "^4.17.21", - "minimatch": "~3.0.2" + "async": "^1.5.2", + "rimraf": "^2.5.2" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": ">=0.4.1" } }, - "node_modules/globule/node_modules/glob": { - "version": "7.1.7", + "node_modules/grunt-newer/node_modules/glob": { + "version": "7.2.3", "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -12158,163 +13925,197 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/globule/node_modules/minimatch": { - "version": "3.0.8", + "node_modules/grunt-newer/node_modules/rimraf": { + "version": "2.7.1", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "glob": "^7.1.3" }, - "engines": { - "node": "*" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/gopd": { - "version": "1.0.1", + "node_modules/grunt-ng-annotate": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3" + "lodash.clonedeep": "^4.5.0", + "ng-annotate": "^1.2.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4.4 <5 || >=6.9" + }, + "peerDependencies": { + "grunt": ">=0.4.5" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/grunt": { - "version": "1.6.1", + "node_modules/grunt-postcss": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.8.0.tgz", + "integrity": "sha512-Y/GlBwlSXET86uudGM6Sn5Qtjas5PT2AwjMGqKNnSaoxJSfhNY4chpAnOs72VQ4y3LqrP0y5f/i7CroyZqsuJA==", "dev": true, - "license": "MIT", "dependencies": { - "dateformat": "~4.6.2", - "eventemitter2": "~0.4.13", - "exit": "~0.1.2", - "findup-sync": "~5.0.0", - "glob": "~7.1.6", - "grunt-cli": "~1.4.3", - "grunt-known-options": "~2.0.0", - "grunt-legacy-log": "~3.0.0", - "grunt-legacy-util": "~2.0.1", - "iconv-lite": "~0.6.3", - "js-yaml": "~3.14.0", - "minimatch": "~3.0.4", - "nopt": "~3.0.6" + "chalk": "^1.0.0", + "diff": "^2.0.2", + "postcss": "^5.0.0" }, - "bin": { - "grunt": "bin/grunt" + "engines": { + "node": ">= 0.12.0" }, + "peerDependencies": { + "grunt": ">=0.4.5" + } + }, + "node_modules/grunt-postcss/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, "engines": { - "node": ">=16" + "node": ">=0.10.0" } }, - "node_modules/grunt-browser-sync": { - "version": "2.2.0", + "node_modules/grunt-postcss/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, - "dependencies": { - "browser-sync": "^2.6.4" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-bump": { - "version": "0.8.0", + "node_modules/grunt-postcss/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "^5.1.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" - }, - "peerDependencies": { - "grunt": ">=1.0.1" + "node": ">=0.10.0" } }, - "node_modules/grunt-bump/node_modules/semver": { - "version": "5.7.1", + "node_modules/grunt-postcss/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/grunt-cli": { - "version": "1.4.3", + "node_modules/grunt-postcss/node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, - "license": "MIT", "dependencies": { - "grunt-known-options": "~2.0.0", - "interpret": "~1.1.0", - "liftup": "~3.0.1", - "nopt": "~4.0.1", - "v8flags": "~3.2.0" - }, - "bin": { - "grunt": "bin/grunt" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" }, "engines": { - "node": ">=10" + "node": ">=0.12" } }, - "node_modules/grunt-cli/node_modules/nopt": { - "version": "4.0.3", + "node_modules/grunt-postcss/node_modules/postcss/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "dev": true, - "license": "ISC", "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" + "has-flag": "^1.0.0" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/grunt-coffeelint": { - "version": "0.0.16", + "node_modules/grunt-postcss/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/grunt-postcss/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { - "coffeelint": "^1", - "coffeelint-stylish": "~0.1.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" + } + }, + "node_modules/grunt-postcss/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-preprocess": { + "version": "5.1.0", + "dev": true, + "dependencies": { + "lodash": "^4.5.0", + "preprocess": "^3.0.2" + }, + "bin": { + "grunt-preprocess": "bin/grunt-preprocess" + }, + "engines": { + "node": ">=0.10.0" }, "peerDependencies": { "grunt": ">=0.4.0" } }, - "node_modules/grunt-contrib-clean": { - "version": "1.0.0", + "node_modules/grunt-sass": { + "version": "3.1.0", "dev": true, "license": "MIT", - "dependencies": { - "async": "^1.5.2", - "rimraf": "^2.5.1" + "engines": { + "node": ">=8" }, + "peerDependencies": { + "grunt": ">=1" + } + }, + "node_modules/grunt-sass-globbing": { + "version": "1.5.1", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10.0" }, "peerDependencies": { - "grunt": ">= 0.4.5" + "grunt": ">=0.4.0" } }, - "node_modules/grunt-contrib-clean/node_modules/glob": { - "version": "7.2.3", + "node_modules/grunt/node_modules/glob": { + "version": "7.1.7", "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -12325,872 +14126,802 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/grunt-contrib-clean/node_modules/rimraf": { - "version": "2.7.1", + "node_modules/grunt/node_modules/minimatch": { + "version": "3.0.8", "dev": true, "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "brace-expansion": "^1.1.7" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "*" } }, - "node_modules/grunt-contrib-coffee": { - "version": "1.0.0", + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", "dev": true, "license": "MIT", "dependencies": { - "chalk": "~1.0.0", - "coffee-script": "~1.10.0", - "lodash": "~4.3.0", - "uri-path": "~1.0.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" }, "engines": { - "node": ">= 0.10.0" - }, - "peerDependencies": { - "grunt": ">= 0.4.5" + "node": ">=6" } }, - "node_modules/grunt-contrib-coffee/node_modules/ansi-regex": { - "version": "1.1.1", + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/grunt-contrib-coffee/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/grunt-contrib-coffee/node_modules/chalk": { - "version": "1.0.0", - "dev": true, + "node_modules/has": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "ansi-styles": "^2.0.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^1.0.3", - "strip-ansi": "^2.0.1", - "supports-color": "^1.3.0" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4.0" } }, - "node_modules/grunt-contrib-coffee/node_modules/coffee-script": { - "version": "1.10.0", + "node_modules/has-ansi": { + "version": "2.0.0", "dev": true, "license": "MIT", - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" + "dependencies": { + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-coffee/node_modules/has-ansi": { - "version": "1.0.3", + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^1.1.0", - "get-stdin": "^4.0.1" - }, - "bin": { - "has-ansi": "cli.js" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-coffee/node_modules/lodash": { - "version": "4.3.0", + "node_modules/has-bigints": { + "version": "1.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/grunt-contrib-coffee/node_modules/strip-ansi": { - "version": "2.0.1", + "node_modules/has-flag": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^1.0.0" - }, - "bin": { - "strip-ansi": "cli.js" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/grunt-contrib-coffee/node_modules/supports-color": { - "version": "1.3.1", + "node_modules/has-property-descriptors": { + "version": "1.0.0", "dev": true, "license": "MIT", - "bin": { - "supports-color": "cli.js" + "dependencies": { + "get-intrinsic": "^1.1.1" }, - "engines": { - "node": ">=0.8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-contrib-concat": { + "node_modules/has-proto": { "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "chalk": "^1.0.0", - "source-map": "^0.5.3" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" }, - "peerDependencies": { - "grunt": ">=0.4.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-contrib-concat/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-contrib-concat/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/has-tostringtag": { + "version": "1.0.0", "dev": true, "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-contrib-concat/node_modules/chalk": { - "version": "1.1.3", + "node_modules/has-value": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-concat/node_modules/source-map": { - "version": "0.5.7", + "node_modules/has-values": { + "version": "1.0.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-concat/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-concat/node_modules/supports-color": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-connect": { - "version": "1.0.2", + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", "dev": true, "license": "MIT", "dependencies": { - "async": "^1.5.2", - "connect": "^3.4.0", - "connect-livereload": "^0.5.0", - "http2": "^3.3.4", - "morgan": "^1.6.1", - "opn": "^4.0.0", - "portscanner": "^1.0.0", - "serve-index": "^1.7.1", - "serve-static": "^1.10.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" } }, - "node_modules/grunt-contrib-connect/node_modules/opn": { - "version": "4.0.2", + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-connect/node_modules/portscanner": { - "version": "1.2.0", - "dev": true, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dependencies": { - "async": "1.5.2" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=0.4", - "npm": ">=1.0.0" + "node": ">= 0.4" } }, - "node_modules/grunt-contrib-copy": { - "version": "1.0.0", + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^1.1.1", - "file-sync-cmp": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" } }, - "node_modules/grunt-contrib-copy/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true }, - "node_modules/grunt-contrib-copy/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/he": { + "version": "1.2.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "bin": { + "he": "bin/he" } }, - "node_modules/grunt-contrib-copy/node_modules/chalk": { - "version": "1.1.3", + "node_modules/homedir-polyfill": { + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "parse-passwd": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-copy/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, + "node_modules/hooker": { + "version": "0.2.3", "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/grunt-contrib-copy/node_modules/supports-color": { - "version": "2.0.0", + "node_modules/hosted-git-info": { + "version": "2.8.9", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } + "license": "ISC" }, - "node_modules/grunt-contrib-jshint": { - "version": "1.0.0", + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^1.1.1", - "hooker": "^0.2.3", - "jshint": "~2.9.1" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "node_modules/grunt-contrib-jshint/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] }, - "node_modules/grunt-contrib-jshint/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/html-escaper": { + "version": "2.0.2", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/grunt-contrib-jshint/node_modules/chalk": { - "version": "1.1.3", + "node_modules/html-minifier": { + "version": "3.5.21", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "bin": { + "html-minifier": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/grunt-contrib-jshint/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/html-minifier/node_modules/commander": { + "version": "2.17.1", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/grunt-contrib-jshint/node_modules/supports-color": { - "version": "2.0.0", + "node_modules/html-minifier/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/grunt-contrib-uglify": { - "version": "2.0.0", + "node_modules/html-minifier/node_modules/uglify-js": { + "version": "3.4.10", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "chalk": "^1.0.0", - "lodash.assign": "^4.0.9", - "maxmin": "^1.1.0", - "uglify-js": "~2.7.0", - "uri-path": "^1.0.0" + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/grunt-contrib-uglify/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/html-minifier/node_modules/uglify-js/node_modules/commander": { + "version": "2.19.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/grunt-contrib-uglify/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/htmlparser2": { + "version": "3.8.3", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" } }, - "node_modules/grunt-contrib-uglify/node_modules/chalk": { - "version": "1.1.3", + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "0.2.2", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" } }, - "node_modules/grunt-contrib-uglify/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" }, - "node_modules/grunt-contrib-uglify/node_modules/supports-color": { - "version": "2.0.0", + "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/grunt-contrib-watch": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.0", - "gaze": "^1.1.0", - "lodash": "^4.17.10", - "tiny-lr": "^1.1.1" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/htmlparser2/node_modules/domelementtype": { + "version": "1.3.1", + "dev": true, + "license": "BSD-2-Clause" }, - "node_modules/grunt-contrib-watch/node_modules/async": { - "version": "2.6.4", + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "2.3.0", "dev": true, - "license": "MIT", "dependencies": { - "lodash": "^4.17.14" + "domelementtype": "1" } }, - "node_modules/grunt-conventional-changelog": { - "version": "6.1.0", + "node_modules/htmlparser2/node_modules/domutils": { + "version": "1.5.1", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^1.1.0", - "concat-stream": "^1.5.0", - "conventional-changelog": "^1.1.0", - "plur": "^2.0.0", - "q": "^1.4.1" - }, - "engines": { - "node": ">=0.10.0" + "dom-serializer": "0", + "domelementtype": "1" } }, - "node_modules/grunt-conventional-changelog/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/htmlparser2/node_modules/entities": { + "version": "1.0.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "BSD-like" }, - "node_modules/grunt-conventional-changelog/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/htmlparser2/node_modules/isarray": { + "version": "0.0.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/grunt-conventional-changelog/node_modules/chalk": { - "version": "1.1.3", + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "1.1.14", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/grunt-conventional-changelog/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/htmlparser2/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "license": "MIT" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/grunt-conventional-changelog/node_modules/supports-color": { - "version": "2.0.0", + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">= 0.8" } }, - "node_modules/grunt-env": { - "version": "0.4.4", + "node_modules/http-parser-js": { + "version": "0.5.8", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", "dev": true, + "license": "MIT", "dependencies": { - "ini": "~1.3.0", - "lodash": "~2.4.1" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": "*" + "node": ">=8.0.0" } }, - "node_modules/grunt-env/node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" - }, - "node_modules/grunt-env/node_modules/lodash": { - "version": "2.4.2", - "dev": true, - "engines": [ - "node", - "rhino" - ], - "license": "MIT" + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/grunt-html2js": { - "version": "0.6.0", + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, - "license": "SEE LICENSE IN LICENSE-MIT", "dependencies": { - "chokidar": "^2", - "html-minifier": "^3" + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" }, "engines": { - "node": ">= 0.8.0" - }, - "optionalDependencies": { - "pug": "^2" + "node": ">=12.0.0" }, "peerDependencies": { - "grunt": ">=0.4.0" + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, - "node_modules/grunt-html2js/node_modules/anymatch": { - "version": "2.0.0", + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "license": "ISC", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grunt-html2js/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", + "node_modules/http-signature": { + "version": "1.2.0", "dev": true, "license": "MIT", "dependencies": { - "remove-trailing-separator": "^1.0.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "node_modules/grunt-html2js/node_modules/binary-extensions": { - "version": "1.13.1", + "node_modules/http2": { + "version": "3.3.7", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0 <9.0.0" } }, - "node_modules/grunt-html2js/node_modules/braces": { - "version": "2.3.2", - "dev": true, - "license": "MIT", + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/grunt-html2js/node_modules/chokidar": { - "version": "2.1.8", + "node_modules/human-signals": { + "version": "2.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" } }, - "node_modules/grunt-html2js/node_modules/define-property": { - "version": "2.0.2", + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "bin": { + "husky": "lib/bin.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/grunt-html2js/node_modules/fill-range": { - "version": "4.0.0", - "dev": true, + "node_modules/iconv-lite": { + "version": "0.6.3", + "devOptional": true, "license": "MIT", "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-html2js/node_modules/glob-parent": { - "version": "3.1.0", + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/grunt-html2js/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/grunt-html2js/node_modules/is-accessor-descriptor": { - "version": "1.0.0", + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.4", "dev": true, "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, - "node_modules/grunt-html2js/node_modules/is-binary-path": { - "version": "1.0.1", - "dev": true, - "license": "MIT", + "node_modules/ignore-walk": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dependencies": { - "binary-extensions": "^1.0.0" + "minimatch": "^9.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/grunt-html2js/node_modules/is-data-descriptor": { - "version": "1.0.0", - "dev": true, - "license": "MIT", + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" + "balanced-match": "^1.0.0" } }, - "node_modules/grunt-html2js/node_modules/is-descriptor": { - "version": "1.0.2", - "dev": true, - "license": "MIT", + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/grunt-html2js/node_modules/is-extendable": { - "version": "1.0.1", + "node_modules/image-size": { + "version": "0.5.5", "dev": true, "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" + "optional": true, + "bin": { + "image-size": "bin/image-size.js" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-html2js/node_modules/is-number": { - "version": "3.0.0", + "node_modules/immediate": { + "version": "3.0.6", "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/grunt-html2js/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-html2js/node_modules/micromatch": { - "version": "3.1.10", + "node_modules/import-fresh": { + "version": "3.3.0", "dev": true, "license": "MIT", "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grunt-html2js/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/grunt-html2js/node_modules/readdirp": { - "version": "2.2.1", - "dev": true, + "node_modules/imurmurhash": { + "version": "0.1.4", "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, "engines": { - "node": ">=0.10" + "node": ">=0.8.19" } }, - "node_modules/grunt-html2js/node_modules/to-regex-range": { - "version": "2.1.1", - "dev": true, + "node_modules/indent-string": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/grunt-karma": { - "version": "2.0.0", + "node_modules/inflight": { + "version": "1.0.6", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "lodash": "^3.10.1" - }, - "peerDependencies": { - "grunt": ">=0.4.x", - "karma": "^0.13.0 || >= 0.14.0-rc.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/grunt-karma/node_modules/lodash": { - "version": "3.10.1", - "dev": true, - "license": "MIT" - }, - "node_modules/grunt-known-options": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" }, - "node_modules/grunt-legacy-log": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.19" - }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "engines": { - "node": ">= 0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/grunt-legacy-log-utils": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/inquirer": { + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", "dependencies": { - "chalk": "~4.1.0", - "lodash": "~4.17.19" + "@ljharb/through": "^2.3.9", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=10" + "node": ">=14.18.0" } }, - "node_modules/grunt-legacy-log-utils/node_modules/ansi-styles": { + "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -13201,25 +14932,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/grunt-legacy-log-utils/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/grunt-legacy-log-utils/node_modules/color-convert": { + "node_modules/inquirer/node_modules/color-convert": { "version": "2.0.1", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -13227,506 +14954,526 @@ "node": ">=7.0.0" } }, - "node_modules/grunt-legacy-log-utils/node_modules/color-name": { + "node_modules/inquirer/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/grunt-legacy-log-utils/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/inquirer/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/grunt-legacy-log-utils/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/internal-slot": { + "version": "1.0.5", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/grunt-legacy-util": { - "version": "2.0.1", + "node_modules/interpret": { + "version": "1.1.0", "dev": true, + "license": "MIT" + }, + "node_modules/invert-kv": { + "version": "1.0.0", "license": "MIT", - "dependencies": { - "async": "~3.2.0", - "exit": "~0.1.2", - "getobject": "~1.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.21", - "underscore.string": "~3.3.5", - "which": "~2.0.2" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/grunt-legacy-util/node_modules/async": { - "version": "3.2.4", + "node_modules/ip": { + "version": "1.1.8", "dev": true, "license": "MIT" }, - "node_modules/grunt-legacy-util/node_modules/sprintf-js": { - "version": "1.1.2", + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true, - "license": "BSD-3-Clause" + "engines": { + "node": ">= 10" + } }, - "node_modules/grunt-legacy-util/node_modules/underscore.string": { - "version": "3.3.6", + "node_modules/is-absolute": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "sprintf-js": "^1.1.1", - "util-deprecate": "^1.0.2" + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/grunt-lib-contrib": { - "version": "0.6.1", + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", "dependencies": { - "zlib-browserify": "0.0.1" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/grunt-newer": { - "version": "1.3.0", + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", "dev": true, "license": "MIT", "dependencies": { - "async": "^1.5.2", - "rimraf": "^2.5.2" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">= 0.8.0" - }, - "peerDependencies": { - "grunt": ">=0.4.1" + "node": ">=0.10.0" } }, - "node_modules/grunt-newer/node_modules/glob": { - "version": "7.2.3", + "node_modules/is-array-buffer": { + "version": "3.0.2", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-newer/node_modules/rimraf": { - "version": "2.7.1", + "node_modules/is-arrayish": { + "version": "0.2.1", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "has-bigints": "^1.0.1" }, - "bin": { - "rimraf": "bin.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-ng-annotate": { - "version": "3.0.0", - "dev": true, + "node_modules/is-binary-path": { + "version": "2.1.0", + "devOptional": true, "license": "MIT", "dependencies": { - "lodash.clonedeep": "^4.5.0", - "ng-annotate": "^1.2.1" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=4.4 <5 || >=6.9" - }, - "peerDependencies": { - "grunt": ">=0.4.5" + "node": ">=8" } }, - "node_modules/grunt-postcss": { - "version": "0.8.0", + "node_modules/is-boolean-object": { + "version": "1.1.2", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^1.0.0", - "diff": "^2.0.2", - "postcss": "^5.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 0.12.0" + "node": ">= 0.4" }, - "peerDependencies": { - "grunt": ">=0.4.5" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-postcss/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/is-buffer": { + "version": "1.1.6", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/grunt-postcss/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/is-callable": { + "version": "1.2.7", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-postcss/node_modules/chalk": { - "version": "1.1.3", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-postcss/node_modules/has-flag": { - "version": "1.0.0", + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", "dev": true, "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-postcss/node_modules/postcss": { - "version": "5.2.18", + "node_modules/is-date-object": { + "version": "1.0.5", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/grunt-postcss/node_modules/postcss/node_modules/supports-color": { - "version": "3.2.3", + "node_modules/is-descriptor": { + "version": "0.1.6", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^1.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/grunt-postcss/node_modules/source-map": { - "version": "0.5.7", + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-postcss/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grunt-postcss/node_modules/supports-color": { - "version": "2.0.0", + "node_modules/is-expression": { + "version": "3.0.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.8.0" + "optional": true, + "dependencies": { + "acorn": "~4.0.2", + "object-assign": "^4.0.1" } }, - "node_modules/grunt-preprocess": { - "version": "5.1.0", + "node_modules/is-expression/node_modules/acorn": { + "version": "4.0.13", "dev": true, - "dependencies": { - "lodash": "^4.5.0", - "preprocess": "^3.0.2" - }, + "license": "MIT", + "optional": true, "bin": { - "grunt-preprocess": "bin/grunt-preprocess" + "acorn": "bin/acorn" }, "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" + "node": ">=0.4.0" } }, - "node_modules/grunt-sass": { - "version": "3.1.0", + "node_modules/is-extendable": { + "version": "0.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" - }, - "peerDependencies": { - "grunt": ">=1" + "node": ">=0.10.0" } }, - "node_modules/grunt-sass-globbing": { - "version": "1.5.1", - "dev": true, + "node_modules/is-extglob": { + "version": "2.1.1", + "devOptional": true, "license": "MIT", "engines": { - "node": ">= 0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/grunt/node_modules/glob": { - "version": "7.1.7", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/grunt/node_modules/minimatch": { - "version": "3.0.8", - "dev": true, - "license": "ISC", + "node_modules/is-glob": { + "version": "4.0.3", + "devOptional": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "is-extglob": "^2.1.1" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/gzip-size": { + "node_modules/is-inside-container": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, - "license": "MIT", "dependencies": { - "browserify-zlib": "^0.1.4", - "concat-stream": "^1.4.1" + "is-docker": "^3.0.0" }, "bin": { - "gzip-size": "cli.js" + "is-inside-container": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/handle-thing": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/handlebars": { - "version": "4.7.7", + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, "bin": { - "handlebars": "bin/handlebars" + "is-docker": "cli.js" }, "engines": { - "node": ">=0.4.7" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/is-interactive": { + "version": "1.0.0", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/handlebars/node_modules/uglify-js": { - "version": "3.17.4", + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "dev": true, - "license": "ISC", + "node_modules/is-number": { + "version": "7.0.0", + "devOptional": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.12.0" } }, - "node_modules/har-validator": { - "version": "5.1.5", + "node_modules/is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", "dev": true, - "license": "MIT", "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" + "lodash.isfinite": "^3.3.2" } }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", + "node_modules/is-number-object": { + "version": "1.0.7", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", + "node_modules/is-obj": { + "version": "2.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/hard-rejection": { - "version": "2.1.0", + "node_modules/is-path-cwd": { + "version": "1.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/has": { - "version": "1.0.3", + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1" + "is-path-inside": "^1.0.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "path-is-inside": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/is-path-inside": { + "version": "3.0.3", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/has-bigints": { - "version": "1.0.2", + "node_modules/is-plain-obj": { + "version": "1.1.0", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/has-flag": { - "version": "3.0.0", + "node_modules/is-plain-object": { + "version": "2.0.4", "dev": true, "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", + "node_modules/is-promise": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/is-regex": { + "version": "1.1.4", "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.1", + "node_modules/is-relative": { + "version": "1.0.0", "dev": true, "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", + "node_modules/is-stream": { + "version": "2.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", + "node_modules/is-string": { + "version": "1.0.7", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -13735,1423 +15482,1530 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "license": "ISC" - }, - "node_modules/has-value": { - "version": "1.0.0", + "node_modules/is-symbol": { + "version": "1.0.4", "dev": true, "license": "MIT", "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-values": { - "version": "1.0.0", + "node_modules/is-text-path": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "text-extensions": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", + "node_modules/is-typed-array": { + "version": "1.1.10", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^3.0.2" + "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.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", + "node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unc-path": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "unc-path-regex": "^0.1.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "dev": true, + "node_modules/is-unicode-supported": { + "version": "0.1.0", "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", + "node_modules/is-weakref": { + "version": "1.0.2", "dev": true, - "license": "BSD", + "license": "MIT", "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hdr-histogram-js/node_modules/pako": { - "version": "1.0.11", - "dev": true, - "license": "(MIT AND Zlib)" - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", + "node_modules/is-what": { + "version": "3.14.1", "dev": true, "license": "MIT" }, - "node_modules/he": { - "version": "1.2.0", + "node_modules/is-windows": { + "version": "1.0.2", "dev": true, "license": "MIT", - "bin": { - "he": "bin/he" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "dev": true, - "license": "MIT", + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dependencies": { - "parse-passwd": "^1.0.0" + "is-docker": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/hooker": { - "version": "0.2.3", + "node_modules/isbinaryfile": { + "version": "4.0.10", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, + "node_modules/isexe": { + "version": "2.0.0", "license": "ISC" }, - "node_modules/hpack.js": { - "version": "2.1.6", + "node_modules/isobject": { + "version": "3.0.1", "dev": true, "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/html-entities": { - "version": "2.3.3", + "node_modules/isstream": { + "version": "0.1.2", "dev": true, "license": "MIT" }, - "node_modules/html-escaper": { - "version": "2.0.2", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } }, - "node_modules/html-minifier": { - "version": "3.5.21", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "bin": { - "html-minifier": "cli.js" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/html-minifier/node_modules/commander": { - "version": "2.17.1", - "dev": true, - "license": "MIT" - }, - "node_modules/html-minifier/node_modules/source-map": { - "version": "0.6.1", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/html-minifier/node_modules/uglify-js": { - "version": "3.4.10", + "node_modules/istanbul-lib-report": { + "version": "3.0.0", "dev": true, - "license": "BSD-2-Clause", + "license": "BSD-3-Clause", "dependencies": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/html-minifier/node_modules/uglify-js/node_modules/commander": { - "version": "2.19.0", - "dev": true, - "license": "MIT" - }, - "node_modules/htmlparser2": { - "version": "3.8.3", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" + "engines": { + "node": ">=8" } }, - "node_modules/htmlparser2/node_modules/dom-serializer": { - "version": "0.2.2", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", "dev": true, "license": "MIT", "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", + "node_modules/istanbul-lib-source-maps": { + "version": "3.0.6", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } }, - "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", + "node_modules/istanbul-lib-source-maps/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/htmlparser2/node_modules/domelementtype": { - "version": "1.3.1", + "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", "dev": true, - "license": "BSD-2-Clause" + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" + } }, - "node_modules/htmlparser2/node_modules/domhandler": { - "version": "2.3.0", + "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { + "version": "2.1.0", "dev": true, + "license": "MIT", "dependencies": { - "domelementtype": "1" + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/htmlparser2/node_modules/domutils": { - "version": "1.5.1", + "node_modules/istanbul-lib-source-maps/node_modules/pify": { + "version": "4.0.1", "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "1.0.0", - "dev": true, - "license": "BSD-like" - }, - "node_modules/htmlparser2/node_modules/isarray": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/htmlparser2/node_modules/readable-stream": { - "version": "1.1.14", + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "node_modules/htmlparser2/node_modules/string_decoder": { - "version": "0.10.31", - "dev": true, - "license": "MIT" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", + "node_modules/istanbul-lib-source-maps/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "MIT" + "bin": { + "semver": "bin/semver" + } }, - "node_modules/http-errors": { - "version": "2.0.0", + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", + "node_modules/istanbul-reports": { + "version": "3.1.5", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "dev": true, - "license": "MIT", + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "license": "MIT", + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" + "node": ">=8" }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", + "node_modules/jake/node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/http-signature": { - "version": "1.2.0", + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">=7.0.0" } }, - "node_modules/http2": { - "version": "3.3.7", + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.12.0 <9.0.0" + "node": ">=8" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "license": "MIT", + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/human-signals": { - "version": "2.1.0", + "node_modules/jasmine": { + "version": "2.8.0", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" + "license": "MIT", + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "license": "MIT", + "node_modules/jasmine-core": { + "version": "4.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/jasmine-spec-reporter": { + "version": "5.0.2", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "ms": "^2.0.0" + "colors": "1.4.0" } }, - "node_modules/husky": { - "version": "7.0.4", + "node_modules/jasmine-spec-reporter/node_modules/colors": { + "version": "1.4.0", "dev": true, "license": "MIT", - "bin": { - "husky": "lib/bin.js" + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/jasmine/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/typicode" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "devOptional": true, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "dev": true, "license": "MIT", + "engines": { + "node": ">= 6.9.x" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/icss-utils": { - "version": "5.1.0", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">=8" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.2.4", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "6.0.3", - "license": "ISC", - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.0", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/image-size": { - "version": "0.5.5", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" + "dependencies": { + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/immediate": { - "version": "3.0.6", - "dev": true, - "license": "MIT" + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/immutable": { - "version": "3.8.2", + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/jest-worker": { + "version": "27.5.1", + "dev": true, "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">= 10.13.0" } }, - "node_modules/indent-string": { + "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "license": "ISC" - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ini": { - "version": "3.0.1", - "license": "ISC", - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/inquirer": { - "version": "8.2.4", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", + "node_modules/jiti": { + "version": "1.18.2", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bin": { + "jiti": "bin/jiti.js" } }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/jquery": { + "version": "2.1.4" + }, + "node_modules/js-base64": { + "version": "2.6.4", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">=7.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", + "node_modules/jsbn": { + "version": "0.1.1", + "dev": true, "license": "MIT" }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/jsdoc-type-pratt-parser": { + "version": "3.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, - "node_modules/inquirer/node_modules/rxjs": { - "version": "7.8.1", - "license": "Apache-2.0", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jshint": { + "version": "2.9.7", + "dev": true, + "license": "(MIT AND JSON)", "dependencies": { - "tslib": "^2.1.0" + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" } }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", + "node_modules/jshint/node_modules/minimatch": { + "version": "3.0.8", + "dev": true, + "license": "ISC", "dependencies": { - "has-flag": "^4.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/internal-slot": { - "version": "1.0.5", + "node_modules/jshint/node_modules/strip-json-comments": { + "version": "1.0.4", "dev": true, "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "bin": { + "strip-json-comments": "cli.js" }, "engines": { - "node": ">= 0.4" + "node": ">=0.8.0" } }, - "node_modules/interpret": { - "version": "1.1.0", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", "dev": true, "license": "MIT" }, - "node_modules/invert-kv": { + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/ip": { - "version": "1.1.8", + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", "dev": true, "license": "MIT" }, - "node_modules/ipaddr.js": { - "version": "2.0.1", + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", "dev": true, "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, "engines": { - "node": ">= 10" + "node": ">=6" } }, - "node_modules/irregular-plurals": { - "version": "1.4.0", + "node_modules/jsonc-parser": { + "version": "3.2.0", + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/is-absolute": { - "version": "1.0.0", + "node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", "dev": true, - "license": "MIT", + "license": "(MIT OR Apache-2.0)", "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", + "node_modules/jsprim": { + "version": "1.4.2", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^3.0.2" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.6.0" } }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", + "node_modules/jstransformer": { + "version": "1.0.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "is-promise": "^2.0.0", + "promise": "^7.0.1" } }, - "node_modules/is-arguments": { - "version": "1.1.1", + "node_modules/jszip": { + "version": "3.10.1", + "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/karma": { + "version": "6.4.2", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" }, - "engines": { - "node": ">= 0.4" + "bin": { + "karma": "bin/karma" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 10" } }, - "node_modules/is-array-buffer": { - "version": "3.0.2", + "node_modules/karma-chrome-launcher": { + "version": "3.1.1", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "which": "^1.2.1" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } }, - "node_modules/is-bigint": { - "version": "1.0.4", + "node_modules/karma-coverage-istanbul-reporter": { + "version": "3.0.3", "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/mattlewis92" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "devOptional": true, + "node_modules/karma-jasmine": { + "version": "4.0.2", + "dev": true, "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "jasmine-core": "^3.6.0" }, "engines": { - "node": ">=8" + "node": ">= 10" + }, + "peerDependencies": { + "karma": "*" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", + "node_modules/karma-jasmine-html-reporter": { + "version": "1.7.0", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "jasmine-core": ">=3.8", + "karma": ">=0.9", + "karma-jasmine": ">=1.1" } }, - "node_modules/is-buffer": { - "version": "1.1.6", + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "3.99.1", "dev": true, "license": "MIT" }, - "node_modules/is-callable": { - "version": "1.2.7", + "node_modules/karma-source-map-support": { + "version": "1.4.0", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.12.0", - "license": "MIT", "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "source-map-support": "^0.5.5" } }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", + "node_modules/karma/node_modules/connect": { + "version": "3.7.0", "dev": true, "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10.0" } }, - "node_modules/is-date-object": { - "version": "1.0.5", + "node_modules/karma/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "ms": "2.0.0" } }, - "node_modules/is-descriptor": { - "version": "0.1.6", + "node_modules/karma/node_modules/finalhandler": { + "version": "1.1.2", "dev": true, "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", + "node_modules/karma/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "license": "MIT", - "bin": { - "is-docker": "cli.js" + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-expression": { - "version": "3.0.0", + "node_modules/karma/node_modules/ms": { + "version": "2.0.0", "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - } + "license": "MIT" }, - "node_modules/is-expression/node_modules/acorn": { - "version": "4.0.13", + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "acorn": "bin/acorn" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/is-extendable": { - "version": "0.1.1", + "node_modules/karma/node_modules/statuses": { + "version": "1.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "devOptional": true, + "node_modules/karma/node_modules/ua-parser-js": { + "version": "0.7.35", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/is-finite": { - "version": "1.1.0", + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "devOptional": true, + "node_modules/kind-of": { + "version": "6.0.3", + "dev": true, "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", + "node_modules/klona": { + "version": "2.0.6", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/is-map": { - "version": "2.0.2", + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", + "node_modules/lazy-cache": { + "version": "1.0.4", "dev": true, "license": "MIT", + "optional": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "devOptional": true, + "node_modules/lcid": { + "version": "1.0.0", "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=0.10.0" } }, - "node_modules/is-number-like": { - "version": "1.0.8", + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, - "license": "ISC", "dependencies": { - "lodash.isfinite": "^3.3.2" + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", + "node_modules/less-loader": { + "version": "11.1.0", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "klona": "^2.0.4" }, "engines": { - "node": ">= 0.4" + "node": ">= 14.15.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", "dev": true, "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/is-path-cwd": { - "version": "1.0.0", + "node_modules/less/node_modules/mime": { + "version": "1.6.0", "dev": true, "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-path-in-cwd": { - "version": "1.0.1", + "node_modules/less/node_modules/pify": { + "version": "4.0.1", "dev": true, "license": "MIT", - "dependencies": { - "is-path-inside": "^1.0.0" - }, + "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "1.0.1", + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "optional": true, + "bin": { + "semver": "bin/semver" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", + "optional": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", + "node_modules/license-webpack-plugin": { + "version": "4.0.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "isobject": "^3.0.1" + "webpack-sources": "^3.0.0" }, - "engines": { - "node": ">=0.10.0" + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } } }, - "node_modules/is-promise": { - "version": "2.2.2", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/is-regex": { - "version": "1.1.4", + "node_modules/lie": { + "version": "3.3.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "immediate": "~3.0.5" } }, - "node_modules/is-relative": { - "version": "1.0.0", + "node_modules/liftup": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "is-unc-path": "^1.0.0" + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "node_modules/liftup/node_modules/findup-sync": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 8" } }, - "node_modules/is-stream": { - "version": "2.0.1", + "node_modules/lilconfig": { + "version": "2.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/is-string": { - "version": "1.0.7", + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/is-subset": { - "version": "0.1.1", + "node_modules/livereload-js": { + "version": "2.4.0", "dev": true, "license": "MIT" }, - "node_modules/is-symbol": { - "version": "1.0.4", + "node_modules/load-grunt-tasks": { + "version": "5.1.0", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "arrify": "^2.0.1", + "multimatch": "^4.0.0", + "pkg-up": "^3.1.0", + "resolve-pkg": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "grunt": ">=1" } }, - "node_modules/is-text-path": { - "version": "1.0.1", + "node_modules/load-json-file": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "text-extensions": "^1.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "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" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/is-unc-path": { - "version": "1.0.0", + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", + "node_modules/loader-runner": { + "version": "4.3.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.11.5" } }, - "node_modules/is-utf8": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", + "node_modules/loader-utils": { + "version": "3.2.1", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 12.13.0" } }, - "node_modules/is-weakref": { - "version": "1.0.2", + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" } }, - "node_modules/is-weakset": { - "version": "2.0.2", + "node_modules/localtunnel/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/is-what": { - "version": "3.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-windows": { - "version": "1.0.2", + "node_modules/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, - "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "license": "MIT", + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, "dependencies": { - "is-docker": "^2.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/isbinaryfile": { - "version": "4.0.10", + "node_modules/locate-path": { + "version": "6.0.0", "dev": true, "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">= 8.0.0" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/gjtorikian/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" }, - "node_modules/isobject": { - "version": "3.0.1", + "node_modules/lodash.clonedeep": { + "version": "4.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/isstream": { - "version": "0.1.2", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", "dev": true, "license": "MIT" }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/log-symbols": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { + "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -15160,3166 +17014,3245 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", + "node_modules/log4js": { + "version": "6.9.1", "dev": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" }, "engines": { - "node": ">=6" + "node": ">=8.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/glob": { - "version": "7.2.3", + "node_modules/longest": { + "version": "1.0.1", "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, + "license": "MIT", + "optional": true, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", + "node_modules/lottie-web": { + "version": "5.11.0", + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "1.1.4", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { - "version": "2.1.0", + "node_modules/make-dir": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-source-maps/node_modules/pify": { - "version": "4.0.1", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { - "version": "2.7.1", + "node_modules/make-error": { + "version": "1.3.6", "dev": true, - "license": "ISC", + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dependencies": { - "glob": "^7.1.3" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/semver": { - "version": "5.7.1", + "node_modules/make-iterator": { + "version": "1.0.1", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", + "node_modules/map-cache": { + "version": "0.2.2", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.5", + "node_modules/map-obj": { + "version": "4.3.0", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jackspeak": { - "version": "2.1.1", - "license": "BlueOak-1.0.0", + "node_modules/map-visit": { + "version": "1.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "cliui": "^8.0.1" + "object-visit": "^1.0.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "node": ">=0.10.0" } }, - "node_modules/jasmine": { - "version": "2.8.0", - "dev": true, + "node_modules/marked": { + "version": "4.3.0", "license": "MIT", - "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, "bin": { - "jasmine": "bin/jasmine.js" + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" } }, - "node_modules/jasmine-core": { - "version": "4.1.1", + "node_modules/media-typer": { + "version": "0.3.0", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/jasmine-spec-reporter": { - "version": "5.0.2", + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "colors": "1.4.0" + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/jasmine-spec-reporter/node_modules/colors": { - "version": "1.4.0", + "node_modules/memorystream": { + "version": "0.3.1", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.1.90" + "node": ">= 0.10.0" } }, - "node_modules/jasmine/node_modules/glob": { - "version": "7.2.3", + "node_modules/meow": { + "version": "8.1.2", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": "*" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jasmine/node_modules/jasmine-core": { - "version": "2.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/jasminewd2": { - "version": "2.2.0", + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">= 6.9.x" + "node": ">=8" } }, - "node_modules/jest-worker": { - "version": "27.5.1", + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=10" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", "dev": true, "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, "engines": { "node": ">=8" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", + "node_modules/meow/node_modules/lru-cache": { + "version": "6.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "has-flag": "^4.0.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jquery": { - "version": "2.1.4" - }, - "node_modules/js-base64": { - "version": "2.6.4", + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/js-sdsl": { - "version": "4.4.0", + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", "dev": true, "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/js-stringify": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", + "node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "p-limit": "^2.2.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=8" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "3.1.0", + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", "dev": true, "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, "engines": { - "node": ">=12.0.0" + "node": ">=8" } }, - "node_modules/jsesc": { - "version": "2.5.2", + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", "dev": true, "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jshint": { - "version": "2.9.7", + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", "dev": true, - "license": "(MIT AND JSON)", - "dependencies": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "~4.17.10", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - }, - "bin": { - "jshint": "bin/jshint" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "node_modules/jshint/node_modules/minimatch": { - "version": "3.0.8", + "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", "dev": true, - "license": "ISC", + "license": "ISC" + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/jshint/node_modules/strip-json-comments": { - "version": "1.0.4", + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "MIT", "bin": { - "strip-json-comments": "cli.js" - }, - "engines": { - "node": ">=0.8.0" + "semver": "bin/semver" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", "dev": true, - "license": "MIT" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", "dev": true, - "license": "MIT" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/json-schema": { - "version": "0.4.0", + "node_modules/meow/node_modules/yallist": { + "version": "4.0.0", "dev": true, - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" + "license": "ISC" }, - "node_modules/json-stable-stringify-without-jsonify": { + "node_modules/merge-descriptors": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", + "node_modules/merge-stream": { + "version": "2.0.0", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/json5": { - "version": "2.2.3", + "node_modules/merge2": { + "version": "1.4.1", "dev": true, "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, "engines": { - "node": ">=6" + "node": ">= 8" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "license": "MIT" + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "node_modules/jsonfile": { - "version": "6.1.0", + "node_modules/micromatch": { + "version": "4.0.5", "dev": true, "license": "MIT", "dependencies": { - "universalify": "^2.0.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=8.6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", + "node_modules/mime": { + "version": "2.6.0", "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, + "license": "MIT", "bin": { - "JSONStream": "bin.js" + "mime": "cli.js" }, "engines": { - "node": "*" + "node": ">=4.0.0" } }, - "node_modules/jsprim": { - "version": "1.4.2", + "node_modules/mime-db": { + "version": "1.52.0", "dev": true, "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, "engines": { - "node": ">=0.6.0" + "node": ">= 0.6" } }, - "node_modules/jstransformer": { - "version": "1.0.0", + "node_modules/mime-types": { + "version": "2.1.35", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/jszip": { - "version": "3.10.1", - "dev": true, - "license": "(MIT OR GPL-3.0-or-later)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" + "node_modules/mimic-fn": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/jszip/node_modules/pako": { - "version": "1.0.11", - "dev": true, - "license": "(MIT AND Zlib)" - }, - "node_modules/karma": { - "version": "6.4.2", + "node_modules/min-indent": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.4.1", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" - }, "engines": { - "node": ">= 10" + "node": ">=4" } }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.1", + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", "dev": true, - "license": "MIT", "dependencies": { - "which": "^1.2.1" + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node_modules/karma-chrome-launcher/node_modules/which": { - "version": "1.3.1", + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "brace-expansion": "^1.1.7" }, - "bin": { - "which": "bin/which" + "engines": { + "node": "*" } }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "3.0.3", + "node_modules/minimist": { + "version": "1.2.8", "dev": true, "license": "MIT", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - }, "funding": { - "url": "https://github.com/sponsors/mattlewis92" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/karma-jasmine": { - "version": "4.0.2", + "node_modules/minimist-options": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "jasmine-core": "^3.6.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" }, "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "karma": "*" + "node": ">= 6" } }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.7.0", + "node_modules/minimist-options/node_modules/arrify": { + "version": "1.0.1", "dev": true, "license": "MIT", - "peerDependencies": { - "jasmine-core": ">=3.8", - "karma": ">=0.9", - "karma-jasmine": ">=1.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "3.99.1", - "dev": true, - "license": "MIT" - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map-support": "^0.5.5" + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/karma/node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/karma/node_modules/connect": { - "version": "3.7.0", - "dev": true, - "license": "MIT", + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" } }, - "node_modules/karma/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", + "node_modules/minipass-collect/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", "dependencies": { - "ms": "2.0.0" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/karma/node_modules/finalhandler": { - "version": "1.1.2", - "dev": true, - "license": "MIT", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 8" } }, - "node_modules/karma/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/karma/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" } }, - "node_modules/karma/node_modules/statuses": { - "version": "1.5.0", - "dev": true, - "license": "MIT", + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/karma/node_modules/ua-parser-js": { - "version": "0.7.35", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "engines": { - "node": "*" - } + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/karma/node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "minipass": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/klona": { - "version": "2.0.6", - "dev": true, - "license": "MIT", + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "dev": true, - "license": "MIT", + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/lcid": { - "version": "1.0.0", - "license": "MIT", + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dependencies": { - "invert-kv": "^1.0.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/less": { - "version": "4.1.3", - "dev": true, - "license": "Apache-2.0", + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" + "yallist": "^4.0.0" }, "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" + "node": ">=8" } }, - "node_modules/less-loader": { - "version": "11.1.0", + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", "dev": true, "license": "MIT", "dependencies": { - "klona": "^2.0.4" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" + "node": ">=0.10.0" } }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/less/node_modules/mime": { - "version": "1.6.0", + "node_modules/mkdirp": { + "version": "0.5.6", "dev": true, "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "minimist": "^1.2.6" }, - "engines": { - "node": ">=4" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/less/node_modules/pify": { - "version": "4.0.1", - "dev": true, + "node_modules/moment": { + "version": "2.29.4", "license": "MIT", - "optional": true, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/less/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", + "node_modules/morgan": { + "version": "1.10.0", "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/license-webpack-plugin": { - "version": "4.0.2", + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } + "ms": "2.0.0" } }, - "node_modules/lie": { - "version": "3.3.0", + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } + "license": "MIT" }, - "node_modules/liftup": { - "version": "3.0.1", + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", "dev": true, - "license": "MIT", - "dependencies": { - "extend": "^3.0.2", - "findup-sync": "^4.0.0", - "fined": "^1.2.0", - "flagged-respawn": "^1.0.1", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.1", - "rechoir": "^0.7.0", - "resolve": "^1.19.0" - }, "engines": { "node": ">=10" } }, - "node_modules/liftup/node_modules/findup-sync": { - "version": "4.0.0", + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, - "license": "MIT", "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" }, - "engines": { - "node": ">= 8" + "bin": { + "multicast-dns": "cli.js" } }, - "node_modules/limiter": { - "version": "1.1.5", - "dev": true - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/livereload-js": { - "version": "2.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/load-grunt-tasks": { - "version": "5.1.0", + "node_modules/multimatch": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", "arrify": "^2.0.1", - "multimatch": "^4.0.0", - "pkg-up": "^3.1.0", - "resolve-pkg": "^2.0.0" + "minimatch": "^3.0.4" }, "engines": { "node": ">=8" - }, - "peerDependencies": { - "grunt": ">=1" } }, - "node_modules/load-json-file": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "engines": { - "node": ">=4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", + "node_modules/mz": { + "version": "2.7.0", "dev": true, "license": "MIT", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.6", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, "engines": { - "node": ">=4" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/loader-runner": { - "version": "4.3.0", + "node_modules/nanomatch": { + "version": "1.2.13", "dev": true, "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, "engines": { - "node": ">=6.11.5" + "node": ">=0.10.0" } }, - "node_modules/loader-utils": { - "version": "3.2.1", + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", "dev": true, "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, "engines": { - "node": ">= 12.13.0" + "node": ">=0.10.0" } }, - "node_modules/localtunnel": { - "version": "2.0.2", + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", "dev": true, "license": "MIT", "dependencies": { - "axios": "0.21.4", - "debug": "4.3.2", - "openurl": "1.1.1", - "yargs": "17.1.1" - }, - "bin": { - "lt": "bin/lt.js" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=8.3.0" + "node": ">=0.10.0" } }, - "node_modules/localtunnel/node_modules/cliui": { - "version": "7.0.4", + "node_modules/nanomatch/node_modules/is-accessor-descriptor": { + "version": "1.0.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/localtunnel/node_modules/debug": { - "version": "4.3.2", + "node_modules/nanomatch/node_modules/is-data-descriptor": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "kind-of": "^6.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/localtunnel/node_modules/yargs": { - "version": "17.1.1", + "node_modules/nanomatch/node_modules/is-descriptor": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/locate-path": { - "version": "6.0.0", + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", + "node_modules/natural-compare": { + "version": "1.4.0", "dev": true, "license": "MIT" }, - "node_modules/lodash.assign": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isfinite": { - "version": "3.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.template": { - "version": "4.5.0", + "node_modules/needle": { + "version": "3.2.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" } }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "lodash._reinterpolate": "^3.0.0" + "ms": "^2.1.1" } }, - "node_modules/log-symbols": { - "version": "4.1.0", + "node_modules/negotiator": { + "version": "0.6.3", "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ng-annotate": { + "version": "1.2.2", + "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "acorn": "~2.6.4", + "alter": "~0.2.0", + "convert-source-map": "~1.1.2", + "optimist": "~0.6.1", + "ordered-ast-traverse": "~1.1.1", + "simple-fmt": "~0.1.0", + "simple-is": "~0.2.0", + "source-map": "~0.5.3", + "stable": "~0.1.5", + "stringmap": "~0.2.2", + "stringset": "~0.2.1", + "tryor": "~0.1.2" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "ng-annotate": "build/es5/ng-annotate" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", + "node_modules/ng-annotate/node_modules/acorn": { + "version": "2.6.4", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.4.0" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/ng-annotate/node_modules/convert-source-map": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ng-annotate/node_modules/source-map": { + "version": "0.5.7", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", + "node_modules/ng-csv": { + "version": "0.2.3", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ng-file-upload": { + "version": "5.0.9", "license": "MIT" }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/ng2-pdf-viewer": { + "version": "9.1.5", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "pdfjs-dist": "~2.14.305", + "tslib": "^2.3.1" + }, + "peerDependencies": { + "pdfjs-dist": "~2.14.305" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/ngx-bootstrap": { + "version": "6.2.0", "license": "MIT", + "peerDependencies": { + "@angular/common": ">=7.0.0", + "@angular/core": ">=7.0.0" + } + }, + "node_modules/ngx-entity-service": { + "version": "0.0.37", + "resolved": "https://registry.npmjs.org/ngx-entity-service/-/ngx-entity-service-0.0.37.tgz", + "integrity": "sha512-clUk5EVKoxECHau0NB+VSvJh2hjtCd4TF5gJBFHEBBBZOZKYKagv/oQKIVntQweuKx6gQMAvy8g8CuTpUb9k0g==", "dependencies": { - "has-flag": "^4.0.0" + "tslib": "^2.3.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@angular/common": "^13.0 || ^14.0 || ^15.0 || ^16.0", + "@angular/core": "^13.0 || ^14.0 || ^15.0 || ^16.0" } }, - "node_modules/log4js": { - "version": "6.9.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/ngx-lottie": { + "version": "10.0.0", + "license": "MIT", "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" + "@scarf/scarf": "^1.1.1", + "tslib": "^2.3.0" }, - "engines": { - "node": ">=8.0" + "peerDependencies": { + "@angular/core": ">=15", + "lottie-web": ">=5.9.2" } }, - "node_modules/longest": { - "version": "1.0.1", + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" } }, - "node_modules/lottie-web": { - "version": "5.11.0", + "node_modules/nice-try": { + "version": "1.0.5", + "dev": true, "license": "MIT" }, - "node_modules/loud-rejection": { - "version": "1.6.0", + "node_modules/no-case": { + "version": "2.3.2", "dev": true, "license": "MIT", "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" + "lower-case": "^1.1.1" } }, - "node_modules/lower-case": { - "version": "1.1.4", + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, - "license": "MIT" + "optional": true }, - "node_modules/lru-cache": { - "version": "5.1.1", + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.29.0", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, "engines": { - "node": ">=12" + "node": ">= 6.13.0" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", "dependencies": { - "semver": "^6.0.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "node-gyp": "bin/node-gyp.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", + "node_modules/node-gyp-build": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", "dev": true, - "license": "ISC", + "optional": true, "bin": { - "semver": "bin/semver.js" + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "node_modules/make-error": { - "version": "1.3.6", - "dev": true, - "license": "ISC" + "node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "license": "ISC", + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "balanced-match": "^1.0.0" } }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "license": "ISC", + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "2.1.0", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" + "node": ">=16 || 14 >=14.17" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "engines": { - "node": ">=12" + "node": ">=16" } }, - "node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { - "yallist": "^4.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/make-fetch-happen/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", + "node_modules/node-gyp/node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dependencies": { + "abbrev": "^2.0.0" + }, "bin": { - "mkdirp": "bin/cmd.js" + "nopt": "bin/nopt.js" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "license": "ISC", + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "minipass": "^3.1.1" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", + "node_modules/node-machine-id": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/nopt": { + "version": "3.0.6", + "dev": true, "license": "ISC", "dependencies": { - "unique-slug": "^3.0.0" + "abbrev": "1" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "bin": { + "nopt": "bin/nopt.js" } }, - "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "license": "ISC", + "node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/make-iterator": { - "version": "1.0.1", + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "devOptional": true, "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/map-cache": { - "version": "0.2.2", + "node_modules/normalize-range": { + "version": "0.1.2", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/map-visit": { - "version": "1.0.0", - "dev": true, - "license": "MIT", + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dependencies": { - "object-visit": "^1.0.0" + "semver": "^7.1.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/marked": { - "version": "4.3.0", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "engines": { - "node": ">= 12" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/maxmin": { - "version": "1.1.0", - "dev": true, - "license": "MIT", + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", "dependencies": { - "chalk": "^1.0.0", - "figures": "^1.0.1", - "gzip-size": "^1.0.0", - "pretty-bytes": "^1.0.0" + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/maxmin/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dependencies": { + "lru-cache": "^10.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/maxmin/node_modules/ansi-styles": { - "version": "2.2.1", - "dev": true, - "license": "MIT", + "node_modules/npm-package-arg/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { - "node": ">=0.10.0" + "node": "14 || >=16.14" } }, - "node_modules/maxmin/node_modules/camelcase": { - "version": "2.1.1", - "dev": true, - "license": "MIT", + "node_modules/npm-packlist": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", + "integrity": "sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==", + "dependencies": { + "ignore-walk": "^6.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/maxmin/node_modules/camelcase-keys": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/maxmin/node_modules/chalk": { - "version": "1.1.3", - "dev": true, - "license": "MIT", + "node_modules/npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/maxmin/node_modules/figures": { - "version": "1.7.0", + "node_modules/npm-run-all": { + "version": "4.1.5", "dev": true, "license": "MIT", "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, - "node_modules/maxmin/node_modules/indent-string": { - "version": "2.1.0", + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", "dev": true, "license": "MIT", "dependencies": { - "repeating": "^2.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.8" } }, - "node_modules/maxmin/node_modules/map-obj": { - "version": "1.0.1", + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/maxmin/node_modules/meow": { - "version": "3.7.0", + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", "dev": true, "license": "MIT", "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "shebang-regex": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/maxmin/node_modules/pretty-bytes": { - "version": "1.0.4", - "dev": true, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - }, - "bin": { - "pretty-bytes": "cli.js" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/maxmin/node_modules/redent": { - "version": "1.0.0", + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "which": "bin/which" } }, - "node_modules/maxmin/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/npm-run-path": { + "version": "4.0.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "path-key": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/maxmin/node_modules/strip-indent": { - "version": "1.0.1", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "license": "MIT", "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/maxmin/node_modules/supports-color": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true }, - "node_modules/maxmin/node_modules/trim-newlines": { - "version": "1.0.0", - "dev": true, + "node_modules/number-is-nan": { + "version": "1.0.1", "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/media-typer": { - "version": "0.3.0", + "node_modules/nvd3": { + "version": "1.8.6", + "license": "Apache-2.0", + "peerDependencies": { + "d3": "^3.4.4" + } + }, + "node_modules/nx": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-17.0.3.tgz", + "integrity": "sha512-VShJISKCYt3iVJoMUPZiv67+0tiItxWMnfVmTmPZPio2Fu+wGc9U4ijjPxcmp2RJmLRaxkB9cn5rlrAvkIrNMA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" + "hasInstallScript": true, + "dependencies": { + "@nrwl/tao": "17.0.3", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "3.0.0-rc.46", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.5.1", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^8.0.1", + "dotenv": "~16.3.1", + "dotenv-expand": "~10.0.0", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^11.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "jest-diff": "^29.4.1", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", + "minimatch": "3.0.5", + "node-machine-id": "1.1.12", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.5.3", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "nx": "bin/nx.js", + "nx-cloud": "bin/nx-cloud.js" + }, + "optionalDependencies": { + "@nx/nx-darwin-arm64": "17.0.3", + "@nx/nx-darwin-x64": "17.0.3", + "@nx/nx-freebsd-x64": "17.0.3", + "@nx/nx-linux-arm-gnueabihf": "17.0.3", + "@nx/nx-linux-arm64-gnu": "17.0.3", + "@nx/nx-linux-arm64-musl": "17.0.3", + "@nx/nx-linux-x64-gnu": "17.0.3", + "@nx/nx-linux-x64-musl": "17.0.3", + "@nx/nx-win32-arm64-msvc": "17.0.3", + "@nx/nx-win32-x64-msvc": "17.0.3" + }, + "peerDependencies": { + "@swc-node/register": "^1.6.7", + "@swc/core": "^1.3.85" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true + }, + "@swc/core": { + "optional": true + } } }, - "node_modules/memfs": { - "version": "3.5.1", + "node_modules/nx/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "Unlicense", "dependencies": { - "fs-monkey": "^1.0.3" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 4.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/memorystream": { - "version": "0.3.1", + "node_modules/nx/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/nx/node_modules/axios": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz", + "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==", "dev": true, - "engines": { - "node": ">= 0.10.0" + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/meow": { - "version": "8.1.2", + "node_modules/nx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", + "node_modules/nx/node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "4.1.0", + "node_modules/nx/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" + "node": ">=7.0.0" } }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/nx/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/nx/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/lru-cache": { - "version": "6.0.0", + "node_modules/nx/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, - "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.3", + "node_modules/nx/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.14" } }, - "node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/nx/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/meow/node_modules/p-locate": { + "node_modules/nx/node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=8" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", + "node_modules/nx/node_modules/lines-and-columns": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", + "node_modules/nx/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", + "node_modules/nx/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "(MIT OR CC0-1.0)", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/nx/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/meow/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", + "node_modules/nx/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">=12" } }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", + "node_modules/oauth-sign": { + "version": "0.9.0", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "Apache-2.0", "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": "*" } }, - "node_modules/methods": { - "version": "1.1.2", + "node_modules/object-assign": { + "version": "4.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/micromatch": { - "version": "4.0.5", + "node_modules/object-copy": { + "version": "0.1.0", "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "engines": { - "node": ">=8.6" + "node": ">=0.10.0" } }, - "node_modules/mime": { - "version": "2.6.0", + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/mime-db": { - "version": "1.52.0", + "node_modules/object-hash": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 6" } }, - "node_modules/mime-types": { - "version": "2.1.35", + "node_modules/object-inspect": { + "version": "1.12.3", "dev": true, "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/min-indent": { + "node_modules/object-visit": { "version": "1.0.1", "dev": true, "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.2", + "node_modules/object.assign": { + "version": "4.1.4", "dev": true, "license": "MIT", "dependencies": { - "schema-utils": "^4.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", + "node_modules/object.defaults": { + "version": "1.1.0", "dev": true, - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/minimist": { - "version": "1.2.8", + "node_modules/object.map": { + "version": "1.0.1", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/minimist-options": { - "version": "4.1.0", + "node_modules/object.pick": { + "version": "1.3.0", "dev": true, "license": "MIT", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" + "isobject": "^3.0.1" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/minimist-options/node_modules/arrify": { - "version": "1.0.1", + "node_modules/object.values": { + "version": "1.1.6", "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "4.2.8", - "license": "ISC", + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/minipass-collect": { + "node_modules/on-headers": { "version": "1.0.2", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, + "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">= 0.8" } }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", + "node_modules/once": { + "version": "1.4.0", + "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "wrappy": "1" } }, - "node_modules/minipass-collect/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/minipass-fetch": { - "version": "2.1.2", + "node_modules/onetime": { + "version": "5.1.2", "license": "MIT", "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "mimic-fn": "^2.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=6" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-fetch/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dependencies": { - "yallist": "^4.0.0" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-fetch/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" + "node_modules/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "license": "ISC", + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, "dependencies": { - "minipass": "^3.0.0" + "is-wsl": "^1.1.0" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/optimist": { + "version": "0.6.1", + "dev": true, + "license": "MIT/X11", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" + "node_modules/optimist/node_modules/minimist": { + "version": "0.0.10", + "dev": true, + "license": "MIT" }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, + "node_modules/optimist/node_modules/wordwrap": { + "version": "0.0.3", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "license": "ISC", + "node_modules/ora": { + "version": "5.4.1", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/minizlib": { - "version": "2.1.2", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/mitt": { - "version": "1.2.0", - "dev": true, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", "license": "MIT" }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "dev": true, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "dev": true, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", "license": "MIT", "dependencies": { - "is-plain-object": "^2.0.4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/mkdirp": { - "version": "0.5.6", + "node_modules/ordered-ast-traverse": { + "version": "1.1.1", "dev": true, "license": "MIT", "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "ordered-esprima-props": "~1.1.0" } }, - "node_modules/modify-values": { - "version": "1.0.1", + "node_modules/ordered-esprima-props": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/os-homedir": { + "version": "1.0.2", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/moment": { - "version": "2.29.4", + "node_modules/os-locale": { + "version": "1.4.0", "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/morgan": { - "version": "1.10.0", - "dev": true, + "node_modules/os-tmpdir": { + "version": "1.0.2", "license": "MIT", - "dependencies": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/morgan/node_modules/debug": { - "version": "2.6.9", + "node_modules/osenv": { + "version": "0.1.5", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ms": "2.0.0" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, - "node_modules/morgan/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/mri": { - "version": "1.2.0", + "node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", + "node_modules/p-locate": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" + "p-limit": "^3.0.2" }, - "bin": { - "multicast-dns": "cli.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/multimatch": { + "node_modules/p-map": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, - "license": "MIT", "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" + "@types/retry": "0.12.0", + "retry": "^0.13.1" }, "engines": { "node": ">=8" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "license": "ISC" - }, - "node_modules/nanoid": { - "version": "3.3.6", + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">= 4" } }, - "node_modules/nanomatch": { - "version": "1.2.13", + "node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", + "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/nanomatch/node_modules/define-property": { - "version": "2.0.2", + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/param-case": { + "version": "2.1.1", "dev": true, "license": "MIT", "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "no-case": "^2.2.0" } }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", + "node_modules/parent-module": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "callsites": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/nanomatch/node_modules/is-accessor-descriptor": { - "version": "1.0.0", + "node_modules/parse-filepath": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8" } }, - "node_modules/nanomatch/node_modules/is-data-descriptor": { - "version": "1.0.0", + "node_modules/parse-json": { + "version": "5.2.0", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nanomatch/node_modules/is-descriptor": { - "version": "1.0.2", + "node_modules/parse-node-version": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", + "node_modules/parse-passwd": { + "version": "1.0.0", "dev": true, "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" + "node_modules/parse5": { + "version": "7.1.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, - "node_modules/needle": { - "version": "3.2.0", + "node_modules/parse5-sax-parser": { + "version": "7.0.0", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" + "parse5": "^7.0.0" }, - "engines": { - "node": ">= 4.4.x" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", + "node_modules/parseurl": { + "version": "1.3.3", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">= 0.8" } }, - "node_modules/negotiator": { - "version": "0.6.3", + "node_modules/pascalcase": { + "version": "0.1.1", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/neo-async": { - "version": "2.6.2", + "node_modules/path-dirname": { + "version": "1.0.2", "dev": true, "license": "MIT" }, - "node_modules/ng-annotate": { - "version": "1.2.2", + "node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "acorn": "~2.6.4", - "alter": "~0.2.0", - "convert-source-map": "~1.1.2", - "optimist": "~0.6.1", - "ordered-ast-traverse": "~1.1.1", - "simple-fmt": "~0.1.0", - "simple-is": "~0.2.0", - "source-map": "~0.5.3", - "stable": "~0.1.5", - "stringmap": "~0.2.2", - "stringset": "~0.2.1", - "tryor": "~0.1.2" - }, - "bin": { - "ng-annotate": "build/es5/ng-annotate" + "engines": { + "node": ">=8" } }, - "node_modules/ng-annotate/node_modules/acorn": { - "version": "2.6.4", + "node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/ng-annotate/node_modules/convert-source-map": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/ng-annotate/node_modules/source-map": { - "version": "0.5.7", + "node_modules/path-is-inside": { + "version": "1.0.2", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "license": "(WTFPL OR MIT)" }, - "node_modules/ng-csv": { - "version": "0.2.3", + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/ng-file-upload": { - "version": "5.0.9", + "node_modules/path-parse": { + "version": "1.0.7", "license": "MIT" }, - "node_modules/ng2-pdf-viewer": { - "version": "9.1.5", + "node_modules/path-root": { + "version": "0.1.1", + "dev": true, "license": "MIT", "dependencies": { - "pdfjs-dist": "~2.14.305", - "tslib": "^2.3.1" + "path-root-regex": "^0.1.0" }, - "peerDependencies": { - "pdfjs-dist": "~2.14.305" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ngx-bootstrap": { - "version": "6.2.0", + "node_modules/path-root-regex": { + "version": "0.1.2", + "dev": true, "license": "MIT", - "peerDependencies": { - "@angular/common": ">=7.0.0", - "@angular/core": ">=7.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ngx-entity-service": { - "version": "0.0.35", + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dependencies": { - "tslib": "^2.3.0" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, - "peerDependencies": { - "@angular/common": "^13.0 || ^14.0 || ^15.0", - "@angular/core": "^13.0 || ^14.0 || ^15.0" + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ngx-lottie": { - "version": "10.0.0", - "license": "MIT", - "dependencies": { - "@scarf/scarf": "^1.1.1", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/core": ">=15", - "lottie-web": ">=5.9.2" + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" } }, - "node_modules/nice-napi": { - "version": "1.0.2", + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", "dev": true, - "hasInstallScript": true, "license": "MIT", - "optional": true, - "os": [ - "!win32" - ], + "engines": { + "node": ">=8" + } + }, + "node_modules/pdfjs-dist": { + "version": "2.14.305", + "license": "Apache-2.0", "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" + "dommatrix": "^1.0.1", + "web-streams-polyfill": "^3.2.1" + }, + "peerDependencies": { + "worker-loader": "^3.0.8" + }, + "peerDependenciesMeta": { + "worker-loader": { + "optional": true + } } }, - "node_modules/nice-try": { - "version": "1.0.5", + "node_modules/performance-now": { + "version": "2.1.0", "dev": true, "license": "MIT" }, - "node_modules/no-case": { - "version": "2.3.2", + "node_modules/picocolors": { + "version": "1.0.0", "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "devOptional": true, "license": "MIT", - "dependencies": { - "lower-case": "^1.1.1" + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/node-addon-api": { - "version": "3.2.1", + "node_modules/pidtree": { + "version": "0.3.1", "dev": true, "license": "MIT", - "optional": true + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } }, - "node_modules/node-forge": { - "version": "1.3.1", + "node_modules/pify": { + "version": "2.3.0", "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", + "license": "MIT", "engines": { - "node": ">= 6.13.0" + "node": ">=0.10.0" } }, - "node_modules/node-gyp": { - "version": "9.3.1", + "node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "pinkie": "^2.0.0" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": ">=0.10.0" } }, - "node_modules/node-gyp-build": { - "version": "4.6.0", + "node_modules/pirates": { + "version": "4.0.5", "dev": true, "license": "MIT", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "engines": { + "node": ">= 6" } }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", + "node_modules/piscina": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.1.0.tgz", + "integrity": "sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" }, "engines": { - "node": "*" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "license": "ISC", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-releases": { - "version": "2.0.10", - "dev": true, - "license": "MIT" - }, - "node_modules/nopt": { - "version": "3.0.6", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, - "license": "ISC", "dependencies": { - "abbrev": "1" + "p-locate": "^6.0.0" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "devOptional": true, - "license": "MIT", + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-bundled": { - "version": "3.0.0", - "license": "ISC", + "node_modules/pkg-up": { + "version": "3.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "find-up": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/npm-install-checks": { - "version": "6.1.1", - "license": "BSD-2-Clause", + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.1.1" + "locate-path": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/npm-normalize-package-bin": { + "node_modules/pkg-up/node_modules/locate-path": { "version": "3.0.0", - "license": "ISC", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/npm-package-arg": { - "version": "10.1.0", - "license": "ISC", + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "6.1.1", - "license": "ISC", + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "p-limit": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", - "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/npm-packlist": { - "version": "7.0.4", - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.0" - }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/npm-pick-manifest": { - "version": "8.0.1", - "license": "ISC", + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" + "async": "^2.6.0", + "is-number-like": "^1.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.4", + "npm": ">=1.0.0" } }, - "node_modules/npm-registry-fetch": { - "version": "14.0.5", - "license": "ISC", + "node_modules/portscanner/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "lodash": "^4.17.14" } }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", + "node_modules/posix-character-classes": { + "version": "0.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.1.1", - "license": "ISC", + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", - "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.3", + "node_modules/postcss-import": { + "version": "15.1.0", + "dev": true, "license": "MIT", "dependencies": { - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=14.0.0" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "peerDependencies": { + "postcss": "^8.0.0" } }, - "node_modules/npm-run-all": { - "version": "4.1.5", + "node_modules/postcss-js": { + "version": "4.0.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" + "camelcase-css": "^2.0.1" }, "engines": { - "node": ">= 4" + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" } }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", + "node_modules/postcss-load-config": { + "version": "4.0.1", "dev": true, "license": "MIT", "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" }, "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.2.2", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">= 14" } }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", + "node_modules/postcss-loader": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", "dev": true, - "license": "MIT", "dependencies": { - "shebang-regex": "^1.0.0" + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" }, "engines": { - "node": ">=0.10.0" + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" } }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", + "node_modules/postcss-loader/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", "dev": true, - "license": "MIT", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" } }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", + "node_modules/postcss-loader/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "argparse": "^2.0.1" }, "bin": { - "which": "bin/which" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", + "node_modules/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, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "license": "ISC", + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/nth-check": { - "version": "2.1.1", + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "boolbase": "^1.0.0" + "postcss-selector-parser": "^6.0.4" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nvd3": { - "version": "1.8.6", - "license": "Apache-2.0", + "node": "^10 || ^12 || >= 14" + }, "peerDependencies": { - "d3": "^3.4.4" + "postcss": "^8.1.0" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "icss-utils": "^5.0.0" + }, "engines": { - "node": "*" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", + "node_modules/postcss-nested": { + "version": "6.0.1", "dev": true, "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" } }, - "node_modules/object-copy": { - "version": "0.1.0", + "node_modules/postcss-scss": { + "version": "0.1.9", "dev": true, "license": "MIT", "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" + "postcss": "^5.1.0" } }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", + "node_modules/postcss-scss/node_modules/ansi-regex": { + "version": "2.1.1", "dev": true, "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.12.3", + "node_modules/postcss-scss/node_modules/ansi-styles": { + "version": "2.2.1", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/object-is": { - "version": "1.1.5", + "node_modules/postcss-scss/node_modules/chalk": { + "version": "1.1.3", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/object-keys": { - "version": "1.1.1", + "node_modules/postcss-scss/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=0.8.0" } }, - "node_modules/object-visit": { - "version": "1.0.1", + "node_modules/postcss-scss/node_modules/has-flag": { + "version": "1.0.0", "dev": true, "license": "MIT", - "dependencies": { - "isobject": "^3.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object.assign": { - "version": "4.1.4", + "node_modules/postcss-scss/node_modules/postcss": { + "version": "5.2.18", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.12" } }, - "node_modules/object.defaults": { - "version": "1.1.0", + "node_modules/postcss-scss/node_modules/source-map": { + "version": "0.5.7", "dev": true, - "license": "MIT", - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/object.map": { - "version": "1.0.1", + "node_modules/postcss-scss/node_modules/strip-ansi": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" + "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object.pick": { - "version": "1.3.0", + "node_modules/postcss-scss/node_modules/supports-color": { + "version": "3.2.3", "dev": true, "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "has-flag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/object.values": { - "version": "1.1.6", + "node_modules/postcss-selector-parser": { + "version": "6.0.11", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/obuf": { - "version": "1.1.2", + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT" + "engines": { + "node": ">= 0.8.0" + } }, - "node_modules/on-finished": { - "version": "2.3.0", + "node_modules/preprocess": { + "version": "3.2.0", "dev": true, - "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "xregexp": "3.1.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.10.0" } }, - "node_modules/on-headers": { - "version": "1.0.2", + "node_modules/prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, - "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/onetime": { - "version": "5.1.2", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "fast-diff": "^1.1.2" }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, "engines": { "node": ">=6" }, @@ -18327,133 +20260,163 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open": { - "version": "8.4.1", - "license": "MIT", + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/openurl": { - "version": "1.1.1", + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, "license": "MIT" }, - "node_modules/opn": { - "version": "5.3.0", + "node_modules/promise": { + "version": "7.3.1", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" + "asap": "~2.0.3" } }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" }, - "node_modules/optimist": { - "version": "0.6.1", + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/protractor": { + "version": "7.0.0", "dev": true, - "license": "MIT/X11", + "license": "MIT", "dependencies": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" } }, - "node_modules/optimist/node_modules/minimist": { - "version": "0.0.10", + "node_modules/protractor/node_modules/ansi-regex": { + "version": "2.1.1", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/optimist/node_modules/wordwrap": { - "version": "0.0.3", + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", "dev": true, "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/optionator": { - "version": "0.9.1", + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", "dev": true, "license": "MIT", "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "license": "MIT", + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", + "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "wrap-ansi": "^6.2.0" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/ora/node_modules/color-convert": { + "node_modules/protractor/node_modules/color-convert": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -18462,4102 +20425,4401 @@ "node": ">=7.0.0" } }, - "node_modules/ora/node_modules/color-name": { + "node_modules/protractor/node_modules/color-name": { "version": "1.1.4", + "dev": true, "license": "MIT" }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/protractor/node_modules/find-up": { + "version": "4.1.0", + "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", + "node_modules/protractor/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", "dependencies": { - "has-flag": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ordered-ast-traverse": { - "version": "1.1.1", + "node_modules/protractor/node_modules/locate-path": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "ordered-esprima-props": "~1.1.0" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/ordered-esprima-props": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/os-homedir": { - "version": "1.0.2", + "node_modules/protractor/node_modules/p-limit": { + "version": "2.3.0", "dev": true, "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/os-locale": { - "version": "1.4.0", + "node_modules/protractor/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "lcid": "^1.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", + "node_modules/protractor/node_modules/q": { + "version": "1.4.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, - "node_modules/osenv": { - "version": "0.1.5", + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", "dev": true, - "license": "ISC", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "source-map": "^0.5.6" } }, - "node_modules/p-locate": { - "version": "5.0.0", + "node_modules/protractor/node_modules/strip-ansi": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/p-map": { - "version": "4.0.0", + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, - "node_modules/p-retry": { - "version": "4.6.2", + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", "dev": true, "license": "MIT", "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=8" } }, - "node_modules/p-try": { - "version": "2.2.0", + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pacote": { - "version": "15.1.0", - "license": "ISC", + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" + "ansi-regex": "^5.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/pako": { - "version": "0.2.9", + "node_modules/protractor/node_modules/y18n": { + "version": "4.0.3", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/param-case": { - "version": "2.1.1", + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", "dev": true, "license": "MIT", "dependencies": { - "no-case": "^2.2.0" + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/parent-module": { - "version": "1.0.1", + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "callsites": "^3.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "engines": { "node": ">=6" } }, - "node_modules/parse-filepath": { - "version": "1.0.2", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "license": "MIT", "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=0.8" + "node": ">= 0.10" } }, - "node_modules/parse-github-repo-url": { - "version": "1.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/parse-json": { - "version": "5.2.0", + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.10" } }, - "node_modules/parse-node-version": { + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/prr": { "version": "1.0.1", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.10" - } + "optional": true }, - "node_modules/parse-passwd": { - "version": "1.0.0", + "node_modules/psl": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "node_modules/pug": { + "version": "2.0.4", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "optional": true, + "dependencies": { + "pug-code-gen": "^2.0.2", + "pug-filters": "^3.1.1", + "pug-lexer": "^4.1.0", + "pug-linker": "^3.0.6", + "pug-load": "^2.0.12", + "pug-parser": "^5.0.1", + "pug-runtime": "^2.0.5", + "pug-strip-comments": "^1.0.4" } }, - "node_modules/parse5": { - "version": "7.1.2", - "devOptional": true, + "node_modules/pug-attrs": { + "version": "2.0.4", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.5" } }, - "node_modules/parse5-html-rewriting-stream": { - "version": "7.0.0", + "node_modules/pug-code-gen": { + "version": "2.0.3", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "constantinople": "^3.1.2", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.4", + "pug-error": "^1.3.3", + "pug-runtime": "^2.0.5", + "void-elements": "^2.0.1", + "with": "^5.0.0" } }, - "node_modules/parse5-html-rewriting-stream/node_modules/entities": { - "version": "4.5.0", + "node_modules/pug-error": { + "version": "1.3.3", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } + "license": "MIT", + "optional": true }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", + "node_modules/pug-filters": { + "version": "3.1.1", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "parse5": "^6.0.1" + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", + "jstransformer": "1.0.0", + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" } }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/parse5-sax-parser": { - "version": "7.0.0", + "node_modules/pug-lexer": { + "version": "4.1.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.3" } }, - "node_modules/parse5/node_modules/entities": { - "version": "4.5.0", - "devOptional": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node_modules/pug-linker": { + "version": "3.0.6", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8" } }, - "node_modules/parseurl": { - "version": "1.3.3", + "node_modules/pug-load": { + "version": "2.0.12", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" + "optional": true, + "dependencies": { + "object-assign": "^4.1.0", + "pug-walk": "^1.1.8" } }, - "node_modules/pascalcase": { - "version": "0.1.1", + "node_modules/pug-parser": { + "version": "5.0.1", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "optional": true, + "dependencies": { + "pug-error": "^1.3.3", + "token-stream": "0.0.1" } }, - "node_modules/path-dirname": { - "version": "1.0.2", + "node_modules/pug-runtime": { + "version": "2.0.5", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, - "node_modules/path-exists": { - "version": "4.0.0", + "node_modules/pug-strip-comments": { + "version": "1.0.4", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "optional": true, + "dependencies": { + "pug-error": "^1.3.3" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", + "node_modules/pug-walk": { + "version": "1.1.8", "dev": true, - "license": "(WTFPL OR MIT)" + "license": "MIT", + "optional": true }, - "node_modules/path-key": { - "version": "3.1.1", + "node_modules/punycode": { + "version": "2.3.0", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/path-root": { - "version": "0.1.1", + "node_modules/q": { + "version": "1.5.1", "dev": true, "license": "MIT", - "dependencies": { - "path-root-regex": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, - "node_modules/path-root-regex": { - "version": "0.1.2", + "node_modules/qjobs": { + "version": "1.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.9" } }, - "node_modules/path-scurry": { - "version": "1.7.0", - "license": "BlueOak-1.0.0", + "node_modules/qs": { + "version": "6.11.1", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=0.6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.1", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-to-regexp": { - "version": "0.1.7", + "node_modules/queue-microtask": { + "version": "1.2.3", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" }, - "node_modules/path-type": { - "version": "4.0.0", + "node_modules/quick-lru": { + "version": "4.0.1", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/pdfjs-dist": { - "version": "2.14.305", - "license": "Apache-2.0", - "dependencies": { - "dommatrix": "^1.0.1", - "web-streams-polyfill": "^3.2.1" - }, - "peerDependencies": { - "worker-loader": "^3.0.8" - }, - "peerDependenciesMeta": { - "worker-loader": { - "optional": true - } - } - }, - "node_modules/performance-now": { + "node_modules/randombytes": { "version": "2.1.0", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } }, - "node_modules/picocolors": { - "version": "1.0.0", + "node_modules/range-parser": { + "version": "1.2.1", "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "devOptional": true, "license": "MIT", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">= 0.6" } }, - "node_modules/pidtree": { - "version": "0.3.1", + "node_modules/raw-body": { + "version": "2.5.2", "dev": true, "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=0.10" + "node": ">= 0.8" } }, - "node_modules/pify": { - "version": "2.3.0", + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", "dev": true, "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/pinkie": { - "version": "2.0.4", + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "pify": "^2.3.0" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "dev": true, - "license": "MIT", + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", "dependencies": { - "pinkie": "^2.0.0" + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/piscina": { - "version": "3.2.0", - "dev": true, - "license": "MIT", + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", "dependencies": { - "eventemitter-asyncresource": "^1.0.0", - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, - "optionalDependencies": { - "nice-napi": "^1.0.2" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "dependencies": { - "p-locate": "^4.1.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", + "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { - "p-try": "^2.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dependencies": { - "p-limit": "^2.2.0" + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pkg-up": { - "version": "3.1.0", + "node_modules/read-pkg": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/pkg-up/node_modules/find-up": { + "node_modules/read-pkg/node_modules/path-type": { "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^3.0.0" + "pify": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/pkg-up/node_modules/locate-path": { + "node_modules/read-pkg/node_modules/pify": { "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/readable-stream": { + "version": "2.3.8", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "devOptional": true, "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=6" + "node": ">=8.10.0" } }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", + "node_modules/rechoir": { + "version": "0.7.1", "dev": true, "license": "MIT", + "dependencies": { + "resolve": "^1.9.0" + }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, - "node_modules/plur": { - "version": "2.1.2", + "node_modules/redent": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "irregular-plurals": "^1.0.0" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/portscanner": { - "version": "2.2.0", + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "license": "MIT", "dependencies": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" + "regenerate": "^1.4.2" }, "engines": { - "node": ">=0.4", - "npm": ">=1.0.0" + "node": ">=4" } }, - "node_modules/portscanner/node_modules/async": { - "version": "2.6.4", + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, - "license": "MIT", "dependencies": { - "lodash": "^4.17.14" + "@babel/runtime": "^7.8.4" } }, - "node_modules/posix-character-classes": { - "version": "0.1.1", + "node_modules/regex-not": { + "version": "1.0.2", "dev": true, "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/postcss": { - "version": "8.4.23", + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=0.10.0" } }, - "node_modules/postcss-loader": { - "version": "7.0.2", + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.8" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" + "node": ">=0.10.0" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", + "node_modules/regex-parser": { + "version": "2.2.11", "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } + "license": "MIT" }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", "dev": true, "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-value-parser": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, - "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=4" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "license": "ISC", "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" + "jsesc": "~0.5.0" }, - "peerDependencies": { - "postcss": "^8.1.0" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/postcss-scss": { - "version": "0.1.9", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^5.1.0" + "bin": { + "jsesc": "bin/jsesc" } }, - "node_modules/postcss-scss/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/relateurl": { + "version": "0.2.7", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/postcss-scss/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/remove-trailing-separator": { + "version": "1.1.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, - "node_modules/postcss-scss/node_modules/chalk": { - "version": "1.1.3", + "node_modules/repeat-element": { + "version": "1.1.4", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/postcss-scss/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-scss/node_modules/has-flag": { - "version": "1.0.0", + "node_modules/repeat-string": { + "version": "1.6.1", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/postcss-scss/node_modules/postcss": { - "version": "5.2.18", + "node_modules/request": { + "version": "2.88.2", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "engines": { - "node": ">=0.12" + "node": ">= 6" } }, - "node_modules/postcss-scss/node_modules/source-map": { - "version": "0.5.7", + "node_modules/request/node_modules/qs": { + "version": "6.5.3", "dev": true, "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=0.6" } }, - "node_modules/postcss-scss/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, + "node_modules/require-directory": { + "version": "2.1.1", "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/postcss-scss/node_modules/supports-color": { - "version": "3.2.3", - "dev": true, + "node_modules/require-from-string": { + "version": "2.0.2", "license": "MIT", - "dependencies": { - "has-flag": "^1.0.0" - }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", + "node_modules/require-main-filename": { + "version": "2.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } + "license": "ISC" }, - "node_modules/postcss-value-parser": { - "version": "3.3.1", + "node_modules/requires-port": { + "version": "1.0.0", "dev": true, "license": "MIT" }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/preprocess": { - "version": "3.2.0", - "dev": true, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "xregexp": "3.1.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "dev": true, - "license": "MIT", "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" + "resolve": "bin/resolve" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", + "node_modules/resolve-dir": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/pretty-bytes": { - "version": "5.6.0", + "node_modules/resolve-from": { + "version": "5.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/pretty-quick": { - "version": "3.1.3", + "node_modules/resolve-global": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^3.0.0", - "execa": "^4.0.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.5", - "multimatch": "^4.0.0" - }, - "bin": { - "pretty-quick": "bin/pretty-quick.js" + "global-dirs": "^0.1.1" }, "engines": { - "node": ">=10.13" - }, - "peerDependencies": { - "prettier": ">=2.0.0" + "node": ">=8" } }, - "node_modules/pretty-quick/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/resolve-pkg": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-quick/node_modules/chalk": { - "version": "3.0.0", + "node_modules/resolve-url": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/pretty-quick/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=8.9.0" } }, - "node_modules/pretty-quick/node_modules/color-name": { - "version": "1.1.4", + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/pretty-quick/node_modules/execa": { - "version": "4.1.0", + "node_modules/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", "dev": true, - "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "debug": "^2.2.0", + "minimatch": "^3.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">= 0.8.0" } }, - "node_modules/pretty-quick/node_modules/find-up": { - "version": "4.1.0", + "node_modules/resp-modifier/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "ms": "2.0.0" } }, - "node_modules/pretty-quick/node_modules/get-stream": { - "version": "5.2.0", - "dev": true, + "node_modules/resp-modifier/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "3.1.0", "license": "MIT", "dependencies": { - "pump": "^3.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pretty-quick/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/ret": { + "version": "0.1.15", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.12" } }, - "node_modules/pretty-quick/node_modules/human-signals": { - "version": "1.1.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "engines": { - "node": ">=8.12.0" + "node": ">= 4" } }, - "node_modules/pretty-quick/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/reusify": { + "version": "1.0.4", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/pretty-quick/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/right-align": { + "version": "0.1.3", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "p-try": "^2.0.0" + "align-text": "^0.1.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/pretty-quick/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/rimraf": { + "version": "3.0.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "p-limit": "^2.2.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=8" + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pretty-quick/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/promise": { - "version": "7.3.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "license": "MIT", "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/protractor": { - "version": "7.0.0", + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.13.x" + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/protractor/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", "dev": true, - "license": "MIT", + "dependencies": { + "execa": "^5.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/protractor/node_modules/ansi-styles": { - "version": "2.2.1", - "dev": true, - "license": "MIT", + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, - "node_modules/protractor/node_modules/chalk": { - "version": "1.1.3", + "node_modules/run-parallel": { + "version": "1.2.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "queue-microtask": "^1.2.2" } }, - "node_modules/protractor/node_modules/cliui": { - "version": "6.0.0", - "dev": true, - "license": "ISC", + "node_modules/rx": { + "version": "2.3.24", + "dev": true + }, + "node_modules/rxjs": { + "version": "7.4.0", + "license": "Apache-2.0", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "tslib": "~2.1.0" } }, - "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/rxjs/node_modules/tslib": { + "version": "2.1.0", + "license": "0BSD" }, - "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", + "node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/safe-json-parse": { + "version": "1.0.1", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "ret": "~0.1.10" } }, - "node_modules/protractor/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/safe-regex-test": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" }, - "engines": { - "node": ">=7.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/protractor/node_modules/color-name": { - "version": "1.1.4", - "dev": true, + "node_modules/safer-buffer": { + "version": "2.1.2", "license": "MIT" }, - "node_modules/protractor/node_modules/find-up": { - "version": "4.1.0", + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, + "node_modules/sass": { + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", "dev": true, - "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "node_modules/protractor/node_modules/glob": { - "version": "7.2.3", + "node_modules/sass-loader": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", "dev": true, - "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "neo-async": "^2.6.2" }, "engines": { - "node": "*" + "node": ">= 14.15.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } } }, - "node_modules/protractor/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/sass/node_modules/immutable": { + "version": "4.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/saucelabs": { + "version": "1.5.0", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "https-proxy-agent": "^2.2.1" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/protractor/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/saucelabs/node_modules/agent-base": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "es6-promisify": "^5.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4.0.0" } }, - "node_modules/protractor/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/saucelabs/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "ms": "^2.1.1" } }, - "node_modules/protractor/node_modules/q": { - "version": "1.4.1", + "node_modules/saucelabs/node_modules/https-proxy-agent": { + "version": "2.2.4", "dev": true, "license": "MIT", + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" + "node": ">= 4.5.0" } }, - "node_modules/protractor/node_modules/source-map": { - "version": "0.5.7", + "node_modules/sax": { + "version": "1.2.4", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, - "node_modules/protractor/node_modules/source-map-support": { - "version": "0.4.18", + "node_modules/schema-utils": { + "version": "4.0.1", "dev": true, "license": "MIT", "dependencies": { - "source-map": "^0.5.6" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/protractor/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^2.0.0" + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6.9.0" } }, - "node_modules/protractor/node_modules/supports-color": { - "version": "2.0.0", + "node_modules/selenium-webdriver/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/protractor/node_modules/wrap-ansi": { - "version": "6.2.0", + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=8" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", "dev": true, "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@types/node-forge": "^1.3.0", + "node-forge": "^1" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dependencies": { + "lru-cache": "^6.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/protractor/node_modules/y18n": { - "version": "4.0.3", - "dev": true, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", "license": "ISC" }, - "node_modules/protractor/node_modules/yargs": { - "version": "15.4.1", + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, - "license": "MIT", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/protractor/node_modules/yargs-parser": { - "version": "18.1.3", + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "ISC", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "ee-first": "1.1.1" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.8" } }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">= 0.8" } }, - "node_modules/prr": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/psl": { - "version": "1.9.0", + "node_modules/serialize-javascript": { + "version": "6.0.1", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } }, - "node_modules/pug": { - "version": "2.0.4", + "node_modules/serve-index": { + "version": "1.9.1", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "pug-code-gen": "^2.0.2", - "pug-filters": "^3.1.1", - "pug-lexer": "^4.1.0", - "pug-linker": "^3.0.6", - "pug-load": "^2.0.12", - "pug-parser": "^5.0.1", - "pug-runtime": "^2.0.5", - "pug-strip-comments": "^1.0.4" + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/pug-attrs": { - "version": "2.0.4", + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.5" + "ms": "2.0.0" } }, - "node_modules/pug-code-gen": { - "version": "2.0.3", + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "constantinople": "^3.1.2", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.4", - "pug-error": "^1.3.3", - "pug-runtime": "^2.0.5", - "void-elements": "^2.0.1", - "with": "^5.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/pug-error": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/pug-filters": { - "version": "3.1.1", + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/pug-lexer": { - "version": "4.1.0", + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.3" - } + "license": "ISC" }, - "node_modules/pug-linker": { - "version": "3.0.6", + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8" - } + "license": "MIT" }, - "node_modules/pug-load": { - "version": "2.0.12", + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.8" + "engines": { + "node": ">= 0.6" } }, - "node_modules/pug-parser": { - "version": "5.0.1", + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, - "license": "MIT", - "optional": true, "dependencies": { - "pug-error": "^1.3.3", - "token-stream": "0.0.1" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/pug-runtime": { - "version": "2.0.5", + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/set-blocking": { + "version": "2.0.0", "dev": true, - "license": "MIT", - "optional": true + "license": "ISC" }, - "node_modules/pug-strip-comments": { - "version": "1.0.4", + "node_modules/set-value": { + "version": "2.0.1", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "pug-error": "^1.3.3" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/pug-walk": { - "version": "1.1.8", + "node_modules/setimmediate": { + "version": "1.0.5", "dev": true, - "license": "MIT", - "optional": true + "license": "MIT" }, - "node_modules/pump": { - "version": "3.0.0", + "node_modules/setprototypeof": { + "version": "1.2.0", "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } + "license": "ISC" }, - "node_modules/punycode": { - "version": "2.3.0", - "license": "MIT", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/q": { - "version": "1.5.1", - "dev": true, + "node_modules/shebang-command": { + "version": "2.0.0", "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" + "node": ">=8" } }, - "node_modules/qjobs": { - "version": "1.2.0", - "dev": true, + "node_modules/shebang-regex": { + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=0.9" + "node": ">=8" } }, - "node_modules/qs": { - "version": "6.11.1", + "node_modules/shell-quote": { + "version": "1.8.1", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "4.0.1", + "node_modules/shelljs": { + "version": "0.3.0", "dev": true, - "license": "MIT", + "license": "BSD*", + "bin": { + "shjs": "bin/shjs" + }, "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/showdown": { + "version": "1.3.0", + "license": "BSD-2-Clause", "dependencies": { - "safe-buffer": "^5.1.0" + "yargs": "^3.15.0" + }, + "bin": { + "showdown": "bin/showdown.js" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "dev": true, + "node_modules/showdown/node_modules/ansi-regex": { + "version": "2.1.1", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "dev": true, + "node_modules/showdown/node_modules/camelcase": { + "version": "2.1.1", "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, + "node_modules/showdown/node_modules/cliui": { + "version": "3.2.0", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/showdown/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "number-is-nan": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-package-json": { - "version": "6.0.2", - "license": "ISC", + "node_modules/showdown/node_modules/string-width": { + "version": "1.0.2", + "license": "MIT", "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "license": "ISC", + "node_modules/showdown/node_modules/strip-ansi": { + "version": "3.0.1", + "license": "MIT", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", + "node_modules/showdown/node_modules/window-size": { + "version": "0.1.4", "license": "MIT", + "bin": { + "window-size": "cli.js" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.10.0" } }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", + "node_modules/showdown/node_modules/wrap-ansi": { + "version": "2.1.0", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.2.2", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "6.1.1", - "license": "ISC", + "node_modules/showdown/node_modules/y18n": { + "version": "3.2.2", + "license": "ISC" + }, + "node_modules/showdown/node_modules/yargs": { + "version": "3.32.0", + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" } }, - "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", - "engines": { - "node": ">=12" - } + "node_modules/sigmund": { + "version": "1.0.1", + "license": "ISC" }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.0", - "license": "ISC", + "node_modules/signal-exit": { + "version": "3.0.7", + "license": "ISC" + }, + "node_modules/sigstore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", + "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", "dependencies": { - "brace-expansion": "^2.0.1" + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/read-package-json/node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", + "node_modules/simple-fmt": { + "version": "0.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/simple-is": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "5.0.0", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/read-pkg": { - "version": "3.0.0", + "node_modules/snapdragon": { + "version": "0.8.2", "dev": true, "license": "MIT", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/read-pkg-up": { - "version": "1.0.1", + "node_modules/snapdragon-node": { + "version": "2.1.1", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/load-json-file": { - "version": "1.1.0", + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "2.2.0", + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "error-ex": "^1.2.0" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "pinkie-promise": "^2.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/path-type": { - "version": "1.1.0", + "node_modules/snapdragon-util": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "kind-of": "^3.2.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "1.1.0", + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", "dev": true, "license": "MIT", "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/strip-bom": { - "version": "2.0.0", + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", "dependencies": { - "is-utf8": "^0.2.0" - }, + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", + "node_modules/socket.io": { + "version": "4.6.1", "dev": true, "license": "MIT", "dependencies": { - "pify": "^3.0.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.4.1", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.1" }, "engines": { - "node": ">=4" + "node": ">=10.0.0" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", + "node_modules/socket.io-adapter": { + "version": "2.5.2", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "ws": "~8.11.0" } }, - "node_modules/readable-stream": { - "version": "2.3.8", + "node_modules/socket.io-client": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", "dev": true, - "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, - "license": "MIT" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "devOptional": true, - "license": "MIT", "dependencies": { - "picomatch": "^2.2.1" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" }, "engines": { - "node": ">=8.10.0" + "node": ">=10.0.0" } }, - "node_modules/rechoir": { - "version": "0.7.1", + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, - "license": "MIT", "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" } }, - "node_modules/redent": { - "version": "3.0.0", + "node_modules/sockjs/node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, - "license": "MIT", "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "websocket-driver": ">=0.5.1" }, "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/reflect-metadata": { - "version": "0.1.13", + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "license": "Apache-2.0" + "bin": { + "uuid": "dist/bin/uuid" + } }, - "node_modules/regenerate": { - "version": "1.4.2", - "dev": true, - "license": "MIT" + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "dev": true, - "license": "MIT", + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dependencies": { - "regenerate": "^1.4.2" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" }, "engines": { - "node": ">=4" + "node": ">= 14" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "dev": true, - "license": "MIT" + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" } }, - "node_modules/regex-not": { + "node_modules/source-map-js": { "version": "1.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", + "node_modules/source-map-loader": { + "version": "4.0.1", "dev": true, "license": "MIT", "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" } }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", + "node_modules/source-map-resolve": { + "version": "0.5.3", "dev": true, "license": "MIT", "dependencies": { - "is-plain-object": "^2.0.4" - }, + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/regex-parser": { - "version": "2.2.11", + "node_modules/source-map-url": { + "version": "0.4.1", "dev": true, "license": "MIT" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.0", + "node_modules/spawn-command": { + "version": "0.0.2-1", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "license": "Apache-2.0", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "dev": true, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/regjsparser": { - "version": "0.9.1", + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "license": "CC0-1.0" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" }, - "bin": { - "regjsparser": "bin/parser" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" } }, - "node_modules/relateurl": { - "version": "0.2.7", + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">= 0.10" + "node": ">= 6" } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/repeat-element": { - "version": "1.1.4", + "node_modules/split-string": { + "version": "3.1.0", "dev": true, "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/repeat-string": { - "version": "1.6.1", + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", "dev": true, "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/repeating": { - "version": "2.0.1", + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "is-finite": "^1.0.0" + "is-plain-object": "^2.0.4" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/request": { - "version": "2.88.2", + "node_modules/split2": { + "version": "3.2.2", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" + "readable-stream": "^3.0.0" } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", + "node_modules/sprintf-js": { + "version": "1.0.3", "dev": true, - "license": "ISC" + "license": "BSD-3-Clause" }, - "node_modules/requires-port": { - "version": "1.0.0", + "node_modules/sshpk": { + "version": "1.17.0", "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.1", "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" }, "bin": { - "resolve": "bin/resolve" + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "dev": true, - "license": "MIT", + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/resolve-from": { - "version": "5.0.0", + "node_modules/stable": { + "version": "0.1.8", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/resolve-global": { - "version": "1.0.0", + "node_modules/static-extend": { + "version": "0.1.2", "dev": true, "license": "MIT", "dependencies": { - "global-dirs": "^0.1.1" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/resolve-pkg": { - "version": "2.0.0", + "node_modules/statuses": { + "version": "1.3.1", "dev": true, "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/resolve-url": { - "version": "0.2.1", + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", "dev": true, - "license": "MIT" + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", + "node_modules/streamroller": { + "version": "3.1.5", "dev": true, "license": "MIT", "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">=12" + "node": ">=8.0" } }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", "dev": true, "license": "MIT", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=8.9.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/resp-modifier": { - "version": "6.0.2", + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", "dev": true, - "dependencies": { - "debug": "^2.2.0", - "minimatch": "^3.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">= 4.0.0" } }, - "node_modules/resp-modifier/node_modules/debug": { - "version": "2.6.9", - "dev": true, + "node_modules/string_decoder": { + "version": "1.1.1", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/resp-modifier/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" + "node_modules/string-template": { + "version": "0.2.1", + "dev": true }, - "node_modules/restore-cursor": { - "version": "3.1.0", + "node_modules/string-width": { + "version": "4.2.3", "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/ret": { - "version": "0.1.15", - "dev": true, - "license": "MIT", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=0.12" + "node": ">=8" } }, - "node_modules/retry": { - "version": "0.12.0", + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, "engines": { - "node": ">= 4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/reusify": { - "version": "1.0.4", + "node_modules/string.prototype.trim": { + "version": "1.2.7", "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rfdc": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/right-align": { - "version": "0.1.3", + "node_modules/string.prototype.trimend": { + "version": "1.0.6", "dev": true, "license": "MIT", "dependencies": { - "align-text": "^0.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", + "node_modules/stringmap": { + "version": "0.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/stringset": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/run-async": { - "version": "2.4.1", - "license": "MIT", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=0.12.0" + "node": ">=8" } }, - "node_modules/run-parallel": { - "version": "1.2.0", + "node_modules/strip-bom": { + "version": "3.0.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" + "engines": { + "node": ">=4" } }, - "node_modules/rx": { - "version": "2.3.24", - "dev": true - }, - "node_modules/rxjs": { - "version": "7.4.0", - "license": "Apache-2.0", - "dependencies": { - "tslib": "~2.1.0" + "node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.1.0", - "license": "0BSD" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/safe-json-parse": { - "version": "1.0.1", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", + "node_modules/strip-indent": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "ret": "~0.1.10" + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/safe-regex-test": { - "version": "1.0.0", + "node_modules/strip-json-comments": { + "version": "3.1.1", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/safevalues": { - "version": "0.3.4", - "license": "Apache-2.0" - }, - "node_modules/sass": { - "version": "1.62.1", + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", "dev": true, - "license": "MIT", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" }, "bin": { - "sass": "sass.js" + "sl-log-transformer": "bin/sl-log-transformer.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=4" } }, - "node_modules/sass-loader": { - "version": "13.2.0", + "node_modules/sucrase": { + "version": "3.32.0", "dev": true, "license": "MIT", "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/sass/node_modules/immutable": { - "version": "4.3.0", + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 6" + } }, - "node_modules/saucelabs": { - "version": "1.5.0", + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", "dev": true, + "license": "ISC", "dependencies": { - "https-proxy-agent": "^2.2.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/saucelabs/node_modules/agent-base": { - "version": "4.3.0", + "node_modules/supports-color": { + "version": "5.5.0", "dev": true, "license": "MIT", "dependencies": { - "es6-promisify": "^5.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 4.0.0" + "node": ">=4" } }, - "node_modules/saucelabs/node_modules/debug": { - "version": "3.2.7", - "dev": true, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/saucelabs/node_modules/https-proxy-agent": { - "version": "2.2.4", + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, - "license": "MIT", "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" }, "engines": { - "node": ">= 4.5.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/sax": { - "version": "1.2.4", - "dev": true, - "license": "ISC" - }, - "node_modules/schema-utils": { - "version": "4.0.1", + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", "dev": true, - "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" }, - "engines": { - "node": ">= 12.13.0" + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/select-hose": { - "version": "2.0.0", + "node_modules/tailwindcss/node_modules/arg": { + "version": "5.0.2", "dev": true, "license": "MIT" }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6.9.0" + "node": ">=10.13.0" } }, - "node_modules/selenium-webdriver/node_modules/glob": { - "version": "7.2.3", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=6" } }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=0.4.0" + "node": ">= 6" } }, - "node_modules/selfsigned": { - "version": "2.1.1", - "dev": true, - "license": "MIT", + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dependencies": { - "node-forge": "^1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/semver": { - "version": "7.3.8", - "license": "ISC", + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "lru-cache": "^6.0.0" + "yallist": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "bin": { - "semver": "bin/semver.js" + "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { "node": ">=10" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/send": { - "version": "0.16.2", + "node_modules/terser-webpack-plugin": { + "version": "5.3.7", "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/send/node_modules/depd": { - "version": "1.1.2", + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "peerDependencies": { + "ajv": "^6.9.1" } }, - "node_modules/send/node_modules/destroy": { - "version": "1.0.4", + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", "dev": true, "license": "MIT" }, - "node_modules/send/node_modules/http-errors": { - "version": "1.6.3", + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.2", "dev": true, "license": "MIT", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 0.6" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/send/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, - "node_modules/send/node_modules/mime": { - "version": "1.4.1", + "node_modules/test-exclude": { + "version": "6.0.0", "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "node_modules/send/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/setprototypeof": { - "version": "1.1.0", + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "ISC" + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/send/node_modules/statuses": { - "version": "1.4.0", + "node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10" } }, - "node_modules/serialize-javascript": { - "version": "6.0.1", + "node_modules/text-table": { + "version": "0.2.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "dev": true, + "license": "MIT", "dependencies": { - "randombytes": "^2.1.0" + "any-promise": "^1.0.0" } }, - "node_modules/serve-index": { - "version": "1.9.1", + "node_modules/thenify-all": { + "version": "1.6.0", "dev": true, "license": "MIT", "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "thenify": ">= 3.1.0 < 4" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.8" } }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", + "node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } + "license": "MIT" }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", + "node_modules/through2": { + "version": "4.0.2", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "readable-stream": "3" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", "dev": true, "license": "MIT", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", + "node_modules/tiny-lr": { + "version": "1.1.1", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.2.7", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serve-static": { - "version": "1.13.2", + "node_modules/tmp": { + "version": "0.2.1", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" + "rimraf": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8.17.0" } }, - "node_modules/server-destroy": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/set-blocking": { + "node_modules/to-fast-properties": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/set-value": { - "version": "2.0.1", + "node_modules/to-object-path": { + "version": "0.3.0", "dev": true, "license": "MIT", "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/to-regex": { + "version": "3.0.2", + "dev": true, "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/to-regex-range": { + "version": "5.0.1", + "devOptional": true, "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, "engines": { - "node": ">=8" + "node": ">=8.0" } }, - "node_modules/shell-quote": { - "version": "1.8.1", + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.3.0", - "dev": true, - "license": "BSD*", - "bin": { - "shjs": "bin/shjs" + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/showdown": { - "version": "1.3.0", - "license": "BSD-2-Clause", + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "yargs": "^3.15.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, - "bin": { - "showdown": "bin/showdown.js" - } - }, - "node_modules/showdown/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/showdown/node_modules/camelcase": { - "version": "2.1.1", + "node_modules/to-regex/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/showdown/node_modules/cliui": { - "version": "3.2.0", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/showdown/node_modules/is-fullwidth-code-point": { + "node_modules/to-regex/node_modules/is-data-descriptor": { "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "number-is-nan": "^1.0.0" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/showdown/node_modules/string-width": { + "node_modules/to-regex/node_modules/is-descriptor": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/showdown/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "is-plain-object": "^2.0.4" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/showdown/node_modules/window-size": { - "version": "0.1.4", + "node_modules/toidentifier": { + "version": "1.0.1", + "dev": true, "license": "MIT", - "bin": { - "window-size": "cli.js" - }, "engines": { - "node": ">= 0.10.0" + "node": ">=0.6" } }, - "node_modules/showdown/node_modules/wrap-ansi": { - "version": "2.1.0", + "node_modules/token-stream": { + "version": "0.0.1", + "dev": true, "license": "MIT", + "optional": true + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8" } }, - "node_modules/showdown/node_modules/y18n": { - "version": "3.2.2", - "license": "ISC" - }, - "node_modules/showdown/node_modules/yargs": { - "version": "3.32.0", + "node_modules/tree-kill": { + "version": "1.2.2", + "dev": true, "license": "MIT", - "dependencies": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", - "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" + "bin": { + "tree-kill": "cli.js" } }, - "node_modules/side-channel": { - "version": "1.0.4", + "node_modules/trim-newlines": { + "version": "3.0.1", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sigmund": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "license": "ISC" - }, - "node_modules/sigstore": { - "version": "1.4.0", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.1.3" - }, - "bin": { - "sigstore": "bin/sigstore.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.1.1", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", "engines": { "node": ">=8" } }, - "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.3", - "license": "MIT", - "dependencies": { - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/simple-fmt": { - "version": "0.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/simple-is": { - "version": "0.2.0", + "node_modules/tryor": { + "version": "0.1.2", "dev": true, "license": "MIT" }, - "node_modules/slash": { - "version": "3.0.0", + "node_modules/ts-api-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", + "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/ts-md5": { + "version": "1.3.1", "license": "MIT", "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=12" } }, - "node_modules/snapdragon": { - "version": "0.8.2", + "node_modules/ts-node": { + "version": "10.9.1", "dev": true, "license": "MIT", "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/snapdragon-node": { - "version": "2.1.1", + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=0.3.1" } }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", + "node_modules/tsconfig-paths": { + "version": "3.14.2", "dev": true, "license": "MIT", "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "dev": true, - "license": "MIT", + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", + "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", "dependencies": { - "kind-of": "^6.0.0" + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", + "node_modules/tunnel-agent": { + "version": "0.6.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "safe-buffer": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/snapdragon-util": { - "version": "3.0.1", + "node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { - "kind-of": "^3.2.0" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", "dev": true, "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", + "node_modules/typed-array-length": { + "version": "1.0.4", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", + "node_modules/typed-assert": { + "version": "1.0.9", "dev": true, "license": "MIT" }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, - "license": "BSD-3-Clause", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=0.10.0" + "node": ">=14.17" } }, - "node_modules/socket.io": { - "version": "4.6.1", + "node_modules/ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "2.7.5", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.4.1", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.8.0" } }, - "node_modules/socket.io-adapter": { - "version": "2.5.2", + "node_modules/uglify-js/node_modules/async": { + "version": "0.2.10", + "dev": true, + "optional": true + }, + "node_modules/uglify-js/node_modules/camelcase": { + "version": "1.2.1", "dev": true, "license": "MIT", - "dependencies": { - "ws": "~8.11.0" + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/socket.io-client": { - "version": "4.6.1", + "node_modules/uglify-js/node_modules/cliui": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "license": "ISC", + "optional": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.4.0", - "socket.io-parser": "~4.2.1" - }, + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.5.7", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/socket.io-parser": { - "version": "4.2.2", + "node_modules/uglify-js/node_modules/wordwrap": { + "version": "0.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, + "license": "MIT/X11", + "optional": true, "engines": { - "node": ">=10.0.0" + "node": ">=0.4.0" } }, - "node_modules/sockjs": { - "version": "0.3.24", + "node_modules/uglify-js/node_modules/yargs": { + "version": "3.10.0", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" } }, - "node_modules/sockjs/node_modules/faye-websocket": { - "version": "0.11.4", + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "websocket-driver": ">=0.5.1" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, - "engines": { - "node": ">=0.8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", + "node_modules/unc-path-regex": { + "version": "0.1.2", "dev": true, "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/socks": { - "version": "2.7.1", - "license": "MIT", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, + "node_modules/underscore": { + "version": "1.13.6", + "dev": true, + "license": "MIT" + }, + "node_modules/underscore.string": { + "version": "2.3.3", "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": "*" } }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "license": "MIT", + "node_modules/undici": { + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", + "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", + "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "@fastify/busboy": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": ">=14.0" } }, - "node_modules/socks/node_modules/ip": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/source-map": { - "version": "0.7.4", - "license": "BSD-3-Clause", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/source-map-js": { - "version": "1.0.2", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/source-map-loader": { - "version": "4.0.1", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" }, "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" + "node": ">=0.10.0" } }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "dev": true, - "license": "MIT", + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", + "node_modules/universalify": { + "version": "2.0.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 10.0.0" } }, - "node_modules/source-map-url": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "dev": true, - "license": "MIT" - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "license": "CC0-1.0" - }, - "node_modules/spdy": { - "version": "4.0.2", + "node_modules/unpipe": { + "version": "1.0.0", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "node": ">= 0.8" } }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.2", + "node_modules/unset-value": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/split": { - "version": "1.0.1", + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", "dev": true, "license": "MIT", "dependencies": { - "through": "2" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/split-string": { - "version": "3.1.0", + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "extend-shallow": "^3.0.0" + "isarray": "1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", "dev": true, "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/split2": { - "version": "3.2.2", + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/split2/node_modules/readable-stream": { - "version": "3.6.2", + "node_modules/upath": { + "version": "1.2.0", "dev": true, "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" + "node": ">=4", + "yarn": "*" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/sshpk": { - "version": "1.17.0", + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "update-browserslist-db": "cli.js" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/ssri": { - "version": "10.0.4", - "license": "ISC", + "node_modules/upper-case": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "punycode": "^2.1.0" } }, - "node_modules/ssri/node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", + "node_modules/uri-path": { + "version": "1.0.0", + "dev": true, + "license": "WTFPL OR MIT", "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/stable": { - "version": "0.1.8", + "node_modules/urix": { + "version": "0.1.0", "dev": true, "license": "MIT" }, - "node_modules/static-extend": { - "version": "0.1.2", + "node_modules/use": { + "version": "3.1.1", "dev": true, "license": "MIT", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/statuses": { - "version": "1.3.1", + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.4.0" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", + "node_modules/uuid": { + "version": "3.4.0", "dev": true, "license": "MIT", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/stream-throttle": { - "version": "0.1.3", + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - }, - "bin": { - "throttleproxy": "bin/throttleproxy.js" - }, - "engines": { - "node": ">= 0.10.0" - } + "license": "MIT" }, - "node_modules/streamroller": { - "version": "3.1.5", + "node_modules/v8flags": { + "version": "3.2.0", "dev": true, "license": "MIT", "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=8.0" + "node": ">= 0.10" } }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "dev": true, - "license": "MIT", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "license": "Apache-2.0", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/streamroller/node_modules/universalify": { - "version": "0.1.2", + "node_modules/vary": { + "version": "1.1.2", "dev": true, "license": "MIT", "engines": { - "node": ">= 4.0.0" + "node": ">= 0.8" } }, - "node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/verror": { + "version": "1.10.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "node_modules/string-template": { - "version": "0.2.1", - "dev": true + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "license": "MIT" }, - "node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", + "node_modules/vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": ">=8" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "node_modules/string.prototype.padend": { - "version": "3.1.4", + "node_modules/void-elements": { + "version": "2.0.1", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", + "node_modules/watchpack": { + "version": "2.4.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.13.0" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "defaults": "^1.0.3" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.9.x" } }, - "node_modules/stringmap": { - "version": "0.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/stringset": { - "version": "0.2.1", + "node_modules/webdriver-manager": { + "version": "12.1.9", "dev": true, - "license": "MIT" - }, - "node_modules/strip-ansi": { - "version": "6.0.1", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "adm-zip": "^0.5.2", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" }, "engines": { - "node": ">=8" + "node": ">=6.9.x" } }, - "node_modules/strip-bom": { - "version": "3.0.0", + "node_modules/webdriver-manager/node_modules/ansi-regex": { + "version": "2.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", + "node_modules/webdriver-manager/node_modules/ansi-styles": { + "version": "2.2.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/strip-indent": { - "version": "3.0.0", + "node_modules/webdriver-manager/node_modules/chalk": { + "version": "1.1.3", "dev": true, "license": "MIT", "dependencies": { - "min-indent": "^1.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", + "node_modules/webdriver-manager/node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/supports-color": { - "version": "5.5.0", + "node_modules/webdriver-manager/node_modules/ini": { + "version": "1.3.8", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/webdriver-manager/node_modules/rimraf": { + "version": "2.7.1", + "dev": true, + "license": "ISC", "dependencies": { - "has-flag": "^3.0.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=4" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/webdriver-manager/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" } }, - "node_modules/symbol-observable": { - "version": "4.0.0", + "node_modules/webdriver-manager/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/tapable": { - "version": "2.2.1", + "node_modules/webdriver-manager/node_modules/supports-color": { + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.8.0" } }, - "node_modules/tar": { - "version": "6.1.13", - "license": "ISC", + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" }, "engines": { - "node": ">=10" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "license": "ISC", + "node_modules/webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "dev": true, "dependencies": { - "minipass": "^3.0.0" + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } } }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", "bin": { - "mkdirp": "bin/cmd.js" + "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">=10" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/terser": { - "version": "5.16.3", + "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, "engines": { - "node": ">=10" + "node": ">=0.8" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.7", + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.1.0" + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { - "@swc/core": { + "bufferutil": { "optional": true }, - "esbuild": { + "utf-8-validate": { "optional": true - }, - "uglify-js": { + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { "optional": true } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { + "node_modules/webpack/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -22569,28 +24831,46 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "node_modules/webpack/node_modules/ajv-keywords": { "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, - "node_modules/terser-webpack-plugin/node_modules/commander": { - "version": "2.20.3", + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", "dev": true, - "license": "MIT" + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", "dev": true, - "license": "MIT" + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.2", + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -22604,1159 +24884,17144 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.17.1", + "node_modules/websocket-driver": { + "version": "0.7.4", "dev": true, - "license": "BSD-2-Clause", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" }, "engines": { - "node": ">=10" + "node": ">=0.8.0" } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", + "node_modules/websocket-extensions": { + "version": "0.1.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "dev": true, + "node_modules/which": { + "version": "2.0.2", "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "isexe": "^2.0.0" }, - "engines": { - "node": "*" + "bin": { + "node-which": "bin/node-which" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">= 8" } }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/through": { - "version": "2.3.8", - "license": "MIT" - }, - "node_modules/through2": { - "version": "4.0.2", + "node_modules/which-boxed-primitive": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "readable-stream": "3" + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/through2/node_modules/readable-stream": { - "version": "3.6.2", + "node_modules/which-module": { + "version": "2.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "1.1.9", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "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": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/thunky": { - "version": "1.1.0", - "dev": true, - "license": "MIT" + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true }, - "node_modules/tiny-lr": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "body": "^5.1.0", - "debug": "^3.1.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.3.0", - "object-assign": "^4.1.0", - "qs": "^6.4.0" + "node_modules/window-size": { + "version": "0.1.0", + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/tiny-lr/node_modules/debug": { - "version": "3.2.7", + "node_modules/with": { + "version": "5.1.1", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "ms": "^2.1.1" + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" } }, - "node_modules/tmp": { - "version": "0.2.1", + "node_modules/with/node_modules/acorn": { + "version": "3.3.0", "dev": true, "license": "MIT", - "dependencies": { - "rimraf": "^3.0.0" + "optional": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=8.17.0" + "node": ">=0.4.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, + "node_modules/wrap-ansi": { + "version": "7.0.0", "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/to-object-path": { - "version": "0.3.0", - "dev": true, - "license": "MIT", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "kind-of": "^3.0.2" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "is-buffer": "^1.1.5" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/to-regex": { - "version": "3.0.2", - "dev": true, - "license": "MIT", + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "devOptional": true, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/to-regex/node_modules/define-property": { - "version": "2.0.2", - "dev": true, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.11.0", "dev": true, "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/to-regex/node_modules/is-accessor-descriptor": { - "version": "1.0.0", + "node_modules/xml2js": { + "version": "0.4.23", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0.0" } }, - "node_modules/to-regex/node_modules/is-data-descriptor": { - "version": "1.0.0", + "node_modules/xmlbuilder": { + "version": "11.0.1", "dev": true, "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/to-regex/node_modules/is-descriptor": { - "version": "1.0.2", + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", + "node_modules/xregexp": { + "version": "3.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/toidentifier": { - "version": "1.0.1", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=0.6" + "node": ">= 6" } }, - "node_modules/token-stream": { - "version": "0.0.1", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=0.8" + "node": ">=12" } }, - "node_modules/tree-kill": { - "version": "1.2.2", + "node_modules/yargs-parser": { + "version": "20.2.9", "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" + "license": "ISC", + "engines": { + "node": ">=10" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/trim-off-newlines": { - "version": "1.0.3", + "node_modules/yocto-queue": { + "version": "0.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tryor": { - "version": "0.1.2", - "dev": true, + "node_modules/zlib-browserify": { + "version": "0.0.1", "license": "MIT" }, - "node_modules/ts-md5": { - "version": "1.3.1", - "license": "MIT", - "engines": { - "node": ">=12" + "node_modules/zone.js": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.2.tgz", + "integrity": "sha512-X4U7J1isDhoOmHmFWiLhloWc2lzMkdnumtfQ1LXzf/IOZp5NQYuMUTaviVzG/q1ugMBIXzin2AqeVJUoSEkNyQ==", + "dependencies": { + "tslib": "^2.3.0" } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true }, - "node_modules/ts-node": { - "version": "10.9.1", + "@alloc/quick-lru": { + "version": "5.2.0", + "dev": true + }, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@angular-devkit/architect": { + "version": "0.1700.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.0.tgz", + "integrity": "sha512-whi7HvOjv1J3He9f+H8xNJWKyjAmWuWNl8gxNW6EZP/XLcrOu+/5QT4bPtXQBRIL/avZuc++5sNQS+kReaNCig==", + "requires": { + "@angular-devkit/core": "17.0.0", + "rxjs": "7.8.1" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "@angular-devkit/build-angular": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.0.tgz", + "integrity": "sha512-hkV8k4moAnUquac2Dz5XPd5izDDgEF82NeUkSwizcTaqlJqYOdmWASMsXyVBzdrTmDtFKQiphfA96i7eo5MlvA==", + "dev": true, + "requires": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1700.0", + "@angular-devkit/build-webpack": "0.1700.0", + "@angular-devkit/core": "17.0.0", + "@babel/core": "7.23.2", + "@babel/generator": "7.23.0", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.2", + "@babel/plugin-transform-async-to-generator": "7.22.5", + "@babel/plugin-transform-runtime": "7.23.2", + "@babel/preset-env": "7.23.2", + "@babel/runtime": "7.23.2", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.0.0", + "@vitejs/plugin-basic-ssl": "1.0.1", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.16", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browser-sync": "2.29.3", + "browserslist": "^4.21.5", + "chokidar": "3.5.3", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild": "0.19.5", + "esbuild-wasm": "0.19.5", + "fast-glob": "3.3.1", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.2", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.5", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "1.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "3.0.1", + "piscina": "4.1.0", + "postcss": "8.4.31", + "postcss-loader": "7.3.3", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.69.5", + "sass-loader": "13.3.2", + "semver": "7.5.4", + "source-map-loader": "4.0.1", + "source-map-support": "0.5.21", + "terser": "5.24.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "5.27.2", + "vite": "4.5.0", + "webpack": "5.89.0", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" }, - "peerDependenciesMeta": { - "@swc/core": { + "dependencies": { + "@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "dev": true, "optional": true }, - "@swc/wasm": { + "@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "dev": true, "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "dev": true, + "optional": true + }, + "autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "requires": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "dev": true, + "optional": true, + "requires": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", + "@angular-devkit/build-webpack": { + "version": "0.1700.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.0.tgz", + "integrity": "sha512-Hx9JUb32gigsHlbBZJ5sw3q3H7qHeX8HTh4aIq4Glvb/5e+HgPlclVSIA5BY2ZYatHixU+CUAXRmcIKxViS02Q==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" + "requires": { + "@angular-devkit/architect": "0.1700.0", + "rxjs": "7.8.1" + }, + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } } }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "dev": true, - "license": "MIT", + "@angular-devkit/core": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.0.tgz", + "integrity": "sha512-QUu3LnEi4A8t733v2+I0sLtyBJx3Q7zdTAhaauCbxbFhDid0cbYm8hYsyG/njor1irTPxSJbn6UoetVkwUQZxg==", + "requires": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==" + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + } } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" + "@angular-devkit/schematics": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.0.tgz", + "integrity": "sha512-LD7fjDORuBf139/oJ/gSwbIzQPfsm6Y67s1FD+XLi0QXaRt6dw4r7BMD08l1r//oPQofNgbEH4coGVO4NdCL/A==", + "requires": { + "@angular-devkit/core": "17.0.0", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" }, - "bin": { - "json5": "lib/cli.js" + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + } } }, - "node_modules/tslib": { - "version": "2.5.0", - "license": "0BSD" + "@angular-eslint/builder": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.0.0.tgz", + "integrity": "sha512-cquqJH0R/IIh2PElcGXdo9FTcrkwO78H2MXk9ChGFBjQrYjihFLhFm12VuQsih7X6bJjA0cmr2PL1KbtgjMk1Q==", + "dev": true, + "requires": { + "@nx/devkit": "17.0.3", + "nx": "17.0.3" + } }, - "node_modules/tsutils": { - "version": "3.21.0", + "@angular-eslint/bundled-angular-compiler": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.0.0.tgz", + "integrity": "sha512-nHLliW18XduO51+e/RST8O2YnhcQR3+NSSy8zlmYyjLeUi5NBpC/Hwp68KxPP2YcUYie1tWlaw48YJYo97qE6A==", + "dev": true + }, + "@angular-eslint/eslint-plugin": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.0.0.tgz", + "integrity": "sha512-I2gb7hDthNiWbeNXlINBYQIbwKkPPM8442EIPeWtwgOQ2qjMwTAz1l3FA46U7pwbaXsdlY0p9Kp4ABy9T0cknA==", "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "requires": { + "@angular-eslint/utils": "17.0.0", + "@typescript-eslint/utils": "6.10.0" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", + "@angular-eslint/eslint-plugin-template": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.0.0.tgz", + "integrity": "sha512-Yy9097HAkMEiYANGw2UZQuJSO0fXpBWUMOxwWUFDD5Am7eB51a+5BiOdBe8uy4lM5OnIfm+aIASwbmvPHwjjTA==", "dev": true, - "license": "0BSD" + "requires": { + "@angular-eslint/bundled-angular-compiler": "17.0.0", + "@angular-eslint/utils": "17.0.0", + "@typescript-eslint/type-utils": "6.10.0", + "@typescript-eslint/utils": "6.10.0", + "aria-query": "5.3.0", + "axobject-query": "4.0.0" + } }, - "node_modules/tuf-js": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "@tufjs/models": "1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "@angular-eslint/schematics": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.0.0.tgz", + "integrity": "sha512-lNeLPJoCjq67D0SHIehcseJqMe2rG485inH8ZmA1bIoRYAyQ3s/sLH2+Qbkh7aP3m+Jd3TVLArt3g1hbqFWRUA==", + "dev": true, + "requires": { + "@angular-eslint/eslint-plugin": "17.0.0", + "@angular-eslint/eslint-plugin-template": "17.0.0", + "@nx/devkit": "17.0.3", + "ignore": "5.2.4", + "nx": "17.0.3", + "strip-json-comments": "3.1.1", + "tmp": "0.2.1" } }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", - "engines": { - "node": ">=12" + "@angular-eslint/template-parser": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.0.0.tgz", + "integrity": "sha512-uYdANaTVEXxvsTYPQU0dh7dNK4b9Ez6y512DH9Hgnv1T6CSwBPjMk0/rQfefJevk+LxDjCBspnbXcgnY/yi88Q==", + "dev": true, + "requires": { + "@angular-eslint/bundled-angular-compiler": "17.0.0", + "eslint-scope": "^7.0.0" } }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.1.1", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "@angular-eslint/utils": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.0.0.tgz", + "integrity": "sha512-kfKk4jqmvX/aFCHhl3BfAyvF+DRE/qPyGMBbFL/dm7mRTr4ZRsNX88KyzpWlA9tD355b+cFvM2jd9hqtPM8KIQ==", + "dev": true, + "requires": { + "@angular-eslint/bundled-angular-compiler": "17.0.0", + "@typescript-eslint/utils": "6.10.0" } }, - "node_modules/tuf-js/node_modules/minipass": { - "version": "5.0.0", - "license": "ISC", - "engines": { - "node": ">=8" + "@angular/animations": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.1.tgz", + "integrity": "sha512-Uee6E8zyU6XjDfKFozybcf+JZy0nUFQ1bUEmRwFP5HvYJSSJ5YiUDokNiVxyn9znwZ7zKHlM6Bq9ZY9cCmeKKQ==", + "requires": { + "tslib": "^2.3.0" } }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.3", - "license": "MIT", - "dependencies": { - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "@angular/cdk": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.0.tgz", + "integrity": "sha512-8F1z0YhDjKWqB29+AUh33OKr2Ts5PVUUogVXEVmmPipPDtj82iIQLbtBnR6xpWvmsw9mS3oD76EwBoUhHQgi6g==", + "requires": { + "parse5": "^7.1.2", + "tslib": "^2.3.0" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" + "@angular/cli": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.0.tgz", + "integrity": "sha512-VzKYmN+1wSE2wLBEFu/NHSrRQbeaKkEDO9aZxd7nAnxC5T1Zcva7dfqZIXMHXH2HESYAZCvOS8ikBE/7DCtWWw==", + "requires": { + "@angular-devkit/architect": "0.1700.0", + "@angular-devkit/core": "17.0.0", + "@angular-devkit/schematics": "17.0.0", + "@schematics/angular": "17.0.0", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.4", + "resolve": "1.22.8", + "semver": "7.5.4", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" }, - "engines": { - "node": "*" + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "dev": true, - "license": "Unlicense" + "@angular/common": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.1.tgz", + "integrity": "sha512-AvvhZc+PhX5lVEW/Vorxe3Zf1rIEJJvfduRuRv+nsjijo3ZGjdgYjTYEx4ighZgH60RLIAuwyBE24gPkT2Pm7g==", + "requires": { + "tslib": "^2.3.0" + } }, - "node_modules/type-check": { - "version": "0.4.0", + "@angular/compiler": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.1.tgz", + "integrity": "sha512-qlKqCvjoxPHJ1e8+UMaBl/n9zzrmGXI5eWMVhULSvQnQvPWkwNlUh5XFeoSFcTEQxORjaO2/08Z31DmTJAqlPA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/compiler-cli": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.1.tgz", + "integrity": "sha512-Rnvh2V2CYhG7NR5VI4cESGKk9jyqLat0HoqXa06v3TtbjkiZyjjwh0SyZ8NYOBMkQeWiQTHGcgxGvjKD3L3qqA==", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@angular/core": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.1.tgz", + "integrity": "sha512-yVwU+oz0G8g6Q5ORyOCpgqMPdSiCdfW+uQhjI37WROnXHja3jY843AqrYTKE6mMx1r6q9h1wbDy+x2E61OWP7A==", + "requires": { + "tslib": "^2.3.0" } }, - "node_modules/type-is": { - "version": "1.6.18", + "@angular/flex-layout": { + "version": "15.0.0-beta.42", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/forms": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.1.tgz", + "integrity": "sha512-FpmUf2kgzwZXVbFB4VrwbnrO0m88QLUBsDsbLfQVQQwb7KxwSaftUu/aIrjst1gFCdl9k0Vqtrq2gwLZKzdSGQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/language-service": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.1.tgz", + "integrity": "sha512-kDKmtMj410We8Rbph4e2xSuIs+MlzE7+QvIR07tofcoAR6Qpe2hr6WdsfExGBNIk5LNMYI3zdbEkAofG/JuRDA==", + "dev": true + }, + "@angular/material": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.0.0.tgz", + "integrity": "sha512-rd7H7NhkDPDiyLHADm2FHOJlmgaWV7ZYNYPe/4yTXlt++GTSLhKus+PTCZYVsKGlA3mxDhNnC1RY+fdjtx/G2A==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/auto-init": "15.0.0-canary.a246a4439.0", + "@material/banner": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/card": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/chips": "15.0.0-canary.a246a4439.0", + "@material/circular-progress": "15.0.0-canary.a246a4439.0", + "@material/data-table": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dialog": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/drawer": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/fab": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/form-field": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/image-list": "15.0.0-canary.a246a4439.0", + "@material/layout-grid": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/linear-progress": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/radio": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/segmented-button": "15.0.0-canary.a246a4439.0", + "@material/select": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/slider": "15.0.0-canary.a246a4439.0", + "@material/snackbar": "15.0.0-canary.a246a4439.0", + "@material/switch": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "@material/tab-bar": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/tab-scroller": "15.0.0-canary.a246a4439.0", + "@material/textfield": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tooltip": "15.0.0-canary.a246a4439.0", + "@material/top-app-bar": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.3.0" + } + }, + "@angular/material-moment-adapter": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-17.0.0.tgz", + "integrity": "sha512-8B6g3uz0E++aKYen35Wz9HPSK9ImalXH+s+en5djnTXHxmX8sDbks9YkCVpM/qZk7L6bVLSolMsewZtf2wToyg==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/platform-browser": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.1.tgz", + "integrity": "sha512-JpvU0YDEM5KYdHtxC0Kdzk/hdwvZPq5vju5lTmIjTVa2OOabApOrQ6cq1MpKlrvjv1rw8MClHIM0l5Y0g9KH5g==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.1.tgz", + "integrity": "sha512-xEcbB/ukXc65LaX4JBQYEM7D5Z8LcUIZniSJFneY7deZt3wNiKgmPZrPoXUyDV26QULh7N0IADEzvbcMF60AFQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/router": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.1.tgz", + "integrity": "sha512-73PCDDsRAjemODMRndZhwEN6Tb9rVVbDfMWgLQ4HgfgKnjek8P9BoYf8rOf3qV5fXf3c1Sm9MmKtaPv+l5lU9Q==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/service-worker": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-17.0.1.tgz", + "integrity": "sha512-KkMa2pOT8W9xiCs/aXn6MpkzRahygHEHG20PNreg3PCBIg/4UAlvTNlI+cecbVyc4FEAinl0GAOGZs0P0ux3gA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/upgrade": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-17.0.1.tgz", + "integrity": "sha512-hfhtJhdt6iCLW/eTOioM/LekQ7IDoBNArlGvS2zCE/I7RC/iDxgUuEpkiIAONF5/OwkwNCNWEgOCn5YONc+f/g==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "dev": true + }, + "@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, - "engines": { - "node": ">= 0.6" + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "node_modules/typed-array-length": { - "version": "1.0.4", + "@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" } }, - "node_modules/typed-assert": { - "version": "1.0.9", + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "license": "MIT" + "requires": { + "@babel/types": "^7.22.5" + } }, - "node_modules/typedarray": { - "version": "0.0.6", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, - "license": "MIT" + "requires": { + "@babel/types": "^7.22.15" + } }, - "node_modules/typescript": { - "version": "4.8.4", + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "engines": { - "node": ">=4.2.0" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "node_modules/ua-parser-js": { - "version": "1.0.35", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" + "@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true } - ], - "license": "MIT", - "engines": { - "node": "*" } }, - "node_modules/uglify-js": { - "version": "2.7.5", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "async": "~0.2.6", - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, - "engines": { - "node": ">=0.8.0" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "node_modules/uglify-js/node_modules/async": { - "version": "0.2.10", + "@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, - "node_modules/uglify-js/node_modules/camelcase": { - "version": "1.2.1", + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, - "node_modules/uglify-js/node_modules/cliui": { - "version": "2.1.0", + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "license": "ISC", - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/uglify-js/node_modules/source-map": { - "version": "0.5.7", + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/types": "^7.23.0" } }, - "node_modules/uglify-js/node_modules/wordwrap": { - "version": "0.0.2", + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, - "license": "MIT/X11", - "engines": { - "node": ">=0.4.0" + "requires": { + "@babel/types": "^7.22.15" } }, - "node_modules/uglify-js/node_modules/yargs": { - "version": "3.10.0", + "@babel/helper-module-transforms": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/unc-path-regex": { - "version": "0.1.2", + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" } }, - "node_modules/underscore": { - "version": "1.13.6", + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, - "license": "MIT" - }, - "node_modules/underscore.string": { - "version": "2.3.3", - "engines": { - "node": "*" + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" } }, - "node_modules/union-value": { - "version": "1.0.1", + "@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" } }, - "node_modules/unique-filename": { - "version": "3.0.0", - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" } }, - "node_modules/unique-slug": { - "version": "4.0.0", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true }, - "node_modules/universalify": { - "version": "2.0.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/unpipe": { - "version": "1.0.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.15" } }, - "node_modules/unset-value": { - "version": "1.0.0", + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "license": "MIT", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "requires": {} }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" } }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "node_modules/upath": { - "version": "1.2.0", + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", + "@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/upper-case": { - "version": "1.1.3", + "@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dev": true, - "license": "MIT" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/uri-path": { - "version": "1.0.0", + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "license": "WTFPL OR MIT", - "engines": { - "node": ">= 0.10" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/urix": { - "version": "0.1.0", + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "node_modules/use": { - "version": "3.1.1", + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "node_modules/utils-merge": { - "version": "1.0.1", + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/uuid": { - "version": "3.4.0", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "node_modules/v8flags": { - "version": "3.2.0", + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/vary": { - "version": "1.1.2", + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "node_modules/verror": { - "version": "1.10.0", + "@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } }, - "node_modules/void-elements": { - "version": "2.0.1", + "@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" } }, - "node_modules/watchpack": { - "version": "2.4.0", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wbuf": { - "version": "1.7.3", + "@babel/plugin-transform-block-scoping": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" + "@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "license": "MIT", - "engines": { - "node": ">= 8" + "@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, - "node_modules/webdriver-js-extender": { - "version": "2.1.0", + "@babel/plugin-transform-classes": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - }, - "engines": { - "node": ">=6.9.x" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" } }, - "node_modules/webdriver-manager": { - "version": "12.1.9", + "@babel/plugin-transform-destructuring": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", "dev": true, - "license": "MIT", - "dependencies": { - "adm-zip": "^0.5.2", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "bin": { - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/webdriver-manager/node_modules/ansi-regex": { - "version": "2.1.1", + "@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/webdriver-manager/node_modules/ansi-styles": { - "version": "2.2.1", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/webdriver-manager/node_modules/chalk": { - "version": "1.1.3", + "@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, - "node_modules/webdriver-manager/node_modules/glob": { - "version": "7.2.3", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.15" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", + "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "dev": true + }, + "@commitlint/cli": { + "version": "16.3.0", + "dev": true, + "requires": { + "@commitlint/format": "^16.2.1", + "@commitlint/lint": "^16.2.4", + "@commitlint/load": "^16.3.0", + "@commitlint/read": "^16.2.1", + "@commitlint/types": "^16.2.1", + "lodash": "^4.17.19", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + } + }, + "@commitlint/config-conventional": { + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.7.tgz", + "integrity": "sha512-4oTpEUC0HRM54QRHBPMOJW1pETp7usxXn9RuNYNWHcmu8wi1mpws95hvS20u2n6HtIkTn0jfn7vHioCm4AGUTw==", + "dev": true, + "requires": { + "conventional-changelog-conventionalcommits": "^5.0.0" + } + }, + "@commitlint/config-validator": { + "version": "16.2.1", + "dev": true, + "requires": { + "@commitlint/types": "^16.2.1", + "ajv": "^6.12.6" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "@commitlint/ensure": { + "version": "16.2.1", + "dev": true, + "requires": { + "@commitlint/types": "^16.2.1", + "lodash": "^4.17.19" + } + }, + "@commitlint/execute-rule": { + "version": "16.2.1", + "dev": true + }, + "@commitlint/format": { + "version": "16.2.1", + "dev": true, + "requires": { + "@commitlint/types": "^16.2.1", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@commitlint/is-ignored": { + "version": "16.2.4", + "dev": true, + "requires": { + "@commitlint/types": "^16.2.1", + "semver": "7.3.7" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "@commitlint/lint": { + "version": "16.2.4", + "dev": true, + "requires": { + "@commitlint/is-ignored": "^16.2.4", + "@commitlint/parse": "^16.2.1", + "@commitlint/rules": "^16.2.4", + "@commitlint/types": "^16.2.1" + } + }, + "@commitlint/load": { + "version": "16.3.0", + "dev": true, + "requires": { + "@commitlint/config-validator": "^16.2.1", + "@commitlint/execute-rule": "^16.2.1", + "@commitlint/resolve-extends": "^16.2.1", + "@commitlint/types": "^16.2.1", + "@types/node": ">=12", + "chalk": "^4.0.0", + "cosmiconfig": "^7.0.0", + "cosmiconfig-typescript-loader": "^2.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "typescript": "^4.4.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + } + } + }, + "@commitlint/message": { + "version": "16.2.1", + "dev": true + }, + "@commitlint/parse": { + "version": "16.2.1", + "dev": true, + "requires": { + "@commitlint/types": "^16.2.1", + "conventional-changelog-angular": "^5.0.11", + "conventional-commits-parser": "^3.2.2" + } + }, + "@commitlint/read": { + "version": "16.2.1", + "dev": true, + "requires": { + "@commitlint/top-level": "^16.2.1", + "@commitlint/types": "^16.2.1", + "fs-extra": "^10.0.0", + "git-raw-commits": "^2.0.0" + } + }, + "@commitlint/resolve-extends": { + "version": "16.2.1", + "dev": true, + "requires": { + "@commitlint/config-validator": "^16.2.1", + "@commitlint/types": "^16.2.1", + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/rules": { + "version": "16.2.4", + "dev": true, + "requires": { + "@commitlint/ensure": "^16.2.1", + "@commitlint/message": "^16.2.1", + "@commitlint/to-lines": "^16.2.1", + "@commitlint/types": "^16.2.1", + "execa": "^5.0.0" + } + }, + "@commitlint/to-lines": { + "version": "16.2.1", + "dev": true + }, + "@commitlint/top-level": { + "version": "16.2.1", + "dev": true, + "requires": { + "find-up": "^5.0.0" + } + }, + "@commitlint/types": { + "version": "16.2.1", + "dev": true, + "requires": { + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@ctrl/ngx-emoji-mart": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@ctrl/ngx-emoji-mart/-/ngx-emoji-mart-9.2.0.tgz", + "integrity": "sha512-q8B7DiXPfyTe+VOGO6Ix7eh5gKCuADxAsud2xXRTlECTfchoKGTmirSczyjaxIKE/xmB+/ZsnkpthZqUM7SAJQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "dev": true + }, + "@es-joy/jsdoccomment": { + "version": "0.31.0", + "dev": true, + "requires": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + } + }, + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@eslint/js": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "dev": true + }, + "@fastify/busboy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", + "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.3", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + } + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "@ljharb/through": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "@material/animation": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-0eV06UGYeuFwC/4t+yjg3LCRGRLq72ybBtJYzcBDpP4ASTjie0WmpAOFJYXRq2U5X/yxLviDMhpRemoSUjgZ0Q==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/auto-init": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-0QfmjT5elQ10hCxToVgq/WaC3301tVH1sJaO3O2yocVzr7s6iWm8/zch16V5hcHzQHbtcT3Rf4y1ZzmdNys2Iw==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/banner": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-PBLgH7JEbEpTkLy33oyWXUhIFmSsdOrR6Gn6qIgQRo1qrnk5RSBGW2gEq4Z6793vjxM107gKudDb23E4Fcu4vg==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/base": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/ob3v3IFU8q2gGdVNWw5kNPjW2mRTeBIz1YdhGWUmRxKn2Kl8bdLOvrAmZtQMmPn/4cGXvinxpec/zVBWQKDkA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/button": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-rGpVRde0Aqhv2t9QvT8Zl3HvG89BeUNPOpgfpaLBZ4SGGAO4rIrckl/eCENibKgmmdCKcYZlG9gc5abQVPfUvw==", + "requires": { + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/card": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+rYUnBPgv5QVF6BeUs3toIRdSwFVohGmjk2ptTXMZkKxqAJt7Nr9Znbm3Ym2hD8GUHJeh3pyGFvEs6rG6JMYAw==", + "requires": { + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/checkbox": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-sQwHzm1TSxHUoPrqplWTk/BhyzdDhzcwlbucwJK9W0o9WXMDk+d9PvcCxpP/9sAnVqZk42BfE89Y0T1DHglZ9A==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/chips": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-TiV9WJ5taEHPGWPhXbxJvUJhLzThg+VpK7aAlvL4RurtmJ7pURuEdRS4Z6o0OEqi3wKQ4z/+K44kZUn/+9HALg==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "@material/circular-progress": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+QTfyExPWzgm2tqMInd32qQOftsC1b8MUhAhZSfuecYBfqAc7KZkQEKa2nm4y8EHKMFWe8/DcxLV6IxMBLgHwA==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/progress-indicator": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/data-table": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-89qVOjR7gqby6fsmh7tKj29SjQ2sGLXu2IzCeX3Vni4mz+xxo5dv11jxYNADvdgJDfhyDJFPh1FlqAH7O09nFA==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/checkbox": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/linear-progress": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/select": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/density": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-h8BJVCWkPR97WeWCN6/atVbSOP8J4+ZbbssidcwsnX7b3+3IaWdtBxGii25dsILX8pUVwwqxVis24y211b+8rg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/dialog": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4lyxd+5ccOEMUGKzZcssaYyzkCsYTpYCSQSANR0toQPLv3voDwKMfA709uZI6+nL7Re6Xdf7jx8qe+QpTTjVcw==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/dom": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-AftSOGQoQg/Ys2kOVjZzvqWmsnhg3Kam/2UC4Gj0DMMCu36J4MAoD+3PpnOd1aG3wiJKtUXR2vPIwE8I/PM9yg==", + "requires": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/drawer": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/JUmbzRBaikdbZ250yA9ZTPqp2W5nGvvuHYoNVAAmtOmxuwGvvNNpWiVZy2lIYeYcf1hA7hJ5mEQxs0aSD7iWQ==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/elevation": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-lwPIOb8fHyOljIWYcVLPT73dPIEOKat/CXu6gqYIVMQgZQIksQNUA7z1O3l7apkRSuYUOYSXqrgU7AnWP4KcJg==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/fab": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-XUex3FNqxPD1i/4jITucB/RWTNkkdv52mbNmwrvbuThZlhuhyH9GzOQYTDop/b2783TPcv++xr8UUbuh8GWYzA==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/feature-targeting": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-/SU9X5y8CRp6RS9qnjnM/N5qfsJ8bYILpR841eZmN6DLqMupaM9Yy7Mx8+v/QvpBLLhk+jmu79nFzwkwW54d6Q==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/floating-label": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-832qZ/qxKx0KUatoeVY3Q2NmboVgiWBG0/1VsbJyodHrgQWfnBOHgLE+M322o6uM3OhvO+kWm4iYbvwhmLZGsw==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/focus-ring": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-ar0BtACFS3K14k/enAg0ePeEA/f/RJY4Ji4L/00Dw/B3XVpNRbqLH49jkcbtcQjdTS0FEyk2sWSNMZl6wVi0/A==", + "requires": { + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0" + } + }, + "@material/form-field": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Q/+ErgtAUFUPPUmWA1m5IP5voiN8XjPRwyoAlFxSTa/4t+EA5B18Z8Bsn9b6I0AC8RHke06H7UWrKz8XUDIFpw==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/icon-button": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Igyo94rkIlqC91BR1Tv+WLTz1ZWcZZjl1xU7Vsx8mbWA1PnaRDUTNVV5LFi4e0ORp6GSblFTImpHngEy4agMEg==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/image-list": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Rcj3q7Tp7Nwbe5ht6ptTc3zqK8TSDJHaPDBf+kzi0kkh6MAB4qoHPgn+HnA+zIZ79CScU56bN7zjA6XYaZvsLw==", + "requires": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/layout-grid": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-bkfxZuVzgtjEJgR3n8pvDQbe88ffULDJ5d2DF34IR8SOiRmQcj7UzqAt95XwIUcWlfisLCoIryP4U8XSpFb1EQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/line-ripple": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-20WmwRrejmtOdI37+959UqEVIjbMtAXlkDOkfCIA3OUhp+oZSjVkCqKxI16jxxVlnzJ353fy8xeSKzOHe4sExQ==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/linear-progress": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-IcCd4476pXHloTYadHDJ+2c2lntoVigeNnQEiD/ASQTKqKrJqkIdvvczFm9Ryu+V2+TKhp7vvQGFLUMaLPcmhw==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/progress-indicator": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/list": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4H5dKIjCUGIPmKjfcegV0SBybD5NNdHp26OU6sovvWIvxSGQtDJr6z9I7i+0vF/HIS5ScbHD2+9/txtL80iqCA==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/menu": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-2HOHQAIdWQtXjSvEIrW3lnbcIwFf5XaQhFzCEZ04FcSGApc4iLwsmRFVW3PzWx+mVrUrEfO/K42DVULIX9J1Pg==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/menu-surface": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4h4wZ0Rs7qBg1Otldw8ljp+LCULNL42pqbqcTXhKAkJM7pHcSw4k7IfoThSRLU3+V8T3/+qiAXyeQix2OGHzwg==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/notched-outline": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-zmRZHJ+5cOWsBatRyK50wuht78olXySyKOJIIEmy8lxSMZefI1764u0mr8tS1KYF8vSAl5cUlwCC3/2Njz1FPg==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/progress-indicator": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-92HM5niUnqG5Y3M/xkscBD+2lkaWPDcIRPo0RHPYcyldL+EhWRv/sdQpfdiXw/h3uvKSowKxBMCHm8krAyf+sQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@material/radio": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-on8EVztWXc/ajcaowFZ31ClGADYxQrhj4ulMne0NxdHHWQ44ttf5aXOVqtv5mxeOzrRACOkQyTUXBG07yTWCEQ==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/ripple": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Vl615/PIBpBD+IOI9Xypz0SV3RsmYJYSNx890Rih7irhUOaPsOUBmTYOWF5AsGBynqLcXoTNVhK92drYLKtJwQ==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/rtl": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-pgJFw8ZRpWGpwv7ZuBTJ+WdNmFBKoLVoMbbxKQWTHXVwhAqn3aoIq95o62T5QeEG/+sguNShdquG45CpAMmSRw==", + "requires": { + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/segmented-button": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-oqGHs2C7C+yJW/xZf/wP8jBGLs6HcerhM3CsorLAEMH3MGuIlVC17WcisBewEWucsILYEWbySXy/7T4h6/psZA==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/touch-target": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/select": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-odoNLiVOgdwbEeePkjHtlr43pjskDwyO8hi4z3jcud1Rg1czk5zoJ2mUI0+olOJjBQ26PGocwrSLqf3qaThbIA==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/list": "15.0.0-canary.a246a4439.0", + "@material/menu": "15.0.0-canary.a246a4439.0", + "@material/menu-surface": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/shape": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-rcWPlCoHyP79ozeEKk73KWt9WTWdh6R68+n75l08TSTvnWZB5RRTmsI9BMkz55O9OJD/8H8ZsOxBe4x2QXUT7w==", + "requires": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/slider": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-is1BSBpxaXBBv+wSVpe9WGWmWl59yJEeDNubTES2UFD0er3BmA+PdKkL09vvytDnBcbKf77TbxaRiUSGVaKUQA==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/snackbar": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-2NAtC1qozR/uajszZnPy08Ej8HNnpgvCjNCBerDN4SLH2Q0/aWrVrUjqRCp2ayAvsX+szoroGbCboMhaWRzDuQ==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/icon-button": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/switch": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-o0wcbYgm2yRs4een5uxT4RJnJ003DxXe33rk8vTBG2o7cdiSR3X7GJQxeIK3D9wPgWCAwBLhNYSzXrlTL5pkMw==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "@material/tab": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-HGLK774uMeLnhbjDJBOjft7S6SurZnKb+6Und88OMDUVUEG6MkFBAKQQr09iBIeLE2sUAiGQhBVQtb7LJKwolQ==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/focus-ring": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/tab-bar": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-dMQb1vXsBchQXcjbwgJZIGqTZHngm+3QGSOSb4LWjqHIgC5+w2RRrHsIAjNTyRhKssJ9nKKrbpM/Yz5vTPWH6w==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "@material/tab-indicator": "15.0.0-canary.a246a4439.0", + "@material/tab-scroller": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/tab-indicator": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-gG2BgHT+ggKnUOaT8LjmH/+9nknRLh8v9qemrhUkDuCtZ8inlaC33OVbbxfrpQW3J+UzBh5YCUSC+2KrN39uUA==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/tab-scroller": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-6KvBpalc4SwLbHFm0rnuIE64VffUj7AKhnPc+mqM6VmxOvDzQ/ZSYga0rWlUfM4mCDFX3ZkSxim+iNzVF+Ejaw==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/tab": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/textfield": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-4BW5bUERPlIeiPnLSby21h1/xDmySuAG9Ucn1LM801a0+5mK3IwWb8031AP3filKZZqTx5JJvOJYZd6/OWBJVA==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/density": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/floating-label": "15.0.0-canary.a246a4439.0", + "@material/line-ripple": "15.0.0-canary.a246a4439.0", + "@material/notched-outline": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/theme": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-HWxC5Nhz8JZKTLTVmAsNxIGB3Kzr53+YFMg327S8/XuEDmI0RFHFvtwM9rADmyrHFBmUaVhV4iELyxFdi67c9w==", + "requires": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/tokens": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-+5iGfQ51YSb0Qau8uC6/jHXCSC3enKaQKDf/iPHfuXAe04UznW3tmm1/Ju227aZXNISTJcnQYa2rpm1M14MeUg==", + "requires": { + "@material/elevation": "15.0.0-canary.a246a4439.0" + } + }, + "@material/tooltip": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-Ja2Z4aZQkYWD6InXA+MG4M9zdKR6dYsXXlYzQppYpfcQzXylZqh5Y7WBLulG5fA2o83pHVwILfwFZM7j7ht08Q==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/button": "15.0.0-canary.a246a4439.0", + "@material/dom": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/tokens": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "@material/top-app-bar": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-twQchmCa1In/FFrALPYojgeM8vmV7KH96wRY9NmPSJ046ANgPCicLBgLuSzrLETCFqAwbztqzxSG4xMBL81rYg==", + "requires": { + "@material/animation": "15.0.0-canary.a246a4439.0", + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/elevation": "15.0.0-canary.a246a4439.0", + "@material/ripple": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/shape": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "@material/typography": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/touch-target": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-ubyD1TUjZnRPEdDnk6Lrcm2ZsjnU7CV5y7IX8pj9IPawiM6bx4FkjZBxUvclbv3WiTGk5UOnwPOySYAJYAMQ1w==", + "requires": { + "@material/base": "15.0.0-canary.a246a4439.0", + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/rtl": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@material/typography": { + "version": "15.0.0-canary.a246a4439.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.a246a4439.0.tgz", + "integrity": "sha512-eXzBl9ROzWZ+41nan5pCrn1C/Zq3o/VsrLFaGv8fdRmhRR6/wHMeuvCCwGf5VtEmWdAE9FpJzRU/4ZPiJCJUyg==", + "requires": { + "@material/feature-targeting": "15.0.0-canary.a246a4439.0", + "@material/theme": "15.0.0-canary.a246a4439.0", + "tslib": "^2.1.0" + } + }, + "@ngtools/webpack": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.0.tgz", + "integrity": "sha512-/Bb5MXlphNp3UDsQDa4EB4AwpF4D/plrCPd5YGfVvD43j5g5Rpen+cqz5jai1zfAkF1dPl2qq0nRp/jwmJO3uA==", + "dev": true, + "requires": {} + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "requires": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + } + } + }, + "@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "requires": { + "semver": "^7.3.5" + } + }, + "@npmcli/git": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", + "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", + "requires": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "dependencies": { + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + }, + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + }, + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "requires": { + "isexe": "^3.1.1" + } + } + } + }, + "@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "requires": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + } + }, + "@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==" + }, + "@npmcli/promise-spawn": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", + "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", + "requires": { + "which": "^4.0.0" + }, + "dependencies": { + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + }, + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "requires": { + "isexe": "^3.1.1" + } + } + } + }, + "@npmcli/run-script": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", + "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", + "requires": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^4.0.0" + }, + "dependencies": { + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + }, + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "requires": { + "isexe": "^3.1.1" + } + } + } + }, + "@nrwl/devkit": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.0.3.tgz", + "integrity": "sha512-k1o0tvmGcg2/Kw2d56ULixqngCj5zTfp3mn6yS0ytIJrTQnJVkI8GcFCtpnqbzQjD8nKHhvTIcOMsj2BzLos9A==", + "dev": true, + "requires": { + "@nx/devkit": "17.0.3" + } + }, + "@nrwl/tao": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.0.3.tgz", + "integrity": "sha512-X6zcwf6c3z7TuztRJWM/OCfzm7+LI4Uw4coc9+PWr44ohHkgId2wEJTzXrDT3+lvv8DgwPpgWPwqntw+YcgRYg==", + "dev": true, + "requires": { + "nx": "17.0.3", + "tslib": "^2.3.0" + } + }, + "@nx/devkit": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.0.3.tgz", + "integrity": "sha512-gW9aVc2BJBQ6PME07lsiaHg2Tjm9FN/qFjzxeSQYe2cR/s4hXqCBUfgKEqjgzMq+ykDR2Japkd8Vg8BN0uWnpA==", + "dev": true, + "requires": { + "@nrwl/devkit": "17.0.3", + "ejs": "^3.1.7", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "semver": "7.5.3", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + } + }, + "@nx/nx-darwin-arm64": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.0.3.tgz", + "integrity": "sha512-KA75JC/hgkt9qwK4dnN1tlaTXWdYItkNMjji6YjkyAYabbLKQKVcQoPocYP/RB/Gng+vNslXwuug2atgxDf43g==", + "dev": true, + "optional": true + }, + "@nx/nx-darwin-x64": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.0.3.tgz", + "integrity": "sha512-YVWk9jNibD7fzn8oNBl/UNu8NEfcVwFo5wiNyfOql495yP0tyGdZNHD4i/7aS2Y654G1JYDRf7TutJ7wWFU8bg==", + "dev": true, + "optional": true + }, + "@nx/nx-freebsd-x64": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.0.3.tgz", + "integrity": "sha512-yiYkfY+3IrlBrlaXN6SO4Fnb0a+Ti+FPwAqRPpH6q3uTCh0NmNgE99ydtT31ZbgCF1ZwRK8NdCbuNO3w9uznwA==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm-gnueabihf": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.0.3.tgz", + "integrity": "sha512-x4h6QJlESJZ0bigUlxNEVyi7F/VWQQx+1IBptofXhK5eTOPjJ5qgINdM38AZg+kBJDz5XOVMDejg6RzHlhs0Tg==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm64-gnu": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.0.3.tgz", + "integrity": "sha512-1lysnsZv9FS+9fciK0qh5PhsQ8U+vyFoR/jiJl+3vqYNUwEmNLD0VEAZzpZL2SJXQqD5E0bjuQpYxiD7YRXImQ==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm64-musl": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.0.3.tgz", + "integrity": "sha512-0/bvSpbc4vOy9E24fu0ajDGe3SO8lmLtlxjXwGRcnzlt/MWM8sazoO0lX163/X2wF6tuL6+HXHOr6AeqsdeRXQ==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-x64-gnu": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.0.3.tgz", + "integrity": "sha512-tKO6MYUxpUsHMuZrYy8hG20RIOdBY3kyEK8wxH8JZZaXKeYUK+5vv5DavWpY5wuu2jffNIJNsbUzcrqOlcbDOg==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-x64-musl": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.0.3.tgz", + "integrity": "sha512-H88yBLrI51m6NGoCkpBYhacRyTBfDuf7x00SnxSfD1yLlxCazPUG7CGkMedpzXo10YHxCFvg7B/Fa23DRRleUg==", + "dev": true, + "optional": true + }, + "@nx/nx-win32-arm64-msvc": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.0.3.tgz", + "integrity": "sha512-bKzmzjvgLB4IzLWTySqXgBgXawfw0ZSjUkscFQ3ZHrK9loMba1Ue8Ugy2DktlkUrCyPmGSot+YZViTzWP75C3w==", + "dev": true, + "optional": true + }, + "@nx/nx-win32-x64-msvc": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.0.3.tgz", + "integrity": "sha512-SJssAOyUM1IW9t84/Uzau9JHo14hnG5mxvcrborNGlLq+WnP0jzISVs7gvV2xWZ9j1JemxA5KLbkMuIkJyR6qQ==", + "dev": true, + "optional": true + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, + "@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "dependencies": { + "define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true + }, + "open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "requires": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + } + } + } + }, + "@scarf/scarf": { + "version": "1.1.1" + }, + "@schematics/angular": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.0.tgz", + "integrity": "sha512-9jKU5x/WzaBsfSkUowK1X74FqtMXa6+A60XgW4ACO8i6fwKfPeS+tIrAieeYOX80/njBh7I5CvcpHmWA2SbcXQ==", + "requires": { + "@angular-devkit/core": "17.0.0", + "@angular-devkit/schematics": "17.0.0", + "jsonc-parser": "3.2.0" + } + }, + "@sigstore/bundle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", + "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", + "requires": { + "@sigstore/protobuf-specs": "^0.2.1" + } + }, + "@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==" + }, + "@sigstore/sign": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz", + "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==", + "requires": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + } + }, + "@sigstore/tuf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", + "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", + "requires": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + } + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "dev": true + }, + "@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==" + }, + "@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "requires": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@types/angular": { + "version": "1.5.11", + "dev": true, + "requires": { + "@types/jquery": "1.10.*" + } + }, + "@types/babel-types": { + "version": "7.0.11", + "dev": true, + "optional": true + }, + "@types/babylon": { + "version": "6.16.6", + "dev": true, + "optional": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/canvas-confetti": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@types/canvas-confetti/-/canvas-confetti-1.6.0.tgz", + "integrity": "sha512-Yq6rIccwcco0TLD5SMUrIM7Fk7Fe/C0jmNRxJJCLtAF6gebDkPuUjK5EHedxecm69Pi/aA+It39Ux4OHmFhjRw==", + "dev": true + }, + "@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.3.tgz", + "integrity": "sha512-6mfQ6iNvhSKCZJoY6sIG3m0pKkdUcweVNOLuBBKvoWGzl2yRxOJcYOTRyLKt3nxXvBLJWa6QkW//tgbIwJehmA==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/cookie": { + "version": "0.4.1", + "dev": true + }, + "@types/cors": { + "version": "2.8.13", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/d3": { + "version": "3.5.47", + "dev": true + }, + "@types/eslint": { + "version": "8.37.0", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/file-saver": { + "version": "2.0.5", + "dev": true + }, + "@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.9.1", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.10", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/jquery": { + "version": "1.10.39", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/lodash": { + "version": "4.14.194", + "dev": true + }, + "@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "dev": true + }, + "@types/node": { + "version": "18.16.2", + "dev": true + }, + "@types/node-forge": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.9.tgz", + "integrity": "sha512-meK88cx/sTalPSLSoCzkiUB4VPIFHmxtXm5FaaqRDqBX2i/Sy8bJ4odsan0b20RBjPh06dAQ+OTTdnyQyhJZyQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "dev": true + }, + "@types/qs": { + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.20", + "dev": true + }, + "@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "requires": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", + "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", + "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/type-utils": "6.10.0", + "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/parser": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", + "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", + "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", + "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/utils": "6.10.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/types": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", + "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", + "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", + "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/typescript-estree": "6.10.0", + "semver": "^7.5.4" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", + "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.10.0", + "eslint-visitor-keys": "^3.4.1" + } + }, + "@uirouter/angular": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@uirouter/angular/-/angular-12.0.0.tgz", + "integrity": "sha512-UTJ2lyiZowD0xLAWbfEMA7jZpgFZQYFml/53mqY8vNPc7D7/5dHBaUu+Kx+Xmm3fmy+K1c9HSKA2eZQS4AqmDA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@uirouter/angular-hybrid": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@uirouter/angular-hybrid/-/angular-hybrid-16.0.0.tgz", + "integrity": "sha512-QD6Bvb9gV1wqvVIsBJnX5yL3OqkPpcK6vyY8hfJaCrI2My9+4L9j8FvuWfiY6SK/Em4WlUCFmop5dV69rTE82w==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@uirouter/angularjs": { + "version": "1.1.0", + "requires": {} + }, + "@uirouter/core": { + "version": "6.1.0" + }, + "@uirouter/rx": { + "version": "1.0.0", + "requires": {} + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "requires": {} + }, + "@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + }, + "@yarnpkg/parsers": { + "version": "3.0.0-rc.46", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", + "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", + "dev": true, + "requires": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + } + }, + "@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + } + } + }, + "abab": { + "version": "2.0.6", + "dev": true + }, + "abbrev": { + "version": "1.1.1" + }, + "accepts": { + "version": "1.3.8", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true + }, + "acorn-globals": { + "version": "3.1.0", + "dev": true, + "optional": true, + "requires": { + "acorn": "^4.0.4" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "dev": true, + "optional": true + } + } + }, + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "requires": {} + }, + "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": {} + }, + "acorn-walk": { + "version": "8.2.0", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "adm-zip": { + "version": "0.5.10", + "dev": true + }, + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "requires": { + "ajv": "^8.0.0" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "align-text": { + "version": "0.1.4", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "alter": { + "version": "0.2.0", + "dev": true, + "requires": { + "stable": "~0.1.3" + } + }, + "amdefine": { + "version": "1.0.1" + }, + "angular": { + "version": "1.5.11" + }, + "angular-cookies": { + "version": "1.5.11" + }, + "angular-file-upload": { + "version": "1.1.1", + "requires": { + "coffee-script": "~1.6.2", + "grunt": "~0.4.1", + "grunt-contrib-clean": "~0.4.0", + "grunt-contrib-concat": "~0.3.0", + "grunt-contrib-copy": "~0.4.1", + "grunt-contrib-uglify": "~0.2.1" + }, + "dependencies": { + "argparse": { + "version": "0.1.16", + "requires": { + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" + }, + "dependencies": { + "underscore.string": { + "version": "2.4.0" + } + } + }, + "async": { + "version": "0.1.22" + }, + "camelcase": { + "version": "1.2.1" + }, + "colors": { + "version": "0.6.2" + }, + "dateformat": { + "version": "1.0.2-1.2.3" + }, + "esprima": { + "version": "1.0.4" + }, + "findup-sync": { + "version": "0.1.3", + "requires": { + "glob": "~3.2.9", + "lodash": "~2.4.1" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "requires": { + "inherits": "2", + "minimatch": "0.3" + } + }, + "lodash": { + "version": "2.4.2" + }, + "minimatch": { + "version": "0.3.0", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "getobject": { + "version": "0.1.0" + }, + "glob": { + "version": "3.1.21", + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "inherits": { + "version": "1.0.2" + } + } + }, + "graceful-fs": { + "version": "1.2.3" + }, + "grunt": { + "version": "0.4.5", + "requires": { + "async": "~0.1.22", + "coffee-script": "~1.3.3", + "colors": "~0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.1.2", + "getobject": "~0.1.0", + "glob": "~3.1.21", + "grunt-legacy-log": "~0.1.0", + "grunt-legacy-util": "~0.2.0", + "hooker": "~0.2.3", + "iconv-lite": "~0.2.11", + "js-yaml": "~2.0.5", + "lodash": "~0.9.2", + "minimatch": "~0.2.12", + "nopt": "~1.0.10", + "rimraf": "~2.2.8", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + }, + "dependencies": { + "coffee-script": { + "version": "1.3.3" + }, + "underscore.string": { + "version": "2.2.1" + } + } + }, + "grunt-contrib-clean": { + "version": "0.4.1", + "requires": {} + }, + "grunt-contrib-concat": { + "version": "0.3.0", + "requires": {} + }, + "grunt-contrib-copy": { + "version": "0.4.1", + "requires": {} + }, + "grunt-contrib-uglify": { + "version": "0.2.7", + "requires": { + "grunt-lib-contrib": "~0.6.1", + "uglify-js": "~2.4.0" + } + }, + "grunt-legacy-log": { + "version": "0.1.3", + "requires": { + "colors": "~0.6.2", + "grunt-legacy-log-utils": "~0.1.1", + "hooker": "~0.2.3", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2" + } + } + }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "requires": { + "colors": "~0.6.2", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2" + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "requires": { + "async": "~0.1.22", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~0.9.2", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + }, + "dependencies": { + "underscore.string": { + "version": "2.2.1" + } + } + }, + "iconv-lite": { + "version": "0.2.11" + }, + "js-yaml": { + "version": "2.0.5", + "requires": { + "argparse": "~ 0.1.11", + "esprima": "~ 1.0.2" + } + }, + "lodash": { + "version": "0.9.2" + }, + "lru-cache": { + "version": "2.7.3" + }, + "minimatch": { + "version": "0.2.14", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "nopt": { + "version": "1.0.10", + "requires": { + "abbrev": "1" + } + }, + "rimraf": { + "version": "2.2.8" + }, + "source-map": { + "version": "0.1.34", + "requires": { + "amdefine": ">=0.0.4" + } + }, + "uglify-js": { + "version": "2.4.24", + "requires": { + "async": "~0.2.6", + "source-map": "0.1.34", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.5.4" + }, + "dependencies": { + "async": { + "version": "0.2.10" + } + } + }, + "underscore": { + "version": "1.7.0" + }, + "which": { + "version": "1.0.9" + }, + "wordwrap": { + "version": "0.0.2" + }, + "yargs": { + "version": "3.5.4", + "requires": { + "camelcase": "^1.0.2", + "decamelize": "^1.0.0", + "window-size": "0.1.0", + "wordwrap": "0.0.2" + } + } + } + }, + "angular-filter": { + "version": "0.5.17", + "requires": { + "angular": "*" + } + }, + "angular-local-storage": { + "version": "0.7.1" + }, + "angular-markdown-filter": { + "version": "1.3.2", + "requires": { + "showdown": "^1.2.3" + } + }, + "angular-md5": { + "version": "0.1.10" + }, + "angular-mocks": { + "version": "1.5.11" + }, + "angular-nvd3": { + "version": "1.0.9", + "requires": { + "angular": "^1.x", + "d3": "^3.3", + "nvd3": "^1.7.1" + } + }, + "angular-resource": { + "version": "1.5.11" + }, + "angular-sanitize": { + "version": "1.5.11" + }, + "angular-ui-bootstrap": { + "version": "0.13.4", + "requires": {} + }, + "angular-ui-codemirror": { + "version": "0.3.0" + }, + "angular-xeditable": { + "version": "0.9.0", + "requires": { + "angular": "~1.x" + } + }, + "angulartics": { + "version": "1.0.3" + }, + "angulartics-google-analytics": { + "version": "0.1.4", + "requires": {} + }, + "ansi-colors": { + "version": "4.1.3" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1" + }, + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "devOptional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "arr-diff": { + "version": "4.0.0", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-differ": { + "version": "3.0.0", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-ify": { + "version": "1.0.0", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-slice": { + "version": "1.1.0", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrify": { + "version": "2.0.1", + "dev": true + }, + "asap": { + "version": "2.0.6", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.6", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "dev": true + }, + "async": { + "version": "1.5.2", + "dev": true + }, + "async-each": { + "version": "1.0.6", + "dev": true + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "dev": true + }, + "atob": { + "version": "2.1.2", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==", + "dev": true, + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "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 + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "dev": true + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "dev": true, + "requires": { + "dequal": "^2.0.3" + } + }, + "babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "requires": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + } + }, + "babel-runtime": { + "version": "6.26.0", + "dev": true, + "optional": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "dev": true, + "optional": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "dev": true, + "optional": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "dev": true, + "optional": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "dev": true, + "optional": true + } + } + }, + "babylon": { + "version": "6.18.0", + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "1.0.2" + }, + "base": { + "version": "0.11.2", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1" + }, + "base64id": { + "version": "2.0.0", + "dev": true + }, + "basic-auth": { + "version": "2.0.1", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "batch": { + "version": "0.6.1", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "devOptional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.1.0", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "blocking-proxy": { + "version": "1.0.1", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "body": { + "version": "5.1.0", + "dev": true, + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + }, + "dependencies": { + "bytes": { + "version": "1.0.0", + "dev": true + }, + "raw-body": { + "version": "1.1.7", + "dev": true, + "requires": { + "bytes": "1", + "string_decoder": "0.10" + } + }, + "string_decoder": { + "version": "0.10.31", + "dev": true + } + } + }, + "body-parser": { + "version": "1.20.2", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.11.0", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "bootstrap": { + "version": "3.4.1" + }, + "bootstrap-sass": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/bootstrap-sass/-/bootstrap-sass-3.4.3.tgz", + "integrity": "sha512-vPgFnGMp1jWZZupOND65WS6mkR8rxhJxndT/AcMbqcq1hHMdkcH4sMPhznLzzoHOHkSCrd6J9F8pWBriPCKP2Q==" + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "devOptional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-sync": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "dev": true, + "requires": { + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", + "bs-recipes": "1.3.4", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "browser-sync-client": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "dev": true, + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + } + }, + "browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + } + }, + "browserstack": { + "version": "1.6.1", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + } + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "requires": { + "semver": "^7.0.0" + } + }, + "bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "requires": { + "run-applescript": "^5.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "dev": true + }, + "cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "dev": true + }, + "camelcase-css": { + "version": "2.0.1", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-db": { + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001517.tgz", + "integrity": "sha512-4Zqz0VZi9AwF05TyOh+DLABlwBcInExwNbP+ZanivBVztBb5EreEfB56S7XpIrKWiR+x+gg1ov7VAImMKULcew==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001561", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", + "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "dev": true + }, + "canonical-path": { + "version": "0.0.2", + "dev": true + }, + "canvas-confetti": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/canvas-confetti/-/canvas-confetti-1.6.0.tgz", + "integrity": "sha512-ej+w/m8Jzpv9Z7W7uJZer14Ke8P2ogsjg4ZMGIuq4iqUOqY2Jq8BNW42iGmNfRwREaaEfFIczLuZZiEVSYNHAA==" + }, + "caseless": { + "version": "0.12.0", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-parser": { + "version": "2.2.0", + "dev": true, + "optional": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "chokidar": { + "version": "3.5.3", + "devOptional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "chrome-trace-event": { + "version": "1.0.3", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + } + }, + "clean-css": { + "version": "4.2.4", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli": { + "version": "1.0.1", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "cli-cursor": { + "version": "3.1.0", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.8.0" + }, + "cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==" + }, + "cliui": { + "version": "8.0.1", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4" + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "code-point-at": { + "version": "1.1.0" + }, + "codemirror": { + "version": "5.65.0" + }, + "coffee-script": { + "version": "1.6.3" + }, + "coffeelint": { + "version": "1.16.2", + "dev": true, + "requires": { + "coffee-script": "~1.11.0", + "glob": "^7.0.6", + "ignore": "^3.0.9", + "optimist": "^0.6.1", + "resolve": "^0.6.3", + "strip-json-comments": "^1.0.2" + }, + "dependencies": { + "coffee-script": { + "version": "1.11.1", + "dev": true + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ignore": { + "version": "3.3.10", + "dev": true + }, + "resolve": { + "version": "0.6.3", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "dev": true + } + } + }, + "coffeelint-stylish": { + "version": "0.1.2", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "colors": { + "version": "1.1.2", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.6.0", + "dev": true + }, + "comment-parser": { + "version": "1.3.1", + "dev": true + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "component-emitter": { + "version": "1.3.0", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "concurrently": { + "version": "3.6.1", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "commander": "2.6.0", + "date-fns": "^1.23.0", + "lodash": "^4.5.1", + "read-pkg": "^3.0.0", + "rx": "2.3.24", + "spawn-command": "^0.0.2-1", + "supports-color": "^3.2.3", + "tree-kill": "^1.1.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "connect": { + "version": "3.6.6", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "connect-livereload": { + "version": "0.5.4", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "constantinople": { + "version": "3.1.2", + "dev": true, + "optional": true, + "requires": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.5", + "dev": true + }, + "continuable-cache": { + "version": "0.3.1", + "dev": true + }, + "conventional-changelog-angular": { + "version": "5.0.13", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-conventionalcommits": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz", + "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + } + }, + "conventional-commits-parser": { + "version": "3.2.4", + "dev": true, + "requires": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + } + }, + "convert-source-map": { + "version": "1.9.0", + "dev": true + }, + "cookie": { + "version": "0.4.2", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-anything": { + "version": "2.0.6", + "dev": true, + "requires": { + "is-what": "^3.14.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "dev": true + }, + "copy-webpack-plugin": { + "version": "11.0.0", + "dev": true, + "requires": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globby": { + "version": "13.1.4", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "dev": true + } + } + }, + "core-js": { + "version": "3.30.1" + }, + "core-js-compat": { + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "dev": true, + "requires": { + "browserslist": "^4.22.1" + } + }, + "core-util-is": { + "version": "1.0.3", + "dev": true + }, + "cors": { + "version": "2.8.5", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cosmiconfig-typescript-loader": { + "version": "2.0.2", + "dev": true, + "requires": { + "cosmiconfig": "^7", + "ts-node": "^10.8.1" + } + }, + "create-require": { + "version": "1.1.1", + "dev": true + }, + "critters": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "pretty-bytes": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cross-spawn": { + "version": "7.0.3", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + } + }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "dev": true + }, + "custom-event": { + "version": "1.0.1", + "dev": true + }, + "d3": { + "version": "3.5.17" + }, + "dargs": { + "version": "7.0.0", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "1.30.1", + "dev": true + }, + "date-format": { + "version": "4.0.14", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "dev": true + }, + "dateformat": { + "version": "4.6.3", + "dev": true + }, + "debug": { + "version": "4.3.4", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0" + }, + "decamelize-keys": { + "version": "1.1.1", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "dev": true + } + } + }, + "decode-uri-component": { + "version": "0.2.2", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "requires": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "dependencies": { + "execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "requires": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + } + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "defaults": { + "version": "1.0.4", + "requires": { + "clone": "^1.0.2" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.2.0", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "0.2.5", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "del": { + "version": "2.2.2", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "arrify": { + "version": "1.0.1", + "dev": true + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "5.0.0", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "dev": true + }, + "depd": { + "version": "2.0.0", + "dev": true + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true + }, + "di": { + "version": "0.0.1", + "dev": true + }, + "didyoumean": { + "version": "1.2.2", + "dev": true + }, + "diff": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", + "integrity": "sha512-9wfm3RLzMp/PyTFWuw9liEzdlxsdGixCW0ZTU1XDmtlAkvpVXTPGF8KnfSs0hm3BPbg19OrUPPsRkHXoREpP1g==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "dev": true + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "doctypes": { + "version": "1.1.0", + "dev": true, + "optional": true + }, + "dom-serialize": { + "version": "2.2.1", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0" + } + }, + "dommatrix": { + "version": "1.0.3" + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "dot-prop": { + "version": "5.3.0", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true + }, + "dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "requires": { + "chalk": "4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "dev": true + }, + "ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, + "electron-to-chromium": { + "version": "1.4.579", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.579.tgz", + "integrity": "sha512-bJKvA+awBIzYR0xRced7PrQuRIwGQPpo6ZLP62GAShahU9fWpsNN2IP6BSP1BLDDSbxvBVRGAMWlvVVq3npmLA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0" + }, + "emojis-list": { + "version": "3.0.0", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0" + } + }, + "engine.io-client": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz", + "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + }, + "dependencies": { + "engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "5.0.6", + "dev": true + }, + "enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "ent": { + "version": "2.2.0", + "dev": true + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "errno": { + "version": "0.1.8", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error": { + "version": "7.2.1", + "dev": true, + "requires": { + "string-template": "~0.2.1" + } + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "dev": true + }, + "es-set-tostringtag": { + "version": "2.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-shim": { + "version": "4.6.7" + }, + "es6-promise": { + "version": "4.2.8", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "esbuild-wasm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz", + "integrity": "sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA==", + "dev": true + }, + "escalade": { + "version": "3.1.1" + }, + "escape-html": { + "version": "1.0.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "eslint": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.53.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.8.0", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "eslint-plugin-jsdoc": { + "version": "39.3.6", + "dev": true, + "requires": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + } + } + }, + "eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + } + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "etag": { + "version": "1.8.1", + "dev": true + }, + "eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14" + }, + "eventemitter3": { + "version": "4.0.7", + "dev": true + }, + "events": { + "version": "3.3.0", + "dev": true + }, + "execa": { + "version": "5.1.1", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2" + }, + "expand-brackets": { + "version": "2.1.4", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3" + }, + "fast-diff": { + "version": "1.2.0", + "dev": true + }, + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-saver": { + "version": "2.0.5" + }, + "file-sync-cmp": { + "version": "0.1.1", + "dev": true + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "devOptional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "requires": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + } + }, + "find-up": { + "version": "5.0.0", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "5.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fined": { + "version": "1.2.0", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "dev": true + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2", + "dev": true + }, + "font-awesome": { + "version": "4.7.0" + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + } + } + }, + "forever-agent": { + "version": "0.6.1", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "dev": true + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "requires": { + "minipass": "^7.0.3" + } + }, + "fs-monkey": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "gaze": { + "version": "1.1.3", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5" + }, + "get-intrinsic": { + "version": "1.2.0", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "dev": true + }, + "getobject": { + "version": "1.0.2", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "git-raw-commits": { + "version": "2.0.11", + "dev": true, + "requires": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "devOptional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "dev": true + }, + "global-dirs": { + "version": "0.1.1", + "dev": true, + "requires": { + "ini": "^1.3.4" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "dev": true + } + } + }, + "global-modules": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "dev": true + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globule": { + "version": "1.3.4", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.8", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "gopd": { + "version": "1.0.1", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11" + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "grunt": { + "version": "1.6.1", + "dev": true, + "requires": { + "dateformat": "~4.6.2", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~5.0.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.6.3", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "nopt": "~3.0.6" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.8", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "grunt-bump": { + "version": "0.8.0", + "dev": true, + "requires": { + "semver": "^5.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "grunt-cli": { + "version": "1.4.3", + "dev": true, + "requires": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "dependencies": { + "nopt": { + "version": "4.0.3", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + } + } + }, + "grunt-coffeelint": { + "version": "0.0.16", + "dev": true, + "requires": { + "coffeelint": "^1", + "coffeelint-stylish": "~0.1.0" + } + }, + "grunt-contrib-clean": { + "version": "1.0.0", + "dev": true, + "requires": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "grunt-contrib-coffee": { + "version": "1.0.0", + "dev": true, + "requires": { + "chalk": "~1.0.0", + "coffee-script": "~1.10.0", + "lodash": "~4.3.0", + "uri-path": "~1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.0.0", + "dev": true, + "requires": { + "ansi-styles": "^2.0.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^1.0.3", + "strip-ansi": "^2.0.1", + "supports-color": "^1.3.0" + } + }, + "coffee-script": { + "version": "1.10.0", + "dev": true + }, + "has-ansi": { + "version": "1.0.3", + "dev": true, + "requires": { + "ansi-regex": "^1.1.0", + "get-stdin": "^4.0.1" + } + }, + "lodash": { + "version": "4.3.0", + "dev": true + }, + "strip-ansi": { + "version": "2.0.1", + "dev": true, + "requires": { + "ansi-regex": "^1.0.0" + } + }, + "supports-color": { + "version": "1.3.1", + "dev": true + } + } + }, + "grunt-contrib-concat": { + "version": "1.0.1", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "source-map": "^0.5.3" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "grunt-contrib-connect": { + "version": "1.0.2", + "dev": true, + "requires": { + "async": "^1.5.2", + "connect": "^3.4.0", + "connect-livereload": "^0.5.0", + "http2": "^3.3.4", + "morgan": "^1.6.1", + "opn": "^4.0.0", + "portscanner": "^1.0.0", + "serve-index": "^1.7.1", + "serve-static": "^1.10.0" + }, + "dependencies": { + "opn": { + "version": "4.0.2", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "portscanner": { + "version": "1.2.0", + "dev": true, + "requires": { + "async": "1.5.2" + } + } + } + }, + "grunt-contrib-copy": { + "version": "1.0.0", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "grunt-contrib-jshint": { + "version": "1.0.0", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "grunt-contrib-watch": { + "version": "1.1.0", + "dev": true, + "requires": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "dependencies": { + "async": { + "version": "2.6.4", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "grunt-env": { + "version": "0.4.4", + "dev": true, + "requires": { + "ini": "~1.3.0", + "lodash": "~2.4.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "dev": true + }, + "lodash": { + "version": "2.4.2", + "dev": true + } + } + }, + "grunt-html2js": { + "version": "0.6.0", + "dev": true, + "requires": { + "chokidar": "^2", + "html-minifier": "^3", + "pug": "^2" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "dev": true + }, + "braces": { + "version": "2.3.2", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-binary-path": { + "version": "1.0.1", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "readdirp": { + "version": "2.2.1", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "grunt-karma": { + "version": "2.0.0", + "dev": true, + "requires": { + "lodash": "^3.10.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "dev": true + } + } + }, + "grunt-known-options": { + "version": "2.0.0", + "dev": true + }, + "grunt-legacy-log": { + "version": "3.0.0", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" + } + }, + "grunt-legacy-log-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "chalk": "~4.1.0", + "lodash": "~4.17.19" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "grunt-legacy-util": { + "version": "2.0.1", + "dev": true, + "requires": { + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" + }, + "dependencies": { + "async": { + "version": "3.2.4", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "dev": true + }, + "underscore.string": { + "version": "3.3.6", + "dev": true, + "requires": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + } + } + } + }, + "grunt-lib-contrib": { + "version": "0.6.1", + "requires": { + "zlib-browserify": "0.0.1" + } + }, + "grunt-newer": { + "version": "1.3.0", + "dev": true, + "requires": { + "async": "^1.5.2", + "rimraf": "^2.5.2" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "grunt-ng-annotate": { + "version": "3.0.0", + "dev": true, + "requires": { + "lodash.clonedeep": "^4.5.0", + "ng-annotate": "^1.2.1" + } + }, + "grunt-postcss": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.8.0.tgz", + "integrity": "sha512-Y/GlBwlSXET86uudGM6Sn5Qtjas5PT2AwjMGqKNnSaoxJSfhNY4chpAnOs72VQ4y3LqrP0y5f/i7CroyZqsuJA==", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "diff": "^2.0.2", + "postcss": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "requires": { + "has-flag": "^1.0.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 + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "grunt-preprocess": { + "version": "5.1.0", + "dev": true, + "requires": { + "lodash": "^4.5.0", + "preprocess": "^3.0.2" + } + }, + "grunt-sass": { + "version": "3.1.0", + "dev": true, + "requires": {} + }, + "grunt-sass-globbing": { + "version": "1.5.1", + "dev": true, + "requires": {} + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "hard-rejection": { + "version": "2.1.0", + "dev": true + }, + "has": { + "version": "1.0.3", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "dev": true + }, + "has-symbols": { + "version": "1.0.3" + }, + "has-tostringtag": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-value": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "requires": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "he": { + "version": "1.2.0", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hooker": { + "version": "0.2.3" + }, + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "dev": true + } + } + } + } + }, + "htmlparser2": { + "version": "3.8.3", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + }, + "dependencies": { + "dom-serializer": { + "version": "0.2.2", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "dev": true + }, + "entities": { + "version": "2.2.0", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.0.0", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "dev": true + } + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "statuses": { + "version": "2.0.1", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.8", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + } + } + }, + "http-signature": { + "version": "1.2.0", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http2": { + "version": "3.3.7", + "dev": true + }, + "https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, + "husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true + }, + "iconv-lite": { + "version": "0.6.3", + "devOptional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "ieee754": { + "version": "1.2.1" + }, + "ignore": { + "version": "5.2.4", + "dev": true + }, + "ignore-walk": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", + "requires": { + "minimatch": "^9.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "image-size": { + "version": "0.5.5", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "dev": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "dev": true + } + } + }, + "imurmurhash": { + "version": "0.1.4" + }, + "indent-string": { + "version": "4.0.0" + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4" + }, + "ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==" + }, + "inquirer": { + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "requires": { + "@ljharb/through": "^2.3.9", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.5", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.1.0", + "dev": true + }, + "invert-kv": { + "version": "1.0.0" + }, + "ip": { + "version": "1.1.8", + "dev": true + }, + "ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-array-buffer": { + "version": "3.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "devOptional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "dev": true + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.5", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "dev": true + } + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-expression": { + "version": "3.0.0", + "dev": true, + "optional": true, + "requires": { + "acorn": "~4.0.2", + "object-assign": "^4.0.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "dev": true, + "optional": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "devOptional": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0" + }, + "is-glob": { + "version": "4.0.3", + "devOptional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "requires": { + "is-docker": "^3.0.0" + }, + "dependencies": { + "is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true + } + } + }, + "is-interactive": { + "version": "1.0.0" + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, + "is-negative-zero": { + "version": "2.0.2", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "devOptional": true + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.2" + } + }, + "is-number-object": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + }, + "dependencies": { + "is-path-inside": { + "version": "1.0.1", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + } + } + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.2.2", + "dev": true, + "optional": true + }, + "is-regex": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-relative": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-text-path": { + "version": "1.0.1", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typed-array": { + "version": "1.1.10", + "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-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-unicode-supported": { + "version": "0.1.0" + }, + "is-weakref": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-what": { + "version": "3.14.1", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isbinaryfile": { + "version": "4.0.10", + "dev": true + }, + "isexe": { + "version": "2.0.0" + }, + "isobject": { + "version": "3.0.1", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jasmine": { + "version": "2.8.0", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "jasmine-core": { + "version": "2.8.0", + "dev": true + } + } + }, + "jasmine-core": { + "version": "4.1.1", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "5.0.2", + "dev": true, + "requires": { + "colors": "1.4.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "dev": true + } + } + }, + "jasminewd2": { + "version": "2.2.0", + "dev": true + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jiti": { + "version": "1.18.2", + "dev": true + }, + "jquery": { + "version": "2.1.4" + }, + "js-base64": { + "version": "2.6.4", + "dev": true + }, + "js-stringify": { + "version": "1.0.2", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "dev": true + }, + "jsdoc-type-pratt-parser": { + "version": "3.1.0", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "jshint": { + "version": "2.9.7", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "dependencies": { + "minimatch": { + "version": "3.0.8", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "dev": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "dev": true + }, + "json5": { + "version": "2.2.3", + "dev": true + }, + "jsonc-parser": { + "version": "3.2.0" + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1" + }, + "JSONStream": { + "version": "1.3.5", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jsprim": { + "version": "1.4.2", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jstransformer": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "jszip": { + "version": "3.10.1", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "karma": { + "version": "6.4.2", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "dependencies": { + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "connect": { + "version": "3.7.0", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "finalhandler": { + "version": "1.1.2", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.35", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.1", + "dev": true, + "requires": { + "which": "^1.2.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "4.0.2", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + }, + "dependencies": { + "jasmine-core": { + "version": "3.99.1", + "dev": true + } + } + }, + "karma-jasmine-html-reporter": { + "version": "1.7.0", + "dev": true, + "requires": {} + }, + "karma-source-map-support": { + "version": "1.4.0", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "kind-of": { + "version": "6.0.3", + "dev": true + }, + "klona": { + "version": "2.0.6", + "dev": true + }, + "launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "lazy-cache": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mime": { + "version": "1.6.0", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "dev": true, + "optional": true + } + } + }, + "less-loader": { + "version": "11.1.0", + "dev": true, + "requires": { + "klona": "^2.0.4" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "license-webpack-plugin": { + "version": "4.0.2", + "dev": true, + "requires": { + "webpack-sources": "^3.0.0" + } + }, + "lie": { + "version": "3.3.0", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "liftup": { + "version": "3.0.1", + "dev": true, + "requires": { + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" + }, + "dependencies": { + "findup-sync": { + "version": "4.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + } + } + }, + "lilconfig": { + "version": "2.1.0", + "dev": true + }, + "limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "livereload-js": { + "version": "2.4.0", + "dev": true + }, + "load-grunt-tasks": { + "version": "5.1.0", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "multimatch": "^4.0.0", + "pkg-up": "^3.1.0", + "resolve-pkg": "^2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "dev": true + } + } + }, + "loader-runner": { + "version": "4.3.0", + "dev": true + }, + "loader-utils": { + "version": "3.2.1", + "dev": true + }, + "localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "requires": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, + "locate-path": { + "version": "6.0.0", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "has-flag": { + "version": "4.0.0" + }, + "supports-color": { + "version": "7.2.0", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.9.1", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + } + }, + "longest": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "lottie-web": { + "version": "5.11.0" + }, + "lower-case": { + "version": "1.1.4", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "dev": true + }, + "make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "requires": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "4.3.0" + }, + "media-typer": { + "version": "0.3.0", + "dev": true + }, + "memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.4" + } + }, + "memorystream": { + "version": "0.3.1", + "dev": true + }, + "meow": { + "version": "8.1.2", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "dev": true + } + } + }, + "type-fest": { + "version": "0.18.1", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "2.6.0", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0" + }, + "min-indent": { + "version": "1.0.1", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dev": true, + "requires": { + "schema-utils": "^4.0.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "dev": true + } + } + }, + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "requires": { + "encoding": "^0.1.13", + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.6", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "moment": { + "version": "2.29.4" + }, + "morgan": { + "version": "1.10.0", + "dev": true, + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.1.2" + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "multimatch": { + "version": "4.0.0", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + } + }, + "mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" + }, + "mz": { + "version": "2.7.0", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.3.6", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "needle": { + "version": "3.2.0", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "negotiator": { + "version": "0.6.3" + }, + "neo-async": { + "version": "2.6.2", + "dev": true + }, + "ng-annotate": { + "version": "1.2.2", + "dev": true, + "requires": { + "acorn": "~2.6.4", + "alter": "~0.2.0", + "convert-source-map": "~1.1.2", + "optimist": "~0.6.1", + "ordered-ast-traverse": "~1.1.1", + "simple-fmt": "~0.1.0", + "simple-is": "~0.2.0", + "source-map": "~0.5.3", + "stable": "~0.1.5", + "stringmap": "~0.2.2", + "stringset": "~0.2.1", + "tryor": "~0.1.2" + }, + "dependencies": { + "acorn": { + "version": "2.6.4", + "dev": true + }, + "convert-source-map": { + "version": "1.1.3", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "dev": true + } + } + }, + "ng-csv": { + "version": "0.2.3" + }, + "ng-file-upload": { + "version": "5.0.9" + }, + "ng2-pdf-viewer": { + "version": "9.1.5", + "requires": { + "pdfjs-dist": "~2.14.305", + "tslib": "^2.3.1" + } + }, + "ngx-bootstrap": { + "version": "6.2.0", + "requires": {} + }, + "ngx-entity-service": { + "version": "0.0.37", + "resolved": "https://registry.npmjs.org/ngx-entity-service/-/ngx-entity-service-0.0.37.tgz", + "integrity": "sha512-clUk5EVKoxECHau0NB+VSvJh2hjtCd4TF5gJBFHEBBBZOZKYKagv/oQKIVntQweuKx6gQMAvy8g8CuTpUb9k0g==", + "requires": { + "tslib": "^2.3.0" + } + }, + "ngx-lottie": { + "version": "10.0.0", + "requires": { + "@scarf/scarf": "^1.1.1", + "tslib": "^2.3.0" + } + }, + "nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "optional": true, + "requires": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "requires": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "dependencies": { + "abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "requires": { + "abbrev": "^2.0.0" + } + }, + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "requires": { + "isexe": "^3.1.1" + } + } + } + }, + "node-gyp-build": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", + "dev": true, + "optional": true + }, + "node-machine-id": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "nopt": { + "version": "3.0.6", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "devOptional": true + }, + "normalize-range": { + "version": "0.1.2", + "dev": true + }, + "npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "requires": { + "npm-normalize-package-bin": "^3.0.0" + } + }, + "npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==" + }, + "npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "requires": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "requires": { + "lru-cache": "^10.0.1" + } + }, + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + } + } + }, + "npm-packlist": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", + "integrity": "sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==", + "requires": { + "ignore-walk": "^6.0.0" + } + }, + "npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "requires": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + } + }, + "npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "requires": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + } + }, + "npm-run-all": { + "version": "4.1.5", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "npm-run-path": { + "version": "4.0.1", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1" + }, + "nvd3": { + "version": "1.8.6", + "requires": {} + }, + "nx": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-17.0.3.tgz", + "integrity": "sha512-VShJISKCYt3iVJoMUPZiv67+0tiItxWMnfVmTmPZPio2Fu+wGc9U4ijjPxcmp2RJmLRaxkB9cn5rlrAvkIrNMA==", + "dev": true, + "requires": { + "@nrwl/tao": "17.0.3", + "@nx/nx-darwin-arm64": "17.0.3", + "@nx/nx-darwin-x64": "17.0.3", + "@nx/nx-freebsd-x64": "17.0.3", + "@nx/nx-linux-arm-gnueabihf": "17.0.3", + "@nx/nx-linux-arm64-gnu": "17.0.3", + "@nx/nx-linux-arm64-musl": "17.0.3", + "@nx/nx-linux-x64-gnu": "17.0.3", + "@nx/nx-linux-x64-musl": "17.0.3", + "@nx/nx-win32-arm64-msvc": "17.0.3", + "@nx/nx-win32-x64-msvc": "17.0.3", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "3.0.0-rc.46", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.5.1", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^8.0.1", + "dotenv": "~16.3.1", + "dotenv-expand": "~10.0.0", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^11.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "jest-diff": "^29.4.1", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", + "minimatch": "3.0.5", + "node-machine-id": "1.1.12", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.5.3", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "axios": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz", + "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "lines-and-columns": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", + "dev": true + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "3.0.0", + "dev": true + }, + "object-inspect": { + "version": "1.12.3", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "dev": true + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + } + } + }, + "optimist": { + "version": "0.6.1", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "has-flag": { + "version": "4.0.0" + }, + "supports-color": { + "version": "7.2.0", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ordered-ast-traverse": { + "version": "1.1.1", + "dev": true, + "requires": { + "ordered-esprima-props": "~1.1.0" + } + }, + "ordered-esprima-props": { + "version": "1.1.0", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2" + }, + "osenv": { + "version": "0.1.5", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "dependencies": { + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + } + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "pacote": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", + "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", + "requires": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "param-case": { + "version": "2.1.1", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-node-version": { + "version": "1.0.1", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "dev": true + }, + "parse5": { + "version": "7.1.2", + "devOptional": true, + "requires": { + "entities": "^4.4.0" + } + }, + "parse5-html-rewriting-stream": { + "version": "7.0.0", + "dev": true, + "requires": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + } + }, + "parse5-sax-parser": { + "version": "7.0.0", + "dev": true, + "requires": { + "parse5": "^7.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "dev": true + }, + "path-key": { + "version": "3.1.1" + }, + "path-parse": { + "version": "1.0.7" + }, + "path-root": { + "version": "0.1.1", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "dev": true + }, + "path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + } + } + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true + }, + "pdfjs-dist": { + "version": "2.14.305", + "requires": { + "dommatrix": "^1.0.1", + "web-streams-polyfill": "^3.2.1" + } + }, + "performance-now": { + "version": "2.1.0", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "devOptional": true + }, + "pidtree": { + "version": "0.3.1", + "dev": true + }, + "pify": { + "version": "2.3.0", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.5", + "dev": true + }, + "piscina": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.1.0.tgz", + "integrity": "sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig==", + "dev": true, + "requires": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0", + "nice-napi": "^1.0.2" + } + }, + "pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "requires": { + "find-up": "^6.3.0" + }, + "dependencies": { + "find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "pkg-up": { + "version": "3.1.0", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + } + } + }, + "portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "dependencies": { + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "dev": true + }, + "postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-import": { + "version": "15.1.0", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "dev": true, + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.1", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "dependencies": { + "yaml": { + "version": "2.2.2", + "dev": true + } + } + }, + "postcss-loader": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "dev": true, + "requires": { + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "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": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nested": { + "version": "6.0.1", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.11" + } + }, + "postcss-scss": { + "version": "0.1.9", + "dev": true, + "requires": { + "postcss": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "preprocess": { + "version": "3.2.0", + "dev": true, + "requires": { + "xregexp": "3.1.0" + } + }, + "prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "dev": true + }, + "promise": { + "version": "7.3.1", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "protractor": { + "version": "7.0.0", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "q": { + "version": "1.4.1", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "y18n": { + "version": "4.0.3", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "psl": { + "version": "1.9.0", + "dev": true + }, + "pug": { + "version": "2.0.4", + "dev": true, + "optional": true, + "requires": { + "pug-code-gen": "^2.0.2", + "pug-filters": "^3.1.1", + "pug-lexer": "^4.1.0", + "pug-linker": "^3.0.6", + "pug-load": "^2.0.12", + "pug-parser": "^5.0.1", + "pug-runtime": "^2.0.5", + "pug-strip-comments": "^1.0.4" + } + }, + "pug-attrs": { + "version": "2.0.4", + "dev": true, + "optional": true, + "requires": { + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.5" + } + }, + "pug-code-gen": { + "version": "2.0.3", + "dev": true, + "optional": true, + "requires": { + "constantinople": "^3.1.2", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.4", + "pug-error": "^1.3.3", + "pug-runtime": "^2.0.5", + "void-elements": "^2.0.1", + "with": "^5.0.0" + } + }, + "pug-error": { + "version": "1.3.3", + "dev": true, + "optional": true + }, + "pug-filters": { + "version": "3.1.1", + "dev": true, + "optional": true, + "requires": { + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", + "jstransformer": "1.0.0", + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" + } + }, + "pug-lexer": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.3" + } + }, + "pug-linker": { + "version": "3.0.6", + "dev": true, + "optional": true, + "requires": { + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8" + } + }, + "pug-load": { + "version": "2.0.12", + "dev": true, + "optional": true, + "requires": { + "object-assign": "^4.1.0", + "pug-walk": "^1.1.8" + } + }, + "pug-parser": { + "version": "5.0.1", + "dev": true, + "optional": true, + "requires": { + "pug-error": "^1.3.3", + "token-stream": "0.0.1" + } + }, + "pug-runtime": { + "version": "2.0.5", + "dev": true, + "optional": true + }, + "pug-strip-comments": { + "version": "1.0.4", + "dev": true, + "optional": true, + "requires": { + "pug-error": "^1.3.3" + } + }, + "pug-walk": { + "version": "1.1.8", + "dev": true, + "optional": true + }, + "punycode": { + "version": "2.3.0" + }, + "q": { + "version": "1.5.1", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "dev": true + }, + "qs": { + "version": "6.11.1", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, + "read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "requires": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "requires": { + "lru-cache": "^10.0.1" + } + }, + "json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==" + }, + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "requires": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + } + } + } + }, + "read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "requires": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "dependencies": { + "json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==" + } + } + }, + "read-pkg": { + "version": "3.0.0", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.8", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "devOptional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "redent": { + "version": "3.0.0", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "regex-parser": { + "version": "2.2.11", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "dev": true + }, + "request": { + "version": "2.88.2", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.3", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1" + }, + "require-from-string": { + "version": "2.0.2" + }, + "require-main-filename": { + "version": "2.0.0", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "dev": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "resolve-pkg": { + "version": "2.0.0", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "dev": true + }, + "resolve-url-loader": { + "version": "5.0.0", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "dev": true + } + } + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" + }, + "reusify": { + "version": "1.0.4", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "3.0.2", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==" + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rx": { + "version": "2.3.24", + "dev": true + }, + "rxjs": { + "version": "7.4.0", + "requires": { + "tslib": "~2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.1.0" + } + } + }, + "safe-buffer": { + "version": "5.1.2" + }, + "safe-json-parse": { + "version": "1.0.1", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2" + }, + "safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, + "sass": { + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "dependencies": { + "immutable": { + "version": "4.3.0", + "dev": true + } + } + }, + "sass-loader": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "dev": true, + "requires": { + "neo-async": "^2.6.2" + } + }, + "saucelabs": { + "version": "1.5.0", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + } + } + }, + "sax": { + "version": "1.2.4", + "dev": true + }, + "schema-utils": { + "version": "4.0.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.30", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "requires": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + } + }, + "semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0" + } + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.1", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "dev": true + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0" + }, + "shell-quote": { + "version": "1.8.1", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "dev": true + }, + "showdown": { + "version": "1.3.0", + "requires": { + "yargs": "^3.15.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1" + }, + "camelcase": { + "version": "2.1.1" + }, + "cliui": { + "version": "3.2.0", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "window-size": { + "version": "0.1.4" + }, + "wrap-ansi": { + "version": "2.1.0", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.2" + }, + "yargs": { + "version": "3.32.0", + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + } + } + }, + "side-channel": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sigmund": { + "version": "1.0.1" + }, + "signal-exit": { + "version": "3.0.7" + }, + "sigstore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", + "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", + "requires": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" + } + }, + "simple-fmt": { + "version": "0.1.0", + "dev": true + }, + "simple-is": { + "version": "0.2.0", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, + "snapdragon": { + "version": "0.8.2", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "4.6.1", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.4.1", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.1" + } + }, + "socket.io-adapter": { + "version": "2.5.2", + "dev": true, + "requires": { + "ws": "~8.11.0" + } + }, + "socket.io-client": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + } + }, + "socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "dependencies": { + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + } + } + }, + "socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + }, + "source-map-js": { + "version": "1.0.2", + "dev": true + }, + "source-map-loader": { + "version": "4.0.1", + "dev": true, + "requires": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + } + }, + "source-map-resolve": { + "version": "0.5.3", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "dev": true + }, + "spawn-command": { + "version": "0.0.2-1", + "dev": true + }, + "spdx-correct": { + "version": "3.2.0", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "split2": { + "version": "3.2.2", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "requires": { + "minipass": "^7.0.3" + } + }, + "stable": { + "version": "0.1.8", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + } + }, + "statuses": { + "version": "1.3.1", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "requires": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + } + }, + "streamroller": { + "version": "3.1.5", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-template": { + "version": "0.2.1", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "stringmap": { + "version": "0.2.2", + "dev": true + }, + "stringset": { + "version": "0.2.1", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + } + }, + "sucrase": { + "version": "3.32.0", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "dev": true + }, + "glob": { + "version": "7.1.6", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0" + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + }, + "synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "requires": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + } + }, + "tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dev": true, + "requires": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "dependencies": { + "arg": { + "version": "5.0.2", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.7", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "schema-utils": { + "version": "3.1.2", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "text-extensions": { + "version": "1.9.0", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "through2": { + "version": "4.0.2", + "dev": true, + "requires": { + "readable-stream": "3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "tiny-lr": { + "version": "1.1.1", + "dev": true, + "requires": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "devOptional": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "dev": true + }, + "token-stream": { + "version": "0.0.1", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.5.0", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "dev": true + }, + "trim-newlines": { + "version": "3.0.1", + "dev": true + }, + "tryor": { + "version": "0.1.2", + "dev": true + }, + "ts-api-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", + "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", + "dev": true, + "requires": {} + }, + "ts-interface-checker": { + "version": "0.1.13", + "dev": true + }, + "ts-md5": { + "version": "1.3.1" + }, + "ts-node": { + "version": "10.9.1", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "dev": true + } + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "tuf-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", + "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", + "requires": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + }, + "type-is": { + "version": "1.6.18", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-array-length": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typed-assert": { + "version": "1.0.9", + "dev": true + }, + "typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true + }, + "ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", + "dev": true + }, + "uglify-js": { + "version": "2.7.5", + "dev": true, + "optional": true, + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "dev": true, + "optional": true + }, + "camelcase": { + "version": "1.2.1", + "dev": true, + "optional": true + }, + "cliui": { + "version": "2.1.0", + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.5.7", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.2", + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2" + }, + "unbox-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "dev": true + }, + "underscore.string": { + "version": "2.3.3" + }, + "undici": { + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", + "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", + "dev": true, + "requires": { + "@fastify/busboy": "^2.0.0" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "requires": { + "unique-slug": "^4.0.0" + } + }, + "unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "dev": true + } + } + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "upath": { + "version": "1.2.0", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "upper-case": { + "version": "1.1.3", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "requires": { + "punycode": "^2.1.0" + } + }, + "uri-path": { + "version": "1.0.0", + "dev": true + }, + "urix": { + "version": "0.1.0", + "dev": true + }, + "use": { + "version": "3.1.1", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2" + }, + "utils-merge": { + "version": "1.0.1", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true + }, + "v8flags": { + "version": "3.2.0", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "requires": { + "builtins": "^5.0.0" } }, - "node_modules/webdriver-manager/node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" + "vary": { + "version": "1.1.2", + "dev": true }, - "node_modules/webdriver-manager/node_modules/rimraf": { - "version": "2.7.1", + "verror": { + "version": "1.10.0", "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" }, - "bin": { - "rimraf": "bin.js" + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "dev": true + } } }, - "node_modules/webdriver-manager/node_modules/semver": { - "version": "5.7.1", + "vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" } }, - "node_modules/webdriver-manager/node_modules/strip-ansi": { - "version": "3.0.1", + "void-elements": { + "version": "2.0.1", + "dev": true + }, + "watchpack": { + "version": "2.4.0", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, - "node_modules/webdriver-manager/node_modules/supports-color": { - "version": "2.0.0", + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "requires": { + "minimalistic-assert": "^1.0.0" } }, - "node_modules/webpack": { - "version": "5.76.1", + "wcwidth": { + "version": "1.0.1", + "requires": { + "defaults": "^1.0.3" + } + }, + "web-streams-polyfill": { + "version": "3.2.1" + }, + "webdriver-js-extender": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webdriver-manager": { + "version": "12.1.9", + "dev": true, + "requires": { + "adm-zip": "^0.5.2", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ini": { + "version": "1.3.8", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -23765,62 +42030,89 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "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": {} + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } } } }, - "node_modules/webpack-dev-middleware": { - "version": "6.0.1", + "webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", "dev": true, - "license": "MIT", - "dependencies": { + "requires": { "colorette": "^2.0.10", "memfs": "^3.4.12", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" } }, - "node_modules/webpack-dev-server": { - "version": "4.11.1", + "webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", "dev": true, - "license": "MIT", - "dependencies": { + "requires": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", + "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", @@ -23833,6 +42125,7 @@ "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", @@ -23842,432 +42135,237 @@ "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" + "ws": "^8.13.0" }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "dev": true, - "license": "MIT", "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + } + }, + "ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "dev": true, + "requires": {} + } } }, - "node_modules/webpack-merge": { - "version": "5.8.0", + "webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, - "license": "MIT", - "dependencies": { + "requires": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" } }, - "node_modules/webpack-sources": { + "webpack-sources": { "version": "3.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } + "dev": true }, - "node_modules/webpack-subresource-integrity": { + "webpack-subresource-integrity": { "version": "5.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "requires": { + "typed-assert": "^1.0.8" } }, - "node_modules/websocket-driver": { + "websocket-driver": { "version": "0.7.4", "dev": true, - "license": "Apache-2.0", - "dependencies": { + "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" } }, - "node_modules/websocket-extensions": { + "websocket-extensions": { "version": "0.1.4", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } + "dev": true }, - "node_modules/which": { + "which": { "version": "2.0.2", - "license": "ISC", - "dependencies": { + "requires": { "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { + "which-boxed-primitive": { "version": "1.0.2", "dev": true, - "license": "MIT", - "dependencies": { + "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "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-module": { + "which-module": { "version": "2.0.1", - "dev": true, - "license": "ISC" + "dev": true }, - "node_modules/which-typed-array": { + "which-typed-array": { "version": "1.1.9", "dev": true, - "license": "MIT", - "dependencies": { + "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/wildcard": { + "wildcard": { "version": "2.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true }, - "node_modules/window-size": { - "version": "0.1.0", - "engines": { - "node": ">= 0.8.0" - } + "window-size": { + "version": "0.1.0" }, - "node_modules/with": { + "with": { "version": "5.1.1", "dev": true, - "license": "MIT", "optional": true, - "dependencies": { + "requires": { "acorn": "^3.1.0", "acorn-globals": "^3.0.0" - } - }, - "node_modules/with/node_modules/acorn": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "acorn": "bin/acorn" }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "acorn": { + "version": "3.3.0", + "dev": true, + "optional": true + } } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi": { + "wrap-ansi": { "version": "7.0.0", - "license": "MIT", - "dependencies": { + "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + } } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, - "engines": { - "node": ">=7.0.0" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/wrappy": { + "wrappy": { "version": "1.0.2", - "license": "ISC" + "dev": true }, - "node_modules/ws": { + "ws": { "version": "8.11.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } + "requires": {} }, - "node_modules/xml2js": { + "xml2js": { "version": "0.4.23", "dev": true, - "license": "MIT", - "dependencies": { + "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" } }, - "node_modules/xmlbuilder": { + "xmlbuilder": { "version": "11.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0" - } + "dev": true }, - "node_modules/xmlhttprequest-ssl": { + "xmlhttprequest-ssl": { "version": "2.0.0", - "dev": true, - "engines": { - "node": ">=0.4.0" - } + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true }, - "node_modules/xregexp": { + "xregexp": { "version": "3.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/xtend": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } + "dev": true }, - "node_modules/y18n": { - "version": "5.0.8", - "license": "ISC", - "engines": { - "node": ">=10" - } + "y18n": { + "version": "5.0.8" }, - "node_modules/yallist": { + "yallist": { "version": "3.1.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, - "node_modules/yaml": { + "yaml": { "version": "1.10.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } + "dev": true }, - "node_modules/yargs": { - "version": "17.6.2", - "license": "MIT", - "dependencies": { + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -24276,52 +42374,32 @@ "y18n": "^5.0.5", "yargs-parser": "^21.1.1" }, - "engines": { - "node": ">=12" + "dependencies": { + "yargs-parser": { + "version": "21.1.1" + } } }, - "node_modules/yargs-parser": { + "yargs-parser": { "version": "20.2.9", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "license": "ISC", - "engines": { - "node": ">=12" - } + "dev": true }, - "node_modules/yn": { + "yn": { "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/yocto-queue": { + "yocto-queue": { "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true }, - "node_modules/zlib-browserify": { - "version": "0.0.1", - "license": "MIT" + "zlib-browserify": { + "version": "0.0.1" }, - "node_modules/zone.js": { - "version": "0.11.8", - "license": "MIT", - "dependencies": { + "zone.js": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.2.tgz", + "integrity": "sha512-X4U7J1isDhoOmHmFWiLhloWc2lzMkdnumtfQ1LXzf/IOZp5NQYuMUTaviVzG/q1ugMBIXzin2AqeVJUoSEkNyQ==", + "requires": { "tslib": "^2.3.0" } } diff --git a/package.json b/package.json index 9c3176829..eaad0b6be 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,13 @@ "node": ">=18" }, "scripts": { - "build": "run-s -l build:angular1 build:angular15", + "build": "run-s -l build:angular1 build:angular17", "build:angular1": "grunt build", - "build:angular15": "ng build", + "build:angular17": "ng build", "lint:fix": "ng lint --fix", "lint": "ng lint", - "serve:angular15": "export NODE_OPTIONS=--max_old_space_size=4096 && ng serve --host 0.0.0.0", - "start": "npm-run-all -l -s build:angular1 -p watch:angular1 serve:angular15", + "serve:angular17": "export NODE_OPTIONS=--max_old_space_size=4096 && ng serve --host 0.0.0.0", + "start": "npm-run-all -l -s build:angular1 -p watch:angular1 serve:angular17", "watch:angular1": "grunt delta", "deploy:build2api": "ng build --delete-output-path=true --optimization=true --configuration production --output-path dist", "deploy": "run-s -l build:angular1 deploy:build2api", @@ -26,30 +26,30 @@ "keywords": [], "author": "", "dependencies": { - "@angular/animations": "^15.2.8", - "@angular/cdk": "^15.2.1", - "@angular/cli": "^15.2.7", - "@angular/common": "^15.2.8", - "@angular/compiler": "^15.2.8", - "@angular/core": "^15.2.8", + "@angular/animations": "^17.0.1", + "@angular/cdk": "^17.0.0", + "@angular/cli": "^17.0.0", + "@angular/common": "^17.0.1", + "@angular/compiler": "^17.0.1", + "@angular/core": "^17.0.1", "@angular/flex-layout": "^15.0.0-beta.42", - "@angular/forms": "^15.2.8", - "@angular/material": "^15.2.1", - "@angular/material-moment-adapter": "^15.2.1", - "@angular/platform-browser": "^15.2.8", - "@angular/platform-browser-dynamic": "^15.2.8", - "@angular/router": "^15.2.8", - "@angular/service-worker": "^15.2.8", - "@angular/upgrade": "^15.2.8", - "@ctrl/ngx-emoji-mart": "^7.0.0", - "@uirouter/angular": "^11.1.0", - "@uirouter/angular-hybrid": "^15.0.2", + "@angular/forms": "^17.0.1", + "@angular/material": "^17.0.0", + "@angular/material-moment-adapter": "^17.0.0", + "@angular/platform-browser": "^17.0.1", + "@angular/platform-browser-dynamic": "^17.0.1", + "@angular/router": "^17.0.1", + "@angular/service-worker": "^17.0.1", + "@angular/upgrade": "^17.0.1", + "@ctrl/ngx-emoji-mart": "^9.2.0", + "@uirouter/angular": "^12.0", + "@uirouter/angular-hybrid": "^16.0", "@uirouter/angularjs": "^1.0.30", - "@uirouter/core": "^6.0.8", + "@uirouter/core": "^6.1.0", "@uirouter/rx": "^1.0.0", "angular": "1.5.11", "angular-cookies": "1.5.11", - "angular-file-upload": "1.1.1", + "angular-file-upload": "~1", "angular-filter": "0.5.17", "angular-local-storage": "0.7.1", "angular-markdown-filter": "1.3.2", @@ -63,8 +63,9 @@ "angular-xeditable": "0.9.0", "angulartics": "~1.0.3", "angulartics-google-analytics": "0.1.4", - "bootstrap": "3.4.1", - "bootstrap-sass": "3.3.7", + "bootstrap": "~3.4", + "bootstrap-sass": "~3.4", + "canvas-confetti": "^1.6.0", "codemirror": "5.65.0", "core-js": "^3.21.1", "d3": "3.5.17", @@ -72,15 +73,15 @@ "file-saver": "^2.0.5", "font-awesome": "~4.7.0", "jquery": "2.1.4", - "lodash": "^4.17.11", - "lottie-web": "^5.11.0", + "lodash": "~4.17", + "lottie-web": "^5", "marked": "^4.0.10", "moment": "^2.29.1", "ng-csv": "0.2.3", "ng-file-upload": "~5.0.9", - "ng2-pdf-viewer": "^9.1.3", + "ng2-pdf-viewer": "^9.1.5", "ngx-bootstrap": "^6.1.0", - "ngx-entity-service": "^0.0.35", + "ngx-entity-service": "^0.0.37", "ngx-lottie": "^10.0.0", "nvd3": "1.8.6", "rxjs": "~7.4.0", @@ -88,39 +89,39 @@ "ts-md5": "^1.2.7", "tslib": "^2.3.1", "underscore.string": "2.3.3", - "zone.js": "~0.11.4" + "zone.js": "~0.14" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.2.7", - "@angular-eslint/builder": "^15.2.1", - "@angular-eslint/eslint-plugin": "15.2.1", - "@angular-eslint/eslint-plugin-template": "15.2.1", - "@angular-eslint/schematics": "^15.2.1", - "@angular-eslint/template-parser": "15.2.1", - "@angular/compiler-cli": "^15.2.8", - "@angular/language-service": "^15.2.8", + "@angular-devkit/build-angular": "^17.0.0", + "@angular-eslint/builder": "^17.0.0", + "@angular-eslint/eslint-plugin": "^17.0.0", + "@angular-eslint/eslint-plugin-template": "^17.0.0", + "@angular-eslint/schematics": "^17.0.0", + "@angular-eslint/template-parser": "^17.0.0", + "@angular/compiler-cli": "^17.0.1", + "@angular/language-service": "^17.0.1", "@commitlint/cli": "^16.0.1", - "@commitlint/config-conventional": "^16.0.0", + "@commitlint/config-conventional": "^17", "@types/angular": "1.5.11", + "@types/canvas-confetti": "^1.6.0", "@types/d3": "^3.5.17", "@types/file-saver": "^2.0.1", "@types/jasmine": "~3.9.1", "@types/jasminewd2": "~2.0.3", "@types/lodash": "^4.14.115", "@types/node": "^18.0", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.43.0", - "autoprefixer": "^6.3.3", + "@typescript-eslint/eslint-plugin": "^6.10.0", + "@typescript-eslint/parser": "^6.10.0", + "autoprefixer": "~6", "canonical-path": "0.0.2", "concurrently": "^3.2.0", - "eslint": "^8.28.0", + "eslint": "^8.53.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsdoc": "39.3.6", "eslint-plugin-prefer-arrow": "1.2.3", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.0.1", "grunt": "^1.0.4", - "grunt-browser-sync": "^2.2.0", "grunt-bump": "0.8.0", "grunt-coffeelint": "0.0.16", "grunt-contrib-clean": "~1.0.0", @@ -129,19 +130,17 @@ "grunt-contrib-connect": "^1.0.2", "grunt-contrib-copy": "~1.0.0", "grunt-contrib-jshint": "~1.0.0", - "grunt-contrib-uglify": "~2.0.0", "grunt-contrib-watch": "^1.1.0", - "grunt-conventional-changelog": "~6.1.0", "grunt-env": "0.4.4", "grunt-html2js": "^0.6.0", "grunt-karma": "~2.0.0", "grunt-newer": "^1.1.2", "grunt-ng-annotate": "^3.0.0", - "grunt-postcss": "^0.8.0", + "grunt-postcss": "~0.8", "grunt-preprocess": "5.1.0", "grunt-sass": "^3.0.2", "grunt-sass-globbing": "^1.4.0", - "husky": "^7.0.4", + "husky": "~8", "ip": "^1.1.2", "jasmine-core": "~4.1.0", "jasmine-spec-reporter": "~5.0.0", @@ -152,14 +151,14 @@ "karma-jasmine-html-reporter": "^1.5.0", "load-grunt-tasks": "^5.0.0", "npm-run-all": "^4.1.5", - "postcss": "^8.3.4", + "postcss": "^8.4.27", "postcss-scss": "^0.1.7", - "prettier": "^2.7.1", - "pretty-quick": "^3.0.2", + "prettier": "^3.1.0", "protractor": "~7.0.0", "sass": "^1.48.0", - "ts-node": "~10.9.0", - "typescript": "~4.8", + "tailwindcss": "~3.3", + "ts-node": "~10.9", + "typescript": "~5.2", "underscore": "^1.8.3" } } \ No newline at end of file diff --git a/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.html b/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.html index e3d5f1fba..9b294d559 100644 --- a/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.html +++ b/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.html @@ -1,47 +1,67 @@
-
-

Activities

+
+

Activities

Add new activities or modify existing ones

- +
- + @@ -50,11 +70,13 @@

Activities

- +
Name -
+ @if (!editing(activityType)) { +
{{ activityType.name }}
+ } @else { + +
+ + + + + +
+ + } - +
- - + + Abbreviation Abbreviation -
- {{activityType.abbreviation}} + @if (!editing(activityType)) { +
+ {{ activityType.abbreviation }}
+ } @else { #edit| } - - + +
- - + + -
+ @if (!editing(activityType)) { +
+ } @else { #edit| }
@@ -81,7 +103,7 @@

Activities

diff --git a/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.scss b/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.scss index f3041e6ea..e4ec5c819 100644 --- a/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.scss +++ b/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.scss @@ -11,9 +11,9 @@ table { margin-top: auto; } } -td.mat-cell:last-of-type, -td.mat-footer-cell:last-of-type, -th.mat-header-cell:last-of-type { +td.mat-mdc-cell:last-of-type, +td.mat-mdc-footer-cell:last-of-type, +th.mat-mdc-header-cell:last-of-type { padding-right: 4px; } td.mat-column-options { diff --git a/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.ts b/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.ts index bf39ca64b..1a992a51d 100644 --- a/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.ts +++ b/src/app/admin/institution-settings/activity-type-list/activity-type-list.component.ts @@ -1,5 +1,5 @@ import { Component, Inject, ViewChild } from '@angular/core'; -import { MatLegacyTableDataSource as MatTableDataSource, MatLegacyTable as MatTable } from '@angular/material/legacy-table'; +import { MatTableDataSource, MatTable } from '@angular/material/table'; import { ActivityType, ActivityTypeService } from 'src/app/api/models/doubtfire-model'; import { alertService } from 'src/app/ajs-upgraded-providers'; import { EntityFormComponent } from 'src/app/common/entity-form/entity-form.component'; @@ -23,10 +23,13 @@ export class ActivityTypeListComponent extends EntityFormComponent // Calls the parent's constructor, passing in an object // that maps all of the form controls that this form consists of. constructor(private activityTypeService: ActivityTypeService, @Inject(alertService) private alerts: any) { - super({ - name: new UntypedFormControl('', [Validators.required]), - abbreviation: new UntypedFormControl('', [Validators.required]), - }, "Activity Type"); + super( + { + name: new UntypedFormControl('', [Validators.required]), + abbreviation: new UntypedFormControl('', [Validators.required]), + }, + 'Activity Type' + ); } ngAfterViewInit() { @@ -60,14 +63,14 @@ export class ActivityTypeListComponent extends EntityFormComponent } deleteActivity(activity: ActivityType) { - this.delete(activity, this.activityTypes, this.activityTypeService).subscribe( - { - next: () => { - this.alerts.add('success', `${activity.name} has been deleted.`, 2000); - }, - error: (response) => {this.alerts.add( 'danger', response.error?.error || "Unable to delete activity type.");} - } - ); + this.delete(activity, this.activityTypes, this.activityTypeService).subscribe({ + next: () => { + this.alerts.add('success', `${activity.name} has been deleted.`, 2000); + }, + error: (response) => { + this.alerts.add('danger', response.error?.error || 'Unable to delete activity type.'); + }, + }); } // Sorting function to sort data when sort diff --git a/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.html b/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.html index b1dd7c07d..a97dcd2e1 100644 --- a/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.html +++ b/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.html @@ -1,77 +1,102 @@
-
-

Campuses

+
+

Campuses

Add new campuses or modify existing ones

- - +
- + - + - + @@ -79,20 +104,19 @@

Campuses

- + @@ -100,16 +124,18 @@

Campuses

- +
Name Name -
- {{campus.name}} + @if (!editing(campus)) { +
+ {{ campus.name }} +
+ } @else { + +
+ + + + +
+ + } - - + +
- - + + Abbreviation Abbreviation -
- {{campus.abbreviation}} + @if (!editing(campus)) { +
+ {{ campus.abbreviation }}
+ } @else { #edit| } - - + +
- - + + Default Sync Mode Default Sync Mode -
- {{campus.mode | titlecase}} + @if (!editing(campus)) { +
+ {{ campus.mode | titlecase }}
+ } @else { #edit| } - + Default Sync Mode - - {{mode | titlecase }} + @for (mode of syncModes; track mode) { + + {{ mode | titlecase }} + }
- + Default Sync Mode - - {{mode | titlecase }} + @for (mode of syncModes; track mode) { + + {{ mode | titlecase }} + } Active Active -
- - + @if (!editing(campus)) { +
+
+ } @else { #edit| } - - +
- - + -
+ @if (!editing(campus)) { +
- +
+ } @else { #edit| }
@@ -136,7 +162,7 @@

Campuses

diff --git a/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.scss b/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.scss index d6bbda844..be1b22a04 100644 --- a/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.scss +++ b/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.scss @@ -11,9 +11,9 @@ table { margin-top: auto; } } -td.mat-cell:last-of-type, -td.mat-footer-cell:last-of-type, -th.mat-header-cell:last-of-type { +td.mat-mdc-cell:last-of-type, +td.mat-mdc-footer-cell:last-of-type, +th.mat-mdc-header-cell:last-of-type { padding-right: 4px; } td.mat-column-options { @@ -41,7 +41,3 @@ td.mat-column-options { padding: 1rem 1rem 1rem 0; width: 95%; } -.mat-checkbox-inner-container { - width: 20px; - height: 20px; -} diff --git a/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.ts b/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.ts index 1049837fa..428fb9499 100644 --- a/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.ts +++ b/src/app/admin/institution-settings/campuses/campus-list/campus-list.component.ts @@ -1,7 +1,7 @@ import { Component, Inject, ViewChild } from '@angular/core'; import { alertService } from 'src/app/ajs-upgraded-providers'; import { MatSort, Sort } from '@angular/material/sort'; -import { MatLegacyTableDataSource as MatTableDataSource, MatLegacyTable as MatTable } from '@angular/material/legacy-table'; +import { MatTableDataSource, MatTable } from '@angular/material/table'; import { UntypedFormControl, Validators } from '@angular/forms'; import { Campus, CampusService } from 'src/app/api/models/doubtfire-model'; import { EntityFormComponent } from 'src/app/common/entity-form/entity-form.component'; diff --git a/src/app/admin/institution-settings/institution-settings.component.html b/src/app/admin/institution-settings/institution-settings.component.html index 40351e5fd..fdaa85ddd 100644 --- a/src/app/admin/institution-settings/institution-settings.component.html +++ b/src/app/admin/institution-settings/institution-settings.component.html @@ -6,8 +6,17 @@ - + + + + @if (overseerEnabled) { + + } @if (tiiEnabled) { + + + + }
diff --git a/src/app/admin/institution-settings/institution-settings.component.ts b/src/app/admin/institution-settings/institution-settings.component.ts index 5aac71ca0..c4fd2d78a 100644 --- a/src/app/admin/institution-settings/institution-settings.component.ts +++ b/src/app/admin/institution-settings/institution-settings.component.ts @@ -12,7 +12,11 @@ export class InstitutionSettingsComponent { private constants: DoubtfireConstants, ) { } - get overseerEnabled() : boolean { + public get overseerEnabled() : boolean { return this.constants.IsOverseerEnabled.value; } + + public get tiiEnabled() : boolean { + return this.constants.IsTiiEnabled.value; + } } diff --git a/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.html b/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.html index 2afc0c7e1..d2e70e730 100644 --- a/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.html +++ b/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.html @@ -5,44 +5,43 @@

Overseer Images

Add new image or modify existing ones used for automated task analysis

- - +
- + - + @@ -51,10 +50,8 @@

Overseer Images

@@ -64,8 +61,8 @@

Overseer Images

@@ -75,19 +72,37 @@

Overseer Images

@@ -97,7 +112,7 @@

Overseer Images

- +
Name Name -
- {{overseerImage.name}} +
+ {{ overseerImage.name }}
- +
- + Tag Tag -
- {{overseerImage.tag}} +
+ {{ overseerImage.tag }}
- +
- + -
- +
+
Last Pulled -
- {{overseerImage.lastPulledDate}} +
+ {{ overseerImage.lastPulledDate }}
Status -
- - - +
+ + +
-
+
@@ -134,7 +149,7 @@

Overseer Images

diff --git a/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.scss b/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.scss index 971c5a6cf..a67ed67ef 100644 --- a/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.scss +++ b/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.scss @@ -11,9 +11,9 @@ table { margin-top: auto; } } -td.mat-cell:last-of-type, -td.mat-footer-cell:last-of-type, -th.mat-header-cell:last-of-type { +td.mat-mdc-cell:last-of-type, +td.mat-mdc-footer-cell:last-of-type, +th.mat-mdc-header-cell:last-of-type { padding-right: 4px; } td.mat-column-options { diff --git a/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.ts b/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.ts index 61dbba5db..8cc509ba6 100644 --- a/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.ts +++ b/src/app/admin/institution-settings/overseer-images/overseer-image-list.component.ts @@ -1,5 +1,5 @@ import { Component, Inject, ViewChild } from '@angular/core'; -import { MatLegacyTableDataSource as MatTableDataSource, MatLegacyTable as MatTable } from '@angular/material/legacy-table'; +import { MatTableDataSource, MatTable } from '@angular/material/table'; import { OverseerImage, OverseerImageService } from 'src/app/api/models/doubtfire-model'; import { alertService } from 'src/app/ajs-upgraded-providers'; import { EntityFormComponent } from 'src/app/common/entity-form/entity-form.component'; diff --git a/src/app/admin/modals/create-break-modal/create-break-modal.coffee b/src/app/admin/modals/create-break-modal/create-break-modal.coffee deleted file mode 100644 index bda12b79f..000000000 --- a/src/app/admin/modals/create-break-modal/create-break-modal.coffee +++ /dev/null @@ -1,49 +0,0 @@ -angular.module('doubtfire.admin.modals.create-break-modal', []) - -.factory('CreateBreakModal', ($modal) -> - CreateBreakModal = {} - - CreateBreakModal.show = (teachingPeriod) -> - $modal.open - templateUrl: 'admin/modals/create-break-modal/create-break-modal.tpl.html' - controller: 'CreateBreakModal' - resolve: - teachingperiod: -> teachingPeriod - - CreateBreakModal -) - -.controller('CreateBreakModal', ($scope, $modalInstance, alertService, analyticsService, teachingperiod, Break) -> - analyticsService.event 'Teaching Period Admin', 'Started to Add Break' - $scope.teachingperiod = teachingperiod - - $scope.calOptions = { - startOpened: false - } - - $scope.break = { startDate: null, numberOfWeeks: null, teachingPeriod: $scope.teachingperiod } - - # Datepicker opener - $scope.open = ($event, pickerData) -> - $event.preventDefault() - $event.stopPropagation() - - if pickerData == 'start' - $scope.calOptions.startOpened = ! $scope.calOptions.startOpened - - $scope.dateOptions = { - formatYear: 'yy', - startingDay: 1 - } - - $scope.addBreak = -> - $scope.teachingperiod.addBreak($scope.break.startDate, $scope.break.numberOfWeeks).subscribe({ - next: (response) -> - alertService.add("success", "Break added.", 2000) - $modalInstance.close() - error: (response) -> - alertService.add 'danger', "Error adding break - #{response}" - }) - -) - diff --git a/src/app/admin/modals/create-break-modal/create-break-modal.tpl.html b/src/app/admin/modals/create-break-modal/create-break-modal.tpl.html deleted file mode 100644 index 6f0fbd4cb..000000000 --- a/src/app/admin/modals/create-break-modal/create-break-modal.tpl.html +++ /dev/null @@ -1,31 +0,0 @@ -
-
- - - -
-
diff --git a/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal-content.component.html b/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal-content.component.html new file mode 100644 index 000000000..2cb803dfa --- /dev/null +++ b/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal-content.component.html @@ -0,0 +1,42 @@ +

Create Unit

+ +
+
+ + Unit Code + + + + + Unit Name + + + + + Teaching Period + + Custom teaching period + + {{ tp.name }} + + + + + @if(showDates) { + + Enter a date range + + + + + DD/MM/YYYY - DD/MM/YYYY + + + + } + + + + +
+
diff --git a/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal-content.component.ts b/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal-content.component.ts new file mode 100644 index 000000000..e3b5fb6e0 --- /dev/null +++ b/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal-content.component.ts @@ -0,0 +1,71 @@ +import { Component, OnInit } from '@angular/core'; +import { MatDialogRef } from '@angular/material/dialog'; +import { TeachingPeriod } from 'src/app/api/models/teaching-period'; +import { TeachingPeriodService } from 'src/app/api/services/teaching-period.service'; +import { UnitService } from 'src/app/api/services/unit.service'; +import { AlertService } from 'src/app/common/services/alert.service'; +@Component({ + selector: 'create-new-unit-modal-content', + templateUrl: 'create-new-unit-modal-content.component.html', +}) +export class CreateNewUnitModalContentComponent implements OnInit { + constructor( + private dialogRef: MatDialogRef, + private unitService: UnitService, + private teachingPeriodsService: TeachingPeriodService, + private alerts: AlertService, + ) {} + showDates = false; + startDate: Date; + endDate: Date; + selectedTeachingPeriod: number = null; + teachingPeriods: TeachingPeriod[]; + + ngOnInit(): void { + this.teachingPeriodsService.fetchAll().subscribe((teachingPeriods) => { + this.teachingPeriods = teachingPeriods; + }); + } + + public createUnit(unit: { unitName: string; unitCode: string; selectedTeachingPeriod: number }): void { + let newUnit; + + if (this.selectedTeachingPeriod === null) { + newUnit = { + code: unit.unitCode, + name: unit.unitName, + start_date: this.startDate, + end_date: this.endDate, + }; + } else { + newUnit = { + code: unit.unitCode, + name: unit.unitName, + teaching_period_id: this.selectedTeachingPeriod, + }; + } + + this.unitService + .create({ + unit: newUnit, + }) + .subscribe({ + next: (unit) => { + this.alerts.success(`Unit ${unit.code} - ${unit.name} has been created.`); + this.dialogRef.close(unit); + }, + error: (error) => { + this.alerts.error(`Unit Creation Failed: ${error}`); + }, + }); + } + public handleChangeTeachingPeriod(teachingPeriod: number | string): void { + if (typeof teachingPeriod === 'string') { + teachingPeriod = null; + this.showDates = true; + } else { + this.showDates = false; + this.selectedTeachingPeriod = teachingPeriod; + } + } +} diff --git a/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal.component.ts b/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal.component.ts new file mode 100644 index 000000000..e2e7fe576 --- /dev/null +++ b/src/app/admin/modals/create-new-unit-modal/create-new-unit-modal.component.ts @@ -0,0 +1,16 @@ +import { Component } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { CreateNewUnitModalContentComponent } from './create-new-unit-modal-content.component'; + +@Component({ + selector: 'create-new-unit-modal', + template: '', +}) +export class CreateNewUnitModal { + constructor(public dialog: MatDialog) {} + public show(): void { + this.dialog.open(CreateNewUnitModalContentComponent, { + width: '500px', + }); + } +} diff --git a/src/app/admin/modals/modals.coffee b/src/app/admin/modals/modals.coffee index f7f2bb3f2..0cc9ff7c5 100644 --- a/src/app/admin/modals/modals.coffee +++ b/src/app/admin/modals/modals.coffee @@ -1,6 +1,3 @@ angular.module('doubtfire.admin.modals', [ 'doubtfire.admin.modals.create-unit-modal' - 'doubtfire.admin.modals.teaching-period-settings-modal' - 'doubtfire.admin.modals.rollover-teaching-period-modal' - 'doubtfire.admin.modals.create-break-modal' ]) diff --git a/src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.coffee b/src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.coffee deleted file mode 100644 index b2d69ea04..000000000 --- a/src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.coffee +++ /dev/null @@ -1,29 +0,0 @@ -angular.module('doubtfire.admin.modals.rollover-teaching-period-modal', []) - -.factory('RolloverTeachingPeriodModal', ($modal) -> - RolloverTeachingPeriodModal = {} - - RolloverTeachingPeriodModal.show = (teachingPeriod) -> - $modal.open - templateUrl: 'admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.tpl.html' - controller: 'RolloverTeachingPeriodModal' - resolve: - teachingperiod: -> teachingPeriod - - RolloverTeachingPeriodModal -) - -.controller('RolloverTeachingPeriodModal', ($scope, $modalInstance, alertService, analyticsService, newTeachingPeriodService, teachingperiod) -> - $scope.teachingperiod = teachingperiod - newTeachingPeriodService.cache.values.subscribe((tps) -> $scope.teachingPeriods = tps ) - - $scope.rolloverTo = {} - - $scope.rollover = -> - newPeriod = newTeachingPeriodService.cache.get(parseInt($scope.rolloverTo, 10)) - $scope.teachingperiod.rollover(newPeriod, false, false).subscribe({ - next: () -> alertService.add('success', "Rollover complete", 2000) - error: (response) -> alertService.add('danger', response, 6000) - }) -) - diff --git a/src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.tpl.html b/src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.tpl.html deleted file mode 100644 index d95825103..000000000 --- a/src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.tpl.html +++ /dev/null @@ -1,24 +0,0 @@ -
-
- -
- -
- -
-
-
- -
- -
-
- -
> -
diff --git a/src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.coffee b/src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.coffee deleted file mode 100644 index 47ca61620..000000000 --- a/src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.coffee +++ /dev/null @@ -1,61 +0,0 @@ -angular.module('doubtfire.admin.modals.teaching-period-settings-modal', []) - -.factory('TeachingPeriodSettingsModal', ($modal) -> - TeachingPeriodSettingsModal = {} - - TeachingPeriodSettingsModal.show = () -> - $modal.open - templateUrl: 'admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.tpl.html' - controller: 'TeachingPeriodSettingsModal' - - TeachingPeriodSettingsModal -) - -.controller('TeachingPeriodSettingsModal', ($scope, $modalInstance, DoubtfireConstants, alertService, analyticsService, newTeachingPeriodService) -> - $scope.teachingperiod = newTeachingPeriodService.buildInstance({}) - $scope.isNew = true - - $scope.calOptions = { - startOpened: false - endOpened: false - activeUntilOpened: false - } - - # Get the external name of Doubtfire - $scope.externalName = DoubtfireConstants.ExternalName - - $scope.modalState = {} - - # Datepicker opener - $scope.open = ($event, pickerData) -> - $event.preventDefault() - $event.stopPropagation() - - if pickerData == 'start' - $scope.calOptions.startOpened = ! $scope.calOptions.startOpened - $scope.calOptions.endOpened = false - $scope.calOptions.activeUntilOpened = false - else if pickerData == 'end' - $scope.calOptions.startOpened = false - $scope.calOptions.endOpened = ! $scope.calOptions.endOpened - $scope.calOptions.activeUntilOpened = false - else - $scope.calOptions.startOpened = false - $scope.calOptions.endOpened = false - $scope.calOptions.activeUntilOpened = ! $scope.calOptions.activeUntilOpened - - $scope.dateOptions = { - formatYear: 'yy', - startingDay: 1 - } - - $scope.saveTeachingPeriod = -> - newTeachingPeriodService.store( $scope.teachingperiod ).subscribe({ - next: (createdTeachingPeriod) -> - $modalInstance.close(createdTeachingPeriod) - alertService.add("success", "Teaching Period created.", 2000) - error: (response) -> - alertService.add("danger", "Error: " + response, 6000) - }) -) - diff --git a/src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.tpl.html b/src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.tpl.html deleted file mode 100644 index 4e4658efa..000000000 --- a/src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.tpl.html +++ /dev/null @@ -1,67 +0,0 @@ -
-
- - -
- -
- -
-
- -
- -
- -
-
- -
- -
-
- - - - -
-
-
- -
- -
-
- - - - -
-
-
- -
- -
-
- - - - -
-
-
- - -
-
diff --git a/src/app/admin/states/f-units/f-units.component.html b/src/app/admin/states/f-units/f-units.component.html new file mode 100644 index 000000000..b8ce33a13 --- /dev/null +++ b/src/app/admin/states/f-units/f-units.component.html @@ -0,0 +1,104 @@ +
+
+
+
+
+

Units

+

Modify units registered with OnTrack

+
+
+
+ + Search + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Unit Code + {{ element.code }} + Name{{ element.name }}Unit Role{{ element.myRole }}Teaching Period + @if (element.teachingPeriod) { + + {{ element.teachingPeriod.name }} + + } @else { Custom } + Start Time{{ element.startDate | date: 'EEE d MMM y' }}End Time{{ element.endDate | date: 'EEE d MMM y' }}Active + + @if (element.teachingPeriod) { @if (element.teachingPeriod.active && element.active) { + + } @if (!element.teachingPeriod.active || !element.active) { + + } } @else { @if (element.active) { + + } @if (!element.active) { + + } } + + +
+ + + + + +
+
+
diff --git a/src/app/admin/states/f-units/f-units.component.scss b/src/app/admin/states/f-units/f-units.component.scss new file mode 100644 index 000000000..55764c977 --- /dev/null +++ b/src/app/admin/states/f-units/f-units.component.scss @@ -0,0 +1,8 @@ +.table-padding { + padding-left: 50px; + padding-right: 50px; +} + +.icon_display { + transform: scale(2); +} diff --git a/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.scss b/src/app/admin/states/f-units/f-units.component.spec.ts similarity index 100% rename from src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.scss rename to src/app/admin/states/f-units/f-units.component.spec.ts diff --git a/src/app/admin/states/f-units/f-units.component.ts b/src/app/admin/states/f-units/f-units.component.ts new file mode 100644 index 000000000..48a416596 --- /dev/null +++ b/src/app/admin/states/f-units/f-units.component.ts @@ -0,0 +1,101 @@ +import { Component, AfterViewInit, ViewChild, OnDestroy } from '@angular/core'; +import { Unit } from 'src/app/api/models/unit'; +import { UnitRole } from 'src/app/api/models/unit-role'; +import { UnitService } from 'src/app/api/services/unit.service'; +import { MatTable, MatTableDataSource } from '@angular/material/table'; +import { MatSort, Sort } from '@angular/material/sort'; +import { MatPaginator } from '@angular/material/paginator'; +import { Subscription } from 'rxjs'; +import { CreateNewUnitModal } from '../../modals/create-new-unit-modal/create-new-unit-modal.component'; + +@Component({ + selector: 'f-units', + templateUrl: './f-units.component.html', + styleUrls: ['./f-units.component.scss'], +}) +export class FUnitsComponent implements AfterViewInit, OnDestroy { + @ViewChild(MatTable, { static: false }) table: MatTable; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator; + + displayedColumns: string[] = [ + 'unit_code', + 'name', + 'unit_role', + 'teaching_period', + 'start_date', + 'end_date', + 'active', + ]; + dataSource: MatTableDataSource; + clickedRows = new Set(); + + public allUnits: Unit[]; + unitRoles: UnitRole[]; + dataload: boolean; + + private subscriptions: Subscription[] = []; + + constructor( + private createUnitDialog: CreateNewUnitModal, + private unitService: UnitService, + ) { + this.dataload = false; + } + + ngAfterViewInit(): void { + this.dataSource = new MatTableDataSource(this.unitService.cache.currentValuesClone()); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + this.dataSource.filterPredicate = (data, filter: string) => data.matches(filter); + + this.subscriptions.push( + this.unitService.cache.values.subscribe((units) => { + this.dataSource.data = units; + }), + ); + } + + ngOnDestroy(): void { + this.subscriptions.forEach((s) => s.unsubscribe()); + } + + createUnit() { + this.createUnitDialog.show(); + } + + applyFilter(event: Event) { + const filterValue = (event.target as HTMLInputElement).value; + this.dataSource.filter = filterValue.trim().toLowerCase(); + if (this.dataSource.paginator) { + this.dataSource.paginator.firstPage(); + } + } + + private sortCompare(aValue: number | string, bValue: number | string, isAsc: boolean) { + return (aValue < bValue ? -1 : 1) * (isAsc ? 1 : -1); + } + + // Sorting function to sort data when sort + // event is triggered + sortTableData(sort: Sort) { + if (!sort.active || sort.direction === '') { + return; + } + this.dataSource.data = this.dataSource.data.sort((a, b) => { + const isAsc = sort.direction === 'asc'; + switch (sort.active) { + case 'unit_code': + case 'name': + case 'unit_role': + case 'teaching_period': + case 'start_date': + case 'end_date': + case 'active': + return this.sortCompare(a[sort.active], b[sort.active], isAsc); + default: + return 0; + } + }); + } +} diff --git a/src/app/admin/states/f-users/f-users.component.html b/src/app/admin/states/f-users/f-users.component.html new file mode 100644 index 000000000..3470ce4c7 --- /dev/null +++ b/src/app/admin/states/f-users/f-users.component.html @@ -0,0 +1,82 @@ +
+ +
+
+

{{ externalName }} Users

+

Users Administration View

+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + First Name{{ user.firstName }}Last Name{{ user.lastName }}Username{{ user.username }}Email + {{ user.email }} + System Role{{ user.systemRole }}
+ + + + + + + + + + + Bulk users operations + +
+
+ +
+
+ +
+
+
diff --git a/src/app/admin/states/f-users/f-users.component.scss b/src/app/admin/states/f-users/f-users.component.scss new file mode 100644 index 000000000..ce6a4dba7 --- /dev/null +++ b/src/app/admin/states/f-users/f-users.component.scss @@ -0,0 +1,8 @@ +.table-padding { + padding-left: 15px; + padding-right: 15px; +} + +.header-spacer { + height: 80px; +} diff --git a/src/app/admin/states/f-users/f-users.component.ts b/src/app/admin/states/f-users/f-users.component.ts new file mode 100644 index 000000000..0982ed7b8 --- /dev/null +++ b/src/app/admin/states/f-users/f-users.component.ts @@ -0,0 +1,133 @@ +import { Component, AfterViewInit, ViewChild, OnDestroy, OnInit } from '@angular/core'; +import { MatTable, MatTableDataSource } from '@angular/material/table'; +import { MatSort, Sort } from '@angular/material/sort'; +import { User } from 'src/app/api/models/doubtfire-model'; +import { MatPaginator } from '@angular/material/paginator'; +import { UserService } from 'src/app/api/models/doubtfire-model'; +import { EditProfileDialogService } from 'src/app/common/modals/edit-profile-dialog/edit-profile-dialog.service'; +import { Subscription } from 'rxjs'; +import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; +import { AlertService } from 'src/app/common/services/alert.service'; + +@Component({ + selector: 'f-users', + templateUrl: './f-users.component.html', + styleUrls: ['./f-users.component.scss'], +}) +export class FUsersComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatTable, { static: false }) table: MatTable; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator; + + displayedColumns: string[] = ['avatar', 'firstName', 'lastName', 'username', 'email', 'systemRole']; + public dataSource: MatTableDataSource; + public filter: string; + dataload: boolean; + + private subscriptions: Subscription[] = []; + externalName: string; + uploadEndpoint: string; + + constructor( + private userService: UserService, + private editProfileDialogService: EditProfileDialogService, + private constants: DoubtfireConstants, + private fileDownloaderService: FileDownloaderService, + private alerts: AlertService, + ) { + this.dataload = false; + } + + ngOnInit(): void { + this.userService.query().subscribe(); + this.constants.ExternalName.subscribe((externalName) => { + this.externalName = externalName; + }); + + this.uploadEndpoint = this.userService.csvURL; + } + + ngAfterViewInit(): void { + this.dataSource = new MatTableDataSource(this.userService.cache.currentValuesClone()); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + this.dataSource.filterPredicate = (data, filter: string) => data.matches(filter); + + this.subscriptions.push( + this.userService.cache.values.subscribe((users) => { + this.dataSource.data = users; + }), + ); + } + + ngOnDestroy(): void { + this.subscriptions.forEach((s) => s.unsubscribe()); + } + + protected downloadUsers() { + this.fileDownloaderService.downloadFile(this.userService.csvURL, 'Users.csv'); + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + // TODO: This needs to be brought out into a service which replaces the old csv-result-modal + protected onUserUploadSuccess(event) { + const max_full_errors = 5; + const num_errors = event.body.errors?.length; + const num_success = event.body.success?.length; + const num_ignored = event.body.ignored?.length; + + // build error string + let error_string = `${num_success} users successfully updated, `; + error_string += `${num_ignored} users ignored, `; + error_string += `${num_errors} users contained an error in the CSV...`; + + event.body.errors?.slice(0, max_full_errors).forEach((error) => { + error_string += error.message + '\n'; + }); + + max_full_errors > num_errors ? (error_string += `... and ${max_full_errors - num_errors} more`) : null; + this.alerts.error(error_string); + + this.userService.query(); + } + + public showUserModal(user: User) { + const userToShow = user ? user : this.userService.createInstanceFrom({}); + this.editProfileDialogService.openDialog(userToShow); + } + + public compare(a: number | string, b: number | string, isAsc: boolean): number { + return (a < b ? -1 : 1) * (isAsc ? 1 : -1); + } + + public sortData(sort: Sort) { + const data = this.dataSource.data; + + if (!sort.active || sort.direction === '') { + this.dataSource.data = data; + return; + } + + this.dataSource.data = data.sort((a, b) => { + const isAsc = sort.direction === 'asc'; + + switch (sort.active) { + case 'id': + return this.compare(a.id, b.id, isAsc); + case 'firstName': + return this.compare(a.firstName, b.firstName, isAsc); + case 'lastName': + return this.compare(a.lastName, b.lastName, isAsc); + case 'systemRole': + return this.compare(a.systemRole, b.systemRole, isAsc); + default: + return 0; + } + }); + } + + applyFilter(filterValue: string) { + this.dataSource.filter = filterValue.trim().toLowerCase(); + } +} diff --git a/src/app/admin/states/states.coffee b/src/app/admin/states/states.coffee index 9484120c9..38eabd837 100644 --- a/src/app/admin/states/states.coffee +++ b/src/app/admin/states/states.coffee @@ -1,5 +1,4 @@ angular.module('doubtfire.admin.states', [ - 'doubtfire.admin.states.teachingperiods' 'doubtfire.admin.states.units' - 'doubtfire.admin.states.users' + # 'doubtfire.admin.states.users' ]) diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/directives.coffee b/src/app/admin/states/teaching-periods/teaching-period-edit/directives/directives.coffee deleted file mode 100644 index 436d9040d..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/directives.coffee +++ /dev/null @@ -1,5 +0,0 @@ -angular.module('doubtfire.teaching-periods.states.edit.directives', [ - 'doubtfire.teaching-periods.states.edit.directives.teaching-period-details-editor' - 'doubtfire.teaching-periods.states.edit.directives.teaching-period-breaks' - 'doubtfire.teaching-periods.states.edit.directives.teaching-period-units' -]) \ No newline at end of file diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.coffee b/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.coffee deleted file mode 100644 index d50db03ed..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.coffee +++ /dev/null @@ -1,14 +0,0 @@ -angular.module('doubtfire.teaching-periods.states.edit.directives.teaching-period-breaks', []) - -.directive('teachingPeriodBreaks', -> - replace: true - restrict: 'E' - templateUrl: 'admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.tpl.html' - controller: ($scope, $state, alertService, CreateBreakModal) -> - # Table sort details - $scope.sortOrder = "startDate" - $scope.reverse = true - - $scope.addBreak = (teachingPeriod) -> - CreateBreakModal.show teachingPeriod -) diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.tpl.html b/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.tpl.html deleted file mode 100644 index b73d6082c..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.tpl.html +++ /dev/null @@ -1,34 +0,0 @@ -
-
-
-
-

Breaks

- Breaks in {{teachingPeriod.name()}} -
-
-
-
No breaks have been registered with {{teachingPeriod.name()}} yet
- - - - - - - - - - - - - -
Start Date Duration
{{break.startDate | date: 'EEE d MMM'}}{{break.numberOfWeeks}} week
-
- -
-
diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.coffee b/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.coffee deleted file mode 100644 index d12e742a6..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.coffee +++ /dev/null @@ -1,63 +0,0 @@ -angular.module('doubtfire.teaching-periods.states.edit.directives.teaching-period-details-editor', []) - -# -# Editor for the basic details of a teaching period, such as the name, -# start and end dates etc. -# -.directive('teachingPeriodDetailsEditor', -> - replace: true - restrict: 'E' - templateUrl: 'admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.tpl.html' - controller: ($scope, $state, DoubtfireConstants, alertService, newTeachingPeriodService, TeachingPeriodUnitImportService) -> - $scope.calOptions = { - startOpened: false - endOpened: false - activeUntilOpened: false - } - - # Get the confugurable, external name of Doubtfire - $scope.externalName = DoubtfireConstants.ExternalName - - $scope.rollover = () -> - TeachingPeriodUnitImportService.openImportUnitsDialog($scope.teachingPeriod) - - # Datepicker opener - $scope.open = ($event, pickerData) -> - $event.preventDefault() - $event.stopPropagation() - - if pickerData == 'start' - $scope.calOptions.startOpened = ! $scope.calOptions.startOpened - $scope.calOptions.endOpened = false - $scope.calOptions.activeUntilOpened = false - else if pickerData == 'end' - $scope.calOptions.startOpened = false - $scope.calOptions.endOpened = ! $scope.calOptions.endOpened - $scope.calOptions.activeUntilOpened = false - else - $scope.calOptions.startOpened = false - $scope.calOptions.endOpened = false - $scope.calOptions.activeUntilOpened = ! $scope.calOptions.activeUntilOpened - - $scope.dateOptions = { - formatYear: 'yy', - startingDay: 1 - } - - $scope.saveTeachingPeriod = -> - if $scope.teachingPeriod.id == -1 - newTeachingPeriodService.create($scope.teachingPeriod).subscribe({ - next: (createdTeachingPeriod) -> - $scope.teachingperiods.loadedPeriods.push(createdTeachingPeriod) - alertService.add("success", "Teaching Period created.", 2000) - error: (response) -> - alertService.add("danger", response.data.error, 6000) - }) - else - newTeachingPeriodService.update( $scope.teachingPeriod ).subscribe({ - next: (updatedTeachingPeriod) -> - alertService.add("success", "Teaching Period updated.", 2000) - error: (response) -> - alertService.add("danger", "Failed to update teaching period. #{response}", 6000) - }) -) diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.tpl.html b/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.tpl.html deleted file mode 100644 index 952835d26..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.tpl.html +++ /dev/null @@ -1,76 +0,0 @@ -
-
-
-

Create Teaching Period

- Create a new teaching period with all overview teaching period details here. -
-
-

Update Teaching Period

- Update overview details of the teaching period below. -
-
-
-
- -
- -
-
- -
- -
- -
-
- -
- -
-
- - - - -
-
-
- -
- -
-
- - - - -
-
-
- -
- -
-
- - - - -
-
-
-
- -
-
-
diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.coffee b/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.coffee deleted file mode 100644 index f7d2e47ec..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.coffee +++ /dev/null @@ -1,23 +0,0 @@ -angular.module('doubtfire.teaching-periods.states.edit.directives.teaching-period-units', []) - -.directive('teachingPeriodUnits', -> - replace: true - restrict: 'E' - templateUrl: 'admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.tpl.html' - controller: ($scope, $state, alertService, RolloverTeachingPeriodModal) -> - # Table sort details - $scope.sortOrder = "start_date" - $scope.reverse = true - - # Pagination details - $scope.currentPage = 1 - $scope.maxSize = 5 - $scope.pageSize = 15 - - # Rollover - $scope.rolloverTeachingPeriodModal = (teachingPeriod) -> - # If we're given a user, show that user, else create a new one - teachingPeriodToRollover = if teachingPeriod? then teachingPeriod else { } - RolloverTeachingPeriodModal.show teachingPeriodToRollover - -) \ No newline at end of file diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.tpl.html b/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.tpl.html deleted file mode 100644 index a48240c7a..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.tpl.html +++ /dev/null @@ -1,49 +0,0 @@ -
-
-
-
-

Units

- Units registered with {{teachingPeriod.name()}} -
- -
-
-
No units have been registered with {{teachingPeriod.name()}} yet
- - - - - - - - - - - - - - - - - -
Unit Code Name Teaching Period Active
- - {{unit.name}}{{teachingPeriod.name()}} - - -
-
- -
-
diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.coffee b/src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.coffee deleted file mode 100644 index 08c977994..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.coffee +++ /dev/null @@ -1,62 +0,0 @@ -angular.module('doubtfire.admin.states.teachingperiods.edit', ['doubtfire.teaching-periods.states.edit.directives']) - -.config(($stateProvider) -> - teachingPeriodsAdminViewStateData = - url: '/admin/teaching-periods/:teachingPeriodId' - views: - main: - controller: 'EditTeachingPeriodStateCtrl' - templateUrl: 'admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.tpl.html' - data: - pageTitle: "_Teaching-Period Administration_" - roleWhitelist: ['Admin'] - $stateProvider.state "admin/teachingperiods/edit", teachingPeriodsAdminViewStateData -) - -.controller("EditTeachingPeriodStateCtrl", ($scope, $state, newTeachingPeriodService, alertService, analyticsService, GlobalStateService) -> - analyticsService.event 'Edit Teaching Period View', "Started Edit Teaching Period View" - - GlobalStateService.setView("OTHER") - - GlobalStateService.onLoad () -> - tpId = parseInt($state.params.teachingPeriodId, 10) - newTeachingPeriodService.get(tpId).subscribe({ - next: (tp) -> $scope.teachingPeriod = tp - error: (response) -> - $scope.teachingPeriod = { id: -1 } - $scope.newTeachingPeriod = true - }) - # || { id: -1 } - # $scope.newTeachingPeriod = $scope.teachingPeriod.id == -1 - - # - # Active tab group - # - $scope.tabs = - editorTab: - title: "Teaching Period Details Editor" - seq: 0 - breaksTab: - title: "Teaching Period Breaks" - seq: 1 - unitsTab: - title: "Rollover Teaching Period" - seq: 2 - - # Set the active tab - $scope.setActiveTab = (tab) -> - # Do nothing if we're switching to the same tab - return if tab is $scope.activeTab - - # Actions to perform when changing tab - $scope.activeTab?.active = false # Deactivate original tab - - # run de-select actions... - $scope.activeTab.deselect?() - - $scope.activeTab = tab # Switch tabs - $scope.activeTab.active = true # Make it active - - $scope.activeTab = $scope.tabs.editorTab - -) diff --git a/src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.tpl.html b/src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.tpl.html deleted file mode 100644 index 476320578..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.tpl.html +++ /dev/null @@ -1,10 +0,0 @@ -
- - - {{tab.title}} - - - - - -
diff --git a/src/app/admin/states/teaching-periods/teaching-period-list/new-teaching-period-dialog.component.html b/src/app/admin/states/teaching-periods/teaching-period-list/new-teaching-period-dialog.component.html new file mode 100644 index 000000000..b7c9cf66d --- /dev/null +++ b/src/app/admin/states/teaching-periods/teaching-period-list/new-teaching-period-dialog.component.html @@ -0,0 +1,122 @@ +
+ + + + + + + + +
+ + +
+
+ + +
+ + Teaching Period Name + + + + Teaching Period Year + + + + + Start and end date + + + + + + + + + + + Active Until + + DD/MM/YYYY + + + +
+
+ + +

Teaching Breaks for {{ newOrSelectedTeachingPeriod.name }}

+ + @for (break of newOrSelectedTeachingPeriod.breaksCache.values | async; track break) { + + + + {{ break.startDate | date }} + {{ break.numberOfWeeks }} week(s) + + + + + + } + + +
+ + + Break Start Date + + MM/DD/YYYY + + + + + + + Number of weeks + + + + + +
+
+ diff --git a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.coffee b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.coffee deleted file mode 100644 index 3b5b231f7..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.coffee +++ /dev/null @@ -1,43 +0,0 @@ -angular.module('doubtfire.admin.states.teachingperiods', ['doubtfire.admin.states.teachingperiods.edit']) - -# -# Users with an Administrator system role can create new Teaching Periods. -# -.config(($stateProvider) -> - stateData = { - url: "/admin/teaching-periods" - views: - main: - controller: "AdministerTeachingPeriodsState" - templateUrl: "admin/states/teaching-periods/teaching-period-list/teaching-period-list.tpl.html" - data: - pageTitle: "_Teaching-Period Administration_" - roleWhitelist: ['Admin'] - } - $stateProvider.state "admin/teachingperiods", stateData -) - -.controller("AdministerTeachingPeriodsState", ($scope, $state, $modal, DoubtfireConstants, alertService, newTeachingPeriodService, TeachingPeriodSettingsModal, analyticsService, GlobalStateService) -> - analyticsService.event 'Edit Teaching Periods View', "Started Edit Teaching Periods View" - - GlobalStateService.setView("OTHER") - - newTeachingPeriodService.cache.values.subscribe((tps) -> $scope.teachingPeriods = tps) - - # Table sort details - $scope.sortOrder = "startDate" - $scope.reverse = true - - # Pagination details - $scope.currentPage = 1 - $scope.maxSize = 5 - $scope.pageSize = 15 - - # Get the confugurable, external name of Doubtfire - $scope.externalName = DoubtfireConstants.ExternalName - - # User settings/create modal - $scope.showTeachingPeriodModal = () -> - # If we're given a user, show that user, else create a new one - TeachingPeriodSettingsModal.show() -) diff --git a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.html b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.html index 35ee97019..5abff6ce8 100644 --- a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.html +++ b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.html @@ -1,54 +1,47 @@ - - +
+
+

Teaching periods

+ + +
+
+ + + + - + + + + - - - - - - - - - - - - - - + + + + - - - - - + + + + - - - - - + + + + - - + - - -
Active + + Name{{ element.name }}Active - - Name{{ element.name() }}Start Date{{ element.startDate | date }}Start Date{{ element.startDate | date }}End date{{ element.endDate | date }}End date{{ element.endDate | date }}Active until{{ element.activeUntil | date }}Active until{{ element.activeUntil | date }} +
+ +
+
+ + + + + diff --git a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.scss b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.scss index 279840bf6..b690fad75 100644 --- a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.scss +++ b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.scss @@ -1,14 +1,3 @@ -.teaching-periods-table { -// width: 80%; - background-color: white; -} - -.mat-mdc-row .mat-mdc-cell { - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - cursor: pointer; -} - -.mat-mdc-row:hover .mat-mdc-cell { - background-color: rgb(245, 245, 245); +.teaching-periods-container { + padding: 1rem; } diff --git a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts index 705f04c5d..87be5fbef 100644 --- a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts +++ b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts @@ -1,7 +1,12 @@ -import { Component } from '@angular/core'; +import { Component, Inject, OnInit, ViewChild } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { Observable, map } from 'rxjs'; +import { TeachingPeriodBreak } from 'src/app/api/models/teaching-period'; import { TeachingPeriod } from 'src/app/api/models/teaching-period'; +import { TeachingPeriodBreakService } from 'src/app/api/services/teaching-period-break.service'; import { TeachingPeriodService } from 'src/app/api/services/teaching-period.service'; @Component({ @@ -9,23 +14,90 @@ import { TeachingPeriodService } from 'src/app/api/services/teaching-period.serv templateUrl: './teaching-period-list.component.html', styleUrls: ['./teaching-period-list.component.scss'], }) -export class TeachingPeriodListComponent { - teachingPeriods$: Observable; - private dataSource = new MatTableDataSource(); +export class TeachingPeriodListComponent implements OnInit { + @ViewChild(MatSort) sort = new MatSort(); + @ViewChild(MatPaginator) paginator: MatPaginator; + + public dataSource = new MatTableDataSource(); + displayedColumns: string[] = ['active', 'name', 'startDate', 'endDate', 'activeUntil']; - TeachingPeriodsAsMatTableDataSource$: Observable> = this.teachingPeriodsService - .query() - .pipe( - map((teachingPeriods) => { - const dataSource = this.dataSource; - dataSource.data = teachingPeriods; - return dataSource; - }) - ); - - constructor(private teachingPeriodsService: TeachingPeriodService) {} - - selectTeachingPeriod(teachingPeriod: TeachingPeriod) { - console.log(teachingPeriod); + constructor(private teachingPeriodsService: TeachingPeriodService, public dialog: MatDialog) {} + + ngOnInit(): void { + // update the Teaching Periods + this.teachingPeriodsService.query().subscribe((_) => {}); + + // Bind to the Teaching Periods + this.teachingPeriodsService.cache.values.subscribe((teachingPeriods) => { + this.dataSource.data = teachingPeriods; + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + }); + } + + addTeachingPeriod() { + this.dialog.open(NewTeachingPeriodDialogComponent, { + data: {}, + }); + } + + selectTeachingPeriod(selectedTeachingPeriod: TeachingPeriod) { + this.teachingPeriodsService.get(selectedTeachingPeriod.id).subscribe((teachingPeriod) => { + this.dialog.open(NewTeachingPeriodDialogComponent, { data: { teachingPeriod: teachingPeriod } }); + }); + } +} + +@Component({ + selector: 'f-new-teaching-period-dialog', + templateUrl: 'new-teaching-period-dialog.component.html', +}) +export class NewTeachingPeriodDialogComponent { + constructor( + @Inject(MAT_DIALOG_DATA) public data, + private dialogRef: MatDialogRef, + public teachingPeriodService: TeachingPeriodService, + public teachingPeriodBreakService: TeachingPeriodBreakService, + private _snackBar: MatSnackBar + ) {} + public newOrSelectedTeachingPeriod = this.data.teachingPeriod || new TeachingPeriod(); + + public tempBreak = new TeachingPeriodBreak(); + + addTeachingBreak() { + this.newOrSelectedTeachingPeriod.addBreak(this.tempBreak.startDate, this.tempBreak.numberOfWeeks).subscribe({ + next: (teachingPeriodBreak) => { + console.log(teachingPeriodBreak); + }, + }); + } + + deleteBreak(teachingPeriod: TeachingPeriod, teachingBreak: TeachingPeriodBreak): void { + teachingPeriod.removeBreak(teachingBreak.id).subscribe({ + next: (teachingPeriodBreak) => { + console.log(teachingPeriodBreak); + }, + error: (response) => {}, + }); + } + + submitTeachingPeriod() { + // todo: use alert service + this.teachingPeriodService.store(this.newOrSelectedTeachingPeriod).subscribe({ + next: (teachingPeriod) => { + this._snackBar.open(`${teachingPeriod.name} saved`, 'dismiss', { + duration: 2000, + horizontalPosition: 'end', + verticalPosition: 'top', + }); + }, + error: (response) => { + this._snackBar.open(response, 'dismiss', { + duration: 5000, + horizontalPosition: 'end', + verticalPosition: 'top', + }); + }, + }); } } diff --git a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.tpl.html b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.tpl.html deleted file mode 100644 index eb70aadbd..000000000 --- a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.tpl.html +++ /dev/null @@ -1,43 +0,0 @@ -
-
-
-
-

Teaching Periods

- Modify Teaching Periods registered with {{externalName.value}} -
- -
-
-
No teaching periods have been registered with {{externalName.value}} yet
- - - - - - - - - - - - - - - - - -
Name Start Date End Date Active Until
{{teachingperiod.name()}}{{teachingperiod.startDate | date: 'EEE d MMM'}}{{teachingperiod.endDate | date: 'EEE d MMM'}}{{teachingperiod.activeUntil | date: 'EEE d MMM'}}
-
- -
-
- diff --git a/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.html b/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.html index 75b3d9ec3..290fcbb3b 100644 --- a/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.html +++ b/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.html @@ -1,49 +1,63 @@ -

Import Units Into {{ data.teachingPeriod.name() }}

+

Import Units Into {{ data.teachingPeriod.name }}

- + - + - + - + - + @@ -64,7 +78,7 @@

Import Units Into {{ data.teachingPeriod.name() }}

Unit Code(s) - + diff --git a/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.ts b/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.ts index 52ec584b6..402c0799f 100644 --- a/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.ts +++ b/src/app/admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog.ts @@ -72,7 +72,7 @@ export class TeachingPeriodUnitImportDialogComponent implements OnInit { private userService: UserService, private unitService: UnitService, private globalStateService: GlobalStateService, - @Inject(MAT_DIALOG_DATA) public data: TeachingPeriodUnitImportData + @Inject(MAT_DIALOG_DATA) public data: TeachingPeriodUnitImportData, ) {} ngOnInit(): void { @@ -99,7 +99,7 @@ export class TeachingPeriodUnitImportDialogComponent implements OnInit { private _filter(name: string): User[] { const filterValue = name.toLowerCase(); - return this.teachingStaff.filter(option => option.name.toLowerCase().includes(filterValue)); + return this.teachingStaff.filter((option) => option.name.toLowerCase().includes(filterValue)); } private loadAllUnits() { @@ -184,11 +184,11 @@ export class TeachingPeriodUnitImportDialogComponent implements OnInit { convenorFormControl: formControl, filteredStaff: formControl.valueChanges.pipe( startWith(''), - map(value => { + map((value) => { const name = typeof value === 'string' ? value : value?.name; return name ? this._filter(name as string) : this.teachingStaff; - }) - ) + }), + ), }); } @@ -230,24 +230,26 @@ export class TeachingPeriodUnitImportDialogComponent implements OnInit { } private createNewUnit(unitToImport: UnitImportData, idx: number) { - this.unitService.create({ - unit: { - code: unitToImport.unitCode, - name: unitToImport.unitName, - main_convenor_user_id: unitToImport.convenor?.id, - teaching_period_id: this.data.teachingPeriod.id, - } - }).subscribe({ - next: (newUnit: Unit) => { - unitToImport.done = true; - this.importUnit(idx + 1); - }, - error: (failure) => { - unitToImport.done = false; - console.log(failure); - this.importUnit(idx + 1); - } - }); + this.unitService + .create({ + unit: { + code: unitToImport.unitCode, + name: unitToImport.unitName, + main_convenor_user_id: unitToImport.convenor?.id, + teaching_period_id: this.data.teachingPeriod.id, + }, + }) + .subscribe({ + next: (newUnit: Unit) => { + unitToImport.done = true; + this.importUnit(idx + 1); + }, + error: (failure) => { + unitToImport.done = false; + console.log(failure); + this.importUnit(idx + 1); + }, + }); } private importUnit(idx: number) { @@ -257,7 +259,7 @@ export class TeachingPeriodUnitImportDialogComponent implements OnInit { const code = unitToImport.sourceUnit ? unitToImport.sourceUnit.code : unitToImport.unitCode; - if (unitToImport.done !== undefined || this.teachigPeriod.hasUnitWithCode(code)){ + if (unitToImport.done !== undefined || this.teachigPeriod.hasUnitWithCode(code)) { // Skip units already done this.importUnit(idx + 1); } else { diff --git a/src/app/admin/states/units/units.coffee b/src/app/admin/states/units/units.coffee index a7e4d51ab..7b721e350 100644 --- a/src/app/admin/states/units/units.coffee +++ b/src/app/admin/states/units/units.coffee @@ -18,7 +18,7 @@ angular.module('doubtfire.admin.states.units', []) roleWhitelist: ['Admin', 'Convenor'] $stateProvider.state "admin/units", unitsAdminViewStateData ) -.controller("AdministerUnitsState", ($scope, $state, $modal, DoubtfireConstants, CreateUnitModal, alertService, GlobalStateService, newUnitService) -> +.controller("AdministerUnitsState", ($scope, $state, $modal, DoubtfireConstants, CreateUnitModal, alertService, GlobalStateService, newUnitService, CreateNewUnitModal) -> GlobalStateService.setView("OTHER") $scope.dataLoaded = false @@ -64,4 +64,7 @@ angular.module('doubtfire.admin.states.units', []) $scope.createUnit = -> CreateUnitModal.show $scope.units + + $scope.openCreateModal = -> + CreateNewUnitModal.show $scope.units ) diff --git a/src/app/admin/states/units/units.tpl.html b/src/app/admin/states/units/units.tpl.html index fe0260aea..7b0815b22 100644 --- a/src/app/admin/states/units/units.tpl.html +++ b/src/app/admin/states/units/units.tpl.html @@ -1,121 +1,2 @@ -
-
- -

Loading unit details...

-
-
-
-
-

Units

- Modify units registered with {{externalName.value}} -
- - -

- Showing {{filteredUnits.length}} of {{users.length}} users. -

-

No students found.

- -
-
-
- No units have been registered with {{externalName.value}} yet -
-
-
Unit Code Unit Code - + Source Unit Source Unit - + Unit Name Unit Name - {{ unitToImport.sourceUnit.name }} - + @if (unitToImport.sourceUnit) { + {{ unitToImport.sourceUnit.name }} + } @if (!unitToImport.sourceUnit) { + Unit Name - + + } Main Convenor Main Convenor - + - - {{staff.name}} - + @for (staff of unitToImport.filteredStaff | async; track staff) { + {{staff.name}} + } Status Status {{ statusForUnit(unitToImport) }}
- - - - - - - - - - - - - - - - - - - - - - - - -
- Unit Code - - Name - - Unit Role - - Teaching Period - - Start Date - - End Date - - Active -
- - {{unit.name}}{{(unit.myRole | ucfirst) || "N/A"}}{{unit.teachingPeriod.name()}}Custom{{unit.startDate | date : 'EEE d MMM y'}}{{unit.endDate | date : 'EEE d MMM y'}} - - - - - -
-
- - - - + + diff --git a/src/app/admin/states/users/users.coffee b/src/app/admin/states/users/users.coffee deleted file mode 100644 index 31baa4ba2..000000000 --- a/src/app/admin/states/users/users.coffee +++ /dev/null @@ -1,59 +0,0 @@ -angular.module('doubtfire.admin.states.users', []) - -# -# Administration panel for all doubtfire users -# -.config(($stateProvider) -> - usersAdminViewStateData = - url: "/admin/users" - views: - main: - controller: "AdministerUsersCtrl" - templateUrl: "admin/states/users/users.tpl.html" - data: - pageTitle: "_Users Administration_" - roleWhitelist: ['Admin', 'Convenor'] - $stateProvider.state "admin/users", usersAdminViewStateData -) - -.controller("AdministerUsersCtrl", ($scope, $modal, DoubtfireConstants, alertService, CsvResultModal, fileDownloaderService, GlobalStateService, newUserService, EditProfileService) -> - # We are not showing a particlar unit or project - GlobalStateService.setView("OTHER") - - $scope.fileData = - onBatchUserSuccess: (response) -> - CsvResultModal.show "User CSV import results", response - $scope.users = newUserService.query(undefined) - batchUserUrl: newUserService.csvURL - batchUserFiles: { file: { name: 'CSV File', type: 'csv' } } - - newUserService.query().subscribe( - { - next: (response) -> - $scope.users = response - error: (response) -> - if response.error.error? - alertService.add("danger", "Error: " + response.error.error, 6000) - } - ) - - # Table sort details - $scope.sortOrder = "id" - - # Pagination details - $scope.currentPage = 1 - $scope.maxSize = 5 - $scope.pageSize = 15 - - # Get the confugurable, external name of Doubtfire - $scope.externalName = DoubtfireConstants.ExternalName - - # User settings/create modal - $scope.showUserModal = (user) -> - # If we're given a user, show that user, else create a new one - userToShow = if user? then user else newUserService.createInstanceFrom { } - EditProfileService.openDialog(userToShow) - - $scope.downloadUsersCSV = () -> - fileDownloaderService.downloadFile(newUserService.csvURL, "Users.csv") -) diff --git a/src/app/admin/states/users/users.tpl.html b/src/app/admin/states/users/users.tpl.html deleted file mode 100644 index 88b86d34a..000000000 --- a/src/app/admin/states/users/users.tpl.html +++ /dev/null @@ -1,114 +0,0 @@ -
- -

Loading...

-
- -
-

- {{externalName.value}} Users -

Users Administration View

-

-
-
-
-
-

{{externalName.value}} Users

- Modify users registered with {{externalName.value}} -
- -
-
-
- No users have been registered with {{externalName.value}} yet -
- -
- - - - - - - - - - - - - - - - - - - - - - - -
AvatarUser IDFirst NameLast NameUsernameEmailSystem Role
- - {{user.id}}{{user.firstName}}{{user.lastName}}{{user.username}}{{user.email}}{{user.systemRole}}
-
-
- -
-
-
-
-
-

Batch Import Users

- Import users using a CSV containing: email, firstName, lastName, username, nickname, role -
-
- -
-
-

Batch Export Users

- Download a CSV of all users registered with {{externalName.value}}. -
-
- -
-
-
-
diff --git a/src/app/admin/tii-action-log/tii-action-log.component.html b/src/app/admin/tii-action-log/tii-action-log.component.html new file mode 100644 index 000000000..e61877520 --- /dev/null +++ b/src/app/admin/tii-action-log/tii-action-log.component.html @@ -0,0 +1,85 @@ +
+
+

Turnitin Actions

+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Action Type + {{ action.description }} + Last Run + {{ action.lastRun ? (action.lastRun | date: 'd LLL y') : '' }} + Retries + {{ action.retries }} + Retry? + {{ action.retry }} + Error Code + {{ action.errorCode }} + Complete? + {{ action.complete }} + Error Message + {{ action.errorMessage }} + + @if (!(action.complete || action.retry)) { + + } +
+
diff --git a/src/app/admin/tii-action-log/tii-action-log.component.scss b/src/app/admin/tii-action-log/tii-action-log.component.scss new file mode 100644 index 000000000..a7b217848 --- /dev/null +++ b/src/app/admin/tii-action-log/tii-action-log.component.scss @@ -0,0 +1,3 @@ +.action-log-container { + padding: 1rem; +} diff --git a/src/app/admin/tii-action-log/tii-action-log.component.spec.ts b/src/app/admin/tii-action-log/tii-action-log.component.spec.ts new file mode 100644 index 000000000..a3caf7906 --- /dev/null +++ b/src/app/admin/tii-action-log/tii-action-log.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TiiActionLogComponent } from './tii-action-log.component'; + +describe('TiiActionLogComponent', () => { + let component: TiiActionLogComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TiiActionLogComponent] + }); + fixture = TestBed.createComponent(TiiActionLogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/admin/tii-action-log/tii-action-log.component.ts b/src/app/admin/tii-action-log/tii-action-log.component.ts new file mode 100644 index 000000000..ba2f496d0 --- /dev/null +++ b/src/app/admin/tii-action-log/tii-action-log.component.ts @@ -0,0 +1,86 @@ +import { AfterViewInit, Component, ViewChild } from '@angular/core'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort, Sort } from '@angular/material/sort'; +import { MatTable, MatTableDataSource } from '@angular/material/table'; +import { TiiAction } from 'src/app/api/models/doubtfire-model'; +import { TiiActionService } from 'src/app/api/services/tii-action.service'; +import { AlertService } from 'src/app/common/services/alert.service'; + +@Component({ + selector: 'f-tii-action-log', + templateUrl: './tii-action-log.component.html', + styleUrls: ['./tii-action-log.component.scss'] +}) +export class TiiActionLogComponent implements AfterViewInit { + @ViewChild(MatTable, { static: false }) table: MatTable; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator; + + public tiiActionsSource: MatTableDataSource; + public columns: string[] = ['type', 'lastRun', 'retries', 'retry', 'errorMessage', 'tiiActionTools']; //, 'complete', 'retries', 'lastRun', 'errorCode', 'log', 'tiiActionAction']; + public filter: string; + + constructor(private tiiActionService: TiiActionService, private alertService: AlertService) { + + } + + ngAfterViewInit(): void { + this.tiiActionService.query().subscribe((actions) => { + console.log(actions); + this.tiiActionsSource = new MatTableDataSource(actions); + this.tiiActionsSource.paginator = this.paginator; + this.tiiActionsSource.sort = this.sort; + this.tiiActionsSource.filterPredicate = (data: any, filter: string) => data.matches(filter); + + }); + } + + public sortData(sort: Sort) { + const data = this.tiiActionsSource.data; + + if (!sort.active || sort.direction === '') { + this.tiiActionsSource.data = data; + return; + } + + this.tiiActionsSource.data = data.sort((a, b) => { + const isAsc = sort.direction === 'asc'; + switch (sort.active) { + case 'type': + return this.compare(a.type, b.type, isAsc); + default: + return 0; + } + }); + } + + public compare(a: number | string, b: number | string, isAsc: boolean): number { + return (a < b ? -1 : 1) * (isAsc ? 1 : -1); + } + + applyFilter(filterValue: string) { + this.tiiActionsSource.filter = filterValue.trim().toLowerCase(); + + if (this.tiiActionsSource.paginator) { + this.tiiActionsSource.paginator.firstPage(); + } + } + + public retryAction(action: TiiAction) { + this.tiiActionService.put(action, { + body: { + action: 'retry' + } + }).subscribe({ + next: (updatedAction) => { + action.retry = true; + this.alertService.success('Action has been queued for retry'); + }, + error: (error) => { + this.alertService.error('Failed to queue action for retry'); + } + }); + } + + +} diff --git a/src/app/ajs-upgraded-providers.ts b/src/app/ajs-upgraded-providers.ts index fafed3905..aa1161155 100644 --- a/src/app/ajs-upgraded-providers.ts +++ b/src/app/ajs-upgraded-providers.ts @@ -25,109 +25,108 @@ export const plagiarismReportModal = new InjectionToken('PlagiarismReportModal') // It will get the service from AngularJS via the factory export const visualisationsProvider = { provide: visualisations, - useFactory: (i: any) => i.get('Visualisation'), + useFactory: (i) => i.get('Visualisation'), deps: ['$injector'], }; - export const calendarModalProvider = { provide: calendarModal, - useFactory: (i: any) => i.get('CalendarModal'), + useFactory: (i) => i.get('CalendarModal'), deps: ['$injector'], }; export const rootScopeProvider = { provide: rootScope, - useFactory: (i: any) => i.get('$rootScope'), + useFactory: (i) => i.get('$rootScope'), deps: ['$injector'], }; export const aboutDoubtfireModalProvider = { provide: aboutDoubtfireModal, - useFactory: (i: any) => i.get('AboutDoubtfireModal'), + useFactory: (i) => i.get('AboutDoubtfireModal'), deps: ['$injector'], }; export const plagiarismReportModalProvider = { provide: plagiarismReportModal, - useFactory: (i: any) => i.get('PlagiarismReportModal'), + useFactory: (i) => i.get('PlagiarismReportModal'), deps: ['$injector'], }; export const commentsModalProvider = { provide: commentsModal, - useFactory: (i: any) => i.get('CommentsModal'), + useFactory: (i) => i.get('CommentsModal'), deps: ['$injector'], }; export const uploadSubmissionModalProvider = { provide: uploadSubmissionModal, - useFactory: (i: any) => i.get('UploadSubmissionModal'), + useFactory: (i) => i.get('UploadSubmissionModal'), deps: ['$injector'], }; export const gradeTaskModalProvider = { provide: gradeTaskModal, - useFactory: (i: any) => i.get('GradeTaskModal'), + useFactory: (i) => i.get('GradeTaskModal'), deps: ['$injector'], }; export const gradeServiceProvider = { provide: gradeService, - useFactory: (i: any) => i.get('gradeService'), + useFactory: (i) => i.get('gradeService'), deps: ['$injector'], }; export const analyticsServiceProvider = { provide: analyticsService, - useFactory: (i: any) => i.get('analyticsService'), + useFactory: (i) => i.get('analyticsService'), deps: ['$injector'], }; export const dateServiceProvider = { provide: dateService, - useFactory: (i: any) => i.get('dateService'), + useFactory: (i) => i.get('dateService'), deps: ['$injector'], }; export const alertServiceProvider = { provide: alertService, - useFactory: (i: any) => i.get('alertService'), + useFactory: (i) => i.get('alertService'), deps: ['$injector'], }; export const AudioRecorderProvider = { provide: audioRecorder, - useFactory: (i: any) => i.get('audioRecorder'), + useFactory: (i) => i.get('audioRecorder'), deps: ['$injector'], }; export const AudioRecorderServiceProvider = { provide: audioRecorderService, - useFactory: (i: any) => i.get('recorderService'), + useFactory: (i) => i.get('recorderService'), deps: ['$injector'], }; export const CsvUploadModalProvider = { provide: csvUploadModalService, - useFactory: (i: any) => i.get('CsvUploadModal'), + useFactory: (i) => i.get('CsvUploadModal'), deps: ['$injector'], }; export const CsvResultModalProvider = { provide: csvResultModalService, - useFactory: (i: any) => i.get('CsvResultModal'), + useFactory: (i) => i.get('CsvResultModal'), deps: ['$injector'], }; export const ConfirmationModalProvider = { provide: confirmationModal, - useFactory: (i: any) => i.get('ConfirmationModal'), + useFactory: (i) => i.get('ConfirmationModal'), deps: ['$injector'], }; export const UnitStudentEnrolmentModalProvider = { provide: unitStudentEnrolmentModal, - useFactory: (i: any) => i.get('UnitStudentEnrolmentModal'), + useFactory: (i) => i.get('UnitStudentEnrolmentModal'), deps: ['$injector'], }; diff --git a/src/app/api/api.coffee b/src/app/api/api.coffee deleted file mode 100644 index c8844a8ae..000000000 --- a/src/app/api/api.coffee +++ /dev/null @@ -1,4 +0,0 @@ -angular.module("doubtfire.api", [ - "doubtfire.api.resource-plus" - "doubtfire.api.models" -]) diff --git a/src/app/api/models/doubtfire-model.ts b/src/app/api/models/doubtfire-model.ts index 51d82a5a8..3cb491108 100644 --- a/src/app/api/models/doubtfire-model.ts +++ b/src/app/api/models/doubtfire-model.ts @@ -30,6 +30,8 @@ export * from './grade'; export * from './task-status'; export * from './task-comment/discussion-comment'; export * from '../services/task-outcome-alignment.service'; +export * from './task-similarity'; +export * from './tii-action'; // Users -- are students or staff export * from './user/user'; @@ -53,4 +55,4 @@ export * from '../services/teaching-period.service'; export * from '../services/teaching-period-break.service'; export * from '../services/learning-outcome.service'; export * from '../services/group-set.service'; - +export * from '../services/task-similarity.service'; diff --git a/src/app/api/models/models.coffee b/src/app/api/models/models.coffee deleted file mode 100644 index 82b302894..000000000 --- a/src/app/api/models/models.coffee +++ /dev/null @@ -1,3 +0,0 @@ -angular.module("doubtfire.api.models", [ - "doubtfire.api.models.task-similarity" -]) diff --git a/src/app/api/models/overseer/overseer-image.ts b/src/app/api/models/overseer/overseer-image.ts index 65b9f58a4..277c3df42 100644 --- a/src/app/api/models/overseer/overseer-image.ts +++ b/src/app/api/models/overseer/overseer-image.ts @@ -11,11 +11,11 @@ export class OverseerImage extends Entity { public override toJson(mappingData: EntityMapping, ignoreKeys?: string[]): object { return { - overseer_image: super.toJson(mappingData, ignoreKeys) + overseer_image: super.toJson(mappingData, ignoreKeys), }; } public get description(): string { - return `${this.name} (${this.tag})` + return `${this.name} (${this.tag})`; } } diff --git a/src/app/api/models/project.ts b/src/app/api/models/project.ts index a3cb1f1b9..bde396b74 100644 --- a/src/app/api/models/project.ts +++ b/src/app/api/models/project.ts @@ -1,7 +1,7 @@ import { HttpClient } from '@angular/common/http'; import { Entity, EntityCache, RequestOptions } from 'ngx-entity-service'; import { Observable, tap } from 'rxjs'; -import { alertService, visualisations } from 'src/app/ajs-upgraded-providers'; +import { visualisations } from 'src/app/ajs-upgraded-providers'; import { AppInjector } from 'src/app/app-injector'; import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; import { MappingFunctions } from '../services/mapping-fn'; @@ -22,6 +22,7 @@ import { User, } from './doubtfire-model'; import { TaskOutcomeAlignment } from './task-outcome-alignment'; +import { AlertService } from 'src/app/common/services/alert.service'; export class Project extends Entity { public id: number; @@ -57,7 +58,7 @@ export class Project extends Entity { public grade: number; public gradeRationale: string; - public maxPctCopy: number; + public similarityFlag: boolean = false; public constructor(unit?: Unit) { super(); @@ -82,7 +83,7 @@ export class Project extends Entity { this.tutorials.filter( (enrol) => enrol.abbreviation.toLowerCase().indexOf(matchText) >= 0 || - enrol.tutorName.toLowerCase().indexOf(matchText) >= 0 + enrol.tutorName.toLowerCase().indexOf(matchText) >= 0, ).length > 0 ); } @@ -226,7 +227,7 @@ export class Project extends Entity { // Assigns a grade to a student public assignGrade(score: number, rationale: string): void { - const alerts: any = AppInjector.get(alertService); + const alerts = AppInjector.get(AlertService); const projectService: ProjectService = AppInjector.get(ProjectService); const oldGrade: number = this.grade; this.grade = score; @@ -241,12 +242,13 @@ export class Project extends Entity { }, }) .subscribe({ + // eslint-disable-next-line @typescript-eslint/no-unused-vars next: (project) => { - alerts.add('success', 'Grade updated.', 2000); + alerts.success('Grade updated.'); }, error: (message) => { this.grade = oldGrade; - alerts.add('danger', `Grade was not updated: ${message}`, 8000); + alerts.error(`Grade was not updated: ${message}`); }, }); } @@ -286,7 +288,7 @@ export class Project extends Entity { .pipe( tap(() => { this.portfolioFiles = this.portfolioFiles.filter((value) => value != file); - }) + }), ); } @@ -344,19 +346,15 @@ export class Project extends Entity { } public updateUnitEnrolment(): void { - const expected = (this.enrolled = !this.enrolled); - const alerts: any = AppInjector.get(alertService); + const alerts = AppInjector.get(AlertService); const projectService: ProjectService = AppInjector.get(ProjectService); projectService.update(this).subscribe({ + // eslint-disable-next-line @typescript-eslint/no-unused-vars next: (project) => { - if (expected == project.enrolled) { - alerts.add('success', 'Enrolment changed.', 2000); - } else { - alerts.add('danger', 'Enrolment change failed.', 5000); - } + alerts.success('Enrolment changed.', 2000); }, error: (message) => { - alerts.add('danger', message, 5000); + alerts.error(message); }, }); } @@ -391,7 +389,7 @@ export class Project extends Entity { // dates = unit.start_date.to_date.step(unit.end_date.to_date + 1.week, step=7).to_a const endDateValue = this.unit.endDate.getTime() + MappingFunctions.weeksMs(3); const dates = MappingFunctions.step(this.unit.startDate.getTime(), endDateValue, MappingFunctions.weeksMs(1)).map( - (val) => new Date(val) + (val) => new Date(val), ); // Get the target task from the unit's task definitions @@ -409,7 +407,7 @@ export class Project extends Entity { const tasks = this.tasks; const readyOrCompleteTasks = tasks.filter((task) => - ['ready_for_feedback', 'discuss', 'demonstrate', 'complete'].includes(task.status) + ['ready_for_feedback', 'discuss', 'demonstrate', 'complete'].includes(task.status), ); let lastTargetDate: Date; @@ -417,7 +415,7 @@ export class Project extends Entity { // Get the tasks currently marked as done (or ready to mark) const doneTasks = tasks.filter( - (t) => !['working_on_it', 'not_started', 'fix_and_resubmit', 'redo', 'need_help'].includes(t.status) + (t) => !['working_on_it', 'not_started', 'fix_and_resubmit', 'redo', 'need_help'].includes(t.status), ); // last done task date) diff --git a/src/app/api/models/task-definition.ts b/src/app/api/models/task-definition.ts index f51662fce..b4f844402 100644 --- a/src/app/api/models/task-definition.ts +++ b/src/app/api/models/task-definition.ts @@ -3,10 +3,14 @@ import { Entity, EntityMapping } from 'ngx-entity-service'; import { Observable, tap } from 'rxjs'; import { AppInjector } from 'src/app/app-injector'; import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; -import { Grade, GroupSet, TutorialStream, Unit, User } from './doubtfire-model'; +import { Grade, GroupSet, TutorialStream, Unit } from './doubtfire-model'; +import { TaskDefinitionService } from '../services/task-definition.service'; -export class TaskDefinition extends Entity { +export type UploadRequirement = { key: string; name: string; type: string; tiiCheck?: boolean; tiiPct?: number }; + +export type SimilarityCheck = { key: string; type: string; pattern: string }; +export class TaskDefinition extends Entity { id: number; seq: number; abbreviation: string; @@ -17,9 +21,9 @@ export class TaskDefinition extends Entity { targetDate: Date; dueDate: Date; startDate: Date; - uploadRequirements: {key: string, name: string, type: string}[]; - tutorialStream: TutorialStream; - plagiarismChecks: {key: string, type: string, pattern: string}[]; + uploadRequirements: UploadRequirement[]; + tutorialStream: TutorialStream = null; + plagiarismChecks: SimilarityCheck[] = []; plagiarismReportUrl: string; plagiarismWarnPct: number; restrictStatusUpdates: boolean; @@ -32,6 +36,7 @@ export class TaskDefinition extends Entity { maxQualityPts: number; overseerImageId: number; assessmentEnabled: boolean; + mossLanguage: string = 'moss c'; readonly unit: Unit; @@ -46,6 +51,62 @@ export class TaskDefinition extends Entity { }; } + /** + * Save the task definition + */ + public save(): Observable { + const svc = AppInjector.get(TaskDefinitionService); + + if (this.isNew) { + // TODO: add progress modal + return svc.create( + { + unitId: this.unit.id, + }, + { + entity: this, + cache: this.unit.taskDefinitionCache, + constructorParams: this.unit, + } + ); + } else { + return svc.update( + { + unitId: this.unit.id, + id: this.id, + }, + { entity: this } + ); + } + } + + private originalSaveData: string; + + /** + * To check if things have changed, we need to get the initial save data... as it + * isn't empty by default. We can then use + * this to check if there are changes. + * + * @param mapping the mapping to get changes + */ + public setOriginalSaveData(mapping: EntityMapping) { + if (!this.originalSaveData) { + this.originalSaveData = JSON.stringify(this.toJson(mapping)); + } + } + + public hasChanges(mapping: EntityMapping): boolean { + if (!this.originalSaveData) { + return false; + } + + return this.originalSaveData != JSON.stringify(this.toJson(mapping)); + } + + public get isNew(): boolean { + return !this.id; + } + public get unitId(): number { return this.unit.id; } @@ -58,6 +119,10 @@ export class TaskDefinition extends Entity { return this.dueDate; } + public matches(text: string): boolean { + return this.abbreviation.toLowerCase().indexOf(text) !== -1 || this.name.toLowerCase().indexOf(text) !== -1; + } + /** * The final deadline for task submission. * @@ -73,12 +138,16 @@ export class TaskDefinition extends Entity { public getTaskPDFUrl(asAttachment: boolean = false): string { const constants = AppInjector.get(DoubtfireConstants); - return `${constants.API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_pdf.json${ asAttachment ? "?as_attachment=true" : ""}`; + return `${constants.API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_pdf.json${ + asAttachment ? '?as_attachment=true' : '' + }`; } public getTaskResourcesUrl(asAttachment: boolean = false) { const constants = AppInjector.get(DoubtfireConstants); - return `${constants.API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_resources.json${ asAttachment ? "?as_attachment=true" : ""}`; + return `${constants.API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_resources.json${ + asAttachment ? '?as_attachment=true' : '' + }`; } public get targetGradeText(): string { @@ -86,38 +155,51 @@ export class TaskDefinition extends Entity { } public hasPlagiarismCheck(): boolean { - return this.plagiarismChecks.length > 0; + return this.plagiarismChecks?.length > 0; + } + + public get needsMoss(): boolean { + return this.uploadRequirements.some((upreq) => upreq.type === 'code' && upreq.tiiCheck); } public get taskSheetUploadUrl(): string { - return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_sheet`; + return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${ + this.id + }/task_sheet`; } public get taskResourcesUploadUrl(): string { - return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_resources`; + return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${ + this.id + }/task_resources`; } public get taskAssessmentResourcesUploadUrl(): string { - return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_assessment_resources`; + return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${ + this.id + }/task_assessment_resources`; } public getTaskAssessmentResourcesUrl(): string { - return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${this.id}/task_assessment_resources.json`; + return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${ + this.id + }/task_assessment_resources.json`; } public deleteTaskSheet(): Observable { const httpClient = AppInjector.get(HttpClient); - return httpClient.delete(this.taskSheetUploadUrl).pipe(tap( () => this.hasTaskSheet = false )); + return httpClient.delete(this.taskSheetUploadUrl).pipe(tap(() => (this.hasTaskSheet = false))); } public deleteTaskResources(): Observable { const httpClient = AppInjector.get(HttpClient); - return httpClient.delete(this.taskResourcesUploadUrl).pipe(tap( () => this.hasTaskResources = false )); + return httpClient.delete(this.taskResourcesUploadUrl).pipe(tap(() => (this.hasTaskResources = false))); } public deleteTaskAssessmentResources(): Observable { const httpClient = AppInjector.get(HttpClient); - return httpClient.delete(this.taskAssessmentResourcesUploadUrl).pipe(tap( () => this.hasTaskAssessmentResources = false )); + return httpClient + .delete(this.taskAssessmentResourcesUploadUrl) + .pipe(tap(() => (this.hasTaskAssessmentResources = false))); } - } diff --git a/src/app/api/models/task-similarity.coffee b/src/app/api/models/task-similarity.coffee deleted file mode 100644 index f4c2215ad..000000000 --- a/src/app/api/models/task-similarity.coffee +++ /dev/null @@ -1,18 +0,0 @@ -angular.module("doubtfire.api.models.task-similarity", []) - -.factory("TaskSimilarity", ($http, DoubtfireConstants) -> - result = - similarityUrl: (task, match) -> - "#{DoubtfireConstants.API_URL}/tasks/#{task.id}/similarity/#{match}" - - get: (task, match, callback) -> - url = result.similarityUrl(task, match) - $http.get(url).success ( data ) -> - callback(data) - - put: (task, match, other, value, callback, error_callback) -> - url = result.similarityUrl(task, match) - $http.put(url, { dismissed: value, other: other}).then( - (data) -> callback(data) - (response) -> error_callback(response)) -) diff --git a/src/app/api/models/task-similarity.ts b/src/app/api/models/task-similarity.ts new file mode 100644 index 000000000..c842cb751 --- /dev/null +++ b/src/app/api/models/task-similarity.ts @@ -0,0 +1,62 @@ +import { Entity } from 'ngx-entity-service'; +import { AppInjector } from 'src/app/app-injector'; +import { Task } from './doubtfire-model'; +import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; + +export enum TaskSimilarityType { + Moss = 'MossTaskSimilarity', + TurnItIn = 'TiiTaskSimilarity', +} + +/** + * Represents teh format for a part of a similarity report for a task. + * This is html for moss, and pdf for turn it in. + */ +export enum TaskSimilarityPartFormat { + Html = 'html', + Pdf = 'pdf', +} + +export class TaskSimilarityPart { + idx: number; + format: TaskSimilarityPartFormat; + description: string; +} + +/** + * Represents a similarity report for a task. Each has either one or two parts: + * turn it in has one PDF part, while moss has two html parts. + */ +export class TaskSimilarity extends Entity { + id: number; + type: TaskSimilarityType; + flagged: boolean; + pct: number; + parts: TaskSimilarityPart[]; + task: Task; + + constructor(task: Task) { + super(); + this.task = task; + } + + /** + * Returns the URL to download a part of the similarity report for this task similarity. + * + * @param idx The index of the part to download. + * @returns The URL to download the similarity report part. + */ + public fileUrl(idx: number): string { + const constants = AppInjector.get(DoubtfireConstants); + return `${constants.API_URL}/tasks/${this.task.id}/similarities/${this.id}/contents/${idx}`; + } + + public get friendlyTypeName(): string { + switch (this.type) { + case TaskSimilarityType.Moss: + return 'MOSS'; + case TaskSimilarityType.TurnItIn: + return 'TurnItIn'; + } + } +} diff --git a/src/app/api/models/task-status.ts b/src/app/api/models/task-status.ts index c8b64e4e7..0ab0f8f2d 100644 --- a/src/app/api/models/task-status.ts +++ b/src/app/api/models/task-status.ts @@ -1,342 +1,330 @@ import { Task } from './task'; export type TaskStatusEnum = - "not_started" | - "feedback_exceeded" | - "redo" | - "need_help" | - "working_on_it" | - "fix_and_resubmit" | - "ready_for_feedback" | - "discuss" | - "demonstrate" | - "complete" | - "fail" | - "time_exceeded"; + | 'not_started' + | 'feedback_exceeded' + | 'redo' + | 'need_help' + | 'working_on_it' + | 'fix_and_resubmit' + | 'ready_for_feedback' + | 'discuss' + | 'demonstrate' + | 'complete' + | 'fail' + | 'time_exceeded'; export type TaskStatusUiData = { status: TaskStatusEnum; icon: string; label: string; class: string; - help: { detail: string, reason: string, action: string }; + help: { detail: string; reason: string; action: string }; }; export class TaskStatus { - public static readonly STATUS_KEYS: TaskStatusEnum[] = [ - "not_started", - "feedback_exceeded", - "redo", - "need_help", - "working_on_it", - "fix_and_resubmit", - "ready_for_feedback", - "discuss", - "demonstrate", - "complete", - "fail", - "time_exceeded" + 'not_started', + 'feedback_exceeded', + 'redo', + 'need_help', + 'working_on_it', + 'fix_and_resubmit', + 'ready_for_feedback', + 'discuss', + 'demonstrate', + 'complete', + 'fail', + 'time_exceeded', ]; public static readonly VALID_TOP_TASKS: TaskStatusEnum[] = [ - "not_started", - "redo", - "need_help", - "working_on_it", - "fix_and_resubmit", - "ready_for_feedback", - "discuss", - "demonstrate" + 'not_started', + 'redo', + 'need_help', + 'working_on_it', + 'fix_and_resubmit', + 'ready_for_feedback', + 'discuss', + 'demonstrate', ]; public static readonly SUBMITTED_STATUSES: TaskStatusEnum[] = [ - "feedback_exceeded", - "ready_for_feedback", - "discuss", - "demonstrate", - "complete", - "fail", - "time_exceeded", + 'feedback_exceeded', + 'ready_for_feedback', + 'discuss', + 'demonstrate', + 'complete', + 'fail', + 'time_exceeded', ]; - public static readonly FINAL_STATUSES: TaskStatusEnum[] = [ - "complete", - "fail", - "feedback_exceeded", - "time_exceeded" - ]; + public static readonly FINAL_STATUSES: TaskStatusEnum[] = ['complete', 'fail', 'feedback_exceeded', 'time_exceeded']; - public static readonly GRADEABLE_STATUSES: TaskStatusEnum[] = [ - "fail", - "discuss", - "demonstrate", - "complete", - ]; + public static readonly GRADEABLE_STATUSES: TaskStatusEnum[] = ['fail', 'discuss', 'demonstrate', 'complete']; - public static readonly TO_BE_WORKED_ON: TaskStatusEnum[] = [ - "not_started", - "redo", - "need_help", - "working_on_it" - ]; + public static readonly TO_BE_WORKED_ON: TaskStatusEnum[] = ['not_started', 'redo', 'need_help', 'working_on_it']; - public static readonly DISCUSSION_STATES: TaskStatusEnum[] = [ - "discuss", - "demonstrate" - ]; + public static readonly DISCUSSION_STATES: TaskStatusEnum[] = ['discuss', 'demonstrate']; public static readonly STATE_THAT_ALLOWS_EXTENSION: TaskStatusEnum[] = [ - "not_started", - "redo", - "need_help", - "working_on_it", - "fix_and_resubmit", - "ready_for_feedback", - "time_exceeded" + 'not_started', + 'redo', + 'need_help', + 'working_on_it', + 'fix_and_resubmit', + 'ready_for_feedback', + 'time_exceeded', ]; public static readonly PDF_REGENERATABLE_STATES: TaskStatusEnum[] = [ - "demonstrate", - "ready_for_feedback", - "discuss", - "complete", - "time_exceeded", - "fail", - "fix_and_resubmit", - "feedback_exceeded", - "redo" + 'demonstrate', + 'ready_for_feedback', + 'discuss', + 'complete', + 'time_exceeded', + 'fail', + 'fix_and_resubmit', + 'feedback_exceeded', + 'redo', ]; - public static readonly SUBMITTABLE_STATUSES: TaskStatusEnum[] = [ - "ready_for_feedback", - "need_help" - ]; + public static readonly SUBMITTABLE_STATUSES: TaskStatusEnum[] = ['ready_for_feedback', 'need_help']; public static readonly MARKED_STATUSES: TaskStatusEnum[] = [ - "redo", - "fail", - "fix_and_resubmit", - "feedback_exceeded", - "discuss", - "demonstrate", - "complete" + 'redo', + 'fail', + 'fix_and_resubmit', + 'feedback_exceeded', + 'discuss', + 'demonstrate', + 'complete', ]; public static readonly LEARNING_WEIGHT: Map = new Map([ - ["fail", 0.0], - ["not_started", 0.0], - ["working_on_it", 0.0], - ["need_help", 0.0], - ["redo", 0.1], - ["feedback_exceeded", 0.1], - ["fix_and_resubmit", 0.3], - ["ready_for_feedback", 0.5], - ["discuss", 0.8], - ["demonstrate", 0.8], - ["complete", 1.0], - ["time_exceeded", 0.3] + ['fail', 0.0], + ['not_started', 0.0], + ['working_on_it', 0.0], + ['need_help', 0.0], + ['redo', 0.1], + ['feedback_exceeded', 0.1], + ['fix_and_resubmit', 0.3], + ['ready_for_feedback', 0.5], + ['discuss', 0.8], + ['demonstrate', 0.8], + ['complete', 1.0], + ['time_exceeded', 0.3], ]); public static readonly STATUS_ACRONYM: Map = new Map([ - ["ready_for_feedback", "RFF"], - ["not_started", "NOS"], - ["working_on_it", "WRK"], - ["need_help", "HLP"], - ["redo", "RDO"], - ["feedback_exceeded", "DNR"], - ["fix_and_resubmit", "FIX"], - ["discuss", "DIS"], - ["demonstrate", "DEM"], - ["complete", "COM"], - ["fail", "FAL"], - ["time_exceeded", "TIE"] + ['ready_for_feedback', 'RFF'], + ['not_started', 'NOS'], + ['working_on_it', 'WRK'], + ['need_help', 'HLP'], + ['redo', 'RDO'], + ['feedback_exceeded', 'DNR'], + ['fix_and_resubmit', 'FIX'], + ['discuss', 'DIS'], + ['demonstrate', 'DEM'], + ['complete', 'COM'], + ['fail', 'FAL'], + ['time_exceeded', 'TIE'], ]); - // Which status should not show up in the task status drop down... for students - public static readonly REJECT_FUTURE_STATES: Map = new Map([ - ["not_started", []], - ["working_on_it", []], - ["need_help", []], - ["ready_for_feedback", []], - ["complete", ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], - ["discuss", ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], - ["demonstrate", ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], - ["fix_and_resubmit", []], - ["redo", []], - ["feedback_exceeded", ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], - ["time_exceeded", ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], - ["fail", ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']] + public static readonly REJECT_FUTURE_STATES: Map = new Map< + TaskStatusEnum, + TaskStatusEnum[] + >([ + ['not_started', []], + ['working_on_it', []], + ['need_help', []], + ['ready_for_feedback', []], + ['complete', ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], + ['discuss', ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], + ['demonstrate', ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], + ['fix_and_resubmit', []], + ['redo', []], + ['feedback_exceeded', ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], + ['time_exceeded', ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], + ['fail', ['ready_for_feedback', 'not_started', 'working_on_it', 'need_help']], ]); public static readonly STATUS_LABELS = new Map([ - ["ready_for_feedback", "Ready for Feedback"], - ["not_started", "Not Started"], - ["working_on_it", "Working On It"], - ["need_help", "Need Help"], - ["redo", "Redo"], - ["feedback_exceeded", "Feedback Exceeded"], - ["fix_and_resubmit", "Resubmit"], - ["discuss", "Discuss"], - ["demonstrate", "Demonstrate"], - ["complete", "Complete"], - ["fail", "Fail"], - ["time_exceeded", "Time Exceeded"], + ['ready_for_feedback', 'Ready for Feedback'], + ['not_started', 'Not Started'], + ['working_on_it', 'Working On It'], + ['need_help', 'Need Help'], + ['redo', 'Redo'], + ['feedback_exceeded', 'Feedback Exceeded'], + ['fix_and_resubmit', 'Resubmit'], + ['discuss', 'Discuss'], + ['demonstrate', 'Demonstrate'], + ['complete', 'Complete'], + ['fail', 'Fail'], + ['time_exceeded', 'Time Exceeded'], ]); public static readonly STATUS_ICONS = new Map([ - ["ready_for_feedback", "fa fa-thumbs-o-up"], - ["not_started", "fa fa-pause"], - ["working_on_it", "fa fa-bolt"], - ["need_help", "fa fa-question-circle"], - ["redo", "fa fa-refresh"], - ["feedback_exceeded", "fa fa-low-vision"], - ["fix_and_resubmit", "fa fa-wrench"], - ["discuss", "fa fa-commenting"], - ["demonstrate", "fa fa-commenting"], - ["complete", "fa fa-check"], - ["fail", "fa fa-times"], - ["time_exceeded", "fa fa-clock-o"] + ['ready_for_feedback', 'fa fa-thumbs-o-up'], + ['not_started', 'fa fa-pause'], + ['working_on_it', 'fa fa-bolt'], + ['need_help', 'fa fa-question-circle'], + ['redo', 'fa fa-refresh'], + ['feedback_exceeded', 'fa fa-low-vision'], + ['fix_and_resubmit', 'fa fa-wrench'], + ['discuss', 'fa fa-commenting'], + ['demonstrate', 'fa fa-commenting'], + ['complete', 'fa fa-check'], + ['fail', 'fa fa-times'], + ['time_exceeded', 'fa fa-clock-o'], ]); // Please make sure this matches task-status-colors.less public static readonly STATUS_COLORS = new Map([ - ["ready_for_feedback", "#0079D8"], - ["not_started", "#CCCCCC"], - ["working_on_it", "#EB8F06"], - ["need_help", "#a48fce"], - ["fix_and_resubmit", "#f2d85c"], - ["feedback_exceeded", "#d46b54"], - ["redo", "#804000"], - ["discuss", "#31b0d5"], - ["demonstrate", "#428bca"], - ["complete", "#5BB75B"], - ["fail", "#d93713"], - ["time_exceeded", "#d93713"], + ['ready_for_feedback', '#0079D8'], + ['not_started', '#CCCCCC'], + ['working_on_it', '#EB8F06'], + ['need_help', '#a48fce'], + ['fix_and_resubmit', '#f2d85c'], + ['feedback_exceeded', '#d46b54'], + ['redo', '#804000'], + ['discuss', '#31b0d5'], + ['demonstrate', '#428bca'], + ['complete', '#5BB75B'], + ['fail', '#d93713'], + ['time_exceeded', '#d93713'], ]); public static readonly STATUS_SEQ = new Map([ - ["not_started", 1], - ["fail", 2], - ["feedback_exceeded", 3], - ["time_exceeded", 4], - ["redo", 5], - ["need_help", 6], - ["working_on_it", 7], - ["ready_for_feedback", 8], - ["fix_and_resubmit", 9], - ["discuss", 10], - ["demonstrate", 11], - ["complete", 12], + ['not_started', 1], + ['fail', 2], + ['feedback_exceeded', 3], + ['time_exceeded', 4], + ['redo', 5], + ['need_help', 6], + ['working_on_it', 7], + ['ready_for_feedback', 8], + ['fix_and_resubmit', 9], + ['discuss', 10], + ['demonstrate', 11], + ['complete', 12], ]); public static readonly SWITCHABLE_STATES = { - student: [ - "not_started", - "working_on_it", - "need_help", - "ready_for_feedback" - ], - tutor: [ - "complete", - "discuss", - "demonstrate", - "fix_and_resubmit", - "redo", - "feedback_exceeded", - "fail" - ] + student: ['not_started', 'working_on_it', 'need_help', 'ready_for_feedback'], + tutor: ['complete', 'discuss', 'demonstrate', 'fix_and_resubmit', 'redo', 'feedback_exceeded', 'fail'], }; // detail = in a brief context to the student // reason = reason for this status // action = action student can take - public static readonly HELP_DESCRIPTIONS = new Map ([ + public static readonly HELP_DESCRIPTIONS = new Map< + TaskStatusEnum, + { detail: string; reason: string; action: string } + >([ [ - "ready_for_feedback", + 'ready_for_feedback', { - detail: "Submitted this task for feedback", - reason: "You have finished working on the task and have uploaded it for your tutor to assess.", - action: "No further action is required. Your tutor will change this task status once they have assessed it." - } - ], [ - "not_started", + detail: 'Submitted this task for feedback', + reason: 'You have finished working on the task and have uploaded it for your tutor to assess.', + action: 'No further action is required. Your tutor will change this task status once they have assessed it.', + }, + ], + [ + 'not_started', { - detail: "Task not started", - reason: "You have not yet started the Task.", - action: "Depending on when the target date is, you should start this task soon." - } - ], [ - "working_on_it", + detail: 'Task not started', + reason: 'You have not yet started the Task.', + action: 'Depending on when the target date is, you should start this task soon.', + }, + ], + [ + 'working_on_it', { - detail: "Working on the task", - reason: "You are working on the task, but it is not yet ready to assess.", - action: "Finish working on this task and then set it to ready for feedback." - } - ], [ - "need_help", + detail: 'Working on the task', + reason: 'You are working on the task, but it is not yet ready to assess.', + action: 'Finish working on this task and then set it to ready for feedback.', + }, + ], + [ + 'need_help', { - detail: "Need help for the task", - reason: "You are working on the task but would like some help to get it complete.", - action: "Upload the task with what you have completed so far and add a comment on what you would like help on." - } - ], [ - "redo", + detail: 'Need help for the task', + reason: 'You are working on the task but would like some help to get it complete.', + action: 'Upload the task with what you have completed so far and add a comment on what you would like help on.', + }, + ], + [ + 'redo', { - detail: "Start this task from scratch", - reason: "You appeared to have misunderstood what is required for this task, many deliverables were missing or the marking criteria was largely not met.", - action: "You should reconsider your approach to this task. Review the task resources and task guide instructions. Check the deliverables carefully. Consider getting help from your tutor and/or lecturer." - } - ], [ - "feedback_exceeded", + detail: 'Start this task from scratch', + reason: + 'You appeared to have misunderstood what is required for this task, many deliverables were missing or the marking criteria was largely not met.', + action: + 'You should reconsider your approach to this task. Review the task resources and task guide instructions. Check the deliverables carefully. Consider getting help from your tutor and/or lecturer.', + }, + ], + [ + 'feedback_exceeded', { - detail: "Feedback will no longer be given", - reason: "This work is not complete to an acceptable standard and your tutor will not reassess it again.", - action: "It is now your responsibility to ensure this task is at an adequate standard in your portfolio. You should fix your work according to your tutor's prior feedback and include a corrected version in your portfolio." - } - ], [ - "fix_and_resubmit", + detail: 'Feedback will no longer be given', + reason: 'This work is not complete to an acceptable standard and your tutor will not reassess it again.', + action: + "It is now your responsibility to ensure this task is at an adequate standard in your portfolio. You should fix your work according to your tutor's prior feedback and include a corrected version in your portfolio.", + }, + ], + [ + 'fix_and_resubmit', { - detail: "Your submission requires some more work", - reason: "It looks like your work is on the right track, but it does require some extra work to achieve the required standard.", - action: "Review your submission and the feedback from your tutor. Fix the issues identified, and resubmit it to be reassessed. Make sure to check your submission thoroughly, and note any limit on the number of times each task can be reassessed." - } - ], [ - "discuss", + detail: 'Your submission requires some more work', + reason: + 'It looks like your work is on the right track, but it does require some extra work to achieve the required standard.', + action: + 'Review your submission and the feedback from your tutor. Fix the issues identified, and resubmit it to be reassessed. Make sure to check your submission thoroughly, and note any limit on the number of times each task can be reassessed.', + }, + ], + [ + 'discuss', { detail: "You're almost complete!", - reason: "Your work looks good and your tutor believes it is complete.", - action: "To mark as complete, attend class and discuss it with your tutor." - } - ], [ - "demonstrate", + reason: 'Your work looks good and your tutor believes it is complete.', + action: 'To mark as complete, attend class and discuss it with your tutor.', + }, + ], + [ + 'demonstrate', { detail: "You're almost complete!", - reason: "Your work looks good and your tutor believes it is complete.", - action: "To mark as complete, attend class and demonstrate how your submission works to your tutor." - } - ], [ - "complete", + reason: 'Your work looks good and your tutor believes it is complete.', + action: 'To mark as complete, attend class and demonstrate how your submission works to your tutor.', + }, + ], + [ + 'complete', { - detail: "You are finished with this task 🎉", - reason: "Your tutor is happy with your work and it has been discussed with them.", - action: "No further action required. Move onto the next task, or go party if everything is done." - } - ], [ - "fail", + detail: 'You are finished with this task 🎉', + reason: 'Your tutor is happy with your work and it has been discussed with them.', + action: 'No further action required. Move onto the next task, or go party if everything is done.', + }, + ], + [ + 'fail', { - detail: "You have failed this task", - reason: "You have not successfully demonstrated the required learning for this task. This may be due to plagiarism detection or assessment under testing conditions.", - action: "You should discuss this with your tutor and/or the convenor." - } - ], [ - "time_exceeded", + detail: 'You have failed this task', + reason: + 'You have not successfully demonstrated the required learning for this task. This may be due to plagiarism detection or assessment under testing conditions.', + action: 'You should discuss this with your tutor and/or the convenor.', + }, + ], + [ + 'time_exceeded', { - detail: "Time limit exceeded", - reason: "This work was submitted after the deadline, having missed both the target date and deadline.", - action: "Work submitted after the feedback deadline will not be checked by tutors prior to the portfolio assessment. You will need to ensure this task is at an adequate standard in your portfolio." - } + detail: 'Time limit exceeded', + reason: 'This work was submitted after the deadline, having missed both the target date and deadline.', + action: + 'Work submitted after the feedback deadline will not be checked by tutors prior to the portfolio assessment. You will need to ensure this task is at an adequate standard in your portfolio.', + }, ], // [ // "awaiting_extension", @@ -348,19 +336,19 @@ export class TaskStatus { // ] ]); - public static statusData(data : Task | TaskStatusEnum): TaskStatusUiData { + public static statusData(data: Task | TaskStatusEnum): TaskStatusUiData { // provided a task not a status - const status = typeof data !== "string" ? data.status : data; + const status = typeof data !== 'string' ? data.status : data; return { status: status, icon: TaskStatus.STATUS_ICONS.get(status), label: TaskStatus.STATUS_LABELS.get(status), class: TaskStatus.statusClass(status), - help: TaskStatus.HELP_DESCRIPTIONS.get(status) + help: TaskStatus.HELP_DESCRIPTIONS.get(status), }; } public static statusClass(status: TaskStatusEnum | undefined): string { - return status?.replace(new RegExp("_", "g"), "-"); + return status?.replace(new RegExp('_', 'g'), '-'); } } diff --git a/src/app/api/models/task.ts b/src/app/api/models/task.ts index 76a1bb494..58e282efb 100644 --- a/src/app/api/models/task.ts +++ b/src/app/api/models/task.ts @@ -13,12 +13,15 @@ import { TaskService, Group, TaskCommentService, + TaskSimilarity, + TaskSimilarityService, } from './doubtfire-model'; import { Grade } from './grade'; import { LOCALE_ID } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable, map } from 'rxjs'; -import { alertService, gradeTaskModal, uploadSubmissionModal } from 'src/app/ajs-upgraded-providers'; +import { gradeTaskModal, uploadSubmissionModal } from 'src/app/ajs-upgraded-providers'; +import { AlertService } from 'src/app/common/services/alert.service'; import { MappingFunctions } from '../services/mapping-fn'; export class Task extends Entity { @@ -33,9 +36,7 @@ export class Task extends Entity { grade?: number; qualityPts: number; includeInPortfolio: boolean = true; - pctSimilar: number = 0; - similarToCount: number = 0; - similarToDismissedCount: number = 0; + similarityFlag: boolean = false; numNewComments: number = 0; hasExtensions: boolean; @@ -51,6 +52,8 @@ export class Task extends Entity { public topWeight: number = 0; public readonly commentCache: EntityCache = new EntityCache(); + public readonly similarityCache: EntityCache = new EntityCache(); + private _unit: Unit; constructor(data?: Project | Unit) { @@ -96,12 +99,19 @@ export class Task extends Entity { return this.project.unit; } + /** + * Determine if a task matches a given search text. + * + * @param matchText the text to search for + * @returns true if this task should be shown for that match text + */ public matches(matchText: string): boolean { return ( TaskStatus.STATUS_LABELS.get(this.status)?.toLowerCase().indexOf(matchText) >= 0 || this.definition.abbreviation.toLowerCase().indexOf(matchText) >= 0 || this.definition.name.toLowerCase().indexOf(matchText) >= 0 || (this.hasExtensions && 'extension'.indexOf(matchText) == 0) || + (this.similarityFlag && 'similarity'.indexOf(matchText) == 0) || this.project.matches(matchText) ); } @@ -369,8 +379,8 @@ export class Task extends Entity { return `task-key-${key.studentId}-${key.taskDefAbbr}`.replace(/[.#]/g, '-'); } - public plagiarismDetected(): boolean { - return this.similarToCount - this.similarToDismissedCount > 0; + public get similaritiesDetected(): boolean { + return this.similarityFlag; } public getSimilarityData(match: number): Observable { @@ -464,9 +474,9 @@ export class Task extends Entity { ); } - public overseerEnabled(): boolean { + public get overseerEnabled(): boolean { return ( - this.unit.overseerEnabled() && this.definition.assessmentEnabled && this.definition.hasTaskAssessmentResources + this.unit.overseerEnabled && this.definition.assessmentEnabled && this.definition.hasTaskAssessmentResources ); } @@ -530,31 +540,30 @@ export class Task extends Entity { if (!isTestSubmission) { this.status = oldStatus; } - const alerts: any = AppInjector.get(alertService); + const alerts: any = AppInjector.get(AlertService); alerts.add('info', 'Submission cancelled. Status was reverted.', 6000); } ); } - public processTaskStatusChange(expectedStatus: TaskStatusEnum, alerts: any) { + public processTaskStatusChange(expectedStatus: TaskStatusEnum, alerts: AlertService) { if (this.inTimeExceeded() && !this.isPastDeadline()) { - alerts.add( - 'warning', + alerts.message( 'You have submitted after the deadline for feedback. Your task will not be reviewed by a tutor. It is now your responsibility to ensure this task meets the required standard.', 8000 ); } if (this.status !== expectedStatus) { - alerts.add('info', `Status changed to ${this.statusLabel()}.`, 4000); + alerts.message(`Status changed to ${this.statusLabel()}.`, 4000); } else { - alerts.add('success', 'Status saved.', 2000); + alerts.success(`Status changed to ${this.statusLabel()}.`); } } public updateTaskStatus(status: TaskStatusEnum) { const oldStatus = this.status; - const alerts: any = AppInjector.get(alertService); + const alerts: AlertService = AppInjector.get(AlertService); const updateFunc = () => { const taskService: TaskService = AppInjector.get(TaskService); @@ -587,7 +596,7 @@ export class Task extends Entity { }, error: (error) => { this.status = oldStatus; - alerts.add('danger', error, 6000); + alerts.error(error, 6000); }, }); }; // end update function @@ -610,7 +619,7 @@ export class Task extends Entity { // Grade was not selected (modal was dismissed) () => { this.status = oldStatus; - alerts.add('info', 'Status reverted, as no grade was specified', 6000); + alerts.message('Status reverted, as no grade was specified', 6000); } ); } @@ -657,7 +666,7 @@ export class Task extends Entity { this.pinned = true; }, error: (message) => { - (AppInjector.get(alertService) as any).add('danger', message, 6000); + (AppInjector.get(AlertService) as AlertService).error(message, 6000); }, }); } @@ -670,7 +679,7 @@ export class Task extends Entity { this.pinned = false; }, error: (message) => { - (AppInjector.get(alertService) as any).add('danger', message, 6000); + (AppInjector.get(AlertService) as AlertService).error(message, 6000); }, }); } @@ -704,4 +713,18 @@ export class Task extends Entity { return minWeeks; } } + + /** + * Fetch the task similarities for this task. + */ + public fetchSimilarities(): Observable { + const taskSimilarityService: TaskSimilarityService = AppInjector.get(TaskSimilarityService); + return taskSimilarityService.query( + { taskId: this.id }, + { + cache: this.similarityCache, + constructorParams: this, + } + ); + } } diff --git a/src/app/api/models/teaching-period.ts b/src/app/api/models/teaching-period.ts index 0262935c9..2aca186b7 100644 --- a/src/app/api/models/teaching-period.ts +++ b/src/app/api/models/teaching-period.ts @@ -1,7 +1,7 @@ import { Entity, EntityCache, EntityMapping } from 'ngx-entity-service'; import { Observable } from 'rxjs'; import { AppInjector } from 'src/app/app-injector'; -import { TeachingPeriodBreakService, TeachingPeriodService, Unit, UnitService, User } from './doubtfire-model'; +import { TeachingPeriodBreakService, TeachingPeriodService, Unit } from './doubtfire-model'; export class TeachingPeriodBreak extends Entity { id: number; @@ -33,7 +33,7 @@ export class TeachingPeriod extends Entity { }; } - public name(): string { + public get name(): string { return `${this.period} ${this.year}`; } @@ -72,6 +72,16 @@ export class TeachingPeriod extends Entity { return breakService.create({ teaching_period_id: this.id }, { cache: this.breaksCache, entity: breakEntity }); } + /** + * Removes a teaching period break. + * @param teachingBreakID the ID of the teaching period break to remove + * @returns an observable that emits the teaching period with the removed break, and indicates if any errors occured + */ + public removeBreak(teachingBreakID: number): Observable { + const breakService: TeachingPeriodBreakService = AppInjector.get(TeachingPeriodBreakService); + return breakService.delete({ teaching_period_id: this.id, id: teachingBreakID }, { cache: this.breaksCache }); + } + public rollover(newPeriod: TeachingPeriod, rolloverInactive: boolean, searchForward: boolean): Observable { const teachingPeriodService: TeachingPeriodService = AppInjector.get(TeachingPeriodService); diff --git a/src/app/api/models/tii-action.ts b/src/app/api/models/tii-action.ts new file mode 100644 index 000000000..0f0ed3d59 --- /dev/null +++ b/src/app/api/models/tii-action.ts @@ -0,0 +1,18 @@ +import { Entity, EntityCache, EntityMapping } from 'ngx-entity-service'; +import { Observable } from 'rxjs'; +import { Unit } from './doubtfire-model'; + +export class TiiAction extends Entity { + id: number; + type: string; + complete: boolean; + retries: number; + retry: boolean; + lastRun: Date; + errorCode: string; + errorMessage: string; + log: string; + + description: string; + +} diff --git a/src/app/api/models/tutorial-stream/tutorial-stream.ts b/src/app/api/models/tutorial-stream/tutorial-stream.ts index 90787574a..2ccb96759 100644 --- a/src/app/api/models/tutorial-stream/tutorial-stream.ts +++ b/src/app/api/models/tutorial-stream/tutorial-stream.ts @@ -1,5 +1,5 @@ import { Entity } from 'ngx-entity-service'; - +import { Unit, Tutorial } from '../doubtfire-model'; export class TutorialStream extends Entity { name: string; @@ -13,4 +13,8 @@ export class TutorialStream extends Entity { public get description(): string { return `${this.abbreviation}: ${this.name}`; } + + public tutorialsIn(unit: Unit): Tutorial[] { + return unit.tutorials.filter((tutorial) => tutorial.tutorialStream === this); + } } diff --git a/src/app/api/models/unit.ts b/src/app/api/models/unit.ts index 9c1f86593..c977efe53 100644 --- a/src/app/api/models/unit.ts +++ b/src/app/api/models/unit.ts @@ -1,14 +1,29 @@ -import { HttpClient } from '@angular/common/http'; import { Entity, EntityCache, EntityMapping } from 'ngx-entity-service'; import { Observable, tap } from 'rxjs'; import { alertService } from 'src/app/ajs-upgraded-providers'; import { AppInjector } from 'src/app/app-injector'; -import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; import { GroupService } from '../services/group.service'; import { ProjectService } from '../services/project.service'; import { TaskDefinitionService } from '../services/task-definition.service'; -import { OverseerImage, User, UnitRole, Task, TeachingPeriod, TaskDefinition, TutorialStream, Tutorial, TutorialEnrolment, GroupSet, Group, TaskOutcomeAlignment, GroupMembership, UnitService, Project, TutorialStreamService, UnitRoleService} from './doubtfire-model'; +import { + User, + UnitRole, + Task, + TeachingPeriod, + TaskDefinition, + TutorialStream, + Tutorial, + GroupSet, + Group, + TaskOutcomeAlignment, + GroupMembership, + UnitService, + Project, + TutorialStreamService, + UnitRoleService, +} from './doubtfire-model'; import { LearningOutcome } from './learning-outcome'; export class Unit extends Entity { @@ -53,7 +68,8 @@ export class Unit extends Entity { public readonly tutorialsCache: EntityCache = new EntityCache(); // readonly tutorialEnrolments: EntityCache; public readonly taskDefinitionCache: EntityCache = new EntityCache(); - public readonly taskOutcomeAlignmentsCache: EntityCache = new EntityCache(); + public readonly taskOutcomeAlignmentsCache: EntityCache = + new EntityCache(); readonly staffCache: EntityCache = new EntityCache(); @@ -72,14 +88,13 @@ export class Unit extends Entity { } public get nameAndPeriod(): string { - return `${this.name} (${this.teachingPeriod ? this.teachingPeriod.name() : this.startDate.toLocaleDateString()})`; + return `${this.name} (${this.teachingPeriod ? this.teachingPeriod.name : this.startDate.toLocaleDateString()})`; } public get codeAndPeriod(): string { - return `${this.code} (${this.teachingPeriod ? this.teachingPeriod.name() : this.startDate.toLocaleDateString()})`; + return `${this.code} (${this.teachingPeriod ? this.teachingPeriod.name : this.startDate.toLocaleDateString()})`; } - public get isActive(): boolean { return this.active && (!this.teachingPeriod || this.teachingPeriod.active); } @@ -98,7 +113,7 @@ export class Unit extends Entity { }, { cache: this.staffCache, - } + }, ); } @@ -114,11 +129,11 @@ export class Unit extends Entity { } public get staffUsers(): readonly User[] { - return this.staffCache.currentValues.map( (ur) => ur.user); + return this.staffCache.currentValues.map((ur) => ur.user); } public findStudent(id: number): Project { - return this.students.find( (s) => s.id === id); + return this.students.find((s) => s.id === id); } public studentEnrolled(id: number): boolean { @@ -126,11 +141,11 @@ export class Unit extends Entity { } public get currentUserIsStaff(): boolean { - return this.myRole !== "Student"; + return this.myRole !== 'Student'; } public get currentUserIsConvenor(): boolean { - return this.myRole === "Convenor" || this.myRole === "Admin"; + return this.myRole === 'Convenor' || this.myRole === 'Admin'; } public get taskDefinitions(): readonly TaskDefinition[] { @@ -145,10 +160,14 @@ export class Unit extends Entity { const taskDefinitionService = AppInjector.get(TaskDefinitionService); const alerts: any = AppInjector.get(alertService); - taskDefinitionService.delete({unitId: this.id, id: taskDef.id}, {cache: this.taskDefinitionCache, entity: taskDef}).subscribe({ - next: (response) => {alerts.add("success", "Task Deleted", 2000)}, - error: (message) => alerts.add("danger", message, 6000) - }); + taskDefinitionService + .delete({ unitId: this.id, id: taskDef.id }, { cache: this.taskDefinitionCache, entity: taskDef }) + .subscribe({ + next: (response) => { + alerts.add('success', 'Task Deleted', 2000); + }, + error: (message) => alerts.add('danger', message, 6000), + }); } public taskCount(): number { @@ -178,7 +197,7 @@ export class Unit extends Entity { */ public tutorialStreamForAbbr(abbr: string): TutorialStream { if (abbr) { - return this.tutorialStreams.find(ts => ts.abbreviation === abbr); + return this.tutorialStreams.find((ts) => ts.abbreviation === abbr); } else { return null; } @@ -202,19 +221,19 @@ export class Unit extends Entity { return Math.round((startToNow / totalDuration) * 100); } - public rolloverTo(body: { start_date: Date; end_date: Date}): Observable; - public rolloverTo(body: { teaching_period_id: number}): Observable; - public rolloverTo(body: any): Observable { + public rolloverTo(body: { start_date: Date; end_date: Date }): Observable; + public rolloverTo(body: { teaching_period_id: number }): Observable; + public rolloverTo(body: any): Observable { const unitService = AppInjector.get(UnitService); return unitService.create( { - id: this.id + id: this.id, }, { endpointFormat: unitService.rolloverEndpoint, - body: body - } + body: body, + }, ); } @@ -223,15 +242,15 @@ export class Unit extends Entity { } public get activeStudents(): readonly Project[] { - return this.studentCache.currentValues.filter( p => p.enrolled ); + return this.studentCache.currentValues.filter((p) => p.enrolled); } public tutorialsForUserName(userName: string): Tutorial[] { - return this.tutorials.filter(tutorial => tutorial.tutorName === userName); + return this.tutorials.filter((tutorial) => tutorial.tutorName === userName); } - public incorporateTasks(tasks: Task[]) : void { - tasks.forEach( (t) => { + public incorporateTasks(tasks: Task[]): void { + tasks.forEach((t) => { const project = this.findStudent(t.project.id); if (project) { project.incorporateTask(t); @@ -244,18 +263,18 @@ export class Unit extends Entity { const td = taskDef instanceof TaskDefinition ? taskDef : this.taskDef(taskDef); // Now fill for the students in the unit - return this.students.map( (p) => { + return this.students.map((p) => { // See if we already have the task - var t = tasks.find(t => t.project.id === p.id && t.definition.id === td.id); + let t = tasks.find((t) => t.project.id === p.id && t.definition.id === td.id); if (!t) { // No task in array, find task in project - t = p.tasks.find( t => t.definition.id == td.id ); + t = p.tasks.find((t) => t.definition.id == td.id); } if (!t) { t = new Task(p); t.definition = td; - t.status = "not_started"; + t.status = 'not_started'; } return t; @@ -264,15 +283,17 @@ export class Unit extends Entity { public refresh(): void { const alerts: any = AppInjector.get(alertService); - AppInjector.get(UnitService).fetch(this.id).subscribe({ - next: (unit) => {}, - error: (message) => alerts.add("danger", message, 6000) - }); + AppInjector.get(UnitService) + .fetch(this.id) + .subscribe({ + next: (unit) => {}, + error: (message) => alerts.add('danger', message, 6000), + }); } public setupTasksForStudent(project: Project) { // create not started tasks... - this.taskDefinitions.forEach(taskDefinition => { + this.taskDefinitions.forEach((taskDefinition) => { if (!project.findTaskForDefinition(taskDefinition.id)) { const task = new Task(project); task.definition = taskDefinition; @@ -301,19 +322,22 @@ export class Unit extends Entity { // alertService.add("danger", "Error refreshing unit groups: " + (failure.data?.error || "Unknown cause"), 6000) // ) - console.log("implement refresh groups"); + console.log('implement refresh groups'); } public getGroups(groupSet: GroupSet): Observable { const groupService: GroupService = AppInjector.get(GroupService); - return groupService.query( { - unitId: this.id, - groupSetId: groupSet.id - }, { - cache: groupSet.groupsCache, - constructorParams: this - }); + return groupService.query( + { + unitId: this.id, + groupSetId: groupSet.id, + }, + { + cache: groupSet.groupsCache, + constructorParams: this, + }, + ); } public findGroupSet(id: number): GroupSet { @@ -329,11 +353,13 @@ export class Unit extends Entity { } public staffAlignmentsForTaskDefinition(td: TaskDefinition): TaskOutcomeAlignment[] { - return this.taskOutcomeAlignments.filter( (alignment: TaskOutcomeAlignment) => { - return alignment.taskDefinition.id === td.id; - }).sort((a: TaskOutcomeAlignment, b: TaskOutcomeAlignment) => { - return a.learningOutcome.iloNumber - b.learningOutcome.iloNumber; - }); + return this.taskOutcomeAlignments + .filter((alignment: TaskOutcomeAlignment) => { + return alignment.taskDefinition.id === td.id; + }) + .sort((a: TaskOutcomeAlignment, b: TaskOutcomeAlignment) => { + return a.learningOutcome.iloNumber - b.learningOutcome.iloNumber; + }); } public get taskAlignmentCSVUploadUrl(): string { @@ -348,7 +374,7 @@ export class Unit extends Entity { return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.id}/outcomes/csv`; } - public hasStreams() : boolean { + public hasStreams(): boolean { return this.tutorialStreamsCache.size > 1; } @@ -356,25 +382,28 @@ export class Unit extends Entity { const tutorialStreamService = AppInjector.get(TutorialStreamService); return tutorialStreamService.create( - {unit_id: this.id, activity_type_abbr: activityTypeAbbreviation, abbreviation: undefined}, - {cache: this.tutorialStreamsCache}); + { unit_id: this.id, activity_type_abbr: activityTypeAbbreviation, abbreviation: undefined }, + { cache: this.tutorialStreamsCache }, + ); } public deleteStream(stream: TutorialStream): Observable { const tutorialStreamService = AppInjector.get(TutorialStreamService); - return tutorialStreamService.delete({unit_id: this.id, abbreviation: stream.abbreviation}, {cache: this.tutorialStreamsCache}).pipe( - tap( (response: boolean) => { - if(response) { - const tutorials = this.tutorialsCache.currentValues; - tutorials.forEach((t) => { - if (t.tutorialStream === stream) { - this.tutorialsCache.delete(t); - } - }); - } - }) - ); + return tutorialStreamService + .delete({ unit_id: this.id, abbreviation: stream.abbreviation }, { cache: this.tutorialStreamsCache }) + .pipe( + tap((response: boolean) => { + if (response) { + const tutorials = this.tutorialsCache.currentValues; + tutorials.forEach((t) => { + if (t.tutorialStream === stream) { + this.tutorialsCache.delete(t); + } + }); + } + }), + ); } public refreshStudents(includeWithdrawnStudents: boolean = false) { @@ -383,19 +412,19 @@ export class Unit extends Entity { } public findProjectForUsername(username: string): Project { - return this.students.find( (s) => s.student.username === username); + return this.students.find((s) => s.student.username === username); } public get groupSets(): readonly GroupSet[] { return this.groupSetsCache.currentValues; } - public overseerEnabled(): boolean { - return this.assessmentEnabled && this.overseerImageId !== null && this.overseerImageId !== undefined; + public get overseerEnabled(): boolean { + return this.assessmentEnabled && AppInjector.get(DoubtfireConstants).IsOverseerEnabled.value; // && this.overseerImageId !== null && this.overseerImageId !== undefined; } private addStudentTypeAheadData(students: readonly Project[], appendTo: string[]): void { - students.forEach(project => { + students.forEach((project) => { appendTo.push(project.student.name); appendTo.push(project.student.username); }); @@ -404,9 +433,9 @@ export class Unit extends Entity { public get studentFilterTypeAheadData(): string[] { const result: string[] = []; - this.tutorials.forEach( tute => { + this.tutorials.forEach((tute) => { result.push(tute.abbreviation); - if(!result.includes(tute.tutorName)) { + if (!result.includes(tute.tutorName)) { result.push(tute.tutorName); } }); @@ -423,10 +452,10 @@ export class Unit extends Entity { if (gs.keepGroupsInSameClass) { result = this.activeStudents.filter( - (student) => (student.isEnrolledIn(group.tutorial)) && (! members.has(student.id))); + (student) => student.isEnrolledIn(group.tutorial) && !members.has(student.id), + ); } else { - result = this.activeStudents.filter( - (student) => ! members.has(student.id)); + result = this.activeStudents.filter((student) => !members.has(student.id)); } return result; @@ -448,8 +477,24 @@ export class Unit extends Entity { return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.id}/task_definitions/task_pdfs`; } - public get allResourcesDownloadUrl(): string { - return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.id}/all_resources`; + /** + * Download all of the task definitions in a csv + */ + public downloadTaskDefinitionsCsv(): void { + AppInjector.get(FileDownloaderService).downloadFile( + this.getTaskDefinitionBatchUploadUrl(), + `${this.name}-all-task-definitions.csv`, + ); + } + + /** + * Download all of the task resources in a zip. + */ + public downloadAllTaskResourcesZip(): void { + AppInjector.get(FileDownloaderService).downloadFile( + `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.id}/all_resources`, + `${this.name}-all-task-resources.zip`, + ); } public get enrolStudentsCSVUrl(): string { @@ -469,10 +514,16 @@ export class Unit extends Entity { } public downloadTaskCompletionCsv(): void { - AppInjector.get(FileDownloaderService).downloadFile(`${AppInjector.get(DoubtfireConstants).API_URL}/csv/units/${this.id}/task_completion.json`, `${this.name}-task-completion.csv`); + AppInjector.get(FileDownloaderService).downloadFile( + `${AppInjector.get(DoubtfireConstants).API_URL}/csv/units/${this.id}/task_completion.json`, + `${this.name}-task-completion.csv`, + ); } public downloadTutorAssessmentCsv(): void { - AppInjector.get(FileDownloaderService).downloadFile(`${AppInjector.get(DoubtfireConstants).API_URL}/csv/units/${this.id}/tutor_assessments.json`, `${this.name}-tutor-assessments.csv`); + AppInjector.get(FileDownloaderService).downloadFile( + `${AppInjector.get(DoubtfireConstants).API_URL}/csv/units/${this.id}/tutor_assessments.json`, + `${this.name}-tutor-assessments.csv`, + ); } } diff --git a/src/app/api/models/user/user.ts b/src/app/api/models/user/user.ts index 53512c3d3..27b51c249 100644 --- a/src/app/api/models/user/user.ts +++ b/src/app/api/models/user/user.ts @@ -1,4 +1,8 @@ +import { HttpClient } from '@angular/common/http'; import { Entity, EntityMapping } from 'ngx-entity-service'; +import { Observable, map } from 'rxjs'; +import { AppInjector } from 'src/app/app-injector'; +import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; export type Tutor = User; @@ -18,6 +22,7 @@ export class User extends Entity { hasRunFirstTimeSetup: boolean; authenticationToken: string; pronouns: string | null; + acceptedTiiEula: boolean; public override toJson(mappingData: EntityMapping, ignoreKeys?: string[]): object { return { @@ -29,6 +34,10 @@ export class User extends Entity { return this.systemRole; } + public get isStaff(): boolean { + return ['Tutor', 'Convenor', 'Admin'].includes(this.systemRole); + } + public get name(): string { const fn = this.firstName.slice(0, 11); const sn = this.lastName.slice(0, 11); @@ -46,4 +55,10 @@ export class User extends Entity { this.nickname?.toLowerCase().indexOf(text) >= 0 ); } + + public acceptTiiEula(): Observable { + const httpClient = AppInjector.get(HttpClient); + const uri = `${AppInjector.get(DoubtfireConstants).API_URL}/tii_eula/users/${this.id}/accept`; + return httpClient.put(uri, {}).pipe(map(() => (this.acceptedTiiEula = true))); + } } diff --git a/src/app/api/resource-plus.coffee b/src/app/api/resource-plus.coffee deleted file mode 100644 index 62aafc447..000000000 --- a/src/app/api/resource-plus.coffee +++ /dev/null @@ -1,31 +0,0 @@ -angular.module("doubtfire.api.resource-plus", [ - "ngResource" -]) - -# -# Resource "plus" -# - base URL path -# - the addition of the authentication token -# - change save to use PUT for update and POST for create -# -.factory("resourcePlus", ($resource, DoubtfireConstants) -> - (url, paramDefaults, actions) -> - # Prefix specified relative url with API endpoint. - url = DoubtfireConstants.API_URL + url - - # Angular's default save method uses POST for both create and update, but - # Rails expects a PUT for update. :( To handle this, we must override the - # save method to make it POST for create and PUT for update. We also - # expose separate create and update methods that might prove useful. - actions = angular.extend {}, actions, - "create": { method: "POST" } - "update": { method: "PUT" } - - resource = $resource url, paramDefaults, actions - delete resource["save"] - - angular.extend resource.prototype, - $save: -> this[if this.id? then "$update" else "$create"].apply this, arguments - - return resource -) diff --git a/src/app/api/services/mapping-fn.ts b/src/app/api/services/mapping-fn.ts index 2ab99539a..7302bb387 100644 --- a/src/app/api/services/mapping-fn.ts +++ b/src/app/api/services/mapping-fn.ts @@ -16,9 +16,9 @@ export class MappingFunctions { public static mapDayToJson(entity: T, key: string): string { if (entity[key]) { const month = entity[key].getMonth() + 1; - return `${entity[key].getFullYear()}-${month < 10 ? '0' : ''}${month}-${entity[key].getDate()}`; - } - else { + const day = entity[key].getDate(); + return `${entity[key].getFullYear()}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`; + } else { return undefined; } } diff --git a/src/app/api/services/project.service.ts b/src/app/api/services/project.service.ts index 706618ddb..e9ffc791e 100644 --- a/src/app/api/services/project.service.ts +++ b/src/app/api/services/project.service.ts @@ -65,7 +65,7 @@ export class ProjectService extends CachedEntityService { 'submittedGrade', 'portfolioFiles', 'compilePortfolio', - 'maxPctCopy', + 'similarityFlag', { keys: 'hasPortfolio', toEntityFn: (data: object, key: string, entity: Project, params?: any) => { diff --git a/src/app/api/services/task-comment.service.ts b/src/app/api/services/task-comment.service.ts index aacf4ae71..9e646be77 100644 --- a/src/app/api/services/task-comment.service.ts +++ b/src/app/api/services/task-comment.service.ts @@ -10,7 +10,7 @@ import { HttpClient } from '@angular/common/http'; import API_URL from 'src/app/config/constants/apiURL'; import { EmojiService } from 'src/app/common/services/emoji.service'; import { MappingFunctions } from './mapping-fn'; -import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; @Injectable() export class TaskCommentService extends CachedEntityService { diff --git a/src/app/api/services/task-definition.service.ts b/src/app/api/services/task-definition.service.ts index 0a4af8bba..74a5d36fc 100644 --- a/src/app/api/services/task-definition.service.ts +++ b/src/app/api/services/task-definition.service.ts @@ -1,19 +1,17 @@ - - import { CachedEntityService } from 'ngx-entity-service'; import { TaskDefinition, Unit } from 'src/app/api/models/doubtfire-model'; import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import API_URL from 'src/app/config/constants/apiURL'; import { MappingFunctions } from './mapping-fn'; +import { AppInjector } from 'src/app/app-injector'; +import { Observable } from 'rxjs'; @Injectable() export class TaskDefinitionService extends CachedEntityService { protected readonly endpointFormat = 'units/:unitId:/task_definitions/:id:'; - constructor( - httpClient: HttpClient - ) { + constructor(httpClient: HttpClient) { super(httpClient, API_URL); this.mapping.addKeys( @@ -23,53 +21,84 @@ export class TaskDefinitionService extends CachedEntityService { 'description', 'weighting', 'targetGrade', + 'mossLanguage', { keys: 'targetDate', toEntityFn: MappingFunctions.mapDateToEndOfDay, - toJsonFn: MappingFunctions.mapDayToJson + toJsonFn: MappingFunctions.mapDayToJson, }, { keys: 'dueDate', toEntityFn: MappingFunctions.mapDateToEndOfDay, - toJsonFn: MappingFunctions.mapDayToJson + toJsonFn: MappingFunctions.mapDayToJson, }, { keys: 'startDate', toEntityFn: MappingFunctions.mapDateToDay, - toJsonFn: MappingFunctions.mapDayToJson + toJsonFn: MappingFunctions.mapDayToJson, }, { keys: 'uploadRequirements', toJsonFn: (taskDef: TaskDefinition, key: string) => { - return JSON.stringify(taskDef.uploadRequirements); - } + return JSON.stringify( + taskDef.uploadRequirements.map((upreq) => { + return { + key: upreq.key, + name: upreq.name, + type: upreq.type, + tii_check: upreq.tiiCheck, + tii_pct: upreq.tiiPct, + }; + }) + ); + }, + toEntityFn: (data: object, key: string, taskDef: TaskDefinition, params?: any) => { + return ( + data[key] as Array<{ key: string; name: string; type: string; tii_check: boolean; tii_pct: number }> + ).map((upreq) => { + return { + key: upreq.key, + name: upreq.name, + type: upreq.type, + tiiCheck: upreq.tii_check, + tiiPct: upreq.tii_pct, + }; + }); + }, }, { - keys: ['tutorialStream','tutorial_stream_abbr'], + keys: ['tutorialStream', 'tutorial_stream_abbr'], toEntityFn: (data: object, key: string, taskDef: TaskDefinition, params?: any) => { return taskDef.unit.tutorialStreamsCache.get(data[key]); }, toJsonFn: (taskDef: TaskDefinition, key: string) => { return taskDef.tutorialStream?.abbreviation; - } + }, }, { keys: 'plagiarismChecks', + toEntityFn: (data: object, key: string, taskDef: TaskDefinition, params?: any) => { + return data[key] || []; + }, toJsonFn: (taskDef: TaskDefinition, key: string) => { return JSON.stringify(taskDef.plagiarismChecks); - } + }, }, 'plagiarismReportUrl', 'plagiarismWarnPct', 'restrictStatusUpdates', { - keys: ['groupSet','group_set_id'], + keys: ['groupSet', 'group_set_id'], toEntityFn: (data: object, key: string, taskDef: TaskDefinition, params?: any) => { - return taskDef.unit.groupSetsCache.get(data[key]); + if (data[key]) { + return taskDef.unit.groupSetsCache.get(data[key]); + } else { + return data[key]; + } }, toJsonFn: (taskDef: TaskDefinition, key: string) => { return taskDef.groupSet?.id; - } + }, }, 'hasTaskSheet', 'hasTaskResources', @@ -80,10 +109,34 @@ export class TaskDefinitionService extends CachedEntityService { 'assessmentEnabled' ); - this.mapping.mapAllKeysToJsonExcept('id', 'plagiarismReportUrl', 'hasTaskSheet', 'hasTaskResources', 'hasTaskAssessmentResources'); + this.mapping.mapAllKeysToJsonExcept( + 'id', + 'plagiarismReportUrl', + 'hasTaskSheet', + 'hasTaskResources', + 'hasTaskAssessmentResources' + ); } public override createInstanceFrom(json: object, other?: any): TaskDefinition { return new TaskDefinition(other as Unit); } + + public uploadTaskSheet(taskDefinition: TaskDefinition, file: File): Observable { + const formData = new FormData(); + formData.append('file', file); + return AppInjector.get(HttpClient).post(taskDefinition.taskSheetUploadUrl, formData); + } + + public uploadTaskResources(taskDefinition: TaskDefinition, file: File): Observable { + const formData = new FormData(); + formData.append('file', file); + return AppInjector.get(HttpClient).post(taskDefinition.taskResourcesUploadUrl, formData); + } + + public uploadOverseerResources(taskDefinition: TaskDefinition, file: File): Observable { + const formData = new FormData(); + formData.append('file', file); + return AppInjector.get(HttpClient).post(taskDefinition.taskAssessmentResourcesUploadUrl, formData); + } } diff --git a/src/app/api/services/task-similarity.service.ts b/src/app/api/services/task-similarity.service.ts new file mode 100644 index 000000000..571f2f906 --- /dev/null +++ b/src/app/api/services/task-similarity.service.ts @@ -0,0 +1,23 @@ +import { Task, TaskSimilarity } from 'src/app/api/models/doubtfire-model'; +import { Injectable } from '@angular/core'; +import { CachedEntityService } from 'ngx-entity-service'; +import API_URL from 'src/app/config/constants/apiURL'; +import { HttpClient } from '@angular/common/http'; + +@Injectable() +export class TaskSimilarityService extends CachedEntityService { + protected readonly endpointFormat = 'tasks/:taskId:/similarities/:id:'; + + constructor(httpClient: HttpClient) { + super(httpClient, API_URL); + + this.mapping.addKeys('id', 'type', 'flagged', 'pct', 'parts'); + + this.mapping.addJsonKey('flagged'); + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + public override createInstanceFrom(_json: object, constructorParams: Task): TaskSimilarity { + return new TaskSimilarity(constructorParams); + } +} diff --git a/src/app/api/services/task.service.ts b/src/app/api/services/task.service.ts index eb6e78ac7..344494c0e 100644 --- a/src/app/api/services/task.service.ts +++ b/src/app/api/services/task.service.ts @@ -1,4 +1,12 @@ -import { Project, Task, TaskDefinition, TaskStatus, TaskStatusEnum, TaskStatusUiData, Unit } from 'src/app/api/models/doubtfire-model'; +import { + Project, + Task, + TaskDefinition, + TaskStatus, + TaskStatusEnum, + TaskStatusUiData, + Unit, +} from 'src/app/api/models/doubtfire-model'; import { Injectable } from '@angular/core'; import { CachedEntityService, EntityCache, RequestOptions } from 'ngx-entity-service'; import { HttpClient } from '@angular/common/http'; @@ -10,9 +18,9 @@ import { Observable, map, tap } from 'rxjs'; export class TaskService extends CachedEntityService { protected readonly endpointFormat = '/projects/:projectId:/task_def_id/:taskDefId:'; - private readonly taskInboxEndpoint = "/units/:id:/tasks/inbox"; - private readonly taskExplorerEndpoint = "/units/:id:/task_definitions/:task_def_id:/tasks"; - private readonly refreshTaskEndpoint = "projects/:projectId:/refresh_tasks/:taskDefinitionId:"; + private readonly taskInboxEndpoint = '/units/:id:/tasks/inbox'; + private readonly taskExplorerEndpoint = '/units/:id:/task_definitions/:task_def_id:/tasks'; + private readonly refreshTaskEndpoint = 'projects/:projectId:/refresh_tasks/:taskDefinitionId:'; constructor(httpClient: HttpClient) { super(httpClient, API_URL); @@ -21,56 +29,54 @@ export class TaskService extends CachedEntityService { 'id', { keys: 'projectId', - toEntityOp: (data: object, jsonKey: string, task: Task, params: any) => { + toEntityOp: (data: object, jsonKey: string, task: Task, _params?: any) => { // Is fetching task outside of project... task.project = task.unit.findStudent(data[jsonKey]); - } + }, }, { keys: 'taskDefinitionId', - toEntityOp: (data: object, key: string, entity: Task, params?: any) => { + toEntityOp: (data: object, key: string, entity: Task, _params?: any) => { entity.definition = entity.project.unit.taskDef(data['task_definition_id']); - } + }, }, 'status', { keys: 'dueDate', - toEntityFn: MappingFunctions.mapDateToEndOfDay + toEntityFn: MappingFunctions.mapDateToEndOfDay, }, 'extensions', { keys: 'submissionDate', - toEntityFn: MappingFunctions.mapDateToDay + toEntityFn: MappingFunctions.mapDateToDay, }, { keys: 'completionDate', - toEntityFn: MappingFunctions.mapDateToDay + toEntityFn: MappingFunctions.mapDateToDay, }, 'timesAssessed', 'grade', 'qualityPts', 'includeInPortfolio', - 'pctSimilar', - 'similarToCount', - 'similarToDismissedCount', + 'similarityFlag', 'numNewComments', 'trigger', 'hasExtensions', 'pinned', { - keys: "new_stat", + keys: 'new_stat', toEntityOp: (data: object, key: string, entity: Task, params?: any) => { entity.project.taskStats = data['new_stat']; - } + }, }, { keys: 'otherProjects', toEntityOp: (data: object, key: string, entity: Task, params?: any) => { data['other_projects'].forEach((details) => { - const proj = entity.unit.findStudent(details.id) + const proj = entity.unit.findStudent(details.id); if (proj) { // Update the other project's task status overview - const otherTask = proj.findTaskForDefinition(entity.definition.id) + const otherTask = proj.findTaskForDefinition(entity.definition.id); if (otherTask) { otherTask.project.taskStats = details['new_stats']; otherTask.grade = data['grade']; @@ -78,16 +84,11 @@ export class TaskService extends CachedEntityService { } } }); - } + }, } ); - this.mapping.addJsonKey( - 'qualityPts', - 'grade', - 'includeInPortfolio', - 'trigger' - ); + this.mapping.addJsonKey('qualityPts', 'grade', 'includeInPortfolio', 'trigger'); } public createInstanceFrom(json: object, other?: any): Task { @@ -97,14 +98,17 @@ export class TaskService extends CachedEntityService { public queryTasksForTaskInbox(unit: Unit, taskDef?: TaskDefinition | number): Observable { const cache: EntityCache = new EntityCache(); - return this.query({ - id: unit.id, - }, { - endpointFormat: this.taskInboxEndpoint, - cache: cache, - constructorParams: unit - }).pipe( - tap( (tasks: Task[]) => { + return this.query( + { + id: unit.id, + }, + { + endpointFormat: this.taskInboxEndpoint, + cache: cache, + constructorParams: unit, + } + ).pipe( + tap((tasks: Task[]) => { unit.incorporateTasks(tasks); }) ); @@ -112,15 +116,18 @@ export class TaskService extends CachedEntityService { public queryTasksForTaskExplorer(unit: Unit, taskDef?: TaskDefinition | number): Observable { const cache: EntityCache = new EntityCache(); - return this.query({ - id: unit.id, - task_def_id: taskDef instanceof TaskDefinition ? taskDef.id : taskDef - }, { - endpointFormat: this.taskExplorerEndpoint, - cache: cache, - constructorParams: unit - }).pipe( - map( (tasks: Task[]) => { + return this.query( + { + id: unit.id, + task_def_id: taskDef instanceof TaskDefinition ? taskDef.id : taskDef, + }, + { + endpointFormat: this.taskExplorerEndpoint, + cache: cache, + constructorParams: unit, + } + ).pipe( + map((tasks: Task[]) => { unit.incorporateTasks(tasks); return unit.fillWithUnStartedTasks(tasks, taskDef); }) @@ -130,18 +137,18 @@ export class TaskService extends CachedEntityService { public refreshExtensionDetails(task: Task): void { const pathIds = { projectId: task.project.id, - taskDefinitionId: task.definition.id + taskDefinitionId: task.definition.id, }; const options: RequestOptions = { endpointFormat: this.refreshTaskEndpoint, - cache: task.project.taskCache + cache: task.project.taskCache, }; this.get(pathIds, options).subscribe({ next: (value: Task) => {}, error: (message) => { console.log(`Failed to refresh tasks ${message}`); - } + }, }); } @@ -152,7 +159,7 @@ export class TaskService extends CachedEntityService { public readonly stateThatAllowsExtension = TaskStatus.STATE_THAT_ALLOWS_EXTENSION; public readonly pdfRegeneratableStatuses = TaskStatus.PDF_REGENERATABLE_STATES; public readonly submittableStatuses = TaskStatus.SUBMITTABLE_STATUSES; - public readonly completeStatus: TaskStatusEnum = "complete"; + public readonly completeStatus: TaskStatusEnum = 'complete'; public readonly learningWeight: Map = TaskStatus.LEARNING_WEIGHT; public readonly statusAcronym: Map = TaskStatus.STATUS_ACRONYM; public readonly statusLabels: Map = TaskStatus.STATUS_LABELS; @@ -173,7 +180,7 @@ export class TaskService extends CachedEntityService { return TaskStatus.STATUS_LABELS.get(status); } - public helpDescription(status: TaskStatusEnum): { detail: string; reason: string; action: string; } { + public helpDescription(status: TaskStatusEnum): { detail: string; reason: string; action: string } { return TaskStatus.HELP_DESCRIPTIONS.get(status); } @@ -181,18 +188,17 @@ export class TaskService extends CachedEntityService { return TaskStatus.statusData(data); } - public taskKeyFromString(taskKeyString: string): {studentId: string; taskDefAbbr: string} { + public taskKeyFromString(taskKeyString: string): { studentId: string; taskDefAbbr: string } { const taskKeyComponents = taskKeyString?.split('/'); if (taskKeyComponents) { const studentId = taskKeyComponents[0]; const taskDefAbbr = taskKeyComponents[taskKeyComponents.length - 1]; return { studentId: studentId, - taskDefAbbr: taskDefAbbr - } + taskDefAbbr: taskDefAbbr, + }; } return null; } - } diff --git a/src/app/api/services/teaching-period.service.ts b/src/app/api/services/teaching-period.service.ts index 67d2c8a6c..a51d6f85f 100644 --- a/src/app/api/services/teaching-period.service.ts +++ b/src/app/api/services/teaching-period.service.ts @@ -12,7 +12,10 @@ export class TeachingPeriodService extends CachedEntityService { public static readonly rolloverEndpointFormat = 'teaching_periods/:id:/rollover'; - constructor(httpClient: HttpClient, private teachingPeriodBreakService: TeachingPeriodBreakService) { + constructor( + httpClient: HttpClient, + private teachingPeriodBreakService: TeachingPeriodBreakService, + ) { super(httpClient, API_URL); this.mapping.addKeys( @@ -29,7 +32,11 @@ export class TeachingPeriodService extends CachedEntityService { toEntityFn: MappingFunctions.mapDateToDay, toJsonFn: MappingFunctions.mapDayToJson, }, - 'activeUntil', + { + keys: 'activeUntil', + toEntityFn: MappingFunctions.mapDateToDay, + toJsonFn: MappingFunctions.mapDayToJson, + }, 'active', { keys: 'breaks', @@ -50,7 +57,7 @@ export class TeachingPeriodService extends CachedEntityService { entity.unitsCache.add(unit); }); }, - } + }, ); this.mapping.mapAllKeysToJsonExcept('id', 'unit', 'breaks'); diff --git a/src/app/api/services/tii-action.service.ts b/src/app/api/services/tii-action.service.ts new file mode 100644 index 000000000..a90e54014 --- /dev/null +++ b/src/app/api/services/tii-action.service.ts @@ -0,0 +1,43 @@ +import { HttpClient } from '@angular/common/http'; +import { CachedEntityService, Entity } from 'ngx-entity-service'; +import { TiiAction, Unit, UnitService, UserService } from 'src/app/api/models/doubtfire-model'; +import { Injectable } from '@angular/core'; +import API_URL from 'src/app/config/constants/apiURL'; +import { AppInjector } from 'src/app/app-injector'; +import { MappingFunctions } from './mapping-fn'; +import { MappingProcess } from 'ngx-entity-service/lib/mapping-process'; + +@Injectable() +export class TiiActionService extends CachedEntityService { + protected readonly endpointFormat = 'tii_actions/:id:'; + + public static readonly rolloverEndpointFormat = 'teaching_periods/:id:/rollover'; + + constructor(httpClient: HttpClient) { + super(httpClient, API_URL); + + this.mapping.addKeys( + 'id', + 'type', + 'description', + 'complete', + 'retries', + 'retry', + { + keys: 'lastRun', + toEntityFn: MappingFunctions.mapDateToDay, + toJsonFn: MappingFunctions.mapDayToJson, + }, + 'errorCode', + 'errorMessage', + 'log' + ); + + this.mapping.addJsonKey('id', 'retry'); + // this.cacheBehaviourOnGet = 'cacheQuery'; + } + + public createInstanceFrom(json: any, other?: any): TiiAction { + return new TiiAction(); + } +} diff --git a/src/app/api/services/tii.service.spec.ts b/src/app/api/services/tii.service.spec.ts new file mode 100644 index 000000000..af1485192 --- /dev/null +++ b/src/app/api/services/tii.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TiiService } from './tii.service'; + +describe('TiiServiceService', () => { + let service: TiiService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TiiService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/api/services/tii.service.ts b/src/app/api/services/tii.service.ts new file mode 100644 index 000000000..cfc02681a --- /dev/null +++ b/src/app/api/services/tii.service.ts @@ -0,0 +1,15 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import API_URL from 'src/app/config/constants/apiURL'; + +@Injectable({ + providedIn: 'root', +}) +export class TiiService { + constructor(private httpClient: HttpClient) {} + + public getTiiEula(): Observable { + return this.httpClient.get(`${API_URL}/tii_eula`); + } +} diff --git a/src/app/api/services/unit.service.ts b/src/app/api/services/unit.service.ts index cd291db18..740e9b6cc 100644 --- a/src/app/api/services/unit.service.ts +++ b/src/app/api/services/unit.service.ts @@ -91,7 +91,7 @@ export class UnitService extends CachedEntityService { } else { return undefined; } }, toJsonFn: (entity: Unit, key: string) => { - return entity.teachingPeriod ? entity.teachingPeriod.id : -1; + return entity.teachingPeriod ? entity.teachingPeriod.id : undefined; } }, { diff --git a/src/app/api/services/user.service.ts b/src/app/api/services/user.service.ts index 03ac1c3d5..bce0e2aaf 100644 --- a/src/app/api/services/user.service.ts +++ b/src/app/api/services/user.service.ts @@ -1,6 +1,6 @@ import { UnitRole, UnitService, User } from 'src/app/api/models/doubtfire-model'; import { CachedEntityService, RequestOptions } from 'ngx-entity-service'; -import { Injectable, OnInit } from '@angular/core'; +import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import API_URL from 'src/app/config/constants/apiURL'; import { AppInjector } from 'src/app/app-injector'; @@ -33,7 +33,8 @@ export class UserService extends CachedEntityService { 'receivePortfolioNotifications', 'receiveFeedbackNotifications', 'hasRunFirstTimeSetup', - 'pronouns' + 'pronouns', + 'acceptedTiiEula' ); this._currentUser = this.anonymousUser; @@ -41,7 +42,8 @@ export class UserService extends CachedEntityService { this.mapping.mapAllKeysToJsonExcept('id'); } - public createInstanceFrom(json: any, other?: any): User { + // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any + public createInstanceFrom(json: object, other?: any): User { return new User(); } diff --git a/src/app/common/audio-player/audio-player.component.scss b/src/app/common/audio-player/audio-player.component.scss index 2c3b0eaa3..853fecb30 100644 --- a/src/app/common/audio-player/audio-player.component.scss +++ b/src/app/common/audio-player/audio-player.component.scss @@ -49,15 +49,18 @@ box-shadow: 0px; } } - + /* TODO(mdc-migration): The following rule targets internal classes of progress-bar that may no longer apply for the MDC version.*/ + /* TODO(mdc-migration): The following rule targets internal classes of progress-bar that may no longer apply for the MDC version.*/ :ng-deep .mat-progress-bar-fill::after { background-color: white; } - + /* TODO(mdc-migration): The following rule targets internal classes of progress-bar that may no longer apply for the MDC version.*/ + /* TODO(mdc-migration): The following rule targets internal classes of progress-bar that may no longer apply for the MDC version.*/ :ng-deep .mat-progress-bar-buffer { background: #2650c3; } - + /* TODO(mdc-migration): The following rule targets internal classes of progress-bar that may no longer apply for the MDC version.*/ + /* TODO(mdc-migration): The following rule targets internal classes of progress-bar that may no longer apply for the MDC version.*/ :ng-deep .mat-progress-bar-primary.mat-progress-bar-fill.mat-progress-bar-element { pointer-events: none; } diff --git a/src/app/common/audio-player/audio-player.component.ts b/src/app/common/audio-player/audio-player.component.ts index 5703304d6..735f6a4fe 100644 --- a/src/app/common/audio-player/audio-player.component.ts +++ b/src/app/common/audio-player/audio-player.component.ts @@ -2,7 +2,7 @@ import { HttpResponse } from '@angular/common/http'; import { Component, Inject, Input, ViewChild, ElementRef, OnDestroy } from '@angular/core'; import { alertService } from 'src/app/ajs-upgraded-providers'; import { Project, Task, TaskComment } from 'src/app/api/models/doubtfire-model'; -import { FileDownloaderService } from '../file-downloader/file-downloader'; +import { FileDownloaderService } from '../file-downloader/file-downloader.service'; @Component({ selector: 'audio-player', diff --git a/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.html b/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.html index 766346c3f..26d0f0435 100644 --- a/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.html +++ b/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.html @@ -1,26 +1,44 @@ -
+

Audio recording
only supported in modern versions of Chrome, Firefox and Safari.

-
- - - +
-
-
\ No newline at end of file +
diff --git a/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.scss b/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.scss index 06b2ec971..948428234 100644 --- a/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.scss +++ b/src/app/common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder.scss @@ -1,19 +1,4 @@ -.btn-circle-xl { - user-select: none; - background-color: white; - border-radius: 72px; - color: #fff; - height: 20px; - width: 20px; - transition: width 0.1s, height 0.1s; - border: none; - outline: none; - mat-icon { - font-size: 16px; - vertical-align: middle; - } -} #audioDiscussionTemplate { display: flex; @@ -26,38 +11,11 @@ bottom: 15%; } -.mat-progress-spinner circle, -.mat-spinner circle { +.mat-mdc-progress-spinner circle, +.mat-mdc-progress-spinner circle { stroke: white; } -.btn-circle { - width: 30px; - height: 30px; - margin-right: 5px; - padding: 6px 0px; - background-color: transparent; - border-radius: 15px; - text-align: center; - font-size: 12px; - line-height: 1.42857; - border: 1px solid #bdbdbd; - box-shadow: 0.5px 0.5px 1px #bdbdbd; -} - -.btn-circle:disabled { - opacity: 0.2; - border: none; -} - -.btn-circle:active { - box-shadow: 0px 0px 0px #bdbdbd; -} - -.btn-circle:focus { - outline: 0; -} - #button-wrapper { position: absolute; right: 12px; diff --git a/src/app/common/audio-recorder/audio/microphone-tester/microphone-tester-component.scss b/src/app/common/audio-recorder/audio/microphone-tester/microphone-tester-component.scss index 2e769ca7c..4b6a37e52 100644 --- a/src/app/common/audio-recorder/audio/microphone-tester/microphone-tester-component.scss +++ b/src/app/common/audio-recorder/audio/microphone-tester/microphone-tester-component.scss @@ -38,8 +38,8 @@ microphone-tester { top: 25%; } - .mat-progress-spinner circle, - .mat-spinner circle { + .mat-mdc-progress-spinner circle, + .mat-mdc-progress-spinner circle { stroke: #f03d25; } diff --git a/src/app/common/directives/drag-drop.directive.ts b/src/app/common/directives/drag-drop.directive.ts index 5c8a4aaf1..1278cdc59 100644 --- a/src/app/common/directives/drag-drop.directive.ts +++ b/src/app/common/directives/drag-drop.directive.ts @@ -10,14 +10,14 @@ import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@ang selector: '[appDragDrop]', }) export class DragDropDirective { - @Output() onFileDropped = new EventEmitter(); + @Output() fileDropped = new EventEmitter(); // @HostBinding('style.background-color') private background = '#f5fcff'; // @HostBinding('style.opacity') private opacity = '1'; @HostBinding('class.dragover') private dragOver = false; // Dragover listener - @HostListener('dragover', ['$event']) onDragOver(evt: any) { + @HostListener('dragover', ['$event']) onDragOver(evt: DragEvent) { evt.preventDefault(); evt.stopPropagation(); // this.background = '#9ecbec'; @@ -26,7 +26,7 @@ export class DragDropDirective { } // Dragleave listener - @HostListener('dragleave', ['$event']) public onDragLeave(evt: any) { + @HostListener('dragleave', ['$event']) public onDragLeave(evt: DragEvent) { evt.preventDefault(); evt.stopPropagation(); // this.background = '#f5fcff'; @@ -35,7 +35,7 @@ export class DragDropDirective { } // Drop listener - @HostListener('drop', ['$event']) public ondrop(evt: any) { + @HostListener('drop', ['$event']) public ondrop(evt: DragEvent) { evt.preventDefault(); evt.stopPropagation(); this.dragOver = false; @@ -43,7 +43,7 @@ export class DragDropDirective { // this.opacity = '1'; const files = evt.dataTransfer.files; if (files.length > 0) { - this.onFileDropped.emit(files); + this.fileDropped.emit(files); } } } diff --git a/src/app/common/edit-profile-form/edit-profile-form.component.html b/src/app/common/edit-profile-form/edit-profile-form.component.html index 2866be51c..8b993072a 100644 --- a/src/app/common/edit-profile-form/edit-profile-form.component.html +++ b/src/app/common/edit-profile-form/edit-profile-form.component.html @@ -1,4 +1,4 @@ -
+
@@ -16,7 +16,7 @@

{{ initialFirstName }}

First Name - +
@@ -57,17 +57,20 @@

{{ initialFirstName }}

/> - + @if (user.systemRole === 'Student') { + Student ID + } Email - + @if (canSeeSystemRole) { + System Role Administrator @@ -76,6 +79,7 @@

{{ initialFirstName }}

Student
+ }
{{ initialFirstName }} Sign Out
- + } @if (mode === 'edit') { + }
diff --git a/src/app/common/edit-profile-form/edit-profile-form.component.scss b/src/app/common/edit-profile-form/edit-profile-form.component.scss index cba38ffa3..b13497246 100644 --- a/src/app/common/edit-profile-form/edit-profile-form.component.scss +++ b/src/app/common/edit-profile-form/edit-profile-form.component.scss @@ -28,6 +28,7 @@ section { } /* checkbox */ -::ng-deep .mat-checkbox-label { +::ng-deep .mdc-form-field label { font-weight: normal; } + diff --git a/src/app/common/edit-profile-form/edit-profile-form.component.ts b/src/app/common/edit-profile-form/edit-profile-form.component.ts index 1476edbdf..6e7df7ca9 100644 --- a/src/app/common/edit-profile-form/edit-profile-form.component.ts +++ b/src/app/common/edit-profile-form/edit-profile-form.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, Input, OnInit, Optional } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; -import { MatLegacySnackBar as MatSnackBar } from '@angular/material/legacy-snack-bar'; +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { StateService } from '@uirouter/core'; import { User } from 'src/app/api/models/user/user'; import { AuthenticationService } from 'src/app/api/services/authentication.service'; diff --git a/src/app/common/entity-form/entity-form.component.ts b/src/app/common/entity-form/entity-form.component.ts index c665c5d28..ecb807b20 100644 --- a/src/app/common/entity-form/entity-form.component.ts +++ b/src/app/common/entity-form/entity-form.component.ts @@ -4,7 +4,7 @@ import { Entity, RequestOptions } from 'ngx-entity-service'; import { EntityService } from 'ngx-entity-service'; import { Observable, tap } from 'rxjs'; import { Sort } from '@angular/material/sort'; -import { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table'; +import { MatTableDataSource } from '@angular/material/table'; export type OnSuccessMethod = (object: T, isNew: boolean) => void; @@ -104,7 +104,6 @@ export abstract class EntityFormComponent implements AfterView .toLowerCase(); } - /** * Submit the form data to the server and create or update an entity * based on the form's state. A new entity will be created if there is @@ -144,7 +143,7 @@ export abstract class EntityFormComponent implements AfterView } // Handle the response - response.subscribe( { + response.subscribe({ next: (result: T) => { alertService.add('success', `${this.entityName} saved`, 2000); // Success is implemented on all inheriting instances and is used @@ -165,7 +164,7 @@ export abstract class EntityFormComponent implements AfterView this.restoreFromBackup(); } alertService.add('danger', `${this.entityName} save failed: ${error}`, 6000); - } + }, }); } else { // Once we mark forms as touched, erroneous state will be rendered @@ -174,11 +173,11 @@ export abstract class EntityFormComponent implements AfterView } } - protected delete(entity: T, entities: T[], service: EntityService) : Observable { - return service.delete(entity, this.optionsOnRequest('delete')).pipe(tap( - (obj) => { + protected delete(entity: T, entities: T[], service: EntityService): Observable { + return service.delete(entity, this.optionsOnRequest('delete')).pipe( + tap((obj) => { this.cancelEdit(); - entities.splice( entities.indexOf(entity), 1); + entities.splice(entities.indexOf(entity), 1); this.dataSource.data = entities; }) ); diff --git a/src/app/common/f-chip/f-chip.component.html b/src/app/common/f-chip/f-chip.component.html new file mode 100644 index 000000000..10c24dbd5 --- /dev/null +++ b/src/app/common/f-chip/f-chip.component.html @@ -0,0 +1,5 @@ +
+ +
diff --git a/src/app/common/f-chip/f-chip.component.scss b/src/app/common/f-chip/f-chip.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/common/f-chip/f-chip.component.spec.ts b/src/app/common/f-chip/f-chip.component.spec.ts new file mode 100644 index 000000000..f431488a6 --- /dev/null +++ b/src/app/common/f-chip/f-chip.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FChipComponent } from './f-chip.component'; + +describe('FChipComponent', () => { + let component: FChipComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ FChipComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(FChipComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/common/f-chip/f-chip.component.ts b/src/app/common/f-chip/f-chip.component.ts new file mode 100644 index 000000000..de2a1e148 --- /dev/null +++ b/src/app/common/f-chip/f-chip.component.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'f-chip', + templateUrl: './f-chip.component.html', + styleUrls: ['./f-chip.component.scss'], +}) +export class FChipComponent {} diff --git a/src/app/common/file-downloader/file-downloader.ts b/src/app/common/file-downloader/file-downloader.service.ts similarity index 100% rename from src/app/common/file-downloader/file-downloader.ts rename to src/app/common/file-downloader/file-downloader.service.ts diff --git a/src/app/common/file-drop/file-drop.component.html b/src/app/common/file-drop/file-drop.component.html new file mode 100644 index 000000000..669ae0405 --- /dev/null +++ b/src/app/common/file-drop/file-drop.component.html @@ -0,0 +1,52 @@ + + +
+ +
+
+
+ @if (file?.name) { + upload_file + } + {{ file?.name || message }} + {{ uploadProgress }} + +
+ @if (uploadProgress) { + + } @if (!uploadProgress) { + + } +
+
+
diff --git a/src/app/common/file-drop/file-drop.component.scss b/src/app/common/file-drop/file-drop.component.scss new file mode 100644 index 000000000..2c3f68d5d --- /dev/null +++ b/src/app/common/file-drop/file-drop.component.scss @@ -0,0 +1,13 @@ +// import color +.f-inner-border { + box-shadow: inset 0 0 1px rgba(0,0,0,0.8); + clip-path: inset(-1px -1px 0px 0px); +} + +.dragover { + z-index: 50; + border-radius: 0.5rem; + outline-width: 1.5px; + outline-style: dashed; + outline-color: #3939ff; +} diff --git a/src/app/common/file-drop/file-drop.component.ts b/src/app/common/file-drop/file-drop.component.ts new file mode 100644 index 000000000..24a94a102 --- /dev/null +++ b/src/app/common/file-drop/file-drop.component.ts @@ -0,0 +1,121 @@ +import { HttpClient, HttpErrorResponse, HttpEventType, HttpResponse } from '@angular/common/http'; +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Subscription, throwError } from 'rxjs'; +import { AlertService } from '../services/alert.service'; + +/** + * Allow files to be dropped for upload + */ +@Component({ + selector: 'f-file-drop', + templateUrl: 'file-drop.component.html', + styleUrls: ['file-drop.component.scss'], +}) +export class FileDropComponent { + @Input({ required: true }) mode: 'endpoint' | 'event'; + + /** The name of the file(s) you are asking the user to upload */ + @Input() desiredFileName: string; + + /** Is this a multi-file uploader? */ + @Input() multiple: boolean = false; + + /** The file types that are allowed to be uploaded */ + @Input() accept: string; + + /** The URL of the endpoint to POST the file to if mode is endpoint*/ + @Input() endpoint: string; + @Input() body: object; + @Output() fileChange = new EventEmitter(); + @Output() uploadSuccess = new EventEmitter>(); + + protected uploadProgress: number; + protected uploadSub: Subscription; + /** + * Have a singe file that can be set + */ + protected file: File; + /** + * Report all files dropped if mode is event + */ + @Output() filesDropped = new EventEmitter(); + + constructor( + private http: HttpClient, + private alert: AlertService, + ) {} + + public get isUploadMode() { + return this.endpoint; + } + + public get message() { + return `Drag ${this.desiredFileName ? this.desiredFileName : 'file(s)'} here`; + } + + onFileSelected(event) { + const file: File = event.target.files[0]; + + if (file) { + this.file = file; + } + } + + public onFileDragOver(files: FileList) { + // iterate over FileList + const droppedFiles = Array.from(files as ArrayLike); + for (const f of droppedFiles) { + if (!this.accept.includes(f.type)) { + return; + } + } + this.file = files[0]; + this.upload(); + } + + public upload() { + if (this.mode == 'endpoint') { + if (this.file) { + const formData = new FormData(); + + formData.append('file', this.file); + this.http.post(this.endpoint, formData, { reportProgress: true, observe: 'events' }).subscribe( + (data) => { + if (data.type == HttpEventType.UploadProgress) { + this.uploadProgress = Math.round(100 * (data.loaded / data.total)); + } + if (data.type == HttpEventType.Response) { + if (data.ok) { + this.alert.success(`File uploaded successfully`); + this.uploadSuccess.emit(data as HttpResponse); + } + } + }, + (error) => this.handleError(error), + () => this.reset(), + ); + } + } else { + this.filesDropped.emit([this.file]); + this.reset(); + } + } + + private handleError(error: HttpErrorResponse) { + const errorMessage = `Error uploading file: ${error}`; + this.alert.error(errorMessage); + this.reset(); + return throwError(() => new Error(errorMessage)); + } + + cancelUpload() { + this.uploadSub.unsubscribe(); + this.reset(); + } + + reset() { + this.file = null; + this.uploadProgress = null; + this.uploadSub = null; + } +} diff --git a/src/app/common/file-viewer/file-viewer.component.html b/src/app/common/file-viewer/file-viewer.component.html new file mode 100644 index 000000000..476c76b46 --- /dev/null +++ b/src/app/common/file-viewer/file-viewer.component.html @@ -0,0 +1,23 @@ +
+ @if (blobUrl && fileType === 'pdf') { @if (!loaded) { + + } + + + } @if (fileType === 'html') { +
+ +
+ } +
diff --git a/src/app/common/file-viewer/file-viewer.component.scss b/src/app/common/file-viewer/file-viewer.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/common/file-viewer/file-viewer.component.spec.ts b/src/app/common/file-viewer/file-viewer.component.spec.ts new file mode 100644 index 000000000..bfec618b8 --- /dev/null +++ b/src/app/common/file-viewer/file-viewer.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FileViewerComponent } from './file-viewer.component'; + +describe('FileViewerComponent', () => { + let component: FileViewerComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ FileViewerComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(FileViewerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/common/file-viewer/file-viewer.component.ts b/src/app/common/file-viewer/file-viewer.component.ts new file mode 100644 index 000000000..2c5bd01c7 --- /dev/null +++ b/src/app/common/file-viewer/file-viewer.component.ts @@ -0,0 +1,117 @@ +import { Component, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'; +import { FileDownloaderService } from '../file-downloader/file-downloader.service'; +import { HttpResponse } from '@angular/common/http'; +import { PDFProgressData } from 'ng2-pdf-viewer'; +import { AlertService } from '../services/alert.service'; + +/** + * The file viewer downloads a file from a URL and displays it's contents. + */ +@Component({ + selector: 'f-file-viewer', + templateUrl: './file-viewer.component.html', + styleUrls: ['./file-viewer.component.scss'], +}) +export class FileViewerComponent implements OnDestroy, OnChanges { + /** + * The source of the resource to download from the server. + */ + @Input() src: string; + + /** + * The kind of file being displayed. + */ + @Input() fileType: string; + + /** + * A copy of the source URL, so we can release the blob when the URL changes. + */ + private _src: string; + + /** + * The url of the blob downloaded - so we can render it. + */ + protected blobUrl: string; + + /** + * Used to indicate the PDF has been loaded. + */ + public loaded = false; + + protected pdfLoadingProgressPercentage = 0; + + protected onProgress(progress: PDFProgressData) { + this.pdfLoadingProgressPercentage = Math.round(progress.loaded / progress.total); + } + + /** + * Create the file viewer + * + * @param fileDownloader is used to download the resources from the api + * @param alerts is used to render alerts + */ + constructor(private fileDownloader: FileDownloaderService, private alertService: AlertService) {} + + /** + * When destroyed, the component must free its resources. + */ + ngOnDestroy(): void { + if (this.blobUrl) { + this.fileDownloader.releaseBlob(this.blobUrl); + this.blobUrl = null; + } + } + + /** + * When the src or fileType changes, the component must update the blob url. + * @param changes the changes that have occurred to the component + */ + ngOnChanges(changes: SimpleChanges): void { + this.srcChanges(changes.src.currentValue); + } + + /** + * Process changes to the src url. + * + * @param value the new src value` + */ + private srcChanges(value: string): void { + if (this._src !== value) { + // Free the memory used by the old resource blob + if (this.blobUrl) { + this.fileDownloader.releaseBlob(this.blobUrl); + this.blobUrl = null; + } + + // Get the new blob + this._src = value; + this.loaded = false; + this.downloadBlob(value); + } + } + + /** + * Download the resource, and store in blob to render in component. + * + * @param downloadUrl the url to download the blob from + */ + private downloadBlob(downloadUrl: string): void { + this.fileDownloader.downloadBlob( + downloadUrl, + (url: string, response: HttpResponse) => { + this.blobUrl = url; + }, + (error: any) => { + this.alertService.error(`Error downloading resource. ${error}`); + } + ); + } + + /** + * Triggered on pdf load - trigger resize and set loaded to true to render the pdf. + */ + onLoaded() { + this.loaded = true; + window.dispatchEvent(new Event('resize')); + } +} diff --git a/src/app/common/filters/filters.coffee b/src/app/common/filters/filters.coffee index 8511c42c2..e2a2d51ec 100644 --- a/src/app/common/filters/filters.coffee +++ b/src/app/common/filters/filters.coffee @@ -46,7 +46,7 @@ angular.module("doubtfire.common.filters", []) .filter('studentsWithPlagiarism', -> (input) -> if input - _.filter input, (student) -> (student?) && student.maxPctCopy > 0 + _.filter input, (student) -> (student?) && student.similarityFlag else input ) @@ -70,7 +70,7 @@ angular.module("doubtfire.common.filters", []) .filter('taskWithPlagiarism', -> (input) -> if input - _.filter input, (task) -> (task?) && task.pctSimilar > 0 + _.filter input, (task) -> (task?) && task.similarityFlag else input ) diff --git a/src/app/common/filters/task-definition-name.pipe.ts b/src/app/common/filters/task-definition-name.pipe.ts new file mode 100644 index 000000000..155595d2f --- /dev/null +++ b/src/app/common/filters/task-definition-name.pipe.ts @@ -0,0 +1,19 @@ + +import { Pipe, PipeTransform } from '@angular/core'; +import { Task, TaskDefinition } from '../../api/models/doubtfire-model'; + +@Pipe({ + name: 'taskDefinitionName', +}) +export class TaskDefinitionNamePipe implements PipeTransform { + transform(taskDefinitions: TaskDefinition[], searchName: string): TaskDefinition[] { + searchName = searchName.toLowerCase(); + return taskDefinitions.filter( // use lodash filter? + (td) => { + return td.name.toLowerCase().includes(searchName) || + td.abbreviation.toLowerCase().includes(searchName) || + td.targetGradeText.toLowerCase().includes(searchName) + } + ) + } +} diff --git a/src/app/common/filters/tasks-for-inbox-search.pipe.ts b/src/app/common/filters/tasks-for-inbox-search.pipe.ts index 8e84f6c50..3b507ba43 100644 --- a/src/app/common/filters/tasks-for-inbox-search.pipe.ts +++ b/src/app/common/filters/tasks-for-inbox-search.pipe.ts @@ -1,15 +1,21 @@ import { Pipe, PipeTransform } from '@angular/core'; +import { Task } from 'src/app/api/models/task'; @Pipe({ name: 'tasksWithStudentName', }) export class TasksForInboxSearchPipe implements PipeTransform { - transform(tasks: any[], searchText: string): any[] { - if ((searchText == null) || (tasks == null)) { return tasks; } - const searchTerms = searchText.toLowerCase().split(/&|[|]|,/).map(term => term.trim()); - const operators = searchText.replace(/[^&|,]/g, '').split('') + transform(tasks: Task[], searchText: string): Task[] { + if (searchText == null || tasks == null) { + return tasks; + } + const searchTerms = searchText + .toLowerCase() + .split(/&|[|]|,/) + .map((term) => term.trim()); + const operators = searchText.replace(/[^&|,]/g, '').split(''); - return tasks.filter((task: { matches: (text: string) => boolean }) => + return tasks.filter((task: Task) => searchTerms .map((term: string) => task.matches(term)) .reduce((prev: boolean, current: boolean, currentIndex: number) => diff --git a/src/app/common/footer/footer.component.html b/src/app/common/footer/footer.component.html index aeb0ac405..085cbf734 100644 --- a/src/app/common/footer/footer.component.html +++ b/src/app/common/footer/footer.component.html @@ -1,112 +1,153 @@ - - - - - - - - - + Similarities flagged for {{ selectedTask?.project.student.name }} +

+ + } -
- - - - - - - - - - - - - {{ selectedTask?.project.targetGradeAcronym }} - + + +
+ @if (selectedTask?.similaritiesDetected) { + + } + + + + + + + + + + + + + + + {{ selectedTask?.project.targetGradeAcronym }} + +
diff --git a/src/app/common/footer/footer.component.scss b/src/app/common/footer/footer.component.scss index 7c0c2ccc7..ca55371d5 100644 --- a/src/app/common/footer/footer.component.scss +++ b/src/app/common/footer/footer.component.scss @@ -1,4 +1,6 @@ .footer { + min-height: 85px; + .spacer { flex: 1 1 auto; } @@ -16,6 +18,10 @@ transform: scale(1.15); background-color: white; } + + .large-button:hover { + background-color: #f5f5f5; + } } .small-icon { @@ -23,7 +29,7 @@ margin: 0 -2px; } - .mat-icon-button { + .mat-mdc-icon-button { margin: 0 -6px; } @@ -32,5 +38,4 @@ margin-left: 20px; margin-right: 25px; } - } diff --git a/src/app/common/footer/footer.component.ts b/src/app/common/footer/footer.component.ts index 46af3158a..2e4d3ff1e 100644 --- a/src/app/common/footer/footer.component.ts +++ b/src/app/common/footer/footer.component.ts @@ -1,9 +1,9 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core'; import { Observable } from 'rxjs'; import { Task } from 'src/app/api/models/task'; import { SelectedTaskService } from 'src/app/projects/states/dashboard/selected-task.service'; -import { FileDownloaderService } from '../file-downloader/file-downloader'; +import { FileDownloaderService } from '../file-downloader/file-downloader.service'; @Component({ selector: 'f-footer', @@ -11,17 +11,45 @@ import { FileDownloaderService } from '../file-downloader/file-downloader'; styleUrls: ['./footer.component.scss'], }) export class FooterComponent implements OnInit { - constructor(private selectedTaskService: SelectedTaskService, private fileDownloader: FileDownloaderService) {} + constructor(public selectedTaskService: SelectedTaskService, private fileDownloader: FileDownloaderService) {} selectedTask$: Observable; selectedTask: Task; + @ViewChild('similaritiesButton', { static: false, read: ElementRef }) similaritiesButton: ElementRef; + @ViewChild('warningText', { static: false, read: ElementRef }) warningText: ElementRef; + public leftOffset: number; + public topOffset: number; + public warningTextLeftOffset: number; + + @HostListener('window:resize', ['$event']) + onResize(event) { + // After window resizes, calc the location of the elements again + this.findSimilaritiesButton(); + } + + findSimilaritiesButton() { + if (!this.selectedTask?.similaritiesDetected) return; + + const w = this.similaritiesButton?.nativeElement.getBoundingClientRect().width; + this.leftOffset = this.similaritiesButton?.nativeElement.offsetLeft + w / 2; + this.topOffset = this.similaritiesButton?.nativeElement.offsetTop - 14; + + const totalPaddingOffset = 30; + this.warningTextLeftOffset = + this.leftOffset - (this.warningText?.nativeElement.getBoundingClientRect().width + totalPaddingOffset) / 2; + } + ngOnInit(): void { // watch for changes to the selected task this.selectedTask$ = this.selectedTaskService.selectedTask$; this.selectedTask$.subscribe((task) => { this.selectedTask = task; + // We need to timeout to give the DOM a chance to place the elements + setTimeout(() => { + this.findSimilaritiesButton(); + }, 10); }); } @@ -46,4 +74,8 @@ export class FooterComponent implements OnInit { viewSubmission() { this.selectedTaskService.showSubmission(); } + + viewSimilarity() { + this.selectedTaskService.showSimilarity(); + } } diff --git a/src/app/common/header/header.component.html b/src/app/common/header/header.component.html index ef7a541a5..f63f4e5cc 100644 --- a/src/app/common/header/header.component.html +++ b/src/app/common/header/header.component.html @@ -1,22 +1,23 @@ +@if (showHeader) { - + @if (!media.isActive('xs')) { + + } - + + - + + @if (currentUser.role === 'Admin' || currentUser.role === 'Convenor') { + } - - - - + } + + @if (currentUser.role === 'Admin') { + + } - - - - + + + + +} diff --git a/src/app/common/header/header.component.spec.ts b/src/app/common/header/header.component.spec.ts index a2ba2c5a4..bc07fb1f5 100644 --- a/src/app/common/header/header.component.spec.ts +++ b/src/app/common/header/header.component.spec.ts @@ -1,5 +1,5 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu'; +import { MatMenuModule } from '@angular/material/menu'; import { BehaviorSubject, Subject } from 'rxjs'; import { Project, Unit, UnitRole } from 'src/app/api/models/doubtfire-model'; import { GlobalStateService, ViewType } from 'src/app/projects/states/index/global-state.service'; @@ -22,7 +22,7 @@ describe('HeaderComponent', () => { const showHideHeader = new Subject(); const unitRolesSubject = new BehaviorSubject(null); const projectsSubject = new BehaviorSubject(null); - const currentViewAndEntitySubject = new BehaviorSubject<{ viewType: ViewType; entity: Unit | Project | UnitRole }>( + const currentViewAndEntitySubject$ = new BehaviorSubject<{ viewType: ViewType; entity: Unit | Project | UnitRole }>( null ); @@ -34,7 +34,7 @@ describe('HeaderComponent', () => { showHideHeader: showHideHeader, unitRolesSubject: unitRolesSubject, projectsSubject: projectsSubject, - currentViewAndEntitySubject: currentViewAndEntitySubject, + currentViewAndEntitySubject$: currentViewAndEntitySubject$, }; TestBed.configureTestingModule({ diff --git a/src/app/common/header/header.component.ts b/src/app/common/header/header.component.ts index 584ff20e4..9bdedb7ad 100644 --- a/src/app/common/header/header.component.ts +++ b/src/app/common/header/header.component.ts @@ -1,19 +1,21 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import { Component, Inject, OnDestroy, OnInit } from '@angular/core'; import { aboutDoubtfireModal, calendarModal } from 'src/app/ajs-upgraded-providers'; import { CheckForUpdateService } from 'src/app/sessions/service-worker-updater/check-for-update.service'; import { GlobalStateService, ViewType } from 'src/app/projects/states/index/global-state.service'; import { IsActiveUnitRole } from '../pipes/is-active-unit-role.pipe'; import { UserService } from 'src/app/api/services/user.service'; -import { AuthenticationService, Project, Unit, UnitRole, User } from 'src/app/api/models/doubtfire-model'; +import { AuthenticationService, Project, Task, Unit, UnitRole, User } from 'src/app/api/models/doubtfire-model'; import { Subscription } from 'rxjs'; import { MediaObserver } from '@angular/flex-layout'; + @Component({ selector: 'app-header', templateUrl: './header.component.html', styleUrls: ['./header.component.scss'], }) export class HeaderComponent implements OnInit, OnDestroy { - task: any; + task: Task; data: { isTutor: boolean } = { isTutor: false, }; @@ -35,10 +37,10 @@ export class HeaderComponent implements OnInit, OnDestroy { @Inject(aboutDoubtfireModal) private AboutDoubtfireModal, private isActiveUnitRole: IsActiveUnitRole, private checkForUpdateService: CheckForUpdateService, - private globalState: GlobalStateService, + protected globalState: GlobalStateService, private userService: UserService, private authService: AuthenticationService, - private media: MediaObserver + protected media: MediaObserver, ) {} ngOnInit(): void { @@ -47,8 +49,9 @@ export class HeaderComponent implements OnInit, OnDestroy { next: (shouldShow) => { this.showHeader = shouldShow; }, + // eslint-disable-next-line @typescript-eslint/no-unused-vars error: (err) => {}, - }) + }), ); this.subscriptions.push( @@ -62,7 +65,7 @@ export class HeaderComponent implements OnInit, OnDestroy { .filter((role) => this.isUniqueRole(role)); }, error: (err) => {}, - }) + }), ); this.subscriptions.push( @@ -72,12 +75,12 @@ export class HeaderComponent implements OnInit, OnDestroy { this.projects = projects; }, error: (err) => {}, - }) + }), ); // get the current active unit or project this.subscriptions.push( - this.globalState.currentViewAndEntitySubject.subscribe({ + this.globalState.currentViewAndEntitySubject$.subscribe({ next: (currentViewAndEntity) => { this.currentView = currentViewAndEntity?.viewType; @@ -90,8 +93,9 @@ export class HeaderComponent implements OnInit, OnDestroy { this.currentProject = null; } }, - error: (err) => {}, - }) + // eslint-disable-next-line @typescript-eslint/no-unused-vars + error: (_err) => {}, + }), ); } @@ -100,7 +104,8 @@ export class HeaderComponent implements OnInit, OnDestroy { } isUniqueRole = (unit) => { - let units = this.unitRoles.filter((role: any) => role.unit.id === unit.unit.id); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const units = this.unitRoles.filter((role: any) => role.unit.id === unit.unit.id); return units.length == 1 || unit.role == 'Tutor'; }; diff --git a/src/app/common/header/task-dropdown/task-dropdown.component.html b/src/app/common/header/task-dropdown/task-dropdown.component.html index fd680e4b0..52f5efad0 100644 --- a/src/app/common/header/task-dropdown/task-dropdown.component.html +++ b/src/app/common/header/task-dropdown/task-dropdown.component.html @@ -1,167 +1,126 @@ -
- -
/
- - - - - + + @if (currentView === 'PROJECT' && currentProject !== null && currentUnit.currentUserIsStaff) { + + chevron_right + + + + + + + + + + - - - - - - - - - - - + } +
+ - - / - - - - - - - - - - - - - - - - - - - - - - + } @if (currentActivity) { + + chevron_right + + + @if (currentProject !== null && currentView === 'PROJECT') { + + + + + + + + + + } @if (unitRole && currentView === 'UNIT') { + + + @if (unitRole.role !== 'Admin') { + + } @if (unitRole.role !== 'Admin') { + + } @if (unitRole.role !== 'Admin') { + + } @if (unitRole.role !== 'Admin') { + + } + + @if (unitRole.role !== 'Admin') { + + } @if (unitRole.role !== 'Admin') { + + } @if (unitRole.role !== 'Admin') { + + } @if (unitRole.role !== 'Admin') { + + } + + @if (unitRole.role !== 'Admin') { + + } @if (unitRole.role === 'Convenor' || unitRole.role === 'Admin') { + + } } + - - - - - - - -
+ } + diff --git a/src/app/common/header/task-dropdown/task-dropdown.component.scss b/src/app/common/header/task-dropdown/task-dropdown.component.scss index 73f3dd699..b9cee1b63 100644 --- a/src/app/common/header/task-dropdown/task-dropdown.component.scss +++ b/src/app/common/header/task-dropdown/task-dropdown.component.scss @@ -1,7 +1,6 @@ .mat-icon { color: black; - margin-right: 0; - transform: scale(0.8); + overflow: initial; } .task-dropdown-heading { @@ -12,3 +11,7 @@ padding-top: 6px; margin-bottom: 0; } + +.mat-icon.f-breadcrumb { + color: rgb(221, 221, 221); +} diff --git a/src/app/common/header/task-dropdown/task-dropdown.component.ts b/src/app/common/header/task-dropdown/task-dropdown.component.ts index 337db7eae..f905c7b82 100644 --- a/src/app/common/header/task-dropdown/task-dropdown.component.ts +++ b/src/app/common/header/task-dropdown/task-dropdown.component.ts @@ -23,7 +23,6 @@ export class TaskDropdownComponent { 'Staff Tasks': 'Staff Tasks', 'Student Groups': 'Groups', 'Student List': 'Students', - 'Student Plagiarism': 'Plagiarism', 'Student Portfolios': 'Portfolios', 'Task Explorer': 'Task Explorer', 'Task Inbox': 'Inbox', diff --git a/src/app/common/header/unit-dropdown/unit-dropdown.component.html b/src/app/common/header/unit-dropdown/unit-dropdown.component.html index 3feb49466..c6d5097e4 100644 --- a/src/app/common/header/unit-dropdown/unit-dropdown.component.html +++ b/src/app/common/header/unit-dropdown/unit-dropdown.component.html @@ -1,79 +1,72 @@ -
- + @if (unit) { +
- - {{ unit?.code }} - {{ menuState.menuOpen ? 'arrow_drop_up' : 'arrow_drop_down' }} - - - -
+ } @if (!unit) { + + - + + + + }
- - + } @if (media.isActive('xs')) { + + }
Units you teach
-
- + @for (unitRole of unitRoles; track unitRole) { @if (!unitRole.unit.teachingPeriod || + unitRole.unit.teachingPeriod?.active) { +
+
+
{{ unitRole.unit.name }}
+
+ + {{ unitRole.unit.code }} + +
+ } }
Units You Study
-
- -
+ @for (project of projects; track project) { @if (!project.unit.teachingPeriod || project.unit.teachingPeriod.active) { + + } } diff --git a/src/app/common/header/unit-dropdown/unit-dropdown.component.scss b/src/app/common/header/unit-dropdown/unit-dropdown.component.scss index 359b7e389..ffa6ce375 100644 --- a/src/app/common/header/unit-dropdown/unit-dropdown.component.scss +++ b/src/app/common/header/unit-dropdown/unit-dropdown.component.scss @@ -1,6 +1,21 @@ -::ng-deep .mat-menu-panel.unit-dropdown-menu { - max-width: 400px; - width: 400px; +@import '../../../../theme.scss'; + +::ng-deep .unit-dropdown-menu.mat-mdc-menu-panel { + max-width: 400px !important; + min-width: 400px !important; + width: 400px !important; +} + +::ng-deep .mdc-list-item__primary-text { + width: 100%; +} + +::ng-deep .mat-mdc-menu-item-text { + width: 100%; +} + +::ng-deep .mat-mdc-menu-item { + width: 100%; } .unitName { @@ -8,3 +23,11 @@ text-overflow: ellipsis; overflow: hidden; } + +mat-chip-option.f-chip { + background-color: $primary-color; + color: white; + font-style: bold; + opacity: 1; + --mdc-chip-disabled-label-text-color: white; +} diff --git a/src/app/common/header/unit-dropdown/unit-dropdown.component.spec.ts b/src/app/common/header/unit-dropdown/unit-dropdown.component.spec.ts index da6011b94..c3da5ae9f 100644 --- a/src/app/common/header/unit-dropdown/unit-dropdown.component.spec.ts +++ b/src/app/common/header/unit-dropdown/unit-dropdown.component.spec.ts @@ -1,5 +1,5 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu'; +import { MatMenuModule } from '@angular/material/menu'; import { dateService } from 'src/app/ajs-upgraded-providers'; import { UnitDropdownComponent } from './unit-dropdown.component'; diff --git a/src/app/common/hero-sidebar/hero-sidebar.component.html b/src/app/common/hero-sidebar/hero-sidebar.component.html index 70adc87b8..6578781ae 100644 --- a/src/app/common/hero-sidebar/hero-sidebar.component.html +++ b/src/app/common/hero-sidebar/hero-sidebar.component.html @@ -4,7 +4,7 @@ Homepage Logo

{{ externalName.value }}

-

Manage your learning, with feedback you'll want to receive.

+

Manage your learning, with feedback you'll want to receive.

diff --git a/src/app/common/long-press/on-long-press.coffee b/src/app/common/long-press/on-long-press.coffee deleted file mode 100644 index ac4a7efe7..000000000 --- a/src/app/common/long-press/on-long-press.coffee +++ /dev/null @@ -1,31 +0,0 @@ - -angular.module('doubtfire.common.on-long-press', []) - .directive('onLongPress', ($timeout) -> - return { - restrict: 'A' - link: ($scope, $elm, $attrs) -> - $elm.bind 'touchstart', (evt) -> - # Locally scoped variable that will keep track of the long press - $scope.longPress = true - # We'll set a timeout for 600 ms for a long press - $timeout (-> - if $scope.longPress - # If the touchend event hasn't fired, - # apply the function given in on the element's on-long-press attribute - $scope.$apply -> - $scope.$eval $attrs.onLongPress - return - return - ), 600 - - $elm.bin 'touchend', (evt) -> - # Prevent the onLongPress event from firing - $scope.longPress = false - # If there is an on-touch-end function attached to this element, apply it - if $attrs.onTouchEnd - $scope.$apply -> - $scope.$eval $attrs.onTouchEnd - return - return - } -) diff --git a/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal-content.tpl.html b/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal-content.tpl.html index d20697066..08c5fd09b 100644 --- a/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal-content.tpl.html +++ b/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal-content.tpl.html @@ -3,68 +3,66 @@

{{data.externalName}} - - Powered By formatif - - - Version 6 - + Powered By formatif + Version 6

diff --git a/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.component.ts b/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.component.ts index bdab8a9af..a0fdbc70d 100644 --- a/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.component.ts +++ b/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.component.ts @@ -6,7 +6,7 @@ import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants import { AboutDoubtfireModalService } from '../about-doubtfire-modal/about-doubtfire-modal.service'; import { GithubProfile } from './github-profile'; -import { MatLegacyDialog as MatDialog, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { AboutDialogData } from './about-dialog-data'; import { Sort } from '@angular/material/sort'; diff --git a/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.scss b/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.scss index 9e50ce64b..53ee58dac 100644 --- a/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.scss +++ b/src/app/common/modals/about-doubtfire-modal/about-doubtfire-modal.scss @@ -2,6 +2,7 @@ display: none !important; } +/* TODO(mdc-migration): The following rule targets internal classes of dialog that may no longer apply for the MDC version. */ mat-dialog-content { i.logo + h1.logo { margin-left: 1ex; diff --git a/src/app/common/modals/calendar-modal/calendar-modal.component.html b/src/app/common/modals/calendar-modal/calendar-modal.component.html index 0cc8646cc..ad4bddd47 100644 --- a/src/app/common/modals/calendar-modal/calendar-modal.component.html +++ b/src/app/common/modals/calendar-modal/calendar-modal.component.html @@ -17,158 +17,160 @@

Web calendar

- - - + @if (!webcal) { - - Your web calendar is currently {{ webcal.enabled ? 'enabled' : 'disabled' }}. + + + } -
-

- The web calendar displays due dates of your tasks as calendar events in an iCalendar that can be added to any - iCalendar client (e.g. Outlook/Google/iCloud calendar). -

-
- + @if (webcal) { + + Your web calendar is currently {{ webcal.enabled ? 'enabled' : 'disabled' }}. -
-

- The web calendar displays due dates of your tasks as calendar events. Use the following URL to subscribe to - your web calendar from your iCalendar client. -

+ @if (!webcal.enabled) { +
+

+ The web calendar displays due dates of your tasks as calendar events in an iCalendar that can be added to any + iCalendar client (e.g. Outlook/Google/iCloud calendar). +

+
+ } + + + @if (webcal.enabled) { +
+

+ The web calendar displays due dates of your tasks as calendar events. Use the following URL to subscribe to your + web calendar from your iCalendar client. +

+
+
- -
- - -
+ +
- +
+ - -

Options

+ +

Options

-
- Included units in my calendar: -
+
+ Included units in my calendar: +
-
- - - {{ project.unit.code }} - cancel - - - add - - - - - -
- +
+ + @for (project of includedProjects; track project) { + + {{ project.unit.code }} + cancel + + } @if (excludedProjects.length > 0) { + + add + + @for (project of excludedProjects; track project) { + + } + + + } + +
+ - - Remind me - - - Time - - - - Unit - - Weeks - Days - Hours - Minutes - - - before each event - - - - + @if ( (!webcal.reminder && newReminderActive) || (webcal.reminder && (newReminderTime !== webcal.reminder.time + || newReminderUnit !== webcal.reminder.unit)) ) { -
+ + + } - - Include task start dates in web calendar +
-
- -
-
-
- + + Include task start dates in web calendar + +
+ +
+ +
+ } + + }
diff --git a/src/app/common/modals/calendar-modal/calendar-modal.component.ts b/src/app/common/modals/calendar-modal/calendar-modal.component.ts index 00576c896..558f04697 100644 --- a/src/app/common/modals/calendar-modal/calendar-modal.component.ts +++ b/src/app/common/modals/calendar-modal/calendar-modal.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, Inject, ViewChild, AfterViewInit } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; -import { MatLegacySlideToggle as MatSlideToggle } from '@angular/material/legacy-slide-toggle'; +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatSlideToggle } from '@angular/material/slide-toggle'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; import { Project, ProjectService, Webcal, WebcalService } from 'src/app/api/models/doubtfire-model'; import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; diff --git a/src/app/common/modals/calendar-modal/calendar-modal.service.ts b/src/app/common/modals/calendar-modal/calendar-modal.service.ts index fd06af104..37ddb1d51 100644 --- a/src/app/common/modals/calendar-modal/calendar-modal.service.ts +++ b/src/app/common/modals/calendar-modal/calendar-modal.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog'; import { CalendarModalComponent } from './calendar-modal.component'; @Injectable({ diff --git a/src/app/common/modals/edit-profile-dialog/edit-profile-dialog.service.ts b/src/app/common/modals/edit-profile-dialog/edit-profile-dialog.service.ts index 91fbf6af3..7541f6dd4 100644 --- a/src/app/common/modals/edit-profile-dialog/edit-profile-dialog.service.ts +++ b/src/app/common/modals/edit-profile-dialog/edit-profile-dialog.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { User } from 'src/app/api/models/doubtfire-model'; import { EditProfileFormComponent } from '../../edit-profile-form/edit-profile-form.component'; @@ -11,6 +11,7 @@ export class EditProfileDialogService { openDialog(user: User): void { this.dialog.open(EditProfileFormComponent, { + width: '800px', data: { user, mode: 'edit' }, }); } diff --git a/src/app/common/modals/extension-modal/extension-modal.component.html b/src/app/common/modals/extension-modal/extension-modal.component.html index c7cdb9777..9c1e900df 100644 --- a/src/app/common/modals/extension-modal/extension-modal.component.html +++ b/src/app/common/modals/extension-modal/extension-modal.component.html @@ -1,23 +1,38 @@

Extension request

-

Please explain why you require an extension for this task,
- The teaching team will assess the - request shortly.

+

+ Please explain why you require an extension for this task,
+ The teaching team will assess the request shortly. +

- - - {{reason.length}} / 256 + + + {{ reason.length }} / 256 -

Requesting extension to: {{newDueDate}}

- +

Requesting extension to: {{ newDueDate }}

+
- -
\ No newline at end of file + + diff --git a/src/app/common/modals/extension-modal/extension-modal.component.ts b/src/app/common/modals/extension-modal/extension-modal.component.ts index 9f6148456..1926fb2b2 100644 --- a/src/app/common/modals/extension-modal/extension-modal.component.ts +++ b/src/app/common/modals/extension-modal/extension-modal.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Inject, LOCALE_ID } from '@angular/core'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { alertService } from 'src/app/ajs-upgraded-providers'; import { ExtensionComment } from 'src/app/api/models/task-comment/extension-comment'; import { TaskComment, TaskCommentService, Task } from 'src/app/api/models/doubtfire-model'; diff --git a/src/app/common/modals/extension-modal/extension-modal.service.ts b/src/app/common/modals/extension-modal/extension-modal.service.ts index 83f91cdbe..6a06eae30 100644 --- a/src/app/common/modals/extension-modal/extension-modal.service.ts +++ b/src/app/common/modals/extension-modal/extension-modal.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { Task } from 'src/app/api/models/task'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog'; import { ExtensionModalComponent } from './extension-modal.component'; @Injectable({ diff --git a/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.html b/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.html index ee37dd625..080a65cfd 100644 --- a/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.html +++ b/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.html @@ -1,13 +1,15 @@

Overseer Assessment

- +
- + }
diff --git a/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.scss b/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.scss index f1e44e383..c9e26fca5 100644 --- a/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.scss +++ b/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.scss @@ -1,10 +1,13 @@ -mat-dialog-container.mat-dialog-container { + +/* TODO(mdc-migration): The following rule targets internal classes of dialog that may no longer apply for the MDC version. */ +/* TODO(mdc-migration): The following rule targets internal classes of dialog that may no longer apply for the MDC version. */ +mat-dialog-container.mat-mdc-dialog-container { padding-top: 0; padding: 4; max-height: unset; } -.mat-dialog-title{ +.mat-mdc-dialog-title{ padding-top: 0; margin: 1em; } diff --git a/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.ts b/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.ts index fcef66637..3104c2255 100644 --- a/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.ts +++ b/src/app/common/modals/task-assessment-modal/task-assessment-modal.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, Inject, Input, ViewChild } from '@angular/core'; import { alertService } from 'src/app/ajs-upgraded-providers'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import {Subject} from 'rxjs'; import { Task } from 'src/app/api/models/doubtfire-model'; diff --git a/src/app/common/modals/task-assessment-modal/task-assessment-modal.service.ts b/src/app/common/modals/task-assessment-modal/task-assessment-modal.service.ts index 97c8a6211..927c861a0 100644 --- a/src/app/common/modals/task-assessment-modal/task-assessment-modal.service.ts +++ b/src/app/common/modals/task-assessment-modal/task-assessment-modal.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog'; import {TaskAssessmentModalComponent} from './task-assessment-modal.component'; @Injectable({ diff --git a/src/app/common/obect-select/object-select.component.html b/src/app/common/obect-select/object-select.component.html index 3ef6da769..a553ccd7c 100644 --- a/src/app/common/obect-select/object-select.component.html +++ b/src/app/common/obect-select/object-select.component.html @@ -1,16 +1,21 @@ - {{ label }} + @if (label) { + {{ label }} + } - + @if (placeholder) { + {{ placeholder }} - + } @for (element of source; track element) { + {{ element.text }} + } diff --git a/src/app/common/obect-select/object-select.component.ts b/src/app/common/obect-select/object-select.component.ts index d96b42b33..278925d7a 100644 --- a/src/app/common/obect-select/object-select.component.ts +++ b/src/app/common/obect-select/object-select.component.ts @@ -1,5 +1,5 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { MatLegacySelectChange as MatSelectChange } from '@angular/material/legacy-select'; +import { MatSelectChange } from '@angular/material/select'; /** * Object select component used to overcome limitations with the angularjs version used. diff --git a/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.html b/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.html index 8ecae7783..c9b236630 100644 --- a/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.html +++ b/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.html @@ -4,16 +4,20 @@ - diff --git a/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.spec.ts b/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.spec.ts index b52a95744..d9b08196f 100644 --- a/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.spec.ts +++ b/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { HttpClientModule } from '@angular/common/http'; -import { FileDownloaderService } from '../file-downloader/file-downloader'; +import { FileDownloaderService } from '../file-downloader/file-downloader.service'; import { PdfViewerPanelComponent } from './pdf-viewer-panel.component'; describe('PdfViewerPanelComponent', () => { diff --git a/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.ts b/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.ts index d5c56da51..1d5a948ef 100644 --- a/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.ts +++ b/src/app/common/pdf-viewer-panel/pdf-viewer-panel.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input, Inject } from '@angular/core'; -import { FileDownloaderService } from '../file-downloader/file-downloader'; +import { FileDownloaderService } from '../file-downloader/file-downloader.service'; @Component({ selector: 'pdf-viewer-panel', diff --git a/src/app/common/pdf-viewer/pdf-viewer.component.html b/src/app/common/pdf-viewer/pdf-viewer.component.html index 89422da86..f1b4cd522 100644 --- a/src/app/common/pdf-viewer/pdf-viewer.component.html +++ b/src/app/common/pdf-viewer/pdf-viewer.component.html @@ -14,13 +14,14 @@ + @if (pdfBlobUrl) { + } diff --git a/src/app/common/pdf-viewer/pdf-viewer.component.scss b/src/app/common/pdf-viewer/pdf-viewer.component.scss index 50a8f2489..6942d03e8 100644 --- a/src/app/common/pdf-viewer/pdf-viewer.component.scss +++ b/src/app/common/pdf-viewer/pdf-viewer.component.scss @@ -12,20 +12,26 @@ align-items: center; } - #pdfActions { + padding-top: 1rem; + padding-right: 1rem; margin-left: auto; - ::ng-deep .mat-form-field-outline-start { - border-radius: 28px 0 0 28px !important; + ::ng-deep .mdc-notched-outline__leading { min-width: 28px !important; + border-top-left-radius: 28px !important; + border-bottom-left-radius: 28px !important; + } + ::ng-deep .mdc-notched-outline__notch { + border-radius: 28px 0 0 28px !important; + } + ::ng-deep .mdc-notched-outline__trailing { + border-radius: 0 28px 28px 0 !important; } - ::ng-deep .mat-form-field-outline-end { border-radius: 0 28px 28px 0 !important; } - - ::ng-deep .mat-form-field-infix { + ::ng-deep .mat-mdc-form-field-flex { display: flex; flex-direction: row; align-items: center; @@ -33,9 +39,7 @@ } button { - width: 24px; - height: 24px; - line-height: 24px; + margin-left: -12px; } } diff --git a/src/app/common/pdf-viewer/pdf-viewer.component.ts b/src/app/common/pdf-viewer/pdf-viewer.component.ts index 30cc7be93..f35dd6dac 100644 --- a/src/app/common/pdf-viewer/pdf-viewer.component.ts +++ b/src/app/common/pdf-viewer/pdf-viewer.component.ts @@ -2,7 +2,7 @@ import { HttpResponse } from '@angular/common/http'; import { Component, Input, Inject, OnDestroy, SimpleChanges, OnChanges, ViewChild } from '@angular/core'; import { PdfViewerComponent } from 'ng2-pdf-viewer'; import { alertService } from 'src/app/ajs-upgraded-providers'; -import { FileDownloaderService } from '../file-downloader/file-downloader'; +import { FileDownloaderService } from '../file-downloader/file-downloader.service'; @Component({ selector: 'f-pdf-viewer', @@ -12,7 +12,6 @@ import { FileDownloaderService } from '../file-downloader/file-downloader'; export class fPdfViewerComponent implements OnDestroy, OnChanges { private _pdfUrl: string; public pdfBlobUrl: string; - public progressPercentage = 0; @Input() pdfUrl: string; @ViewChild(PdfViewerComponent) private pdfComponent: PdfViewerComponent; pdfSearchString: string; @@ -27,6 +26,7 @@ export class fPdfViewerComponent implements OnDestroy, OnChanges { ngOnDestroy(): void { if (this.pdfBlobUrl) { this.fileDownloader.releaseBlob(this.pdfBlobUrl); + this.pdfBlobUrl = null; } } @@ -83,10 +83,6 @@ export class fPdfViewerComponent implements OnDestroy, OnChanges { ); } - onProgress(progressData: { loaded; total }) { - this.progressPercentage = Math.round((progressData.loaded / progressData.total) * 100); - } - onLoaded() { this.loaded = true; window.dispatchEvent(new Event('resize')); diff --git a/src/app/common/pipes/humanized-date.pipe.ts b/src/app/common/pipes/humanized-date.pipe.ts index 3e0c8807f..fcffa6ae6 100644 --- a/src/app/common/pipes/humanized-date.pipe.ts +++ b/src/app/common/pipes/humanized-date.pipe.ts @@ -1,5 +1,5 @@ import { Pipe, PipeTransform } from '@angular/core'; -import * as moment from 'moment'; +import moment from 'moment'; @Pipe({ name: 'humanizedDate', diff --git a/src/app/common/services/alert-service.service.spec.ts b/src/app/common/services/alert-service.service.spec.ts new file mode 100644 index 000000000..e2a7a5e97 --- /dev/null +++ b/src/app/common/services/alert-service.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AlertService } from './alert.service'; + +describe('AlertServiceService', () => { + let service: AlertService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AlertService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/common/services/alert.service.ts b/src/app/common/services/alert.service.ts new file mode 100644 index 000000000..5e01c182e --- /dev/null +++ b/src/app/common/services/alert.service.ts @@ -0,0 +1,58 @@ +import { Component, Inject, Injectable, inject } from '@angular/core'; +import { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarRef } from '@angular/material/snack-bar'; + +import { ConfettiService } from './confetti.service'; + +@Injectable({ + providedIn: 'root', +}) +export class AlertService { + constructor(private snackBar: MatSnackBar, private confetti: ConfettiService) {} + + private _openSnackBar(message: string, icon: string, duration: number = 3000): void { + this.snackBar.openFromComponent(AlertComponent, { + duration: duration, + horizontalPosition: 'end', + verticalPosition: 'top', + data: { + message: message, + icon: icon, + }, + }); + } + + public success(message: string, duration: number = 3000): void { + this._openSnackBar(message, 'check_circle_outline', duration); + } + + public error(message: string, duration: number = 5000): void { + this._openSnackBar(message, 'error_outline', duration); + } + + public message(message: string, duration: number = 3000): void { + this._openSnackBar(message, 'info_outline', duration); + } + + public celebrate(message: string, duration: number = 6000): void { + this._openSnackBar(message, 'celebration_outline', duration); + this.confetti.canon(0.95, 0.05, 210); + } +} + +@Component({ + selector: 'f-alert', + template: ` + + {{ data?.icon }} + + {{ data?.message }} + + + + `, +}) +export class AlertComponent { + snackBarRef = inject(MatSnackBarRef); + constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) {} +} diff --git a/src/app/common/services/analytics-service.coffee b/src/app/common/services/analytics-service.coffee index be621deec..971fc0f37 100644 --- a/src/app/common/services/analytics-service.coffee +++ b/src/app/common/services/analytics-service.coffee @@ -20,7 +20,7 @@ angular.module("doubtfire.common.services.analytics", []) # Do not remove this as we'd be breaching the law! return unless newUserService.currentUser.optInToResearch - if value? and typeof value isnt 'Number' and value < 0 + if value? and typeof value isnt 'number' and value < 0 throw new Error "Value needs to be a positive number" $analytics.eventTrack eventName, { category: category diff --git a/src/app/common/services/confetti.service.spec.ts b/src/app/common/services/confetti.service.spec.ts new file mode 100644 index 000000000..803fa8a93 --- /dev/null +++ b/src/app/common/services/confetti.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ConfettiService } from './confetti.service'; + +describe('ConfettiService', () => { + let service: ConfettiService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ConfettiService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/common/services/confetti.service.ts b/src/app/common/services/confetti.service.ts new file mode 100644 index 000000000..d65a3f5eb --- /dev/null +++ b/src/app/common/services/confetti.service.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import confetti from 'canvas-confetti'; + +@Injectable({ + providedIn: 'root', +}) +export class ConfettiService { + constructor() {} + + public canon(x: number = 0, y: number = 0, angle = 210): void { + confetti({ + angle: angle, + spread: 80, + particleCount: 100, + origin: { y: y, x: x }, + }); + } +} diff --git a/src/app/common/services/grade.service.ts b/src/app/common/services/grade.service.ts index 6518c82e6..6128f3d56 100644 --- a/src/app/common/services/grade.service.ts +++ b/src/app/common/services/grade.service.ts @@ -5,13 +5,19 @@ import { Project } from 'src/app/api/models/project'; providedIn: 'root', }) export class GradeService { - constructor() {} - gradeValues = [-1, 0, 1, 2, 3]; allGradeValues = this.gradeValues; - grades = ['Fale', 'Pass', 'Credit', 'Distinction', 'High Distinction']; + grades = ['Fail', 'Pass', 'Credit', 'Distinction', 'High Distinction']; + + gradeViewData = [ + { value: -1, viewValue: 'Fail' }, + { value: 0, viewValue: 'Pass' }, + { value: 1, viewValue: 'Credit' }, + { value: 2, viewValue: 'Distinction' }, + { value: 3, viewValue: 'High Distinction' }, + ]; public gradeNumbers = { F: -1, diff --git a/src/app/common/services/http-error.interceptor.ts b/src/app/common/services/http-error.interceptor.ts index 32e1f6e0b..76f5a9a4b 100644 --- a/src/app/common/services/http-error.interceptor.ts +++ b/src/app/common/services/http-error.interceptor.ts @@ -1,61 +1,52 @@ -import { - HttpEvent, - HttpInterceptor, - HttpHandler, - HttpRequest, - HttpErrorResponse -} from '@angular/common/http'; +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse } from '@angular/common/http'; import { Observable, throwError } from 'rxjs'; import { catchError } from 'rxjs/operators'; import { Injectable } from '@angular/core'; -import { GlobalStateService } from 'src/app/projects/states/index/global-state.service'; -import { AuthenticationService } from 'src/app/api/models/doubtfire-model'; +import { AuthenticationService, UserService } from 'src/app/api/models/doubtfire-model'; @Injectable() export class HttpErrorInterceptor implements HttpInterceptor { - constructor( - private authenticationService: AuthenticationService - ){} + constructor(private authenticationService: AuthenticationService, private userService: UserService) {} intercept(request: HttpRequest, next: HttpHandler): Observable> { // const retryTimes: number = 3; // const delayDuration: number = 100; - return next.handle(request) - .pipe( - // retryWhen(errors => errors - // .pipe( - // concatMap((error, count) => { - // if (count < retryTimes && (error.status === 400 || error.status === 0)) { - // return of(error.status); - // } - // return throwError(error); - // }), - // delay(delayDuration) - // ) - // ), - catchError((error: HttpErrorResponse) => { - let errorMessage: string = ''; - let logMessage: string = ''; - if (error.error instanceof ErrorEvent) { - // client-side error - errorMessage = error.error.message; - } else if (error.error instanceof ProgressEvent) { - errorMessage = error.statusText; - } else { - // server-side error - errorMessage = error.error.error; - logMessage = `Error Code: ${error.status}`; - } + return next.handle(request).pipe( + // retryWhen(errors => errors + // .pipe( + // concatMap((error, count) => { + // if (count < retryTimes && (error.status === 400 || error.status === 0)) { + // return of(error.status); + // } + // return throwError(error); + // }), + // delay(delayDuration) + // ) + // ), + catchError((error: HttpErrorResponse) => { + let errorMessage: string = ''; + let logMessage: string = ''; + if (error.error instanceof ErrorEvent) { + // client-side error + errorMessage = error.error.message; + } else if (error.error instanceof ProgressEvent) { + errorMessage = error.statusText; + } else { + // server-side error + errorMessage = error.error.error; + logMessage = `Error Code: ${error.status}`; + } - console.error(`${logMessage}: ${errorMessage}`); + console.error(`${logMessage}: ${errorMessage}`); - if(error.status === 419) { - this.authenticationService.timeoutAuthentication(); - } + if (error.status === 419 || (error.status === 403 && this.userService.isAnonymousUser())) { + this.authenticationService.timeoutAuthentication(); + } - return throwError(() => errorMessage); - }) - ); + return throwError(() => errorMessage); + }) + ); } } diff --git a/src/app/common/status-icon/status-icon.component.html b/src/app/common/status-icon/status-icon.component.html index d2fc4ece7..b87e0eac5 100644 --- a/src/app/common/status-icon/status-icon.component.html +++ b/src/app/common/status-icon/status-icon.component.html @@ -1,11 +1,10 @@ - - - - +
+ +
diff --git a/src/app/common/status-icon/status-icon.component.scss b/src/app/common/status-icon/status-icon.component.scss index ef9bab812..169fd24de 100644 --- a/src/app/common/status-icon/status-icon.component.scss +++ b/src/app/common/status-icon/status-icon.component.scss @@ -10,13 +10,7 @@ color: task-status-color($status, fore); } -.mat-chip.mat-standard-chip { - text-align: center; - i { - display: inline-block; - flex: 1; - } - width: 50px; +.status-chip { &.ready-for-feedback { @include status-icon('ready-for-feedback'); } diff --git a/src/app/common/status-icon/status-icon.component.ts b/src/app/common/status-icon/status-icon.component.ts index 554f8ef32..57811fa15 100644 --- a/src/app/common/status-icon/status-icon.component.ts +++ b/src/app/common/status-icon/status-icon.component.ts @@ -7,7 +7,7 @@ import { TaskStatus, TaskStatusEnum } from 'src/app/api/models/task-status'; styleUrls: ['./status-icon.component.scss'], }) export class StatusIconComponent implements OnInit { - @Input() status: TaskStatusEnum = "not_started"; + @Input() status: TaskStatusEnum = 'not_started'; @Input() showTooltip: boolean; statusIcon: (status: TaskStatusEnum) => string; diff --git a/src/app/common/user-badge/user-badge.component.html b/src/app/common/user-badge/user-badge.component.html index 732298468..4aec1e08a 100644 --- a/src/app/common/user-badge/user-badge.component.html +++ b/src/app/common/user-badge/user-badge.component.html @@ -7,11 +7,7 @@ style="margin-right: 8px" > -
+
diff --git a/src/app/common/user-badge/user-badge.component.scss b/src/app/common/user-badge/user-badge.component.scss index 28c9d351f..ed194fa2c 100644 --- a/src/app/common/user-badge/user-badge.component.scss +++ b/src/app/common/user-badge/user-badge.component.scss @@ -5,7 +5,7 @@ a h4 { font-weight: 400; - font-family: 'Grotesk'; + // font-family: 'Grotesk'; font-size: 14px; } diff --git a/src/app/common/user-icon/user-icon.component.html b/src/app/common/user-icon/user-icon.component.html index 83b3c15ae..0d24efdce 100644 --- a/src/app/common/user-icon/user-icon.component.html +++ b/src/app/common/user-icon/user-icon.component.html @@ -1,2 +1,4 @@ -account_circle +@if (unselected) { +account_circle +} diff --git a/src/app/config/constants/doubtfire-constants.ts b/src/app/config/constants/doubtfire-constants.ts index e5e402265..93b97d788 100644 --- a/src/app/config/constants/doubtfire-constants.ts +++ b/src/app/config/constants/doubtfire-constants.ts @@ -6,7 +6,8 @@ import API_URL from 'src/app/config/constants/apiURL'; interface SettingsResponseFormat { externalName: string; - overseer_enabled: boolean; + overseerEnabled: boolean; + tiiEnabled: boolean; } interface SignOutUrlResponseFormat { @@ -31,8 +32,16 @@ export class DoubtfireConstants { // initialise exernal name to loading. public ExternalName: BehaviorSubject = new BehaviorSubject('Loading...'); + /** + * Whether or not the Overseer feature is enabled. + */ public IsOverseerEnabled: BehaviorSubject = new BehaviorSubject(false); + /** + * Whether or not the TurnItIn integration is enabled. + */ + public IsTiiEnabled: BehaviorSubject = new BehaviorSubject(false); + private readonly settingsUrl: string = `${this.API_URL}/settings`; constructor(handler: HttpBackend) { @@ -53,11 +62,10 @@ export class DoubtfireConstants { // publish update to ExternalName when get request finishes. private loadExternalName() { - this.http - .get(this.settingsUrl) - .subscribe((result) => { - this.ExternalName.next(result.externalName); - this.IsOverseerEnabled.next(result.overseer_enabled); - }); + this.http.get(this.settingsUrl).subscribe((result) => { + this.ExternalName.next(result.externalName); + this.IsOverseerEnabled.next(result.overseerEnabled); + this.IsTiiEnabled.next(result.tiiEnabled); + }); } } diff --git a/src/app/config/routing/routing.coffee b/src/app/config/routing/routing.coffee index e74162943..0091a888a 100644 --- a/src/app/config/routing/routing.coffee +++ b/src/app/config/routing/routing.coffee @@ -4,7 +4,7 @@ angular.module('doubtfire.config.routing', []) # .config(($urlRouterProvider, $httpProvider) -> # Catch bad URLs. - $urlRouterProvider.otherwise "/not_found" + # $urlRouterProvider.otherwise "/not_found" $urlRouterProvider.when "", "/" # Map root/home URL to a default state of our choosing. diff --git a/src/app/doubtfire-angular.module.ts b/src/app/doubtfire-angular.module.ts index d97689a4d..18cf37a91 100644 --- a/src/app/doubtfire-angular.module.ts +++ b/src/app/doubtfire-angular.module.ts @@ -15,31 +15,33 @@ import player from 'lottie-web'; import { ClipboardModule } from '@angular/cdk/clipboard'; import { DragDropModule } from '@angular/cdk/drag-drop'; import { MatToolbarModule } from '@angular/material/toolbar'; -import { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select'; -import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'; -import { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu'; -import { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox'; -import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'; +import { MatSelectModule } from '@angular/material/select'; +import { MatButtonModule } from '@angular/material/button'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatDialogModule } from '@angular/material/dialog'; import { MatDividerModule } from '@angular/material/divider'; -import { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field'; -import { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { MatIconModule, MatIconRegistry } from '@angular/material/icon'; -import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input'; +import { MatInputModule } from '@angular/material/input'; import { MatBadgeModule } from '@angular/material/badge'; -import { MatLegacyListModule as MatListModule } from '@angular/material/legacy-list'; -import { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card'; -import { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar'; -import { MatLegacySliderModule as MatSliderModule } from '@angular/material/legacy-slider'; +import { MatListModule } from '@angular/material/list'; +import { MatCardModule } from '@angular/material/card'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatSliderModule } from '@angular/material/slider'; import { MatExpansionModule } from '@angular/material/expansion'; import { MatStepperModule } from '@angular/material/stepper'; -import { MatLegacySnackBarModule as MatSnackBarModule } from '@angular/material/legacy-snack-bar'; -import { MatLegacyPaginatorModule as MatPaginatorModule } from '@angular/material/legacy-paginator'; -import { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip'; -import { MatLegacySlideToggleModule as MatSlideToggleModule } from '@angular/material/legacy-slide-toggle'; -import { MatLegacyChipsModule as MatChipsModule } from '@angular/material/legacy-chips'; +import { MatSnackBarModule } from '@angular/material/snack-bar'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatChipsModule } from '@angular/material/chips'; import { MatGridListModule } from '@angular/material/grid-list'; import { PdfViewerModule } from 'ng2-pdf-viewer'; import { UIRouterUpgradeModule } from '@uirouter/angular-hybrid'; +import { MatDialogModule as MatDialogModuleNew } from '@angular/material/dialog'; +import { AlertComponent } from 'src/app/common/services/alert.service'; import { setTheme } from 'ngx-bootstrap/utils'; @@ -81,7 +83,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { AudioCommentRecorderComponent } from './common/audio-recorder/audio/audio-comment-recorder/audio-comment-recorder'; import { DiscussionPromptComposerComponent } from './tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component'; -import { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { IntelligentDiscussionPlayerComponent, IntelligentDiscussionDialog, @@ -93,12 +95,13 @@ import { ExtensionCommentComponent } from './tasks/task-comments-viewer/extensio import { CampusListComponent } from './admin/institution-settings/campuses/campus-list/campus-list.component'; import { ExtensionModalComponent } from './common/modals/extension-modal/extension-modal.component'; import { CalendarModalComponent } from './common/modals/calendar-modal/calendar-modal.component'; -import { MatLegacyRadioModule as MatRadioModule } from '@angular/material/legacy-radio'; +import { MatRadioModule } from '@angular/material/radio'; import { MatButtonToggleModule } from '@angular/material/button-toggle'; -import { MatLegacyOptionModule as MatOptionModule } from '@angular/material/legacy-core'; +import { MAT_DATE_LOCALE, MatOptionModule } from '@angular/material/core'; +import { MatDatepickerModule } from '@angular/material/datepicker'; import { doubtfireStates } from './doubtfire.states'; import { MatTableModule } from '@angular/material/table'; -import { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs'; +import { MatTabsModule } from '@angular/material/tabs'; import { MatSortModule } from '@angular/material/sort'; import { ActivityTypeListComponent } from './admin/institution-settings/activity-type-list/activity-type-list.component'; import { UnitStudentsEditorComponent } from './units/states/edit/directives/unit-students-editor/unit-students-editor.component'; @@ -131,7 +134,6 @@ import { TasksOfTaskDefinitionPipe } from './common/filters/tasks-of-task-defini import { TasksInTutorialsPipe } from './common/filters/tasks-in-tutorials.pipe'; import { TasksForInboxSearchPipe } from './common/filters/tasks-for-inbox-search.pipe'; import { StatusIconComponent } from './common/status-icon/status-icon.component'; -import { TaskPlagiarismCardComponent } from './projects/states/dashboard/directives/task-dashboard/directives/task-plagiarism-card/task-plagiarism-card.component'; import { ScrollingModule } from '@angular/cdk/scrolling'; import { CheckForUpdateService } from './sessions/service-worker-updater/check-for-update.service'; import { @@ -153,12 +155,12 @@ import { UserService, WebcalService, LearningOutcomeService, + TaskSimilarityService, } from './api/models/doubtfire-model'; -import { FileDownloaderService } from './common/file-downloader/file-downloader'; +import { FileDownloaderService } from './common/file-downloader/file-downloader.service'; import { PdfImageCommentComponent } from './tasks/task-comments-viewer/pdf-image-comment/pdf-image-comment.component'; import { OverseerImageListComponent } from './admin/institution-settings/overseer-images/overseer-image-list.component'; -import { TaskAssessorComponent } from './tasks/task-definition-editor/task-assessor/task-assessor.component'; import { TaskAssessmentCommentComponent } from './tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component'; import { TaskAssessmentModalComponent } from './common/modals/task-assessment-modal/task-assessment-modal.component'; @@ -171,6 +173,8 @@ import { TaskDropdownComponent } from './common/header/task-dropdown/task-dropdo import { SplashScreenComponent } from './home/splash-screen/splash-screen.component'; import { HttpErrorInterceptor } from './common/services/http-error.interceptor'; import { TaskDefinitionService } from './api/services/task-definition.service'; +import { NewTeachingPeriodDialogComponent } from './admin/states/teaching-periods/teaching-period-list/teaching-period-list.component'; +import { MatNativeDateModule } from '@angular/material/core'; import { TaskOutcomeAlignmentService } from './api/services/task-outcome-alignment.service'; import { GroupService } from './api/services/group.service'; import { ObjectSelectComponent } from './common/obect-select/object-select.component'; @@ -190,13 +194,41 @@ import { TaskDashboardComponent } from './projects/states/dashboard/directives/t import { InboxComponent } from './units/states/tasks/inbox/inbox.component'; import { ProjectProgressBarComponent } from './common/project-progress-bar/project-progress-bar.component'; import { TeachingPeriodListComponent } from './admin/states/teaching-periods/teaching-period-list/teaching-period-list.component'; +import { FChipComponent } from './common/f-chip/f-chip.component'; +import { TaskSimilarityViewComponent } from './projects/states/dashboard/directives/task-dashboard/directives/task-similarity-view/task-similarity-view.component'; +import { FileViewerComponent } from './common/file-viewer/file-viewer.component'; +import { TaskDefinitionEditorComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component'; +import { TaskDefinitionGeneralComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component'; +import { TaskDefinitionWhoComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component'; +import { TaskDefinitionDatesComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component'; +import { TaskDefinitionUploadComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component'; +import { TaskDefinitionOptionsComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component'; +import { TaskDefinitionResourcesComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component'; +import { TaskDefinitionOverseerComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component'; +import { UnitAnalyticsComponent } from './units/states/analytics/unit-analytics-route.component'; +import { FileDropComponent } from './common/file-drop/file-drop.component'; +import { UnitTaskEditorComponent } from './units/states/edit/directives/unit-tasks-editor/unit-task-editor.component'; +import { FUsersComponent } from './admin/states/f-users/f-users.component'; +import { CreateNewUnitModal } from './admin/modals/create-new-unit-modal/create-new-unit-modal.component'; +import { CreateNewUnitModalContentComponent } from './admin/modals/create-new-unit-modal/create-new-unit-modal-content.component'; // Note we need a separate function as it's required // by the AOT compiler. export function playerFactory() { return import(/* webpackChunkName: 'lottie-web' */ 'lottie-web'); } -import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportService } from './admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog'; +import { + TeachingPeriodUnitImportDialogComponent, + TeachingPeriodUnitImportService, +} from './admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog'; +import { AcceptEulaComponent } from './eula/accept-eula/accept-eula.component'; +import { TiiActionLogComponent } from './admin/tii-action-log/tii-action-log.component'; +import { TiiActionService } from './api/services/tii-action.service'; +import { FUnitsComponent } from './admin/states/f-units/f-units.component'; +import { FUnitTaskListComponent } from './units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component'; +import { FTaskDetailsViewComponent } from './units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component'; +import { FTaskSheetViewComponent } from './units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component'; +import { TasksViewerComponent } from './units/states/tasks/tasks-viewer/tasks-viewer.component'; @NgModule({ // Components we declare @@ -223,7 +255,18 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic CommentBubbleActionComponent, UnitTutorialsListComponent, UnitTutorialsManagerComponent, + FileDropComponent, UnitStudentsEditorComponent, + UnitTaskEditorComponent, + TaskDefinitionEditorComponent, + TaskDefinitionGeneralComponent, + TaskDefinitionWhoComponent, + TaskDefinitionDatesComponent, + TaskDefinitionUploadComponent, + TaskDefinitionOptionsComponent, + TaskDefinitionResourcesComponent, + TaskDefinitionOverseerComponent, + UnitAnalyticsComponent, StudentTutorialSelectComponent, StudentCampusSelectComponent, TaskListItemComponent, @@ -241,13 +284,12 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic SafePipe, PdfViewerPanelComponent, StaffTaskListComponent, + TaskSimilarityViewComponent, FiltersPipe, TasksOfTaskDefinitionPipe, TasksInTutorialsPipe, TasksForInboxSearchPipe, StatusIconComponent, - TaskPlagiarismCardComponent, - TaskAssessorComponent, TaskAssessmentCommentComponent, TaskAssessmentModalComponent, TaskSubmissionHistoryComponent, @@ -257,6 +299,7 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic SplashScreenComponent, ObjectSelectComponent, WelcomeComponent, + AcceptEulaComponent, HeroSidebarComponent, SignInComponent, EditProfileFormComponent, @@ -271,6 +314,19 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic InboxComponent, ProjectProgressBarComponent, TeachingPeriodListComponent, + CreateNewUnitModal, + CreateNewUnitModalContentComponent, + TiiActionLogComponent, + FChipComponent, + NewTeachingPeriodDialogComponent, + FileViewerComponent, + AlertComponent, + FUnitTaskListComponent, + FTaskDetailsViewComponent, + FTaskSheetViewComponent, + TasksViewerComponent, + FUsersComponent, + FUnitsComponent, ], // Module Imports imports: [ @@ -293,6 +349,7 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic MatStepperModule, MatPaginatorModule, MatSelectModule, + MatNativeDateModule, MatButtonToggleModule, MatTooltipModule, MatSlideToggleModule, @@ -307,6 +364,7 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic MatIconModule, MatProgressSpinnerModule, MatSliderModule, + MatDatepickerModule, MatExpansionModule, MatCardModule, MatGridListModule, @@ -329,6 +387,9 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic enabled: environment.production, registrationStrategy: () => interval(6000).pipe(take(1)), }), + MatDatepickerModule, + MatNativeDateModule, + MatDialogModuleNew, ], // Services we provide providers: [ @@ -342,12 +403,14 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic LearningOutcomeService, TaskDefinitionService, TeachingPeriodService, + TiiActionService, TeachingPeriodBreakService, TeachingPeriodUnitImportService, TutorialService, TutorialStreamService, UserService, TaskService, + TaskSimilarityService, WebcalService, ActivityTypeService, OverseerImageService, @@ -369,6 +432,7 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic alertServiceProvider, CsvUploadModalProvider, CsvResultModalProvider, + { provide: MAT_DATE_LOCALE, useValue: 'en-AU' }, UnitStudentEnrolmentModalProvider, TaskCommentService, AudioRecorderProvider, @@ -386,7 +450,7 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true, - deps: [AuthenticationService], + deps: [AuthenticationService, UserService], }, AboutDoubtfireModal, AboutDoubtfireModalService, @@ -395,6 +459,7 @@ import { TeachingPeriodUnitImportDialogComponent, TeachingPeriodUnitImportServic TasksInTutorialsPipe, TasksForInboxSearchPipe, IsActiveUnitRole, + CreateNewUnitModal, ], }) @@ -408,7 +473,7 @@ export class DoubtfireAngularModule implements DoBootstrap { private title: Title, private updater: CheckForUpdateService, private matIconRegistry: MatIconRegistry, - private domSanitizer: DomSanitizer + private domSanitizer: DomSanitizer, ) { setAppInjector(injector); setTheme('bs3'); // or 'bs4' @@ -419,7 +484,7 @@ export class DoubtfireAngularModule implements DoBootstrap { this.matIconRegistry.addSvgIcon( 'formatif-logo', - this.domSanitizer.bypassSecurityTrustResourceUrl('assets/images/logo.svg') + this.domSanitizer.bypassSecurityTrustResourceUrl('assets/images/logo.svg'), ); } diff --git a/src/app/doubtfire-angularjs.module.ts b/src/app/doubtfire-angularjs.module.ts index 815844353..e84dd192a 100644 --- a/src/app/doubtfire-angularjs.module.ts +++ b/src/app/doubtfire-angularjs.module.ts @@ -10,22 +10,22 @@ import { downgradeInjectable, downgradeComponent } from '@angular/upgrade/static // Here are the old angular node modules, previously loaded via grunt //#region -import 'node_modules/angular-cookies/angular-cookies.js'; -import 'node_modules/angular-local-storage/dist/angular-local-storage.js'; -import 'node_modules/angular-resource/angular-resource.js'; -import 'node_modules/angular-ui-bootstrap/ui-bootstrap-tpls.js'; -import 'node_modules/angular-nvd3/dist/angular-nvd3.js'; -import 'node_modules/angular-file-upload/angular-file-upload.js'; -import 'node_modules/ng-file-upload/dist/ng-file-upload-all.min.js'; -import 'node_modules/angular-sanitize/angular-sanitize.js'; -import 'node_modules/ng-csv/build/ng-csv.js'; -import 'node_modules/angular-xeditable/dist/js/xeditable.js'; -import 'node_modules/angular-filter/dist/angular-filter.js'; -import 'node_modules/angular-ui-codemirror/src/ui-codemirror.js'; -import 'node_modules/angular-markdown-filter/markdown.js'; -import 'node_modules/angulartics/dist/angulartics.min.js'; -import 'node_modules/angulartics-google-analytics/lib/angulartics-google-analytics.js'; -import 'node_modules/angular-md5/angular-md5.js'; +import 'angular-cookies/angular-cookies.js'; +import 'angular-local-storage/dist/angular-local-storage.js'; +import 'angular-resource/angular-resource.js'; +import 'angular-ui-bootstrap/ui-bootstrap-tpls.js'; +import 'angular-nvd3/dist/angular-nvd3.js'; +import 'angular-file-upload/angular-file-upload.js'; +import 'ng-file-upload/dist/ng-file-upload-all.min.js'; +import 'angular-sanitize/angular-sanitize.js'; +import 'ng-csv/build/ng-csv.js'; +import 'angular-xeditable/dist/js/xeditable.js'; +import 'angular-filter/dist/angular-filter.js'; +import 'angular-ui-codemirror/src/ui-codemirror.js'; +import 'angular-markdown-filter/markdown.js'; +import 'angulartics/dist/angulartics.min.js'; +import 'angulartics-google-analytics/lib/angulartics-google-analytics.js'; +import 'angular-md5/angular-md5.js'; // Ok... here is what we need to convert! @@ -42,16 +42,12 @@ import 'build/src/app/visualisations/alignment-bullet-chart.js'; import 'build/src/app/visualisations/achievement-custom-bar-chart.js'; import 'build/src/app/visualisations/alignment-bar-chart.js'; import 'build/src/app/visualisations/achievement-box-plot.js'; -import 'build/src/app/tasks/task-submission-viewer/task-submission-viewer.js'; import 'build/src/app/tasks/task-status-selector/task-status-selector.js'; import 'build/src/app/tasks/modals/upload-submission-modal/upload-submission-modal.js'; import 'build/src/app/tasks/modals/grade-task-modal/grade-task-modal.js'; import 'build/src/app/tasks/modals/modals.js'; -import 'build/src/app/tasks/modals/plagiarism-report-modal/plagiarism-report-modal.js'; import 'build/src/app/tasks/task-definition-selector/task-definition-selector.js'; import 'build/src/app/tasks/tasks.js'; -import 'build/src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.js'; -import 'build/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.js'; import 'build/src/app/tasks/project-tasks-list/project-tasks-list.js'; import 'build/src/app/tasks/task-ilo-alignment/task-ilo-alignment.js'; import 'build/src/app/tasks/task-ilo-alignment/task-ilo-alignment-rater/task-ilo-alignment-rater.js'; @@ -59,7 +55,6 @@ import 'build/src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment.js'; import 'build/src/app/tasks/task-ilo-alignment/modals/task-ilo-alignment-modal/task-ilo-alignment-modal.js'; import 'build/src/app/tasks/task-ilo-alignment/task-ilo-alignment-editor/task-ilo-alignment-editor.js'; import 'build/src/app/tasks/task-ilo-alignment/task-ilo-alignment-viewer/task-ilo-alignment-viewer.js'; -import 'build/src/app/tasks/task-definition-editor/task-definition-editor.js'; import 'build/src/app/config/privacy-policy/privacy-policy.js'; import 'build/src/app/config/runtime/runtime.js'; import 'build/src/app/config/config.js'; @@ -96,20 +91,10 @@ import 'build/src/app/projects/states/portfolio/portfolio.js'; import 'build/src/app/projects/states/index/index.js'; import 'build/src/app/projects/states/tutorials/tutorials.js'; import 'build/src/app/projects/project-outcome-alignment/project-outcome-alignment.js'; -import 'build/src/app/admin/modals/teaching-period-settings-modal/teaching-period-settings-modal.js'; -import 'build/src/app/admin/modals/create-break-modal/create-break-modal.js'; -import 'build/src/app/admin/modals/rollover-teaching-period-modal/rollover-teaching-period-modal.js'; import 'build/src/app/admin/modals/modals.js'; import 'build/src/app/admin/modals/create-unit-modal/create-unit-modal.js'; import 'build/src/app/admin/states/states.js'; import 'build/src/app/admin/states/units/units.js'; -import 'build/src/app/admin/states/users/users.js'; -import 'build/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.js'; -import 'build/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-breaks/teaching-period-breaks.js'; -import 'build/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-details-editor/teaching-period-details-editor.js'; -import 'build/src/app/admin/states/teaching-periods/teaching-period-edit/directives/teaching-period-units/teaching-period-units.js'; -import 'build/src/app/admin/states/teaching-periods/teaching-period-edit/directives/directives.js'; -import 'build/src/app/admin/states/teaching-periods/teaching-period-edit/edit-teaching-period.js'; import 'build/src/app/admin/admin.js'; import 'build/src/app/groups/group-selector/group-selector.js'; import 'build/src/app/groups/group-set-manager/group-set-manager.js'; @@ -122,15 +107,8 @@ import 'build/src/app/units/modals/unit-student-enrolment-modal/unit-student-enr import 'build/src/app/units/modals/unit-ilo-edit-modal/unit-ilo-edit-modal.js'; import 'build/src/app/units/modals/modals.js'; import 'build/src/app/units/units.js'; -import 'build/src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.js'; -import 'build/src/app/units/states/plagiarism/directives/directives.js'; -import 'build/src/app/units/states/plagiarism/plagiarism.js'; -import 'build/src/app/units/states/tasks/inbox/directives/directives.js'; import 'build/src/app/units/states/tasks/inbox/inbox.js'; import 'build/src/app/units/states/tasks/tasks.js'; -import 'build/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.js'; -import 'build/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.js'; -import 'build/src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.js'; import 'build/src/app/units/states/tasks/viewer/directives/directives.js'; import 'build/src/app/units/states/tasks/viewer/viewer.js'; import 'build/src/app/units/states/tasks/definition/definition.js'; @@ -145,22 +123,14 @@ import 'build/src/app/units/states/edit/directives/unit-details-editor/unit-deta import 'build/src/app/units/states/edit/directives/unit-staff-editor/unit-staff-editor.js'; import 'build/src/app/units/states/edit/directives/unit-ilo-editor/unit-ilo-editor.js'; import 'build/src/app/units/states/edit/directives/directives.js'; -import 'build/src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.js'; import 'build/src/app/units/states/edit/edit.js'; import 'build/src/app/units/states/rollover/directives/unit-dates-selector/unit-dates-selector.js'; import 'build/src/app/units/states/rollover/directives/directives.js'; import 'build/src/app/units/states/rollover/rollover.js'; import 'build/src/app/units/states/index/index.js'; import 'build/src/app/units/states/students-list/students-list.js'; -import 'build/src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.js'; -import 'build/src/app/units/states/analytics/directives/task-status-stats/task-status-stats.js'; -import 'build/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.js'; -import 'build/src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.js'; -import 'build/src/app/units/states/analytics/directives/directives.js'; -import 'build/src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.js'; import 'build/src/app/units/states/analytics/analytics.js'; import 'build/src/app/common/filters/filters.js'; -import 'build/src/app/common/long-press/on-long-press.js'; import 'build/src/app/common/content-editable/content-editable.js'; import 'build/src/app/common/alert-list/alert-list.js'; import 'build/src/app/common/modals/confirmation-modal/confirmation-modal.js'; @@ -184,13 +154,8 @@ import 'build/src/app/sessions/auth/roles/roles.js'; import 'build/src/app/sessions/auth/roles/if-role.js'; import 'build/src/app/sessions/auth/http-auth-injector.js'; import 'build/src/app/sessions/sessions.js'; -import 'build/src/app/api/models/models.js'; -import 'build/src/app/api/models/task-similarity.js'; -import 'build/src/app/api/api.js'; -import 'build/src/app/api/resource-plus.js'; import 'build/src/app/errors/errors.js'; import 'build/src/app/errors/states/unauthorised/unauthorised.js'; -import 'build/src/app/errors/states/not-found/not-found.js'; import 'build/src/app/errors/states/timeout/timeout.js'; import 'build/src/app/errors/states/states.js'; import 'build/src/common/utilService/utilService.js'; @@ -232,7 +197,6 @@ import { fPdfViewerComponent } from './common/pdf-viewer/pdf-viewer.component'; import { PdfViewerPanelComponent } from './common/pdf-viewer-panel/pdf-viewer-panel.component'; import { StaffTaskListComponent } from './units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component'; import { StatusIconComponent } from './common/status-icon/status-icon.component'; -import { TaskPlagiarismCardComponent } from './projects/states/dashboard/directives/task-dashboard/directives/task-plagiarism-card/task-plagiarism-card.component'; import { GroupSetService, LearningOutcomeService, @@ -244,9 +208,8 @@ import { UnitService, UserService, } from './api/models/doubtfire-model'; -import { FileDownloaderService } from './common/file-downloader/file-downloader'; +import { FileDownloaderService } from './common/file-downloader/file-downloader.service'; import { CheckForUpdateService } from './sessions/service-worker-updater/check-for-update.service'; -import { TaskAssessorComponent } from './tasks/task-definition-editor/task-assessor/task-assessor.component'; import { TaskSubmissionService } from './common/services/task-submission.service'; import { TaskAssessmentModalService } from './common/modals/task-assessment-modal/task-assessment-modal.service'; import { TaskSubmissionHistoryComponent } from './tasks/task-submission-history/task-submission-history.component'; @@ -266,11 +229,20 @@ import { FooterComponent } from './common/footer/footer.component'; import { TaskAssessmentCardComponent } from './projects/states/dashboard/directives/task-dashboard/directives/task-assessment-card/task-assessment-card.component'; import { TaskSubmissionCardComponent } from './projects/states/dashboard/directives/task-dashboard/directives/task-submission-card/task-submission-card.component'; import { InboxComponent } from './units/states/tasks/inbox/inbox.component'; +import { TaskDefinitionEditorComponent } from './units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component'; +import { UnitAnalyticsComponent } from './units/states/analytics/unit-analytics-route.component'; +import { UnitTaskEditorComponent } from './units/states/edit/directives/unit-tasks-editor/unit-task-editor.component'; import { TeachingPeriodUnitImportService } from './admin/states/teaching-periods/teaching-period-unit-import/teaching-period-unit-import.dialog'; +import { CreateNewUnitModal } from './admin/modals/create-new-unit-modal/create-new-unit-modal.component'; +import { FUsersComponent } from './admin/states/f-users/f-users.component'; +import { FUnitTaskListComponent } from './units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component'; +import { FTaskDetailsViewComponent } from './units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component'; +import { FTaskSheetViewComponent } from './units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component'; +import { TasksViewerComponent } from './units/states/tasks/tasks-viewer/tasks-viewer.component'; +import { FUnitsComponent } from './admin/states/f-units/f-units.component'; export const DoubtfireAngularJSModule = angular.module('doubtfire', [ 'doubtfire.config', - 'doubtfire.api', 'doubtfire.sessions', 'doubtfire.common', 'doubtfire.errors', @@ -285,7 +257,10 @@ export const DoubtfireAngularJSModule = angular.module('doubtfire', [ // Downgrade angular modules that we need... // factory -> service DoubtfireAngularJSModule.factory('AboutDoubtfireModal', downgradeInjectable(AboutDoubtfireModal)); -DoubtfireAngularJSModule.factory('TeachingPeriodUnitImportService', downgradeInjectable(TeachingPeriodUnitImportService)); +DoubtfireAngularJSModule.factory( + 'TeachingPeriodUnitImportService', + downgradeInjectable(TeachingPeriodUnitImportService), +); DoubtfireAngularJSModule.factory('DoubtfireConstants', downgradeInjectable(DoubtfireConstants)); DoubtfireAngularJSModule.factory('ExtensionModal', downgradeInjectable(ExtensionModalService)); DoubtfireAngularJSModule.factory('CalendarModal', downgradeInjectable(CalendarModalService)); @@ -314,94 +289,102 @@ DoubtfireAngularJSModule.factory('TaskSubmission', downgradeInjectable(TaskSubmi DoubtfireAngularJSModule.factory('GlobalStateService', downgradeInjectable(GlobalStateService)); DoubtfireAngularJSModule.factory('TransitionHooksService', downgradeInjectable(TransitionHooksService)); DoubtfireAngularJSModule.factory('EditProfileService', downgradeInjectable(EditProfileDialogService)); +DoubtfireAngularJSModule.factory('CreateNewUnitModal', downgradeInjectable(CreateNewUnitModal)); // directive -> component DoubtfireAngularJSModule.directive( 'taskCommentComposer', - downgradeComponent({ component: TaskCommentComposerComponent }) + downgradeComponent({ component: TaskCommentComposerComponent }), ); DoubtfireAngularJSModule.directive('objectSelect', downgradeComponent({ component: ObjectSelectComponent })); DoubtfireAngularJSModule.directive('appHeader', downgradeComponent({ component: HeaderComponent })); DoubtfireAngularJSModule.directive('userBadge', downgradeComponent({ component: UserBadgeComponent })); DoubtfireAngularJSModule.directive( 'fTaskSubmissionCard', - downgradeComponent({ component: TaskSubmissionCardComponent }) + downgradeComponent({ component: TaskSubmissionCardComponent }), ); DoubtfireAngularJSModule.directive('fFooter', downgradeComponent({ component: FooterComponent })); DoubtfireAngularJSModule.directive( 'intelligentDiscussionPlayer', - downgradeComponent({ component: IntelligentDiscussionPlayerComponent }) + downgradeComponent({ component: IntelligentDiscussionPlayerComponent }), ); +DoubtfireAngularJSModule.directive('fUnitAnalytics', downgradeComponent({ component: UnitAnalyticsComponent })); DoubtfireAngularJSModule.directive('extensionComment', downgradeComponent({ component: ExtensionCommentComponent })); +DoubtfireAngularJSModule.directive('fUnitTaskList', downgradeComponent({ component: FUnitTaskListComponent })); +DoubtfireAngularJSModule.directive('fTaskDetailsView', downgradeComponent({ component: FTaskDetailsViewComponent })); +DoubtfireAngularJSModule.directive('fTaskSheetView', downgradeComponent({ component: FTaskSheetViewComponent })); DoubtfireAngularJSModule.directive('campusList', downgradeComponent({ component: CampusListComponent })); DoubtfireAngularJSModule.directive('activityTypeList', downgradeComponent({ component: ActivityTypeListComponent })); DoubtfireAngularJSModule.directive('fTaskStatusCard', downgradeComponent({ component: TaskStatusCardComponent })); +DoubtfireAngularJSModule.directive('fTasksViewer', downgradeComponent({ component: TasksViewerComponent })); DoubtfireAngularJSModule.directive('fInbox', downgradeComponent({ component: InboxComponent })); DoubtfireAngularJSModule.directive('fTaskDueCard', downgradeComponent({ component: TaskDueCardComponent })); +DoubtfireAngularJSModule.directive('fUsers', downgradeComponent({ component: FUsersComponent })); DoubtfireAngularJSModule.directive( 'fTaskAssessmentCard', - downgradeComponent({ component: TaskAssessmentCardComponent }) + downgradeComponent({ component: TaskAssessmentCardComponent }), ); DoubtfireAngularJSModule.directive( 'institutionSettings', - downgradeComponent({ component: InstitutionSettingsComponent }) + downgradeComponent({ component: InstitutionSettingsComponent }), ); DoubtfireAngularJSModule.directive( 'commentBubbleAction', - downgradeComponent({ component: CommentBubbleActionComponent }) + downgradeComponent({ component: CommentBubbleActionComponent }), ); DoubtfireAngularJSModule.directive('unitTutorialsList', downgradeComponent({ component: UnitTutorialsListComponent })); DoubtfireAngularJSModule.directive( 'unitTutorialsManager', - downgradeComponent({ component: UnitTutorialsManagerComponent }) + downgradeComponent({ component: UnitTutorialsManagerComponent }), ); DoubtfireAngularJSModule.directive( 'unitStudentsEditor', - downgradeComponent({ component: UnitStudentsEditorComponent }) + downgradeComponent({ component: UnitStudentsEditorComponent }), +); +DoubtfireAngularJSModule.directive( + 'fTaskDefinitionEditor', + downgradeComponent({ component: TaskDefinitionEditorComponent }), ); +DoubtfireAngularJSModule.directive('fUnitTaskEditor', downgradeComponent({ component: UnitTaskEditorComponent })); DoubtfireAngularJSModule.directive( 'studentTutorialSelect', - downgradeComponent({ component: StudentTutorialSelectComponent }) + downgradeComponent({ component: StudentTutorialSelectComponent }), ); DoubtfireAngularJSModule.directive( 'studentCampusSelect', - downgradeComponent({ component: StudentCampusSelectComponent }) + downgradeComponent({ component: StudentCampusSelectComponent }), ); DoubtfireAngularJSModule.directive('taskListItem', downgradeComponent({ component: TaskListItemComponent })); DoubtfireAngularJSModule.directive( 'createPortfolioTaskListItem', - downgradeComponent({ component: CreatePortfolioTaskListItemComponent }) + downgradeComponent({ component: CreatePortfolioTaskListItemComponent }), ); DoubtfireAngularJSModule.directive( 'taskDescriptionCard', - downgradeComponent({ component: TaskDescriptionCardComponent }) + downgradeComponent({ component: TaskDescriptionCardComponent }), ); -DoubtfireAngularJSModule.directive('taskAssessor', downgradeComponent({ component: TaskAssessorComponent })); DoubtfireAngularJSModule.directive( 'taskAssessmentComment', - downgradeComponent({ component: TaskAssessmentCommentComponent }) + downgradeComponent({ component: TaskAssessmentCommentComponent }), ); DoubtfireAngularJSModule.directive( 'taskSubmissionHistory', - downgradeComponent({ component: TaskSubmissionHistoryComponent }) + downgradeComponent({ component: TaskSubmissionHistoryComponent }), ); +DoubtfireAngularJSModule.directive('fUnits', downgradeComponent({ component: FUnitsComponent })); // Global configuration DoubtfireAngularJSModule.directive( 'taskCommentsViewer', - downgradeComponent({ component: TaskCommentsViewerComponent }) + downgradeComponent({ component: TaskCommentsViewerComponent }), ); DoubtfireAngularJSModule.directive('userIcon', downgradeComponent({ component: UserIconComponent })); DoubtfireAngularJSModule.directive('fPdfViewer', downgradeComponent({ component: fPdfViewerComponent })); DoubtfireAngularJSModule.directive('pdfViewerPanel', downgradeComponent({ component: PdfViewerPanelComponent })); DoubtfireAngularJSModule.directive('staffTaskList', downgradeComponent({ component: StaffTaskListComponent })); DoubtfireAngularJSModule.directive('statusIcon', downgradeComponent({ component: StatusIconComponent })); -DoubtfireAngularJSModule.directive( - 'taskPlagiarismCard', - downgradeComponent({ component: TaskPlagiarismCardComponent }) -); // Global configuration @@ -409,7 +392,7 @@ DoubtfireAngularJSModule.directive( const otherwiseConfigBlock = [ '$urlRouterProvider', '$locationProvider', - ($urlRouterProvider: any, $locationProvider: any) => { + ($urlRouterProvider, $locationProvider) => { $locationProvider.hashPrefix(''); $urlRouterProvider.otherwise('/home'); }, diff --git a/src/app/doubtfire.states.ts b/src/app/doubtfire.states.ts index ea6a76694..dfc8418f3 100644 --- a/src/app/doubtfire.states.ts +++ b/src/app/doubtfire.states.ts @@ -5,6 +5,8 @@ import { WelcomeComponent } from './welcome/welcome.component'; import { SignInComponent } from './sessions/states/sign-in/sign-in.component'; import { EditProfileComponent } from './account/edit-profile/edit-profile.component'; import { TeachingPeriodListComponent } from './admin/states/teaching-periods/teaching-period-list/teaching-period-list.component'; +import { AcceptEulaComponent } from './eula/accept-eula/accept-eula.component'; +import { FUsersComponent } from './admin/states/f-users/f-users.component'; /* * Use this file to store any states that are sourced by angular components. @@ -28,6 +30,21 @@ const institutionSettingsState: NgHybridStateDeclaration = { }, }; +const usersState: NgHybridStateDeclaration = { + name: 'admin/users', // This is the name of the state to jump to - so ui-sref="users" to jump here + url: '/admin/users', // You get here with this url + views: { + main: { + // Main body links to angular component + component: FUsersComponent, + }, + }, + data: { + pageTitle: 'Administer users', + roleWhiteList: ['Admin'], + }, +}; + /** * Define the new home state. */ @@ -199,6 +216,20 @@ const TeachingPeriodsState: NgHybridStateDeclaration = { }, }; +const EulaState: NgHybridStateDeclaration = { + name: 'eula', + url: '/eula', + views: { + main: { + component: AcceptEulaComponent, + }, + }, + data: { + pageTitle: 'Teaching Periods', + roleWhitelist: ['Convenor', 'Admin'], + }, +}; + /** * Export the list of states we have created in angular */ @@ -209,4 +240,6 @@ export const doubtfireStates = [ WelcomeState, SignInState, EditProfileState, + EulaState, + usersState, ]; diff --git a/src/app/errors/states/not-found/not-found.coffee b/src/app/errors/states/not-found/not-found.coffee deleted file mode 100644 index a12514812..000000000 --- a/src/app/errors/states/not-found/not-found.coffee +++ /dev/null @@ -1,20 +0,0 @@ -angular.module("doubtfire.errors.states.not-found", []) - -# -# Define the not found state -# -.config(($stateProvider) -> - stateData = - url: "/not_found" - views: - main: - controller: "NotFoundCtrl" - templateUrl: "errors/states/not-found/not-found.tpl.html" - data: - pageTitle: "_Not Found_" - $stateProvider.state 'not_found', stateData -) - -.controller("NotFoundCtrl", ($scope, GlobalStateService) -> - GlobalStateService.setView("OTHER") -) diff --git a/src/app/errors/states/not-found/not-found.tpl.html b/src/app/errors/states/not-found/not-found.tpl.html deleted file mode 100644 index 92ab9932b..000000000 --- a/src/app/errors/states/not-found/not-found.tpl.html +++ /dev/null @@ -1,7 +0,0 @@ -
-
- -

Not Found

-

This page doesn't exist.

-
-
\ No newline at end of file diff --git a/src/app/errors/states/states.coffee b/src/app/errors/states/states.coffee index 84cdc11e2..4d76d4af2 100644 --- a/src/app/errors/states/states.coffee +++ b/src/app/errors/states/states.coffee @@ -1,5 +1,4 @@ angular.module("doubtfire.errors.states", [ - "doubtfire.errors.states.not-found" "doubtfire.errors.states.timeout" "doubtfire.errors.states.unauthorised" ]) diff --git a/src/app/eula/accept-eula/accept-eula.component.html b/src/app/eula/accept-eula/accept-eula.component.html new file mode 100644 index 000000000..2d1037b26 --- /dev/null +++ b/src/app/eula/accept-eula/accept-eula.component.html @@ -0,0 +1,8 @@ +
+
+

End User License Agreements

+

In order to use {{ toolName | async }}, you need to accept the following end user license agreement.

+ + +
+
diff --git a/src/app/eula/accept-eula/accept-eula.component.scss b/src/app/eula/accept-eula/accept-eula.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/eula/accept-eula/accept-eula.component.spec.ts b/src/app/eula/accept-eula/accept-eula.component.spec.ts new file mode 100644 index 000000000..cb749c8c4 --- /dev/null +++ b/src/app/eula/accept-eula/accept-eula.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AcceptEulaComponent } from './accept-eula.component'; + +describe('AcceptEulaComponent', () => { + let component: AcceptEulaComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AcceptEulaComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(AcceptEulaComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/eula/accept-eula/accept-eula.component.ts b/src/app/eula/accept-eula/accept-eula.component.ts new file mode 100644 index 000000000..be2876ff2 --- /dev/null +++ b/src/app/eula/accept-eula/accept-eula.component.ts @@ -0,0 +1,69 @@ +import { Component } from '@angular/core'; +import { StateService } from '@uirouter/core'; +import _ from 'lodash'; +import { Observable, ReplaySubject, take } from 'rxjs'; +import { UserService } from 'src/app/api/models/doubtfire-model'; +import { TiiService } from 'src/app/api/services/tii.service'; +import { AlertService } from 'src/app/common/services/alert.service'; +import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; + +@Component({ + selector: 'f-accept-eula', + templateUrl: './accept-eula.component.html', + styleUrls: ['./accept-eula.component.scss'], +}) +export class AcceptEulaComponent { + public toolName: Observable; + public eulaHtml: string; + + public iframeDoc$ = new ReplaySubject(1); + + constructor( + private constants: DoubtfireConstants, + private tiiService: TiiService, + private userService: UserService, + private alertService: AlertService, + private state: StateService + ) { + this.constants.IsTiiEnabled.subscribe((enabled) => { + if (enabled) { + this.getEulaHtml(); + } else { + this.state.go('home'); + } + }); + + this.toolName = constants.ExternalName; + } + + public getEulaHtml() { + this.tiiService.getTiiEula().subscribe((eulaHtml) => { + this.eulaHtml = eulaHtml; + this.yourFunctionForChangingHTML(); + }); + } + + public acceptEula(): void { + this.userService.currentUser.acceptTiiEula().subscribe(() => { + this.alertService.success('You have accepted the EULAs'); + this.state.go('home'); + }); + } + + public onIframeLoad(iframe): void { + this.iframeDoc$.next(iframe.contentDocument || iframe.contentWindow); + } + + getIframeDoc(): Observable { + return this.iframeDoc$.asObservable(); + } + + yourFunctionForChangingHTML(): void { + this.getIframeDoc() + .pipe(take(1)) + .subscribe((iframeDoc) => { + iframeDoc.open(); + iframeDoc.write(this.eulaHtml); + }); + } +} diff --git a/src/app/home/states/home/home.component.html b/src/app/home/states/home/home.component.html index d44e5c4d4..bffa3b86a 100644 --- a/src/app/home/states/home/home.component.html +++ b/src/app/home/states/home/home.component.html @@ -3,61 +3,64 @@
diff --git a/src/app/home/states/home/home.component.scss b/src/app/home/states/home/home.component.scss index eb96c2fe2..86e6899c8 100644 --- a/src/app/home/states/home/home.component.scss +++ b/src/app/home/states/home/home.component.scss @@ -1,3 +1,5 @@ +@import '../../../../theme.scss'; + #home { padding-top: 10px; @@ -13,8 +15,8 @@ align-items: center; justify-content: center; - ::ng-deep .mat-progress-spinner circle, - .mat-spinner circle { + ::ng-deep .mat-mdc-progress-spinner circle, + .mat-mdc-progress-spinner circle { stroke: gray; } } @@ -24,8 +26,7 @@ text-decoration: none; } -.mat-card-header { - +.mat-mdc-card-header { } .base-card { @@ -39,21 +40,22 @@ -webkit-mask-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); mask-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); - .mat-progress-bar { - height: 20px; - } - - h4 { - max-height: 20px; + .f-card-title { + font-size: 18px; + max-height: 30px; white-space: nowrap; text-overflow: ellipsis; width: 100%; overflow: hidden; + font-weight: 100; } - ::ng-deep .mat-button-wrapper { - display: flex !important; - justify-content: center !important; + mat-chip-option.f-chip { + background-color: $primary-color; + color: white; + opacity: 1; + border-style: none; + --mdc-chip-disabled-label-text-color: white; } } @@ -62,15 +64,23 @@ width: 250px; max-width: none; height: auto; + + .mat-mdc-list-item-icon { + color: rgb(0, 0, 0); + margin-right: 6px; + } } .unit-card { + :hover { + cursor: pointer; + } @extend .base-card; width: 300px; max-width: 300px; max-height: 200px; - mat-card-actions { + .mat-mdc-card-actions { margin-bottom: 0px; } } diff --git a/src/app/projects/project-progress-dashboard/project-progress-dashboard.tpl.html b/src/app/projects/project-progress-dashboard/project-progress-dashboard.tpl.html index b273b652b..3acc07077 100644 --- a/src/app/projects/project-progress-dashboard/project-progress-dashboard.tpl.html +++ b/src/app/projects/project-progress-dashboard/project-progress-dashboard.tpl.html @@ -59,10 +59,10 @@

Task Summary Chart

- +
- +
diff --git a/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.html b/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.html index c6bae9f2e..b48fcb407 100644 --- a/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.html +++ b/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.html @@ -28,11 +28,13 @@

Step 1. Record and add up to 3 prompts.

Step 2. Optionally play back prompts.

Discussion Prompts

- +}

Step 3. Send.

diff --git a/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.scss b/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.scss index a909867f6..80ff2d145 100644 --- a/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.scss +++ b/src/app/tasks/task-comment-composer/discussion-prompt-composer/discussion-prompt-composer.component.scss @@ -54,11 +54,11 @@ mat-action-list { left: 65px; } -:host .mat-list-icon { +:host .mat-mdc-list-item-icon { color: black; } -:host .mat-dialog-container { +:host .mat-mdc-dialog-container { max-width: 800px !important; } diff --git a/src/app/tasks/task-comment-composer/task-comment-composer.component.html b/src/app/tasks/task-comment-composer/task-comment-composer.component.html index 58476219e..d2d10f645 100644 --- a/src/app/tasks/task-comment-composer/task-comment-composer.component.html +++ b/src/app/tasks/task-comment-composer/task-comment-composer.component.html @@ -1,21 +1,32 @@ - + -
+@if (task) { +
Replying to: {{ originalComment !== null ? originalComment.author.name : '' }} -

{{ originalComment !== null ? originalComment.text : '' }}

+} - + @for (emoji of emojiSearchResults; track emoji) { +
@@ -24,19 +35,35 @@
+}
-
+
- +} - +} - -
-
- -
- +
+ @if (recording) { + +}
- - emoji_emotions + + emoji_emotions
-
\ No newline at end of file + diff --git a/src/app/tasks/task-comment-composer/task-comment-composer.component.scss b/src/app/tasks/task-comment-composer/task-comment-composer.component.scss index ca10e0adb..2d85dfe68 100644 --- a/src/app/tasks/task-comment-composer/task-comment-composer.component.scss +++ b/src/app/tasks/task-comment-composer/task-comment-composer.component.scss @@ -18,7 +18,7 @@ $emoji-color: lighten( } #textFieldContainer.recording { - background-color: #3939FF; + background-color: #3939ff; } #textField { @@ -74,7 +74,7 @@ $emoji-color: lighten( z-index: 1060; position: absolute; right: 26px; - bottom: 60px; + bottom: 150px; } #emojiSearchResults { @@ -116,7 +116,7 @@ $emoji-color: lighten( line-clamp: 1; } - .mat-icon-button { + .mat-mdc-icon-button { float: right; margin-top: -12px; } @@ -190,10 +190,11 @@ form { } button.btn-no-outline { - margin-left: 4px; - margin-right: 4px; + margin-left: -12px; + margin-right: -12px; color: $emoji-color; line-height: 1; + transform: scale(0.8); } .message-inbox-icon { diff --git a/src/app/tasks/task-comment-composer/task-comment-composer.component.ts b/src/app/tasks/task-comment-composer/task-comment-composer.component.ts index b2449afe9..b51ab7b7b 100644 --- a/src/app/tasks/task-comment-composer/task-comment-composer.component.ts +++ b/src/app/tasks/task-comment-composer/task-comment-composer.component.ts @@ -13,7 +13,7 @@ import { } from '@angular/core'; import { trigger, style, animate, transition } from '@angular/animations'; import { analyticsService, alertService } from 'src/app/ajs-upgraded-providers'; -import { MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { EmojiSearch } from '@ctrl/ngx-emoji-mart'; import { EmojiData } from '@ctrl/ngx-emoji-mart/ngx-emoji/'; import { EmojiService } from 'src/app/common/services/emoji.service'; diff --git a/src/app/tasks/task-comments-viewer/extension-comment/extension-comment.component.html b/src/app/tasks/task-comments-viewer/extension-comment/extension-comment.component.html index f3361af69..927ee7e26 100644 --- a/src/app/tasks/task-comments-viewer/extension-comment/extension-comment.component.html +++ b/src/app/tasks/task-comments-viewer/extension-comment/extension-comment.component.html @@ -1,21 +1,27 @@
-
+ @if (comment.assessed) { +

reason: {{ comment.text }}

+} -
+ @if (!comment.assessed) { +

{{ message }}
reason: {{ comment.text }}

-
+ @if (isNotStudent) { +
+}
+}
diff --git a/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-dialog.html b/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-dialog.html index 5839c2d8c..8c13755fb 100644 --- a/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-dialog.html +++ b/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-dialog.html @@ -54,7 +54,7 @@
-

Prompt {{activePromptId+1}} of {{numberOfPrompts}}

+

Prompt {{activePromptId+1}} of {{numberOfPrompts}}

diff --git a/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-player.component.html b/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-player.component.html index 072e43d71..c00003683 100644 --- a/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-player.component.html +++ b/src/app/tasks/task-comments-viewer/intelligent-discussion-player/intelligent-discussion-player.component.html @@ -7,9 +7,11 @@

-
+ @if (discussion.status === 'opened' && isNotStudent) { +
Warning: The student has opened the discussion prompts without sending a response.
+}
> P1 - 1) { + P2 - 2) { + P3 +} - -

view pdf

+ @if (comment.commentType === 'image' && resourceUrl) { + +} + @if (comment.commentType === 'pdf') { +

view pdf

+} diff --git a/src/app/tasks/task-comments-viewer/pdf-image-comment/pdf-image-comment.component.ts b/src/app/tasks/task-comments-viewer/pdf-image-comment/pdf-image-comment.component.ts index c705c7d26..cc3817cf6 100644 --- a/src/app/tasks/task-comments-viewer/pdf-image-comment/pdf-image-comment.component.ts +++ b/src/app/tasks/task-comments-viewer/pdf-image-comment/pdf-image-comment.component.ts @@ -1,14 +1,14 @@ -import { Component, OnInit, Input, Inject } from '@angular/core'; +import { Component, OnInit, Input, Inject, OnDestroy } from '@angular/core'; import { alertService, commentsModal } from 'src/app/ajs-upgraded-providers'; import { Project, TaskComment, Task } from 'src/app/api/models/doubtfire-model'; -import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; @Component({ selector: 'pdf-image-comment', templateUrl: './pdf-image-comment.component.html', styleUrls: [], }) -export class PdfImageCommentComponent implements OnInit { +export class PdfImageCommentComponent implements OnInit, OnDestroy { @Input() comment: TaskComment; @Input() project: Project; @Input() task: Task; @@ -25,6 +25,13 @@ export class PdfImageCommentComponent implements OnInit { if (this.comment.commentType === 'image') this.downloadCommentResource(); } + ngOnDestroy(): void { + if (this.resourceUrl) { + this.fileDownloaderService.releaseBlob(this.resourceUrl); + this.resourceUrl = null; + } + } + private downloadCommentResource(fn?: (url: string) => void) { const url = this.comment.attachmentUrl; diff --git a/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.html b/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.html index 97c8dda5a..d30837fce 100644 --- a/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.html +++ b/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.html @@ -1,14 +1,16 @@
-
+ @if ((comment.assessment_result && comment.assessment_result.is_successful)) { +


+ } @else { - -
-
+
+ + }
diff --git a/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.ts b/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.ts index a36fb43a7..e9dae3b87 100644 --- a/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.ts +++ b/src/app/tasks/task-comments-viewer/task-assessment-comment/task-assessment-comment.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Input, Inject, Output, ChangeDetectionStrategy } from '@angular/core'; +import { Component, OnInit, Input, Inject } from '@angular/core'; import { alertService } from 'src/app/ajs-upgraded-providers'; import { TaskSubmissionService, TaskAssessmentResult } from 'src/app/common/services/task-submission.service'; import { TaskAssessmentModalService } from 'src/app/common/modals/task-assessment-modal/task-assessment-modal.service'; @@ -11,6 +11,7 @@ export interface User { } export interface TaskAssessmentComment { + text: string; id?: number; comment: string; has_attachment?: boolean; @@ -34,10 +35,12 @@ export class TaskAssessmentCommentComponent implements OnInit { @Input() comment: TaskAssessmentComment; constructor( - @Inject(alertService) private alerts: any, + @Inject(alertService) private alerts, @Inject(TaskSubmissionService) private submissions: TaskSubmissionService, - private modalService: TaskAssessmentModalService) { } + private modalService: TaskAssessmentModalService, + ) {} + // eslint-disable-next-line @typescript-eslint/no-explicit-any private handleError(error: any) { this.alerts.add('danger', 'Error: ' + error, 6000); } @@ -55,29 +58,27 @@ export class TaskAssessmentCommentComponent implements OnInit { } scroll(el: HTMLElement) { - el.scrollIntoView({behavior: 'smooth'}); + el.scrollIntoView({ behavior: 'smooth' }); } update(): void { - this.submissions.getLatestTaskAssessment(this.task) - .subscribe( - result => { + this.submissions.getLatestTaskAssessment(this.task).subscribe( + (result) => { this.comment.assessment_result = { assessment_output: result.result, is_completed: true, is_successful: true, - task: this.task + task: this.task, }; }, - error => { + (error) => { this.comment.assessment_result = { assessment_output: error.error, is_completed: false, is_successful: false, - task: this.task + task: this.task, }; - } + }, ); } } - diff --git a/src/app/tasks/task-comments-viewer/task-comments-viewer.component.html b/src/app/tasks/task-comments-viewer/task-comments-viewer.component.html index 2ee774b86..1a199ef38 100644 --- a/src/app/tasks/task-comments-viewer/task-comments-viewer.component.html +++ b/src/app/tasks/task-comments-viewer/task-comments-viewer.component.html @@ -1,4 +1,4 @@ -
+
*:last-child { + .markdown-to-html p > *:last-child { margin-bottom: 0px; } - .markdown-to-html p>pre:last-child { + .markdown-to-html p > pre:last-child { margin-bottom: 0em; } } @@ -405,7 +408,7 @@ $comment-inner-border-radius: 4px; padding-right: 0; } - .markdown-to-html>*:last-child { + .markdown-to-html > *:last-child { margin-bottom: 0px; } } @@ -501,4 +504,4 @@ $comment-inner-border-radius: 4px; #contextOverlay { position: absolute; } -} \ No newline at end of file +} diff --git a/src/app/tasks/task-comments-viewer/task-comments-viewer.component.ts b/src/app/tasks/task-comments-viewer/task-comments-viewer.component.ts index 1b5591af6..3aa677152 100644 --- a/src/app/tasks/task-comments-viewer/task-comments-viewer.component.ts +++ b/src/app/tasks/task-comments-viewer/task-comments-viewer.component.ts @@ -1,5 +1,4 @@ import { Component, OnInit, Input, Inject, OnChanges, SimpleChanges, ViewChild, ElementRef } from '@angular/core'; -import { EntityCache } from 'ngx-entity-service'; import { alertService, commentsModal } from 'src/app/ajs-upgraded-providers'; import { Task, Project, TaskComment, TaskCommentService } from 'src/app/api/models/doubtfire-model'; import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; @@ -30,7 +29,7 @@ export class TaskCommentsViewerComponent implements OnChanges, OnInit { private taskCommentService: TaskCommentService, private constants: DoubtfireConstants, @Inject(commentsModal) private commentsModalRef: any, - @Inject(alertService) private alerts: any + @Inject(alertService) private alerts: any, ) { const self = this; this.taskCommentService.commentAdded$.subscribe((tc: TaskComment) => { @@ -55,8 +54,8 @@ export class TaskCommentsViewerComponent implements OnChanges, OnInit { this.task, { cache: this.task.commentCache, - constructorParams: this.task - } + constructorParams: this.task, + }, ) .subscribe((comments) => { // this.task.comments = comments; @@ -124,7 +123,7 @@ export class TaskCommentsViewerComponent implements OnChanges, OnInit { this.alerts.add('danger', 'I cannot upload that file - only images, audio, and PDFs.', 4000); } }); - console.log("implement - check map comments"); + console.log('implement - check map comments'); // this.task.comments = this.ts.mapComments(this.task.comments); } @@ -136,7 +135,7 @@ export class TaskCommentsViewerComponent implements OnChanges, OnInit { (tc: TaskComment) => {}, (error: any) => { this.alerts.add('danger', error || error?.message, 2000); - } + }, ); } diff --git a/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.html b/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.html deleted file mode 100644 index 84a501b47..000000000 --- a/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.scss b/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.scss deleted file mode 100644 index f39ab0864..000000000 --- a/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.scss +++ /dev/null @@ -1,5 +0,0 @@ -task-assessor { - .mat-button { - margin-top: 1rem; - } -} diff --git a/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.ts b/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.ts deleted file mode 100644 index d1b2b35d0..000000000 --- a/src/app/tasks/task-definition-editor/task-assessor/task-assessor.component.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Component, Input, Inject, OnChanges } from '@angular/core'; -import { alertService } from 'src/app/ajs-upgraded-providers'; -import { OverseerAssessment, TaskDefinition, Unit, User, UserService, Task } from 'src/app/api/models/doubtfire-model'; -import { TaskAssessmentModalService } from 'src/app/common/modals/task-assessment-modal/task-assessment-modal.service'; -import { TaskSubmissionService } from 'src/app/common/services/task-submission.service'; - -@Component({ - selector: 'task-assessor', - templateUrl: './task-assessor.component.html', - styleUrls: ['./task-assessor.component.scss'] -}) -export class TaskAssessorComponent implements OnChanges { - @Input() taskDefinition: TaskDefinition; - @Input() unit: Unit; - public currentUserTask: Task; - - constructor( - @Inject(alertService) private alerts: any, - private userService: UserService, - private modalService: TaskAssessmentModalService, - private submissions: TaskSubmissionService) { - } - - private handleError(error: any) { - this.alerts.add('danger', 'Error: ' + error, 6000); - } - - ngOnChanges() { - const proj = this.unit.findProjectForUsername(this.currentUser.username); - if ( proj ) { - this.currentUserTask = proj.findTaskForDefinition(this.taskDefinition.id); - this.hasAnySubmissions(); - } - } - - get currentUser(): User { - return this.userService.currentUser; - } - - testSubmission() { - - this.currentUserTask = new Task(this.unit); - - this.currentUserTask.definition = this.taskDefinition; - this.currentUserTask.status = 'ready_for_feedback'; - this.currentUserTask.id = this.taskDefinition.id; // set a default id... - this.currentUserTask.presentTaskSubmissionModal(this.currentUserTask.status, false, true); - } - - testSubmissionHistory() { - this.modalService.show(this.currentUserTask); - } - - hasAnySubmissions() { - if (!this.currentUserTask) return; - - this.submissions.getLatestSubmissionsTimestamps(this.currentUserTask) - .subscribe({ - next: (result: OverseerAssessment[]) => {}, - error: (error) => {} - }); - } -} diff --git a/src/app/tasks/task-definition-editor/task-definition-editor.coffee b/src/app/tasks/task-definition-editor/task-definition-editor.coffee deleted file mode 100644 index 5dbf53cfe..000000000 --- a/src/app/tasks/task-definition-editor/task-definition-editor.coffee +++ /dev/null @@ -1,211 +0,0 @@ -angular.module('doubtfire.tasks.task-definition-editor', []) - -# -# Allows the creation and modification of task definitions -# -.directive('taskDefinitionEditor', -> - replace: true - restrict: 'E' - templateUrl: 'tasks/task-definition-editor/task-definition-editor.tpl.html' - scope: - unit: "=" - task: "=" - isNew: "=" - controller: ($scope, $filter, DoubtfireConstants, ConfirmationModal, gradeService, newTaskDefinitionService, alertService, ProgressModal, TaskSubmission, fileDownloaderService) -> - $scope.overseerEnabled = DoubtfireConstants.IsOverseerEnabled - - $scope.grades = gradeService.grades - - $scope.targetPicker = { open: false } - $scope.duePicker = { open: false } - $scope.startPicker = { open: false } - - # Get docker images available for automated task assessment for the unit. - TaskSubmission.getDockerImagesAsPromise().then (images) -> - $scope.dockerImages = images - - # Get the confugurable, external name of Doubtfire - $scope.externalName = DoubtfireConstants.ExternalName - - # - # Active task tab group - # - $scope.taskAdmin = - tabsData: - taskSheet: - title: "Task Description" - subtitle: "Provide the descriptive details for this task" - icon: "fa-info" - seq: 0 - active: false - rareSettings: - title: "Other Settings" - subtitle: "Adjust settings to customise task interaction" - icon: "fa-adjust" - seq: 1 - active: false - fileUpload: - title: "Submission Details" - subtitle: "Indicate what files students need to submit for this task" - icon: "fa-upload" - seq: 2 - active: false - taskResources: - title: "Task Resources" - subtitle: "Upload the task sheet and other resources for this task" - icon: "fa-file-o" - seq: 3 - active: false - plagiarismChecks: - title: "Plagiarism Detection" - subtitle: "Add plagiarism checks for this task" - icon: "fa-eye" - seq: 4 - active: false - - if $scope.overseerEnabled.value - $scope.taskAdmin.tabsData.taskAssessmentResources = { - title: "Task Assessment Resources" - subtitle: "Upload the bash script and other resources for this task assessment" - icon: "fa-wpforms" - seq: 5 - active: false} - - # - # The task sheet uploader... - # - $scope.taskSheet = { file: { name: 'Task Sheet', type: 'document' } } - $scope.taskSheetUploadUrl = -> $scope.task.taskSheetUploadUrl - - $scope.onTaskSheetSuccess = (response) -> - alertService.add("success", "Task sheet uploaded", 2000) - $scope.task.hasTaskSheet = true - - # Assign task the stream - this is called - # From the template as you can't ngModel - # With dropdown - $scope.changeTaskStream = (task, stream) -> - task.tutorialStream = stream - - $scope.downloadTaskPDFUrl = -> - fileDownloaderService.downloadFile($scope.task.getTaskPDFUrl()) - - $scope.downloadTaskResources = -> - fileDownloaderService.downloadFile($scope.task.getTaskResourcesUrl(true), "#{$scope.task.abbreviation}-task-sheet.pdf") - - $scope.removeTaskSheet = (task) -> - task.deleteTaskSheet().subscribe({ - next: (success) -> alertService.add("success", "Deleted task sheet", 2000) - error: (message) ->alertService.add("danger", message, 6000) - }) - - $scope.removeTaskResources = (task) -> - task.deleteTaskResources().subscribe({ - next: (success) -> alertService.add("success", "Deleted task resources", 2000) - error: (message) ->alertService.add("danger", message, 6000) - }) - - $scope.removeTaskAssessmentResources = (task) -> - task.deleteTaskAssessmentResources().subscribe({ - next: (success) -> alertService.add("success", "Deleted task assessment resources", 2000) - error: (message) ->alertService.add("danger", message, 6000) - }) - - # - # The task resources uploader... - # - $scope.taskResources = { file: { name: 'Task Resources', type: 'zip' } } - $scope.taskResourcesUploadUrl = -> $scope.task.taskResourcesUploadUrl - - $scope.onTaskResourcesSuccess = (response) -> - alertService.add("success", "Task sheet uploaded", 2000) - $scope.task.hasTaskResources = true - - $scope.resourceUrl = -> - $scope.task.getTaskResourcesUrl() - - - # # - # # The assessment resources uploader... - # # - $scope.taskAssessmentResources = { file: { name: 'Task Assessment Resources', type: 'zip' } } - $scope.taskAssessmentResourcesUploadUrl = -> $scope.task.taskAssessmentResourcesUploadUrl - - $scope.onTaskAssessmentResourcesSuccess = (response) -> - alertService.add("success", "Task assessment resources uploaded", 2000) - $scope.task.hasTaskAssessmentResources = true - - $scope.downloadTaskAssessmentResources = -> - fileDownloaderService.downloadFile($scope.task.getTaskAssessmentResourcesUrl(), "#{$scope.unit.code}-#{$scope.task.abbreviation}-task-assessment-resources.zip") - - # - # Sets the active tab - # - $scope.setActiveTab = (tab) -> - # Do nothing if we're switching to the same tab - return if tab is $scope.activeTab - if $scope.activeTab? - $scope.activeTab.active = false - $scope.activeTab = tab - $scope.activeTab.active = true - - # - # Checks if tab is the active tab - # - $scope.isActiveTab = (tab) -> - tab is $scope.activeTab - - $scope.setActiveTab($scope.taskAdmin.tabsData['taskSheet']) - - # Datepicker opener - $scope.open = ($event, pickerData) -> - $event.preventDefault() - $event.stopPropagation() - - unless pickerData.open - # Close both - $scope.targetPicker.open = false - $scope.duePicker.open = false - $scope.startPicker.open = false - - # Toggle one - pickerData.open = ! pickerData.open - - $scope.addUpReq = -> - newLength = $scope.task.uploadRequirements.length + 1 - newUpReq = { key: "file#{newLength-1}", name: "", type: "code", language: "Pascal" } - $scope.task.uploadRequirements.push newUpReq - - $scope.removeUpReq = (upReq) -> - $scope.task.uploadRequirements = $scope.task.uploadRequirements.filter (anUpReq) -> anUpReq.key isnt upReq.key - - $scope.addCheck = -> - newLength = $scope.task.plagiarismChecks.length + 1 - newCheck = { key: "check#{newLength-1}", pattern: "", type: "" } - $scope.task.plagiarismChecks.push newCheck - - $scope.removeCheck = (check) -> - $scope.task.plagiarismChecks = $scope.task.plagiarismChecks.filter (aCheck) -> aCheck.key isnt check.key - - $scope.allowedQualityPoints = [0..10] - - $scope.deleteTask = -> - ConfirmationModal.show "Delete Task #{$scope.task.abbreviation}", - 'Are you sure you want to delete this task? This action is final and will delete student work associated with this task.', - -> - $scope.unit.deleteTaskDefinition($scope.task) - # TODO: reinstate ProgressModal.show "Deleting Task #{task.abbreviation}", 'Please wait while student projects are updated.', promise - - $scope.saveTask = -> - if $scope.isNew - # TODO: add progress modal - newTaskDefinitionService.create({unitId: $scope.unit.id}, {entity: $scope.task, cache: $scope.unit.taskDefinitionCache, constructorParams: $scope.unit} ).subscribe({ - next: (response) -> alertService.add("success", "Task Added", 2000) - error: (message) -> alertService.add("danger", message, 6000) - }) - else - newTaskDefinitionService.update( {unitId: $scope.unit.id, id: $scope.task.id}, {entity: $scope.task} ).subscribe({ - next: (response) -> alertService.add("success", "Task Updated", 2000) - error: (message) -> alertService.add("danger", message, 6000) - }) -) diff --git a/src/app/tasks/task-definition-editor/task-definition-editor.scss b/src/app/tasks/task-definition-editor/task-definition-editor.scss deleted file mode 100644 index 7dcecd5b9..000000000 --- a/src/app/tasks/task-definition-editor/task-definition-editor.scss +++ /dev/null @@ -1,17 +0,0 @@ -.task-definition-editor { - .submission-requirement, .plagiarism-check { - &:not(:first-child) { - border-top: 1px solid #ccc; - } - .btn.btn-danger { - margin-right: 1ex; - } - } - a:first-of-type { - margin-top: 0; - } - a { - margin-top: 1rem; - } - -} diff --git a/src/app/tasks/task-definition-editor/task-definition-editor.tpl.html b/src/app/tasks/task-definition-editor/task-definition-editor.tpl.html deleted file mode 100644 index 390ed5586..000000000 --- a/src/app/tasks/task-definition-editor/task-definition-editor.tpl.html +++ /dev/null @@ -1,492 +0,0 @@ -
-
-

- {{task ? (isNew ? "Create Task" : "Editing " + task.abbreviation + " - " + task.name) : "Task Details"}} -

-
-
- -

Select a task to view its definition in detail

-
-
-
-
- - - -
- -
-
-
- -
-
-
-

{{activeTab.title}}

- {{activeTab.subtitle}} -
-
-
-
- -
- -
-
- - -
- -
- -
-
- - -
- -
- -
-
- - -
- -
- -
-
- - -
- -
- -
-
- - -
- -
- -
-
- - -
- -
- -
-
- - -
- -
-
- - - - -
-
-
- - -
- -
-
- - - - -
-
-
- - -
- -
-
- - - - -
-
-
- -
- -
- - - If true, the task will be automatically assessed. - -
-
- -
- -
- -
- - -
-
- - - -
-
-
-
-
- -
-
-
- -

Save Task to Upload Resources

-
-
-
- - - - -
-
- - - - -
-
- -
-
-
- -
- -

The percentage similarity where {{externalName.value}} creates a warning

-
-
- -
- -
- -

- {{externalName.value}} uses - Measure Of Software Similarity (Moss) - developed by Stanford University. -

-
- - -
- -

Separate file patterns with a pipe symbol, e.g.: *.c|*.h

-
-
-
- -
- - -
- -
- -
- - -
- -
diff --git a/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.coffee b/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.coffee deleted file mode 100644 index 6d063a6f3..000000000 --- a/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.coffee +++ /dev/null @@ -1,31 +0,0 @@ -angular.module('doubtfire.tasks.task-plagiarism-file-viewer', []) - -# -# Views the Similarities detected amongst two or more students -# -.directive('taskPlagiarismFileViewer', (alertService) -> - replace: true - restrict: 'E' - templateUrl: 'tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.tpl.html' - scope: - task: "=task" - match: "=match" - matchIdx: "=matchIdx" - other: "=other" - assessingUnitRole: "=" - controller: ($scope) -> - if _.isString $scope.assessingUnitRole?.role - $scope.canDismiss = _.includes(["Tutor", "Convenor"], $scope.assessingUnitRole.role) - else - $scope.canDismiss = false - - $scope.dismiss_similarity = (value) -> - $scope.task.updateSimilarity($scope.matchIdx, $scope.other, value).subscribe( - next: (data) -> - alertService.add("success", "Similarity dismiss status changed.", 4000) - $scope.match.dismissed = value - error: (response) -> - message = response.data || response.statusText - alertService.add("danger", "Failed to change status. #{message}") - ) -) diff --git a/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.scss b/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.scss deleted file mode 100644 index e7d1b81c9..000000000 --- a/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.scss +++ /dev/null @@ -1,5 +0,0 @@ -.task-plagiarism-file-viewer .plagiarism-panel { - display: block; - max-height: 80vh; - overflow: scroll; -} diff --git a/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.tpl.html b/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.tpl.html deleted file mode 100644 index 1a0e70699..000000000 --- a/src/app/tasks/task-plagiarism-file-viewer/task-plagiarism-file-viewer.tpl.html +++ /dev/null @@ -1,33 +0,0 @@ -
-
-
-
- {{match.username || "Other Student"}} - {{match.name}} -
- - Match is {{match.pct}}% similar to a student in {{match.tutor}}'s tutorial, {{match.tutorial}}. - - - Similarities detected in your work. - -
-
-
-
-
- -

Match data hidden

-
- -
diff --git a/src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.coffee b/src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.coffee deleted file mode 100644 index 893cfc456..000000000 --- a/src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.coffee +++ /dev/null @@ -1,51 +0,0 @@ -angular.module('doubtfire.tasks.task-plagiarism-report-viewer', []) - -# -# Task Plagiarism Report shows how the task relates tasks submitted by -# other students. -# -.directive('taskPlagiarismReportViewer', -> - replace: true - restrict: 'E' - templateUrl: 'tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.tpl.html' - scope: - task: "=" - assessingUnitRole: "=" - - controller: ($scope, $window, DoubtfireConstants) -> - # functions from task service - $scope.match = 1 - $scope.similarityData = null - - # Get the confugurable, external name of Doubtfire - $scope.externalName = DoubtfireConstants.ExternalName - - # Set up mail link - if $scope.assessingUnitRole - $scope.$watch 'similarityData', (newData) -> - if newData? - firstAddress = $scope.similarityData.student.email - secondAddress = $scope.similarityData.other_student.email - subject = encodeURIComponent("Plagiarism Report for #{$scope.task.definition.abbreviation}") - $scope.mailtoString = "mailto:?BCC=#{firstAddress},#{secondAddress}&Subject=#{subject}" - $scope.canViewOther = newData.other_student.name? - - $scope.$watch 'task', -> - $scope.fetchSimilarity() - - $scope.$watch 'match', -> - $scope.fetchSimilarity() - - $scope.noPlagiarismDetected = -> - !$scope.task.plagiarismDetected() || $scope.similarityData == null - - $scope.fetchSimilarity = -> - if $scope.task?.similarToCount > 0 - $scope.task.getSimilarityData($scope.match).subscribe( - (data) -> $scope.similarityData = data - ) - - if $scope.task?.similarToCount > 0 - $scope.taskId = $scope.task.id - $scope.fetchSimilarity -) diff --git a/src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.tpl.html b/src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.tpl.html deleted file mode 100644 index 1fdb1d0e9..000000000 --- a/src/app/tasks/task-plagiarism-report-viewer/task-plagiarism-report-viewer.tpl.html +++ /dev/null @@ -1,33 +0,0 @@ -
-
-
- -

{{externalName.value}} has detected no similarities for this work

-
-
-
- -
-
- -
- -
-
-
- - -
-
diff --git a/src/app/tasks/task-submission-history/task-submission-history.component.html b/src/app/tasks/task-submission-history/task-submission-history.component.html index 930c78632..4f261b27b 100644 --- a/src/app/tasks/task-submission-history/task-submission-history.component.html +++ b/src/app/tasks/task-submission-history/task-submission-history.component.html @@ -3,21 +3,25 @@
Submissions
-
{{tab.timestamp | date: 'dd/MM/yy, hh:mm a'}}
 
+}
- + @for (selTab of selectedTab.content; track selTab) { +
{{selTab.result}} 
+}
diff --git a/src/app/tasks/task-submission-history/task-submission-history.component.scss b/src/app/tasks/task-submission-history/task-submission-history.component.scss index c21c3db9b..892d10e0c 100644 --- a/src/app/tasks/task-submission-history/task-submission-history.component.scss +++ b/src/app/tasks/task-submission-history/task-submission-history.component.scss @@ -1,4 +1,4 @@ -@import "src/styles/mixins/flex-center"; +// @import "src/styles/mixins/flex-center"; //== Media queries breakpoints // //## Define the breakpoints at which your layout will change, adapting to different screen sizes. @@ -59,6 +59,8 @@ padding: 1em 1em 0 1em; } +/*TODO(mdc-migration): The following rule targets internal classes of list that may no longer apply for the MDC version.*/ +/*TODO(mdc-migration): The following rule targets internal classes of list that may no longer apply for the MDC version.*/ mat-list.list-group { overflow-y: scroll; } @@ -114,13 +116,17 @@ pre{ white-space: pre-wrap; } +/*TODO(mdc-migration): The following rule targets internal classes of list that may no longer apply for the MDC version.*/ +/*TODO(mdc-migration): The following rule targets internal classes of list that may no longer apply for the MDC version.*/ mat-list, mat-nav-list{ padding-top: 0; border-bottom-width: 1px; padding-bottom: 1px; } -mat-tab-header.mat-tab-header { +/*TODO(mdc-migration): The following rule targets internal classes of tabs that may no longer apply for the MDC version.*/ +/*TODO(mdc-migration): The following rule targets internal classes of tabs that may no longer apply for the MDC version.*/ +mat-tab-header.mat-mdc-tab-header { margin-bottom: 5px; position: sticky; top: 0; @@ -129,7 +135,9 @@ mat-tab-header.mat-tab-header { } -mat-tab-body.mat-tab-body.mat-tab-body-active { +/*TODO(mdc-migration): The following rule targets internal classes of tabs that may no longer apply for the MDC version.*/ +/*TODO(mdc-migration): The following rule targets internal classes of tabs that may no longer apply for the MDC version.*/ +mat-tab-body.mat-mdc-tab-body.mat-tab-body-active { z-index: 1; } @@ -143,6 +151,8 @@ mat-tab-body.mat-tab-body.mat-tab-body-active { box-shadow: -15px 0 $color inset; } +/*TODO(mdc-migration): The following rule targets internal classes of list that may no longer apply for the MDC version.*/ +/*TODO(mdc-migration): The following rule targets internal classes of list that may no longer apply for the MDC version.*/ mat-list-item { border-bottom-width: 1px !important; border-color: #f5f5f5; diff --git a/src/app/tasks/task-submission-viewer/task-submission-viewer.coffee b/src/app/tasks/task-submission-viewer/task-submission-viewer.coffee deleted file mode 100644 index 36f2602a1..000000000 --- a/src/app/tasks/task-submission-viewer/task-submission-viewer.coffee +++ /dev/null @@ -1,24 +0,0 @@ -angular.module('doubtfire.tasks.task-submission-viewer', []) - -# -# Viewer for an uploaded task submission -# -.directive('taskSubmissionViewer', -> - restrict: 'E' - templateUrl: 'tasks/task-submission-viewer/task-submission-viewer.tpl.html' - scope: - project: "=project" - task: "=task" - controller: ($scope) -> - $scope.notSubmitted = (task) -> - not task.hasPdf and (not task.processingPdf) - - $scope.loadingDetails = (task) -> - task.needsSubmissionDetails() - - $scope.$watch 'task', (newTask) -> - return unless newTask? - newTask.getSubmissionDetails().subscribe(() -> ) - $scope.taskUrl = newTask.submissionUrl() - $scope.taskFilesURL = newTask.submittedFilesUrl() -) diff --git a/src/app/tasks/task-submission-viewer/task-submission-viewer.scss b/src/app/tasks/task-submission-viewer/task-submission-viewer.scss deleted file mode 100644 index 35fa8d1f8..000000000 --- a/src/app/tasks/task-submission-viewer/task-submission-viewer.scss +++ /dev/null @@ -1,3 +0,0 @@ -.task-submission-viewer.panel-body { - padding: 0; -} diff --git a/src/app/tasks/task-submission-viewer/task-submission-viewer.tpl.html b/src/app/tasks/task-submission-viewer/task-submission-viewer.tpl.html deleted file mode 100644 index b612ab7b7..000000000 --- a/src/app/tasks/task-submission-viewer/task-submission-viewer.tpl.html +++ /dev/null @@ -1,29 +0,0 @@ -
-
-
- -

Upload submission before viewing

-
-
- -

- Submission is still being processed -

- Please check again shortly -

-

-
-
- -

Fetching Submission Details

-
-
-
- - -
-
diff --git a/src/app/tasks/tasks.coffee b/src/app/tasks/tasks.coffee index 2c6ac7242..9b289aab3 100644 --- a/src/app/tasks/tasks.coffee +++ b/src/app/tasks/tasks.coffee @@ -2,10 +2,6 @@ angular.module('doubtfire.tasks', [ 'doubtfire.tasks.modals' 'doubtfire.tasks.task-ilo-alignment' 'doubtfire.tasks.project-tasks-list' - 'doubtfire.tasks.task-definition-editor' 'doubtfire.tasks.task-definition-selector' - 'doubtfire.tasks.task-plagiarism-file-viewer' - 'doubtfire.tasks.task-plagiarism-report-viewer' 'doubtfire.tasks.task-status-selector' - 'doubtfire.tasks.task-submission-viewer' ]) diff --git a/src/app/units/states/all/directives/all-units-list/all-units-list.tpl.html b/src/app/units/states/all/directives/all-units-list/all-units-list.tpl.html index 61749c155..835754d3b 100644 --- a/src/app/units/states/all/directives/all-units-list/all-units-list.tpl.html +++ b/src/app/units/states/all/directives/all-units-list/all-units-list.tpl.html @@ -22,7 +22,7 @@

Units

Unit Code Name Unit Role - Teaching Period + Teaching Period Start Date End Date Active @@ -37,7 +37,7 @@

Units

{{unitRole.unit.name}} {{(unitRole.role | ucfirst) || "N/A"}} - {{(unitRole.teachingPeriod().name())}} + {{(unitRole.teachingPeriod().name)}} Custom {{unitRole.unit.startDate | date : 'EEE d MMM'}} {{unitRole.unit.endDate | date : 'EEE d MMM'}} diff --git a/src/app/units/states/analytics/analytics.coffee b/src/app/units/states/analytics/analytics.coffee index 4d822fce0..50e90cdb7 100644 --- a/src/app/units/states/analytics/analytics.coffee +++ b/src/app/units/states/analytics/analytics.coffee @@ -1,6 +1,4 @@ -angular.module('doubtfire.units.states.analytics', [ - 'doubtfire.units.states.analytics.directives' -]) +angular.module('doubtfire.units.states.analytics', []) # # State for unit analytics # diff --git a/src/app/units/states/analytics/analytics.tpl.html b/src/app/units/states/analytics/analytics.tpl.html index 1165723ad..abc07aea5 100644 --- a/src/app/units/states/analytics/analytics.tpl.html +++ b/src/app/units/states/analytics/analytics.tpl.html @@ -1,9 +1,9 @@
- + +

@@ -18,5 +18,6 @@

-

+
--> +
diff --git a/src/app/units/states/analytics/directives/directives.coffee b/src/app/units/states/analytics/directives/directives.coffee deleted file mode 100644 index 3b28b2c0c..000000000 --- a/src/app/units/states/analytics/directives/directives.coffee +++ /dev/null @@ -1,7 +0,0 @@ -angular.module('doubtfire.units.states.analytics.directives', [ - 'doubtfire.units.states.analytics.directives.task-completion-stats' - 'doubtfire.units.states.analytics.directives.task-status-stats' - 'doubtfire.units.states.analytics.directives.unit-target-grade-stats' - 'doubtfire.units.states.analytics.directives.unit-achievement-stats' - 'doubtfire.units.states.analytics.directives.unit-stats-download' -]) diff --git a/src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.coffee b/src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.coffee deleted file mode 100644 index b4c49f320..000000000 --- a/src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.coffee +++ /dev/null @@ -1,61 +0,0 @@ -angular.module('doubtfire.units.states.analytics.directives.task-completion-stats', []) - -# -# Stats directive that shows the completion statistics of tasks -# throughout an entire unit, which can be broken down into a specific -# task or tutorial -# -.directive('taskCompletionStats', -> - restrict: 'E' - templateUrl: 'units/states/analytics/directives/task-completion-stats/task-completion-stats.tpl.html' - scope: - unit: "=" - controller: ($scope, newUnitService) -> - # Load data if not loaded already - unless $scope.unit.analytics?.taskCompletionStats? - newUnitService.taskCompletionStats($scope.unit).subscribe( - (response) -> - $scope.unit.analytics.taskCompletionStats = response - $scope.data = response.unit - ) - else - $scope.data = $scope.unit.analytics.taskCompletionStats.unit - - overviewTutorial = { - id: -1 - abbreviation: 'Overview' - tutor_name: 'All Tutorials' - } - - $scope.tutorialsForSelector = [overviewTutorial].concat($scope.unit.tutorials) - - $scope.switchToTutorial = (tutorial) -> - return unless $scope.unit.analytics?.taskCompletionStats? - $scope.dataModel.selectedTutorial = tutorial - if tutorial is overviewTutorial - $scope.data = $scope.unit.analytics.taskCompletionStats.tutorial - $scope.depth = 1 - else - $scope.data = $scope.unit.analytics.taskCompletionStats.tutorial[tutorial.id] - $scope.depth = 0 - - $scope.drillDown = -> - $scope.dataModel.selectedType = 'tutorial' - $scope.switchToTutorial(overviewTutorial) - - $scope.dataModel = { - selectedType: 'unit' - selectedTutorial: overviewTutorial - } - - $scope.depth = 0 - - $scope.$watch 'dataModel.selectedType', (newValue) -> - if $scope.unit.analytics?.taskCompletionStats? - $scope.data = $scope.unit.analytics.taskCompletionStats[newValue] - if newValue is 'tutorial' - $scope.switchToTutorial(overviewTutorial) - else - $scope.depth = 0 - $scope.$watch 'dataModel.selectedTutorial', $scope.switchToTutorial -) diff --git a/src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.tpl.html b/src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.tpl.html deleted file mode 100644 index 79e976154..000000000 --- a/src/app/units/states/analytics/directives/task-completion-stats/task-completion-stats.tpl.html +++ /dev/null @@ -1,65 +0,0 @@ -
-
-
-
- - - -
-
- -
-
-
-
-

- Task completion distribution in {{unit.code}} -

-

-

Task completion distribution for Tutorial {{dataModel.selectedTutorial.abbreviation}}

-

{{dataModel.selectedTutorial.tutorName}} at {{dataModel.selectedTutorial.meetingTime}}

-

-

- Task completion distribution by Target Grade -

-
-
-

- Task completion distribution over all tutorials in {{unit.code}} -

-
-
- -
-
-
- -
- {{tutorial.abbreviation}} -
{{tutorial.tutorName}} at {{tutorial.meetingTime}}
-
-
-
-
-
- -

Loading...

-
-
diff --git a/src/app/units/states/analytics/directives/task-status-stats/task-status-stats.coffee b/src/app/units/states/analytics/directives/task-status-stats/task-status-stats.coffee deleted file mode 100644 index 3535e20d2..000000000 --- a/src/app/units/states/analytics/directives/task-status-stats/task-status-stats.coffee +++ /dev/null @@ -1,325 +0,0 @@ -angular.module('doubtfire.units.states.analytics.directives.task-status-stats', []) - -# -# Stats directive that shows the status of tasks throughout -# an entire unit, which can be broken down into a specific -# task or tutorial -# -.directive('taskStatusStats', -> - replace: true - restrict: 'E' - templateUrl: 'units/states/analytics/directives/task-status-stats/task-status-stats.tpl.html' - scope: - unit: "=" - controller: ($scope, $filter, newUnitService, newTaskService) -> - # Required for button press -- shouldn't really have objects directly on - # the $scope, wrap them in dataModel objects is recommended - $scope.dataModel = {} - $scope.depth = 0 - - $scope.overviewSelectors = - task: { text: 'Overview of tasks', seq: -1, id: -1 } - tutorial: { text: 'Overview of tutorials', abbreviation: "ZZZ", id: -1 } - $scope.tasksForSelector = [$scope.overviewSelectors.task] - - _.each $scope.unit.taskDefinitions, (td) -> - $scope.tasksForSelector.push { - text: td.abbreviation + ' - ' + td.name - id: td.id - seq: td.seq - abbreviation: td.abbreviation - name: td.name - } - - $scope.tutorialsForSelector = [] - - _.each $scope.unit.tutorials, (t) -> - $scope.tutorialsForSelector.push { - text: t.abbreviation + ' - ' + t.tutorName - id: t.id - meetingTime: t.meetingTime - tutorName: t.tutorName - abbreviation: t.abbreviation - } - - $scope.tutorialsForSelector.push $scope.overviewSelectors.tutorial - - - # Load data if not loaded already - unless $scope.unit.analytics.taskStatusCountByTutorial? - newUnitService.taskStatusCountByTutorial($scope.unit).subscribe( - (response) -> - $scope.unit.analytics.taskStatusCountByTutorial = response - $scope.dataModel.selectedType = 'unit' - test = $scope.switchToTasksForTutorial() - ) - else - $scope.dataModel.selectedType = 'unit' - - # Set userChange to false to stop code based changes to selected tutorial/task - # updating the view. - userChange = true - userChangeType = true - - $scope.$watch 'dataModel.selectedType', (newValue) -> - unless userChangeType - userChangeType = true - return - $scope.dataModel.selectedTutorial = null - $scope.dataModel.selectedTask = null - - $scope.depth = 0 - return unless newValue? - switch newValue - when 'unit' - $scope.data = $scope.reduceDataToOverall() - when 'tutorial' - $scope.dataModel.selectedTutorial = $scope.overviewSelectors.tutorial - when 'task' - $scope.dataModel.selectedTask = $scope.overviewSelectors.task - - $scope.$watch 'dataModel.selectedTutorial', (newValue) -> - return unless newValue? - unless userChange - userChange = true - return - if newValue.id >= 0 - $scope.depth = 0 - $scope.data = $scope.reduceDataToTutorialWithId(newValue) - else - $scope.depth = 1 - $scope.data = $scope.reduceDataToTutorial() - $scope.overviewKeys = _.map $scope.unit.tutorials, (t) -> - { - subtitle: "#{t.tutorName} at #{$filter('date')(t.meetingTime, 'shortTime')}" - title: t.abbreviation - data: $scope.data[t.id] - show: _.keys($scope.data[t.id]).length > 0 - tutorial: t - } - - $scope.$watch 'dataModel.selectedTask', (newValue) -> - return unless newValue? - unless userChange - userChange = true - return - if newValue.id >= 0 - $scope.depth = 0 - $scope.data = $scope.reduceDataToTaskDefWithId(newValue) - else - $scope.depth = 1 - $scope.data = $scope.reduceDataToTaskDef() - $scope.overviewKeys = _.map $scope.unit.taskDefinitions, (td) -> - { - title: td.abbreviation - subtitle: td.name - data: $scope.data[td.id] - show: _.keys($scope.data[td.id]).length > 0 - task: td - } - - $scope.$watch 'data', (newValue) -> - return unless newValue? - total = _ .chain(newValue) - .values() - .reduce(((memo, num) -> memo + num), 0) - .value() - completedPct = newValue[newTaskService.completeStatus] / total - if completedPct? && ! isNaN(completedPct) - $scope.completeStats = { - completed: Math.round(completedPct * 100) - left: Math.round((1 - completedPct) * 100) - } - else - $scope.completeStats = { - completed: 0 - left: 100 - } - - $scope.drillToTask = (task) -> - if $scope.depth == 0 || $scope.depth == 2 - userChangeType = false - userChange = $scope.depth == 2 # trigger focus on task if depth 2 - $scope.dataModel.selectedType = 'task' - $scope.dataModel.selectedTutorial = null - $scope.dataModel.selectedTask = task - else - userChangeType = userChange = false - $scope.drillDown(task) - - $scope.drillToTutorial = (tutorial) -> - if $scope.depth == 0 || $scope.depth == 2 - userChangeType = false - userChange = $scope.depth == 2 # trigger focus on tutorial if depth 2 - $scope.dataModel.selectedType = 'tutorial' - $scope.dataModel.selectedTask = null - $scope.dataModel.selectedTutorial = tutorial - else - userChangeType = userChange = false - $scope.drillDown(tutorial) - - $scope.drillDown = (focus) -> - switch $scope.dataModel.selectedType - when 'unit' - $scope.dataModel.selectedType = 'tutorial' - when 'tutorial' - $scope.depth = 2 - if focus? - $scope.dataModel.selectedTutorial = focus - target = focus - else - target = $scope.dataModel.selectedTutorial - $scope.data = $scope.switchToTasksForTutorial()[target.id] - $scope.overviewKeys = _.map $scope.unit.taskDefinitions, (td) -> - { - data: $scope.data[td.id] - show: _.keys($scope.data[td.id]).length > 0 - task: td - title: td.abbreviation - subtitle: td.name - } - when 'task' - $scope.depth = 2 - if focus? - $scope.dataModel.selectedTask = focus - target = focus - else - target = $scope.dataModel.selectedTask - $scope.data = $scope.switchToTutorialsForTask()[target.id] - $scope.overviewKeys = _.map $scope.unit.tutorials, (t) -> - { - data: $scope.data[t.id] - show: _.keys($scope.data[t.id]).length > 0 - tutorial: t - title: t.abbreviation - subtitle: "#{t.tutorName} at #{$filter('date')(t.meetingTime, 'shortTime')}" - } - - $scope.resetToOverview = -> - switch $scope.dataModel.selectedType - when 'unit' - return - when 'tutorial' - $scope.dataModel.selectedTutorial = $scope.overviewSelectors.tutorial - when 'task' - $scope.dataModel.selectedTask = $scope.overviewSelectors.task - drillDown() - - # - # Essentially, we kill the tutorials by reducing them out - # { task_definition_id: { tutorial_id: { status, num }, tutorial_id: { status, num } ... } - # becomes - # { tutorial_id: { task_definition_id: { status, num }, task_definition_id: { status, num } ... } - # - $scope.switchToTasksForTutorial = -> - result = {} - result[''] = {} - _.each $scope.unit.taskDefinitions, (td) -> - result[''][td.id] = {} - - _.each $scope.unit.tutorials, (tutorial) -> - result[tutorial.id] = {} - _.each $scope.unit.taskDefinitions, (td) -> - result[tutorial.id][td.id] = {} - - _.each $scope.unit.analytics.taskStatusCountByTutorial, (taskDef, taskDefId) -> - _.each taskDef, (stats, tutorialId) -> - _.each stats, (value) -> - - result[tutorialId][taskDefId][value.status] = value.num - result - - # - # Essentially, we kill the tutorials by reducing them out - # { task_definition_id: { tutorial_id: { status, num }, tutorial_id: { status, num } ... } - # becomes - # { task_definition_id: { tutorial_id: { status: num, status: num, ... }, tutorial_id: { status, num } ... } - # - $scope.switchToTutorialsForTask = -> - result = {} - _.each $scope.unit.taskDefinitions, (td) -> - result[td.id] = {} - _.each $scope.unit.tutorials, (tutorial) -> - result[td.id][tutorial.id] = {} - result[td.id][''] = {} - - _.each $scope.unit.analytics.taskStatusCountByTutorial, (taskDef, taskDefId) -> - _.each taskDef, (stats, tutorialId) -> - _.each stats, (value, key) -> - result[taskDefId][tutorialId][value.status] = value.num - result - - # - # Essentially, we kill the tutorials by reducing them out - # { task_definition_id: { tutorial_id: { status, num }, tutorial_id: { status, num } ... } - # becomes - # { task_definition_id: { status, num }, task_definition_id: { status, num } ... } - # - $scope.reduceDataToTaskDef = -> - # Begin the mapping - _ .chain($scope.unit.analytics.taskStatusCountByTutorial) - .map( (taskDef, taskDefId) -> - # This task def id - statusesForThisTaskDefId = - # Grab out all the tutorials and flatten them, group by status - _.chain(taskDef).values() - .flatten() - .groupBy('status') - # With each status grouped - .map( (value, status) -> - # Calculate the sum of the 'num' field in each status - sumOfStatuses = _.chain(value) - .map( (value) -> value.num ) - .reduce(((memo, num) -> memo + num), 0) - .value() - [status, sumOfStatuses] - ) - .fromPairs() - .value() - [taskDefId, statusesForThisTaskDefId] - ) - .fromPairs() - .value() - - # - # Same as above, but gets specific task definition - # - $scope.reduceDataToTaskDefWithId = (taskDef) -> - $scope.reduceDataToTaskDef()[taskDef.id] - - # - # Kill both the tutorials and the task definitions - # { task_definition_id: { tutorial_id: { status, num }, tutorial_id: { status, num } ... } - # becomes - # [ { status, num }, { status, num } ] - # - $scope.reduceDataToOverall = -> - taskDefValues = _.values($scope.reduceDataToTaskDef()) - _.reduce taskDefValues, ((memo, taskDef) -> - for status of taskDef - memo[status] = (if status of memo then memo[status] else 0) + taskDef[status] - memo - ), {} - - # - # Kill the task definitions - # { task_definition_id: { tutorial_id: { status, num }, tutorial_id: { status, num } ... } - # becomes - # { tutorial_id: { status, num }, tutorial_id: { status, num } ... } - # - $scope.reduceDataToTutorial = -> - data = {} - for taskDef, tutorialData of $scope.unit.analytics.taskStatusCountByTutorial - for tutorialId, tutorialStatuses of tutorialData - data[tutorialId] = {} unless data[tutorialId]? - for statuses in tutorialStatuses - data[tutorialId][statuses.status] = 0 unless data[tutorialId][statuses.status]? - data[tutorialId][statuses.status] += statuses.num - data - - # - # Same as above, but gets specific tutorial - # - $scope.reduceDataToTutorialWithId = (tutorial) -> - $scope.reduceDataToTutorial()[tutorial.id] -) diff --git a/src/app/units/states/analytics/directives/task-status-stats/task-status-stats.tpl.html b/src/app/units/states/analytics/directives/task-status-stats/task-status-stats.tpl.html deleted file mode 100644 index 7abf436ff..000000000 --- a/src/app/units/states/analytics/directives/task-status-stats/task-status-stats.tpl.html +++ /dev/null @@ -1,98 +0,0 @@ -
-
-
-
- - - -
-
- -
-
- -
-
-
-
-

- Task status distribution in {{unit.code}} -

-

-

Task status distribution of {{dataModel.selectedTask.abbreviation}} in {{unit.code}}

-

{{dataModel.selectedTask.name}}

-

-

-

Status by Task for Tutorial {{dataModel.selectedTutorial.abbreviation}}

-

{{dataModel.selectedTutorial.tutorName}} at {{dataModel.selectedTutorial.meetingTime}}

-

-
-
-

- Task status distribution over all tutorials in {{unit.code}} -

-

- Task status distribution over all tasks in {{unit.code}} -

-
-
-

-

Status by Task for Tutorial {{dataModel.selectedTutorial.abbreviation}}

-

{{dataModel.selectedTutorial.tutorName}} at {{dataModel.selectedTutorial.meetingTime}}

-

-

-

Status by Tutorial for Task {{dataModel.selectedTask.abbreviation}}

-

{{dataModel.selectedTask.name}}

-

-
-

- Click chart to explore details -

-
- -
-
-
- -
- No data -
-
- {{chart.title}} -
{{chart.subtitle}}
-
-
-
-
-
- -
- No data -
-
- {{chart.title}} -
{{chart.subtitle}}
-
-
-
-
-
- -

Loading...

-
- -
diff --git a/src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.coffee b/src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.coffee deleted file mode 100644 index 497c71a21..000000000 --- a/src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.coffee +++ /dev/null @@ -1,70 +0,0 @@ -angular.module('doubtfire.units.states.analytics.directives.unit-achievement-stats', []) - -# -# Student's overall achievement statistics over the entire unit -# -.directive('unitAchievementStats', -> - replace: true - restrict: 'E' - templateUrl: 'units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.tpl.html' - scope: - unit: "=" - controller: ($scope, newUnitService) -> - overviewTutorial = { - id: -1 - abbreviation: 'Overview' - tutor_name: 'All Tutorials' - } - - # Load data if not loaded already - unless $scope.unit.analytics?.learningProgressClassDetails? - newUnitService.loadLearningProgressClassDetails($scope.unit).subscribe( - (response) -> - $scope.unit.analytics.learningProgressClassDetails = response - $scope.data = response.all - ) - else - $scope.data = $scope.unit.analytics.learningProgressClassDetails.all - - $scope.depth = 0 - - $scope.switchToTutorial = (tutorial) -> - return unless $scope.unit.analytics?.learningProgressClassDetails? - $scope.dataModel.selectedTutorial = tutorial - if tutorial is overviewTutorial - rawData = _.clone $scope.unit.analytics.learningProgressClassDetails - delete rawData.all - delete rawData.$promise - delete rawData.$resolved - $scope.data = rawData - $scope.depth = 1 - else - $scope.data = $scope.unit.analytics.learningProgressClassDetails[tutorial.id] - $scope.depth = 0 - $scope.data = _.chain($scope.data).map( (d, id) -> - delete d.students - [id, d] - ).fromPairs().value() - - $scope.drillDown = -> - $scope.dataModel.selectedType = 'tutorial' - $scope.switchToTutorial(overviewTutorial) - - $scope.dataModel = { - selectedType: 'unit' - selectedTutorial: overviewTutorial - pct: true - } - - $scope.tutorialsForSelector = [overviewTutorial].concat($scope.unit.tutorials) - - $scope.$watch 'dataModel.selectedType', (newValue) -> - return unless $scope.unit.analytics?.learningProgressClassDetails? - if newValue is 'tutorial' - $scope.switchToTutorial(overviewTutorial) - else - $scope.depth = 0 - $scope.data = $scope.unit.analytics.learningProgressClassDetails.all - - $scope.$watch 'dataModel.selectedTutorial', $scope.switchToTutorial -) diff --git a/src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.tpl.html b/src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.tpl.html deleted file mode 100644 index 5831c9260..000000000 --- a/src/app/units/states/analytics/directives/unit-achievement-stats/unit-achievement-stats.tpl.html +++ /dev/null @@ -1,70 +0,0 @@ -
-
-
-
-
- - -
-
- - -
-
-
- -
-
-
-
-

- ILO achievement distribution in {{unit.code}} -

-

-

ILO achievement distribution for Tutorial {{dataModel.selectedTutorial.abbreviation}}

-

{{dataModel.selectedTutorial.tutorName}} at {{dataModel.selectedTutorial.meetingTime}}

-

-

- ILO achievement distribution by Target Grade -

-
-
-

- ILO achievement distribution over all tutorials in {{unit.code}} -

-
-
- -
-
-
- -
- {{tutorial.abbreviation}} -
{{tutorial.tutorName}} at {{tutorial.meetingTime}}
-
-
-
-
-
diff --git a/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.coffee b/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.coffee deleted file mode 100644 index bd97b7ff7..000000000 --- a/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.coffee +++ /dev/null @@ -1,18 +0,0 @@ -angular.module('doubtfire.units.states.analytics.directives.unit-stats-download', []) - -# -# Student's overall achievement statistics over the entire unit -# -.directive('unitStatsDownload', -> - replace: true - restrict: 'E' - templateUrl: 'units/states/analytics/directives/unit-stats-download/unit-stats-download.tpl.html' - scope: - unit: "=" - controller: ($scope) -> - $scope.fetchTaskCompletionStats = -> - $scope.unit.downloadTaskCompletionCsv() - $scope.fetchTutorAssessmentStats = -> - $scope.unit.downloadTutorAssessmentCsv() - -) diff --git a/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.scss b/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.scss deleted file mode 100644 index f6f26c6aa..000000000 --- a/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.scss +++ /dev/null @@ -1,8 +0,0 @@ -.unit-stats-download { - a { - margin: 2pt; - } - .button-title { - line-height: 2; - } -} diff --git a/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.tpl.html b/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.tpl.html deleted file mode 100644 index 515c8ba67..000000000 --- a/src/app/units/states/analytics/directives/unit-stats-download/unit-stats-download.tpl.html +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.coffee b/src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.coffee deleted file mode 100644 index dfea0c5b2..000000000 --- a/src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.coffee +++ /dev/null @@ -1,135 +0,0 @@ -angular.module('doubtfire.units.states.analytics.directives.unit-target-grade-stats', []) - -# -# Summary stats for students and their desired target grade -# over the entire unit -# -.directive('unitTargetGradeStats', -> - replace: true - restrict: 'E' - templateUrl: 'units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.tpl.html' - scope: - unit: "=" - controller: ($scope, $filter, newUnitService) -> - $scope.overviewSelectors = - tutorial: { text: 'Overview of tutorials', abbreviation: "ZZZ", id: -1 } - - $scope.tutorialsForSelector = [] - _.each $scope.unit.tutorials, (t) -> - $scope.tutorialsForSelector.push { - text: t.abbreviation + ' - ' + t.tutorName - id: t.id - meetingTime: t.meetingTime - tutor: t.tutor - abbreviation: t.abbreviation - } - - $scope.tutorialsForSelector.push $scope.overviewSelectors.tutorial - - $scope.switchToTutorial = (tutorial) -> - $scope.dataModel.selectedType = 'tutorial' - $scope.dataModel.selectedTask = null - $scope.dataModel.selectedTutorial = tutorial - $scope.depth = 0 - - # Required for button press -- shouldn't really have objects directly on - # the $scope, wrap them in dataModel objects is recommended - $scope.dataModel = {} - - # Load data if not loaded already - unless $scope.unit.analytics.targetGradeStats? - newUnitService.targetGradeStats($scope.unit).subscribe( - (response) -> - $scope.unit.analytics.targetGradeStats = response - $scope.dataModel.selectedType = 'unit' - ) - else - $scope.dataModel.selectedType = 'unit' - - $scope.$watch 'dataModel.selectedType', (newValue) -> - $scope.dataModel.selectedTutorial = null - $scope.dataModel.selectedTask = null - $scope.depth = 0 - return unless newValue? - switch newValue - when 'unit' - $scope.data = $scope.reduceDataToOverall() - when 'tutorial' - $scope.dataModel.selectedTutorial = $scope.overviewSelectors.tutorial - - $scope.$watch 'dataModel.selectedTutorial', (newValue) -> - return unless newValue? - if newValue.id >= 0 - $scope.depth = 0 - $scope.data = $scope.reduceDataToTutorialWithId(newValue) - else - $scope.depth = 1 - $scope.data = $scope.reduceDataToTutorial() - $scope.overviewKeys = _.map $scope.unit.tutorials, (t) -> - { - subtitle: "#{t.tutorName} at #{$filter('date')(t.meetingTime, 'shortTime')}" - title: t.abbreviation - data: $scope.data[t.id] - show: _.keys($scope.data[t.id]).length > 0 - tutorial: t - } - - $scope.resetToOverview = -> - switch $scope.dataModel.selectedType - when 'unit' - return - when 'tutorial' - $scope.dataModel.selectedTutorial = $scope.overviewSelectors.tutorial - drillDown() - - $scope.drillDown = -> - switch $scope.dataModel.selectedType - when 'unit' - $scope.dataModel.selectedType = 'tutorial' - when 'tutorial' - $scope.resetToOverview() - - # - # Kill both the tutorials and reduce them down - # [ { tutorial_id, target, num }, { tutorial_id, target, num } ... } - # becomes - # [ { target, num }, { target, num } ] - # - $scope.reduceDataToOverall = -> - _ .chain($scope.unit.analytics.targetGradeStats) - .groupBy('grade') - .map( (gradeInfo, gradeId) -> - totalForThisGrade = _ .chain(gradeInfo) - .map( (value) -> value.num ) - .reduce(( (memo, num) -> num + memo ), 0) - .value() - [gradeId, totalForThisGrade] - ) - .fromPairs() - .value() - - # - # Group by tutorial_id - # [ { tutorial_id, target, num }, { tutorial_id, target, num } ... } - # becomes - # { tutorial_id: { target, num }, tutorial_id: { target, num } ... } - # - $scope.reduceDataToTutorial = -> - _ .chain($scope.unit.analytics.targetGradeStats) - .groupBy('tutorial_id') - .map( (tutorialInfo, tutorialId) -> - gradeInfo = _ .chain(tutorialInfo) - .map((gradeInfo) -> [gradeInfo.grade, gradeInfo.num]) - .fromPairs() - .value() - [tutorialId, gradeInfo] - ) - .fromPairs() - .value() - - # - # Same as above, but gets specific tutorial - # - $scope.reduceDataToTutorialWithId = (tutorial) -> - $scope.reduceDataToTutorial()[tutorial.id] -) diff --git a/src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.tpl.html b/src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.tpl.html deleted file mode 100644 index 648b1738b..000000000 --- a/src/app/units/states/analytics/directives/unit-target-grade-stats/unit-target-grade-stats.tpl.html +++ /dev/null @@ -1,63 +0,0 @@ -
-
-
-
- - -
-
- -
-
-
-
-

- Target grade distribution in {{unit.code}} -

-

-

Task grade distribution for Tutorial {{dataModel.selectedTutorial.abbreviation}}

-

{{dataModel.selectedTutorial.tutorName}} at {{dataModel.selectedTutorial.meetingTime}}

-

-
-
-

- Target grade distribution over all tutorials in {{unit.code}} -

-
-
-

-

Target grade distribution for Tutorial {{dataModel.selectedTutorial.abbreviation}}

-

{{dataModel.selectedTutorial.tutorName}} at {{dataModel.selectedTutorial.meetingTime}}

-

-
-

- {{depth == 0 && dataModel.selectedType == 'unit' || depth == 1 ? 'Click chart to explore details' : 'Click to return to overview'}} -

-
- -
-
-
- -
- No data -
-
- {{chart.title}} -
{{chart.subtitle}}
-
-
-
-
-
- -

Loading...

-
-
diff --git a/src/app/units/states/analytics/unit-analytics-route.component.html b/src/app/units/states/analytics/unit-analytics-route.component.html new file mode 100644 index 000000000..643d34419 --- /dev/null +++ b/src/app/units/states/analytics/unit-analytics-route.component.html @@ -0,0 +1,4 @@ +

Unit Statistics

+ + + diff --git a/src/app/units/states/analytics/unit-analytics-route.component.scss b/src/app/units/states/analytics/unit-analytics-route.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/analytics/unit-analytics-route.component.ts b/src/app/units/states/analytics/unit-analytics-route.component.ts new file mode 100644 index 000000000..3029bcdd6 --- /dev/null +++ b/src/app/units/states/analytics/unit-analytics-route.component.ts @@ -0,0 +1,11 @@ +import { Component, Input } from '@angular/core'; +import { Unit } from 'src/app/api/models/unit'; + +@Component({ + selector: 'f-unit-analytics', + templateUrl: 'unit-analytics-route.component.html', + styleUrls: ['unit-analytics-route.component.scss'], +}) +export class UnitAnalyticsComponent { + @Input() unit: Unit; +} diff --git a/src/app/units/states/edit/directives/directives.coffee b/src/app/units/states/edit/directives/directives.coffee index def57d102..bfb12ed31 100644 --- a/src/app/units/states/edit/directives/directives.coffee +++ b/src/app/units/states/edit/directives/directives.coffee @@ -3,5 +3,4 @@ angular.module('doubtfire.units.states.edit.directives', [ 'doubtfire.units.states.edit.directives.unit-group-set-editor' 'doubtfire.units.states.edit.directives.unit-ilo-editor' 'doubtfire.units.states.edit.directives.unit-staff-editor' - 'doubtfire.units.states.edit.directives.unit-tasks-editor' ]) diff --git a/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.html b/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.html index 3291f3ea3..af89f8515 100644 --- a/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.html +++ b/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.html @@ -1,9 +1,11 @@ - + Campus None - - {{campus.name}} + @for (campus of campuses; track campus) { + + {{ campus.name }} +} diff --git a/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.ts b/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.ts index 6cdfadd77..c3e5aa1d9 100644 --- a/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.ts +++ b/src/app/units/states/edit/directives/unit-students-editor/student-campus-select/student-campus-select.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, Input, OnInit } from '@angular/core'; import { Campus, CampusService, Project, Unit } from 'src/app/api/models/doubtfire-model'; -import { MatLegacySelectChange as MatSelectChange } from '@angular/material/legacy-select'; +import { MatSelectChange } from '@angular/material/select'; import { alertService } from 'src/app/ajs-upgraded-providers'; @Component({ diff --git a/src/app/units/states/edit/directives/unit-students-editor/student-tutorial-select/student-tutorial-select.component.html b/src/app/units/states/edit/directives/unit-students-editor/student-tutorial-select/student-tutorial-select.component.html index 04f391453..dc0dd6aa4 100644 --- a/src/app/units/states/edit/directives/unit-students-editor/student-tutorial-select/student-tutorial-select.component.html +++ b/src/app/units/states/edit/directives/unit-students-editor/student-tutorial-select/student-tutorial-select.component.html @@ -1,25 +1,35 @@ - + Tutorial - - 0) { + + @for (tutorial of tutorialsForStreamAndStudent(student); track tutorial) { + {{ tutorial.abbreviation }} +} -
- - + @if (tutorialsForStreamAndStudent(student, stream).length > 0) { + + @for (tutorial of tutorialsForStreamAndStudent(student, stream); track tutorial) { + {{ tutorial.abbreviation }} +} +}
+}
diff --git a/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.html b/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.html index 377e5b940..4797fff33 100644 --- a/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.html +++ b/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.html @@ -6,19 +6,13 @@

Enrolled Students

- + Search
- +
@@ -54,7 +48,7 @@

Enrolled Students

- @@ -62,11 +56,8 @@

Enrolled Students

- @@ -75,6 +66,7 @@

Enrolled Students

diff --git a/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.ts b/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.ts index 368ad99a5..2b3924f6e 100644 --- a/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.ts +++ b/src/app/units/states/edit/directives/unit-students-editor/unit-students-editor.component.ts @@ -4,12 +4,12 @@ import { unitStudentEnrolmentModal, } from './../../../../../ajs-upgraded-providers'; import { ViewChild, Component, Input, Inject, AfterViewInit, OnDestroy, OnInit } from '@angular/core'; -import { MatLegacyTable as MatTable, MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table'; +import { MatTable, MatTableDataSource } from '@angular/material/table'; import { MatSort, Sort } from '@angular/material/sort'; import { alertService } from 'src/app/ajs-upgraded-providers'; -import { MatLegacyPaginator as MatPaginator } from '@angular/material/legacy-paginator'; +import { MatPaginator } from '@angular/material/paginator'; import { HttpClient } from '@angular/common/http'; -import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; import { Project, ProjectService, Unit } from 'src/app/api/models/doubtfire-model'; import { UIRouter } from '@uirouter/angular'; import { Subscription } from 'rxjs'; diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.html new file mode 100644 index 000000000..a2285a096 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.html @@ -0,0 +1,43 @@ +
+ + Start date to suggested completion date + + + + + + + + + + + Suggestion completion date to final feedback + + + + + + + + +
diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.ts new file mode 100644 index 000000000..f0d5d6dc2 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-dates/task-definition-dates.component.ts @@ -0,0 +1,16 @@ +import { Component, Input } from '@angular/core'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; + +@Component({ + selector: 'f-task-definition-dates', + templateUrl: 'task-definition-dates.component.html', + styleUrls: ['task-definition-dates.component.scss'], +}) +export class TaskDefinitionDatesComponent { + @Input() taskDefinition: TaskDefinition; + + public get unit(): Unit { + return this.taskDefinition?.unit; + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.html new file mode 100644 index 000000000..2c5ec952b --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.html @@ -0,0 +1,137 @@ +
+
+
+ 1 +
+
+ +
+

Task details

+

Name the task and set target grade

+
+ +
+
+
+ +
+
+
+ 2 +
+
+ +
+

Inbox

+

Who assesses {{ unit.hasGroupwork() ? 'and submits ' : '' }}this task?

+
+ +
+
+
+ +
+
+
+ 3 +
+
+ +
+

Due dates

+

When is this task due?

+
+ +
+
+
+ +
+
+
+ 4 +
+
+ +
+

Upload requirements

+

What do students need to upload?

+
+ +
+
+
+ +
+
+
+ 5 +
+
+ +
+

Task description and resources

+

Upload task descriptions and resources

+
+ +
+
+
+ +
+
+
+ 6 +
+
+ +
+

Task assessment automation

+

Configure automated assessment

+
+ +
+
+
+ +
+
+
+ 7 +
+
+ +
+

Optional settings

+

Configure automated assessment

+ + + + Options + + + + +
+
+ + + + + + + diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.scss new file mode 100644 index 000000000..05e8bffdd --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.scss @@ -0,0 +1,10 @@ +.mat-toolbar { + background-color: white; + // position: fixed; + // bottom: 0; + // width: 100%; +} + +.form-group { + +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts new file mode 100644 index 000000000..88f7ccfe2 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts @@ -0,0 +1,32 @@ +import { Component, Input } from '@angular/core'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; +import { TaskDefinitionService } from 'src/app/api/services/task-definition.service'; +import { AlertService } from 'src/app/common/services/alert.service'; +import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; + +@Component({ + selector: 'f-task-definition-editor', + templateUrl: 'task-definition-editor.component.html', + styleUrls: ['task-definition-editor.component.scss'], +}) +export class TaskDefinitionEditorComponent { + @Input() taskDefinition: TaskDefinition; + @Input() unit: Unit; + + constructor(private taskDefinitionService: TaskDefinitionService, private alerts: AlertService, private constants: DoubtfireConstants) { + constants.IsOverseerEnabled.subscribe((enabled) => (this.overseerEnabled = enabled && this.unit.overseerEnabled)); + } + + public overseerEnabled: boolean = false; + + public save() { + this.taskDefinition.save().subscribe({ + next: (response) => { + this.alerts.success('Task Saved'); + response.setOriginalSaveData(this.taskDefinitionService.mapping); + }, + error: (message) => this.alerts.error(message), + }); + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.html new file mode 100644 index 000000000..9c6c146b8 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.html @@ -0,0 +1,25 @@ +
+ + Grade where task appears + + @for (grade of grades; track grade) { + {{ grade.viewValue }} +} + + + + + Abbreviation - Week, sequence, and grade. eg 1.1P + + + + + Weight - Effort relative to other tasks. + + +
+ + + Descriptive task name + + diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.ts new file mode 100644 index 000000000..3bfe2ecd0 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-general/task-definition-general.component.ts @@ -0,0 +1,23 @@ +import { Component, Input } from '@angular/core'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; +import { GradeService } from 'src/app/common/services/grade.service'; + +@Component({ + selector: 'f-task-definition-general', + templateUrl: 'task-definition-general.component.html', + styleUrls: ['task-definition-general.component.scss'], +}) +export class TaskDefinitionGeneralComponent { + @Input() taskDefinition: TaskDefinition; + + public grades: { value: number; viewValue: string }[]; + + constructor(private gradeService: GradeService) { + this.grades = this.gradeService.gradeViewData.filter((grade) => grade.value !== -1); + } + + public get unit(): Unit { + return this.taskDefinition?.unit; + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.html new file mode 100644 index 000000000..3fede2ab2 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.html @@ -0,0 +1,33 @@ +
+
+ + Restrict updates + + + This task will be locked once it goes into a staff-allocated status. Students will not be able to resubmit, even + if placed on the fix status. + +
+ +
+ Graded + + Provide a grade along with the complete or discuss status. We recommend avoiding this practice. + +
+ +
+ + Maximum Score + + + Provide a score alongside the task status. We recommend avoiding this practice. +
+
diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.ts new file mode 100644 index 000000000..2e421da74 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-options/task-definition-options.component.ts @@ -0,0 +1,19 @@ +import { Component, Input } from '@angular/core'; +import { FormControl, Validators } from '@angular/forms'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; + +@Component({ + selector: 'f-task-definition-options', + templateUrl: 'task-definition-options.component.html', + styleUrls: ['task-definition-options.component.scss'], +}) +export class TaskDefinitionOptionsComponent { + @Input() taskDefinition: TaskDefinition; + + public scoreControl = new FormControl('', [Validators.max(100), Validators.min(0)]); + + public get unit(): Unit { + return this.taskDefinition?.unit; + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.html new file mode 100644 index 000000000..08255a197 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.html @@ -0,0 +1,40 @@ +
+ + Automation Enabled + + + + Docker Image + + @for (image of images | async; track image) { + {{ image.description }} +} + + Docker image for Overseer + + + + +
+ + +
+
diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts new file mode 100644 index 000000000..f9b30dde0 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts @@ -0,0 +1,101 @@ +import { Component, Input, OnChanges } from '@angular/core'; +import { Observable } from 'rxjs'; +import { + OverseerAssessment, + OverseerImage, + OverseerImageService, + Task, + User, + UserService, +} from 'src/app/api/models/doubtfire-model'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; +import { TaskDefinitionService } from 'src/app/api/services/task-definition.service'; +import { TaskAssessmentModalService } from 'src/app/common/modals/task-assessment-modal/task-assessment-modal.service'; +import { AlertService } from 'src/app/common/services/alert.service'; +import { TaskSubmissionService } from 'src/app/common/services/task-submission.service'; + +@Component({ + selector: 'f-task-definition-overseer', + templateUrl: 'task-definition-overseer.component.html', + styleUrls: ['task-definition-overseer.component.scss'], +}) +export class TaskDefinitionOverseerComponent implements OnChanges { + @Input() taskDefinition: TaskDefinition; + + public currentUserTask: Task; + + constructor( + private alerts: AlertService, + private overseerImageService: OverseerImageService, + private modalService: TaskAssessmentModalService, + private submissions: TaskSubmissionService, + private userService: UserService, + private taskDefinitionService: TaskDefinitionService + ) {} + + public get overseerEnabled(): boolean { + return this.unit.overseerEnabled; + } + + public get unit(): Unit { + return this.taskDefinition?.unit; + } + + public get images(): Observable { + return this.overseerImageService.query(); + } + + get currentUser(): User { + return this.userService.currentUser; + } + + public ngOnChanges() { + const proj = this.unit.findProjectForUsername(this.currentUser.username); + if (proj) { + this.currentUserTask = proj.findTaskForDefinition(this.taskDefinition.id); + this.hasAnySubmissions(); + } + } + + testSubmission() { + if (!this.currentUserTask) { + this.currentUserTask = new Task(this.unit); + + this.currentUserTask.definition = this.taskDefinition; + this.currentUserTask.status = 'ready_for_feedback'; + this.currentUserTask.id = this.taskDefinition.id; // set a default id... + this.hasAnySubmissions(); + } + + this.currentUserTask.presentTaskSubmissionModal(this.currentUserTask.status, false, true); + } + + testSubmissionHistory() { + this.modalService.show(this.currentUserTask); + } + + private hasAnySubmissions() { + if (!this.currentUserTask) return; + + this.submissions.getLatestSubmissionsTimestamps(this.currentUserTask).subscribe({ + next: (result: OverseerAssessment[]) => {}, + error: (error) => { + this.alerts.error('Error: ' + error, 6000); + }, + }); + } + + public uploadOverseerResources(files: FileList) { + const validFiles = Array.from(files as ArrayLike).filter((f) => f.type === 'application/zip'); + if (validFiles.length > 0) { + const file = validFiles[0]; + this.taskDefinitionService.uploadTaskResources(this.taskDefinition, file).subscribe({ + next: () => this.alerts.success('Uploaded task sheet', 2000), + error: (message) => this.alerts.error(message, 6000), + }); + } else { + this.alerts.error('Please drop a PDF to upload for this task', 6000); + } + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.html new file mode 100644 index 000000000..6d8ec7dd7 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.html @@ -0,0 +1,36 @@ +
+
+ + @if (taskDefinition.hasTaskSheet) { +
+ + +
+} +
+
+ + @if (taskDefinition.hasTaskResources) { +
+ + +
+} +
+
diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.ts new file mode 100644 index 000000000..323c6213c --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-resources/task-definition-resources.component.ts @@ -0,0 +1,78 @@ +import { Component, Inject, Input } from '@angular/core'; +import { FormControl, Validators } from '@angular/forms'; +import { alertService } from 'src/app/ajs-upgraded-providers'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; +import { TaskDefinitionService } from 'src/app/api/services/task-definition.service'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; + +@Component({ + selector: 'f-task-definition-resources', + templateUrl: 'task-definition-resources.component.html', + styleUrls: ['task-definition-resources.component.scss'], +}) +export class TaskDefinitionResourcesComponent { + @Input() taskDefinition: TaskDefinition; + + constructor( + private fileDownloaderService: FileDownloaderService, + @Inject(alertService) private alerts: any, + private taskDefinitionService: TaskDefinitionService + ) {} + + public get unit(): Unit { + return this.taskDefinition?.unit; + } + + public downloadTaskSheet() { + this.fileDownloaderService.downloadFile(this.taskDefinition.getTaskPDFUrl(), this.taskDefinition.name + '.pdf'); + } + + public downloadTaskResources() { + this.fileDownloaderService.downloadFile( + this.taskDefinition.getTaskResourcesUrl(true), + this.taskDefinition.name + '.zip' + ); + } + + public removeTaskSheet() { + this.taskDefinition.deleteTaskSheet().subscribe({ + next: () => this.alerts.add('success', 'Deleted task sheet', 2000), + error: (message) => this.alerts.add('danger', message, 6000), + }); + } + + public removeTaskResources() { + this.taskDefinition.deleteTaskResources().subscribe({ + next: () => this.alerts.add('success', 'Deleted task resources', 2000), + error: (message) => this.alerts.add('danger', message, 6000), + }); + } + + public uploadTaskSheet(files: FileList) { + const validFiles = Array.from(files as ArrayLike).filter((f) => f.type === 'application/pdf'); + if (validFiles.length > 0) { + const file = validFiles[0]; + this.taskDefinitionService.uploadTaskSheet(this.taskDefinition, file).subscribe({ + next: () => this.alerts.add('success', 'Uploaded task sheet', 2000), + error: (message) => this.alerts.add('danger', message, 6000), + }); + } else { + this.alerts.add('danger', 'Please drop a PDF to upload for this task', 6000); + } + } + + public uploadTaskResources(files: FileList) { + const validFiles = Array.from(files as ArrayLike).filter((f) => f.type === 'application/zip'); + if (validFiles.length > 0) { + const file = validFiles[0]; + this.taskDefinitionService.uploadTaskResources(this.taskDefinition, file).subscribe({ + next: () => this.alerts.add('success', 'Uploaded task sheet', 2000), + error: (message) => this.alerts.add('danger', message, 6000), + }); + } else { + this.alerts.add('danger', 'Please drop a PDF to upload for this task', 6000); + } + } + +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.html new file mode 100644 index 000000000..fe96cfb2d --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.html @@ -0,0 +1,93 @@ +
Username Campus + Tutorial - + + Enrolled @@ -96,9 +88,7 @@

Enrolled Students

- + - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Filename + + + + Type + + Code + Document + Image + + Check Similarity + @if (upreq.type === 'document') { +TurnItIn +} + @if (upreq.type === 'code') { +Moss +} + Flag At + @if (upreq.type === 'document' && upreq.tiiCheck) { + + +  % + +} + + + + + + + + + +
+ +@if (taskDefinition.needsMoss) { +
+ + Language used for Moss checks + + C + C# + C++ + Python + + + + Similarity percent to flag for Moss checks + + +
+} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.scss new file mode 100644 index 000000000..801341d8d --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.scss @@ -0,0 +1,8 @@ +.upload-card { + max-width: 400px; + margin-bottom: 8px; +} + +.mat-toolbar { + background-color: white; +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.ts new file mode 100644 index 000000000..a8915d843 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-upload/task-definition-upload.component.ts @@ -0,0 +1,38 @@ +import { Component, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core'; +import { MatTable, MatTableDataSource } from '@angular/material/table'; +import { TaskDefinition, UploadRequirement } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; + +@Component({ + selector: 'f-task-definition-upload', + templateUrl: 'task-definition-upload.component.html', + styleUrls: ['task-definition-upload.component.scss'], +}) +export class TaskDefinitionUploadComponent { + @Input() public taskDefinition: TaskDefinition; + @ViewChild('upreqTable', { static: true }) table: MatTable; + + public columns: string[] = ['file-name', 'file-type', 'tii-check', 'flag-pct', 'row-actions']; + + public get unit(): Unit { + return this.taskDefinition?.unit; + } + + public addUpReq() { + const newLength = this.taskDefinition.uploadRequirements.length + 1; + this.taskDefinition.uploadRequirements.push({ + key: `file${newLength - 1}`, + type: 'code', + name: '', + tiiCheck: false, + tiiPct: 30, + }); + this.table.renderRows(); + } + + public removeUpReq(upreq: UploadRequirement) { + this.taskDefinition.uploadRequirements = this.taskDefinition.uploadRequirements.filter( + (anUpReq) => anUpReq.key != upreq.key + ); + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.html new file mode 100644 index 000000000..8fb322756 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.html @@ -0,0 +1,33 @@ +@if (unit.hasGroupwork()) { + + Is this an individual or group task? Select group that submits + + @for (gs of unit.groupSets; track gs) { + {{ gs.name }} +} + None - Individual Submission + + +} + +
+ + Tutorial Stream - Which tutor provides feedback? + + @for (stream of unit.tutorialStreams; track stream) { + {{ stream.name }} +} + + + + + Related tutorials +
    + @for (tutorial of taskDefinition.tutorialStream?.tutorialsIn(unit); track tutorial) { +
  • + {{ tutorial.abbreviation }} {{ tutorial.tutor.name }} +
  • +} +
+
+
diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.ts new file mode 100644 index 000000000..973299859 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-who/task-definition-who.component.ts @@ -0,0 +1,16 @@ +import { Component, Input } from '@angular/core'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; + +@Component({ + selector: 'f-task-definition-who', + templateUrl: 'task-definition-who.component.html', + styleUrls: ['task-definition-who.component.scss'], +}) +export class TaskDefinitionWhoComponent { + @Input() taskDefinition: TaskDefinition; + + public get unit(): Unit { + return this.taskDefinition?.unit; + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.html new file mode 100644 index 000000000..d874a5a13 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.html @@ -0,0 +1,132 @@ +
+
+
+
+

Task List

+

Plan the list of tasks for students to complete.

+
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Task Name + {{ taskDefinition.abbreviation }} {{ taskDefinition.name }} + Grade + {{ taskDefinition.targetGradeText }} + Start Date + {{ taskDefinition.startDate | date: 'd LLL y' }} + Due Date + {{ taskDefinition.targetDate | date: 'd LLL y' }} + Deadline + {{ taskDefinition.dueDate | date: 'd LLL y' }} + + @if (taskDefinitionHasChanges(taskDefinition)) { + +} + +
+ + + + + + + + + + + + + + @if (selectedTaskDefinition) { + +} +
+ +
diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.scss b/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.scss new file mode 100644 index 000000000..5996af349 --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.scss @@ -0,0 +1,6 @@ +.mat-toolbar { + background-color: white; + // position: fixed; + // bottom: 0; + // width: 100%; +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.ts new file mode 100644 index 000000000..fbcded66b --- /dev/null +++ b/src/app/units/states/edit/directives/unit-tasks-editor/unit-task-editor.component.ts @@ -0,0 +1,196 @@ +import { AfterViewInit, Component, Inject, Input, ViewChild } from '@angular/core'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort, Sort } from '@angular/material/sort'; +import { MatTable, MatTableDataSource } from '@angular/material/table'; +import { Subscription } from 'rxjs'; +import { confirmationModal, csvResultModalService, csvUploadModalService } from 'src/app/ajs-upgraded-providers'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; +import { TaskDefinitionService } from 'src/app/api/services/task-definition.service'; +import { AlertService } from 'src/app/common/services/alert.service'; + +@Component({ + selector: 'f-unit-task-editor', + templateUrl: 'unit-task-editor.component.html', + styleUrls: ['unit-task-editor.component.scss'], +}) +export class UnitTaskEditorComponent implements AfterViewInit { + @ViewChild(MatTable, { static: false }) table: MatTable; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator; + + @Input() unit: Unit; + + public taskDefinitionSource: MatTableDataSource; + public columns: string[] = ['name', 'grade', 'startDate', 'targetDate', 'deadlineDate', 'taskDefAction']; + public filter: string; + public selectedTaskDefinition: TaskDefinition; + + constructor( + private taskDefinitionService: TaskDefinitionService, + private alerts: AlertService, + @Inject(csvResultModalService) private csvResultModalService: any, + @Inject(csvUploadModalService) private csvUploadModal: any, + @Inject(confirmationModal) private confirmationModal: any + ) {} + + ngAfterViewInit(): void { + this.subscriptions.push( + this.unit.taskDefinitionCache.values.subscribe((taskDefinitions) => { + this.taskDefinitionSource = new MatTableDataSource(taskDefinitions); + this.taskDefinitionSource.paginator = this.paginator; + this.taskDefinitionSource.sort = this.sort; + this.taskDefinitionSource.filterPredicate = (data: any, filter: string) => data.matches(filter); + }) + ); + } + + public saveTaskDefinition(taskDefinition: TaskDefinition) { + taskDefinition.save().subscribe(() => { + this.alerts.success('Task Saved'); + taskDefinition.setOriginalSaveData(this.taskDefinitionService.mapping); + }); + } + + private subscriptions: Subscription[] = []; + ngOnDestroy(): void { + this.subscriptions.forEach((s) => s.unsubscribe()); + } + + public selectTaskDefinition(taskDefinition: TaskDefinition) { + if (this.selectedTaskDefinition === taskDefinition) { + this.selectedTaskDefinition = null; + } else { + this.selectedTaskDefinition = taskDefinition; + + this.selectedTaskDefinition.setOriginalSaveData(this.taskDefinitionService.mapping); + } + } + + public sortData(sort: Sort) { + const data = this.taskDefinitionSource.data; + + if (!sort.active || sort.direction === '') { + this.taskDefinitionSource.data = data; + return; + } + + this.taskDefinitionSource.data = data.sort((a, b) => { + const isAsc = sort.direction === 'asc'; + switch (sort.active) { + case 'name': + return this.compare(a.abbreviation, b.abbreviation, isAsc); + case 'grade': + return this.compare(a.targetGrade, b.targetGrade, isAsc); + case 'startDate': + return this.compare(a.startDate.getTime(), b.startDate.getTime(), isAsc); + case 'targetDate': + return this.compare(a.targetDate.getTime(), b.targetDate.getTime(), isAsc); + case 'deadlineDate': + return this.compare(a.dueDate.getTime(), b.dueDate.getTime(), isAsc); + default: + return 0; + } + }); + } + + public compare(a: number | string, b: number | string, isAsc: boolean): number { + return (a < b ? -1 : 1) * (isAsc ? 1 : -1); + } + + applyFilter(filterValue: string) { + this.taskDefinitionSource.filter = filterValue.trim().toLowerCase(); + + this.selectedTaskDefinition = null; + + if (this.taskDefinitionSource.paginator) { + this.taskDefinitionSource.paginator.firstPage(); + } + } + + private guessTaskAbbreviation() { + if (this.unit.taskDefinitions.length == 0) { + return '1.1P'; + } else { + const lastAbbr = this.unit.taskDefinitions[this.unit.taskDefinitions.length - 1].abbreviation; + const regex = /(.*)(\d+)(\D*)/; + const match = regex.exec(lastAbbr); + if (match) { + return `${match[1]}${parseInt(match[2]) + 1}${match[3]}`; + } else { + return `${lastAbbr}1`; + } + } + } + + public taskDefinitionHasChanges(taskDefinition: TaskDefinition): boolean { + return taskDefinition.hasChanges(this.taskDefinitionService.mapping); + } + + public deleteTaskDefinition(taskDefinition: TaskDefinition) { + this.confirmationModal.show( + `Delete Task ${taskDefinition.abbreviation}`, + 'Are you sure you want to delete this task? This action is final and will delete student work associated with this task.', + () => { + this.unit.deleteTaskDefinition(taskDefinition); + //TODO: reinstate ProgressModal.show "Deleting Task #{task.abbreviation}", 'Please wait while student projects are updated.', promise + + this.alerts.success('Task deleted'); + } + ); + } + + public uploadTaskDefinitionsCsv() { + this.csvUploadModal.show( + 'Upload Task Definitions as CSV', + 'Test message', + { file: { name: 'Task Definition CSV Data', type: 'csv' } }, + this.unit.getTaskDefinitionBatchUploadUrl(), + (response: any) => { + // at least one student? + this.csvResultModalService.show('Task Definition Import Results', response); + if (response.success.length > 0) { + this.unit.refresh(); + } + } + ); + } + + public uploadTaskResourcesZip() { + this.csvUploadModal.show( + 'Upload Task Sheets and Resources as Zip', + 'Test message', + { file: { name: 'Task Sheets and Resources', type: 'zip' } }, + this.unit.taskUploadUrl, + (response: any) => { + // at least one student? + this.csvResultModalService.show('Task Sheet and Resources Import Results', response); + if (response.success.length > 0) { + this.unit.refresh(); + } + } + ); + } + + public createTaskDefinition() { + const abbr = this.guessTaskAbbreviation(); + const task = new TaskDefinition(this.unit); + + task.name = `Task ${abbr}`; + task.abbreviation = abbr; + task.description = 'New Description'; + task.startDate = new Date(); + task.targetDate = new Date(); + task.uploadRequirements = []; + task.plagiarismChecks = []; + task.weighting = 4; + task.targetGrade = 0; + task.restrictStatusUpdates = false; + task.plagiarismWarnPct = 80; + task.isGraded = false; + task.maxQualityPts = 0; + task.tutorialStream = this.unit.tutorialStreams[0]; + + this.selectedTaskDefinition = task; + } +} diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.coffee b/src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.coffee deleted file mode 100644 index 1e7322dd7..000000000 --- a/src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.coffee +++ /dev/null @@ -1,127 +0,0 @@ -angular.module('doubtfire.units.states.edit.directives.unit-tasks-editor', []) - -# -# Editor for modifying the tasks in a unit -# -.directive('unitTasksEditor', -> - replace: true - restrict: 'E' - templateUrl: 'units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.tpl.html' - controller: ($scope, $rootScope, gradeService, alertService, newTaskService, CsvResultModal, ConfirmationModal, ProgressModal, fileDownloaderService, newTaskDefinitionService) -> - $scope.grades = gradeService.grades - - # Pagination details - $scope.taskAdminPager = { - currentPage: 1 - maxSize: 5 - pageSize: 5 - search: '' - sortOrder: 'seq' - reverse: false - } - - $scope.taskAdminData = { - selectedTask: null - isNew: false - } - - # Modal Events - $scope.editTask = (unit, task) -> - # if task is just a task definition, add a project_id to enable test submission. - - console.log("unit task editor - fix ability to test overseer exec") - # unless task.project - # project = {project_id: unit.project_id} - # task.project = -> project - - # unless task.definition - # task.definition = {id: task.id, abbreviation: task.abbreviation, uploadRequirements: task.uploadRequirements} - - $scope.taskAdminData.selectedTask = task - $scope.taskAdminData.isNew = false - - guessTaskAbbreviation = -> - unit = $scope.unit - if unit.taskDefinitions.length == 0 - "1.1P" - else - lastAbbr = unit.taskDefinitions[unit.taskDefinitions.length-1].abbreviation - regex = /(.*)(\d+)(\D*)/ - match = regex.exec lastAbbr - if match? - "#{match[1]}#{parseInt(match[2])+1}#{match[3]}" - else - "#{lastAbbr}1" - - $scope.deleteTask = (task) -> - ConfirmationModal.show "Delete Task #{task.abbreviation}", - 'Are you sure you want to delete this task? This action is final and will delete student work associated with this task.', - -> - $scope.unit.deleteTaskDefinition(task) - #TODO: reinstate ProgressModal.show "Deleting Task #{task.abbreviation}", 'Please wait while student projects are updated.', promise - - $scope.createTask = -> - abbr = guessTaskAbbreviation() - task = newTaskDefinitionService.createInstanceFrom({}, $scope.unit) - task.name = "Task #{abbr}" - task.abbreviation = abbr - task.description = "New Description" - task.startDate = new Date() - task.targetDate = new Date() - task.uploadRequirements = [] - task.plagiarismChecks = [] - task.weighting = 4 - task.targetGrade = 0 - task.restrictStatusUpdates = false - task.plagiarismWarnPct = 80 - task.isGraded = false - task.maxQualityPts = 0 - task.autoApplyExtensionBeforeDeadline = true - task.sendNotifications = true - task.enableSyncTimetable = true - task.enableSyncEnrolments = true - task.tutorialStream = $scope.unit.tutorialStreams[0] - - $scope.taskAdminData.selectedTask = task - $scope.taskAdminData.isNew = true - - # Watch for deletion - $scope.$watch 'unit.taskDefinitions.length', (newLength, oldLength) -> - # Return if equal - return if newLength == oldLength - - if $scope.unit.taskDefinitions.length > 0 - # Delete - if newLength < oldLength - $scope.editTask($scope.unit, _.first $scope.unit.taskDefinitions) - else - $scope.editTask($scope.unit, _.last $scope.unit.taskDefinitions) - else - $scope.taskAdminData.selectedTask = null - - $scope.taskFiles = { file: { name: 'Task PDFs', type: 'zip' } } - $scope.taskUploadUrl = $scope.unit.taskUploadUrl - - $scope.onTaskPDFSuccess = (response) -> - CsvResultModal.show "Task File Import Results", response - if response.success.length > 0 - $scope.unit.refresh() - - $scope.batchFiles = { file: { name: 'CSV Data', type: 'csv' } } - - $scope.batchTaskUrl = -> - $scope.unit.getTaskDefinitionBatchUploadUrl() - - $scope.downloadAllResource = -> - fileDownloaderService.downloadFile($scope.unit.allResourcesDownloadUrl, "#{$scope.unit.code}-all-resources.zip") - - $scope.downloadTasksCSV = -> - fileDownloaderService.downloadFile($scope.unit.getTaskDefinitionBatchUploadUrl(), "#{$scope.unit.code}-task-definitions.csv") - - $scope.onBatchTaskSuccess = (response) -> - CsvResultModal.show "Task CSV Upload Results", response - if response.success.length > 0 - $scope.unit.refresh() - - $scope.groupSetName = (id) -> $scope.unit.groupSetsCache.get(id)?.name || "Individual Work" -) diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.tpl.html b/src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.tpl.html deleted file mode 100644 index 893f0700b..000000000 --- a/src/app/units/states/edit/directives/unit-tasks-editor/unit-tasks-editor.tpl.html +++ /dev/null @@ -1,154 +0,0 @@ -
-
-
-
-
-
-

- Task List -

- Summary of tasks added as work for this unit -
- -
-
-
- This unit has no tasks -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Name - - - - Grade - - - - Start Date - - - - Due Date - - - - Deadline - - - - Group Set - - - - Stream - - - - - - - - - - - - - - - Actions -
{{taskDef.abbreviation}} - {{taskDef.name}}{{grades[taskDef.targetGrade]}}{{taskDef.startDate | date : 'EEE d MMM'}}{{taskDef.targetDate | date : 'EEE d MMM'}}{{taskDef.dueDate | date : 'EEE d MMM' }}None{{taskDef.groupSet.name || "individual"}}{{taskDef.tutorialStream.abbreviation}}{{taskDef.uploadRequirements.length}} - -
-
-
- -
- -
-
-
-
-

Batch Upload Task Definitions

-

Batch upload task definitions with a CSV containing: name, abbreviation, description, weighting, target_grade, restrictStatusUpdates, upload_requirements, target_week, target_day, due_week, due_day, is graded, and max quality points.

Note: Upload_requirements should be an escaped-JSON-formatted string an array of objects containing a "key", "name" and "type". Target and due weeks should be the number of weeks from the unit start, and the day should be a short text (eg "Tue").

-
-
- -
-
-

Download Tasks

- Download all tasks for the unit. -
-
-
- - -
-
-
-

Upload All Task PDFs

- Upload PDFs of tasks such that they are viewable for students under the relevant task. Upload a ZIP containing PDFs and ZIP file resources. Name each with task abbreviation. -
-
- -
-
-
-
-
diff --git a/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.html b/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.html index 18d4ec2fe..d908dfa8c 100644 --- a/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.html +++ b/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.html @@ -1,29 +1,29 @@
-
+
-

{{stream.name}} - {{stream.abbreviation}}

+

{{ stream.name }} - {{ stream.abbreviation }}

- + Name - + - - + Abbreviation - +
- - +
- + - + + - + + - + + @@ -215,7 +219,7 @@

Tutorials without a stream

- +
Abbreviation Abbreviation -
- {{tutorial.abbreviation}} +
+ {{ tutorial.abbreviation }}
- - + +
- - + + Campus Campus -
- {{tutorial.campus ? tutorial.campus.name : ''}} +
+ {{ tutorial.campus ? tutorial.campus.name : '' }}
- + Campus Not Specified @@ -78,12 +77,12 @@

Tutorials without a stream

- + Campus Not Specified - {{campus.name }} + {{ campus.name }} @@ -92,44 +91,44 @@

Tutorials without a stream

-
Location Location -
- {{tutorial.meetingLocation}} +
+ {{ tutorial.meetingLocation }}
- - + +
- - + + Day Day -
- {{tutorial.meetingDay}} +
+ {{ tutorial.meetingDay }}
- + Day - {{day }} + {{ day }}
- + Day @@ -142,34 +141,39 @@

Tutorials without a stream

-
Time Time -
- {{tutorial.meetingTime}} +
+ {{ tutorial.meetingTime }}
- - + +
- - + + Tutor Tutor -
+
{{ tutorial.tutor?.name }}
- + Tutor @@ -180,7 +184,7 @@

Tutorials without a stream

- + Tutor @@ -193,20 +197,20 @@

Tutorials without a stream

-
Capacity Capacity -
- {{tutorial.capacity}} +
+ {{ tutorial.capacity }}
- - + +
- - + + -
+
@@ -244,7 +248,7 @@

Tutorials without a stream

diff --git a/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.scss b/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.scss index 8db67d000..cc88365cb 100644 --- a/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.scss +++ b/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.scss @@ -34,9 +34,9 @@ td.mat-column-options { } } } -td.mat-cell:last-of-type, -td.mat-footer-cell:last-of-type, -th.mat-header-cell:last-of-type { +td.mat-mdc-cell:last-of-type, +td.mat-mdc-footer-cell:last-of-type, +th.mat-mdc-header-cell:last-of-type { padding-right: 0px; } diff --git a/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.ts b/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.ts index e9a56573f..a507dc44d 100644 --- a/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.ts +++ b/src/app/units/states/edit/directives/unit-tutorials-list/unit-tutorials-list.component.ts @@ -1,7 +1,7 @@ import { Component, Input, Inject, ViewChild, AfterViewInit } from '@angular/core'; import { alertService, confirmationModal } from 'src/app/ajs-upgraded-providers'; import { MatSort, Sort } from '@angular/material/sort'; -import { MatLegacyTableDataSource as MatTableDataSource, MatLegacyTable as MatTable } from '@angular/material/legacy-table'; +import { MatTableDataSource, MatTable } from '@angular/material/table'; import { Tutorial, TutorialService, @@ -46,7 +46,7 @@ export class UnitTutorialsListComponent extends EntityFormComponent im private tutorialStreamService: TutorialStreamService, private campusService: CampusService, @Inject(confirmationModal) private confirmationModal: any, - @Inject(alertService) private alerts: any + @Inject(alertService) private alerts: any, ) { super( { @@ -58,7 +58,7 @@ export class UnitTutorialsListComponent extends EntityFormComponent im capacity: new UntypedFormControl('', [Validators.required]), tutor: new UntypedFormControl(null, [Validators.required]), }, - 'Tutorial' + 'Tutorial', ); } @@ -80,7 +80,7 @@ export class UnitTutorialsListComponent extends EntityFormComponent im private filterTutorials(): void { this.tutorials = this.unit.tutorials.filter( - (tutorial) => tutorial.tutorialStream === this.stream || (!tutorial.tutorialStream && !this.stream) + (tutorial) => tutorial.tutorialStream === this.stream || (!tutorial.tutorialStream && !this.stream), ); this.dataSource.data = this.tutorials; } @@ -189,7 +189,7 @@ export class UnitTutorialsListComponent extends EntityFormComponent im error: (message) => { this.alerts.add('danger', `Failed to delete stream. ${message}`, 8000); }, - }) + }), ); } diff --git a/src/app/units/states/edit/directives/unit-tutorials-manager/unit-tutorials-manager.component.html b/src/app/units/states/edit/directives/unit-tutorials-manager/unit-tutorials-manager.component.html index 5383e7fd0..6159d62f9 100644 --- a/src/app/units/states/edit/directives/unit-tutorials-manager/unit-tutorials-manager.component.html +++ b/src/app/units/states/edit/directives/unit-tutorials-manager/unit-tutorials-manager.component.html @@ -1,17 +1,21 @@
+ @for (stream of unit.tutorialStreams; track stream) { +} - +}
diff --git a/src/app/units/states/edit/edit.tpl.html b/src/app/units/states/edit/edit.tpl.html index eb219045e..3ba73129a 100644 --- a/src/app/units/states/edit/edit.tpl.html +++ b/src/app/units/states/edit/edit.tpl.html @@ -1,4 +1,4 @@ -
+
{{tab.title}} @@ -9,7 +9,7 @@ - +
diff --git a/src/app/units/states/plagiarism/directives/directives.coffee b/src/app/units/states/plagiarism/directives/directives.coffee deleted file mode 100644 index fdf23e86c..000000000 --- a/src/app/units/states/plagiarism/directives/directives.coffee +++ /dev/null @@ -1,3 +0,0 @@ -angular.module('doubtfire.units.states.plagiarism.directives',[ - 'doubtfire.units.states.plagiarism.directives.unit-student-plagiarism-list' -]) diff --git a/src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.coffee b/src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.coffee deleted file mode 100644 index 9f8242b01..000000000 --- a/src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.coffee +++ /dev/null @@ -1,52 +0,0 @@ -angular.module('doubtfire.units.states.plagiarism.directives.unit-student-plagiarism-list',[]) - -# -# List of all possible Similarities detected in student's work -# -.directive('unitStudentPlagiarismList', -> - replace: true - restrict: 'E' - templateUrl: 'units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.tpl.html' - scope: - unit: '=' - unitRole: '=' - controller: ($scope, $filter, gradeService, newProjectService, newUserService, alertService) -> - $scope.grades = gradeService.grades - - $scope.view = "students" - studentFilter = "allStudents" - - $scope.tutor = newUserService.currentUser - $scope.search = "" - $scope.reverse = false - $scope.currentPage = 1 - $scope.maxSize = 5 - $scope.pageSize = 5 - - $scope.assessingUnitRole = $scope.unitRole - - $scope.studentFilter = 'allStudents' - - # $scope.$watch 'unit.students', (newUnit) -> - # filteredStudents = $filter('showStudents')($scope.unit.students, 'myStudents', $scope.tutor) - # if filteredStudents? && filteredStudents.length == 0 - # $scope.studentFilter = 'allStudents' - - $scope.activeStudent = null - $scope.activeTask = null - $scope.loadingStudent = true - - $scope.selectStudent = (student) -> - $scope.activeStudent = student - $scope.loadingStudent = true - if student - newProjectService.loadProject(student, $scope.unit).subscribe({ - next: (project) -> - $scope.activeTask = $filter('taskWithPlagiarism')(student.tasks)[0] - $scope.loadingStudent = false - error: (message) -> alertService.add("danger", message, 6000) - }) - - $scope.selectTask = (task) -> - $scope.activeTask = task -) diff --git a/src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.tpl.html b/src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.tpl.html deleted file mode 100644 index 27f8a0ff4..000000000 --- a/src/app/units/states/plagiarism/directives/unit-student-plagiarism-list/unit-student-plagiarism-list.tpl.html +++ /dev/null @@ -1,106 +0,0 @@ -
-
-
-
-

Plagiarism Report

- Students from {{studentFilter == 'myStudents' ? 'my tutorials' : 'every tutorial'}} that include tasks which appear similar to other student work -
-
-
- -
- - -
-
- -
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - -
Student IDNameGradeMax Pct SimilarTutorial
{{student.student.id}}{{student.student.name}}{{grades[student.targetGrade]}}{{student.maxPctCopy}}%{{student.shortTutorialDescription()}}
- -
-
-
-
- - -
-
-

- View similarities -

-
- -
- -

Select a {{ view == 'tasks' ? 'task' : 'student' }} to view similarities

-
-
- - -
-
-

- View similarities -

-
-
-
-
- -

Loading...

-
-
- -
- -
-
diff --git a/src/app/units/states/plagiarism/plagiarism.coffee b/src/app/units/states/plagiarism/plagiarism.coffee deleted file mode 100644 index c10975c9b..000000000 --- a/src/app/units/states/plagiarism/plagiarism.coffee +++ /dev/null @@ -1,21 +0,0 @@ -angular.module('doubtfire.units.states.plagiarism', [ - 'doubtfire.units.states.plagiarism.directives' -]) -# -# State for staff viewing plagiarism -# -.config(($stateProvider) -> - $stateProvider.state 'units/students/plagiarism', { - parent: 'units/index' - url: '/students/plagiarism' - templateUrl: "units/states/plagiarism/plagiarism.tpl.html" - controller: "UnitPlagiarismStateCtrl" - data: - task: "Student Plagiarism" - pageTitle: "_Home_" - roleWhitelist: ['Tutor', 'Convenor', 'Admin'] - } -) -.controller("UnitPlagiarismStateCtrl", ($scope) -> - # TODO: (@alexcu) Refactor plagiarism viewer directive into scope -) diff --git a/src/app/units/states/plagiarism/plagiarism.tpl.html b/src/app/units/states/plagiarism/plagiarism.tpl.html deleted file mode 100644 index 6784f0f88..000000000 --- a/src/app/units/states/plagiarism/plagiarism.tpl.html +++ /dev/null @@ -1,6 +0,0 @@ -
- - -
diff --git a/src/app/units/states/states.coffee b/src/app/units/states/states.coffee index 43c671abd..c70789299 100644 --- a/src/app/units/states/states.coffee +++ b/src/app/units/states/states.coffee @@ -5,7 +5,6 @@ angular.module('doubtfire.units.states', [ 'doubtfire.units.states.tasks' 'doubtfire.units.states.groups' 'doubtfire.units.states.students' - 'doubtfire.units.states.plagiarism' 'doubtfire.units.states.analytics' 'doubtfire.units.states.portfolios' 'doubtfire.units.states.rollover' diff --git a/src/app/units/states/students-list/students-list.tpl.html b/src/app/units/states/students-list/students-list.tpl.html index 5d55bb6d0..929cefe38 100644 --- a/src/app/units/states/students-list/students-list.tpl.html +++ b/src/app/units/states/students-list/students-list.tpl.html @@ -44,7 +44,7 @@ - -
+
+ @if (collapsable) { - + } @if (!isTaskDefMode) { - + } @if (isTaskDefMode) { + }
@@ -150,9 +154,11 @@
-
- + @if (!isNarrow) { +
+
+ }
hourglass_bottom @@ -163,39 +169,44 @@
- + @if (filteredTasks) { + + @if (task) {
-

{{ task.project.student.name }}

-

+

{{ task.project.student.name }}

+
{{ task.definition.abbreviation }} - {{ task.definition.name }} -

+
-
- {{ task.gradeDesc() }} + @if (task.hasGrade()) { +
+ {{ task.gradeDesc() }}
+ } -
+ @if (!isTaskDefMode) { +
-
+ }
+ } + }
diff --git a/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.scss b/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.scss index 61489c8fa..2b8b37d35 100644 --- a/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.scss +++ b/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.scss @@ -37,7 +37,7 @@ $warn-color: #f44336; align-items: center; .mat-icon { - color: #BCC0C4; + color: #bcc0c4; } } @@ -73,7 +73,6 @@ $warn-color: #f44336; } .omnisearch { - border-radius: 1em; background-color: var(--background-gray); font-size: 15px; padding-right: 10px; @@ -82,21 +81,19 @@ $warn-color: #f44336; &.expanded { height: 100%; } -} -.truncate { - min-width: 0; + &.mobile { + } - h4, - p { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + .search { + background-color: transparent; + border: hidden; + outline: none; } -} -.warn-icon { - color: darken($warn-color, 10%); + .mdc-icon-button { + display: flex; + } } .new_comments { @@ -145,14 +142,16 @@ user-icon { } .task-list-data { - margin-top: -8px; - - h4 { - margin-bottom: -5px; + margin-top: 0px; + .student-name { + font-size: 15px; + margin-bottom: -2px; + margin-top: 8px; } - p { - margin-bottom: -5px; + .task-details { + margin-bottom: 0px; + font-size: 12px; } } @@ -160,45 +159,46 @@ user-icon { min-width: 40px; width: 40px; margin-right: -10px; + margin-left: -10px; } -.mat-list-item { +.mat-mdc-list-item { border: none; } -:host ::ng-deep .mat-list-item-content { - padding: 0 !important; -} +.mat-mdc-list-item .notification { + height: 8px; + width: 8px; + margin-right: 8px; + border-radius: 50%; + display: inline-block; -.mat-list-item .notification { + background-color: transparent; &.active { - background-color: transparent; + background-color: mat.get-color-from-palette($my-palette, 500); } - height: 8px; - width: 8px; - margin-right: 8px; - background-color: mat.get-color-from-palette($my-palette, 500); - border-radius: 50%; - display: inline-block; + &.active.similarities { + background-color: #f44336; + } } -.mat-list-item .item-content { +.mat-mdc-list-item .item-content { height: 60px; border-radius: 20px; } -.mat-list-item .item-content:hover { +.mat-mdc-list-item .item-content:hover { cursor: pointer; } -.mat-list-item .item-content.selected { +.mat-mdc-list-item .item-content.selected { background-color: var(--background-gray); } -.task-inbox.narrow-width .mat-list-item .item-content.selected { +.task-inbox.narrow-width .mat-mdc-list-item .item-content.selected { margin-right: 12px; } @@ -232,4 +232,4 @@ user-icon { // font-size: 50px; color: rgba(0, 0, 0, 0.2); } -} \ No newline at end of file +} diff --git a/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.ts b/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.ts index b02e5ea27..55c25b4fa 100644 --- a/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.ts +++ b/src/app/units/states/tasks/inbox/directives/staff-task-list/staff-task-list.component.ts @@ -15,12 +15,12 @@ import { alertService } from 'src/app/ajs-upgraded-providers'; import { TasksOfTaskDefinitionPipe } from 'src/app/common/filters/tasks-of-task-definition.pipe'; import { TasksInTutorialsPipe } from 'src/app/common/filters/tasks-in-tutorials.pipe'; import { TasksForInboxSearchPipe } from 'src/app/common/filters/tasks-for-inbox-search.pipe'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { Unit } from 'src/app/api/models/unit'; import { UnitRole } from 'src/app/api/models/unit-role'; import { Tutorial, UserService, Task, Project, TaskDefinition } from 'src/app/api/models/doubtfire-model'; import { Observable } from 'rxjs'; -import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; import { AppInjector } from 'src/app/app-injector'; import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; import { SelectedTaskService } from 'src/app/projects/states/dashboard/selected-task.service'; diff --git a/src/app/units/states/tasks/inbox/inbox.coffee b/src/app/units/states/tasks/inbox/inbox.coffee index cdfc16300..21dd7650d 100644 --- a/src/app/units/states/tasks/inbox/inbox.coffee +++ b/src/app/units/states/tasks/inbox/inbox.coffee @@ -1,6 +1,4 @@ -angular.module('doubtfire.units.states.tasks.inbox', [ - 'doubtfire.units.states.tasks.inbox.directives' -]) +angular.module('doubtfire.units.states.tasks.inbox', []) # # Task inbox for tasks for tutors to deal with (i.e., tasksForTaskInbox) diff --git a/src/app/units/states/tasks/inbox/inbox.component.html b/src/app/units/states/tasks/inbox/inbox.component.html index 03faf80f6..84edcabe1 100644 --- a/src/app/units/states/tasks/inbox/inbox.component.html +++ b/src/app/units/states/tasks/inbox/inbox.component.html @@ -1,8 +1,8 @@
+ @if (taskData) { + }
+ @if (subs$ | async) {
+ }
- - +
+ @if (taskData) { + }
-
- -

{{ taskData?.selectedTask?.project.student.nickname }}

+

{{ taskData?.selectedTask?.project.student.nickname }}

- -
diff --git a/src/app/units/states/tasks/inbox/inbox.component.scss b/src/app/units/states/tasks/inbox/inbox.component.scss index 715501e15..0b0bc8df1 100644 --- a/src/app/units/states/tasks/inbox/inbox.component.scss +++ b/src/app/units/states/tasks/inbox/inbox.component.scss @@ -38,5 +38,5 @@ } .task-comment-panel.inbox-panel { - padding: 0px 0px 0px 5px !important; + // padding: 0px 0px 0px 5px !important; } diff --git a/src/app/units/states/tasks/inbox/inbox.component.ts b/src/app/units/states/tasks/inbox/inbox.component.ts index 9de61d1d8..00ff17055 100644 --- a/src/app/units/states/tasks/inbox/inbox.component.ts +++ b/src/app/units/states/tasks/inbox/inbox.component.ts @@ -6,7 +6,7 @@ import { auditTime, merge, Observable, of, Subject, tap, withLatestFrom } from ' import { Task } from 'src/app/api/models/task'; import { Unit } from 'src/app/api/models/unit'; import { UnitRole } from 'src/app/api/models/unit-role'; -import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; import { SelectedTaskService } from 'src/app/projects/states/dashboard/selected-task.service'; @Component({ @@ -22,12 +22,15 @@ export class InboxComponent implements OnInit { @ViewChild('inboxpanel') inboxPanel: ElementRef; @ViewChild('commentspanel') commentspanel: ElementRef; - subs$: Observable; + subs$: Observable; private inboxStartSize$ = new Subject(); private dragMove$ = new Subject<{ event: CdkDragMove; div: HTMLDivElement }>(); private dragMoveAudited$; + protected filters; + protected showSearchOptions; + public taskSelected = false; visiblePdfUrl: string; @@ -40,7 +43,7 @@ export class InboxComponent implements OnInit { private selectedTask: SelectedTaskService, public mediaObserver: MediaObserver, public fileDownloader: FileDownloaderService, - private router: UIRouter + private router: UIRouter, ) { this.selectedTask.currentPdfUrl$.subscribe((url) => { this.visiblePdfUrl = url; @@ -77,7 +80,7 @@ export class InboxComponent implements OnInit { } moveEvent.div.style.width = `${width}px`; moveEvent.event.source.reset(); - }) + }), ); this.subs$ = merge(this.dragMoveAudited$, of(true)); window.dispatchEvent(new Event('resize')); @@ -94,7 +97,8 @@ export class InboxComponent implements OnInit { event.source.reset(); } - stoppedDragging(event: CdkDragEnd, div: HTMLDivElement) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + stoppedDragging(event: CdkDragEnd, _div: HTMLDivElement) { event.source.element.nativeElement.classList.remove('hovering'); } @@ -107,6 +111,8 @@ export class InboxComponent implements OnInit { } openPdfInNewTab(): void { - this.fileDownloader.downloadFile(this.visiblePdfUrl, `this.taskData.selectedTask.definition.abbreviation`); + if (this.taskData.selectedTask.hasPdf) { + this.fileDownloader.downloadFile(this.visiblePdfUrl, `${this.taskData.selectedTask.definition.abbreviation}.pdf`); + } } } diff --git a/src/app/units/states/tasks/tasks-viewer.service.spec.ts b/src/app/units/states/tasks/tasks-viewer.service.spec.ts new file mode 100644 index 000000000..79439a041 --- /dev/null +++ b/src/app/units/states/tasks/tasks-viewer.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TasksViewerService } from './tasks-viewer.service'; + +describe('TasksViewerService', () => { + let service: TasksViewerService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TasksViewerService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/units/states/tasks/tasks-viewer.service.ts b/src/app/units/states/tasks/tasks-viewer.service.ts new file mode 100644 index 000000000..f2b2b627e --- /dev/null +++ b/src/app/units/states/tasks/tasks-viewer.service.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import { Observable, Subject } from 'rxjs'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; + +@Injectable({ + providedIn: 'root' +}) +export class TasksViewerService { + selectedTaskDef = new Subject(); + taskSelected = new Subject(); + + public setSelectedTaskDef(taskDef: TaskDefinition) { + this.selectedTaskDef.next(taskDef); + this.taskSelected.next(true); + } + + constructor() { } +} diff --git a/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.html b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.html new file mode 100644 index 000000000..845e7203a --- /dev/null +++ b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.html @@ -0,0 +1,40 @@ + +
+
+ +
+ +
+ +
+ + +
+
+
+ +
+ +
+
+
+
+ + +
+
+ +
+ +
+
+ +
+ +
+ +
+
+
diff --git a/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.scss b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.scss new file mode 100644 index 000000000..cddaf52b1 --- /dev/null +++ b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.scss @@ -0,0 +1,20 @@ +.vertical-panel { + border-radius: 10px; + background-color: white; + padding: 8px; + min-width: 60px; + width: 450px; + height: 100%; + + &.mobile { + max-width: 100%; + width: 100%; + padding: 0px; + } +} + +.vertical-spacer { + background-color: #f5f5f5; + z-index: 200; + width: 10px +} diff --git a/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.spec.ts b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.spec.ts new file mode 100644 index 000000000..bc7a35f05 --- /dev/null +++ b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.spec.ts @@ -0,0 +1,20 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { TasksViewerComponent } from './tasks-viewer.component'; + +describe('TasksViewerComponent', () => { + let component: TasksViewerComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TasksViewerComponent], + }); + fixture = TestBed.createComponent(TasksViewerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.ts b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.ts new file mode 100644 index 000000000..af43e37ca --- /dev/null +++ b/src/app/units/states/tasks/tasks-viewer/tasks-viewer.component.ts @@ -0,0 +1,28 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { TasksViewerService } from '../tasks-viewer.service'; +import { Unit } from 'src/app/api/models/unit'; + +@Component({ + selector: 'f-tasks-viewer', + templateUrl: './tasks-viewer.component.html', + styleUrls: ['./tasks-viewer.component.scss'], +}) +export class TasksViewerComponent implements OnInit { + @Input() taskDefs: TaskDefinition[]; + @Input() unit: Unit; + selectedTaskDef: TaskDefinition; + taskSelected: boolean; + + constructor(private taskViewerService: TasksViewerService) {} + + ngOnInit() { + this.taskViewerService.selectedTaskDef.subscribe((taskDef) => { + this.selectedTaskDef = taskDef; + }); + + this.taskViewerService.taskSelected.subscribe((taskSelected) => { + this.taskSelected = taskSelected; + }); + } +} diff --git a/src/app/units/states/tasks/viewer/directives/directives.coffee b/src/app/units/states/tasks/viewer/directives/directives.coffee index c9abf1ced..1624d2375 100644 --- a/src/app/units/states/tasks/viewer/directives/directives.coffee +++ b/src/app/units/states/tasks/viewer/directives/directives.coffee @@ -1,5 +1,5 @@ angular.module('doubtfire.units.states.tasks.viewer.directives', [ - 'doubtfire.units.states.tasks.viewer.directives.unit-task-list' - 'doubtfire.units.states.tasks.viewer.directives.task-sheet-view' - 'doubtfire.units.states.tasks.viewer.directives.task-details-view' + # 'doubtfire.units.states.tasks.viewer.directives.unit-task-list' + # 'doubtfire.units.states.tasks.viewer.directives.task-sheet-view' + # 'doubtfire.units.states.tasks.viewer.directives.task-details-view' ]) diff --git a/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.html b/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.html new file mode 100644 index 000000000..2ee4198b7 --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.html @@ -0,0 +1,9 @@ +
+
+ +
+ +
+ subtitles_off +
+
diff --git a/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.scss b/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.scss new file mode 100644 index 000000000..dda643e64 --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.scss @@ -0,0 +1,11 @@ +@use '@angular/material' as mat; + +@import '../../../../../../../theme.scss'; + +$my-palette: mat.define-palette($md-formatif); + +.title { + font-size: 16px; + font-weight: bold; + padding-bottom: 15px; +} diff --git a/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.ts b/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.ts new file mode 100644 index 000000000..57ea0b799 --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-task-details-view/f-task-details-view.component.ts @@ -0,0 +1,22 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { Unit } from 'src/app/api/models/unit'; +import { TasksViewerService } from '../../../tasks-viewer.service'; + +@Component({ + selector: 'f-task-details-view', + templateUrl: './f-task-details-view.component.html', + styleUrls: ['./f-task-details-view.component.scss'], +}) +export class FTaskDetailsViewComponent implements OnInit { + @Input() taskDef: TaskDefinition; + @Input() unit: Unit; + + constructor(private tasksViewerService: TasksViewerService) {} + + ngOnInit() { + this.tasksViewerService.selectedTaskDef.subscribe((taskDef) => { + this.taskDef = taskDef; + }); + } +} diff --git a/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.html b/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.html new file mode 100644 index 000000000..7adb76ca4 --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.html @@ -0,0 +1,17 @@ +
+ @switch (taskDef) { @case (taskDef) { @if (taskDef) { + + + + } @else { + +
+ subtitles_off +
+ + } } } + + + + +
diff --git a/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.scss b/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.spec.ts b/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.spec.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.ts b/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.ts new file mode 100644 index 000000000..acddd7228 --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-task-sheet-view/f-task-sheet-view.component.ts @@ -0,0 +1,20 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { TaskDefinition } from 'src/app/api/models/task-definition'; +import { TasksViewerService } from '../../../tasks-viewer.service'; + +@Component({ + selector: 'f-task-sheet-view', + templateUrl: './f-task-sheet-view.component.html', + styleUrls: ['./f-task-sheet-view.component.scss'], +}) +export class FTaskSheetViewComponent implements OnInit { + @Input() taskDef: TaskDefinition; + + constructor(private taskViewerService: TasksViewerService) {} + + ngOnInit(): void { + this.taskViewerService.selectedTaskDef.subscribe((taskDef) => { + this.taskDef = taskDef; + }); + } +} diff --git a/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.html b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.html new file mode 100644 index 000000000..0e9fa42d4 --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.html @@ -0,0 +1,48 @@ +
+ +
+
+ +
+ +
+
+
+ + +
+ + @if (filteredTasks.length === 0) { +
No tasks to display
+ } @for (task of filteredTasks; track task) { + + @if (task) { +
+
+
+

{{ task.name }}

+
{{ task.abbreviation }} - {{ gradeNames[task.targetGrade] }} Task
+
+
+
+ } +
+ } +
+
+
diff --git a/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.scss b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.scss new file mode 100644 index 000000000..333db096a --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.scss @@ -0,0 +1,86 @@ +@use '@angular/material' as mat; + +@import '../../../../../../../theme.scss'; +@import '../../../../../../../styles/mixins/scrollable.scss'; + +$my-palette: mat.define-palette($md-formatif); + +:host { + --background-gray: rgba(0, 0, 0, 0.04); + padding-right: 8px; +} + +::ng-deep .cdk-virtual-scroll-content-wrapper { + width: 100%; +} + +.task-list { + height: 100%; +} + +.scrollable { + height: 100%; + @include scrollable(); +} + +.omnisearch { + background-color: var(--background-gray); + font-size: 15px; + padding-right: 10px; + text-align: left; + + &.expanded { + height: 100%; + } + + .search { + background-color: transparent; + border: hidden; + outline: none; + } + + .mdc-icon-button { + display: flex; + } +} + +.full-width { + width: 100%; +} + +.task-list-data { + margin-top: 0px; + padding-left: 30px; + + .task-title { + font-size: 15px; + margin-bottom: -2px; + margin-top: 8px; + } + + .task-details { + margin-bottom: 0px; + font-size: 12px; + } +} + +.mat-mdc-list-item .item-content { + height: 60px; + border-radius: 20px; +} + +.mat-mdc-list-item .item-content:hover { + cursor: pointer; +} + +.mat-mdc-list-item .item-content.selected { + background-color: var(--background-gray); +} + +.task-inbox.narrow-width .mat-mdc-list-item .item-content.selected { + margin-right: 12px; +} + +.tasks-viewport { + height: 100%; +} diff --git a/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.spec.ts b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.spec.ts new file mode 100644 index 000000000..dc592e52c --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FUnitTaskListComponent } from './f-unit-task-list.component'; + +describe('FUnitTaskListComponent', () => { + let component: FUnitTaskListComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [FUnitTaskListComponent], + }); + fixture = TestBed.createComponent(FUnitTaskListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.ts b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.ts new file mode 100644 index 000000000..cafc14044 --- /dev/null +++ b/src/app/units/states/tasks/viewer/directives/f-unit-task-list/f-unit-task-list.component.ts @@ -0,0 +1,47 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { Grade } from 'src/app/api/models/grade'; +import { TaskDefinition } from 'src/app/api/models/doubtfire-model'; +import { TaskDefinitionNamePipe } from 'src/app/common/filters/task-definition-name.pipe'; +import { TasksViewerService } from '../../../tasks-viewer.service'; + +@Component({ + selector: 'f-unit-task-list', + templateUrl: './f-unit-task-list.component.html', + styleUrls: ['./f-unit-task-list.component.scss'], +}) +export class FUnitTaskListComponent implements OnInit { + @Input() unitTasks: TaskDefinition[]; + filteredTasks: TaskDefinition[]; // list of tasks which match the taskSearch term + taskSearch: string = ''; // task search term from user input + taskDefinitionNamePipe = new TaskDefinitionNamePipe(); + protected gradeNames: string[] = Grade.GRADES; + selectedTaskDef: TaskDefinition; + taskSelected: boolean; + + constructor(private taskViewerService: TasksViewerService) {} + + applyFilters() { + this.filteredTasks = this.taskDefinitionNamePipe.transform(this.unitTasks, this.taskSearch); + } + + ngOnInit(): void { + this.applyFilters(); + + this.taskViewerService.selectedTaskDef.subscribe((taskDef) => { + this.selectedTaskDef = taskDef; + }); + this.taskViewerService.selectedTaskDef.next(this.unitTasks[0]); + + this.taskViewerService.taskSelected.subscribe((taskSelected) => { + this.taskSelected = taskSelected; + }); + } + + setSelectedTask(task: TaskDefinition) { + this.taskViewerService.setSelectedTaskDef(task); + } + + isSelectedTask(task: TaskDefinition) { + return this.selectedTaskDef.id == task.id; + } +} diff --git a/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.coffee b/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.coffee deleted file mode 100644 index 8856a6579..000000000 --- a/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.coffee +++ /dev/null @@ -1,13 +0,0 @@ -angular.module('doubtfire.units.states.tasks.viewer.directives.task-details-view', []) -# -# Dashboard of task-related info -# -.directive('taskDetailsView', -> - restrict: 'E' - templateUrl: 'units/states/tasks/viewer/directives/task-details-view/task-details-view.tpl.html' - scope: - taskDef: '=' - unit: '=' - controller: ($scope, listenerService) -> - -) diff --git a/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.tpl.html b/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.tpl.html deleted file mode 100644 index b44d13e3b..000000000 --- a/src/app/units/states/tasks/viewer/directives/task-details-view/task-details-view.tpl.html +++ /dev/null @@ -1,11 +0,0 @@ -
-
-
- Details for {{taskDef.name}} -
-
-
- - -
-
diff --git a/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.coffee b/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.coffee deleted file mode 100644 index d01cfb00b..000000000 --- a/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.coffee +++ /dev/null @@ -1,25 +0,0 @@ -angular.module('doubtfire.units.states.tasks.viewer.directives.task-sheet-view', []) - -.directive('taskSheetView', -> - restrict: 'E' - templateUrl: 'units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.tpl.html' - scope: - taskDef: '=' - unit: '=' - controller: ($scope, $timeout, alertService, listenerService) -> - # Cleanup - listeners = listenerService.listenTo($scope) - - $scope.clearSelectedTask = -> $scope.taskDef = null - $scope.urls = { - taskPdfUrl: "" - } - - listeners.push $scope.$watch 'taskDef', (newTask) -> - setDetails = -> - if newTask? - $scope.hasPdf = newTask.hasTaskSheet - $scope.urls.taskPdfUrl = $scope.taskDef.getTaskPDFUrl() - setDetails() -) - diff --git a/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.scss b/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.scss deleted file mode 100644 index e07b171ab..000000000 --- a/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.scss +++ /dev/null @@ -1,44 +0,0 @@ -task-sheet-view { - .panel.panel-pdf .panel-body.no-pdf { - @include flex-center; - font-size: 2rem; - i { - font-size: 8rem; - width: 100%; - text-align: center; - margin-bottom: 15px; - } - } - @media (min-width: $screen-md) { - .panel-footer { - padding: 0; - height: 55px; - border-radius: $border-radius-base; - .btn-group { - display: flex; - height: 100%; - } - .btn-previous-task, .btn-next-task { - flex: 1; - } - .btn-status { - flex: 2; - } - .btn { - @include flex-center; - font-size: 2em; - border-radius: 0; - border-top-style: none; - border-bottom-style: none; - &:first-child { - border-left-style: none; - border-bottom-left-radius: $border-radius-base; - } - &:last-child { - border-right-style: none; - border-bottom-right-radius: $border-radius-base; - } - } - } - } -} diff --git a/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.tpl.html b/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.tpl.html deleted file mode 100644 index b3467cd43..000000000 --- a/src/app/units/states/tasks/viewer/directives/task-sheet-view/task-sheet-view.tpl.html +++ /dev/null @@ -1,16 +0,0 @@ -
-
-
No Task Selected
-
{{taskDef.name}}
-
- -
- - This task has no task sheet -
- -
- -
- -
diff --git a/src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.tpl.html b/src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.tpl.html index c7aea767e..4a0db812c 100644 --- a/src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.tpl.html +++ b/src/app/units/states/tasks/viewer/directives/unit-task-list/unit-task-list.tpl.html @@ -1,24 +1,30 @@
- +
    -
  • + ng-repeat="task in filteredTasks" + >
    -

    - {{task.name}} -

    -

    +

    {{task.name}}

    +

    {{task.abbreviation}} - {{gradeNames[task.targetGrade]}} Task

    -
    -
  • -
  • - No tasks to display. +
+ + +
  • No tasks to display.
  • diff --git a/src/app/units/states/tasks/viewer/viewer.coffee b/src/app/units/states/tasks/viewer/viewer.coffee index 07fbf63a4..4343498ae 100644 --- a/src/app/units/states/tasks/viewer/viewer.coffee +++ b/src/app/units/states/tasks/viewer/viewer.coffee @@ -19,6 +19,5 @@ angular.module('doubtfire.units.states.tasks.viewer', [ ) .controller('TaskViewerStateCtrl', ($scope) -> - $scope.unitTasks = $scope.unit.taskDefinitions - $scope.selectedTaskDef = $scope.unitTasks[0] + $scope.taskDefs = $scope.unit.taskDefinitions ) diff --git a/src/app/units/states/tasks/viewer/viewer.scss b/src/app/units/states/tasks/viewer/viewer.scss index e69de29bb..382bfdc24 100644 --- a/src/app/units/states/tasks/viewer/viewer.scss +++ b/src/app/units/states/tasks/viewer/viewer.scss @@ -0,0 +1,4 @@ +f-tasks-viewer { + height: calc($main-view-max-height + 70px); // temporary fix to reclaim the footer region for this specific page + display: flex; +} diff --git a/src/app/units/states/tasks/viewer/viewer.tpl.html b/src/app/units/states/tasks/viewer/viewer.tpl.html index 9fdb6bc1f..358d6f33a 100644 --- a/src/app/units/states/tasks/viewer/viewer.tpl.html +++ b/src/app/units/states/tasks/viewer/viewer.tpl.html @@ -1,19 +1 @@ -
    - - - - - - -
    \ No newline at end of file + diff --git a/src/common/i18n/localize.js b/src/common/i18n/localize.js index 02154cdb2..35335f73c 100644 --- a/src/common/i18n/localize.js +++ b/src/common/i18n/localize.js @@ -61,7 +61,7 @@ angular.module('localization', []) var result = ''; // make sure the dictionary has valid data - if ((localize.dictionary !== []) && (localize.dictionary.length > 0)) { + if ((localize.dictionary.length !== 0) && (localize.dictionary.length > 0)) { // use the filter service to only return those entries which match the value // and only take the first result var entry = $filter('filter')(localize.dictionary, function(element) { @@ -165,4 +165,4 @@ angular.module('localization', []) }; return i18NAttrDirective; -}]); \ No newline at end of file +}]); diff --git a/src/index.html b/src/index.html index 95a9777bf..18a87021e 100644 --- a/src/index.html +++ b/src/index.html @@ -14,6 +14,7 @@ + Loading... @@ -41,7 +42,7 @@ - +
    diff --git a/src/main.ts b/src/main.ts index e457f92ae..a03768c5f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,5 @@ // Make sure that angular is loaded before anything else! -import 'node_modules/angular/angular.js'; +import 'angular/angular.js'; import { enableProdMode, NgZone, Type } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; diff --git a/src/styles.scss b/src/styles.scss index 59f9d6e87..b0756f5ac 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,37 +1,37 @@ - -// Custom Theming for Angular Material - // For more information: https://material.angular.io/guide/theming - -@import '~@angular/material/theming'; -// 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(); - -// @include angular-material-theme($theming-material-components-theme); -// @include custom-components-theme($theming-material-components-theme); - -// @include angular-material-typography($typography); - - - -// 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 angular-material-theme($theming-material-components-theme); - -/* You can add global styles to this file, and also import other style files */ - -// html, -// body { -// height: 100%; -// } -// body { -// margin: 0; -// font-family: Roboto, 'Helvetica Neue', sans-serif; -// } +@use '@angular/material' as mat; + +@include mat.core(); + +@import './theme.scss'; + +@tailwind base; +@tailwind components; +@tailwind utilities; + +.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field + .mdc-notched-outline__notch { + border-right-style: hidden; +} + +.f-table { + @include mat.elevation(1); + border-radius: 0.8rem; + margin-bottom: 1rem; + + background-color: transparent !important; + + .mat-sort-header-content, + .mat-mdc-header-cell { + font-weight: 900; + } + + &.selectable { + .mat-mdc-row:hover .mat-mdc-cell { + background-color: rgb(243, 243, 243); + } + .mat-mdc-row .mat-mdc-cell { + cursor: pointer; + } + } +} diff --git a/src/styles/common/doubtfire-cards.scss b/src/styles/common/doubtfire-cards.scss index 332fce2dd..6646ba5a2 100644 --- a/src/styles/common/doubtfire-cards.scss +++ b/src/styles/common/doubtfire-cards.scss @@ -3,6 +3,6 @@ border-radius: 10px; } -.mat-card.danger-card { +.mat-mdc-card.danger-card { @include doubtfire-card(); } diff --git a/src/styles/common/hero-sidebar-layout.scss b/src/styles/common/hero-sidebar-layout.scss index 03dbf6709..ca4d84bd0 100644 --- a/src/styles/common/hero-sidebar-layout.scss +++ b/src/styles/common/hero-sidebar-layout.scss @@ -9,7 +9,7 @@ } .subcontainer { - overflow-y: auto; + overflow-y: hidden; height: auto; padding-top: 42px; diff --git a/src/styles/common/overrides/body-overrides.scss b/src/styles/common/overrides/body-overrides.scss index 6a2b6b16e..c2b92ccf2 100644 --- a/src/styles/common/overrides/body-overrides.scss +++ b/src/styles/common/overrides/body-overrides.scss @@ -19,10 +19,10 @@ body { height: 100vh; height: $main-view-max-height; width: 100vw; - font-family: 'Roboto', Helvetica; - font-size: 1.2em; - line-height: 2; - font-weight: normal; + // font-family: 'Roboto', Helvetica; + // font-size: 1.2em; + // line-height: 2; + // font-weight: normal; } /* include border and padding in element width and height */ diff --git a/src/theme.scss b/src/theme.scss index 20823dbe5..047760452 100644 --- a/src/theme.scss +++ b/src/theme.scss @@ -1,17 +1,7 @@ +@use 'sass:map'; @use '@angular/material' as mat; -// TODO(v15): As of v15 mat.legacy-core no longer includes default typography styles. -// The following line adds: -// 1. Default typography styles for all components -// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1) -// If you specify typography styles for the components you use elsewhere, you should delete this line. -// If you don't need the default component typographies but still want the hierarchy styles, -// you can delete this line and instead use: -// `@include mat.legacy-typography-hierarchy(mat.define-legacy-typography-config());` -@include mat.all-legacy-component-typographies(); -@include mat.legacy-core(); -// ? Importing `Work Sans` font for headings, you can change this if you want -// @import url("https://fonts.googleapis.com/css2?family=Work+Sans:wght@300;400;500&display=swap"); +@include mat.core(); /* For use in src/lib/core/theming/_palette.scss */ $md-formatif: ( @@ -81,20 +71,20 @@ $md-formatif-accent: ( ); $md-formatif-warn: ( - 50: #fff6e7, - 100: #ffe9c2, - 200: #ffda99, - 300: #ffcb70, - 400: #ffc052, - 500: #ffb533, - 600: #ffae2e, - 700: #ffa527, - 800: #ff9d20, - 900: #ff8d14, + 50: #fde9e9, + 100: #fac7c7, + 200: #f7a2a2, + 300: #f47c7c, + 400: #f16060, + 500: #ef4444, + 600: #ed3e3e, + 700: #eb3535, + 800: #e82d2d, + 900: #e41f1f, A100: #ffffff, - A200: #fffdfb, - A400: #ffe2c8, - A700: #FF7B02, + A200: #ffe7e7, + A400: #ffb4b4, + A700: #ff9b9b, contrast: ( 50: #000000, 100: #000000, @@ -114,24 +104,22 @@ $md-formatif-warn: ( ); $font-family-primary: "'Grotesk'"; -$font-family-accent: "'open-sans', 'Roboto'"; +$font-family-accent: "Inter, 'open-sans', 'Roboto'"; -$mat-typography-primary-config: mat.define-legacy-typography-config( - $display-4: mat.define-typography-level(112px, 112px, 300, $font-family-primary, $letter-spacing: -0.05em), - $display-3: mat.define-typography-level(56px, 56px, 400, $font-family-primary, $letter-spacing: -0.02em), - $display-2: mat.define-typography-level(45px, 48px, 400, $font-family-primary, $letter-spacing: -0.005em), - $display-1: mat.define-typography-level(34px, 40px, 400, $font-family-primary), - $headline: mat.define-typography-level(24px, 32px, 400, $font-family-primary), - $title: mat.define-typography-level(20px, 32px, 500, $font-family-primary), - $subheading-2: mat.define-typography-level(16px, 28px, 400, $font-family-primary), - $subheading-1: mat.define-typography-level(15px, 24px, 400, $font-family-accent), - $body-2: mat.define-typography-level(14px, 24px, 500, $font-family-accent), - $body-1: mat.define-typography-level(14px, 20px, 400, $font-family-accent), +$mat-typography-primary-config: mat.define-typography-config( + $headline-1: mat.define-typography-level(112px, 112px, 300, $font-family-primary, $letter-spacing: -0.05em), + $headline-2: mat.define-typography-level(56px, 56px, 400, $font-family-primary, $letter-spacing: -0.02em), + $headline-3: mat.define-typography-level(45px, 48px, 400, $font-family-primary, $letter-spacing: -0.005em), + $headline-4: mat.define-typography-level(34px, 40px, 400, $font-family-primary), + $headline-5: mat.define-typography-level(24px, 32px, 400, $font-family-primary), + $headline-6: mat.define-typography-level(20px, 32px, 500, $font-family-primary), + $subtitle-1: mat.define-typography-level(16px, 28px, 400, $font-family-primary), + $body-1: mat.define-typography-level(15px, 24px, 400, $font-family-accent), + $subtitle-2: mat.define-typography-level(14px, 24px, 500, $font-family-accent), + $body-2: mat.define-typography-level(14px, 20px, 400, $font-family-accent), $caption: mat.define-typography-level(12px, 20px, 400, $font-family-accent), $button: mat.define-typography-level(14px, 14px, 500, $font-family-accent), - $input: mat.define-typography-level(inherit, 1.125, 400, $font-family-accent), ); - $primary: mat.define-palette($md-formatif); $accent: mat.define-palette($md-formatif-accent); $warn: mat.define-palette($md-formatif-warn); @@ -147,5 +135,12 @@ $theme: mat.define-light-theme( ) ); +$color-config: mat.get-color-config($theme); +$primary-palette: map.get($color-config, 'primary'); +$primary-color: mat.get-color-from-palette($primary-palette, 500); +$accent-palette: map.get($color-config, 'accent'); +$warn-palette: map.get($color-config, 'warn'); +$is-dark-theme: map.get($color-config, 'is-dark'); -@include mat.all-legacy-component-themes($theme); +@include mat.all-component-typographies($theme); +@include mat.all-component-themes($theme); diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 000000000..ca0e02b4f --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,14 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./src/**/*.{html,ts}'], + important: true, + theme: { + extend: { + colors: { + 'formatif-blue': '#3939ff', + 'formatif-blue-lighter': '#e7e7ff', + }, + }, + }, + plugins: [], +}; diff --git a/tsconfig.json b/tsconfig.json index de4579656..38f49c31d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,16 +12,16 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "noImplicitAny": false, - "suppressImplicitAnyIndexErrors": true, "allowUnusedLabels": false, + "strict": false, + "strictPropertyInitialization": false, "target": "ES2022", - "typeRoots": [ - "node_modules/@types" - ], - "lib": [ - "es2020", - "dom" - ], - "useDefineForClassFields": false + "typeRoots": ["node_modules/@types"], + "lib": ["es2020", "dom"], + "useDefineForClassFields": false, + "allowSyntheticDefaultImports": true + }, + "angularCompilerOptions": { + "strictTemplates": false } }