diff --git a/frontend/.gitignore b/frontend/.gitignore index 0a6c40f8c..29d17087c 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -36,4 +36,8 @@ robots.txt # SSL certs/ -certs/* \ No newline at end of file +certs/* + +# Claude +CLAUDE.md +.claude diff --git a/frontend/app/components/modules/project/components/security/yaml/generate-yaml-modal.vue b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-modal.vue new file mode 100644 index 000000000..665743cff --- /dev/null +++ b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-modal.vue @@ -0,0 +1,241 @@ + + + + + + diff --git a/frontend/app/components/modules/project/components/security/yaml/generate-yaml-preview.vue b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-preview.vue new file mode 100644 index 000000000..622efcbe0 --- /dev/null +++ b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-preview.vue @@ -0,0 +1,48 @@ + + + + + + diff --git a/frontend/app/components/modules/project/components/security/yaml/generate-yaml-sidebar.vue b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-sidebar.vue new file mode 100644 index 000000000..3e761ac9a --- /dev/null +++ b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-sidebar.vue @@ -0,0 +1,95 @@ + + + + + + diff --git a/frontend/app/components/modules/project/components/security/yaml/generate-yaml-type.vue b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-type.vue new file mode 100644 index 000000000..d740096ca --- /dev/null +++ b/frontend/app/components/modules/project/components/security/yaml/generate-yaml-type.vue @@ -0,0 +1,85 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/basic-yaml.config.ts b/frontend/app/components/modules/project/config/yaml-generation/basic/basic-yaml.config.ts new file mode 100644 index 000000000..485070dde --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/basic-yaml.config.ts @@ -0,0 +1,123 @@ +// Copyright (c) 2025 The Linux Foundation and each contributor. +// SPDX-License-Identifier: MIT +import { DateTime } from 'luxon' +import YamlBasicProject from './yaml-basic-project.vue' +import YamlBasicProjectRepositories from './yaml-basic-project-repositories.vue' +import YamlBasicProjectVulnerability from './yaml-basic-project-vulnerability.vue' +import YamlBasicRepository from './yaml-basic-repository.vue' +import YamlBasicRepositoryMembers from './yaml-basic-repository-members.vue' +import YamlBasicRepositoryLicense from './yaml-basic-repository-license.vue' +import YamlBasicRepositorySecurity from './yaml-basic-repository-security.vue' +import type { YamlGenerationConfig } from + '~/components/modules/project/config/yaml-generation/yaml-generation.config' +import YamlHeaderInformation from + '~/components/modules/project/config/yaml-generation/shared/yaml-header-information.vue' + +const basicYamlGenerationConfig: YamlGenerationConfig = { + label: 'Basic', + icon: 'file-circle-check', + description: 'Essential project security specifications', + features: [ + 'Use as the master security insights file in your main repository.', + 'Use when you want to get up and running quickly.', + 'Best for projects just beginning to adopt the specification.', + 'Provides basic security insights coverage.', + ], + steps: [ + { + label: 'Header information', + component: YamlHeaderInformation, + }, + { + label: 'Project details', + component: YamlBasicProject, + }, + { + label: 'Project details | Repositories', + component: YamlBasicProjectRepositories, + }, + { + label: 'Project details | Vulnerability reporting', + component: YamlBasicProjectVulnerability, + }, + { + label: 'Repository details', + component: YamlBasicRepository, + }, + { + label: 'Repository details | Core team members', + component: YamlBasicRepositoryMembers, + }, + { + label: 'Repository details | License information', + component: YamlBasicRepositoryLicense, + }, + { + label: 'Repository details | Security self-assessment', + component: YamlBasicRepositorySecurity, + }, + ], + template: { + header: { + 'schema-version': '2.0.0', + 'last-updated': DateTime.now().toISODate(), + 'last-reviewed': DateTime.now().toISODate(), + url: '', + comment: + 'This file contains the minimum information for both project and repository. ' + + 'It not required to include both a project and repository section if the project ' + + 'section is intended to be inherited by repositories via header.project-si-source', + }, + project: { + name: '', + administrators: [ + { + name: '', + affiliation: '', + email: '', + social: '', + primary: false, + }, + ], + repositories: [ + { + name: '', + url: '', + comment: '', + }, + ], + 'vulnerability-reporting': { + 'reports-accepted': false, + 'bug-bounty-available': false, + }, + }, + repository: { + url: '', + status: '', + 'accepts-change-request': false, + 'accepts-automated-change-request': false, + 'core-team': [ + { + name: '', + affiliation: '', + email: '', + social: '', + primary: false, + }, + ], + license: { + url: '', + expression: '', + }, + security: { + assessments: { + self: { + comment: '', + }, + }, + }, + }, + }, +} + +export default basicYamlGenerationConfig diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project-repositories.vue b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project-repositories.vue new file mode 100644 index 000000000..2199b996c --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project-repositories.vue @@ -0,0 +1,71 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project-vulnerability.vue b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project-vulnerability.vue new file mode 100644 index 000000000..f0d76b9d2 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project-vulnerability.vue @@ -0,0 +1,71 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project.vue b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project.vue new file mode 100644 index 000000000..3a3e7e9bd --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-project.vue @@ -0,0 +1,100 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-license.vue b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-license.vue new file mode 100644 index 000000000..e175d8f30 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-license.vue @@ -0,0 +1,106 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-members.vue b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-members.vue new file mode 100644 index 000000000..a60679543 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-members.vue @@ -0,0 +1,72 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-security.vue b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-security.vue new file mode 100644 index 000000000..126d89af8 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository-security.vue @@ -0,0 +1,70 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository.vue b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository.vue new file mode 100644 index 000000000..e53f61e63 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/basic/yaml-basic-repository.vue @@ -0,0 +1,81 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/child-repository/child-repository-yaml.config.ts b/frontend/app/components/modules/project/config/yaml-generation/child-repository/child-repository-yaml.config.ts new file mode 100644 index 000000000..8f32eb675 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/child-repository/child-repository-yaml.config.ts @@ -0,0 +1,85 @@ +// Copyright (c) 2025 The Linux Foundation and each contributor. +// SPDX-License-Identifier: MIT +import { DateTime } from 'luxon' +import type { YamlGenerationConfig } from + '~/components/modules/project/config/yaml-generation/yaml-generation.config' +import YamlChildRepositoryHeader from + '~/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-header.vue' +import YamlChildRepository from + '~/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository.vue' +import YamlChildRepositoryTeamMembers from + '~/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-team-members.vue' +import YamlChildRepositoryLicence from + '~/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-licence.vue' +import YamlChildRepositorySecurity from + '~/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-security.vue' + +const childRepositoryYamlGenerationConfig: YamlGenerationConfig = { + label: 'Child repository', + icon: 'book', + description: 'Individual repositories in a multi-repository project', + features: [ + 'Use in secondary repositories to inherit configuration from a centralized parent repository', + 'Must include header.project-si-source URL that points to the parent configuration file', + 'Reduces configuration duplication while ensuring consistency across multiple repositories', + ], + steps: [ + { + label: 'Header information', + component: YamlChildRepositoryHeader, + }, + { + label: 'Repository details', + component: YamlChildRepository, + }, + { + label: 'Repository details | Core team members', + component: YamlChildRepositoryTeamMembers, + }, + { + label: 'Repository details | License information', + component: YamlChildRepositoryLicence, + }, + { + label: 'Repository details | Security self-assessment', + component: YamlChildRepositorySecurity, + }, + ], + template: { + header: { + 'schema-version': '2.0.0', + 'last-updated': DateTime.now().toISODate(), + 'last-reviewed': DateTime.now().toISODate(), + url: '', + 'project-si-source': '', + }, + repository: { + url: '', + status: '', + 'accepts-change-request': false, + 'accepts-automated-change-request': false, + 'core-team': [ + { + name: '', + affiliation: '', + email: '', + social: '', + primary: false, + }, + ], + license: { + url: '', + expression: '', + }, + security: { + assessments: { + self: { + comment: '', + }, + }, + }, + }, + }, +} + +export default childRepositoryYamlGenerationConfig diff --git a/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-header.vue b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-header.vue new file mode 100644 index 000000000..89059b400 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-header.vue @@ -0,0 +1,94 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-licence.vue b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-licence.vue new file mode 100644 index 000000000..875f906d7 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-licence.vue @@ -0,0 +1,115 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-security.vue b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-security.vue new file mode 100644 index 000000000..4b4fe170d --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-security.vue @@ -0,0 +1,72 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-team-members.vue b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-team-members.vue new file mode 100644 index 000000000..a60679543 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository-team-members.vue @@ -0,0 +1,72 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository.vue b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository.vue new file mode 100644 index 000000000..f1c870d43 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/child-repository/yaml-child-repository.vue @@ -0,0 +1,89 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/comprehensive-yaml.config.ts b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/comprehensive-yaml.config.ts new file mode 100644 index 000000000..3c15bff27 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/comprehensive-yaml.config.ts @@ -0,0 +1,268 @@ +// Copyright (c) 2025 The Linux Foundation and each contributor. +// SPDX-License-Identifier: MIT +import { DateTime } from 'luxon' +import YamlComprehensiveRepositoryRelease from './yaml-comprehensive-repository-release.vue' +import YamlComprehensiveRepositorySecurity + from "./yaml-comprehensive-repository-security.vue"; +import YamlComprehensiveRepositorySecurityChampions + from "./yaml-comprehensive-repository-security-champions.vue"; +import YamlComprehensiveRepositorySecurityTools + from "./yaml-comprehensive-repository-security-tools.vue"; +import YamlComprehensiveProject + from "./yaml-comprehensive-project.vue"; +import YamlComprehensiveProjectSteward + from "./yaml-comprehensive-project-steward.vue"; +import YamlComprehensiveProjectAdministrators + from "./yaml-comprehensive-project-administrators.vue"; +import YamlComprehensiveProjectDocumentation + from "./yaml-comprehensive-project-documentation.vue"; +import YamlComprehensiveProjectRepositories + from "./yaml-comprehensive-project-repositories.vue"; +import YamlComprehensiveProjectVulnerability + from "./yaml-comprehensive-project-vulnerability.vue"; +import YamlComprehensiveRepository + from "./yaml-comprehensive-repository.vue"; +import YamlComprehensiveRepositoryMembers + from "./yaml-comprehensive-repository-members.vue"; +import YamlComprehensiveRepositoryDocumentation + from "./yaml-comprehensive-repository-documentation.vue"; +import YamlHeaderInformation + from "~/components/modules/project/config/yaml-generation/shared/yaml-header-information.vue"; +import type { YamlGenerationConfig } from '~/components/modules/project/config/yaml-generation/yaml-generation.config' + +const comprehensiveYamlGenerationConfig: YamlGenerationConfig = { + label: 'Comprehensive', + icon: 'file-shield', + description: 'Comprehensive security documentation and planning', + features: [ + 'Use as a reference for all possible specification sections.', + 'Ideal for identifying areas for future improvement.', + 'Helps plan long-term security investments and prioritisation.', + ], + steps: [ + { + label: 'Header information', + component: YamlHeaderInformation, + }, + { + label: 'Project details', + component: YamlComprehensiveProject, + }, + { + label: 'Project details | Steward', + component: YamlComprehensiveProjectSteward, + }, + { + label: 'Project details | Administrators', + component: YamlComprehensiveProjectAdministrators, + }, + { + label: 'Project details | Documentation', + component: YamlComprehensiveProjectDocumentation, + }, + { + label: 'Project details | Repositories', + component: YamlComprehensiveProjectRepositories, + }, + { + label: 'Project details | Vulnerability reporting', + component: YamlComprehensiveProjectVulnerability, + }, + { + label: 'Repository details', + component: YamlComprehensiveRepository, + }, + { + label: 'Repository details | Core team members', + component: YamlComprehensiveRepositoryMembers, + }, + { + label: 'Repository details | Documentation', + component: YamlComprehensiveRepositoryDocumentation, + }, + { + label: 'Repository details | Release information', + component: YamlComprehensiveRepositoryRelease, + }, + { + label: 'Repository details | Security assessments', + component: YamlComprehensiveRepositorySecurity, + }, + { + label: 'Repository details | Security champions', + component: YamlComprehensiveRepositorySecurityChampions, + }, + { + label: 'Repository details | Security tools', + component: YamlComprehensiveRepositorySecurityTools, + }, + ], + template: { + header: { + 'schema-version': '2.0.0', + 'last-updated': DateTime.now().toISODate(), + 'last-reviewed': DateTime.now().toISODate(), + url: '', + comment: + 'This file contains all possible information for both project and ' + + 'repository, though it is not required to include all of this ' + + 'information every time. Nor is it required to include both a project ' + + 'and repository section if the project section is intended to be ' + + 'inherited by repositories via header.project-si-source', + }, + project: { + name: '', + homepage: '', + funding: '', + roadmap: '', + steward: { + uri: '', + comment: '', + }, + administrators: [ + { + name: '', + affiliation: '', + email: '', + social: '', + primary: false, + }, + ], + documentation: { + 'quickstart-guide': '', + 'detailed-guide': '', + 'code-of-conduct': '', + 'release-process': '', + 'support-policy': '', + 'signature-verification': '', + }, + repositories: [ + { + name: '', + url: '', + comment: '', + }, + ], + 'vulnerability-reporting': { + 'reports-accepted': false, + 'bug-bounty-available': false, + 'bug-bounty-program': '', + contact: { + name: '', + email: '', + primary: false, + }, + 'security-policy': '', + 'in-scope': [''], + 'out-of-scope': [''], + 'pgp-key': '', + comment: '', + }, + }, + repository: { + url: '', + status: '', + 'bug-fixes-only': false, + 'accepts-change-request': false, + 'accepts-automated-change-request': false, + 'no-third-party-packages': false, + 'core-team': [ + { + name: '', + affiliation: '', + email: '', + social: '', + primary: false, + }, + ], + documentation: { + 'contributing-guide': '', + 'review-policy': '', + 'security-policy': '', + governance: '', + 'dependency-management-policy': '', + }, + release: { + changelog: '', + 'automated-pipeline': false, + attestations: [ + { + name: '', + 'predicate-uri': '', + location: '', + comment: '', + }, + ], + 'distribution-points': [ + { + uri: '', + comment: '', + }, + ], + license: { + url: '', + expression: '', + }, + }, + security: { + assessments: { + self: { + evidence: '', + date: '', + comment: '', + }, + 'third-party': [ + { + evidence: '', + date: '', + comment: '', + }, + ], + }, + champions: [ + { + name: '', + email: '', + primary: false, + }, + ], + tools: [ + { + name: '', + type: '', + version: '', + rulesets: [''], + results: { + adhoc: { + name: '', + 'predicate-uri': '', + location: '', + comment: '', + }, + ci: { + name: '', + 'predicate-uri': '', + location: '', + comment: '', + }, + release: { + name: '', + 'predicate-uri': '', + location: '', + comment: '', + }, + }, + integration: { + adhoc: false, + ci: false, + release: false, + }, + comment: '', + }, + ], + }, + }, + }, +} + +export default comprehensiveYamlGenerationConfig diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-administrators.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-administrators.vue new file mode 100644 index 000000000..8e2ac3e85 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-administrators.vue @@ -0,0 +1,78 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-documentation.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-documentation.vue new file mode 100644 index 000000000..18fa4795f --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-documentation.vue @@ -0,0 +1,178 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-repositories.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-repositories.vue new file mode 100644 index 000000000..03a82a210 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-repositories.vue @@ -0,0 +1,75 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-steward.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-steward.vue new file mode 100644 index 000000000..df646783a --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-steward.vue @@ -0,0 +1,76 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-vulnerability.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-vulnerability.vue new file mode 100644 index 000000000..d2d97c703 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project-vulnerability.vue @@ -0,0 +1,281 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project.vue new file mode 100644 index 000000000..d5e8c4fc2 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-project.vue @@ -0,0 +1,109 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-documentation.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-documentation.vue new file mode 100644 index 000000000..a2c1d6c8f --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-documentation.vue @@ -0,0 +1,158 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-members.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-members.vue new file mode 100644 index 000000000..1682344e0 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-members.vue @@ -0,0 +1,72 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-release.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-release.vue new file mode 100644 index 000000000..06e493864 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-release.vue @@ -0,0 +1,256 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security-champions.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security-champions.vue new file mode 100644 index 000000000..b5ea33895 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security-champions.vue @@ -0,0 +1,71 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security-tools.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security-tools.vue new file mode 100644 index 000000000..e2a5cde73 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security-tools.vue @@ -0,0 +1,107 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security.vue new file mode 100644 index 000000000..ba634afe6 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository-security.vue @@ -0,0 +1,182 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository.vue b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository.vue new file mode 100644 index 000000000..2ca0b5b61 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/comprehensive/yaml-comprehensive-repository.vue @@ -0,0 +1,93 @@ + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-administrator-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-administrator-item.vue new file mode 100644 index 000000000..ea7ead41f --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-administrator-item.vue @@ -0,0 +1,117 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-attestation-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-attestation-item.vue new file mode 100644 index 000000000..fc65e7af2 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-attestation-item.vue @@ -0,0 +1,98 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-core-member-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-core-member-item.vue new file mode 100644 index 000000000..ddf10e7e0 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-core-member-item.vue @@ -0,0 +1,108 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-datepicker.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-datepicker.vue new file mode 100644 index 000000000..421ab17fb --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-datepicker.vue @@ -0,0 +1,49 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-distribution-point-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-distribution-point-item.vue new file mode 100644 index 000000000..57cdd57fb --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-distribution-point-item.vue @@ -0,0 +1,69 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-repository-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-repository-item.vue new file mode 100644 index 000000000..f6c4c7634 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-repository-item.vue @@ -0,0 +1,70 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-repository-status.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-repository-status.vue new file mode 100644 index 000000000..6bd2531b9 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-repository-status.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-security-champion-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-security-champion-item.vue new file mode 100644 index 000000000..6b4f73c6a --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-security-champion-item.vue @@ -0,0 +1,75 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-security-tool-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-security-tool-item.vue new file mode 100644 index 000000000..ff01ffc3d --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-security-tool-item.vue @@ -0,0 +1,405 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-third-party-assessment-item.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-third-party-assessment-item.vue new file mode 100644 index 000000000..ec103fe22 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/components/yaml-third-party-assessment-item.vue @@ -0,0 +1,87 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/shared/yaml-header-information.vue b/frontend/app/components/modules/project/config/yaml-generation/shared/yaml-header-information.vue new file mode 100644 index 000000000..2fb8b2151 --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/shared/yaml-header-information.vue @@ -0,0 +1,63 @@ + + + + + + diff --git a/frontend/app/components/modules/project/config/yaml-generation/yaml-generation.config.ts b/frontend/app/components/modules/project/config/yaml-generation/yaml-generation.config.ts new file mode 100644 index 000000000..12051767a --- /dev/null +++ b/frontend/app/components/modules/project/config/yaml-generation/yaml-generation.config.ts @@ -0,0 +1,25 @@ +// Copyright (c) 2025 The Linux Foundation and each contributor. +// SPDX-License-Identifier: MIT +import type { Component } from 'vue' +import basic from './basic/basic-yaml.config' +import comprehensive from './comprehensive/comprehensive-yaml.config' +import childRepository from './child-repository/child-repository-yaml.config' + +export interface YamlGenerationStep { + label: string // Name of the step + component: Component // Component to show in the step +} +export interface YamlGenerationConfig { + label: string // Name of the configuration displayed in the first selector + icon: string // Icon to display for the yaml file type + description?: string // Description of the configuration + features?: string[] // List of features/benefits + steps: YamlGenerationStep[] // list of steps + template: object // starting template with all the defaults +} + +export const yamlGenerationConfig: Record = { + basic, + comprehensive, + childRepository, +} diff --git a/frontend/app/components/modules/project/services/js-yaml.ts b/frontend/app/components/modules/project/services/js-yaml.ts new file mode 100644 index 000000000..a24cda5b0 --- /dev/null +++ b/frontend/app/components/modules/project/services/js-yaml.ts @@ -0,0 +1,16 @@ +// Copyright (c) 2025 The Linux Foundation and each contributor. +// SPDX-License-Identifier: MIT +import {dump} from "js-yaml"; + +export const getYaml = (data: object): string => { + let yaml = dump(data, { + indent: 2, + lineWidth: 80, + noRefs: true, + sortKeys: false, + noArrayIndent: false, + skipInvalid: true + }) + yaml = yaml.replace(/\n\s*-\n\s+/g, '\n - '); + return yaml; +} diff --git a/frontend/app/components/modules/project/services/security.service.ts b/frontend/app/components/modules/project/services/security.service.ts index 0e88b1d31..fc63c092d 100644 --- a/frontend/app/components/modules/project/services/security.service.ts +++ b/frontend/app/components/modules/project/services/security.service.ts @@ -2,7 +2,6 @@ // SPDX-License-Identifier: MIT import { type SecurityData, - SecurityDataCategory, SecurityDataResult, type SecurityAssessmentData, } from '~~/types/security/responses.types' @@ -29,19 +28,6 @@ class ProjectSecurityService { * @param data * @returns */ - removeDocumentationAndVulnerability(data: SecurityData[]): SecurityData[] { - if (!data || !Array.isArray(data) || data.length === 0) { - return [] - } - - return this.removeUnavailableChecks( - data.filter( - (item) => - item.category !== SecurityDataCategory.DOCUMENTATION && - item.category !== SecurityDataCategory.VULNERABILITY_MANAGEMENT, - ), - ) - } removeUnavailableChecks(data: SecurityData[]): SecurityData[] { if (!data || !Array.isArray(data) || data.length === 0) { @@ -53,6 +39,18 @@ class ProjectSecurityService { return data.filter((item) => !filteredCheck.includes(item.controlId)) } + + hasSecurityMdFile(data: SecurityData[]): boolean { + const vulnerabilityManagement: SecurityAssessmentData[] = + data.find((d) => d.controlId === 'OSPS-VM-02')?.assessments || []; + const securityMdFile: SecurityAssessmentData | undefined = + vulnerabilityManagement.find((d) => d.requirementId === 'OSPS-VM-02.01'); + if(!securityMdFile){ + return false; + } + return securityMdFile.result !== SecurityDataResult.FAILED; + } + /** * Merge duplicate assessments - if there are multiple assessments for the same requirement, merge them * There should be only one assessment for each requirement diff --git a/frontend/app/components/modules/project/views/security.vue b/frontend/app/components/modules/project/views/security.vue index 64628a56d..b21407828 100644 --- a/frontend/app/components/modules/project/views/security.vue +++ b/frontend/app/components/modules/project/views/security.vue @@ -31,21 +31,49 @@ SPDX-License-Identifier: MIT >Learn more

