UNPKG

nuxi

Version:
647 lines (646 loc) 24.4 kB
import { t as __commonJSMin } from "./chunk-Vs_PY4HZ.mjs"; import { a as resolveModulePath, n as tryResolveNuxt } from "./kit-Bx45zdA5.mjs"; import { r as readPackageJSON } from "./dist-BPzTdxaO.mjs"; import { a as require_lte, c as require_eq, d as require_compare, f as require_semver$1, h as require_constants, i as require_cmp, l as require_lt, m as require_re, n as require_comparator, o as require_gte, p as require_identifiers, r as require_range, s as require_neq, t as require_satisfies, u as require_gt } from "./satisfies-DkYFy708.mjs"; import { readFileSync } from "node:fs"; //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/parse.js var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const parse = (version, options, throwErrors = false) => { if (version instanceof SemVer) return version; try { return new SemVer(version, options); } catch (er) { if (!throwErrors) return null; throw er; } }; module.exports = parse; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/valid.js var require_valid$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { const parse = require_parse(); const valid = (version, options) => { const v = parse(version, options); return v ? v.version : null; }; module.exports = valid; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/clean.js var require_clean = /* @__PURE__ */ __commonJSMin(((exports, module) => { const parse = require_parse(); const clean = (version, options) => { const s = parse(version.trim().replace(/^[=v]+/, ""), options); return s ? s.version : null; }; module.exports = clean; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/inc.js var require_inc = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const inc = (version, release, options, identifier, identifierBase) => { if (typeof options === "string") { identifierBase = identifier; identifier = options; options = void 0; } try { return new SemVer(version instanceof SemVer ? version.version : version, options).inc(release, identifier, identifierBase).version; } catch (er) { return null; } }; module.exports = inc; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/diff.js var require_diff = /* @__PURE__ */ __commonJSMin(((exports, module) => { const parse = require_parse(); const diff = (version1, version2) => { const v1 = parse(version1, null, true); const v2 = parse(version2, null, true); const comparison = v1.compare(v2); if (comparison === 0) return null; const v1Higher = comparison > 0; const highVersion = v1Higher ? v1 : v2; const lowVersion = v1Higher ? v2 : v1; const highHasPre = !!highVersion.prerelease.length; if (!!lowVersion.prerelease.length && !highHasPre) { if (!lowVersion.patch && !lowVersion.minor) return "major"; if (lowVersion.compareMain(highVersion) === 0) { if (lowVersion.minor && !lowVersion.patch) return "minor"; return "patch"; } } const prefix = highHasPre ? "pre" : ""; if (v1.major !== v2.major) return prefix + "major"; if (v1.minor !== v2.minor) return prefix + "minor"; if (v1.patch !== v2.patch) return prefix + "patch"; return "prerelease"; }; module.exports = diff; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/major.js var require_major = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const major = (a, loose) => new SemVer(a, loose).major; module.exports = major; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/minor.js var require_minor = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const minor = (a, loose) => new SemVer(a, loose).minor; module.exports = minor; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/patch.js var require_patch = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const patch = (a, loose) => new SemVer(a, loose).patch; module.exports = patch; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/prerelease.js var require_prerelease = /* @__PURE__ */ __commonJSMin(((exports, module) => { const parse = require_parse(); const prerelease = (version, options) => { const parsed = parse(version, options); return parsed && parsed.prerelease.length ? parsed.prerelease : null; }; module.exports = prerelease; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/rcompare.js var require_rcompare = /* @__PURE__ */ __commonJSMin(((exports, module) => { const compare = require_compare(); const rcompare = (a, b, loose) => compare(b, a, loose); module.exports = rcompare; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/compare-loose.js var require_compare_loose = /* @__PURE__ */ __commonJSMin(((exports, module) => { const compare = require_compare(); const compareLoose = (a, b) => compare(a, b, true); module.exports = compareLoose; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/compare-build.js var require_compare_build = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const compareBuild = (a, b, loose) => { const versionA = new SemVer(a, loose); const versionB = new SemVer(b, loose); return versionA.compare(versionB) || versionA.compareBuild(versionB); }; module.exports = compareBuild; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/sort.js var require_sort = /* @__PURE__ */ __commonJSMin(((exports, module) => { const compareBuild = require_compare_build(); const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); module.exports = sort; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/rsort.js var require_rsort = /* @__PURE__ */ __commonJSMin(((exports, module) => { const compareBuild = require_compare_build(); const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); module.exports = rsort; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/coerce.js var require_coerce = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const parse = require_parse(); const { safeRe: re, t } = require_re(); const coerce = (version, options) => { if (version instanceof SemVer) return version; if (typeof version === "number") version = String(version); if (typeof version !== "string") return null; options = options || {}; let match = null; if (!options.rtl) match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]); else { const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]; let next; while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length)) { if (!match || next.index + next[0].length !== match.index + match[0].length) match = next; coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; } coerceRtlRegex.lastIndex = -1; } if (match === null) return null; const major = match[2]; return parse(`${major}.${match[3] || "0"}.${match[4] || "0"}${options.includePrerelease && match[5] ? `-${match[5]}` : ""}${options.includePrerelease && match[6] ? `+${match[6]}` : ""}`, options); }; module.exports = coerce; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/functions/truncate.js var require_truncate = /* @__PURE__ */ __commonJSMin(((exports, module) => { const parse = require_parse(); const constants = require_constants(); const SemVer = require_semver$1(); const truncate = (version, truncation, options) => { if (!constants.RELEASE_TYPES.includes(truncation)) return null; const clonedVersion = cloneInputVersion(version, options); return clonedVersion && doTruncation(clonedVersion, truncation); }; const cloneInputVersion = (version, options) => { return parse(version instanceof SemVer ? version.version : version, options); }; const doTruncation = (version, truncation) => { if (isPrerelease(truncation)) return version.version; version.prerelease = []; switch (truncation) { case "major": version.minor = 0; version.patch = 0; break; case "minor": version.patch = 0; break; } return version.format(); }; const isPrerelease = (type) => { return type.startsWith("pre"); }; module.exports = truncate; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/to-comparators.js var require_to_comparators = /* @__PURE__ */ __commonJSMin(((exports, module) => { const Range = require_range(); const toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")); module.exports = toComparators; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/max-satisfying.js var require_max_satisfying = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const Range = require_range(); const maxSatisfying = (versions, range, options) => { let max = null; let maxSV = null; let rangeObj = null; try { rangeObj = new Range(range, options); } catch (er) { return null; } versions.forEach((v) => { if (rangeObj.test(v)) { if (!max || maxSV.compare(v) === -1) { max = v; maxSV = new SemVer(max, options); } } }); return max; }; module.exports = maxSatisfying; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/min-satisfying.js var require_min_satisfying = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const Range = require_range(); const minSatisfying = (versions, range, options) => { let min = null; let minSV = null; let rangeObj = null; try { rangeObj = new Range(range, options); } catch (er) { return null; } versions.forEach((v) => { if (rangeObj.test(v)) { if (!min || minSV.compare(v) === 1) { min = v; minSV = new SemVer(min, options); } } }); return min; }; module.exports = minSatisfying; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/min-version.js var require_min_version = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const Range = require_range(); const gt = require_gt(); const minVersion = (range, loose) => { range = new Range(range, loose); let minver = new SemVer("0.0.0"); if (range.test(minver)) return minver; minver = new SemVer("0.0.0-0"); if (range.test(minver)) return minver; minver = null; for (let i = 0; i < range.set.length; ++i) { const comparators = range.set[i]; let setMin = null; comparators.forEach((comparator) => { const compver = new SemVer(comparator.semver.version); switch (comparator.operator) { case ">": if (compver.prerelease.length === 0) compver.patch++; else compver.prerelease.push(0); compver.raw = compver.format(); case "": case ">=": if (!setMin || gt(compver, setMin)) setMin = compver; break; case "<": case "<=": break; /* istanbul ignore next */ default: throw new Error(`Unexpected operation: ${comparator.operator}`); } }); if (setMin && (!minver || gt(minver, setMin))) minver = setMin; } if (minver && range.test(minver)) return minver; return null; }; module.exports = minVersion; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/valid.js var require_valid = /* @__PURE__ */ __commonJSMin(((exports, module) => { const Range = require_range(); const validRange = (range, options) => { try { return new Range(range, options).range || "*"; } catch (er) { return null; } }; module.exports = validRange; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/outside.js var require_outside = /* @__PURE__ */ __commonJSMin(((exports, module) => { const SemVer = require_semver$1(); const Comparator = require_comparator(); const { ANY } = Comparator; const Range = require_range(); const satisfies = require_satisfies(); const gt = require_gt(); const lt = require_lt(); const lte = require_lte(); const gte = require_gte(); const outside = (version, range, hilo, options) => { version = new SemVer(version, options); range = new Range(range, options); let gtfn, ltefn, ltfn, comp, ecomp; switch (hilo) { case ">": gtfn = gt; ltefn = lte; ltfn = lt; comp = ">"; ecomp = ">="; break; case "<": gtfn = lt; ltefn = gte; ltfn = gt; comp = "<"; ecomp = "<="; break; default: throw new TypeError("Must provide a hilo val of \"<\" or \">\""); } if (satisfies(version, range, options)) return false; for (let i = 0; i < range.set.length; ++i) { const comparators = range.set[i]; let high = null; let low = null; comparators.forEach((comparator) => { if (comparator.semver === ANY) comparator = new Comparator(">=0.0.0"); high = high || comparator; low = low || comparator; if (gtfn(comparator.semver, high.semver, options)) high = comparator; else if (ltfn(comparator.semver, low.semver, options)) low = comparator; }); if (high.operator === comp || high.operator === ecomp) return false; if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false; else if (low.operator === ecomp && ltfn(version, low.semver)) return false; } return true; }; module.exports = outside; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/gtr.js var require_gtr = /* @__PURE__ */ __commonJSMin(((exports, module) => { const outside = require_outside(); const gtr = (version, range, options) => outside(version, range, ">", options); module.exports = gtr; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/ltr.js var require_ltr = /* @__PURE__ */ __commonJSMin(((exports, module) => { const outside = require_outside(); const ltr = (version, range, options) => outside(version, range, "<", options); module.exports = ltr; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/intersects.js var require_intersects = /* @__PURE__ */ __commonJSMin(((exports, module) => { const Range = require_range(); const intersects = (r1, r2, options) => { r1 = new Range(r1, options); r2 = new Range(r2, options); return r1.intersects(r2, options); }; module.exports = intersects; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/simplify.js var require_simplify = /* @__PURE__ */ __commonJSMin(((exports, module) => { const satisfies = require_satisfies(); const compare = require_compare(); module.exports = (versions, range, options) => { const set = []; let first = null; let prev = null; const v = versions.sort((a, b) => compare(a, b, options)); for (const version of v) if (satisfies(version, range, options)) { prev = version; if (!first) first = version; } else { if (prev) set.push([first, prev]); prev = null; first = null; } if (first) set.push([first, null]); const ranges = []; for (const [min, max] of set) if (min === max) ranges.push(min); else if (!max && min === v[0]) ranges.push("*"); else if (!max) ranges.push(`>=${min}`); else if (min === v[0]) ranges.push(`<=${max}`); else ranges.push(`${min} - ${max}`); const simplified = ranges.join(" || "); const original = typeof range.raw === "string" ? range.raw : String(range); return simplified.length < original.length ? simplified : range; }; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/ranges/subset.js var require_subset = /* @__PURE__ */ __commonJSMin(((exports, module) => { const Range = require_range(); const Comparator = require_comparator(); const { ANY } = Comparator; const satisfies = require_satisfies(); const compare = require_compare(); const subset = (sub, dom, options = {}) => { if (sub === dom) return true; sub = new Range(sub, options); dom = new Range(dom, options); let sawNonNull = false; OUTER: for (const simpleSub of sub.set) { for (const simpleDom of dom.set) { const isSub = simpleSubset(simpleSub, simpleDom, options); sawNonNull = sawNonNull || isSub !== null; if (isSub) continue OUTER; } if (sawNonNull) return false; } return true; }; const minimumVersionWithPreRelease = [new Comparator(">=0.0.0-0")]; const minimumVersion = [new Comparator(">=0.0.0")]; const simpleSubset = (sub, dom, options) => { if (sub === dom) return true; if (sub.length === 1 && sub[0].semver === ANY) if (dom.length === 1 && dom[0].semver === ANY) return true; else if (options.includePrerelease) sub = minimumVersionWithPreRelease; else sub = minimumVersion; if (dom.length === 1 && dom[0].semver === ANY) if (options.includePrerelease) return true; else dom = minimumVersion; const eqSet = /* @__PURE__ */ new Set(); let gt, lt; for (const c of sub) if (c.operator === ">" || c.operator === ">=") gt = higherGT(gt, c, options); else if (c.operator === "<" || c.operator === "<=") lt = lowerLT(lt, c, options); else eqSet.add(c.semver); if (eqSet.size > 1) return null; let gtltComp; if (gt && lt) { gtltComp = compare(gt.semver, lt.semver, options); if (gtltComp > 0) return null; else if (gtltComp === 0 && (gt.operator !== ">=" || lt.operator !== "<=")) return null; } for (const eq of eqSet) { if (gt && !satisfies(eq, String(gt), options)) return null; if (lt && !satisfies(eq, String(lt), options)) return null; for (const c of dom) if (!satisfies(eq, String(c), options)) return false; return true; } let higher, lower; let hasDomLT, hasDomGT; let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) needDomLTPre = false; for (const c of dom) { hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">="; hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<="; if (gt) { if (needDomGTPre) { if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) needDomGTPre = false; } if (c.operator === ">" || c.operator === ">=") { higher = higherGT(gt, c, options); if (higher === c && higher !== gt) return false; } else if (gt.operator === ">=" && !satisfies(gt.semver, String(c), options)) return false; } if (lt) { if (needDomLTPre) { if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) needDomLTPre = false; } if (c.operator === "<" || c.operator === "<=") { lower = lowerLT(lt, c, options); if (lower === c && lower !== lt) return false; } else if (lt.operator === "<=" && !satisfies(lt.semver, String(c), options)) return false; } if (!c.operator && (lt || gt) && gtltComp !== 0) return false; } if (gt && hasDomLT && !lt && gtltComp !== 0) return false; if (lt && hasDomGT && !gt && gtltComp !== 0) return false; if (needDomGTPre || needDomLTPre) return false; return true; }; const higherGT = (a, b, options) => { if (!a) return b; const comp = compare(a.semver, b.semver, options); return comp > 0 ? a : comp < 0 ? b : b.operator === ">" && a.operator === ">=" ? b : a; }; const lowerLT = (a, b, options) => { if (!a) return b; const comp = compare(a.semver, b.semver, options); return comp < 0 ? a : comp > 0 ? b : b.operator === "<" && a.operator === "<=" ? b : a; }; module.exports = subset; })); //#endregion //#region ../../node_modules/.pnpm/semver@7.8.0/node_modules/semver/index.js var require_semver = /* @__PURE__ */ __commonJSMin(((exports, module) => { const internalRe = require_re(); const constants = require_constants(); const SemVer = require_semver$1(); const identifiers = require_identifiers(); module.exports = { parse: require_parse(), valid: require_valid$1(), clean: require_clean(), inc: require_inc(), diff: require_diff(), major: require_major(), minor: require_minor(), patch: require_patch(), prerelease: require_prerelease(), compare: require_compare(), rcompare: require_rcompare(), compareLoose: require_compare_loose(), compareBuild: require_compare_build(), sort: require_sort(), rsort: require_rsort(), gt: require_gt(), lt: require_lt(), eq: require_eq(), neq: require_neq(), gte: require_gte(), lte: require_lte(), cmp: require_cmp(), coerce: require_coerce(), truncate: require_truncate(), Comparator: require_comparator(), Range: require_range(), satisfies: require_satisfies(), toComparators: require_to_comparators(), maxSatisfying: require_max_satisfying(), minSatisfying: require_min_satisfying(), minVersion: require_min_version(), validRange: require_valid(), outside: require_outside(), gtr: require_gtr(), ltr: require_ltr(), intersects: require_intersects(), simplifyRange: require_simplify(), subset: require_subset(), SemVer, re: internalRe.re, src: internalRe.src, tokens: internalRe.t, SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, RELEASE_TYPES: constants.RELEASE_TYPES, compareIdentifiers: identifiers.compareIdentifiers, rcompareIdentifiers: identifiers.rcompareIdentifiers }; })); //#endregion //#region src/utils/versions.ts var import_semver = require_semver(); async function getNuxtVersion(cwd, cache = true) { const nuxtPkg = await readPackageJSON("nuxt", { url: cwd, try: true, cache }).catch(() => null); if (nuxtPkg) return nuxtPkg.version; const pkg = await readPackageJSON(cwd); const pkgDep = pkg?.dependencies?.nuxt || pkg?.devDependencies?.nuxt; return pkgDep && (0, import_semver.coerce)(pkgDep)?.version || "3.0.0"; } function getPkgVersion(cwd, pkg, options) { return getPkgJSON(cwd, pkg, options)?.version ?? ""; } /** * Resolve a package.json, optionally walking a dependency chain. * * `via` is an array of `[startingPoint, ...intermediates]` describing * the dependency path to walk before resolving `pkg`. For example: * * // vite is a dep of @nuxt/vite-builder, which is a dep of nuxt * getPkgJSON(cwd, 'vite', { via: ['nuxt', '@nuxt/vite-builder'] }) * * // webpack is a dep of @nuxt/webpack-builder, which the user installs * getPkgJSON(cwd, 'webpack', { via: ['@nuxt/webpack-builder'] }) * * Each entry is resolved from the location of the previous one, * starting from cwd. Falls back to direct resolution from cwd/nuxt. */ function getPkgJSON(cwd, pkg, options) { const roots = []; if (options?.via && options.via.length > 0) { let from = cwd; for (const step of options.via) { from = resolveModulePath(step, { from, try: true }) ?? void 0; if (!from) break; } if (from) roots.push(from); } roots.push(cwd); const nuxtPath = tryResolveNuxt(cwd); if (nuxtPath) roots.push(nuxtPath); for (const root of roots) { const p = resolveModulePath(`${pkg}/package.json`, { from: root, try: true }); if (p) return JSON.parse(readFileSync(p, "utf-8")); } return null; } //#endregion export { require_semver as i, getPkgJSON as n, getPkgVersion as r, getNuxtVersion as t };