{"version":3,"file":"impl-sfa0ZIzo.mjs","names":[],"sources":["../src/commands/admin/generate-api-keys/impl.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\n\nimport { ScopeName } from '@transcend-io/privacy-types';\n\nimport { SCOPES_BY_TITLE } from '../../../constants.js';\nimport type { LocalContext } from '../../../context.js';\nimport { generateCrossAccountApiKeys } from '../../../lib/api-keys/index.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\n\n// Command flag interface\nexport interface GenerateApiKeysCommandFlags {\n  email: string;\n  password: string;\n  apiKeyTitle: string;\n  file: string;\n  scopes: string[];\n  deleteExistingApiKey: boolean;\n  createNewApiKey: boolean;\n  parentOrganizationId?: string;\n  transcendUrl: string;\n}\n\n// Command implementation\nexport async function generateApiKeys(\n  this: LocalContext,\n  {\n    email,\n    password,\n    apiKeyTitle,\n    file,\n    scopes,\n    deleteExistingApiKey,\n    createNewApiKey,\n    parentOrganizationId,\n    transcendUrl,\n  }: GenerateApiKeysCommandFlags,\n): Promise<void> {\n  doneInputValidation(this.process.exit);\n\n  const scopeNames = scopes.map((scopeTitle) => SCOPES_BY_TITLE[scopeTitle].name as ScopeName);\n\n  // Upload privacy requests\n  const { errors, apiKeys } = await generateCrossAccountApiKeys({\n    transcendUrl,\n    password,\n    email,\n    parentOrganizationId,\n    deleteExistingApiKey,\n    createNewApiKey,\n    apiKeyTitle,\n    scopes: scopeNames,\n  });\n\n  // Write to disk\n  writeFileSync(file, `${JSON.stringify(apiKeys, null, 2)}\\n`);\n  if (errors.length > 0) {\n    this.process.exit(1);\n  }\n}\n"],"mappings":"wMAuBA,eAAsB,EAEpB,CACE,QACA,WACA,cACA,OACA,SACA,uBACA,kBACA,uBACA,gBAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAKtC,GAAM,CAAE,SAAQ,WAAY,MAAM,EAA4B,CAC5D,eACA,WACA,QACA,uBACA,uBACA,kBACA,cACA,OAXiB,EAAO,IAAK,GAAe,EAAgB,GAAY,KAWtD,CACnB,CAAC,CAGF,EAAc,EAAM,GAAG,KAAK,UAAU,EAAS,KAAM,EAAE,CAAC,IAAI,CACxD,EAAO,OAAS,GAClB,KAAK,QAAQ,KAAK,EAAE"}