{"version":3,"file":"enable.mjs","sources":["../../../../../src/cli/commands/telemetry/enable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { randomUUID } from 'crypto';\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\ntype PackageJson = {\n  strapi?: {\n    uuid?: string;\n    installId?: string;\n    telemetryDisabled?: boolean;\n  };\n};\n\nconst readPackageJSON = async (path: string) => {\n  try {\n    const packageObj = await fse.readJson(path);\n    return packageObj;\n  } catch (err) {\n    if (err instanceof Error) {\n      console.error(`${chalk.red('Error')}: ${err.message}`);\n    } else {\n      throw err;\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      console.log(\n        `${chalk.yellow(\n          'Warning'\n        )}: There has been an error, please set \"telemetryDisabled\": false in the \"strapi\" object of your package.json manually.`\n      );\n\n      return false;\n    }\n\n    throw err;\n  }\n};\n\nconst generateNewPackageJSON = (packageObj: PackageJson) => {\n  if (!packageObj.strapi) {\n    return {\n      ...packageObj,\n      strapi: {\n        uuid: randomUUID(),\n        telemetryDisabled: false,\n      },\n    };\n  }\n  return {\n    ...packageObj,\n    strapi: {\n      ...packageObj.strapi,\n      uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : randomUUID(),\n      telemetryDisabled: false,\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 packageObj = await readPackageJSON(packageJSONPath);\n\n  if (packageObj.strapi && packageObj.strapi.uuid) {\n    if (packageObj.strapi.telemetryDisabled === false) {\n      console.log(`${chalk.yellow('Warning:')} telemetry is already enabled`);\n      process.exit(0);\n    }\n  }\n\n  const updatedPackageJSON = generateNewPackageJSON(packageObj);\n\n  const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n  if (!write) {\n    process.exit(0);\n  }\n\n  await sendEvent(\n    'didOptInTelemetry',\n    updatedPackageJSON.strapi.uuid,\n    updatedPackageJSON.strapi?.installId\n  );\n  console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);\n  process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:enable`\n */\nconst command: StrapiCommand = () => {\n  return createCommand('telemetry:enable')\n    .description('Enable anonymous telemetry and metadata sending to Strapi analytics')\n    .action(runAction('telemetry:enable', action));\n};\n\nexport { action, command };\n"],"names":["readPackageJSON","path","packageObj","fse","readJson","err","Error","console","error","chalk","red","message","writePackageJSON","file","spacing","writeJson","spaces","log","yellow","generateNewPackageJSON","strapi","uuid","randomUUID","telemetryDisabled","action","packageJSONPath","resolve","process","cwd","exists","pathExists","exit","updatedPackageJSON","write","sendEvent","installId","green","command","createCommand","description","runAction"],"mappings":"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"}