- - - - - - - - - - - - - - - + +
+ + + + Generate YAML file + + + + + + + + + + + + + + +
@@ -147,6 +175,10 @@ SPDX-License-Identifier: MIT /> + \ No newline at end of file + diff --git a/frontend/package.json b/frontend/package.json index 5abc69a08..80b35b393 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -48,6 +48,7 @@ "html2canvas": "^1.4.1", "isomorphic-dompurify": "^2.25.0", "jose": "^6.0.12", + "js-yaml": "^4.1.0", "jsonwebtoken": "^9.0.2", "jwks-rsa": "^3.2.0", "jwt-decode": "^4.0.0", @@ -86,6 +87,7 @@ "@storybook/test": "8.4.7", "@storybook/vue3": "8.3.3", "@types/eslint__eslintrc": "^2.1.2", + "@types/js-yaml": "^4.0.9", "@types/lodash": "^4.17.15", "@types/lodash-es": "^4.17.12", "@types/luxon": "^3.4.2", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 49d13be12..ce6b06ec6 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -28,7 +28,7 @@ importers: version: 1.18.1 '@nuxt/eslint': specifier: ^0.7.5 - version: 0.7.6(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.36.0(jiti@2.6.0))(webpack@5.101.3(esbuild@0.25.10)))(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + version: 0.7.6(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.36.0(jiti@2.6.0))(webpack@5.101.3(esbuild@0.25.10)))(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@nuxtjs/plausible': specifier: ^1.2.0 version: 1.2.0(magicast@0.3.5) @@ -37,7 +37,7 @@ importers: version: 5.5.5(h3@1.15.4)(magicast@0.3.5)(vue@3.5.21(typescript@5.9.2)) '@nuxtjs/sitemap': specifier: ^7.4.7 - version: 7.4.7(h3@1.15.4)(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2)) + version: 7.4.7(h3@1.15.4)(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) '@pinia/nuxt': specifier: ^0.10.1 version: 0.10.1(magicast@0.3.5)(pinia@3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))) @@ -80,6 +80,9 @@ importers: jose: specifier: ^6.0.12 version: 6.1.0 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 @@ -97,7 +100,7 @@ importers: version: 3.7.2 nuxt: specifier: ^3.15.3 - version: 3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(yaml@2.8.1) + version: 3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1) nuxt-gtag: specifier: ^3.0.2 version: 3.0.3(magicast@0.3.5) @@ -158,10 +161,10 @@ importers: version: 12.1.0(@stylistic/eslint-plugin@3.1.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.6.0))) '@nuxtjs/eslint-module': specifier: ^4.1.0 - version: 4.1.0(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(webpack@5.101.3(esbuild@0.25.10)) + version: 4.1.0(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(webpack@5.101.3(esbuild@0.25.10)) '@nuxtjs/storybook': specifier: 8.3.3 - version: 8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(yaml@2.8.1))(optionator@0.9.4)(prettier@3.6.2)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1) + version: 8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(prettier@3.6.2)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1) '@nuxtjs/tailwindcss': specifier: ^6.13.1 version: 6.14.0(magicast@0.3.5) @@ -189,6 +192,9 @@ importers: '@types/eslint__eslintrc': specifier: ^2.1.2 version: 2.1.2 + '@types/js-yaml': + specifier: ^4.0.9 + version: 4.0.9 '@types/lodash': specifier: ^4.17.15 version: 4.17.20 @@ -224,7 +230,7 @@ importers: version: 10.1.8(eslint@9.36.0(jiti@2.6.0)) eslint-import-resolver-alias: specifier: ^1.1.2 - version: 1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.36.0(jiti@2.6.0))) + version: 1.1.2(eslint-plugin-import@2.32.0) eslint-import-resolver-typescript: specifier: ^4.4.3 version: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)) @@ -2609,6 +2615,9 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -7998,8 +8007,8 @@ packages: vue-component-type-helpers@2.2.12: resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==} - vue-component-type-helpers@3.0.8: - resolution: {integrity: sha512-WyR30Eq15Y/+odrUUMax6FmPbZwAp/HnC7qgR1r3lVFAcqwQ4wUoV79Mbh4SxDy3NiqDa+G4TOKD5xXSgBHo5A==} + vue-component-type-helpers@3.1.1: + resolution: {integrity: sha512-B0kHv7qX6E7+kdc5nsaqjdGZ1KwNKSUQDWGy7XkTYT7wFsOpkEyaJ1Vq79TjwrrtuLRgizrTV7PPuC4rRQo+vw==} vue-demi@0.13.11: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} @@ -9380,20 +9389,20 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))': + '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@nuxt/kit': 3.19.2(magicast@0.3.5) '@nuxt/schema': 3.19.2 execa: 7.2.0 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - magicast - '@nuxt/devtools-kit@2.6.5(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))': + '@nuxt/devtools-kit@2.6.5(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@nuxt/kit': 3.19.2(magicast@0.3.5) execa: 8.0.1 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - magicast @@ -9408,12 +9417,12 @@ snapshots: prompts: 2.4.2 semver: 7.7.2 - '@nuxt/devtools@2.6.5(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))': + '@nuxt/devtools@2.6.5(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': dependencies: - '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/devtools-wizard': 2.6.5 '@nuxt/kit': 3.19.2(magicast@0.3.5) - '@vue/devtools-core': 7.7.7(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2)) + '@vue/devtools-core': 7.7.7(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) '@vue/devtools-kit': 7.7.7 birpc: 2.6.1 consola: 3.4.2 @@ -9438,9 +9447,9 @@ snapshots: sirv: 3.0.2 structured-clone-es: 1.0.0 tinyglobby: 0.2.15 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) - vite-plugin-inspect: 11.3.3(@nuxt/kit@3.19.2(magicast@0.3.5))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) - vite-plugin-vue-tracer: 1.0.1(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2)) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite-plugin-inspect: 11.3.3(@nuxt/kit@3.19.2(magicast@0.3.5))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + vite-plugin-vue-tracer: 1.0.1(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) which: 5.0.0 ws: 8.18.3 transitivePeerDependencies: @@ -9488,10 +9497,10 @@ snapshots: - supports-color - typescript - '@nuxt/eslint@0.7.6(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.36.0(jiti@2.6.0))(webpack@5.101.3(esbuild@0.25.10)))(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))': + '@nuxt/eslint@0.7.6(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.36.0(jiti@2.6.0))(webpack@5.101.3(esbuild@0.25.10)))(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@eslint/config-inspector': 1.3.0(eslint@9.36.0(jiti@2.6.0)) - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/eslint-config': 0.7.6(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) '@nuxt/eslint-plugin': 0.7.6(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) '@nuxt/kit': 3.19.2(magicast@0.3.5) @@ -9696,7 +9705,7 @@ snapshots: '@nuxtjs/eslint-config-typescript@12.1.0(@stylistic/eslint-plugin@3.1.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.6.0)))': dependencies: - '@nuxtjs/eslint-config': 12.0.0(@stylistic/eslint-plugin@3.1.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.6.0))) + '@nuxtjs/eslint-config': 12.0.0(@stylistic/eslint-plugin@3.1.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.6.0))) '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/parser': 6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) eslint: 9.36.0(jiti@2.6.0) @@ -9711,10 +9720,10 @@ snapshots: - typescript - vue-eslint-parser - '@nuxtjs/eslint-config@12.0.0(@stylistic/eslint-plugin@3.1.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.6.0)))': + '@nuxtjs/eslint-config@12.0.0(@stylistic/eslint-plugin@3.1.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.6.0)))': dependencies: eslint: 9.36.0(jiti@2.6.0) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-n@15.7.0(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-promise@6.6.0(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.32.0)(eslint-plugin-n@15.7.0(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-promise@6.6.0(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-n: 15.7.0(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-node: 11.1.0(eslint@9.36.0(jiti@2.6.0)) @@ -9730,14 +9739,14 @@ snapshots: - supports-color - vue-eslint-parser - '@nuxtjs/eslint-module@4.1.0(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(webpack@5.101.3(esbuild@0.25.10))': + '@nuxtjs/eslint-module@4.1.0(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(webpack@5.101.3(esbuild@0.25.10))': dependencies: '@nuxt/kit': 3.19.2(magicast@0.3.5) chokidar: 3.6.0 eslint: 9.36.0(jiti@2.6.0) eslint-webpack-plugin: 4.2.0(eslint@9.36.0(jiti@2.6.0))(webpack@5.101.3(esbuild@0.25.10)) pathe: 1.1.2 - vite-plugin-eslint: 1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + vite-plugin-eslint: 1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) transitivePeerDependencies: - magicast - vite @@ -9769,9 +9778,9 @@ snapshots: - magicast - vue - '@nuxtjs/sitemap@7.4.7(h3@1.15.4)(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))': + '@nuxtjs/sitemap@7.4.7(h3@1.15.4)(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': dependencies: - '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/kit': 4.1.2(magicast@0.3.5) chalk: 5.6.2 defu: 6.1.4 @@ -9793,11 +9802,11 @@ snapshots: - vite - vue - '@nuxtjs/storybook@8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(yaml@2.8.1))(optionator@0.9.4)(prettier@3.6.2)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1)': + '@nuxtjs/storybook@8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(prettier@3.6.2)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1)': dependencies: - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/kit': 3.19.2(magicast@0.3.5) - '@storybook-vue/nuxt': 8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(storybook@8.4.7(prettier@3.6.2))(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1) + '@storybook-vue/nuxt': 8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(storybook@8.4.7(prettier@3.6.2))(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1) '@storybook/core-common': 8.4.7(storybook@8.4.7(prettier@3.6.2)) '@storybook/core-server': 8.4.7(storybook@8.4.7(prettier@3.6.2)) chalk: 5.6.2 @@ -10402,22 +10411,22 @@ snapshots: '@standard-schema/spec@1.0.0': {} - '@storybook-vue/nuxt@8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(storybook@8.4.7(prettier@3.6.2))(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1)': + '@storybook-vue/nuxt@8.3.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(storybook@8.4.7(prettier@3.6.2))(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1)': dependencies: '@nuxt/kit': 3.19.2(magicast@0.3.5) '@nuxt/schema': 3.19.2 '@nuxt/vite-builder': 3.19.2(@types/node@24.5.2)(eslint@9.36.0(jiti@2.6.0))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1) '@rollup/plugin-replace': 6.0.2(rollup@4.52.2) - '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@storybook/vue3': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vue@3.5.21(typescript@5.9.2)) - '@storybook/vue3-vite': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2)) + '@storybook/vue3-vite': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) json-stable-stringify: 1.3.0 mlly: 1.8.0 - nuxt: 3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(yaml@2.8.1) + nuxt: 3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1) ofetch: 1.4.1 pathe: 1.1.2 unctx: 2.4.1 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.21(typescript@5.9.2) vue-router: 4.5.1(vue@3.5.21(typescript@5.9.2)) transitivePeerDependencies: @@ -10564,13 +10573,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-vite@8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))': + '@storybook/builder-vite@8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@storybook/csf-plugin': 8.4.7(storybook@8.4.7(prettier@3.6.2)) browser-assert: 1.2.1 storybook: 8.4.7(prettier@3.6.2) ts-dedent: 2.2.0 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) '@storybook/components@8.4.7(storybook@8.4.7(prettier@3.6.2))': dependencies: @@ -10672,15 +10681,15 @@ snapshots: dependencies: storybook: 8.4.7(prettier@3.6.2) - '@storybook/vue3-vite@8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))': + '@storybook/vue3-vite@8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': dependencies: - '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@storybook/vue3': 8.4.7(storybook@8.4.7(prettier@3.6.2))(vue@3.5.21(typescript@5.9.2)) find-package-json: 1.2.0 magic-string: 0.30.19 storybook: 8.4.7(prettier@3.6.2) typescript: 5.9.2 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue-component-meta: 2.2.12(typescript@5.9.2) vue-docgen-api: 4.79.2(vue@3.5.21(typescript@5.9.2)) transitivePeerDependencies: @@ -10698,7 +10707,7 @@ snapshots: ts-dedent: 2.2.0 type-fest: 2.19.0 vue: 3.5.21(typescript@5.9.2) - vue-component-type-helpers: 3.0.8 + vue-component-type-helpers: 3.1.1 '@storybook/vue3@8.4.7(storybook@8.4.7(prettier@3.6.2))(vue@3.5.21(typescript@5.9.2))': dependencies: @@ -10712,7 +10721,7 @@ snapshots: ts-dedent: 2.2.0 type-fest: 2.19.0 vue: 3.5.21(typescript@5.9.2) - vue-component-type-helpers: 3.0.8 + vue-component-type-helpers: 3.1.1 '@stylistic/eslint-plugin@3.1.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: @@ -10840,6 +10849,8 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 + '@types/js-yaml@4.0.9': {} + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -11395,14 +11406,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@7.7.7(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2))': + '@vue/devtools-core@7.7.7(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + vite-hot-client: 2.1.0(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) vue: 3.5.21(typescript@5.9.2) transitivePeerDependencies: - vite @@ -12720,10 +12731,10 @@ snapshots: dependencies: eslint: 9.36.0(jiti@2.6.0) - eslint-config-standard@17.1.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-n@15.7.0(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-promise@6.6.0(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)): + eslint-config-standard@17.1.0(eslint-plugin-import@2.32.0)(eslint-plugin-n@15.7.0(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-promise@6.6.0(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)): dependencies: eslint: 9.36.0(jiti@2.6.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-n: 15.7.0(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-promise: 6.6.0(eslint@9.36.0(jiti@2.6.0)) @@ -12738,7 +12749,7 @@ snapshots: optionalDependencies: unrs-resolver: 1.11.1 - eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.36.0(jiti@2.6.0))): + eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.32.0): dependencies: eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.36.0(jiti@2.6.0)) @@ -12761,7 +12772,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)) transitivePeerDependencies: - supports-color @@ -12786,7 +12797,7 @@ snapshots: dependencies: eslint: 9.36.0(jiti@2.6.0) - eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)): dependencies: debug: 3.2.7 optionalDependencies: @@ -12797,7 +12808,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.36.0(jiti@2.6.0)): dependencies: debug: 3.2.7 optionalDependencies: @@ -12849,7 +12860,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12878,7 +12889,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.36.0(jiti@2.6.0)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14724,11 +14735,11 @@ snapshots: - magicast - vue - nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(yaml@2.8.1): + nuxt@3.19.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1): dependencies: '@nuxt/cli': 3.28.0(magicast@0.3.5) '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.6.5(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2)) + '@nuxt/devtools': 2.6.5(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) '@nuxt/kit': 3.19.2(magicast@0.3.5) '@nuxt/schema': 3.19.2 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) @@ -16908,15 +16919,15 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-dev-rpc@1.1.0(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)): + vite-dev-rpc@1.1.0(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: birpc: 2.6.1 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) - vite-hot-client: 2.1.0(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite-hot-client: 2.1.0(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) - vite-hot-client@2.1.0(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)): + vite-hot-client@2.1.0(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vite-node@3.2.4(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): dependencies: @@ -16956,15 +16967,15 @@ snapshots: optionator: 0.9.4 typescript: 5.9.2 - vite-plugin-eslint@1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)): + vite-plugin-eslint@1.8.1(eslint@9.36.0(jiti@2.6.0))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 9.36.0(jiti@2.6.0) rollup: 2.79.2 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) - vite-plugin-inspect@11.3.3(@nuxt/kit@3.19.2(magicast@0.3.5))(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)): + vite-plugin-inspect@11.3.3(@nuxt/kit@3.19.2(magicast@0.3.5))(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: ansis: 4.1.0 debug: 4.4.3 @@ -16974,21 +16985,21 @@ snapshots: perfect-debounce: 2.0.0 sirv: 3.0.2 unplugin-utils: 0.3.0 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) - vite-dev-rpc: 1.1.0(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite-dev-rpc: 1.1.0(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: '@nuxt/kit': 3.19.2(magicast@0.3.5) transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.0.1(vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.21(typescript@5.9.2)): + vite-plugin-vue-tracer@1.0.1(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.7 magic-string: 0.30.19 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.21(typescript@5.9.2) vite@5.4.20(@types/node@24.5.2)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0): @@ -17147,7 +17158,7 @@ snapshots: vue-component-type-helpers@2.2.12: {} - vue-component-type-helpers@3.0.8: {} + vue-component-type-helpers@3.1.1: {} vue-demi@0.13.11(vue@3.5.21(typescript@5.9.2)): dependencies: diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eace3c200..cc4cb7537 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,6 +93,9 @@ importers: jose: specifier: ^6.0.12 version: 6.0.12 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 @@ -202,6 +205,9 @@ importers: '@types/eslint__eslintrc': specifier: ^2.1.2 version: 2.1.2 + '@types/js-yaml': + specifier: ^4.0.9 + version: 4.0.9 '@types/lodash': specifier: ^4.17.15 version: 4.17.17 @@ -4168,6 +4174,9 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -15300,6 +15309,8 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 + '@types/js-yaml@4.0.9': {} + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {}