import { colors } from 'consola/utils'; import { consola } from 'consola'; import { isMinimal } from 'std-env'; import { updateUser } from 'rc9'; import { statSync, readFileSync } from 'node:fs'; const version = "2.9.1"; const consentVersion = 1; const RC_FILENAME = ".nuxtrc"; function updateUserNuxtRc(key, val) { updateUser({ [key]: val }, RC_FILENAME); } let isDockerCached; function hasDockerEnv() { try { statSync("/.dockerenv"); return true; } catch { return false; } } function hasDockerCGroup() { try { return readFileSync("/proc/self/cgroup", "utf8").includes("docker"); } catch { return false; } } function hasDockerMountInfo() { try { return readFileSync("/proc/self/mountinfo", "utf8").includes("/docker/containers/"); } catch { return false; } } function isDocker() { isDockerCached ??= hasDockerEnv() || hasDockerCGroup() || hasDockerMountInfo(); return isDockerCached; } async function ensureUserconsent(options) { if (options.consent && options.consent >= consentVersion) { return true; } if (isMinimal || process.env.CODESANDBOX_SSE || process.env.NEXT_TELEMETRY_DISABLED || isDocker()) { return false; } consola.restoreAll(); process.stdout.write("\n"); consola.info(`${colors.green("Nuxt")} collects completely anonymous data about usage. This will help us improve Nuxt developer experience over time. Read more on ${colors.underline(colors.cyan("https://github.com/nuxt/telemetry"))} `); const accepted = await consola.prompt("Are you interested in participating?", { type: "confirm" }); process.stdout.write("\n"); consola.wrapAll(); if (accepted) { updateUserNuxtRc("telemetry.consent", consentVersion); updateUserNuxtRc("telemetry.enabled", true); return true; } updateUserNuxtRc("telemetry.enabled", false); return false; } function isTruthy(val) { return val === true || val === "true" || val === "1" || val === 1; } function isDoNotTrack(env = process.env) { return isTruthy(env.DO_NOT_TRACK); } export { RC_FILENAME as R, isDoNotTrack as a, isDocker as b, consentVersion as c, ensureUserconsent as e, isTruthy as i, updateUserNuxtRc as u, version as v };