diff --git a/frontend/server/api/organization/commit.ts b/frontend/server/api/organization/commit.ts index 07604689..62b4dd22 100644 --- a/frontend/server/api/organization/commit.ts +++ b/frontend/server/api/organization/commit.ts @@ -32,6 +32,8 @@ export default defineEventHandler(async (event): Promise => { granularity, activity_type: 'authored-commit', onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, }, ) diff --git a/frontend/server/api/organization/pr-opened.ts b/frontend/server/api/organization/pr-opened.ts index c20c5f9e..a1f50a0f 100644 --- a/frontend/server/api/organization/pr-opened.ts +++ b/frontend/server/api/organization/pr-opened.ts @@ -32,6 +32,8 @@ export default defineEventHandler(async (event): Promise => { granularity, activity_type: 'pull_request-opened', onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, }, ) diff --git a/frontend/server/api/project/[slug]/contributors/active-contributors.get.ts b/frontend/server/api/project/[slug]/contributors/active-contributors.get.ts index 04b226b4..56da0c28 100644 --- a/frontend/server/api/project/[slug]/contributors/active-contributors.get.ts +++ b/frontend/server/api/project/[slug]/contributors/active-contributors.get.ts @@ -30,6 +30,7 @@ import { DateTime } from 'luxon' import { createDataSource } from '~~/server/data/data-sources' import type { ActiveContributorsFilter } from '~~/server/data/types' import { Granularity } from '~~/types/shared/granularity' +import { getBooleanQueryParam } from '~~/server/utils/common' export default defineEventHandler(async (event) => { // TODO: Check the project configuration to determine whether to show the data. @@ -39,11 +40,16 @@ export default defineEventHandler(async (event) => { const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) + // TODO: Validate the query params const filter: ActiveContributorsFilter = { granularity: (query.granularity as Granularity) || Granularity.QUARTERLY, project, repos, + includeCodeContributions, + includeCollaborations, startDate: undefined, endDate: undefined, } diff --git a/frontend/server/api/project/[slug]/contributors/active-organizations.get.ts b/frontend/server/api/project/[slug]/contributors/active-organizations.get.ts index d13a89f7..33326f72 100644 --- a/frontend/server/api/project/[slug]/contributors/active-organizations.get.ts +++ b/frontend/server/api/project/[slug]/contributors/active-organizations.get.ts @@ -22,6 +22,7 @@ import { DateTime } from 'luxon' import type { ActiveOrganizationsFilter } from '~~/server/data/types' import { createDataSource } from '~~/server/data/data-sources' import { Granularity } from '~~/types/shared/granularity' +import { getBooleanQueryParam } from '~~/server/utils/common' /** * Query params: @@ -38,11 +39,16 @@ export default defineEventHandler(async (event) => { const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) + // TODO: Validate the query params const filter: ActiveOrganizationsFilter = { granularity: (query.granularity as Granularity) || Granularity.QUARTERLY, project, repos, + includeCodeContributions, + includeCollaborations, startDate: undefined, endDate: undefined, } diff --git a/frontend/server/api/project/[slug]/contributors/contributor-dependency.get.ts b/frontend/server/api/project/[slug]/contributors/contributor-dependency.get.ts index 5cc73ba6..b5be7f9e 100644 --- a/frontend/server/api/project/[slug]/contributors/contributor-dependency.get.ts +++ b/frontend/server/api/project/[slug]/contributors/contributor-dependency.get.ts @@ -5,6 +5,7 @@ import { createDataSource } from '~~/server/data/data-sources' import type { ContributorDependencyFilter } from '~~/server/data/types' import { ActivityTypes } from '~~/types/shared/activity-types' import { ActivityPlatforms } from '~~/types/shared/activity-platforms' +import { getBooleanQueryParam } from '~~/server/utils/common' /** * Frontend expects the data to be in the following format: @@ -42,12 +43,16 @@ export default defineEventHandler(async (event) => { const activityPlatform = query.platform as ActivityPlatforms const activityType = query.activityType as ActivityTypes + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined const filter: ContributorDependencyFilter = { project, platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined, activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined, + includeCodeContributions, + includeCollaborations, repos, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, diff --git a/frontend/server/api/project/[slug]/contributors/contributor-leaderboard.get.ts b/frontend/server/api/project/[slug]/contributors/contributor-leaderboard.get.ts index cc4e08e5..f7957a6a 100644 --- a/frontend/server/api/project/[slug]/contributors/contributor-leaderboard.get.ts +++ b/frontend/server/api/project/[slug]/contributors/contributor-leaderboard.get.ts @@ -5,6 +5,7 @@ import { createDataSource } from '~~/server/data/data-sources' import type { ContributorsLeaderboardFilter } from '~~/server/data/types' import { ActivityTypes } from '~~/types/shared/activity-types' import { ActivityPlatforms } from '~~/types/shared/activity-platforms' +import { getBooleanQueryParam } from '~~/server/utils/common' /** * Frontend expects the data to be in the following format: @@ -41,6 +42,8 @@ export default defineEventHandler(async (event) => { const project = (event.context.params as { slug: string }).slug const activityPlatform = query.platform as ActivityPlatforms const activityType = query.activityType as ActivityTypes + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) const limit = query.limit ? parseInt(query.limit as string, 10) : 10 const offset = query.offset ? parseInt(query.offset as string, 10) : 0 const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined @@ -49,6 +52,8 @@ export default defineEventHandler(async (event) => { project, platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined, activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined, + includeCodeContributions, + includeCollaborations, repos, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, diff --git a/frontend/server/api/project/[slug]/contributors/geographical-distribution.get.ts b/frontend/server/api/project/[slug]/contributors/geographical-distribution.get.ts index 0ac80d9d..5aca7de0 100644 --- a/frontend/server/api/project/[slug]/contributors/geographical-distribution.get.ts +++ b/frontend/server/api/project/[slug]/contributors/geographical-distribution.get.ts @@ -44,6 +44,8 @@ export default defineEventHandler(async (event) => { project, platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined, activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined, + includeCodeContributions: true, + includeCollaborations: false, repos, type: (query.type as DemographicType) || DemographicType.CONTRIBUTORS, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, diff --git a/frontend/server/api/project/[slug]/contributors/organization-dependency.get.ts b/frontend/server/api/project/[slug]/contributors/organization-dependency.get.ts index e66859e9..ba2fe087 100644 --- a/frontend/server/api/project/[slug]/contributors/organization-dependency.get.ts +++ b/frontend/server/api/project/[slug]/contributors/organization-dependency.get.ts @@ -5,6 +5,7 @@ import type { OrganizationDependencyFilter } from '~~/server/data/types' import { createDataSource } from '~~/server/data/data-sources' import { ActivityTypes } from '~~/types/shared/activity-types' import { ActivityPlatforms } from '~~/types/shared/activity-platforms' +import { getBooleanQueryParam } from '~~/server/utils/common' /** * Frontend expects the data to be in the following format: @@ -43,12 +44,17 @@ export default defineEventHandler(async (event) => { const activityPlatform = query.platform as ActivityPlatforms const activityType = query.activityType as ActivityTypes + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) + const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined const filter: OrganizationDependencyFilter = { project, platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined, activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined, + includeCodeContributions, + includeCollaborations, repos, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, diff --git a/frontend/server/api/project/[slug]/contributors/organization-leaderboard.get.ts b/frontend/server/api/project/[slug]/contributors/organization-leaderboard.get.ts index 1fcd7145..fa28fc0d 100644 --- a/frontend/server/api/project/[slug]/contributors/organization-leaderboard.get.ts +++ b/frontend/server/api/project/[slug]/contributors/organization-leaderboard.get.ts @@ -5,6 +5,7 @@ import { createDataSource } from '~~/server/data/data-sources' import type { OrganizationsLeaderboardFilter } from '~~/server/data/types' import { ActivityTypes } from '~~/types/shared/activity-types' import { ActivityPlatforms } from '~~/types/shared/activity-platforms' +import { getBooleanQueryParam } from '~~/server/utils/common' /** * Frontend expects the data to be in the following format: @@ -40,6 +41,8 @@ export default defineEventHandler(async (event) => { const project = (event.context.params as { slug: string }).slug const activityPlatform = query.platform as ActivityPlatforms const activityType = query.activityType as ActivityTypes + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) const limit = query.limit ? parseInt(query.limit as string, 10) : 10 const offset = query.offset ? parseInt(query.offset as string, 10) : 0 @@ -55,6 +58,8 @@ export default defineEventHandler(async (event) => { project, platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined, activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined, + includeCodeContributions, + includeCollaborations, repos, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, diff --git a/frontend/server/api/project/[slug]/contributors/retention.get.ts b/frontend/server/api/project/[slug]/contributors/retention.get.ts index 14ed0333..fb0f2d5a 100644 --- a/frontend/server/api/project/[slug]/contributors/retention.get.ts +++ b/frontend/server/api/project/[slug]/contributors/retention.get.ts @@ -6,6 +6,7 @@ import { DemographicType } from '~~/server/data/types' import { createDataSource } from '~~/server/data/data-sources' import { ActivityTypes } from '~~/types/shared/activity-types' import { Granularity } from '~~/types/shared/granularity' +import { getBooleanQueryParam } from '~~/server/utils/common' /** * Frontend expects the data to be in the following format: @@ -28,12 +29,17 @@ export default defineEventHandler(async (event) => { const project = (event.context.params as { slug: string }).slug const activityType = query.activityType as ActivityTypes + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) + const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined const filter: RetentionFilter = { project, granularity: query.granularity as Granularity, activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined, + includeCodeContributions, + includeCollaborations, repos, demographicType: (query.type as DemographicType) || DemographicType.CONTRIBUTORS, onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them. diff --git a/frontend/server/api/project/[slug]/development/active-days.get.ts b/frontend/server/api/project/[slug]/development/active-days.get.ts index e30ffdf9..59eb941a 100644 --- a/frontend/server/api/project/[slug]/development/active-days.get.ts +++ b/frontend/server/api/project/[slug]/development/active-days.get.ts @@ -40,6 +40,8 @@ export default defineEventHandler(async (event) => { const filter: ActiveDaysFilter = { project, granularity: query.granularity as Granularity, + includeCodeContributions: true, + includeCollaborations: false, repos, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, diff --git a/frontend/server/api/project/[slug]/development/commit-activities.get.ts b/frontend/server/api/project/[slug]/development/commit-activities.get.ts index 68ba7c81..8110fa32 100644 --- a/frontend/server/api/project/[slug]/development/commit-activities.get.ts +++ b/frontend/server/api/project/[slug]/development/commit-activities.get.ts @@ -46,6 +46,8 @@ export default defineEventHandler(async (event) => { countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW, activity_type: (query.activityType as ActivityTypes) || ActivityTypes.AUTHORED_COMMIT, onlyContributions: true, // only count contributions + includeCodeContributions: true, + includeCollaborations: false, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, } diff --git a/frontend/server/api/project/[slug]/development/contribution-outside.get.ts b/frontend/server/api/project/[slug]/development/contribution-outside.get.ts index a794b8ab..6910d6b4 100644 --- a/frontend/server/api/project/[slug]/development/contribution-outside.get.ts +++ b/frontend/server/api/project/[slug]/development/contribution-outside.get.ts @@ -3,6 +3,7 @@ import { DateTime } from 'luxon' import { createDataSource } from '~~/server/data/data-sources' import type { ContributionsOutsideWorkHoursFilter } from '~~/types/development/requests.types' +import { getBooleanQueryParam } from '~~/server/utils/common' /** * Frontend expects the data to be in the following format: @@ -37,9 +38,14 @@ export default defineEventHandler(async (event) => { const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined + const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true) + const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false) + const filter: ContributionsOutsideWorkHoursFilter = { project, repos, + includeCodeContributions, + includeCollaborations, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, } diff --git a/frontend/server/api/project/[slug]/development/issues-resolution.get.ts b/frontend/server/api/project/[slug]/development/issues-resolution.get.ts index 0f5f5c59..64900655 100644 --- a/frontend/server/api/project/[slug]/development/issues-resolution.get.ts +++ b/frontend/server/api/project/[slug]/development/issues-resolution.get.ts @@ -48,6 +48,8 @@ export default defineEventHandler(async (event) => { countType: ActivityFilterCountType.NEW, activity_type: ActivityTypes.ISSUES_CLOSED, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, } diff --git a/frontend/server/api/project/[slug]/development/pull-requests.get.ts b/frontend/server/api/project/[slug]/development/pull-requests.get.ts index 2ccf79ac..e2b2d8c9 100644 --- a/frontend/server/api/project/[slug]/development/pull-requests.get.ts +++ b/frontend/server/api/project/[slug]/development/pull-requests.get.ts @@ -67,6 +67,8 @@ export default defineEventHandler(async (event) => { granularity: query.granularity as Granularity, repos, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, } diff --git a/frontend/server/api/project/[slug]/popularity/forks.get.ts b/frontend/server/api/project/[slug]/popularity/forks.get.ts index 059e574c..bba3154e 100644 --- a/frontend/server/api/project/[slug]/popularity/forks.get.ts +++ b/frontend/server/api/project/[slug]/popularity/forks.get.ts @@ -45,6 +45,8 @@ export default defineEventHandler(async (event) => { countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW, activity_type: (query.activityType as ActivityTypes) || ActivityTypes.FORKS, onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them. + includeCodeContributions: true, + includeCollaborations: true, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, } diff --git a/frontend/server/api/project/[slug]/popularity/mailing-lists-messages.get.ts b/frontend/server/api/project/[slug]/popularity/mailing-lists-messages.get.ts index 1e4b2345..1e88ff19 100644 --- a/frontend/server/api/project/[slug]/popularity/mailing-lists-messages.get.ts +++ b/frontend/server/api/project/[slug]/popularity/mailing-lists-messages.get.ts @@ -20,6 +20,8 @@ export default defineEventHandler(async (event) => { countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW, activity_type: (query.activityType as ActivityTypes) || ActivityTypes.MESSAGE, onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them. + includeCodeContributions: true, + includeCollaborations: true, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, } diff --git a/frontend/server/api/project/[slug]/popularity/stars.get.ts b/frontend/server/api/project/[slug]/popularity/stars.get.ts index de1204f4..bb997149 100644 --- a/frontend/server/api/project/[slug]/popularity/stars.get.ts +++ b/frontend/server/api/project/[slug]/popularity/stars.get.ts @@ -45,6 +45,8 @@ export default defineEventHandler(async (event) => { countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW, activity_type: (query.activityType as ActivityTypes) || ActivityTypes.STARS, onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them. + includeCodeContributions: true, + includeCollaborations: true, startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined, endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined, } diff --git a/frontend/server/data/tinybird/active-contributors-data-source.test.ts b/frontend/server/data/tinybird/active-contributors-data-source.test.ts index 10853127..31f47b52 100644 --- a/frontend/server/data/tinybird/active-contributors-data-source.test.ts +++ b/frontend/server/data/tinybird/active-contributors-data-source.test.ts @@ -40,6 +40,8 @@ describe('Active Contributors Data Source', () => { const filter = { granularity: Granularity.WEEKLY, + includeCodeContributions: true, + includeCollaborations: false, project: 'the-linux-kernel-organization', startDate, endDate diff --git a/frontend/server/data/tinybird/active-contributors-data-source.ts b/frontend/server/data/tinybird/active-contributors-data-source.ts index ce76e5a3..173b5c7b 100644 --- a/frontend/server/data/tinybird/active-contributors-data-source.ts +++ b/frontend/server/data/tinybird/active-contributors-data-source.ts @@ -40,6 +40,8 @@ export async function fetchActiveContributors(filter: ActiveContributorsFilter) const currentSummaryQuery = { project: filter.project, repos: filter.repos, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, startDate: dates.current.from, endDate: dates.current.to }; @@ -47,6 +49,8 @@ export async function fetchActiveContributors(filter: ActiveContributorsFilter) const previousSummaryQuery = { project: filter.project, repos: filter.repos, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, startDate: dates.previous.from, endDate: dates.previous.to }; @@ -55,6 +59,8 @@ export async function fetchActiveContributors(filter: ActiveContributorsFilter) project: filter.project, granularity: filter.granularity, repos: filter.repos, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, startDate: dates.current.from, endDate: dates.current.to }; diff --git a/frontend/server/data/tinybird/active-organizations-data-source.test.ts b/frontend/server/data/tinybird/active-organizations-data-source.test.ts index a9d3be9d..31ce1830 100644 --- a/frontend/server/data/tinybird/active-organizations-data-source.test.ts +++ b/frontend/server/data/tinybird/active-organizations-data-source.test.ts @@ -39,8 +39,10 @@ describe('Active Organizations Data Source', () => { const endDate = DateTime.utc(2025, 3, 20); const filter = { - granularity: Granularity.WEEKLY, project: 'the-linux-kernel-organization', + granularity: Granularity.WEEKLY, + includeCodeContributions: true, + includeCollaborations: false, startDate, endDate }; diff --git a/frontend/server/data/tinybird/active-organizations-data-source.ts b/frontend/server/data/tinybird/active-organizations-data-source.ts index c01b1000..0811ae02 100644 --- a/frontend/server/data/tinybird/active-organizations-data-source.ts +++ b/frontend/server/data/tinybird/active-organizations-data-source.ts @@ -50,6 +50,8 @@ export async function fetchActiveOrganizations(filter: ActiveOrganizationsFilter const currentSummaryQuery = { project: filter.project, repos: filter.repos, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, startDate: dates.current.from, endDate: dates.current.to }; @@ -57,6 +59,8 @@ export async function fetchActiveOrganizations(filter: ActiveOrganizationsFilter const previousSummaryQuery = { project: filter.project, repos: filter.repos, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, startDate: dates.previous.from, endDate: dates.previous.to }; @@ -65,6 +69,8 @@ export async function fetchActiveOrganizations(filter: ActiveOrganizationsFilter project: filter.project, granularity: filter.granularity, repos: filter.repos, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, startDate: dates.current.from, endDate: dates.current.to }; diff --git a/frontend/server/data/tinybird/contributions-outside-working-hours.test.ts b/frontend/server/data/tinybird/contributions-outside-working-hours.test.ts index 60894b23..8f801ad1 100644 --- a/frontend/server/data/tinybird/contributions-outside-working-hours.test.ts +++ b/frontend/server/data/tinybird/contributions-outside-working-hours.test.ts @@ -52,6 +52,8 @@ describe('Code Review Engagement Data Source', () => { const expectedCurrentDataQuery: ActivityHeatmapByWeekdayTBQuery = { project: filter.project, repos: filter.repos, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, startDate: filter.startDate, endDate: filter.endDate, }; diff --git a/frontend/server/data/tinybird/contributors-dependency-data-source.test.ts b/frontend/server/data/tinybird/contributors-dependency-data-source.test.ts index 9cf173a2..5044d7d3 100644 --- a/frontend/server/data/tinybird/contributors-dependency-data-source.test.ts +++ b/frontend/server/data/tinybird/contributors-dependency-data-source.test.ts @@ -35,6 +35,8 @@ describe('Contributors Dependency Data Source', () => { const filter = { project: 'the-linux-kernel-organization', limit: 100, + includeCodeContributions: true, + includeCollaborations: false, startDate, endDate }; diff --git a/frontend/server/data/tinybird/contributors-leaderboard-data-source.test.ts b/frontend/server/data/tinybird/contributors-leaderboard-data-source.test.ts index c756006b..c904cba3 100644 --- a/frontend/server/data/tinybird/contributors-leaderboard-data-source.test.ts +++ b/frontend/server/data/tinybird/contributors-leaderboard-data-source.test.ts @@ -44,6 +44,8 @@ describe('Contributors Leaderboard Data Source', () => { repos: ['linux'], platform: ActivityPlatforms.GITHUB, activity_type: ActivityTypes.AUTHORED_COMMIT, + includeCodeContributions: true, + includeCollaborations: false, startDate, endDate }; diff --git a/frontend/server/data/tinybird/contributors-leaderboard-data-source.ts b/frontend/server/data/tinybird/contributors-leaderboard-data-source.ts index c20e33cc..5de6434f 100644 --- a/frontend/server/data/tinybird/contributors-leaderboard-data-source.ts +++ b/frontend/server/data/tinybird/contributors-leaderboard-data-source.ts @@ -16,6 +16,8 @@ export async function fetchContributorsLeaderboard( project: filter.project, platform: filter.platform, activity_type: filter.activity_type, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, repos: filter.repos, limit: filter.limit, offset: filter.offset, @@ -27,6 +29,8 @@ export async function fetchContributorsLeaderboard( project: filter.project, platform: filter.platform, activity_type: filter.activity_type, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, repos: filter.repos, startDate: filter.startDate, endDate: filter.endDate, diff --git a/frontend/server/data/tinybird/forks-data-source.test.ts b/frontend/server/data/tinybird/forks-data-source.test.ts index 6ad6956c..6caf580b 100644 --- a/frontend/server/data/tinybird/forks-data-source.test.ts +++ b/frontend/server/data/tinybird/forks-data-source.test.ts @@ -47,6 +47,8 @@ describe('Forks Data Source', () => { countType: ActivityFilterCountType.CUMULATIVE, activity_type: ActivityTypes.FORKS, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate, endDate }; @@ -92,6 +94,8 @@ describe('Forks Data Source', () => { countType: ActivityFilterCountType.NEW, activity_type: ActivityTypes.FORKS, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate, endDate }; diff --git a/frontend/server/data/tinybird/geographic-distribution-data-source.test.ts b/frontend/server/data/tinybird/geographic-distribution-data-source.test.ts index d5e95f6d..dbd74459 100644 --- a/frontend/server/data/tinybird/geographic-distribution-data-source.test.ts +++ b/frontend/server/data/tinybird/geographic-distribution-data-source.test.ts @@ -40,6 +40,8 @@ describe('Geographic Distribution Data Source', () => { const filter = { project: 'the-linux-kernel-organization', type: DemographicType.CONTRIBUTORS, + includeCodeContributions: true, + includeCollaborations: false, startDate, endDate }; diff --git a/frontend/server/data/tinybird/issues-resolution-data-source.test.ts b/frontend/server/data/tinybird/issues-resolution-data-source.test.ts index d3e6a10e..06e9c8c1 100644 --- a/frontend/server/data/tinybird/issues-resolution-data-source.test.ts +++ b/frontend/server/data/tinybird/issues-resolution-data-source.test.ts @@ -54,6 +54,8 @@ describe('Issues Resolution Data Source', () => { countType: ActivityFilterCountType.CUMULATIVE, activity_type: ActivityTypes.FORKS, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate, endDate }; diff --git a/frontend/server/data/tinybird/organizations-dependency-data-source.test.ts b/frontend/server/data/tinybird/organizations-dependency-data-source.test.ts index a3b8d52e..24995d26 100644 --- a/frontend/server/data/tinybird/organizations-dependency-data-source.test.ts +++ b/frontend/server/data/tinybird/organizations-dependency-data-source.test.ts @@ -36,6 +36,8 @@ describe('Organizations Dependency Data Source', () => { const filter = { project: 'the-linux-kernel-organization', + includeCodeContributions: true, + includeCollaborations: false, startDate, endDate }; diff --git a/frontend/server/data/tinybird/organizations-leaderboard-data-source.test.ts b/frontend/server/data/tinybird/organizations-leaderboard-data-source.test.ts index b9a16392..b2f27ca7 100644 --- a/frontend/server/data/tinybird/organizations-leaderboard-data-source.test.ts +++ b/frontend/server/data/tinybird/organizations-leaderboard-data-source.test.ts @@ -46,6 +46,8 @@ describe('Organizations Leaderboard Data Source', () => { project: 'the-linux-kernel-organization', platform: ActivityPlatforms.GITHUB, activity_type: ActivityTypes.AUTHORED_COMMIT, + includeCodeContributions: true, + includeCollaborations: false, offset: 2, limit: 7, startDate, diff --git a/frontend/server/data/tinybird/organizations-leaderboard-data-source.ts b/frontend/server/data/tinybird/organizations-leaderboard-data-source.ts index 64d46d51..28e6f674 100644 --- a/frontend/server/data/tinybird/organizations-leaderboard-data-source.ts +++ b/frontend/server/data/tinybird/organizations-leaderboard-data-source.ts @@ -16,6 +16,8 @@ export async function fetchOrganizationsLeaderboard( project: filter.project, platform: filter.platform, activity_type: filter.activity_type, + includeCodeContributions: filter.includeCodeContributions, + includeCollaborations: filter.includeCollaborations, repos: filter.repos, limit: filter.limit, offset: filter.offset, diff --git a/frontend/server/data/tinybird/pull-requests-data-source.test.ts b/frontend/server/data/tinybird/pull-requests-data-source.test.ts index 4f483820..31d66c3d 100644 --- a/frontend/server/data/tinybird/pull-requests-data-source.test.ts +++ b/frontend/server/data/tinybird/pull-requests-data-source.test.ts @@ -67,6 +67,8 @@ describe('Pull Requests Data Source', () => { granularity: Granularity.WEEKLY, activity_type: ActivityTypes.PULL_REQUEST_OPENED, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate, endDate }; @@ -120,6 +122,8 @@ describe('Pull Requests Data Source', () => { { project: 'the-linux-kernel-organization', onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate, endDate }, diff --git a/frontend/server/data/tinybird/requests.types.ts b/frontend/server/data/tinybird/requests.types.ts index cf8a30f1..c498fa1b 100644 --- a/frontend/server/data/tinybird/requests.types.ts +++ b/frontend/server/data/tinybird/requests.types.ts @@ -15,6 +15,8 @@ export type ContributorsLeaderboardTinybirdQuery = { platform?: ActivityPlatforms; activity_type?: ActivityTypes; activity_types?: ActivityTypes[]; + includeCodeContributions?: boolean, + includeCollaborations?: boolean, repos?: string[]; limit?: number; offset?: number; @@ -28,6 +30,8 @@ export type OrganizationsLeaderboardTinybirdQuery = { platform?: ActivityPlatforms; activity_type?: ActivityTypes; activity_types?: ActivityTypes[]; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; repos?: string[]; limit?: number; offset?: number; @@ -38,7 +42,9 @@ export type OrganizationsLeaderboardTinybirdQuery = { export type ActivityHeatmapByWeekdayTBQuery = { project: string; - repo?: string, + repos?: string[], + includeCodeContributions?: boolean, + includeCollaborations?: boolean, startDate?: DateTime, endDate?: DateTime, }; @@ -67,6 +73,8 @@ export type ActivitiesCountTinybirdQuery = { activity_types?: ActivityTypes[]; granularity?: Granularity; onlyContributions?: boolean; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; startDate?: DateTime; endDate?: DateTime; } \ No newline at end of file diff --git a/frontend/server/data/tinybird/retention-data-source.test.ts b/frontend/server/data/tinybird/retention-data-source.test.ts index 63349f85..93f29a55 100644 --- a/frontend/server/data/tinybird/retention-data-source.test.ts +++ b/frontend/server/data/tinybird/retention-data-source.test.ts @@ -40,6 +40,8 @@ describe('Retention Data Source', () => { project: 'the-linux-kernel-organization', granularity: Granularity.MONTHLY, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: false, demographicType: DemographicType.CONTRIBUTORS, startDate, endDate @@ -79,6 +81,8 @@ describe('Retention Data Source', () => { project: 'the-linux-kernel-organization', granularity: Granularity.MONTHLY, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: false, demographicType: DemographicType.ORGANIZATIONS, startDate, endDate diff --git a/frontend/server/data/tinybird/stars-data-source.test.ts b/frontend/server/data/tinybird/stars-data-source.test.ts index 7fa23981..c566b798 100644 --- a/frontend/server/data/tinybird/stars-data-source.test.ts +++ b/frontend/server/data/tinybird/stars-data-source.test.ts @@ -47,6 +47,8 @@ describe('Stars Data Source', () => { countType: ActivityFilterCountType.CUMULATIVE, activity_type: ActivityTypes.FORKS, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate, endDate }; @@ -92,6 +94,8 @@ describe('Stars Data Source', () => { countType: ActivityFilterCountType.NEW, activity_type: ActivityTypes.FORKS, onlyContributions: false, + includeCodeContributions: true, + includeCollaborations: true, startDate, endDate }; diff --git a/frontend/server/data/types.ts b/frontend/server/data/types.ts index 2f652e14..fd7e7482 100644 --- a/frontend/server/data/types.ts +++ b/frontend/server/data/types.ts @@ -17,58 +17,50 @@ export type DefaultFilter = { // TODO: refactor all filter types to "inherit" from DefaultFilter export type ActiveContributorsFilter = DefaultFilter & { activity_types?: ActivityTypes[]; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; granularity?: Granularity; }; -export type ActiveOrganizationsFilter = { - project: string; - repos?: string[]; +export type ActiveOrganizationsFilter = DefaultFilter & { granularity?: Granularity; - startDate?: DateTime; - endDate?: DateTime; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; }; -export type ContributorsLeaderboardFilter = { - project: string; +export type ContributorsLeaderboardFilter = DefaultFilter & { platform?: ActivityPlatforms; activity_type?: ActivityTypes; activity_types?: ActivityTypes[]; - repos?: string[]; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; limit?: number; offset?: number; - startDate?: DateTime; - endDate?: DateTime; }; -export type OrganizationsLeaderboardFilter = { - project: string; +export type OrganizationsLeaderboardFilter = DefaultFilter & { platform?: ActivityPlatforms; activity_type?: ActivityTypes; - repos?: string[]; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; limit?: number; offset?: number; - startDate?: DateTime; - endDate?: DateTime; }; -export type ContributorDependencyFilter = { - project: string; - repos?: string[]; +export type ContributorDependencyFilter = DefaultFilter & { + includeCodeContributions?: boolean; + includeCollaborations?: boolean; granularity?: Granularity; platform?: ActivityPlatforms; activity_type?: ActivityTypes; limit?: number; - startDate?: DateTime; - endDate?: DateTime; }; -export type OrganizationDependencyFilter = { - project: string; - repos?: string[]; +export type OrganizationDependencyFilter = DefaultFilter & { platform?: ActivityPlatforms; activity_type?: ActivityTypes; - startDate?: DateTime; - endDate?: DateTime; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; }; export enum DemographicType { @@ -76,14 +68,12 @@ export enum DemographicType { ORGANIZATIONS = 'organizations' } -export type GeographicDistributionFilter = { - project: string; +export type GeographicDistributionFilter = DefaultFilter & { platform?: ActivityPlatforms; activity_type?: ActivityTypes; - repos?: string[]; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; type?: DemographicType; - startDate?: DateTime; - endDate?: DateTime; }; export type RetentionFilter = DefaultFilter & { @@ -93,6 +83,8 @@ export type RetentionFilter = DefaultFilter & { demographicType?: DemographicType; granularity?: Granularity; onlyContributions: boolean; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; }; export enum ActivityFilterCountType { @@ -100,16 +92,14 @@ export enum ActivityFilterCountType { NEW = 'new' } -export type ActivityCountFilter = { - project: string; +export type ActivityCountFilter = DefaultFilter & { granularity?: Granularity; countType?: ActivityFilterCountType; activity_type?: ActivityTypes; activity_types?: ActivityTypes[]; onlyContributions: boolean; - repos?: string[]; - startDate?: DateTime; - endDate?: DateTime; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; }; export type ReviewTimeByPRSizeFilter = { @@ -142,12 +132,10 @@ export type MergeLeadTimeFilter = { endDate?: DateTime; }; -export type ActiveDaysFilter = { - project: string; +export type ActiveDaysFilter = DefaultFilter & { granularity?: Granularity; - repos?: string[]; - startDate?: DateTime; - endDate?: DateTime; + includeCodeContributions?: boolean; + includeCollaborations?: boolean; }; export type PackageFilter = { diff --git a/frontend/server/utils/common.ts b/frontend/server/utils/common.ts index 363175ef..0c04665d 100644 --- a/frontend/server/utils/common.ts +++ b/frontend/server/utils/common.ts @@ -2,3 +2,22 @@ // SPDX-License-Identifier: MIT export const isLocal = process.env.NUXT_APP_ENV != 'staging' && process.env.NUXT_APP_ENV != 'production' + +export function getBooleanQueryParam(query: Record, key: string, defaultValue: boolean): boolean { + const value = query[key]; + + if (value === undefined) { + return defaultValue; + } + + if (typeof value === "string") { + return value.toLowerCase() === "true"; + } + + // If multiple values are passed (?foo=true&foo=false), let's use the first one. + if (Array.isArray(value)) { + return value[0].toLowerCase() === "true"; + } + + return Boolean(value); +} diff --git a/frontend/types/development/requests.types.ts b/frontend/types/development/requests.types.ts index 92f8da32..3953cc20 100644 --- a/frontend/types/development/requests.types.ts +++ b/frontend/types/development/requests.types.ts @@ -24,6 +24,8 @@ export type CodeReviewEngagementFilter = { export type ContributionsOutsideWorkHoursFilter = { project: string, repos?: string[], + includeCodeContributions?: boolean, + includeCollaborations?: boolean, startDate?: DateTime, endDate?: DateTime, }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd53c1da..eace3c20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,7 +41,7 @@ importers: version: 1.17.1 '@nuxt/eslint': specifier: ^0.7.5 - version: 0.7.6(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.16)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.29.0(jiti@2.4.2))(webpack@5.99.9(esbuild@0.25.5)))(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + version: 0.7.6(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.16)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.29.0(jiti@2.4.2))(webpack@5.99.9(esbuild@0.25.5)))(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) '@nuxtjs/plausible': specifier: ^1.2.0 version: 1.2.0(magicast@0.3.5) @@ -50,7 +50,7 @@ importers: version: 5.2.10(magicast@0.3.5)(vue@3.5.17(typescript@5.8.3)) '@nuxtjs/sitemap': specifier: ^7.4.7 - version: 7.4.7(h3@1.15.3)(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3)) + version: 7.4.7(h3@1.15.3)(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@pinia/nuxt': specifier: ^0.10.1 version: 0.10.1(magicast@0.3.5)(pinia@3.0.2(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))) @@ -110,7 +110,7 @@ importers: version: 3.6.1 nuxt: specifier: ^3.15.3 - version: 3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(yaml@2.8.0) + version: 3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0) nuxt-gtag: specifier: ^3.0.2 version: 3.0.2(magicast@0.3.5) @@ -168,13 +168,13 @@ importers: version: 3.19.1(@types/node@24.0.10)(@vue/test-utils@2.4.6)(happy-dom@17.5.6)(jiti@2.4.2)(jsdom@26.1.0)(magicast@0.3.5)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vitest@3.2.0(@types/debug@4.1.12)(@types/node@24.0.10)(happy-dom@17.5.6)(jiti@2.4.2)(jsdom@26.1.0)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0) '@nuxtjs/eslint-config-typescript': specifier: ^12.1.0 - version: 12.1.0(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vue-eslint-parser@10.2.0(eslint@9.29.0(jiti@2.4.2))) + version: 12.1.0(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@nuxtjs/eslint-module': specifier: ^4.1.0 - version: 4.1.0(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(webpack@5.99.9(esbuild@0.25.5)) + version: 4.1.0(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.9(esbuild@0.25.5)) '@nuxtjs/storybook': specifier: 8.3.3 - version: 8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(yaml@2.8.0))(optionator@0.9.4)(prettier@3.6.0)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) + version: 8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0))(optionator@0.9.4)(prettier@3.6.0)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) '@nuxtjs/tailwindcss': specifier: ^6.13.1 version: 6.14.0(magicast@0.3.5) @@ -237,7 +237,7 @@ importers: version: 10.1.5(eslint@9.29.0(jiti@2.4.2)) eslint-import-resolver-alias: specifier: ^1.1.2 - version: 1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.29.0(jiti@2.4.2))) + version: 1.1.2(eslint-plugin-import@2.31.0) eslint-import-resolver-typescript: specifier: ^4.4.3 version: 4.4.4(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)) @@ -346,7 +346,7 @@ importers: version: 2.2.4 pg-promise: specifier: ^11.4.3 - version: 11.13.0(pg-query-stream@4.8.1(pg@8.16.3)) + version: 11.13.0(pg-query-stream@4.8.1(pg@8.14.1)) devDependencies: '@types/config': specifier: ^3.3.1 @@ -385,13 +385,13 @@ importers: specifier: workspace:* version: link:../../libs/temporal '@temporalio/activity': - specifier: ~1.11.1 + specifier: ~1.11.8 version: 1.11.8 '@temporalio/worker': - specifier: ~1.11.1 + specifier: ~1.11.8 version: 1.11.8 '@temporalio/workflow': - specifier: ~1.11.1 + specifier: ~1.11.8 version: 1.11.8 devDependencies: '@types/config': @@ -453,6 +453,9 @@ importers: '@crowd/common': specifier: workspace:* version: link:../common + '@crowd/data-access-layer': + specifier: workspace:* + version: link:../data-access-layer '@crowd/database': specifier: workspace:* version: link:../database @@ -520,9 +523,15 @@ importers: lodash.map: specifier: ^4.6.0 version: 4.6.0 + lodash.max: + specifier: ^4.0.1 + version: 4.0.1 lodash.merge: specifier: ^4.6.2 version: 4.6.2 + lodash.min: + specifier: ^4.0.1 + version: 4.0.1 lodash.pickby: specifier: ^4.6.0 version: 4.6.0 @@ -562,7 +571,7 @@ importers: version: link:../logging pg-promise: specifier: ^11.4.3 - version: 11.13.0(pg-query-stream@4.8.1(pg@8.14.1)) + version: 11.13.0(pg-query-stream@4.8.1(pg@8.16.3)) devDependencies: '@types/node': specifier: ^18.16.3 @@ -850,13 +859,13 @@ importers: specifier: workspace:* version: link:../logging '@temporalio/client': - specifier: ~1.11.1 + specifier: ~1.11.8 version: 1.11.8 '@temporalio/common': - specifier: ~1.11.1 + specifier: ~1.11.8 version: 1.11.8 '@temporalio/proto': - specifier: ~1.11.1 + specifier: ~1.11.8 version: 1.11.8 devDependencies: '@types/node': @@ -7884,6 +7893,9 @@ packages: lodash.map@4.6.0: resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + lodash.max@4.0.1: + resolution: {integrity: sha512-iykTDTb7PK33HSQmKy34zv+hh4WEu7WonJPXQcgODzUbbtradtNs8RsD/GI7XV++60KaKR1xhW56N4ISqHesfQ==} + lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -7893,6 +7905,9 @@ packages: lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + lodash.min@4.0.1: + resolution: {integrity: sha512-evqGbKKpUlPcSIMoPamfAEL2byHsyzQjgj67Mw3sInyNO3Q3vytHKkoXbWOgOONY1Mmj6vPHlL9JDJFTZ0DTUA==} + lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} @@ -10860,8 +10875,8 @@ packages: vue-component-type-helpers@2.2.10: resolution: {integrity: sha512-iDUO7uQK+Sab2tYuiP9D1oLujCWlhHELHMgV/cB13cuGbG4qwkLHvtfWb6FzvxrIOPDnU0oHsz2MlQjhYDeaHA==} - vue-component-type-helpers@3.0.8: - resolution: {integrity: sha512-WyR30Eq15Y/+odrUUMax6FmPbZwAp/HnC7qgR1r3lVFAcqwQ4wUoV79Mbh4SxDy3NiqDa+G4TOKD5xXSgBHo5A==} + vue-component-type-helpers@3.1.0: + resolution: {integrity: sha512-cC1pYNRZkSS1iCvdlaMbbg2sjDwxX098FucEjtz9Yig73zYjWzQsnMe5M9H8dRNv55hAIDGUI29hF2BEUA4FMQ==} vue-demi@0.13.11: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} @@ -13256,29 +13271,29 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))': + '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@nuxt/kit': 3.17.4(magicast@0.3.5) '@nuxt/schema': 3.17.4 execa: 7.2.0 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - magicast - '@nuxt/devtools-kit@2.4.1(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))': + '@nuxt/devtools-kit@2.4.1(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@nuxt/kit': 3.17.4(magicast@0.3.5) '@nuxt/schema': 3.17.4 execa: 8.0.1 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - magicast - '@nuxt/devtools-kit@2.6.5(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))': + '@nuxt/devtools-kit@2.6.5(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@nuxt/kit': 3.19.2(magicast@0.3.5) execa: 8.0.1 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - magicast @@ -13293,12 +13308,12 @@ snapshots: prompts: 2.4.2 semver: 7.7.2 - '@nuxt/devtools@2.4.1(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))': + '@nuxt/devtools@2.4.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - '@nuxt/devtools-kit': 2.4.1(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + '@nuxt/devtools-kit': 2.4.1(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) '@nuxt/devtools-wizard': 2.4.1 '@nuxt/kit': 3.17.4(magicast@0.3.5) - '@vue/devtools-core': 7.7.6(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3)) + '@vue/devtools-core': 7.7.6(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@vue/devtools-kit': 7.7.6 birpc: 2.3.0 consola: 3.4.2 @@ -13323,9 +13338,9 @@ snapshots: sirv: 3.0.1 structured-clone-es: 1.0.0 tinyglobby: 0.2.13 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) - vite-plugin-inspect: 11.1.0(@nuxt/kit@3.17.4(magicast@0.3.5))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) - vite-plugin-vue-tracer: 0.1.3(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3)) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) + vite-plugin-inspect: 11.1.0(@nuxt/kit@3.17.4(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) + vite-plugin-vue-tracer: 0.1.3(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) which: 5.0.0 ws: 8.18.2 transitivePeerDependencies: @@ -13373,10 +13388,10 @@ snapshots: - supports-color - typescript - '@nuxt/eslint@0.7.6(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.16)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.29.0(jiti@2.4.2))(webpack@5.99.9(esbuild@0.25.5)))(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))': + '@nuxt/eslint@0.7.6(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.16)(eslint-import-resolver-node@0.3.9)(eslint-webpack-plugin@4.2.0(eslint@9.29.0(jiti@2.4.2))(webpack@5.99.9(esbuild@0.25.5)))(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@eslint/config-inspector': 1.0.2(eslint@9.29.0(jiti@2.4.2)) - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) '@nuxt/eslint-config': 0.7.6(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.16)(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@nuxt/eslint-plugin': 0.7.6(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@nuxt/kit': 3.17.4(magicast@0.3.5) @@ -13619,26 +13634,25 @@ snapshots: - vue-tsc - yaml - '@nuxtjs/eslint-config-typescript@12.1.0(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vue-eslint-parser@10.2.0(eslint@9.29.0(jiti@2.4.2)))': + '@nuxtjs/eslint-config-typescript@12.1.0(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)) + '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)) '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': 6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.29.0(jiti@2.4.2) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)) - eslint-plugin-vue: 10.2.0(eslint@9.29.0(jiti@2.4.2))(vue-eslint-parser@10.2.0(eslint@9.29.0(jiti@2.4.2))) + eslint-plugin-vue: 9.33.0(eslint@9.29.0(jiti@2.4.2)) transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x - supports-color - typescript - - vue-eslint-parser - '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2))': + '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2))': dependencies: eslint: 9.29.0(jiti@2.4.2) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-n@15.7.0(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-promise@6.6.0(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0)(eslint-plugin-n@15.7.0(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-promise@6.6.0(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)) eslint-plugin-n: 15.7.0(eslint@9.29.0(jiti@2.4.2)) eslint-plugin-node: 11.1.0(eslint@9.29.0(jiti@2.4.2)) @@ -13652,14 +13666,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - '@nuxtjs/eslint-module@4.1.0(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(webpack@5.99.9(esbuild@0.25.5))': + '@nuxtjs/eslint-module@4.1.0(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.9(esbuild@0.25.5))': dependencies: '@nuxt/kit': 3.17.4(magicast@0.3.5) chokidar: 3.6.0 eslint: 9.29.0(jiti@2.4.2) eslint-webpack-plugin: 4.2.0(eslint@9.29.0(jiti@2.4.2))(webpack@5.99.9(esbuild@0.25.5)) pathe: 1.1.2 - vite-plugin-eslint: 1.8.1(eslint@9.29.0(jiti@2.4.2))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + vite-plugin-eslint: 1.8.1(eslint@9.29.0(jiti@2.4.2))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) transitivePeerDependencies: - magicast - vite @@ -13689,9 +13703,9 @@ snapshots: - magicast - vue - '@nuxtjs/sitemap@7.4.7(h3@1.15.3)(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))': + '@nuxtjs/sitemap@7.4.7(h3@1.15.3)(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) '@nuxt/kit': 4.1.2(magicast@0.3.5) chalk: 5.6.2 defu: 6.1.4 @@ -13713,11 +13727,11 @@ snapshots: - vite - vue - '@nuxtjs/storybook@8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(yaml@2.8.0))(optionator@0.9.4)(prettier@3.6.0)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': + '@nuxtjs/storybook@8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0))(optionator@0.9.4)(prettier@3.6.0)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': dependencies: - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) '@nuxt/kit': 3.17.4(magicast@0.3.5) - '@storybook-vue/nuxt': 8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(yaml@2.8.0))(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(storybook@8.4.7(prettier@3.6.0))(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) + '@storybook-vue/nuxt': 8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0))(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(storybook@8.4.7(prettier@3.6.0))(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) '@storybook/core-common': 8.4.7(storybook@8.4.7(prettier@3.6.0)) '@storybook/core-server': 8.4.7(storybook@8.4.7(prettier@3.6.0)) chalk: 5.4.1 @@ -14697,22 +14711,22 @@ snapshots: '@standard-schema/spec@1.0.0': {} - '@storybook-vue/nuxt@8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(yaml@2.8.0))(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(storybook@8.4.7(prettier@3.6.0))(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': + '@storybook-vue/nuxt@8.3.3(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0))(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(storybook@8.4.7(prettier@3.6.0))(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': dependencies: '@nuxt/kit': 3.17.4(magicast@0.3.5) '@nuxt/schema': 3.17.4 '@nuxt/vite-builder': 3.17.4(@types/node@24.0.10)(eslint@9.29.0(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) '@rollup/plugin-replace': 6.0.2(rollup@4.41.1) - '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) '@storybook/vue3': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vue@3.5.17(typescript@5.8.3)) - '@storybook/vue3-vite': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3)) + '@storybook/vue3-vite': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) json-stable-stringify: 1.3.0 mlly: 1.7.4 - nuxt: 3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(yaml@2.8.0) + nuxt: 3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0) ofetch: 1.4.1 pathe: 1.1.2 unctx: 2.4.1 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) vue-router: 4.5.1(vue@3.5.17(typescript@5.8.3)) transitivePeerDependencies: @@ -14859,13 +14873,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.0))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))': + '@storybook/builder-vite@8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@storybook/csf-plugin': 8.4.7(storybook@8.4.7(prettier@3.6.0)) browser-assert: 1.2.1 storybook: 8.4.7(prettier@3.6.0) ts-dedent: 2.2.0 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) '@storybook/components@8.4.7(storybook@8.4.7(prettier@3.6.0))': dependencies: @@ -14967,15 +14981,15 @@ snapshots: dependencies: storybook: 8.4.7(prettier@3.6.0) - '@storybook/vue3-vite@8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))': + '@storybook/vue3-vite@8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) '@storybook/vue3': 8.4.7(storybook@8.4.7(prettier@3.6.0))(vue@3.5.17(typescript@5.8.3)) find-package-json: 1.2.0 magic-string: 0.30.17 storybook: 8.4.7(prettier@3.6.0) typescript: 5.8.3 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) vue-component-meta: 2.2.10(typescript@5.8.3) vue-docgen-api: 4.79.2(vue@3.5.17(typescript@5.8.3)) transitivePeerDependencies: @@ -14993,7 +15007,7 @@ snapshots: ts-dedent: 2.2.0 type-fest: 2.19.0 vue: 3.5.17(typescript@5.8.3) - vue-component-type-helpers: 3.0.8 + vue-component-type-helpers: 3.1.0 '@storybook/vue3@8.4.7(storybook@8.4.7(prettier@3.6.0))(vue@3.5.17(typescript@5.8.3))': dependencies: @@ -15007,7 +15021,7 @@ snapshots: ts-dedent: 2.2.0 type-fest: 2.19.0 vue: 3.5.17(typescript@5.8.3) - vue-component-type-helpers: 3.0.8 + vue-component-type-helpers: 3.1.0 '@stylistic/eslint-plugin@3.1.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: @@ -16055,14 +16069,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.6 - '@vue/devtools-core@7.7.6(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3))': + '@vue/devtools-core@7.7.6(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: '@vue/devtools-kit': 7.7.6 '@vue/devtools-shared': 7.7.6 mitt: 3.0.1 nanoid: 5.1.5 pathe: 2.0.3 - vite-hot-client: 2.0.4(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + vite-hot-client: 2.0.4(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) vue: 3.5.17(typescript@5.8.3) transitivePeerDependencies: - vite @@ -17757,10 +17771,10 @@ snapshots: dependencies: eslint: 9.29.0(jiti@2.4.2) - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-n@15.7.0(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-promise@6.6.0(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)): + eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0)(eslint-plugin-n@15.7.0(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-promise@6.6.0(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)): dependencies: eslint: 9.29.0(jiti@2.4.2) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.29.0(jiti@2.4.2)) eslint-plugin-n: 15.7.0(eslint@9.29.0(jiti@2.4.2)) eslint-plugin-promise: 6.6.0(eslint@9.29.0(jiti@2.4.2)) @@ -17782,7 +17796,7 @@ snapshots: optionalDependencies: unrs-resolver: 1.9.2 - eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.29.0(jiti@2.4.2))): + eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0): dependencies: eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.29.0(jiti@2.4.2)) @@ -17805,7 +17819,7 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.7.8 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.29.0(jiti@2.4.2)) eslint-plugin-import-x: 4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color @@ -17830,7 +17844,7 @@ snapshots: dependencies: eslint: 9.29.0(jiti@2.4.2) - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: @@ -17841,7 +17855,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.29.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: @@ -17893,7 +17907,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.29.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -17922,7 +17936,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.29.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.35.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.29.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -19625,12 +19639,16 @@ snapshots: lodash.map@4.6.0: {} + lodash.max@4.0.1: {} + lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} lodash.mergewith@4.6.2: {} + lodash.min@4.0.1: {} + lodash.once@4.1.1: {} lodash.pickby@4.6.0: {} @@ -20198,11 +20216,11 @@ snapshots: - magicast - vue - nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(yaml@2.8.0): + nuxt@3.17.4(@parcel/watcher@2.5.1)(@types/node@24.0.10)(aws4fetch@1.0.20)(db0@0.3.2)(eslint@9.29.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(yaml@2.8.0): dependencies: '@nuxt/cli': 3.25.1(magicast@0.3.5) '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.4.1(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3)) + '@nuxt/devtools': 2.4.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@nuxt/kit': 3.17.4(magicast@0.3.5) '@nuxt/schema': 3.17.4 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) @@ -22848,15 +22866,15 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-dev-rpc@1.0.7(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)): + vite-dev-rpc@1.0.7(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)): dependencies: birpc: 2.3.0 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) - vite-hot-client: 2.0.4(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) + vite-hot-client: 2.0.4(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) - vite-hot-client@2.0.4(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)): + vite-hot-client@2.0.4(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) vite-node@3.2.0(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0): dependencies: @@ -22896,15 +22914,15 @@ snapshots: optionator: 0.9.4 typescript: 5.8.3 - vite-plugin-eslint@1.8.1(eslint@9.29.0(jiti@2.4.2))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)): + vite-plugin-eslint@1.8.1(eslint@9.29.0(jiti@2.4.2))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 9.29.0(jiti@2.4.2) rollup: 2.79.2 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) - vite-plugin-inspect@11.1.0(@nuxt/kit@3.17.4(magicast@0.3.5))(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)): + vite-plugin-inspect@11.1.0(@nuxt/kit@3.17.4(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)): dependencies: ansis: 3.17.0 debug: 4.4.1(supports-color@5.5.0) @@ -22914,21 +22932,21 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) - vite-dev-rpc: 1.0.7(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) + vite-dev-rpc: 1.0.7(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0)) optionalDependencies: '@nuxt/kit': 3.17.4(magicast@0.3.5) transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@0.1.3(vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0))(vue@3.5.17(typescript@5.8.3)): + vite-plugin-vue-tracer@0.1.3(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.5 magic-string: 0.30.17 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0)(tsx@4.20.3)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) vite@5.4.19(@types/node@24.0.10)(sass-embedded@1.89.1)(sass@1.89.1)(terser@5.40.0): @@ -23101,7 +23119,7 @@ snapshots: vue-component-type-helpers@2.2.10: {} - vue-component-type-helpers@3.0.8: {} + vue-component-type-helpers@3.1.0: {} vue-demi@0.13.11(vue@3.5.17(typescript@5.8.3)): dependencies: