{"version":3,"file":"disable.mjs","sources":["../../../../../src/cli/commands/telemetry/disable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\nconst readPackageJSON = async (path: string) => {\n  try {\n    const packageObj = await fse.readJson(path);\n    const uuid = packageObj.strapi ? packageObj.strapi.uuid : null;\n    const installId = packageObj.strapi ? packageObj.strapi.installId : null;\n\n    return { uuid, installId, packageObj };\n  } catch (err) {\n    if (err instanceof Error) {\n      console.error(`${chalk.red('Error')}: ${err.message}`);\n    }\n  }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n  try {\n    await fse.writeJson(path, file, { spaces: spacing });\n    return true;\n  } catch (err) {\n    if (err instanceof Error) {\n      console.error(`${chalk.red('Error')}: ${err.message}`);\n    }\n  }\n};\n\nconst action = async () => {\n  const packageJSONPath = resolve(process.cwd(), 'package.json');\n  const exists = await fse.pathExists(packageJSONPath);\n\n  if (!exists) {\n    console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n    process.exit(0);\n  }\n\n  const { uuid, installId, packageObj } = (await readPackageJSON(packageJSONPath)) ?? {};\n\n  if ((packageObj.strapi && packageObj.strapi.telemetryDisabled) || !uuid) {\n    console.log(`${chalk.yellow('Warning:')} telemetry is already disabled`);\n    process.exit(0);\n  }\n\n  const updatedPackageJSON = {\n    ...packageObj,\n    strapi: {\n      ...packageObj.strapi,\n      telemetryDisabled: true,\n    },\n  };\n\n  const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n  if (!write) {\n    console.log(\n      `${chalk.yellow(\n        'Warning'\n      )}: There has been an error, please set \"telemetryDisabled\": true in the \"strapi\" object of your package.json manually.`\n    );\n    process.exit(0);\n  }\n\n  await sendEvent('didOptOutTelemetry', uuid, installId);\n  console.log(`${chalk.green('Successfully opted out of Strapi telemetry')}`);\n  process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:disable`\n */\nconst command: StrapiCommand = () => {\n  return createCommand('telemetry:disable')\n    .description('Disable anonymous telemetry and metadata sending to Strapi analytics')\n    .action(runAction('telemetry:disable', action));\n};\n\nexport { action, command };\n"],"names":["readPackageJSON","path","packageObj","fse","readJson","uuid","strapi","installId","err","Error","console","error","chalk","red","message","writePackageJSON","file","spacing","writeJson","spaces","action","packageJSONPath","resolve","process","cwd","exists","pathExists","log","yellow","exit","telemetryDisabled","updatedPackageJSON","write","sendEvent","green","command","createCommand","description","runAction"],"mappings":"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"}