From 640265121fff7a279212512d88d0926a6ba0ea37 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch Date: Wed, 18 Mar 2026 12:54:32 -0400 Subject: [PATCH 1/2] fix(db-mongodb): fix pagination with collation in transactions When using MongoDB collation with sessions in transactions, mongoose-paginate-v2 chains `.collation()` which breaks session context in mongoose 8.x, causing incorrect totalDocs counts. Changes: - Add custom count function when collation is enabled to pass collation as an option instead of chaining - Use config.localization.defaultLocale for collation locale fallback instead of hardcoded 'en' - Add collation support to count functions Upstream fix submitted: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 Co-Authored-By: Claude Opus 4.5 --- packages/db-mongodb/src/count.ts | 11 ++++ .../db-mongodb/src/countGlobalVersions.ts | 11 ++++ packages/db-mongodb/src/countVersions.ts | 11 ++++ packages/db-mongodb/src/find.ts | 19 ++++++- packages/db-mongodb/src/findGlobalVersions.ts | 19 ++++++- packages/db-mongodb/src/findVersions.ts | 19 ++++++- packages/db-mongodb/src/queryDrafts.ts | 20 ++++++- test/database/int.spec.ts | 52 +++++++++++++++++++ 8 files changed, 158 insertions(+), 4 deletions(-) diff --git a/packages/db-mongodb/src/count.ts b/packages/db-mongodb/src/count.ts index e88fb5e59c6..a82dabf562e 100644 --- a/packages/db-mongodb/src/count.ts +++ b/packages/db-mongodb/src/count.ts @@ -37,6 +37,17 @@ export const count: Count = async function count( session: await getSession(this, req), } + if (this.collation) { + const localizationConfig = this.payload.config.localization + const defaultLocale = + (typeof localizationConfig === 'object' && localizationConfig?.defaultLocale) || 'en' + + options.collation = { + locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale, + ...this.collation, + } + } + if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) { // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents, diff --git a/packages/db-mongodb/src/countGlobalVersions.ts b/packages/db-mongodb/src/countGlobalVersions.ts index 0d4ff89a298..f9248a98280 100644 --- a/packages/db-mongodb/src/countGlobalVersions.ts +++ b/packages/db-mongodb/src/countGlobalVersions.ts @@ -36,6 +36,17 @@ export const countGlobalVersions: CountGlobalVersions = async function countGlob session: await getSession(this, req), } + if (this.collation) { + const localizationConfig = this.payload.config.localization + const defaultLocale = + (typeof localizationConfig === 'object' && localizationConfig?.defaultLocale) || 'en' + + options.collation = { + locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale, + ...this.collation, + } + } + if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) { // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents, diff --git a/packages/db-mongodb/src/countVersions.ts b/packages/db-mongodb/src/countVersions.ts index d3ba5690160..d3bbb194022 100644 --- a/packages/db-mongodb/src/countVersions.ts +++ b/packages/db-mongodb/src/countVersions.ts @@ -40,6 +40,17 @@ export const countVersions: CountVersions = async function countVersions( session: await getSession(this, req), } + if (this.collation) { + const localizationConfig = this.payload.config.localization + const defaultLocale = + (typeof localizationConfig === 'object' && localizationConfig?.defaultLocale) || 'en' + + options.collation = { + locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale, + ...this.collation, + } + } + if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) { // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents, diff --git a/packages/db-mongodb/src/find.ts b/packages/db-mongodb/src/find.ts index 2ec4af02f16..341e21b1703 100644 --- a/packages/db-mongodb/src/find.ts +++ b/packages/db-mongodb/src/find.ts @@ -90,7 +90,10 @@ export const find: Find = async function find( } if (this.collation) { - const defaultLocale = 'en' + const localizationConfig = this.payload.config.localization + const defaultLocale = + (typeof localizationConfig === 'object' && localizationConfig?.defaultLocale) || 'en' + paginationOptions.collation = { locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale, ...this.collation, @@ -105,11 +108,25 @@ export const find: Find = async function find( paginationOptions.useCustomCountFn = () => { return Promise.resolve( Model.countDocuments(query, { + collation: paginationOptions.collation, hint: { _id: 1 }, session, }), ) } + } else if (!useEstimatedCount && this.collation) { + // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks + // session context in transactions (mongoose 8.x). Provide custom count function that passes + // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 + // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. + paginationOptions.useCustomCountFn = () => { + return Promise.resolve( + Model.countDocuments(query, { + collation: paginationOptions.collation, + session, + }), + ) + } } if (limit >= 0) { diff --git a/packages/db-mongodb/src/findGlobalVersions.ts b/packages/db-mongodb/src/findGlobalVersions.ts index 6170827e9e5..be58242e086 100644 --- a/packages/db-mongodb/src/findGlobalVersions.ts +++ b/packages/db-mongodb/src/findGlobalVersions.ts @@ -80,7 +80,10 @@ export const findGlobalVersions: FindGlobalVersions = async function findGlobalV } if (this.collation) { - const defaultLocale = 'en' + const localizationConfig = this.payload.config.localization + const defaultLocale = + (typeof localizationConfig === 'object' && localizationConfig?.defaultLocale) || 'en' + paginationOptions.collation = { locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale, ...this.collation, @@ -95,11 +98,25 @@ export const findGlobalVersions: FindGlobalVersions = async function findGlobalV paginationOptions.useCustomCountFn = () => { return Promise.resolve( Model.countDocuments(query, { + collation: paginationOptions.collation, hint: { _id: 1 }, session, }), ) } + } else if (!useEstimatedCount && this.collation) { + // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks + // session context in transactions (mongoose 8.x). Provide custom count function that passes + // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 + // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. + paginationOptions.useCustomCountFn = () => { + return Promise.resolve( + Model.countDocuments(query, { + collation: paginationOptions.collation, + session, + }), + ) + } } if (limit >= 0) { diff --git a/packages/db-mongodb/src/findVersions.ts b/packages/db-mongodb/src/findVersions.ts index 2de9e5d4750..cc8b1dfc344 100644 --- a/packages/db-mongodb/src/findVersions.ts +++ b/packages/db-mongodb/src/findVersions.ts @@ -88,7 +88,10 @@ export const findVersions: FindVersions = async function findVersions( } if (this.collation) { - const defaultLocale = 'en' + const localizationConfig = this.payload.config.localization + const defaultLocale = + (typeof localizationConfig === 'object' && localizationConfig?.defaultLocale) || 'en' + paginationOptions.collation = { locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale, ...this.collation, @@ -103,11 +106,25 @@ export const findVersions: FindVersions = async function findVersions( paginationOptions.useCustomCountFn = () => { return Promise.resolve( Model.countDocuments(query, { + collation: paginationOptions.collation, hint: { _id: 1 }, session, }), ) } + } else if (!useEstimatedCount && this.collation) { + // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks + // session context in transactions (mongoose 8.x). Provide custom count function that passes + // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 + // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. + paginationOptions.useCustomCountFn = () => { + return Promise.resolve( + Model.countDocuments(query, { + collation: paginationOptions.collation, + session, + }), + ) + } } if (limit >= 0) { diff --git a/packages/db-mongodb/src/queryDrafts.ts b/packages/db-mongodb/src/queryDrafts.ts index 7af5faaa78a..3aa2d3378bf 100644 --- a/packages/db-mongodb/src/queryDrafts.ts +++ b/packages/db-mongodb/src/queryDrafts.ts @@ -95,7 +95,10 @@ export const queryDrafts: QueryDrafts = async function queryDrafts( } if (this.collation) { - const defaultLocale = 'en' + const localizationConfig = this.payload.config.localization + const defaultLocale = + (typeof localizationConfig === 'object' && localizationConfig?.defaultLocale) || 'en' + paginationOptions.collation = { locale: locale && locale !== 'all' && locale !== '*' ? locale : defaultLocale, ...this.collation, @@ -114,7 +117,22 @@ export const queryDrafts: QueryDrafts = async function queryDrafts( paginationOptions.useCustomCountFn = () => { return Promise.resolve( Model.countDocuments(versionQuery, { + collation: paginationOptions.collation, hint: { _id: 1 }, + session, + }), + ) + } + } else if (!useEstimatedCount && this.collation) { + // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks + // session context in transactions (mongoose 8.x). Provide custom count function that passes + // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 + // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. + paginationOptions.useCustomCountFn = () => { + return Promise.resolve( + Model.countDocuments(versionQuery, { + collation: paginationOptions.collation, + session, }), ) } diff --git a/test/database/int.spec.ts b/test/database/int.spec.ts index 53d3ea6bde1..c5a3ba4f37b 100644 --- a/test/database/int.spec.ts +++ b/test/database/int.spec.ts @@ -5617,4 +5617,56 @@ describe('database', () => { expect(collatedMappedResults).toEqual(expectedSortedItems) }, ) + + it( + 'ensure mongodb collation works with draft pagination without sort', + { db: 'mongo' }, + async () => { + // Clear any existing documents + await payload.delete({ collection: 'categories', where: {} }) + + // Create 15 draft documents + const createdIds: (number | string)[] = [] + for (let i = 0; i < 15; i++) { + const doc = await payload.create({ + collection: 'categories', + data: { name: `Category ${i}` }, + draft: true, + }) + createdIds.push(doc.id) + } + + // Enable collation + payload.db.collation = { strength: 2 } + + // Query drafts WITHOUT sort - this is the scenario that breaks + const resultsNoSort = await payload.find({ + collection: 'categories', + limit: 10, + draft: true, + // No sort parameter + }) + + console.log({ + totalDocs: resultsNoSort.totalDocs, + totalPages: resultsNoSort.totalPages, + docsLength: resultsNoSort.docs.length, + hasNextPage: resultsNoSort.hasNextPage, + }) + + // The bug: totalDocs returns 10 (same as limit) instead of 15 + expect(resultsNoSort.totalDocs).toBe(15) + expect(resultsNoSort.totalPages).toBe(2) + expect(resultsNoSort.hasNextPage).toBe(true) + expect(resultsNoSort.docs.length).toBe(10) + + // Clean up + for (const id of createdIds) { + await payload.delete({ collection: 'categories', id }) + } + + // Reset collation + payload.db.collation = undefined + }, + ) }) From cb64b02ea0f03d230e1931f7cc160731e1f304e0 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch Date: Tue, 24 Mar 2026 17:42:44 -0400 Subject: [PATCH 2/2] fix(db-mongodb): update mongoose-paginate-v2 to fix collation pagination Upgrades mongoose-paginate-v2 from 1.8.5 to 1.9.4 which includes fixes for: - Collation + session in transactions breaking session context - limit in options.options being passed to countDocuments, causing incorrect totalDocs Removes workaround code that was using useCustomCountFn to work around the collation/session bug. --- packages/db-mongodb/package.json | 2 +- packages/db-mongodb/src/find.ts | 13 -- packages/db-mongodb/src/findGlobalVersions.ts | 13 -- packages/db-mongodb/src/findVersions.ts | 13 -- packages/db-mongodb/src/queryDrafts.ts | 14 -- pnpm-lock.yaml | 143 +++++++++++------- 6 files changed, 90 insertions(+), 108 deletions(-) diff --git a/packages/db-mongodb/package.json b/packages/db-mongodb/package.json index 0e9f39d0114..e78aed91b86 100644 --- a/packages/db-mongodb/package.json +++ b/packages/db-mongodb/package.json @@ -53,7 +53,7 @@ }, "dependencies": { "mongoose": "8.15.1", - "mongoose-paginate-v2": "1.8.5", + "mongoose-paginate-v2": "1.9.4", "prompts": "2.4.2", "uuid": "10.0.0" }, diff --git a/packages/db-mongodb/src/find.ts b/packages/db-mongodb/src/find.ts index 341e21b1703..3d3861d4ed5 100644 --- a/packages/db-mongodb/src/find.ts +++ b/packages/db-mongodb/src/find.ts @@ -114,19 +114,6 @@ export const find: Find = async function find( }), ) } - } else if (!useEstimatedCount && this.collation) { - // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks - // session context in transactions (mongoose 8.x). Provide custom count function that passes - // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 - // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. - paginationOptions.useCustomCountFn = () => { - return Promise.resolve( - Model.countDocuments(query, { - collation: paginationOptions.collation, - session, - }), - ) - } } if (limit >= 0) { diff --git a/packages/db-mongodb/src/findGlobalVersions.ts b/packages/db-mongodb/src/findGlobalVersions.ts index be58242e086..a1f30421757 100644 --- a/packages/db-mongodb/src/findGlobalVersions.ts +++ b/packages/db-mongodb/src/findGlobalVersions.ts @@ -104,19 +104,6 @@ export const findGlobalVersions: FindGlobalVersions = async function findGlobalV }), ) } - } else if (!useEstimatedCount && this.collation) { - // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks - // session context in transactions (mongoose 8.x). Provide custom count function that passes - // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 - // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. - paginationOptions.useCustomCountFn = () => { - return Promise.resolve( - Model.countDocuments(query, { - collation: paginationOptions.collation, - session, - }), - ) - } } if (limit >= 0) { diff --git a/packages/db-mongodb/src/findVersions.ts b/packages/db-mongodb/src/findVersions.ts index cc8b1dfc344..e7a2a2db348 100644 --- a/packages/db-mongodb/src/findVersions.ts +++ b/packages/db-mongodb/src/findVersions.ts @@ -112,19 +112,6 @@ export const findVersions: FindVersions = async function findVersions( }), ) } - } else if (!useEstimatedCount && this.collation) { - // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks - // session context in transactions (mongoose 8.x). Provide custom count function that passes - // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 - // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. - paginationOptions.useCustomCountFn = () => { - return Promise.resolve( - Model.countDocuments(query, { - collation: paginationOptions.collation, - session, - }), - ) - } } if (limit >= 0) { diff --git a/packages/db-mongodb/src/queryDrafts.ts b/packages/db-mongodb/src/queryDrafts.ts index 3aa2d3378bf..7dde1d6c6fe 100644 --- a/packages/db-mongodb/src/queryDrafts.ts +++ b/packages/db-mongodb/src/queryDrafts.ts @@ -123,19 +123,6 @@ export const queryDrafts: QueryDrafts = async function queryDrafts( }), ) } - } else if (!useEstimatedCount && this.collation) { - // Workaround for mongoose-paginate-v2 bug: chaining .collation() on countDocuments breaks - // session context in transactions (mongoose 8.x). Provide custom count function that passes - // collation as an option instead. See: https://github.com/aravindnc/mongoose-paginate-v2/pull/240 - // TODO: Remove this workaround once mongoose-paginate-v2 is updated with the fix. - paginationOptions.useCustomCountFn = () => { - return Promise.resolve( - Model.countDocuments(versionQuery, { - collation: paginationOptions.collation, - session, - }), - ) - } } if (limit && limit > 0) { @@ -158,7 +145,6 @@ export const queryDrafts: QueryDrafts = async function queryDrafts( versions: true, }) - // build join aggregation if (aggregate || sortAggregation.length > 0) { result = await aggregatePaginate({ adapter: this, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eedc819496a..ff0ae2f9eb7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -204,7 +204,7 @@ importers: version: 5.7.3 vitest: specifier: 4.0.15 - version: 4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) wrangler: specifier: ~4.61.1 version: 4.61.1(@cloudflare/workers-types@4.20260218.0)(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -335,8 +335,8 @@ importers: specifier: 8.15.1 version: 8.15.1(@aws-sdk/credential-providers@3.1006.0)(socks@2.8.7) mongoose-paginate-v2: - specifier: 1.8.5 - version: 1.8.5 + specifier: 1.9.4 + version: 1.9.4(mongoose@8.15.1(@aws-sdk/credential-providers@3.1006.0)(socks@2.8.7)) prompts: specifier: 2.4.2 version: 2.4.2 @@ -579,7 +579,7 @@ importers: version: 8.26.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3) '@vitest/eslint-plugin': specifier: 1.5.4 - version: 1.5.4(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3)(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 1.5.4(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3)(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) eslint: specifier: 9.39.2 version: 9.39.2(jiti@2.6.1) @@ -630,7 +630,7 @@ importers: version: 8.26.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3) '@vitest/eslint-plugin': specifier: 1.5.4 - version: 1.5.4(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3)(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 1.5.4(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3)(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) eslint: specifier: 9.39.2 version: 9.39.2(jiti@2.6.1) @@ -1895,7 +1895,7 @@ importers: version: 19.2.3(@types/react@19.2.9) '@vitejs/plugin-react': specifier: 4.5.2 - version: 4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) eslint: specifier: ^9.16.0 version: 9.39.2(jiti@2.6.1) @@ -1916,10 +1916,10 @@ importers: version: 5.7.3 vite-tsconfig-paths: specifier: 6.0.5 - version: 6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: 4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) templates/ecommerce: dependencies: @@ -2085,7 +2085,7 @@ importers: version: 1.0.0 '@vitejs/plugin-react': specifier: 4.5.2 - version: 4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) eslint: specifier: ^9.16.0 version: 9.39.2(jiti@2.6.1) @@ -2130,10 +2130,10 @@ importers: version: 5.7.3 vite-tsconfig-paths: specifier: 6.0.5 - version: 6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: 4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) templates/website: dependencies: @@ -2260,7 +2260,7 @@ importers: version: 19.2.3(@types/react@19.2.9) '@vitejs/plugin-react': specifier: 4.5.2 - version: 4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) autoprefixer: specifier: ^10.4.19 version: 10.4.27(postcss@8.5.8) @@ -2293,10 +2293,10 @@ importers: version: 5.7.3 vite-tsconfig-paths: specifier: 6.0.5 - version: 6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: 4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) test: dependencies: @@ -2366,7 +2366,7 @@ importers: version: link:../packages/eslint-plugin '@payloadcms/figma': specifier: latest - version: 0.0.1-alpha.48(@payloadcms/plugin-cloud-storage@packages+plugin-cloud-storage)(@payloadcms/richtext-lexical@packages+richtext-lexical)(payload@packages+payload) + version: 0.0.1-alpha.58(@payloadcms/plugin-cloud-storage@packages+plugin-cloud-storage)(@payloadcms/richtext-lexical@packages+richtext-lexical)(payload@packages+payload) '@payloadcms/graphql': specifier: workspace:* version: link:../packages/graphql @@ -2570,7 +2570,7 @@ importers: version: 10.0.0 vitest: specifier: 4.0.15 - version: 4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) wrangler: specifier: ~4.61.1 version: 4.61.1(@cloudflare/workers-types@4.20260218.0)(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -3713,6 +3713,10 @@ packages: resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.29.2': + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} + engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} @@ -6227,8 +6231,8 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} - '@payloadcms/figma@0.0.1-alpha.48': - resolution: {integrity: sha512-41tgaeCNNnWmzvDK3qUrkv3S4UkYnpsFF1sF8fs8lIcLy1gd3oDCwXms7Mee3fYl94tZmg7jZDRE7mIDRFHI5Q==} + '@payloadcms/figma@0.0.1-alpha.58': + resolution: {integrity: sha512-ELdufBOWWluqAX1/d22R5tYBUHK6LIWyXqN+Ltob6bl9u6rK1OLmjq6sqA+AvWQv0faRRca/1f9TnrZDNS4K6g==} hasBin: true peerDependencies: '@payloadcms/plugin-cloud-storage': ^3.0.0 @@ -9713,6 +9717,10 @@ packages: resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + engines: {node: '>=10.13.0'} + enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} @@ -11837,14 +11845,24 @@ packages: socks: optional: true - mongoose-paginate-v2@1.8.5: - resolution: {integrity: sha512-kFxhot+yw9KmpAGSSrF/o+f00aC2uawgNUbhyaM0USS9L7dln1NA77/pLg4lgOaRgXMtfgCENamjqZwIM1Zrig==} + mongoose-lean-virtuals@1.1.1: + resolution: {integrity: sha512-8chOqpVE3bcoWT2pIgcJeIZlXaOfQCavZgQZF4qytUtjRBqsNMyzUoR16qdw9XL2kC478N8iA8z0AA+NSS0d1A==} + engines: {node: '>=16.20.1'} + peerDependencies: + mongoose: '>=5.11.10' + + mongoose-paginate-v2@1.9.4: + resolution: {integrity: sha512-0LOsVEQmjrbJKVDi/IvFEhIezmuRjUE4loGgslv57j9nK/NMC+mbKT0QnaPSPpib4lByKVBcy3VbDa1TvlHZjA==} engines: {node: '>=4.0.0'} mongoose@8.15.1: resolution: {integrity: sha512-RhQ4DzmBi5BNGcS0w4u1vdMRIKcteXTCNzDt1j7XRcdWYBz1MjMjulBhPaeC5jBCHOD1yinuOFTTSOWLLGexWw==} engines: {node: '>=16.20.1'} + mpath@0.8.4: + resolution: {integrity: sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==} + engines: {node: '>=4.0.0'} + mpath@0.9.0: resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} engines: {node: '>=4.0.0'} @@ -13724,8 +13742,8 @@ packages: engines: {node: '>=10'} hasBin: true - terser@5.46.0: - resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} engines: {node: '>=10'} hasBin: true @@ -16681,6 +16699,8 @@ snapshots: '@babel/runtime@7.28.6': {} + '@babel/runtime@7.29.2': {} + '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 @@ -18980,7 +19000,7 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.6 optional: true - '@payloadcms/figma@0.0.1-alpha.48(@payloadcms/plugin-cloud-storage@packages+plugin-cloud-storage)(@payloadcms/richtext-lexical@packages+richtext-lexical)(payload@packages+payload)': + '@payloadcms/figma@0.0.1-alpha.58(@payloadcms/plugin-cloud-storage@packages+plugin-cloud-storage)(@payloadcms/richtext-lexical@packages+richtext-lexical)(payload@packages+payload)': dependencies: '@clack/prompts': 0.11.0 '@figma/rest-api-spec': 0.34.0 @@ -18989,7 +19009,6 @@ snapshots: arg: 5.0.2 conf: 13.1.0 cross-spawn: 7.0.6 - esprima-next: 6.0.3 figures: 6.1.0 jose: 6.0.12 jsonwebtoken: 9.0.3 @@ -20830,7 +20849,7 @@ snapshots: '@testing-library/dom@10.4.1': dependencies: '@babel/code-frame': 7.29.0 - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.2 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -21418,7 +21437,7 @@ snapshots: utf-8-validate: 6.0.6 ws: 8.19.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - '@vitejs/plugin-react@4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@4.5.2(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -21426,18 +21445,18 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.11 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.5.4(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3)(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/eslint-plugin@1.5.4(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3)(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@typescript-eslint/scope-manager': 8.57.0 '@typescript-eslint/utils': 8.57.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.7.3) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: typescript: 5.7.3 - vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -21459,21 +21478,21 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.0.15 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.0.18 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@4.0.15': dependencies: @@ -22965,6 +22984,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.0 + enhanced-resolve@5.20.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 @@ -25630,7 +25654,16 @@ snapshots: '@aws-sdk/credential-providers': 3.1006.0 socks: 2.8.7 - mongoose-paginate-v2@1.8.5: {} + mongoose-lean-virtuals@1.1.1(mongoose@8.15.1(@aws-sdk/credential-providers@3.1006.0)(socks@2.8.7)): + dependencies: + mongoose: 8.15.1(@aws-sdk/credential-providers@3.1006.0)(socks@2.8.7) + mpath: 0.8.4 + + mongoose-paginate-v2@1.9.4(mongoose@8.15.1(@aws-sdk/credential-providers@3.1006.0)(socks@2.8.7)): + dependencies: + mongoose-lean-virtuals: 1.1.1(mongoose@8.15.1(@aws-sdk/credential-providers@3.1006.0)(socks@2.8.7)) + transitivePeerDependencies: + - mongoose mongoose@8.15.1(@aws-sdk/credential-providers@3.1006.0)(socks@2.8.7): dependencies: @@ -25651,6 +25684,8 @@ snapshots: - socks - supports-color + mpath@0.8.4: {} + mpath@0.9.0: {} mquery@5.0.0: @@ -27819,7 +27854,7 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - terser: 5.46.0 + terser: 5.46.1 webpack: 5.105.4(@swc/core@1.15.3)(esbuild@0.25.12) optionalDependencies: '@swc/core': 1.15.3 @@ -27832,7 +27867,7 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - terser@5.46.0: + terser@5.46.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -28289,17 +28324,17 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-tsconfig-paths@6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)): + vite-tsconfig-paths@6.0.5(typescript@5.7.3)(vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.7.3) - vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.1 fdir: 6.5.0(picomatch@4.0.3) @@ -28314,11 +28349,11 @@ snapshots: lightningcss: 1.30.2 sass: 1.97.3 sass-embedded: 1.97.3 - terser: 5.46.0 + terser: 5.46.1 tsx: 4.21.0 yaml: 2.8.2 - vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.1 fdir: 6.5.0(picomatch@4.0.3) @@ -28333,11 +28368,11 @@ snapshots: lightningcss: 1.30.2 sass: 1.77.4 sass-embedded: 1.97.3 - terser: 5.46.0 + terser: 5.46.1 tsx: 4.21.0 yaml: 2.8.2 - vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.1 fdir: 6.5.0(picomatch@4.0.3) @@ -28352,14 +28387,14 @@ snapshots: lightningcss: 1.30.2 sass: 1.97.3 sass-embedded: 1.97.3 - terser: 5.46.0 + terser: 5.46.1 tsx: 4.21.0 yaml: 2.8.2 - vitest@4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.15 - '@vitest/mocker': 4.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.15 '@vitest/runner': 4.0.15 '@vitest/snapshot': 4.0.15 @@ -28376,7 +28411,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -28396,10 +28431,10 @@ snapshots: - tsx - yaml - vitest@4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.15(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.15 - '@vitest/mocker': 4.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.15 '@vitest/runner': 4.0.15 '@vitest/snapshot': 4.0.15 @@ -28416,7 +28451,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.77.4)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -28436,10 +28471,10 @@ snapshots: - tsx - yaml - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.9)(happy-dom@20.8.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.18 '@vitest/runner': 4.0.18 '@vitest/snapshot': 4.0.18 @@ -28456,7 +28491,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@22.19.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -28540,7 +28575,7 @@ snapshots: acorn-import-phases: 1.0.4(acorn@8.16.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.20.0 + enhanced-resolve: 5.20.1 es-module-lexer: 2.0.0 eslint-scope: 5.1.1 events: 3.3.0