diff --git a/lib/cli.ts b/lib/cli.ts index 82e412beb..cc9148fd6 100644 --- a/lib/cli.ts +++ b/lib/cli.ts @@ -10,13 +10,25 @@ async function main() { const [name, repo] = args if (name) { console.log('Syncing ' + (name === '-' ? repo : name)) - const module = await sync(name, repo, true) + const { module, regressions } = await sync(name, repo, true) console.log('Synced', module.name) + if (regressions.length > 0) { + console.log('\nRegressions detected:') + for (const r of regressions) { + console.log(` - [${r.type}] ${r.description}`) + } + } } else { console.log('Syncing all modules') - const { count, success } = await syncAll() - console.log('Sync ' + count + ' modules') + const { count, success, regressions } = await syncAll() + console.log('Synced ' + count + ' modules') + if (regressions.length > 0) { + console.log('\nRegressions detected (' + regressions.length + '):') + for (const r of regressions) { + console.log(` - [${r.type}] ${r.moduleName}: ${r.description}`) + } + } if (!success) process.exit(1) } diff --git a/lib/modules.ts b/lib/modules.ts index 07000ada3..5aeeb5e73 100644 --- a/lib/modules.ts +++ b/lib/modules.ts @@ -11,15 +11,20 @@ import { Octokit } from '@octokit/rest' import dotenv from 'dotenv' import { categories } from './categories' -import type { ModuleInfo } from './types' -import { fetchGithubPkg, modulesDir, distDir, distFile, rootDir, userAgent } from './utils' +import type { ModuleInfo, SyncRegression, SyncResult } from './types' +import { fetchGithubPkg, fetchModuleJson, modulesDir, distDir, distFile, rootDir, userAgent, getMajorVersions, mergeCompatibilityRanges, isNuxt4Compatible, isRealDocsUrl } from './utils' const maintainerSocialCache: Record } } }> = {} dotenv.config() -export async function sync(name: string, repo?: string, isNew: boolean = false) { +export async function sync(name: string, repo?: string, isNew: boolean = false): Promise { const mod = await getModule(name) + const regressions: SyncRegression[] = [] + + // Store original values for regression detection + const originalWebsite = mod.website + const originalCompatibility = mod.compatibility.nuxt // Repo if (repo) { @@ -215,12 +220,70 @@ export async function sync(name: string, repo?: string, isNew: boolean = false) mod.description = pkg.description } - // Compatibility + const majorVersions = await getMajorVersions(mod.npm) + + const nuxtCompatibilities: string[] = [] + let latestModuleJson: { docs?: string, compatibility?: { nuxt?: string } } | null = null + + for (const version of majorVersions) { + const moduleJson = await fetchModuleJson(mod.npm, version) + if (moduleJson) { + // Keep the latest module.json for other metadata + if (!latestModuleJson) { + latestModuleJson = moduleJson + } + + if (moduleJson.compatibility?.nuxt) { + nuxtCompatibilities.push(moduleJson.compatibility.nuxt) + } + } + } + + if (nuxtCompatibilities.length > 0) { + const mergedCompatibility = mergeCompatibilityRanges(nuxtCompatibilities) + if (mergedCompatibility) { + mod.compatibility.nuxt = mergedCompatibility + + const wasNuxt4Compatible = isNuxt4Compatible(originalCompatibility) + const isNowNuxt4Compatible = isNuxt4Compatible(mergedCompatibility) + if (wasNuxt4Compatible && !isNowNuxt4Compatible) { + regressions.push({ + type: 'compatibility', + moduleName: mod.name, + repo: mod.repo, + currentValue: originalCompatibility, + moduleValue: mergedCompatibility, + description: `Module was marked as Nuxt 4 compatible (${originalCompatibility}) but module.json indicates only ${mergedCompatibility}`, + }) + } + } + } + + // Always use docs URL from module.json if present (module is source of truth) + if (latestModuleJson?.docs) { + const newWebsite = latestModuleJson.docs + + // Detect docs URL regression: was a real docs site, now it's just GitHub + const wasRealDocsUrl = isRealDocsUrl(originalWebsite) + const isNowRealDocsUrl = isRealDocsUrl(newWebsite) + if (wasRealDocsUrl && !isNowRealDocsUrl) { + regressions.push({ + type: 'docs-url', + moduleName: mod.name, + repo: mod.repo, + currentValue: originalWebsite, + moduleValue: newWebsite, + description: `Module had a documentation site (${originalWebsite}) but module.json now points to ${newWebsite}`, + }) + } + + mod.website = newWebsite + } // Write module await writeModule(mod) - return mod + return { module: mod, regressions } } export async function getModule(name: string): Promise { @@ -267,15 +330,26 @@ export async function syncAll() { const modules = await readModules() const limit = pLimit(10) let success = true - const updatedModules = await Promise.allSettled(modules.map(module => limit(() => { + const allRegressions: SyncRegression[] = [] + + const results = await Promise.allSettled(modules.map(module => limit(async () => { console.log(`Syncing ${module.name}`) - return sync(module.name, module.repo).catch((err) => { + try { + const result = await sync(module.name, module.repo) + if (result.regressions.length > 0) { + allRegressions.push(...result.regressions) + } + return result + } + catch (err) { console.error(`Error syncing ${module.name}`) console.error(err) success = false - }) + return null + } }))) - return { count: updatedModules.length, success } + + return { count: results.length, success, regressions: allRegressions } } export async function build() { diff --git a/lib/types.ts b/lib/types.ts index e86b244e4..ca65becb0 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -50,3 +50,17 @@ export interface ModuleInfo { publishedAt?: number createdAt?: number } + +export interface SyncRegression { + type: 'docs-url' | 'compatibility' + moduleName: string + repo: string + currentValue: string + moduleValue: string + description: string +} + +export interface SyncResult { + module: ModuleInfo + regressions: SyncRegression[] +} diff --git a/lib/utils.ts b/lib/utils.ts index cc17ca50b..f93cf69da 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -1,5 +1,6 @@ import { resolve } from 'node:path' import { ofetch } from 'ofetch' +import semver from 'semver' import type { Packument } from '@npm/types' export const rootDir = resolve(__dirname, '..') @@ -35,6 +36,354 @@ export function fetchGithubPkg(repo: string) { return fetchRawGithub(repo + '/' + path + '/' + 'package.json') } +export async function fetchModuleJson(npmPackage: string, version: string) { + try { + return await ofetch(`https://unpkg.com/${npmPackage}@${version}/dist/module.json`, { + responseType: 'json', + headers: { + 'user-agent': userAgent, + }, + }) + } + catch { + return null + } +} + +export async function getMajorVersions(npmPackage: string): Promise { + const pkgData = await fetchPKG(npmPackage) + const majorVersionMap = new Map() + + for (const version in pkgData.versions) { + // Skip pre-release versions + if (version.includes('-')) continue + + const match = version.match(/^(\d+)\./) + if (!match || !match[1]) continue + + const major = Number.parseInt(match[1], 10) + const current = majorVersionMap.get(major) + + // Keep the highest version for each major + if (!current || semver.compare(version, current) > 0) { + majorVersionMap.set(major, version) + } + } + + return Array.from(majorVersionMap.values()).sort((a, b) => semver.compare(b, a)) +} + export function uniq(items: T[]) { return Array.from(new Set(items)) } + +interface ParsedRange { + original: string + type: 'gte' | 'caret' | 'tilde' | 'exact' | 'complex' + major: number + minor: number + patch: number + prerelease: string | null + // For open-ended ranges (>=), hasUpperBound is false + hasUpperBound: boolean +} + +function parseRangeComponent(range: string): ParsedRange | null { + const trimmed = range.trim() + + // Check if it's a valid semver range first + if (!semver.validRange(trimmed)) { + return null + } + + // Try to parse common patterns + + // >=X.Y.Z or >=X.Y.Z-prerelease + const gteMatch = trimmed.match(/^>=\s*(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-([a-z0-9.-]+))?$/i) + if (gteMatch) { + return { + original: trimmed, + type: 'gte', + major: Number.parseInt(gteMatch[1]!, 10), + minor: gteMatch[2] ? Number.parseInt(gteMatch[2], 10) : 0, + patch: gteMatch[3] ? Number.parseInt(gteMatch[3], 10) : 0, + prerelease: gteMatch[4] || null, + hasUpperBound: false, + } + } + + // ^X.Y.Z or ^X + const caretMatch = trimmed.match(/^\^(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-([a-z0-9.-]+))?$/i) + if (caretMatch) { + return { + original: trimmed, + type: 'caret', + major: Number.parseInt(caretMatch[1]!, 10), + minor: caretMatch[2] ? Number.parseInt(caretMatch[2], 10) : 0, + patch: caretMatch[3] ? Number.parseInt(caretMatch[3], 10) : 0, + prerelease: caretMatch[4] || null, + hasUpperBound: true, + } + } + + // ~X.Y.Z + const tildeMatch = trimmed.match(/^~(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-([a-z0-9.-]+))?$/i) + if (tildeMatch) { + return { + original: trimmed, + type: 'tilde', + major: Number.parseInt(tildeMatch[1]!, 10), + minor: tildeMatch[2] ? Number.parseInt(tildeMatch[2], 10) : 0, + patch: tildeMatch[3] ? Number.parseInt(tildeMatch[3], 10) : 0, + prerelease: tildeMatch[4] || null, + hasUpperBound: true, + } + } + + // Exact version X.Y.Z + const exactMatch = trimmed.match(/^(\d+)\.(\d+)\.(\d+)(?:-([a-z0-9.-]+))?$/i) + if (exactMatch) { + return { + original: trimmed, + type: 'exact', + major: Number.parseInt(exactMatch[1]!, 10), + minor: Number.parseInt(exactMatch[2]!, 10), + patch: Number.parseInt(exactMatch[3]!, 10), + prerelease: exactMatch[4] || null, + hasUpperBound: true, + } + } + + // Complex range - we can still get minVersion from it + const minVersion = semver.minVersion(trimmed) + if (minVersion) { + return { + original: trimmed, + type: 'complex', + major: minVersion.major, + minor: minVersion.minor, + patch: minVersion.patch, + prerelease: minVersion.prerelease.length > 0 ? minVersion.prerelease.join('.') : null, + hasUpperBound: true, // Assume complex ranges have upper bounds + } + } + + return null +} + +/** + * Check if range A is completely covered by range B + * (i.e., every version satisfying A also satisfies B) + */ +function isRangeCoveredBy(a: ParsedRange, b: ParsedRange): boolean { + // An open-ended >= range covers another range if its minimum is <= the other's minimum + if (b.type === 'gte' && !b.hasUpperBound) { + const aMin = semver.minVersion(a.original) + const bMin = semver.minVersion(b.original) + if (aMin && bMin && semver.gte(aMin, bMin)) { + // b starts at or before a, and b has no upper bound + // So if a has an upper bound, b covers all of a's range and more + // If a also has no upper bound, they overlap from a's min onward + return true + } + } + + // A caret range ^X covers another caret ^X.Y.Z if X matches and Y.Z >= the other's Y.Z + if (a.type === 'caret' && b.type === 'caret' && a.major === b.major) { + if (b.minor < a.minor || (b.minor === a.minor && b.patch <= a.patch)) { + return true + } + } + + return false +} + +/** + * Compare version tuples for sorting + */ +function compareVersionTuple(a: ParsedRange, b: ParsedRange): number { + if (a.major !== b.major) return a.major - b.major + if (a.minor !== b.minor) return a.minor - b.minor + if (a.patch !== b.patch) return a.patch - b.patch + + // Handle prereleases - non-prerelease comes after prerelease + if (a.prerelease && !b.prerelease) return -1 + if (!a.prerelease && b.prerelease) return 1 + if (a.prerelease && b.prerelease) { + return a.prerelease.localeCompare(b.prerelease) + } + + return 0 +} + +/** + * Format a version as a clean string + */ +function formatVersion(major: number, minor: number, patch: number, prerelease: string | null): string { + let version = `${major}.${minor}.${patch}` + if (prerelease) { + version += `-${prerelease}` + } + return version +} + +/** + * Merge multiple Nuxt compatibility ranges into the maximum allowable range. + * + * Examples: + * - ['>=3.0.0', '>=4.0.0'] => '>=3.0.0' (>=3.0.0 already includes >=4.0.0) + * - ['^2.16.0', '>=3.0.0'] => '^2.16.0 || >=3.0.0' (disjoint major versions) + * - ['>=3.0.0-rc.9', '>=3.7.0'] => '>=3.0.0-rc.9' (rc.9 is more permissive) + * - ['^3.0.0', '^3.5.0'] => '^3.0.0' (^3.0.0 includes ^3.5.0) + */ +export function mergeCompatibilityRanges(ranges: string[]): string { + if (ranges.length === 0) return '' + + // Split compound ranges (those with ||) into individual ranges + // Also handle invalid space-separated compound ranges like ">=3.0.0 >=4.0.0" + // But NOT valid ranges like ">=3.0.0 <5.0.0" which is a single range with upper bound + const allRangeStrings: string[] = [] + for (const range of ranges) { + // First split on || which is the standard OR separator + const orParts = range.split(/\s*\|\|\s*/).map(r => r.trim()).filter(Boolean) + + for (const part of orParts) { + // Check if this part looks like invalid space-separated ranges + // e.g., ">=3.0.0 >=4.0.0" should become [">=3.0.0", ">=4.0.0"] + // But ">=3.0.0 <5.0.0" should stay as-is (valid range with upper bound) + // The pattern for invalid space-separated: multiple >= or ^ + const spaceSeparatedMatch = part.match(/^(>=\S+)\s+(>=\S.*)$/) + if (spaceSeparatedMatch) { + // Recursively split in case there are more + const subParts = [spaceSeparatedMatch[1]!, spaceSeparatedMatch[2]!] + for (const subPart of subParts) { + const furtherSplit = subPart.match(/^(>=\S+)\s+(>=\S.*)$/) + if (furtherSplit) { + allRangeStrings.push(furtherSplit[1]!, furtherSplit[2]!) + } + else { + allRangeStrings.push(subPart) + } + } + } + else { + allRangeStrings.push(part) + } + } + } + + if (allRangeStrings.length === 0) return '' + if (allRangeStrings.length === 1) { + // Single range - validate and return + const valid = semver.validRange(allRangeStrings[0]!) + return valid ? allRangeStrings[0]! : '' + } + + // Parse all ranges + const parsedRanges: ParsedRange[] = [] + for (const rangeStr of allRangeStrings) { + const parsed = parseRangeComponent(rangeStr) + if (parsed) { + parsedRanges.push(parsed) + } + } + + if (parsedRanges.length === 0) return '' + if (parsedRanges.length === 1) return parsedRanges[0]!.original + + // Group ranges by major version + const byMajor = new Map() + for (const range of parsedRanges) { + const existing = byMajor.get(range.major) || [] + existing.push(range) + byMajor.set(range.major, existing) + } + + const mostPermissivePerMajor: ParsedRange[] = [] + + for (const [_major, rangesForMajor] of byMajor) { + const gteRanges = rangesForMajor.filter(r => r.type === 'gte' && !r.hasUpperBound) + + if (gteRanges.length > 0) { + // Among >= ranges, pick the one with the lowest minimum version + gteRanges.sort(compareVersionTuple) + mostPermissivePerMajor.push(gteRanges[0]!) + } + else { + rangesForMajor.sort(compareVersionTuple) + mostPermissivePerMajor.push(rangesForMajor[0]!) + } + } + + // Now check if any range covers others across major versions + // (e.g., >=3.0.0 covers >=4.0.0 since it has no upper bound) + const finalRanges: ParsedRange[] = [] + + // Sort by major version ascending + mostPermissivePerMajor.sort((a, b) => a.major - b.major) + + for (const range of mostPermissivePerMajor) { + // Check if this range is already covered by an existing range in finalRanges + let isCovered = false + for (const existing of finalRanges) { + if (isRangeCoveredBy(range, existing)) { + isCovered = true + break + } + } + + if (!isCovered) { + finalRanges.push(range) + } + } + + // Format the output + // Sort by major version for consistent output + finalRanges.sort((a, b) => a.major - b.major) + + // Try to simplify to a single >= range if possible + if (finalRanges.length > 1) { + // Check if all ranges are consecutive majors and we can use a single >= range + const firstRange = finalRanges[0]! + if (firstRange.type === 'gte' && !firstRange.hasUpperBound) { + // Already handled by coverage check above + } + } + + return finalRanges.map((r) => { + // Prefer clean formatting + if (r.type === 'gte') { + return `>=${formatVersion(r.major, r.minor, r.patch, r.prerelease)}` + } + if (r.type === 'caret') { + if (r.minor === 0 && r.patch === 0 && !r.prerelease) { + return `^${r.major}.0.0` + } + return `^${formatVersion(r.major, r.minor, r.patch, r.prerelease)}` + } + // For other types, use the original + return r.original + }).join(' || ') +} + +// Keep the old name as an alias for backwards compatibility +export const deduplicateCompatibilityRanges = mergeCompatibilityRanges + +/** + * Check if a compatibility range includes Nuxt 4.x + */ +export function isNuxt4Compatible(range: string): boolean { + if (!range) return false + try { + // Test against a Nuxt 4 version + return semver.satisfies('4.0.0', range) + } + catch { + return false + } +} + +export function isRealDocsUrl(url: string): boolean { + if (!url) return false + return !url.includes('github.com') +} diff --git a/modules/algolia.yml b/modules/algolia.yml index d3de4954b..57783c931 100644 --- a/modules/algolia.yml +++ b/modules/algolia.yml @@ -18,6 +18,6 @@ maintainers: github: yassilah avatar: https://avatars.githubusercontent.com/u/13403295?v=4 compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.16.0 || >=3.0.0-rc.9 requires: bridge: true diff --git a/modules/animejs.yml b/modules/animejs.yml index 878b5bf79..5310f71bf 100644 --- a/modules/animejs.yml +++ b/modules/animejs.yml @@ -13,5 +13,5 @@ maintainers: github: ivodolenc twitter: ivodolenc compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/api-party.yml b/modules/api-party.yml index dab41aa7b..eb43cb6c7 100644 --- a/modules/api-party.yml +++ b/modules/api-party.yml @@ -14,5 +14,5 @@ maintainers: twitter: jschopplich avatar: https://avatars.githubusercontent.com/johannschopplich?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.7.0' requires: {} diff --git a/modules/ark-ui.yml b/modules/ark-ui.yml index 719500fae..fefb2dee7 100644 --- a/modules/ark-ui.yml +++ b/modules/ark-ui.yml @@ -15,5 +15,5 @@ maintainers: github: iamdin twitter: iamdinq compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/bugsnag.yml b/modules/bugsnag.yml index a812f4f06..662e98989 100644 --- a/modules/bugsnag.yml +++ b/modules/bugsnag.yml @@ -15,6 +15,6 @@ maintainers: github: JulianMar twitter: julian_martin96 compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.16.0 || >=3.0.0 requires: bridge: true diff --git a/modules/chatwoot.yml b/modules/chatwoot.yml index e4db91673..b66ec3eff 100644 --- a/modules/chatwoot.yml +++ b/modules/chatwoot.yml @@ -16,5 +16,5 @@ maintainers: twitter: productdevbook bluesky: productdevbook.com compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.3.1' requires: {} diff --git a/modules/cloudflare-analytics.yml b/modules/cloudflare-analytics.yml index bd1776905..adbfe3220 100644 --- a/modules/cloudflare-analytics.yml +++ b/modules/cloudflare-analytics.yml @@ -16,5 +16,5 @@ maintainers: github: madebyfabian twitter: madebyfabian compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/content.yml b/modules/content.yml index 864bd28f0..5c99dcead 100644 --- a/modules/content.yml +++ b/modules/content.yml @@ -22,6 +22,6 @@ maintainers: twitter: atinux bluesky: atinux.com compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0-rc.3' requires: {} mcp: https://content.nuxt.com/mcp diff --git a/modules/contentstack.yml b/modules/contentstack.yml index 1d7d0dbdf..f605085bd 100644 --- a/modules/contentstack.yml +++ b/modules/contentstack.yml @@ -4,7 +4,7 @@ repo: timbenniks/nuxt-contentstack npm: nuxt-contentstack icon: contentstack.png github: https://github.com/timbenniks/nuxt-contentstack -website: https://nuxt-contentstack-docs.eu-contentstackapps.com/ +website: https://github.com/timbenniks/nuxt-contentstack learn_more: https://community.contentstack.com/ category: CMS type: 3rd-party @@ -15,6 +15,6 @@ maintainers: avatar: https://avatars.githubusercontent.com/u/121096 bluesky: timbenniks.dev compatibility: - nuxt: ^3.16.0 + nuxt: '>=3.20.1' requires: {} devtools: ^0.0.0 diff --git a/modules/delay-hydration.yml b/modules/delay-hydration.yml index 12f5fdf4f..8186592b3 100644 --- a/modules/delay-hydration.yml +++ b/modules/delay-hydration.yml @@ -13,5 +13,5 @@ maintainers: github: harlan-zw twitter: harlan_zw compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.5.0' requires: {} diff --git a/modules/device.yml b/modules/device.yml index 2dba9f6c3..fb027f560 100644 --- a/modules/device.yml +++ b/modules/device.yml @@ -13,5 +13,5 @@ maintainers: github: dotneet twitter: santa128bit compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.16.0 || >=3.0.0 requires: {} diff --git a/modules/directus.yml b/modules/directus.yml index 1ae6561cc..48938107e 100644 --- a/modules/directus.yml +++ b/modules/directus.yml @@ -22,6 +22,6 @@ maintainers: bluesky: sandros94.com twitter: _sandros94 compatibility: - nuxt: '>=3.0.0' + nuxt: ^2.16.0 || >=3.0.0-rc.9 requires: {} devtools: ^0.0.0 diff --git a/modules/dragon-editor.yml b/modules/dragon-editor.yml index 3fb968c63..0b836ab7b 100644 --- a/modules/dragon-editor.yml +++ b/modules/dragon-editor.yml @@ -12,5 +12,5 @@ maintainers: - name: lovefield github: lovefields compatibility: - nuxt: ^3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/drupal-ce.yml b/modules/drupal-ce.yml index 7d2a7ebd7..6ab0ac276 100644 --- a/modules/drupal-ce.yml +++ b/modules/drupal-ce.yml @@ -21,5 +21,5 @@ maintainers: github: TurtlBbx avatar: https://avatars.githubusercontent.com/u/29594309?v=4 compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.7.0' requires: {} diff --git a/modules/echarts.yml b/modules/echarts.yml index 90d8227a4..0bd4959fb 100644 --- a/modules/echarts.yml +++ b/modules/echarts.yml @@ -13,5 +13,5 @@ maintainers: github: kingyue737 twitter: kingyue737 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.2.0' requires: {} diff --git a/modules/element-plus.yml b/modules/element-plus.yml index 8ce998efd..21f085eec 100644 --- a/modules/element-plus.yml +++ b/modules/element-plus.yml @@ -12,6 +12,6 @@ maintainers: - name: qiang github: tolking compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3' requires: bridge: optional diff --git a/modules/fontaine.yml b/modules/fontaine.yml index 68c1cdddb..2e2900098 100644 --- a/modules/fontaine.yml +++ b/modules/fontaine.yml @@ -14,5 +14,5 @@ maintainers: twitter: danielcroe bluesky: danielroe.dev compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0-rc.6' requires: {} diff --git a/modules/form-actions.yml b/modules/form-actions.yml index d0cee12d8..4b8499d47 100644 --- a/modules/form-actions.yml +++ b/modules/form-actions.yml @@ -13,5 +13,5 @@ maintainers: github: Hebilicious twitter: its_hebilicious compatibility: - nuxt: '>=3.7.0' + nuxt: '>=3' requires: {} diff --git a/modules/formkit.yml b/modules/formkit.yml index 3b6937dd4..b2ccf33d8 100644 --- a/modules/formkit.yml +++ b/modules/formkit.yml @@ -16,5 +16,5 @@ maintainers: github: andrew-boyd twitter: 0xBOYD compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0 <5.0.0' requires: {} diff --git a/modules/google-adsense.yml b/modules/google-adsense.yml index 6cd79a21f..5a04c55a1 100644 --- a/modules/google-adsense.yml +++ b/modules/google-adsense.yml @@ -16,5 +16,5 @@ maintainers: - name: Troy Morehouse github: tmorehouse compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.15.0 || >=3.0.0 requires: {} diff --git a/modules/graphql-client.yml b/modules/graphql-client.yml index c08bac5e5..151205e61 100644 --- a/modules/graphql-client.yml +++ b/modules/graphql-client.yml @@ -15,5 +15,5 @@ maintainers: github: diizzayy twitter: Diizzayy compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.7.0' requires: {} diff --git a/modules/graphql-request.yml b/modules/graphql-request.yml index 7e2b8c0c4..93d4c7535 100644 --- a/modules/graphql-request.yml +++ b/modules/graphql-request.yml @@ -13,5 +13,5 @@ maintainers: github: gomah twitter: Gomah compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/gtag.yml b/modules/gtag.yml index 4290b738b..212b21c43 100644 --- a/modules/gtag.yml +++ b/modules/gtag.yml @@ -14,5 +14,5 @@ maintainers: twitter: jschopplich avatar: https://avatars.githubusercontent.com/johannschopplich?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.7.0' requires: {} diff --git a/modules/html-validator.yml b/modules/html-validator.yml index 34535c50b..9e038b4b8 100644 --- a/modules/html-validator.yml +++ b/modules/html-validator.yml @@ -14,6 +14,6 @@ maintainers: twitter: danielcroe bluesky: danielroe.dev compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.0.0 || >=3.0.0-rc.7 requires: bridge: optional diff --git a/modules/i18n.yml b/modules/i18n.yml index 3537b7665..1cdc49afc 100644 --- a/modules/i18n.yml +++ b/modules/i18n.yml @@ -22,5 +22,5 @@ maintainers: twitter: bobbiegoede bluesky: goede.dev compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0-rc.11' requires: {} diff --git a/modules/image.yml b/modules/image.yml index 2e3ca1210..894d1cffc 100644 --- a/modules/image.yml +++ b/modules/image.yml @@ -28,7 +28,7 @@ maintainers: twitter: atinux bluesky: atinux.com compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.1.0' requires: bridge: optional mcp: https://image.nuxt.com/mcp diff --git a/modules/ionic.yml b/modules/ionic.yml index c2cb3463b..6b068b883 100644 --- a/modules/ionic.yml +++ b/modules/ionic.yml @@ -14,5 +14,5 @@ maintainers: twitter: danielcroe bluesky: danielroe.dev compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0-rc.12' requires: {} diff --git a/modules/izi-toast.yml b/modules/izi-toast.yml index c1ff247ab..e91688b99 100644 --- a/modules/izi-toast.yml +++ b/modules/izi-toast.yml @@ -15,5 +15,5 @@ maintainers: github: stephenjason89 twitter: stephenjason89 compatibility: - nuxt: ^3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/jsonapi.yml b/modules/jsonapi.yml index 968702a21..f1c2b8da8 100644 --- a/modules/jsonapi.yml +++ b/modules/jsonapi.yml @@ -12,5 +12,5 @@ maintainers: - name: Patrick Cate github: patrickcate compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^3.0.0 requires: {} diff --git a/modules/keen-slider.yml b/modules/keen-slider.yml index 336749392..7b1741502 100644 --- a/modules/keen-slider.yml +++ b/modules/keen-slider.yml @@ -12,5 +12,5 @@ maintainers: - name: modbender github: modbender compatibility: - nuxt: ^3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/kql.yml b/modules/kql.yml index 3c743d2d9..0e225f64f 100644 --- a/modules/kql.yml +++ b/modules/kql.yml @@ -14,5 +14,5 @@ maintainers: twitter: jschopplich avatar: https://avatars.githubusercontent.com/johannschopplich?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=4.0.0' requires: {} diff --git a/modules/lettermint.yml b/modules/lettermint.yml index 0b8867459..78ee879b0 100644 --- a/modules/lettermint.yml +++ b/modules/lettermint.yml @@ -14,5 +14,5 @@ maintainers: twitter: lettermintco bluesky: lettermint.co compatibility: - nuxt: ^3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/link-checker.yml b/modules/link-checker.yml index 013fe9fd9..904763feb 100644 --- a/modules/link-checker.yml +++ b/modules/link-checker.yml @@ -14,6 +14,6 @@ maintainers: twitter: harlan_zw avatar: https://avatars.githubusercontent.com/harlan-zw?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.9.0' requires: {} devtools: ^0.0.0 diff --git a/modules/lodash.yml b/modules/lodash.yml index 2f00afea4..b5f719ca2 100644 --- a/modules/lodash.yml +++ b/modules/lodash.yml @@ -12,5 +12,5 @@ maintainers: - name: Michal Čípa github: cipami compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/lucide-icons.yml b/modules/lucide-icons.yml index d9daa8235..7f2630377 100644 --- a/modules/lucide-icons.yml +++ b/modules/lucide-icons.yml @@ -14,5 +14,5 @@ maintainers: - name: Jasper Zonneveld github: JaZo compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.3.0' requires: {} diff --git a/modules/mcp-toolkit.yml b/modules/mcp-toolkit.yml index 3507d750b..3b2b72b56 100644 --- a/modules/mcp-toolkit.yml +++ b/modules/mcp-toolkit.yml @@ -5,7 +5,7 @@ npm: '@nuxtjs/mcp-toolkit' icon: mcp-toolkit.png github: >- https://github.com/nuxt-modules/mcp-toolkit/tree/main/packages/nuxt-mcp-toolkit -website: https://mcp-toolkit.nuxt.dev +website: https://mcp-toolkit.nuxt.dev/getting-started/installation learn_more: '' category: AI type: community diff --git a/modules/mojocss.yml b/modules/mojocss.yml index 8094106f2..64dcdfb9f 100644 --- a/modules/mojocss.yml +++ b/modules/mojocss.yml @@ -12,5 +12,5 @@ maintainers: - name: mojocss github: mojocss compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/nuxt-booster.yml b/modules/nuxt-booster.yml index 380fdd862..cf986eb81 100644 --- a/modules/nuxt-booster.yml +++ b/modules/nuxt-booster.yml @@ -18,6 +18,6 @@ maintainers: github: StephanGerbeth avatar: https://avatars.githubusercontent.com/u/3775511?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.13.1' requires: {} devtools: ^0.0.0 diff --git a/modules/nuxt-chatgpt.yml b/modules/nuxt-chatgpt.yml index 91f177c53..c2724323d 100644 --- a/modules/nuxt-chatgpt.yml +++ b/modules/nuxt-chatgpt.yml @@ -12,5 +12,5 @@ maintainers: - name: Oliver Trajceski github: schnapsterdog compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0 <5.0.0' requires: {} diff --git a/modules/nuxt-facebook-chat.yml b/modules/nuxt-facebook-chat.yml index 5b06ddc64..216eb99e2 100644 --- a/modules/nuxt-facebook-chat.yml +++ b/modules/nuxt-facebook-chat.yml @@ -14,5 +14,5 @@ maintainers: - name: superdev-tech github: superdev-tech compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.6.0 requires: {} diff --git a/modules/nuxt-google-auth.yml b/modules/nuxt-google-auth.yml index c4aef8007..1c1ad4cf5 100644 --- a/modules/nuxt-google-auth.yml +++ b/modules/nuxt-google-auth.yml @@ -14,5 +14,5 @@ maintainers: - name: go-fireball github: go-fireball compatibility: - nuxt: ^3.0.0 + nuxt: ^3.0.0 || ^4.0.0 requires: {} diff --git a/modules/nuxt-gpt.yml b/modules/nuxt-gpt.yml index cb4abd11b..cf6c52d2b 100644 --- a/modules/nuxt-gpt.yml +++ b/modules/nuxt-gpt.yml @@ -12,5 +12,5 @@ maintainers: - name: Lukas Hofstätter github: holux-design compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/nuxt-gql-pulse.yml b/modules/nuxt-gql-pulse.yml index 3fb9a39a3..51ec7f7df 100644 --- a/modules/nuxt-gql-pulse.yml +++ b/modules/nuxt-gql-pulse.yml @@ -14,5 +14,5 @@ maintainers: - name: Abbas Mohamed github: Abbasmoe compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 || ^4.0.0 requires: {} diff --git a/modules/nuxt-graphql-middleware.yml b/modules/nuxt-graphql-middleware.yml index b37e3dd73..ba240c1dd 100644 --- a/modules/nuxt-graphql-middleware.yml +++ b/modules/nuxt-graphql-middleware.yml @@ -17,5 +17,5 @@ maintainers: github: ayalon avatar: https://avatars.githubusercontent.com/ayalon?v=4 compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.13.0' requires: {} diff --git a/modules/nuxt-gtm.yml b/modules/nuxt-gtm.yml index 8f0d0c41e..84ee92b53 100644 --- a/modules/nuxt-gtm.yml +++ b/modules/nuxt-gtm.yml @@ -12,6 +12,6 @@ maintainers: - name: Zadig&Voltaire Team github: zadigetvoltaire compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} devtools: ^0.0.0 diff --git a/modules/nuxt-legacy.yml b/modules/nuxt-legacy.yml index 9ad72c6bf..f166fdd58 100644 --- a/modules/nuxt-legacy.yml +++ b/modules/nuxt-legacy.yml @@ -14,5 +14,5 @@ maintainers: twitter: Teages_L bluesky: teages.xyz compatibility: - nuxt: '>=3.15.0' + nuxt: ^3.0.0 || >=4.0.3 requires: {} diff --git a/modules/nuxt-listmonk.yml b/modules/nuxt-listmonk.yml index f8dcdf0a6..c216c8e74 100644 --- a/modules/nuxt-listmonk.yml +++ b/modules/nuxt-listmonk.yml @@ -14,5 +14,5 @@ maintainers: avatar: https://avatars.githubusercontent.com/roncallyt twitter: t7ndotdev compatibility: - nuxt: '>=3.12.0' + nuxt: '>=3.0.0' requires: {} diff --git a/modules/nuxt-localtunnel.yml b/modules/nuxt-localtunnel.yml index 7ca64343f..7fa1271e3 100644 --- a/modules/nuxt-localtunnel.yml +++ b/modules/nuxt-localtunnel.yml @@ -13,5 +13,5 @@ maintainers: github: craigharman twitter: craig_harman compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/nuxt-monaco-editor.yml b/modules/nuxt-monaco-editor.yml index 370a9dd04..3e55a00dd 100644 --- a/modules/nuxt-monaco-editor.yml +++ b/modules/nuxt-monaco-editor.yml @@ -13,5 +13,5 @@ maintainers: github: e-chan1007 twitter: e_chan1007 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.1.0' requires: {} diff --git a/modules/nuxt-notify.yml b/modules/nuxt-notify.yml index 9e4c753b7..9a0010558 100644 --- a/modules/nuxt-notify.yml +++ b/modules/nuxt-notify.yml @@ -14,5 +14,5 @@ maintainers: - name: Nizam Omer github: nizaamomer compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 || ^4.0.0 requires: {} diff --git a/modules/nuxt-oidc-auth.yml b/modules/nuxt-oidc-auth.yml index 112326081..59335e4de 100644 --- a/modules/nuxt-oidc-auth.yml +++ b/modules/nuxt-oidc-auth.yml @@ -13,5 +13,5 @@ maintainers: github: itpropro twitter: jandamaschke compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.9.0' requires: {} diff --git a/modules/nuxt-ollama.yml b/modules/nuxt-ollama.yml index 4d6971720..0f2e96a06 100644 --- a/modules/nuxt-ollama.yml +++ b/modules/nuxt-ollama.yml @@ -16,5 +16,5 @@ maintainers: avatar: https://avatars.githubusercontent.com/thoda-dev twitter: thoda_dev compatibility: - nuxt: '>=3.15.0' + nuxt: '>=3.0.0' requires: {} diff --git a/modules/nuxt-open-fetch.yml b/modules/nuxt-open-fetch.yml index 839590a10..bd097e247 100644 --- a/modules/nuxt-open-fetch.yml +++ b/modules/nuxt-open-fetch.yml @@ -16,5 +16,5 @@ maintainers: github: enkot avatar: https://avatars.githubusercontent.com/u/10506522?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0 <5.0.0-alpha.0' requires: {} diff --git a/modules/nuxt-openid-connect.yml b/modules/nuxt-openid-connect.yml index 28cdd833e..3dba9babe 100644 --- a/modules/nuxt-openid-connect.yml +++ b/modules/nuxt-openid-connect.yml @@ -15,6 +15,6 @@ maintainers: - name: Khaled Almana github: KhaledAlMana compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0-rc.8' requires: {} devtools: ^0.0.0 diff --git a/modules/nuxt-plotly.yml b/modules/nuxt-plotly.yml index 4ea8716b4..64e30c41a 100644 --- a/modules/nuxt-plotly.yml +++ b/modules/nuxt-plotly.yml @@ -14,5 +14,5 @@ maintainers: - name: superdev-tech github: superdev-tech compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.6.0 requires: {} diff --git a/modules/nuxt-processor.yml b/modules/nuxt-processor.yml index 2018a3b6f..5bdcfe270 100644 --- a/modules/nuxt-processor.yml +++ b/modules/nuxt-processor.yml @@ -12,5 +12,5 @@ maintainers: - name: Aidan Hibbard github: aidanhibbard compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 || ^4.0.0 requires: {} diff --git a/modules/nuxt-strapi-blocks-renderer.yml b/modules/nuxt-strapi-blocks-renderer.yml index deb421484..96b819597 100644 --- a/modules/nuxt-strapi-blocks-renderer.yml +++ b/modules/nuxt-strapi-blocks-renderer.yml @@ -12,5 +12,5 @@ maintainers: - name: Frederik Bußmann github: freb97 compatibility: - nuxt: ^3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/nuxt-svg-sprite-icon.yml b/modules/nuxt-svg-sprite-icon.yml index f95f592e7..a81c5f6c7 100644 --- a/modules/nuxt-svg-sprite-icon.yml +++ b/modules/nuxt-svg-sprite-icon.yml @@ -16,5 +16,5 @@ maintainers: github: MikeCheng1208 twitter: mike_cheng1208 compatibility: - nuxt: '>=3.17.0' + nuxt: ^3.0.0 || ^4.0.0 requires: {} diff --git a/modules/nuxt-svgo.yml b/modules/nuxt-svgo.yml index 0b3fc10e7..79922f49e 100644 --- a/modules/nuxt-svgo.yml +++ b/modules/nuxt-svgo.yml @@ -12,5 +12,5 @@ maintainers: - name: Corey Psoinos github: cpsoinos compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0-rc.0' requires: {} diff --git a/modules/nuxt-useless-blobs.yml b/modules/nuxt-useless-blobs.yml index 152941340..a6c90bc67 100644 --- a/modules/nuxt-useless-blobs.yml +++ b/modules/nuxt-useless-blobs.yml @@ -12,5 +12,5 @@ maintainers: - name: Oyedeji Oyewole github: oyedejioyewole compatibility: - nuxt: ^3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/nuxt-uswds.yml b/modules/nuxt-uswds.yml index 7fa7d7033..e55a536f8 100644 --- a/modules/nuxt-uswds.yml +++ b/modules/nuxt-uswds.yml @@ -12,5 +12,5 @@ maintainers: - name: Patrick Cate github: patrickcate compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/nuxt-vue3-google-signin.yml b/modules/nuxt-vue3-google-signin.yml index e1b05d876..ebb9e790d 100644 --- a/modules/nuxt-vue3-google-signin.yml +++ b/modules/nuxt-vue3-google-signin.yml @@ -13,5 +13,5 @@ maintainers: github: kasvith twitter: kasvith compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0 <5.0.0' requires: {} diff --git a/modules/og-image.yml b/modules/og-image.yml index b8c6ac866..d23dacd72 100644 --- a/modules/og-image.yml +++ b/modules/og-image.yml @@ -14,6 +14,6 @@ maintainers: twitter: harlan_zw avatar: https://avatars.githubusercontent.com/harlan-zw?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.10.3' requires: {} devtools: ^0.0.0 diff --git a/modules/particles.yml b/modules/particles.yml index 2286cbfef..2f18598f3 100644 --- a/modules/particles.yml +++ b/modules/particles.yml @@ -13,5 +13,5 @@ maintainers: github: Joepocalyptic avatar: https://avatars.githubusercontent.com/Joepocalyptic?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.7.0 requires: {} diff --git a/modules/pdfeasy.yml b/modules/pdfeasy.yml index b8f470100..8d38ca2e5 100644 --- a/modules/pdfeasy.yml +++ b/modules/pdfeasy.yml @@ -14,5 +14,5 @@ maintainers: twitter: novoutttttt avatar: https://avatars.githubusercontent.com/novout?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/pglite.yml b/modules/pglite.yml index a9bf77a6a..5451b24e2 100644 --- a/modules/pglite.yml +++ b/modules/pglite.yml @@ -15,5 +15,5 @@ maintainers: bluesky: sandros94.com twitter: _sandros94 compatibility: - nuxt: '>=3.14.0' + nuxt: '>=3.15.0' requires: {} diff --git a/modules/pinia-colada.yml b/modules/pinia-colada.yml index 021552d16..a0eb63014 100644 --- a/modules/pinia-colada.yml +++ b/modules/pinia-colada.yml @@ -14,5 +14,5 @@ maintainers: twitter: posva bluesky: esm.dev compatibility: - nuxt: ^3.13.0 || ^4.0.0 + nuxt: ^3.17.7 || ^4.0.0 requires: {} diff --git a/modules/pinia.yml b/modules/pinia.yml index 6b076234e..7acd01c56 100644 --- a/modules/pinia.yml +++ b/modules/pinia.yml @@ -14,6 +14,6 @@ maintainers: twitter: posva bluesky: esm.dev compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^3.15.0 || ^4.0.0 requires: bridge: optional diff --git a/modules/plausible.yml b/modules/plausible.yml index c751cc551..ac0c37550 100644 --- a/modules/plausible.yml +++ b/modules/plausible.yml @@ -13,5 +13,5 @@ maintainers: github: johannschopplich twitter: jschopplich compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/precognition.yml b/modules/precognition.yml index 33bc7fe0a..3ce7589a5 100644 --- a/modules/precognition.yml +++ b/modules/precognition.yml @@ -12,5 +12,5 @@ maintainers: - name: sot1986 github: sot1986 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.9.0' requires: {} diff --git a/modules/prismic.yml b/modules/prismic.yml index 89bd3d5f4..4e96ad3db 100644 --- a/modules/prismic.yml +++ b/modules/prismic.yml @@ -14,5 +14,5 @@ maintainers: twitter: li_hbr bluesky: lihbr.com compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.7.0' requires: {} diff --git a/modules/prometheus.yml b/modules/prometheus.yml index 02958dfc4..ec57e5479 100644 --- a/modules/prometheus.yml +++ b/modules/prometheus.yml @@ -14,5 +14,5 @@ maintainers: - name: Aleksandr Kriuchkov github: artmizu compatibility: - nuxt: '>=3.0.0' + nuxt: ^2.16.0 || >=3.0.0 requires: {} diff --git a/modules/purgecss.yml b/modules/purgecss.yml index 79ded783d..8e4449251 100644 --- a/modules/purgecss.yml +++ b/modules/purgecss.yml @@ -12,5 +12,5 @@ maintainers: - name: Developmint github: Developmint compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^3.0.0-rc.11 requires: {} diff --git a/modules/qrcode.yml b/modules/qrcode.yml index a3e5b61e4..16d8fd976 100644 --- a/modules/qrcode.yml +++ b/modules/qrcode.yml @@ -15,5 +15,5 @@ maintainers: bluesky: sandros94.com twitter: _sandros94 compatibility: - nuxt: '>=3.10.0' + nuxt: '>=3.0.0' requires: {} diff --git a/modules/radash.yml b/modules/radash.yml index 1a9c0eeb0..fc3730734 100644 --- a/modules/radash.yml +++ b/modules/radash.yml @@ -12,5 +12,5 @@ maintainers: - name: Batuhan Göksu github: bbg compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/robots.yml b/modules/robots.yml index fd9a7dbe9..3a23021ff 100644 --- a/modules/robots.yml +++ b/modules/robots.yml @@ -17,6 +17,6 @@ maintainers: twitter: harlan_zw avatar: https://avatars.githubusercontent.com/harlan-zw?v=4 compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.6.1' requires: bridge: optional diff --git a/modules/rollbar.yml b/modules/rollbar.yml index c4863eda0..276434303 100644 --- a/modules/rollbar.yml +++ b/modules/rollbar.yml @@ -12,5 +12,5 @@ maintainers: - name: Jairo Blatt github: jairoblatt compatibility: - nuxt: '>=3.0.0' + nuxt: ^3 requires: {} diff --git a/modules/sanity.yml b/modules/sanity.yml index 292a8c2f2..d72bf7866 100644 --- a/modules/sanity.yml +++ b/modules/sanity.yml @@ -14,6 +14,6 @@ maintainers: twitter: danielcroe bluesky: danielroe.dev compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.7.0' requires: bridge: optional diff --git a/modules/schema-org.yml b/modules/schema-org.yml index b57af316b..abfb48977 100644 --- a/modules/schema-org.yml +++ b/modules/schema-org.yml @@ -14,5 +14,5 @@ maintainers: twitter: harlan_zw avatar: https://avatars.githubusercontent.com/harlan-zw?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0-rc.8' requires: {} diff --git a/modules/scripts.yml b/modules/scripts.yml index cd63145a6..21b90e387 100644 --- a/modules/scripts.yml +++ b/modules/scripts.yml @@ -13,5 +13,5 @@ maintainers: github: harlan-zw twitter: harlan_zw compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.16' requires: {} diff --git a/modules/seo-experiments.yml b/modules/seo-experiments.yml index 5d8271526..6d6f5427f 100644 --- a/modules/seo-experiments.yml +++ b/modules/seo-experiments.yml @@ -14,5 +14,5 @@ maintainers: twitter: harlan_zw avatar: https://avatars.githubusercontent.com/harlan-zw?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: <3.16.0 || >=3.6.1 requires: {} diff --git a/modules/seo.yml b/modules/seo.yml index e4ac351f6..fe78d5dbe 100644 --- a/modules/seo.yml +++ b/modules/seo.yml @@ -13,6 +13,6 @@ maintainers: github: harlan-zw twitter: harlan_zw compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.7.0' requires: {} mcp: https://nuxtseo.com/mcp diff --git a/modules/sitemap.yml b/modules/sitemap.yml index f403a0af0..0d42dd5e8 100644 --- a/modules/sitemap.yml +++ b/modules/sitemap.yml @@ -18,5 +18,5 @@ maintainers: twitter: NicoPennec bluesky: nicopennec.bsky.social compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.9.0' requires: {} diff --git a/modules/snipcart.yml b/modules/snipcart.yml index 75826e708..a7f81f552 100644 --- a/modules/snipcart.yml +++ b/modules/snipcart.yml @@ -13,5 +13,5 @@ maintainers: github: flozero twitter: flozeroo compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^3.0.0 requires: {} diff --git a/modules/storybook.yml b/modules/storybook.yml index 1bf208e81..e4ffa7d99 100644 --- a/modules/storybook.yml +++ b/modules/storybook.yml @@ -18,7 +18,7 @@ maintainers: github: tobiasdiez twitter: tobias_diez compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: bridge: optional devtools: ^0.7.2 diff --git a/modules/strapi.yml b/modules/strapi.yml index bf0475c72..62e132742 100644 --- a/modules/strapi.yml +++ b/modules/strapi.yml @@ -18,7 +18,7 @@ maintainers: twitter: atinux bluesky: atinux.com compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.7.0' requires: bridge: true devtools: ^0.0.0 diff --git a/modules/supabase.yml b/modules/supabase.yml index 43494d8b7..c9362fc49 100644 --- a/modules/supabase.yml +++ b/modules/supabase.yml @@ -20,5 +20,5 @@ maintainers: github: scottrobertson twitter: scottymeuk compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/svg-sprite.yml b/modules/svg-sprite.yml index 8341bb53a..d42a77f12 100644 --- a/modules/svg-sprite.yml +++ b/modules/svg-sprite.yml @@ -14,5 +14,5 @@ maintainers: twitter: a_birang bluesky: farnabaz.dev compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/tailwindcss.yml b/modules/tailwindcss.yml index 560a880b9..feabd1f78 100644 --- a/modules/tailwindcss.yml +++ b/modules/tailwindcss.yml @@ -18,7 +18,7 @@ maintainers: - name: Inesh Bose github: ineshbose compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.9.0 || >=3.0.0-rc.1 requires: {} devtools: ^0.0.0 aliases: diff --git a/modules/time.yml b/modules/time.yml index f971fdfdc..27a175b7b 100644 --- a/modules/time.yml +++ b/modules/time.yml @@ -14,5 +14,5 @@ maintainers: twitter: danielcroe bluesky: danielroe.dev compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.12.0' requires: {} diff --git a/modules/tresjs.yml b/modules/tresjs.yml index c23ff8e6a..38910a575 100644 --- a/modules/tresjs.yml +++ b/modules/tresjs.yml @@ -20,5 +20,5 @@ maintainers: github: Tinoooo twitter: ichbintino compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.16.0' requires: {} diff --git a/modules/turnstile.yml b/modules/turnstile.yml index 6d2d3f412..076481c16 100644 --- a/modules/turnstile.yml +++ b/modules/turnstile.yml @@ -14,6 +14,6 @@ maintainers: twitter: danielcroe bluesky: danielroe.dev compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: bridge: true diff --git a/modules/typed-router.yml b/modules/typed-router.yml index 2fb2306dc..2c147c4f3 100644 --- a/modules/typed-router.yml +++ b/modules/typed-router.yml @@ -14,5 +14,5 @@ maintainers: twitter: desnoth_dev bluesky: vicflix.dev compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: '>=3.0.0' requires: {} diff --git a/modules/ui.yml b/modules/ui.yml index 8ff92be4d..845adc3bd 100644 --- a/modules/ui.yml +++ b/modules/ui.yml @@ -4,7 +4,7 @@ repo: nuxt/ui#dev npm: '@nuxt/ui' icon: nuxt.svg github: https://github.com/nuxt/ui -website: https://ui.nuxt.com +website: https://ui.nuxt.com/docs/getting-started/installation/nuxt learn_more: '' category: UI type: official @@ -18,6 +18,6 @@ maintainers: twitter: atinux bluesky: atinux.com compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.10.0' requires: {} mcp: https://ui.nuxt.com/mcp diff --git a/modules/unlazy.yml b/modules/unlazy.yml index e12811c55..ce2577cd0 100644 --- a/modules/unlazy.yml +++ b/modules/unlazy.yml @@ -13,5 +13,5 @@ maintainers: github: johannschopplich twitter: jschopplich compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.5.0' requires: {} diff --git a/modules/use-bootstrap.yml b/modules/use-bootstrap.yml index 5bf9c1233..1d7e48c83 100644 --- a/modules/use-bootstrap.yml +++ b/modules/use-bootstrap.yml @@ -12,5 +12,5 @@ maintainers: - name: KoujiSan github: KoujiSano compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.17.1' requires: {} diff --git a/modules/vant.yml b/modules/vant.yml index c1cb0f651..bb8d23aba 100644 --- a/modules/vant.yml +++ b/modules/vant.yml @@ -12,6 +12,6 @@ maintainers: - name: qiang github: tolking compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3' requires: bridge: optional diff --git a/modules/vaxee.yml b/modules/vaxee.yml index f9175b056..c6a744eaa 100644 --- a/modules/vaxee.yml +++ b/modules/vaxee.yml @@ -13,5 +13,5 @@ maintainers: github: letstri twitter: letstri compatibility: - nuxt: ^3.0.0 + nuxt: '>=3.5.0' requires: {} diff --git a/modules/vcalendar.yml b/modules/vcalendar.yml index 9137efe23..7bdd0b70f 100644 --- a/modules/vcalendar.yml +++ b/modules/vcalendar.yml @@ -12,5 +12,5 @@ maintainers: - name: Sam K github: samk-dev compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/vite-pwa-nuxt.yml b/modules/vite-pwa-nuxt.yml index a384660b8..1ee8617bb 100644 --- a/modules/vite-pwa-nuxt.yml +++ b/modules/vite-pwa-nuxt.yml @@ -18,5 +18,5 @@ maintainers: twitter: antfu7 bluesky: antfu.me compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.6.5' requires: {} diff --git a/modules/vue-email.yml b/modules/vue-email.yml index ae2a9dfc7..5fc2a05f2 100644 --- a/modules/vue-email.yml +++ b/modules/vue-email.yml @@ -18,6 +18,6 @@ maintainers: twitter: imflowko avatar: https://avatars.githubusercontent.com/u/35883748?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} devtools: ^0.0.0 diff --git a/modules/vue-query.yml b/modules/vue-query.yml index 9fdf714a1..94d365e4f 100644 --- a/modules/vue-query.yml +++ b/modules/vue-query.yml @@ -13,5 +13,5 @@ maintainers: github: Hebilicious twitter: its_hebilicious compatibility: - nuxt: '>=3.0.0' + nuxt: ^3 requires: {} diff --git a/modules/vuefire.yml b/modules/vuefire.yml index 2010b806b..5fca68b30 100644 --- a/modules/vuefire.yml +++ b/modules/vuefire.yml @@ -14,5 +14,5 @@ maintainers: twitter: posva bluesky: esm.dev compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.1.0' requires: {} diff --git a/modules/vuestic.yml b/modules/vuestic.yml index fe643d3ed..5d4523574 100644 --- a/modules/vuestic.yml +++ b/modules/vuestic.yml @@ -12,5 +12,5 @@ maintainers: - name: epicmaxco github: epicmaxco compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.3.0' requires: {} diff --git a/modules/vuetify-nuxt-module.yml b/modules/vuetify-nuxt-module.yml index 834967d6a..2a8d0dc8d 100644 --- a/modules/vuetify-nuxt-module.yml +++ b/modules/vuetify-nuxt-module.yml @@ -13,5 +13,5 @@ maintainers: github: userquin bluesky: userquin.bsky.social compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.15.0' requires: {} diff --git a/modules/vunix.yml b/modules/vunix.yml index 5fde1b967..789b9fcd5 100644 --- a/modules/vunix.yml +++ b/modules/vunix.yml @@ -17,5 +17,5 @@ maintainers: github: gaetansenn avatar: https://avatars.githubusercontent.com/u/2774075?v=4 compatibility: - nuxt: '>=3.0.0' + nuxt: '>=3.0.0-rc.11' requires: {} diff --git a/modules/web-vitals.yml b/modules/web-vitals.yml index 7fa0a22e8..d4952df33 100644 --- a/modules/web-vitals.yml +++ b/modules/web-vitals.yml @@ -21,6 +21,6 @@ maintainers: twitter: atinux bluesky: atinux.com compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.15.0 || ^3.0.0 requires: bridge: optional diff --git a/modules/well-known.yml b/modules/well-known.yml index bee53d1fd..e5ab8c66b 100644 --- a/modules/well-known.yml +++ b/modules/well-known.yml @@ -12,5 +12,5 @@ maintainers: - name: Zadig&Voltaire Team github: https://github.com/zadigetvoltaire compatibility: - nuxt: '>=3.0.0' + nuxt: ^3.0.0 requires: {} diff --git a/modules/xstate.yml b/modules/xstate.yml index ca1cecd27..d1fa848a3 100644 --- a/modules/xstate.yml +++ b/modules/xstate.yml @@ -13,6 +13,6 @@ maintainers: github: Lexpeartha twitter: lexpeartha compatibility: - nuxt: ^2.0.0 || >=3.0.0 + nuxt: ^2.16.0 || ^3.0.0 requires: bridge: true diff --git a/package.json b/package.json index 66d6c4402..64da27972 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,9 @@ "@octokit/rest": "^21.1.0", "@types/js-yaml": "^4.0.9", "@types/node": "^18.19.70", + "@types/semver": "^7.7.1", "defu": "^6.1.4", + "dotenv": "^16.4.7", "eslint": "^9.18.0", "globby": "^14.0.2", "hasha": "^6.0.0", @@ -35,11 +37,9 @@ "js-yaml": "^4.1.0", "ofetch": "^1.4.1", "p-limit": "^6.2.0", + "semver": "^7.7.3", "std-env": "^3.8.0", "typescript": "^5.7.3" }, - "packageManager": "pnpm@10.23.0", - "dependencies": { - "dotenv": "^16.4.7" - } + "packageManager": "pnpm@10.23.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e33c8fc2..f7a58c4ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,10 +7,6 @@ settings: importers: .: - dependencies: - dotenv: - specifier: ^16.4.7 - version: 16.6.1 devDependencies: '@npm/types': specifier: ^2.1.0 @@ -27,9 +23,15 @@ importers: '@types/node': specifier: ^18.19.70 version: 18.19.127 + '@types/semver': + specifier: ^7.7.1 + version: 7.7.1 defu: specifier: ^6.1.4 version: 6.1.4 + dotenv: + specifier: ^16.4.7 + version: 16.6.1 eslint: specifier: ^9.18.0 version: 9.36.0(jiti@2.6.0) @@ -51,6 +53,9 @@ importers: p-limit: specifier: ^6.2.0 version: 6.2.0 + semver: + specifier: ^7.7.3 + version: 7.7.3 std-env: specifier: ^3.8.0 version: 3.9.0 @@ -304,6 +309,9 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + '@typescript-eslint/eslint-plugin@8.44.1': resolution: {integrity: sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1172,8 +1180,8 @@ packages: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true @@ -1628,6 +1636,8 @@ snapshots: '@types/normalize-package-data@2.4.4': {} + '@types/semver@7.7.1': {} + '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -1699,7 +1709,7 @@ snapshots: fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.7.3 ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: @@ -1962,7 +1972,7 @@ snapshots: eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.0.3 - semver: 7.7.2 + semver: 7.7.3 stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: @@ -1981,7 +1991,7 @@ snapshots: espree: 10.4.0 esquery: 1.6.0 parse-imports-exports: 0.2.4 - semver: 7.7.2 + semver: 7.7.3 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color @@ -2014,7 +2024,7 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.7.2 + semver: 7.7.3 strip-indent: 3.0.0 eslint-plugin-vue@9.33.0(eslint@9.36.0(jiti@2.6.0)): @@ -2025,7 +2035,7 @@ snapshots: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 - semver: 7.7.2 + semver: 7.7.3 vue-eslint-parser: 9.4.3(eslint@9.36.0(jiti@2.6.0)) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -2513,7 +2523,7 @@ snapshots: semver@5.7.2: {} - semver@7.7.2: {} + semver@7.7.3: {} shebang-command@2.0.0: dependencies: @@ -2647,7 +2657,7 @@ snapshots: espree: 9.6.1 esquery: 1.6.0 lodash: 4.17.21 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color