@transcend-io/cli 8.0.7 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +144 -36
  2. package/dist/bin/bash-complete.cjs +1 -1
  3. package/dist/bin/cli.cjs +1 -1
  4. package/dist/bin/deprecated-command.cjs +2 -2
  5. package/dist/{chunk-H6YI2HZS.cjs → chunk-6CS4GCJ4.cjs} +2 -2
  6. package/dist/{chunk-H6YI2HZS.cjs.map → chunk-6CS4GCJ4.cjs.map} +1 -1
  7. package/dist/{chunk-2VX4QD73.cjs → chunk-BICC2LJL.cjs} +3 -3
  8. package/dist/{chunk-2VX4QD73.cjs.map → chunk-BICC2LJL.cjs.map} +1 -1
  9. package/dist/{chunk-K2E6TCB5.cjs → chunk-DVJLLHL3.cjs} +2 -2
  10. package/dist/{chunk-K2E6TCB5.cjs.map → chunk-DVJLLHL3.cjs.map} +1 -1
  11. package/dist/{chunk-S3HIPD4J.cjs → chunk-HI7ACKKB.cjs} +2 -2
  12. package/dist/{chunk-S3HIPD4J.cjs.map → chunk-HI7ACKKB.cjs.map} +1 -1
  13. package/dist/{chunk-4GRQMYW2.cjs → chunk-IFAKI5FF.cjs} +2 -2
  14. package/dist/{chunk-4GRQMYW2.cjs.map → chunk-IFAKI5FF.cjs.map} +1 -1
  15. package/dist/{chunk-E57K4DGX.cjs → chunk-MGAJ7ILD.cjs} +2 -2
  16. package/dist/{chunk-E57K4DGX.cjs.map → chunk-MGAJ7ILD.cjs.map} +1 -1
  17. package/dist/{chunk-SQVECTFA.cjs → chunk-MRXBJEKL.cjs} +22 -20
  18. package/dist/chunk-MRXBJEKL.cjs.map +1 -0
  19. package/dist/{chunk-GT7Q27PI.cjs → chunk-NC5QVXJW.cjs} +2 -2
  20. package/dist/{chunk-GT7Q27PI.cjs.map → chunk-NC5QVXJW.cjs.map} +1 -1
  21. package/dist/{chunk-RSN3DUTP.cjs → chunk-QPIUQDJ6.cjs} +4 -4
  22. package/dist/{chunk-RSN3DUTP.cjs.map → chunk-QPIUQDJ6.cjs.map} +1 -1
  23. package/dist/{chunk-HBKA5Z5A.cjs → chunk-QRDYTLVB.cjs} +2 -2
  24. package/dist/{chunk-HBKA5Z5A.cjs.map → chunk-QRDYTLVB.cjs.map} +1 -1
  25. package/dist/{chunk-OCNPZWYT.cjs → chunk-W6BLSHVE.cjs} +4 -4
  26. package/dist/{chunk-OCNPZWYT.cjs.map → chunk-W6BLSHVE.cjs.map} +1 -1
  27. package/dist/{chunk-NKFAEQ2Q.cjs → chunk-XKYSQSRO.cjs} +2 -2
  28. package/dist/{chunk-NKFAEQ2Q.cjs.map → chunk-XKYSQSRO.cjs.map} +1 -1
  29. package/dist/{impl-T5AW675H.cjs → impl-4VPFFGGS.cjs} +2 -2
  30. package/dist/{impl-T5AW675H.cjs.map → impl-4VPFFGGS.cjs.map} +1 -1
  31. package/dist/{impl-E7JWHVRJ.cjs → impl-5H6DFFAS.cjs} +2 -2
  32. package/dist/{impl-E7JWHVRJ.cjs.map → impl-5H6DFFAS.cjs.map} +1 -1
  33. package/dist/{impl-R3CY7ZIW.cjs → impl-6JRE252A.cjs} +2 -2
  34. package/dist/{impl-R3CY7ZIW.cjs.map → impl-6JRE252A.cjs.map} +1 -1
  35. package/dist/{impl-N2ANLQOJ.cjs → impl-7RJYKTCZ.cjs} +6 -6
  36. package/dist/{impl-N2ANLQOJ.cjs.map → impl-7RJYKTCZ.cjs.map} +1 -1
  37. package/dist/{impl-NRS5JFKV.cjs → impl-BKEVLUMO.cjs} +2 -2
  38. package/dist/{impl-NRS5JFKV.cjs.map → impl-BKEVLUMO.cjs.map} +1 -1
  39. package/dist/{impl-LTMYU2AY.cjs → impl-BRUSOMXU.cjs} +2 -2
  40. package/dist/{impl-LTMYU2AY.cjs.map → impl-BRUSOMXU.cjs.map} +1 -1
  41. package/dist/{impl-U6XFUPLF.cjs → impl-BUQ2V3WM.cjs} +2 -2
  42. package/dist/{impl-U6XFUPLF.cjs.map → impl-BUQ2V3WM.cjs.map} +1 -1
  43. package/dist/{impl-GS4CVUAP.cjs → impl-C7DRIULL.cjs} +2 -2
  44. package/dist/{impl-GS4CVUAP.cjs.map → impl-C7DRIULL.cjs.map} +1 -1
  45. package/dist/{impl-ACT4HEIF.cjs → impl-CK5QRU26.cjs} +2 -2
  46. package/dist/{impl-ACT4HEIF.cjs.map → impl-CK5QRU26.cjs.map} +1 -1
  47. package/dist/{impl-EU6DPMR5.cjs → impl-DDOPMEH6.cjs} +5 -5
  48. package/dist/{impl-EU6DPMR5.cjs.map → impl-DDOPMEH6.cjs.map} +1 -1
  49. package/dist/{impl-W4I4GTBC.cjs → impl-DYGW2VXN.cjs} +2 -2
  50. package/dist/{impl-W4I4GTBC.cjs.map → impl-DYGW2VXN.cjs.map} +1 -1
  51. package/dist/{impl-UOAWNR34.cjs → impl-ED76NZLR.cjs} +3 -3
  52. package/dist/{impl-UOAWNR34.cjs.map → impl-ED76NZLR.cjs.map} +1 -1
  53. package/dist/{impl-NWMCEWUU.cjs → impl-EL3GY7PX.cjs} +2 -2
  54. package/dist/{impl-NWMCEWUU.cjs.map → impl-EL3GY7PX.cjs.map} +1 -1
  55. package/dist/{impl-TGY32SCN.cjs → impl-FRDPRLKI.cjs} +2 -2
  56. package/dist/{impl-TGY32SCN.cjs.map → impl-FRDPRLKI.cjs.map} +1 -1
  57. package/dist/{impl-BRA6TEVA.cjs → impl-GDONPQQ6.cjs} +2 -2
  58. package/dist/{impl-BRA6TEVA.cjs.map → impl-GDONPQQ6.cjs.map} +1 -1
  59. package/dist/{impl-2NI344VN.cjs → impl-I3QZ2ZHY.cjs} +2 -2
  60. package/dist/{impl-2NI344VN.cjs.map → impl-I3QZ2ZHY.cjs.map} +1 -1
  61. package/dist/{impl-A7WOM6B2.cjs → impl-LBJYOQEP.cjs} +2 -2
  62. package/dist/{impl-A7WOM6B2.cjs.map → impl-LBJYOQEP.cjs.map} +1 -1
  63. package/dist/{impl-UHENI4EC.cjs → impl-LNF5A3IV.cjs} +2 -2
  64. package/dist/{impl-UHENI4EC.cjs.map → impl-LNF5A3IV.cjs.map} +1 -1
  65. package/dist/{impl-5XZA6XDY.cjs → impl-LV5VZGGG.cjs} +2 -2
  66. package/dist/{impl-5XZA6XDY.cjs.map → impl-LV5VZGGG.cjs.map} +1 -1
  67. package/dist/{impl-M6XVZEZC.cjs → impl-MT4XWK25.cjs} +2 -2
  68. package/dist/{impl-M6XVZEZC.cjs.map → impl-MT4XWK25.cjs.map} +1 -1
  69. package/dist/impl-NOS3MDB5.cjs +2 -0
  70. package/dist/{impl-K6UD53QP.cjs.map → impl-NOS3MDB5.cjs.map} +1 -1
  71. package/dist/{impl-ASZALW6O.cjs → impl-O6ZZ6G7V.cjs} +2 -2
  72. package/dist/{impl-ASZALW6O.cjs.map → impl-O6ZZ6G7V.cjs.map} +1 -1
  73. package/dist/{impl-MLVIXJWF.cjs → impl-OK6NKAWI.cjs} +2 -2
  74. package/dist/{impl-MLVIXJWF.cjs.map → impl-OK6NKAWI.cjs.map} +1 -1
  75. package/dist/{impl-2GZWVX2N.cjs → impl-OXVQMF3C.cjs} +2 -2
  76. package/dist/{impl-2GZWVX2N.cjs.map → impl-OXVQMF3C.cjs.map} +1 -1
  77. package/dist/{impl-JYM2T6AQ.cjs → impl-P3ZEQOP4.cjs} +2 -2
  78. package/dist/{impl-JYM2T6AQ.cjs.map → impl-P3ZEQOP4.cjs.map} +1 -1
  79. package/dist/{impl-HHPNH3QN.cjs → impl-PE35IGX2.cjs} +2 -2
  80. package/dist/{impl-HHPNH3QN.cjs.map → impl-PE35IGX2.cjs.map} +1 -1
  81. package/dist/{impl-KHR6CYYW.cjs → impl-PKQQUVYK.cjs} +2 -2
  82. package/dist/{impl-KHR6CYYW.cjs.map → impl-PKQQUVYK.cjs.map} +1 -1
  83. package/dist/{impl-MM7Z76YA.cjs → impl-QAMYNNJD.cjs} +2 -2
  84. package/dist/{impl-MM7Z76YA.cjs.map → impl-QAMYNNJD.cjs.map} +1 -1
  85. package/dist/impl-QPUYYCCD.cjs +38 -0
  86. package/dist/impl-QPUYYCCD.cjs.map +1 -0
  87. package/dist/{impl-MNZZSLBI.cjs → impl-SC7VG3C5.cjs} +2 -2
  88. package/dist/{impl-MNZZSLBI.cjs.map → impl-SC7VG3C5.cjs.map} +1 -1
  89. package/dist/{impl-KQNFC333.cjs → impl-SCX5AEQB.cjs} +2 -2
  90. package/dist/{impl-KQNFC333.cjs.map → impl-SCX5AEQB.cjs.map} +1 -1
  91. package/dist/{impl-P23VFJZF.cjs → impl-SWFUVUV6.cjs} +2 -2
  92. package/dist/{impl-P23VFJZF.cjs.map → impl-SWFUVUV6.cjs.map} +1 -1
  93. package/dist/{impl-SVCHBYPB.cjs → impl-TSGEOZLY.cjs} +2 -2
  94. package/dist/{impl-SVCHBYPB.cjs.map → impl-TSGEOZLY.cjs.map} +1 -1
  95. package/dist/{impl-B4RGQNKY.cjs → impl-US4VOSBF.cjs} +4 -4
  96. package/dist/{impl-B4RGQNKY.cjs.map → impl-US4VOSBF.cjs.map} +1 -1
  97. package/dist/{impl-CWWICDPC.cjs → impl-UZE2LR6H.cjs} +2 -2
  98. package/dist/{impl-CWWICDPC.cjs.map → impl-UZE2LR6H.cjs.map} +1 -1
  99. package/dist/impl-UZTSGARM.cjs +2 -0
  100. package/dist/{impl-UFXTQLXO.cjs.map → impl-UZTSGARM.cjs.map} +1 -1
  101. package/dist/impl-WO3LVKNE.cjs +2 -0
  102. package/dist/{impl-VUQ6T7ON.cjs.map → impl-WO3LVKNE.cjs.map} +1 -1
  103. package/dist/{impl-ERCHNSZD.cjs → impl-WVAGHUZI.cjs} +3 -3
  104. package/dist/{impl-ERCHNSZD.cjs.map → impl-WVAGHUZI.cjs.map} +1 -1
  105. package/dist/{impl-GTJ5DPQ4.cjs → impl-X2FXS267.cjs} +2 -2
  106. package/dist/{impl-GTJ5DPQ4.cjs.map → impl-X2FXS267.cjs.map} +1 -1
  107. package/dist/{impl-QC2QXWOW.cjs → impl-ZWNKU6OC.cjs} +2 -2
  108. package/dist/{impl-QC2QXWOW.cjs.map → impl-ZWNKU6OC.cjs.map} +1 -1
  109. package/dist/index.cjs +3 -3
  110. package/dist/index.cjs.map +1 -1
  111. package/dist/index.d.cts +1 -1
  112. package/package.json +1 -1
  113. package/dist/chunk-SQVECTFA.cjs.map +0 -1
  114. package/dist/impl-K6UD53QP.cjs +0 -2
  115. package/dist/impl-UFXTQLXO.cjs +0 -2
  116. package/dist/impl-VUQ6T7ON.cjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-B4RGQNKY.cjs","../src/commands/migration/sync-ot/impl.ts","../src/lib/oneTrust/createOneTrustGotInstance.ts","../src/lib/oneTrust/helpers/oneTrustAssessmentToJson.ts","../src/lib/oneTrust/endpoints/getListOfOneTrustAssessments.ts","../src/lib/oneTrust/helpers/syncOneTrustAssessmentToTranscend.ts","../src/lib/oneTrust/helpers/syncOneTrustAssessmentsFromOneTrust.ts"],"names":["createOneTrustGotInstance","hostname","auth","got"],"mappings":"AAAA,y0BAAwC,wDAA0D,gCAA6B,wDAAoC,wDAAgD,wDAAyC,gFCEzO,oECFM,IAQZA,CAAAA,CAA4B,CAAC,CACxC,QAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CACF,CAAA,CAAA,EAMEC,aAAAA,CAAI,MAAA,CAAO,CACT,SAAA,CAAW,CAAA,QAAA,EAAWF,CAAQ,CAAA,CAAA;ACiBwB;AAIzC;AClCf,CAAA;ACsE2F,mBAAA;ACC3B","file":"/home/runner/work/cli/cli/dist/impl-B4RGQNKY.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { logger } from '../../../logger';\nimport colors from 'colors';\nimport { createOneTrustGotInstance } from '../../../lib/oneTrust';\nimport {\n OneTrustFileFormat,\n OneTrustPullResource,\n OneTrustPullSource,\n} from '../../../enums';\nimport { buildTranscendGraphQLClient } from '../../../lib/graphql';\nimport {\n syncOneTrustAssessmentsFromFile,\n syncOneTrustAssessmentsFromOneTrust,\n} from '../../../lib/oneTrust/helpers';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\n// Command flag interface\nexport interface SyncOtCommandFlags {\n hostname?: string;\n oneTrustAuth?: string;\n source: OneTrustPullSource;\n transcendAuth?: string;\n transcendUrl: string;\n file?: string;\n resource: OneTrustPullResource;\n dryRun: boolean;\n debug: boolean;\n}\n\n// Command implementation\nexport async function syncOt(\n this: LocalContext,\n {\n hostname,\n oneTrustAuth,\n source,\n transcendAuth,\n transcendUrl,\n resource,\n file,\n dryRun,\n debug,\n }: SyncOtCommandFlags,\n): Promise<void> {\n // Must be able to authenticate to transcend to sync resources to it\n if (!dryRun && !transcendAuth) {\n throw new Error(\n // eslint-disable-next-line no-template-curly-in-string\n 'Must specify a \"transcendAuth\" parameter to sync resources to Transcend. e.g. --transcendAuth=${TRANSCEND_API_KEY}',\n );\n }\n\n // If trying to sync to disk, must specify a file path\n if (dryRun && !file) {\n throw new Error(\n 'Must set a \"file\" parameter when \"dryRun\" is \"true\". e.g. --file=./oneTrustAssessments.json',\n );\n }\n\n if (file) {\n const splitFile = file.split('.');\n if (splitFile.length < 2) {\n throw new Error(\n 'The \"file\" parameter has an invalid format. Expected a path with extensions. e.g. --file=./pathToFile.json.',\n );\n }\n if (splitFile.at(-1) !== OneTrustFileFormat.Json) {\n throw new Error(\n `Expected the format of the \"file\" parameters '${file}' to be '${\n OneTrustFileFormat.Json\n }', but got '${splitFile.at(-1)}'.`,\n );\n }\n }\n\n // if reading assessments from a OneTrust\n if (source === OneTrustPullSource.OneTrust) {\n // must specify the OneTrust hostname\n if (!hostname) {\n throw new Error(\n 'Missing required parameter \"hostname\". e.g. --hostname=customer.my.onetrust.com',\n );\n }\n // must specify the OneTrust auth\n if (!oneTrustAuth) {\n throw new Error(\n 'Missing required parameter \"oneTrustAuth\". e.g. --oneTrustAuth=$ONE_TRUST_AUTH_TOKEN',\n );\n }\n } else {\n // if reading the assessments from a file, must specify a file to read from\n if (!file) {\n throw new Error(\n 'Must specify a \"file\" parameter to read the OneTrust assessments from. e.g. --source=./oneTrustAssessments.json',\n );\n }\n\n // Cannot try reading from file and save assessments to a file simultaneously\n if (dryRun) {\n throw new Error(\n 'Cannot read and write to a file simultaneously.' +\n ` Emit the \"source\" parameter or set it to ${OneTrustPullSource.OneTrust} if \"dryRun\" is enabled.`,\n );\n }\n }\n\n doneInputValidation(this.process.exit);\n\n // instantiate a client to talk to OneTrust\n const oneTrust =\n hostname && oneTrustAuth\n ? createOneTrustGotInstance({\n hostname,\n auth: oneTrustAuth,\n })\n : undefined;\n\n // instantiate a client to talk to Transcend\n const transcend =\n transcendUrl && transcendAuth\n ? buildTranscendGraphQLClient(transcendUrl, transcendAuth)\n : undefined;\n\n try {\n if (resource === OneTrustPullResource.Assessments) {\n if (source === OneTrustPullSource.OneTrust && oneTrust) {\n await syncOneTrustAssessmentsFromOneTrust({\n oneTrust,\n file,\n dryRun,\n ...(transcend && { transcend }),\n });\n } else if (source === OneTrustPullSource.File && file && transcend) {\n await syncOneTrustAssessmentsFromFile({ file, transcend });\n }\n }\n } catch (err) {\n throw new Error(\n `An error occurred syncing the resource ${resource} from OneTrust: ${\n debug ? err.stack : err.message\n }`,\n );\n }\n\n // Indicate success\n logger.info(\n colors.green(\n `Successfully synced OneTrust ${resource} to ${\n dryRun ? `disk at \"${file}\"` : 'Transcend'\n }!`,\n ),\n );\n}\n","import got, { Got } from 'got';\n\n/**\n * Instantiate an instance of got that is capable of making requests to OneTrust\n *\n * @param param - information about the OneTrust URL\n * @returns The instance of got that is capable of making requests to the customer ingress\n */\nexport const createOneTrustGotInstance = ({\n hostname,\n auth,\n}: {\n /** Hostname of the OneTrust API */\n hostname: string;\n /** The OAuth access token */\n auth: string;\n}): Got =>\n got.extend({\n prefixUrl: `https://${hostname}`,\n headers: {\n accept: 'application/json',\n 'content-type': 'application/json',\n authorization: `Bearer ${auth}`,\n },\n });\n","import { OneTrustEnrichedAssessment } from '@transcend-io/privacy-types';\n\n/**\n * Converts the assessment into a json entry.\n *\n * @param param - information about the assessment and amount of entries\n * @returns a stringified json entry ready to be appended to a file\n */\nexport const oneTrustAssessmentToJson = ({\n assessment,\n index,\n total,\n wrap = true,\n}: {\n /** The assessment to convert */\n assessment: OneTrustEnrichedAssessment;\n /** The position of the assessment in the final Json object */\n index: number;\n /** The total amount of the assessments in the final Json object */\n total?: number;\n /** Whether to wrap every entry in brackets */\n wrap?: boolean;\n}): string => {\n let jsonEntry = '';\n // start with an opening bracket\n if (index === 0 || wrap) {\n jsonEntry = '[\\n';\n }\n\n const stringifiedAssessment = JSON.stringify(assessment);\n\n // Add comma for all items except the last one\n const comma = total && index < total - 1 && !wrap ? ',' : '';\n\n // write to file\n jsonEntry = `${jsonEntry + stringifiedAssessment + comma}\\n`;\n\n // end with closing bracket\n if ((total && index === total - 1) || wrap) {\n jsonEntry += '\\n]';\n }\n\n return jsonEntry;\n};\n","import { Got } from 'got';\nimport { logger } from '../../../logger';\nimport { decodeCodec } from '@transcend-io/type-utils';\nimport {\n OneTrustAssessment,\n OneTrustGetListOfAssessmentsResponse,\n} from '@transcend-io/privacy-types';\n\n/**\n * Fetch a list of all assessments from the OneTrust client.\n * ref: https://developer.onetrust.com/onetrust/reference/getallassessmentbasicdetailsusingget\n *\n * @param param - the information about the OneTrust client\n * @returns a list of OneTrustAssessment\n */\nexport const getListOfOneTrustAssessments = async ({\n oneTrust,\n}: {\n /** The OneTrust client instance */\n oneTrust: Got;\n}): Promise<OneTrustAssessment[]> => {\n let currentPage = 0;\n let totalPages = 1;\n let totalElements = 0;\n\n const allAssessments: OneTrustAssessment[] = [];\n\n while (currentPage < totalPages) {\n const { body } = await oneTrust.get(\n `api/assessment/v2/assessments?page=${currentPage}&size=2000`,\n );\n\n const { page, content } = decodeCodec(\n OneTrustGetListOfAssessmentsResponse,\n body,\n );\n allAssessments.push(...(content ?? []));\n if (currentPage === 0) {\n totalPages = page?.totalPages ?? 0;\n totalElements = page?.totalElements ?? 0;\n }\n currentPage += 1;\n\n // log progress\n logger.info(\n `Fetched ${allAssessments.length} of ${totalElements} assessments.`,\n );\n }\n\n return allAssessments;\n};\n","import { logger } from '../../../logger';\nimport colors from 'colors';\nimport { GraphQLClient } from 'graphql-request';\nimport {\n IMPORT_ONE_TRUST_ASSESSMENT_FORMS,\n makeGraphQLRequest,\n} from '../../graphql';\nimport { ImportOnetrustAssessmentsInput } from '../../../codecs';\nimport { OneTrustEnrichedAssessment } from '@transcend-io/privacy-types';\nimport { oneTrustAssessmentToJson } from './oneTrustAssessmentToJson';\n\nexport interface AssessmentForm {\n /** ID of Assessment Form */\n id: string;\n /** Title of Assessment Form */\n name: string;\n}\n\n/**\n * Write the assessment to a Transcend instance.\n *\n *\n * @param param - information about the assessment and Transcend instance to write to\n */\nexport const syncOneTrustAssessmentToTranscend = async ({\n transcend,\n assessment,\n total,\n index,\n}: {\n /** the Transcend client instance */\n transcend: GraphQLClient;\n /** the assessment to sync to Transcend */\n assessment: OneTrustEnrichedAssessment;\n /** The index of the assessment being written to the file */\n index: number;\n /** The total amount of assessments that we will write */\n total?: number;\n}): Promise<void> => {\n logger.info(\n colors.magenta(\n `Writing enriched assessment ${index + 1} ${\n total ? `of ${total} ` : ' '\n }to Transcend...`,\n ),\n );\n\n // convert the OneTrust assessment object into a json record\n const json = oneTrustAssessmentToJson({\n assessment,\n index,\n total,\n });\n\n // transform the json record into a valid input to the mutation\n const input: ImportOnetrustAssessmentsInput = {\n json,\n };\n\n try {\n await makeGraphQLRequest<{\n /** the importOneTrustAssessmentForms mutation */\n importOneTrustAssessmentForms: {\n /** Created Assessment Forms */\n assessmentForms: AssessmentForm[];\n };\n }>(transcend, IMPORT_ONE_TRUST_ASSESSMENT_FORMS, {\n input,\n });\n } catch (e) {\n logger.error(\n colors.red(\n `Failed to sync assessment ${index + 1} ${\n total ? `of ${total} ` : ' '\n }to Transcend.\\n` +\n `\\tAssessment Title: ${assessment.name}. Template Title: ${assessment.template.name}\\n`,\n ),\n );\n }\n};\n","import type { Got } from 'got';\nimport colors from 'colors';\nimport {\n getListOfOneTrustAssessments,\n getOneTrustAssessment,\n getOneTrustRisk,\n getOneTrustUser,\n} from '../endpoints';\nimport { mapSeries, map } from 'bluebird';\nimport { logger } from '../../../logger';\nimport {\n OneTrustAssessmentQuestion,\n OneTrustAssessmentSection,\n OneTrustEnrichedAssessment,\n OneTrustGetRiskResponse,\n OneTrustGetUserResponse,\n} from '@transcend-io/privacy-types';\nimport { uniq } from 'lodash-es';\nimport { enrichOneTrustAssessment } from './enrichOneTrustAssessment';\nimport { syncOneTrustAssessmentToDisk } from './syncOneTrustAssessmentToDisk';\nimport { GraphQLClient } from 'graphql-request';\nimport { syncOneTrustAssessmentToTranscend } from './syncOneTrustAssessmentToTranscend';\n\nexport interface AssessmentForm {\n /** ID of Assessment Form */\n id: string;\n /** Title of Assessment Form */\n name: string;\n}\n\n/**\n * Reads all the assessments from a OneTrust instance and syncs them to Transcend or to Disk.\n *\n * @param param - the information about the assessment, its OneTrust source, and destination (disk or Transcend)\n */\nexport const syncOneTrustAssessmentsFromOneTrust = async ({\n oneTrust,\n file,\n dryRun,\n transcend,\n}: {\n /** the OneTrust client instance */\n oneTrust: Got;\n /** the Transcend client instance */\n transcend?: GraphQLClient;\n /** Whether to write to file instead of syncing to Transcend */\n dryRun: boolean;\n /** the path to the file in case dryRun is true */\n file?: string;\n}): Promise<void> => {\n // fetch the list of all assessments in the OneTrust organization\n logger.info('Getting list of all assessments from OneTrust...');\n const assessments = await getListOfOneTrustAssessments({ oneTrust });\n\n // a cache of OneTrust users so we avoid requesting already fetched users\n const oneTrustCachedUsers: Record<string, OneTrustGetUserResponse> = {};\n\n // split all assessments in batches, so we can process some of steps in parallel\n const BATCH_SIZE = 5;\n const assessmentBatches = Array.from(\n {\n length: Math.ceil(assessments.length / BATCH_SIZE),\n },\n (_, i) => assessments.slice(i * BATCH_SIZE, (i + 1) * BATCH_SIZE),\n );\n\n // process each batch and sync the batch right away so it's garbage collected and we don't run out of memory\n await mapSeries(assessmentBatches, async (assessmentBatch, batch) => {\n const batchEnrichedAssessments: OneTrustEnrichedAssessment[] = [];\n\n // fetch assessment details from OneTrust in parallel\n await map(\n assessmentBatch,\n async (assessment, index) => {\n const assessmentNumber = BATCH_SIZE * batch + index + 1;\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching details...`,\n );\n const { templateName, assessmentId } = assessment;\n const assessmentDetails = await getOneTrustAssessment({\n oneTrust,\n assessmentId,\n });\n // fetch assessment's creator information\n const creatorId = assessmentDetails.createdBy.id;\n let creator = oneTrustCachedUsers[creatorId];\n if (!creator) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching creator...`,\n );\n try {\n creator = await getOneTrustUser({\n oneTrust,\n userId: creatorId,\n });\n oneTrustCachedUsers[creatorId] = creator;\n } catch (e) {\n logger.warn(\n colors.yellow(\n `[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch form creator.` +\n `\\tcreatorId: ${creatorId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`,\n ),\n );\n }\n }\n\n // fetch assessment approvers information\n const { approvers } = assessmentDetails;\n let approversDetails: OneTrustGetUserResponse[][] = [];\n if (approvers.length > 0) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching approvers...`,\n );\n approversDetails = await map(\n approvers.map(({ id }) => id),\n async (userId) => {\n try {\n let approver = oneTrustCachedUsers[userId];\n if (!approver) {\n approver = await getOneTrustUser({ oneTrust, userId });\n oneTrustCachedUsers[userId] = approver;\n }\n return [approver];\n } catch (e) {\n logger.warn(\n colors.yellow(\n `[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch a form approver.` +\n `\\tapproverId: ${userId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`,\n ),\n );\n return [];\n }\n },\n { concurrency: 5 },\n );\n }\n\n // fetch assessment internal respondents information\n const { respondents } = assessmentDetails;\n // if a user is an internal respondents, their 'name' field can't be an email.\n const internalRespondents = respondents.filter(\n (r) => !r.name.includes('@'),\n );\n let respondentsDetails: OneTrustGetUserResponse[][] = [];\n if (internalRespondents.length > 0) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching respondents...`,\n );\n respondentsDetails = await map(\n internalRespondents.map(({ id }) => id),\n async (userId) => {\n try {\n let respondent = oneTrustCachedUsers[userId];\n if (!respondent) {\n respondent = await getOneTrustUser({ oneTrust, userId });\n oneTrustCachedUsers[userId] = respondent;\n }\n return [respondent];\n } catch (e) {\n logger.warn(\n colors.yellow(\n `[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch a respondent.` +\n `\\trespondentId: ${userId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`,\n ),\n );\n return [];\n }\n },\n { concurrency: 5 },\n );\n }\n\n // fetch assessment risk information\n let riskDetails: OneTrustGetRiskResponse[] = [];\n const riskIds = uniq(\n assessmentDetails.sections.flatMap((s: OneTrustAssessmentSection) =>\n s.questions.flatMap((q: OneTrustAssessmentQuestion) =>\n (q.risks ?? []).flatMap((r) => r.riskId),\n ),\n ),\n );\n if (riskIds.length > 0) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching risks...`,\n );\n riskDetails = await map(\n riskIds,\n (riskId) => getOneTrustRisk({ oneTrust, riskId: riskId as string }),\n {\n concurrency: 5,\n },\n );\n }\n\n // enrich the assessments with user and risk details\n const enrichedAssessment = enrichOneTrustAssessment({\n assessment,\n assessmentDetails,\n riskDetails,\n creatorDetails: creator,\n approversDetails: approversDetails.flat(),\n respondentsDetails: respondentsDetails.flat(),\n });\n\n batchEnrichedAssessments.push(enrichedAssessment);\n },\n { concurrency: BATCH_SIZE },\n );\n\n // sync assessments in series to avoid concurrency bugs\n await mapSeries(\n batchEnrichedAssessments,\n async (enrichedAssessment, index) => {\n // the assessment's global index takes its batch into consideration\n const globalIndex = batch * BATCH_SIZE + index;\n\n if (dryRun && file) {\n // sync to file\n syncOneTrustAssessmentToDisk({\n assessment: enrichedAssessment,\n index: globalIndex,\n total: assessments.length,\n file,\n });\n } else if (transcend) {\n // sync to transcend\n await syncOneTrustAssessmentToTranscend({\n assessment: enrichedAssessment,\n transcend,\n total: assessments.length,\n index: globalIndex,\n });\n }\n },\n );\n });\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-US4VOSBF.cjs","../src/commands/migration/sync-ot/impl.ts","../src/lib/oneTrust/createOneTrustGotInstance.ts","../src/lib/oneTrust/helpers/oneTrustAssessmentToJson.ts","../src/lib/oneTrust/endpoints/getListOfOneTrustAssessments.ts","../src/lib/oneTrust/helpers/syncOneTrustAssessmentToTranscend.ts","../src/lib/oneTrust/helpers/syncOneTrustAssessmentsFromOneTrust.ts"],"names":["createOneTrustGotInstance","hostname","auth","got"],"mappings":"AAAA,y0BAAwC,wDAA0D,gCAA6B,wDAAoC,wDAAgD,wDAAyC,gFCEzO,oECFM,IAQZA,CAAAA,CAA4B,CAAC,CACxC,QAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CACF,CAAA,CAAA,EAMEC,aAAAA,CAAI,MAAA,CAAO,CACT,SAAA,CAAW,CAAA,QAAA,EAAWF,CAAQ,CAAA,CAAA;ACiBwB;AAIzC;AClCf,CAAA;ACsE2F,mBAAA;ACC3B","file":"/home/runner/work/cli/cli/dist/impl-US4VOSBF.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { logger } from '../../../logger';\nimport colors from 'colors';\nimport { createOneTrustGotInstance } from '../../../lib/oneTrust';\nimport {\n OneTrustFileFormat,\n OneTrustPullResource,\n OneTrustPullSource,\n} from '../../../enums';\nimport { buildTranscendGraphQLClient } from '../../../lib/graphql';\nimport {\n syncOneTrustAssessmentsFromFile,\n syncOneTrustAssessmentsFromOneTrust,\n} from '../../../lib/oneTrust/helpers';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\n// Command flag interface\nexport interface SyncOtCommandFlags {\n hostname?: string;\n oneTrustAuth?: string;\n source: OneTrustPullSource;\n transcendAuth?: string;\n transcendUrl: string;\n file?: string;\n resource: OneTrustPullResource;\n dryRun: boolean;\n debug: boolean;\n}\n\n// Command implementation\nexport async function syncOt(\n this: LocalContext,\n {\n hostname,\n oneTrustAuth,\n source,\n transcendAuth,\n transcendUrl,\n resource,\n file,\n dryRun,\n debug,\n }: SyncOtCommandFlags,\n): Promise<void> {\n // Must be able to authenticate to transcend to sync resources to it\n if (!dryRun && !transcendAuth) {\n throw new Error(\n // eslint-disable-next-line no-template-curly-in-string\n 'Must specify a \"transcendAuth\" parameter to sync resources to Transcend. e.g. --transcendAuth=${TRANSCEND_API_KEY}',\n );\n }\n\n // If trying to sync to disk, must specify a file path\n if (dryRun && !file) {\n throw new Error(\n 'Must set a \"file\" parameter when \"dryRun\" is \"true\". e.g. --file=./oneTrustAssessments.json',\n );\n }\n\n if (file) {\n const splitFile = file.split('.');\n if (splitFile.length < 2) {\n throw new Error(\n 'The \"file\" parameter has an invalid format. Expected a path with extensions. e.g. --file=./pathToFile.json.',\n );\n }\n if (splitFile.at(-1) !== OneTrustFileFormat.Json) {\n throw new Error(\n `Expected the format of the \"file\" parameters '${file}' to be '${\n OneTrustFileFormat.Json\n }', but got '${splitFile.at(-1)}'.`,\n );\n }\n }\n\n // if reading assessments from a OneTrust\n if (source === OneTrustPullSource.OneTrust) {\n // must specify the OneTrust hostname\n if (!hostname) {\n throw new Error(\n 'Missing required parameter \"hostname\". e.g. --hostname=customer.my.onetrust.com',\n );\n }\n // must specify the OneTrust auth\n if (!oneTrustAuth) {\n throw new Error(\n 'Missing required parameter \"oneTrustAuth\". e.g. --oneTrustAuth=$ONE_TRUST_AUTH_TOKEN',\n );\n }\n } else {\n // if reading the assessments from a file, must specify a file to read from\n if (!file) {\n throw new Error(\n 'Must specify a \"file\" parameter to read the OneTrust assessments from. e.g. --source=./oneTrustAssessments.json',\n );\n }\n\n // Cannot try reading from file and save assessments to a file simultaneously\n if (dryRun) {\n throw new Error(\n 'Cannot read and write to a file simultaneously.' +\n ` Emit the \"source\" parameter or set it to ${OneTrustPullSource.OneTrust} if \"dryRun\" is enabled.`,\n );\n }\n }\n\n doneInputValidation(this.process.exit);\n\n // instantiate a client to talk to OneTrust\n const oneTrust =\n hostname && oneTrustAuth\n ? createOneTrustGotInstance({\n hostname,\n auth: oneTrustAuth,\n })\n : undefined;\n\n // instantiate a client to talk to Transcend\n const transcend =\n transcendUrl && transcendAuth\n ? buildTranscendGraphQLClient(transcendUrl, transcendAuth)\n : undefined;\n\n try {\n if (resource === OneTrustPullResource.Assessments) {\n if (source === OneTrustPullSource.OneTrust && oneTrust) {\n await syncOneTrustAssessmentsFromOneTrust({\n oneTrust,\n file,\n dryRun,\n ...(transcend && { transcend }),\n });\n } else if (source === OneTrustPullSource.File && file && transcend) {\n await syncOneTrustAssessmentsFromFile({ file, transcend });\n }\n }\n } catch (err) {\n throw new Error(\n `An error occurred syncing the resource ${resource} from OneTrust: ${\n debug ? err.stack : err.message\n }`,\n );\n }\n\n // Indicate success\n logger.info(\n colors.green(\n `Successfully synced OneTrust ${resource} to ${\n dryRun ? `disk at \"${file}\"` : 'Transcend'\n }!`,\n ),\n );\n}\n","import got, { Got } from 'got';\n\n/**\n * Instantiate an instance of got that is capable of making requests to OneTrust\n *\n * @param param - information about the OneTrust URL\n * @returns The instance of got that is capable of making requests to the customer ingress\n */\nexport const createOneTrustGotInstance = ({\n hostname,\n auth,\n}: {\n /** Hostname of the OneTrust API */\n hostname: string;\n /** The OAuth access token */\n auth: string;\n}): Got =>\n got.extend({\n prefixUrl: `https://${hostname}`,\n headers: {\n accept: 'application/json',\n 'content-type': 'application/json',\n authorization: `Bearer ${auth}`,\n },\n });\n","import { OneTrustEnrichedAssessment } from '@transcend-io/privacy-types';\n\n/**\n * Converts the assessment into a json entry.\n *\n * @param param - information about the assessment and amount of entries\n * @returns a stringified json entry ready to be appended to a file\n */\nexport const oneTrustAssessmentToJson = ({\n assessment,\n index,\n total,\n wrap = true,\n}: {\n /** The assessment to convert */\n assessment: OneTrustEnrichedAssessment;\n /** The position of the assessment in the final Json object */\n index: number;\n /** The total amount of the assessments in the final Json object */\n total?: number;\n /** Whether to wrap every entry in brackets */\n wrap?: boolean;\n}): string => {\n let jsonEntry = '';\n // start with an opening bracket\n if (index === 0 || wrap) {\n jsonEntry = '[\\n';\n }\n\n const stringifiedAssessment = JSON.stringify(assessment);\n\n // Add comma for all items except the last one\n const comma = total && index < total - 1 && !wrap ? ',' : '';\n\n // write to file\n jsonEntry = `${jsonEntry + stringifiedAssessment + comma}\\n`;\n\n // end with closing bracket\n if ((total && index === total - 1) || wrap) {\n jsonEntry += '\\n]';\n }\n\n return jsonEntry;\n};\n","import { Got } from 'got';\nimport { logger } from '../../../logger';\nimport { decodeCodec } from '@transcend-io/type-utils';\nimport {\n OneTrustAssessment,\n OneTrustGetListOfAssessmentsResponse,\n} from '@transcend-io/privacy-types';\n\n/**\n * Fetch a list of all assessments from the OneTrust client.\n * ref: https://developer.onetrust.com/onetrust/reference/getallassessmentbasicdetailsusingget\n *\n * @param param - the information about the OneTrust client\n * @returns a list of OneTrustAssessment\n */\nexport const getListOfOneTrustAssessments = async ({\n oneTrust,\n}: {\n /** The OneTrust client instance */\n oneTrust: Got;\n}): Promise<OneTrustAssessment[]> => {\n let currentPage = 0;\n let totalPages = 1;\n let totalElements = 0;\n\n const allAssessments: OneTrustAssessment[] = [];\n\n while (currentPage < totalPages) {\n const { body } = await oneTrust.get(\n `api/assessment/v2/assessments?page=${currentPage}&size=2000`,\n );\n\n const { page, content } = decodeCodec(\n OneTrustGetListOfAssessmentsResponse,\n body,\n );\n allAssessments.push(...(content ?? []));\n if (currentPage === 0) {\n totalPages = page?.totalPages ?? 0;\n totalElements = page?.totalElements ?? 0;\n }\n currentPage += 1;\n\n // log progress\n logger.info(\n `Fetched ${allAssessments.length} of ${totalElements} assessments.`,\n );\n }\n\n return allAssessments;\n};\n","import { logger } from '../../../logger';\nimport colors from 'colors';\nimport { GraphQLClient } from 'graphql-request';\nimport {\n IMPORT_ONE_TRUST_ASSESSMENT_FORMS,\n makeGraphQLRequest,\n} from '../../graphql';\nimport { ImportOnetrustAssessmentsInput } from '../../../codecs';\nimport { OneTrustEnrichedAssessment } from '@transcend-io/privacy-types';\nimport { oneTrustAssessmentToJson } from './oneTrustAssessmentToJson';\n\nexport interface AssessmentForm {\n /** ID of Assessment Form */\n id: string;\n /** Title of Assessment Form */\n name: string;\n}\n\n/**\n * Write the assessment to a Transcend instance.\n *\n *\n * @param param - information about the assessment and Transcend instance to write to\n */\nexport const syncOneTrustAssessmentToTranscend = async ({\n transcend,\n assessment,\n total,\n index,\n}: {\n /** the Transcend client instance */\n transcend: GraphQLClient;\n /** the assessment to sync to Transcend */\n assessment: OneTrustEnrichedAssessment;\n /** The index of the assessment being written to the file */\n index: number;\n /** The total amount of assessments that we will write */\n total?: number;\n}): Promise<void> => {\n logger.info(\n colors.magenta(\n `Writing enriched assessment ${index + 1} ${\n total ? `of ${total} ` : ' '\n }to Transcend...`,\n ),\n );\n\n // convert the OneTrust assessment object into a json record\n const json = oneTrustAssessmentToJson({\n assessment,\n index,\n total,\n });\n\n // transform the json record into a valid input to the mutation\n const input: ImportOnetrustAssessmentsInput = {\n json,\n };\n\n try {\n await makeGraphQLRequest<{\n /** the importOneTrustAssessmentForms mutation */\n importOneTrustAssessmentForms: {\n /** Created Assessment Forms */\n assessmentForms: AssessmentForm[];\n };\n }>(transcend, IMPORT_ONE_TRUST_ASSESSMENT_FORMS, {\n input,\n });\n } catch (e) {\n logger.error(\n colors.red(\n `Failed to sync assessment ${index + 1} ${\n total ? `of ${total} ` : ' '\n }to Transcend.\\n` +\n `\\tAssessment Title: ${assessment.name}. Template Title: ${assessment.template.name}\\n`,\n ),\n );\n }\n};\n","import type { Got } from 'got';\nimport colors from 'colors';\nimport {\n getListOfOneTrustAssessments,\n getOneTrustAssessment,\n getOneTrustRisk,\n getOneTrustUser,\n} from '../endpoints';\nimport { mapSeries, map } from 'bluebird';\nimport { logger } from '../../../logger';\nimport {\n OneTrustAssessmentQuestion,\n OneTrustAssessmentSection,\n OneTrustEnrichedAssessment,\n OneTrustGetRiskResponse,\n OneTrustGetUserResponse,\n} from '@transcend-io/privacy-types';\nimport { uniq } from 'lodash-es';\nimport { enrichOneTrustAssessment } from './enrichOneTrustAssessment';\nimport { syncOneTrustAssessmentToDisk } from './syncOneTrustAssessmentToDisk';\nimport { GraphQLClient } from 'graphql-request';\nimport { syncOneTrustAssessmentToTranscend } from './syncOneTrustAssessmentToTranscend';\n\nexport interface AssessmentForm {\n /** ID of Assessment Form */\n id: string;\n /** Title of Assessment Form */\n name: string;\n}\n\n/**\n * Reads all the assessments from a OneTrust instance and syncs them to Transcend or to Disk.\n *\n * @param param - the information about the assessment, its OneTrust source, and destination (disk or Transcend)\n */\nexport const syncOneTrustAssessmentsFromOneTrust = async ({\n oneTrust,\n file,\n dryRun,\n transcend,\n}: {\n /** the OneTrust client instance */\n oneTrust: Got;\n /** the Transcend client instance */\n transcend?: GraphQLClient;\n /** Whether to write to file instead of syncing to Transcend */\n dryRun: boolean;\n /** the path to the file in case dryRun is true */\n file?: string;\n}): Promise<void> => {\n // fetch the list of all assessments in the OneTrust organization\n logger.info('Getting list of all assessments from OneTrust...');\n const assessments = await getListOfOneTrustAssessments({ oneTrust });\n\n // a cache of OneTrust users so we avoid requesting already fetched users\n const oneTrustCachedUsers: Record<string, OneTrustGetUserResponse> = {};\n\n // split all assessments in batches, so we can process some of steps in parallel\n const BATCH_SIZE = 5;\n const assessmentBatches = Array.from(\n {\n length: Math.ceil(assessments.length / BATCH_SIZE),\n },\n (_, i) => assessments.slice(i * BATCH_SIZE, (i + 1) * BATCH_SIZE),\n );\n\n // process each batch and sync the batch right away so it's garbage collected and we don't run out of memory\n await mapSeries(assessmentBatches, async (assessmentBatch, batch) => {\n const batchEnrichedAssessments: OneTrustEnrichedAssessment[] = [];\n\n // fetch assessment details from OneTrust in parallel\n await map(\n assessmentBatch,\n async (assessment, index) => {\n const assessmentNumber = BATCH_SIZE * batch + index + 1;\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching details...`,\n );\n const { templateName, assessmentId } = assessment;\n const assessmentDetails = await getOneTrustAssessment({\n oneTrust,\n assessmentId,\n });\n // fetch assessment's creator information\n const creatorId = assessmentDetails.createdBy.id;\n let creator = oneTrustCachedUsers[creatorId];\n if (!creator) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching creator...`,\n );\n try {\n creator = await getOneTrustUser({\n oneTrust,\n userId: creatorId,\n });\n oneTrustCachedUsers[creatorId] = creator;\n } catch (e) {\n logger.warn(\n colors.yellow(\n `[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch form creator.` +\n `\\tcreatorId: ${creatorId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`,\n ),\n );\n }\n }\n\n // fetch assessment approvers information\n const { approvers } = assessmentDetails;\n let approversDetails: OneTrustGetUserResponse[][] = [];\n if (approvers.length > 0) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching approvers...`,\n );\n approversDetails = await map(\n approvers.map(({ id }) => id),\n async (userId) => {\n try {\n let approver = oneTrustCachedUsers[userId];\n if (!approver) {\n approver = await getOneTrustUser({ oneTrust, userId });\n oneTrustCachedUsers[userId] = approver;\n }\n return [approver];\n } catch (e) {\n logger.warn(\n colors.yellow(\n `[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch a form approver.` +\n `\\tapproverId: ${userId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`,\n ),\n );\n return [];\n }\n },\n { concurrency: 5 },\n );\n }\n\n // fetch assessment internal respondents information\n const { respondents } = assessmentDetails;\n // if a user is an internal respondents, their 'name' field can't be an email.\n const internalRespondents = respondents.filter(\n (r) => !r.name.includes('@'),\n );\n let respondentsDetails: OneTrustGetUserResponse[][] = [];\n if (internalRespondents.length > 0) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching respondents...`,\n );\n respondentsDetails = await map(\n internalRespondents.map(({ id }) => id),\n async (userId) => {\n try {\n let respondent = oneTrustCachedUsers[userId];\n if (!respondent) {\n respondent = await getOneTrustUser({ oneTrust, userId });\n oneTrustCachedUsers[userId] = respondent;\n }\n return [respondent];\n } catch (e) {\n logger.warn(\n colors.yellow(\n `[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch a respondent.` +\n `\\trespondentId: ${userId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`,\n ),\n );\n return [];\n }\n },\n { concurrency: 5 },\n );\n }\n\n // fetch assessment risk information\n let riskDetails: OneTrustGetRiskResponse[] = [];\n const riskIds = uniq(\n assessmentDetails.sections.flatMap((s: OneTrustAssessmentSection) =>\n s.questions.flatMap((q: OneTrustAssessmentQuestion) =>\n (q.risks ?? []).flatMap((r) => r.riskId),\n ),\n ),\n );\n if (riskIds.length > 0) {\n logger.info(\n `[assessment ${assessmentNumber} of ${assessments.length}]: fetching risks...`,\n );\n riskDetails = await map(\n riskIds,\n (riskId) => getOneTrustRisk({ oneTrust, riskId: riskId as string }),\n {\n concurrency: 5,\n },\n );\n }\n\n // enrich the assessments with user and risk details\n const enrichedAssessment = enrichOneTrustAssessment({\n assessment,\n assessmentDetails,\n riskDetails,\n creatorDetails: creator,\n approversDetails: approversDetails.flat(),\n respondentsDetails: respondentsDetails.flat(),\n });\n\n batchEnrichedAssessments.push(enrichedAssessment);\n },\n { concurrency: BATCH_SIZE },\n );\n\n // sync assessments in series to avoid concurrency bugs\n await mapSeries(\n batchEnrichedAssessments,\n async (enrichedAssessment, index) => {\n // the assessment's global index takes its batch into consideration\n const globalIndex = batch * BATCH_SIZE + index;\n\n if (dryRun && file) {\n // sync to file\n syncOneTrustAssessmentToDisk({\n assessment: enrichedAssessment,\n index: globalIndex,\n total: assessments.length,\n file,\n });\n } else if (transcend) {\n // sync to transcend\n await syncOneTrustAssessmentToTranscend({\n assessment: enrichedAssessment,\n transcend,\n total: assessments.length,\n index: globalIndex,\n });\n }\n },\n );\n });\n};\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkS3HIPD4Jcjs = require('./chunk-S3HIPD4J.cjs');var _chunkSW5CIF5Dcjs = require('./chunk-SW5CIF5D.cjs');var _chunkNKFAEQ2Qcjs = require('./chunk-NKFAEQ2Q.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');require('./chunk-QEM6S2W7.cjs');var _chunkRSN3DUTPcjs = require('./chunk-RSN3DUTP.cjs');require('./chunk-LCDYXJN6.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkE57K4DGXcjs = require('./chunk-E57K4DGX.cjs');require('./chunk-Q7I37FJV.cjs');var _path = require('path');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);var _fs = require('fs');async function J({auth:F,dataFlowsYmlFolder:r,output:x,ignoreYmls:C=[],transcendUrl:N}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit),(!_fs.existsSync.call(void 0, r)||!_fs.lstatSync.call(void 0, r).isDirectory())&&(_chunkZUNVPK23cjs.a.error(_colors2.default.red(`Folder does not exist: "${r}"`)),this.process.exit(1));let k=C.map(t=>t.split(".")[0]),l=_chunkNKFAEQ2Qcjs.c.call(void 0, r).map(t=>{let{"data-flows":o=[]}=_chunkSW5CIF5Dcjs.d.call(void 0, _path.join.call(void 0, r,t)),{adTechDataSilos:m,siteTechDataSilos:i}=_chunkS3HIPD4Jcjs.a.call(void 0, o,{serviceToSupportedIntegration:d,serviceToTitle:u});return{adTechDataSilos:m,siteTechDataSilos:i,organizationName:t.split(".")[0]}}),a={};l.forEach(({adTechDataSilos:t,siteTechDataSilos:o,organizationName:m})=>{[...t,...o].forEach(e=>{let n=e["outer-type"]||e.integrationName;a[n]||(a[n]=[]),a[n].push(m),a[n]=[...new Set(a[n])]})});let p=[...new Set(l.map(({adTechDataSilos:t})=>t.map(o=>o["outer-type"]||o.integrationName)).flat())],f=_chunkE57K4DGXcjs.c.call(void 0, [...new Set(l.map(({siteTechDataSilos:t})=>t.map(o=>o["outer-type"]||o.integrationName)).flat())],p),s={};l.forEach(({adTechDataSilos:t,siteTechDataSilos:o})=>{[...t,...o].forEach(i=>{let e=i["outer-type"]||i.integrationName,n=_optionalChain([i, 'access', _ => _.attributes, 'optionalAccess', _2 => _2.find, 'call', _3 => _3(E=>E.key==="Found On Domain")]);s[e]||(s[e]=[]),s[e].push(..._optionalChain([n, 'optionalAccess', _4 => _4.values])||[]),s[e]=[...new Set(s[e])]})});let A=_chunkRSN3DUTPcjs.vc.call(void 0, N,F),{serviceToTitle:u,serviceToSupportedIntegration:d}=await _chunkRSN3DUTPcjs.rd.call(void 0, A),h=[...p,...f].map(t=>({title:u[t],...d[t]?{integrationName:t}:{integrationName:"promptAPerson","outer-type":t},attributes:[{key:"Tech Type",values:["Ad Tech"]},{key:"Business Units",values:_chunkE57K4DGXcjs.c.call(void 0, a[t]||[],k)},{key:"Found On Domain",values:s[t]||[]}]}));_chunkZUNVPK23cjs.a.log(`Total Services: ${h.length}`),_chunkZUNVPK23cjs.a.log(`Ad Tech Services: ${p.length}`),_chunkZUNVPK23cjs.a.log(`Site Tech Services: ${f.length}`),_chunkSW5CIF5Dcjs.e.call(void 0, x,{"data-silos":h})}exports.deriveDataSilosFromDataFlowsCrossInstance = J;
2
- //# sourceMappingURL=impl-CWWICDPC.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkHI7ACKKBcjs = require('./chunk-HI7ACKKB.cjs');var _chunkSW5CIF5Dcjs = require('./chunk-SW5CIF5D.cjs');var _chunkXKYSQSROcjs = require('./chunk-XKYSQSRO.cjs');require('./chunk-QEM6S2W7.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');var _chunkQPIUQDJ6cjs = require('./chunk-QPIUQDJ6.cjs');require('./chunk-LCDYXJN6.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkMGAJ7ILDcjs = require('./chunk-MGAJ7ILD.cjs');require('./chunk-Q7I37FJV.cjs');var _path = require('path');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);var _fs = require('fs');async function J({auth:F,dataFlowsYmlFolder:r,output:x,ignoreYmls:C=[],transcendUrl:N}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit),(!_fs.existsSync.call(void 0, r)||!_fs.lstatSync.call(void 0, r).isDirectory())&&(_chunkZUNVPK23cjs.a.error(_colors2.default.red(`Folder does not exist: "${r}"`)),this.process.exit(1));let k=C.map(t=>t.split(".")[0]),l=_chunkXKYSQSROcjs.c.call(void 0, r).map(t=>{let{"data-flows":o=[]}=_chunkSW5CIF5Dcjs.d.call(void 0, _path.join.call(void 0, r,t)),{adTechDataSilos:m,siteTechDataSilos:i}=_chunkHI7ACKKBcjs.a.call(void 0, o,{serviceToSupportedIntegration:d,serviceToTitle:u});return{adTechDataSilos:m,siteTechDataSilos:i,organizationName:t.split(".")[0]}}),a={};l.forEach(({adTechDataSilos:t,siteTechDataSilos:o,organizationName:m})=>{[...t,...o].forEach(e=>{let n=e["outer-type"]||e.integrationName;a[n]||(a[n]=[]),a[n].push(m),a[n]=[...new Set(a[n])]})});let p=[...new Set(l.map(({adTechDataSilos:t})=>t.map(o=>o["outer-type"]||o.integrationName)).flat())],f=_chunkMGAJ7ILDcjs.c.call(void 0, [...new Set(l.map(({siteTechDataSilos:t})=>t.map(o=>o["outer-type"]||o.integrationName)).flat())],p),s={};l.forEach(({adTechDataSilos:t,siteTechDataSilos:o})=>{[...t,...o].forEach(i=>{let e=i["outer-type"]||i.integrationName,n=_optionalChain([i, 'access', _ => _.attributes, 'optionalAccess', _2 => _2.find, 'call', _3 => _3(E=>E.key==="Found On Domain")]);s[e]||(s[e]=[]),s[e].push(..._optionalChain([n, 'optionalAccess', _4 => _4.values])||[]),s[e]=[...new Set(s[e])]})});let A=_chunkQPIUQDJ6cjs.vc.call(void 0, N,F),{serviceToTitle:u,serviceToSupportedIntegration:d}=await _chunkQPIUQDJ6cjs.rd.call(void 0, A),h=[...p,...f].map(t=>({title:u[t],...d[t]?{integrationName:t}:{integrationName:"promptAPerson","outer-type":t},attributes:[{key:"Tech Type",values:["Ad Tech"]},{key:"Business Units",values:_chunkMGAJ7ILDcjs.c.call(void 0, a[t]||[],k)},{key:"Found On Domain",values:s[t]||[]}]}));_chunkZUNVPK23cjs.a.log(`Total Services: ${h.length}`),_chunkZUNVPK23cjs.a.log(`Ad Tech Services: ${p.length}`),_chunkZUNVPK23cjs.a.log(`Site Tech Services: ${f.length}`),_chunkSW5CIF5Dcjs.e.call(void 0, x,{"data-silos":h})}exports.deriveDataSilosFromDataFlowsCrossInstance = J;
2
+ //# sourceMappingURL=impl-UZE2LR6H.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-CWWICDPC.cjs","../src/commands/inventory/derive-data-silos-from-data-flows-cross-instance/impl.ts"],"names":["deriveDataSilosFromDataFlowsCrossInstance","auth","dataFlowsYmlFolder","output","ignoreYmls","transcendUrl","doneInputValidation","existsSync","lstatSync","logger","colors","instancesToIgnore","x","dataSiloInputs","listFiles","directory","dataFlows","readTranscendYaml","join","adTechDataSilos","siteTechDataSilos","dataFlowsToDataSilos","serviceToSupportedIntegration","serviceToTitle","serviceToInstance","organizationName","dataSilo","service","adTechIntegrations","silo","siteTechIntegrations","difference_default","serviceToFoundOnDomain","foundOnDomain","attr","client","buildTranscendGraphQLClient","fetchAndIndexCatalogs","dataSilos"],"mappings":"AAAA,quBAAwC,wDAAgD,wDAAyC,wDAAyC,gCAA6B,wDAAkD,gCAA6B,wDAAyC,wDAAyC,gCAA6B,4BCKhX,gFAEF,wBAImB,MAgBtC,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,kBAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,CAAC,CAAA,CACd,YAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAAA,CAInC,CAACC,4BAAAA,CAA6B,CAAA,EAC9B,CAACC,2BAAAA,CAA4B,CAAA,CAAE,WAAA,CAAY,CAAA,CAAA,EAAA,CAE3CC,mBAAAA,CAAO,KAAA,CAAMC,gBAAAA,CAAO,GAAA,CAAI,CAAA,wBAAA,EAA2BR,CAAkB,CAAA,CAAA,CAAG,CAAC,CAAA,CACzE,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAIrB,IAAMS,CAAAA,CAAoBP,CAAAA,CAAW,GAAA,CAAKQ,CAAAA,EAAMA,CAAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA,CAGzDC,CAAAA,CAAiBC,iCAAAA,CAA4B,CAAA,CAAE,GAAA,CAAKC,CAAAA,EAAc,CAEtE,GAAM,CAAE,YAAA,CAAcC,CAAAA,CAAY,CAAC,CAAE,CAAA,CAAIC,iCAAAA,wBACvCC,CAAKhB,CAAoBa,CAAS,CACpC,CAAA,CAGM,CAAE,eAAA,CAAAI,CAAAA,CAAiB,iBAAA,CAAAC,CAAkB,CAAA,CAAIC,iCAAAA,CAC7CL,CACA,CACE,6BAAA,CAAAM,CAAAA,CACA,cAAA,CAAAC,CACF,CACF,CAAA,CAEA,MAAO,CACL,eAAA,CAAAJ,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,gBAAA,CAAkBL,CAAAA,CAAU,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAC1C,CACF,CAAC,CAAA,CAGKS,CAAAA,CAAiD,CAAC,CAAA,CACxDX,CAAAA,CAAe,OAAA,CACb,CAAC,CAAE,eAAA,CAAAM,CAAAA,CAAiB,iBAAA,CAAAC,CAAAA,CAAmB,gBAAA,CAAAK,CAAiB,CAAA,CAAA,EAAM,CACvC,CAAC,GAAGN,CAAAA,CAAiB,GAAGC,CAAiB,CAAA,CACjD,OAAA,CAASM,CAAAA,EAAa,CACjC,IAAMC,CAAAA,CAAUD,CAAAA,CAAS,YAAY,CAAA,EAAKA,CAAAA,CAAS,eAAA,CAE9CF,CAAAA,CAAkBG,CAAO,CAAA,EAAA,CAC5BH,CAAAA,CAAkBG,CAAO,CAAA,CAAI,CAAC,CAAA,CAAA,CAEhCH,CAAAA,CAAkBG,CAAO,CAAA,CAAG,IAAA,CAAKF,CAAgB,CAAA,CACjDD,CAAAA,CAAkBG,CAAO,CAAA,CAAI,CAAC,GAAG,IAAI,GAAA,CAAIH,CAAAA,CAAkBG,CAAO,CAAC,CAAC,CACtE,CAAC,CACH,CACF,CAAA,CAGA,IAAMC,CAAAA,CAAqB,CACzB,GAAG,IAAI,GAAA,CACLf,CAAAA,CACG,GAAA,CAAI,CAAC,CAAE,eAAA,CAAAM,CAAgB,CAAA,CAAA,EACtBA,CAAAA,CAAgB,GAAA,CACbU,CAAAA,EAASA,CAAAA,CAAK,YAAY,CAAA,EAAKA,CAAAA,CAAK,eACvC,CACF,CAAA,CACC,IAAA,CAAK,CACV,CACF,CAAA,CAGMC,CAAAA,CAAuBC,iCAAAA,CAEzB,GAAG,IAAI,GAAA,CACLlB,CAAAA,CACG,GAAA,CAAI,CAAC,CAAE,iBAAA,CAAAO,CAAkB,CAAA,CAAA,EACxBA,CAAAA,CAAkB,GAAA,CACfS,CAAAA,EAASA,CAAAA,CAAK,YAAY,CAAA,EAAKA,CAAAA,CAAK,eACvC,CACF,CAAA,CACC,IAAA,CAAK,CACV,CACF,CAAA,CACAD,CACF,CAAA,CAGMI,CAAAA,CAAsD,CAAC,CAAA,CAC7DnB,CAAAA,CAAe,OAAA,CAAQ,CAAC,CAAE,eAAA,CAAAM,CAAAA,CAAiB,iBAAA,CAAAC,CAAkB,CAAA,CAAA,EAAM,CAC5C,CAAC,GAAGD,CAAAA,CAAiB,GAAGC,CAAiB,CAAA,CACjD,OAAA,CAASM,CAAAA,EAAa,CACjC,IAAMC,CAAAA,CAAUD,CAAAA,CAAS,YAAY,CAAA,EAAKA,CAAAA,CAAS,eAAA,CAC7CO,CAAAA,iBAAgBP,CAAAA,mBAAS,UAAA,6BAAY,IAAA,mBACxCQ,CAAAA,EAASA,CAAAA,CAAK,GAAA,GAAQ,iBACzB,GAAA,CAEKF,CAAAA,CAAuBL,CAAO,CAAA,EAAA,CACjCK,CAAAA,CAAuBL,CAAO,CAAA,CAAI,CAAC,CAAA,CAAA,CAErCK,CAAAA,CAAuBL,CAAO,CAAA,CAAG,IAAA,CAAK,mBAAIM,CAAAA,6BAAe,QAAA,EAAU,CAAC,CAAE,CAAA,CACtED,CAAAA,CAAuBL,CAAO,CAAA,CAAI,CAChC,GAAG,IAAI,GAAA,CAAIK,CAAAA,CAAuBL,CAAO,CAAC,CAC5C,CACF,CAAC,CACH,CAAC,CAAA,CAGD,IAAMQ,CAAAA,CAASC,kCAAAA,CAA4B/B,CAAcJ,CAAI,CAAA,CACvD,CAAE,cAAA,CAAAsB,CAAAA,CAAgB,6BAAA,CAAAD,CAA8B,CAAA,CACpD,MAAMe,kCAAAA,CAA4B,CAAA,CAG9BC,CAAAA,CAAY,CAAC,GAAGV,CAAAA,CAAoB,GAAGE,CAAoB,CAAA,CAAE,GAAA,CAChEH,CAAAA,EAAAA,CAAa,CACZ,KAAA,CAAOJ,CAAAA,CAAeI,CAAO,CAAA,CAC7B,GAAIL,CAAAA,CAA8BK,CAAO,CAAA,CACrC,CAAE,eAAA,CAAiBA,CAAQ,CAAA,CAC3B,CAAE,eAAA,CAAiB,eAAA,CAAiB,YAAA,CAAcA,CAAQ,CAAA,CAC9D,UAAA,CAAY,CACV,CACE,GAAA,CAAK,WAAA,CACL,MAAA,CAAQ,CAAC,SAAS,CACpB,CAAA,CACA,CACE,GAAA,CAAK,gBAAA,CACL,MAAA,CAAQI,iCAAAA,CACNP,CAAkBG,CAAO,CAAA,EAAK,CAAC,CAAA,CAC/BhB,CACF,CACF,CAAA,CACA,CACE,GAAA,CAAK,iBAAA,CACL,MAAA,CAAQqB,CAAAA,CAAuBL,CAAO,CAAA,EAAK,CAAC,CAC9C,CACF,CACF,CAAA,CACF,CAAA,CAGAlB,mBAAAA,CAAO,GAAA,CAAI,CAAA,gBAAA,EAAmB6B,CAAAA,CAAU,MAAM,CAAA,CAAA","file":"/home/runner/work/cli/cli/dist/impl-CWWICDPC.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport {\n fetchAndIndexCatalogs,\n buildTranscendGraphQLClient,\n} from '../../../lib/graphql';\nimport { join } from 'node:path';\nimport { difference } from 'lodash-es';\nimport colors from 'colors';\nimport { logger } from '../../../logger';\nimport { dataFlowsToDataSilos } from '../../../lib/consent-manager/dataFlowsToDataSilos';\nimport { DataFlowInput } from '../../../codecs';\nimport { existsSync, lstatSync } from 'node:fs';\nimport { listFiles } from '../../../lib/api-keys';\nimport {\n readTranscendYaml,\n writeTranscendYaml,\n} from '../../../lib/readTranscendYaml';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface DeriveDataSilosFromDataFlowsCrossInstanceCommandFlags {\n auth: string;\n dataFlowsYmlFolder: string;\n output: string;\n ignoreYmls?: string[];\n transcendUrl: string;\n}\n\nexport async function deriveDataSilosFromDataFlowsCrossInstance(\n this: LocalContext,\n {\n auth,\n dataFlowsYmlFolder,\n output,\n ignoreYmls = [],\n transcendUrl,\n }: DeriveDataSilosFromDataFlowsCrossInstanceCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Ensure folder is passed\n if (\n !existsSync(dataFlowsYmlFolder) ||\n !lstatSync(dataFlowsYmlFolder).isDirectory()\n ) {\n logger.error(colors.red(`Folder does not exist: \"${dataFlowsYmlFolder}\"`));\n this.process.exit(1);\n }\n\n // Ignore the data flows in these yml files\n const instancesToIgnore = ignoreYmls.map((x) => x.split('.')[0]);\n\n // Map over each data flow yml file and convert to data silo configurations\n const dataSiloInputs = listFiles(dataFlowsYmlFolder).map((directory) => {\n // read in the data flows for a specific instance\n const { 'data-flows': dataFlows = [] } = readTranscendYaml(\n join(dataFlowsYmlFolder, directory),\n );\n\n // map the data flows to data silos\n const { adTechDataSilos, siteTechDataSilos } = dataFlowsToDataSilos(\n dataFlows as DataFlowInput[],\n {\n serviceToSupportedIntegration,\n serviceToTitle,\n },\n );\n\n return {\n adTechDataSilos,\n siteTechDataSilos,\n organizationName: directory.split('.')[0],\n };\n });\n\n // Mapping from service name to instances that have that service\n const serviceToInstance: { [k in string]: string[] } = {};\n dataSiloInputs.forEach(\n ({ adTechDataSilos, siteTechDataSilos, organizationName }) => {\n const allDataSilos = [...adTechDataSilos, ...siteTechDataSilos];\n allDataSilos.forEach((dataSilo) => {\n const service = dataSilo['outer-type'] || dataSilo.integrationName;\n // create mapping to instance\n if (!serviceToInstance[service]) {\n serviceToInstance[service] = [];\n }\n serviceToInstance[service]!.push(organizationName);\n serviceToInstance[service] = [...new Set(serviceToInstance[service])];\n });\n },\n );\n\n // List of ad tech integrations\n const adTechIntegrations = [\n ...new Set(\n dataSiloInputs\n .map(({ adTechDataSilos }) =>\n adTechDataSilos.map(\n (silo) => silo['outer-type'] || silo.integrationName,\n ),\n )\n .flat(),\n ),\n ];\n\n // List of site tech integrations\n const siteTechIntegrations = difference(\n [\n ...new Set(\n dataSiloInputs\n .map(({ siteTechDataSilos }) =>\n siteTechDataSilos.map(\n (silo) => silo['outer-type'] || silo.integrationName,\n ),\n )\n .flat(),\n ),\n ],\n adTechIntegrations,\n );\n\n // Mapping from service name to list of\n const serviceToFoundOnDomain: { [k in string]: string[] } = {};\n dataSiloInputs.forEach(({ adTechDataSilos, siteTechDataSilos }) => {\n const allDataSilos = [...adTechDataSilos, ...siteTechDataSilos];\n allDataSilos.forEach((dataSilo) => {\n const service = dataSilo['outer-type'] || dataSilo.integrationName;\n const foundOnDomain = dataSilo.attributes?.find(\n (attr) => attr.key === 'Found On Domain',\n );\n // create mapping to instance\n if (!serviceToFoundOnDomain[service]) {\n serviceToFoundOnDomain[service] = [];\n }\n serviceToFoundOnDomain[service]!.push(...(foundOnDomain?.values || []));\n serviceToFoundOnDomain[service] = [\n ...new Set(serviceToFoundOnDomain[service]),\n ];\n });\n });\n\n // Fetch all integrations in the catalog\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const { serviceToTitle, serviceToSupportedIntegration } =\n await fetchAndIndexCatalogs(client);\n\n // construct the aggregated data silo inputs\n const dataSilos = [...adTechIntegrations, ...siteTechIntegrations].map(\n (service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', 'outer-type': service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Ad Tech'],\n },\n {\n key: 'Business Units',\n values: difference(\n serviceToInstance[service] || [],\n instancesToIgnore,\n ),\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }),\n );\n\n // Log output\n logger.log(`Total Services: ${dataSilos.length}`);\n logger.log(`Ad Tech Services: ${adTechIntegrations.length}`);\n logger.log(`Site Tech Services: ${siteTechIntegrations.length}`);\n\n // Write to yaml\n writeTranscendYaml(output, {\n 'data-silos': dataSilos,\n });\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-UZE2LR6H.cjs","../src/commands/inventory/derive-data-silos-from-data-flows-cross-instance/impl.ts"],"names":["deriveDataSilosFromDataFlowsCrossInstance","auth","dataFlowsYmlFolder","output","ignoreYmls","transcendUrl","doneInputValidation","existsSync","lstatSync","logger","colors","instancesToIgnore","x","dataSiloInputs","listFiles","directory","dataFlows","readTranscendYaml","join","adTechDataSilos","siteTechDataSilos","dataFlowsToDataSilos","serviceToSupportedIntegration","serviceToTitle","serviceToInstance","organizationName","dataSilo","service","adTechIntegrations","silo","siteTechIntegrations","difference_default","serviceToFoundOnDomain","foundOnDomain","attr","client","buildTranscendGraphQLClient","fetchAndIndexCatalogs","dataSilos"],"mappings":"AAAA,quBAAwC,wDAAgD,wDAAyC,gCAA6B,wDAAyC,wDAAkD,gCAA6B,wDAAyC,wDAAyC,gCAA6B,4BCKhX,gFAEF,wBAImB,MAgBtC,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,kBAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,CAAC,CAAA,CACd,YAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAAA,CAInC,CAACC,4BAAAA,CAA6B,CAAA,EAC9B,CAACC,2BAAAA,CAA4B,CAAA,CAAE,WAAA,CAAY,CAAA,CAAA,EAAA,CAE3CC,mBAAAA,CAAO,KAAA,CAAMC,gBAAAA,CAAO,GAAA,CAAI,CAAA,wBAAA,EAA2BR,CAAkB,CAAA,CAAA,CAAG,CAAC,CAAA,CACzE,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAIrB,IAAMS,CAAAA,CAAoBP,CAAAA,CAAW,GAAA,CAAKQ,CAAAA,EAAMA,CAAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA,CAGzDC,CAAAA,CAAiBC,iCAAAA,CAA4B,CAAA,CAAE,GAAA,CAAKC,CAAAA,EAAc,CAEtE,GAAM,CAAE,YAAA,CAAcC,CAAAA,CAAY,CAAC,CAAE,CAAA,CAAIC,iCAAAA,wBACvCC,CAAKhB,CAAoBa,CAAS,CACpC,CAAA,CAGM,CAAE,eAAA,CAAAI,CAAAA,CAAiB,iBAAA,CAAAC,CAAkB,CAAA,CAAIC,iCAAAA,CAC7CL,CACA,CACE,6BAAA,CAAAM,CAAAA,CACA,cAAA,CAAAC,CACF,CACF,CAAA,CAEA,MAAO,CACL,eAAA,CAAAJ,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,gBAAA,CAAkBL,CAAAA,CAAU,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAC1C,CACF,CAAC,CAAA,CAGKS,CAAAA,CAAiD,CAAC,CAAA,CACxDX,CAAAA,CAAe,OAAA,CACb,CAAC,CAAE,eAAA,CAAAM,CAAAA,CAAiB,iBAAA,CAAAC,CAAAA,CAAmB,gBAAA,CAAAK,CAAiB,CAAA,CAAA,EAAM,CACvC,CAAC,GAAGN,CAAAA,CAAiB,GAAGC,CAAiB,CAAA,CACjD,OAAA,CAASM,CAAAA,EAAa,CACjC,IAAMC,CAAAA,CAAUD,CAAAA,CAAS,YAAY,CAAA,EAAKA,CAAAA,CAAS,eAAA,CAE9CF,CAAAA,CAAkBG,CAAO,CAAA,EAAA,CAC5BH,CAAAA,CAAkBG,CAAO,CAAA,CAAI,CAAC,CAAA,CAAA,CAEhCH,CAAAA,CAAkBG,CAAO,CAAA,CAAG,IAAA,CAAKF,CAAgB,CAAA,CACjDD,CAAAA,CAAkBG,CAAO,CAAA,CAAI,CAAC,GAAG,IAAI,GAAA,CAAIH,CAAAA,CAAkBG,CAAO,CAAC,CAAC,CACtE,CAAC,CACH,CACF,CAAA,CAGA,IAAMC,CAAAA,CAAqB,CACzB,GAAG,IAAI,GAAA,CACLf,CAAAA,CACG,GAAA,CAAI,CAAC,CAAE,eAAA,CAAAM,CAAgB,CAAA,CAAA,EACtBA,CAAAA,CAAgB,GAAA,CACbU,CAAAA,EAASA,CAAAA,CAAK,YAAY,CAAA,EAAKA,CAAAA,CAAK,eACvC,CACF,CAAA,CACC,IAAA,CAAK,CACV,CACF,CAAA,CAGMC,CAAAA,CAAuBC,iCAAAA,CAEzB,GAAG,IAAI,GAAA,CACLlB,CAAAA,CACG,GAAA,CAAI,CAAC,CAAE,iBAAA,CAAAO,CAAkB,CAAA,CAAA,EACxBA,CAAAA,CAAkB,GAAA,CACfS,CAAAA,EAASA,CAAAA,CAAK,YAAY,CAAA,EAAKA,CAAAA,CAAK,eACvC,CACF,CAAA,CACC,IAAA,CAAK,CACV,CACF,CAAA,CACAD,CACF,CAAA,CAGMI,CAAAA,CAAsD,CAAC,CAAA,CAC7DnB,CAAAA,CAAe,OAAA,CAAQ,CAAC,CAAE,eAAA,CAAAM,CAAAA,CAAiB,iBAAA,CAAAC,CAAkB,CAAA,CAAA,EAAM,CAC5C,CAAC,GAAGD,CAAAA,CAAiB,GAAGC,CAAiB,CAAA,CACjD,OAAA,CAASM,CAAAA,EAAa,CACjC,IAAMC,CAAAA,CAAUD,CAAAA,CAAS,YAAY,CAAA,EAAKA,CAAAA,CAAS,eAAA,CAC7CO,CAAAA,iBAAgBP,CAAAA,mBAAS,UAAA,6BAAY,IAAA,mBACxCQ,CAAAA,EAASA,CAAAA,CAAK,GAAA,GAAQ,iBACzB,GAAA,CAEKF,CAAAA,CAAuBL,CAAO,CAAA,EAAA,CACjCK,CAAAA,CAAuBL,CAAO,CAAA,CAAI,CAAC,CAAA,CAAA,CAErCK,CAAAA,CAAuBL,CAAO,CAAA,CAAG,IAAA,CAAK,mBAAIM,CAAAA,6BAAe,QAAA,EAAU,CAAC,CAAE,CAAA,CACtED,CAAAA,CAAuBL,CAAO,CAAA,CAAI,CAChC,GAAG,IAAI,GAAA,CAAIK,CAAAA,CAAuBL,CAAO,CAAC,CAC5C,CACF,CAAC,CACH,CAAC,CAAA,CAGD,IAAMQ,CAAAA,CAASC,kCAAAA,CAA4B/B,CAAcJ,CAAI,CAAA,CACvD,CAAE,cAAA,CAAAsB,CAAAA,CAAgB,6BAAA,CAAAD,CAA8B,CAAA,CACpD,MAAMe,kCAAAA,CAA4B,CAAA,CAG9BC,CAAAA,CAAY,CAAC,GAAGV,CAAAA,CAAoB,GAAGE,CAAoB,CAAA,CAAE,GAAA,CAChEH,CAAAA,EAAAA,CAAa,CACZ,KAAA,CAAOJ,CAAAA,CAAeI,CAAO,CAAA,CAC7B,GAAIL,CAAAA,CAA8BK,CAAO,CAAA,CACrC,CAAE,eAAA,CAAiBA,CAAQ,CAAA,CAC3B,CAAE,eAAA,CAAiB,eAAA,CAAiB,YAAA,CAAcA,CAAQ,CAAA,CAC9D,UAAA,CAAY,CACV,CACE,GAAA,CAAK,WAAA,CACL,MAAA,CAAQ,CAAC,SAAS,CACpB,CAAA,CACA,CACE,GAAA,CAAK,gBAAA,CACL,MAAA,CAAQI,iCAAAA,CACNP,CAAkBG,CAAO,CAAA,EAAK,CAAC,CAAA,CAC/BhB,CACF,CACF,CAAA,CACA,CACE,GAAA,CAAK,iBAAA,CACL,MAAA,CAAQqB,CAAAA,CAAuBL,CAAO,CAAA,EAAK,CAAC,CAC9C,CACF,CACF,CAAA,CACF,CAAA,CAGAlB,mBAAAA,CAAO,GAAA,CAAI,CAAA,gBAAA,EAAmB6B,CAAAA,CAAU,MAAM,CAAA,CAAA","file":"/home/runner/work/cli/cli/dist/impl-UZE2LR6H.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport {\n fetchAndIndexCatalogs,\n buildTranscendGraphQLClient,\n} from '../../../lib/graphql';\nimport { join } from 'node:path';\nimport { difference } from 'lodash-es';\nimport colors from 'colors';\nimport { logger } from '../../../logger';\nimport { dataFlowsToDataSilos } from '../../../lib/consent-manager/dataFlowsToDataSilos';\nimport { DataFlowInput } from '../../../codecs';\nimport { existsSync, lstatSync } from 'node:fs';\nimport { listFiles } from '../../../lib/api-keys';\nimport {\n readTranscendYaml,\n writeTranscendYaml,\n} from '../../../lib/readTranscendYaml';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface DeriveDataSilosFromDataFlowsCrossInstanceCommandFlags {\n auth: string;\n dataFlowsYmlFolder: string;\n output: string;\n ignoreYmls?: string[];\n transcendUrl: string;\n}\n\nexport async function deriveDataSilosFromDataFlowsCrossInstance(\n this: LocalContext,\n {\n auth,\n dataFlowsYmlFolder,\n output,\n ignoreYmls = [],\n transcendUrl,\n }: DeriveDataSilosFromDataFlowsCrossInstanceCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Ensure folder is passed\n if (\n !existsSync(dataFlowsYmlFolder) ||\n !lstatSync(dataFlowsYmlFolder).isDirectory()\n ) {\n logger.error(colors.red(`Folder does not exist: \"${dataFlowsYmlFolder}\"`));\n this.process.exit(1);\n }\n\n // Ignore the data flows in these yml files\n const instancesToIgnore = ignoreYmls.map((x) => x.split('.')[0]);\n\n // Map over each data flow yml file and convert to data silo configurations\n const dataSiloInputs = listFiles(dataFlowsYmlFolder).map((directory) => {\n // read in the data flows for a specific instance\n const { 'data-flows': dataFlows = [] } = readTranscendYaml(\n join(dataFlowsYmlFolder, directory),\n );\n\n // map the data flows to data silos\n const { adTechDataSilos, siteTechDataSilos } = dataFlowsToDataSilos(\n dataFlows as DataFlowInput[],\n {\n serviceToSupportedIntegration,\n serviceToTitle,\n },\n );\n\n return {\n adTechDataSilos,\n siteTechDataSilos,\n organizationName: directory.split('.')[0],\n };\n });\n\n // Mapping from service name to instances that have that service\n const serviceToInstance: { [k in string]: string[] } = {};\n dataSiloInputs.forEach(\n ({ adTechDataSilos, siteTechDataSilos, organizationName }) => {\n const allDataSilos = [...adTechDataSilos, ...siteTechDataSilos];\n allDataSilos.forEach((dataSilo) => {\n const service = dataSilo['outer-type'] || dataSilo.integrationName;\n // create mapping to instance\n if (!serviceToInstance[service]) {\n serviceToInstance[service] = [];\n }\n serviceToInstance[service]!.push(organizationName);\n serviceToInstance[service] = [...new Set(serviceToInstance[service])];\n });\n },\n );\n\n // List of ad tech integrations\n const adTechIntegrations = [\n ...new Set(\n dataSiloInputs\n .map(({ adTechDataSilos }) =>\n adTechDataSilos.map(\n (silo) => silo['outer-type'] || silo.integrationName,\n ),\n )\n .flat(),\n ),\n ];\n\n // List of site tech integrations\n const siteTechIntegrations = difference(\n [\n ...new Set(\n dataSiloInputs\n .map(({ siteTechDataSilos }) =>\n siteTechDataSilos.map(\n (silo) => silo['outer-type'] || silo.integrationName,\n ),\n )\n .flat(),\n ),\n ],\n adTechIntegrations,\n );\n\n // Mapping from service name to list of\n const serviceToFoundOnDomain: { [k in string]: string[] } = {};\n dataSiloInputs.forEach(({ adTechDataSilos, siteTechDataSilos }) => {\n const allDataSilos = [...adTechDataSilos, ...siteTechDataSilos];\n allDataSilos.forEach((dataSilo) => {\n const service = dataSilo['outer-type'] || dataSilo.integrationName;\n const foundOnDomain = dataSilo.attributes?.find(\n (attr) => attr.key === 'Found On Domain',\n );\n // create mapping to instance\n if (!serviceToFoundOnDomain[service]) {\n serviceToFoundOnDomain[service] = [];\n }\n serviceToFoundOnDomain[service]!.push(...(foundOnDomain?.values || []));\n serviceToFoundOnDomain[service] = [\n ...new Set(serviceToFoundOnDomain[service]),\n ];\n });\n });\n\n // Fetch all integrations in the catalog\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const { serviceToTitle, serviceToSupportedIntegration } =\n await fetchAndIndexCatalogs(client);\n\n // construct the aggregated data silo inputs\n const dataSilos = [...adTechIntegrations, ...siteTechIntegrations].map(\n (service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', 'outer-type': service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Ad Tech'],\n },\n {\n key: 'Business Units',\n values: difference(\n serviceToInstance[service] || [],\n instancesToIgnore,\n ),\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }),\n );\n\n // Log output\n logger.log(`Total Services: ${dataSilos.length}`);\n logger.log(`Ad Tech Services: ${adTechIntegrations.length}`);\n logger.log(`Site Tech Services: ${siteTechIntegrations.length}`);\n\n // Write to yaml\n writeTranscendYaml(output, {\n 'data-silos': dataSilos,\n });\n}\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBICC2LJLcjs = require('./chunk-BICC2LJL.cjs');require('./chunk-IFAKI5FF.cjs');require('./chunk-QEM6S2W7.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');require('./chunk-QPIUQDJ6.cjs');require('./chunk-LCDYXJN6.cjs');require('./chunk-ZUNVPK23.cjs');require('./chunk-MGAJ7ILD.cjs');require('./chunk-Q7I37FJV.cjs');async function m({auth:r,trackerStatus:s,file:a,transcendUrl:e}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit),await _chunkBICC2LJLcjs.c.call(void 0, {auth:r,trackerStatus:s,file:a,transcendUrl:e})}exports.uploadCookiesFromCsv = m;
2
+ //# sourceMappingURL=impl-UZTSGARM.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-UFXTQLXO.cjs","../src/commands/consent/upload-cookies-from-csv/impl.ts"],"names":["uploadCookiesFromCsv","auth","trackerStatus","file","transcendUrl","doneInputValidation"],"mappings":"AAAA,iIAAwC,gCAA6B,wDAAyC,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,MCY5R,SAAsBA,CAAAA,CAEpB,CAAE,IAAA,CAAAC,CAAAA,CAAM,aAAA,CAAAC,CAAAA,CAAe,IAAA,CAAAC,CAAAA,CAAM,YAAA,CAAAC,CAAa,CAAA,CAC3B,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAGrC,MAAML,iCAAAA,CACJ,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAC,CACH,CAAA,iCAAA","file":"/home/runner/work/cli/cli/dist/impl-UFXTQLXO.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { uploadCookiesFromCsv as uploadCookiesFromCsvHelper } from '../../../lib/consent-manager';\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface UploadCookiesFromCsvCommandFlags {\n auth: string;\n trackerStatus: ConsentTrackerStatus;\n file: string;\n transcendUrl: string;\n}\n\nexport async function uploadCookiesFromCsv(\n this: LocalContext,\n { auth, trackerStatus, file, transcendUrl }: UploadCookiesFromCsvCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Upload cookies\n await uploadCookiesFromCsvHelper({\n auth,\n trackerStatus,\n file,\n transcendUrl,\n });\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-UZTSGARM.cjs","../src/commands/consent/upload-cookies-from-csv/impl.ts"],"names":["uploadCookiesFromCsv","auth","trackerStatus","file","transcendUrl","doneInputValidation"],"mappings":"AAAA,iIAAwC,gCAA6B,gCAA6B,wDAAyC,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,MCY5R,SAAsBA,CAAAA,CAEpB,CAAE,IAAA,CAAAC,CAAAA,CAAM,aAAA,CAAAC,CAAAA,CAAe,IAAA,CAAAC,CAAAA,CAAM,YAAA,CAAAC,CAAa,CAAA,CAC3B,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAGrC,MAAML,iCAAAA,CACJ,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAC,CACH,CAAA,iCAAA","file":"/home/runner/work/cli/cli/dist/impl-UZTSGARM.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { uploadCookiesFromCsv as uploadCookiesFromCsvHelper } from '../../../lib/consent-manager';\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface UploadCookiesFromCsvCommandFlags {\n auth: string;\n trackerStatus: ConsentTrackerStatus;\n file: string;\n transcendUrl: string;\n}\n\nexport async function uploadCookiesFromCsv(\n this: LocalContext,\n { auth, trackerStatus, file, transcendUrl }: UploadCookiesFromCsvCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Upload cookies\n await uploadCookiesFromCsvHelper({\n auth,\n trackerStatus,\n file,\n transcendUrl,\n });\n}\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBICC2LJLcjs = require('./chunk-BICC2LJL.cjs');require('./chunk-IFAKI5FF.cjs');require('./chunk-QEM6S2W7.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');require('./chunk-QPIUQDJ6.cjs');require('./chunk-LCDYXJN6.cjs');require('./chunk-ZUNVPK23.cjs');require('./chunk-MGAJ7ILD.cjs');require('./chunk-Q7I37FJV.cjs');async function m({auth:a,trackerStatus:r,file:s,classifyService:e,transcendUrl:n}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit),await _chunkBICC2LJLcjs.b.call(void 0, {auth:a,trackerStatus:r,file:s,classifyService:e,transcendUrl:n})}exports.uploadDataFlowsFromCsv = m;
2
+ //# sourceMappingURL=impl-WO3LVKNE.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-VUQ6T7ON.cjs","../src/commands/consent/upload-data-flows-from-csv/impl.ts"],"names":["uploadDataFlowsFromCsv","auth","trackerStatus","file","classifyService","transcendUrl","doneInputValidation"],"mappings":"AAAA,iIAAwC,gCAA6B,wDAAyC,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,MCa5R,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAErC,MAAMN,iCAAAA,CACJ,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAC,CACH,CAAA,mCAAA","file":"/home/runner/work/cli/cli/dist/impl-VUQ6T7ON.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { uploadDataFlowsFromCsv as uploadDataFlowsFromCsvHelper } from '../../../lib/consent-manager';\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface UploadDataFlowsFromCsvCommandFlags {\n auth: string;\n trackerStatus: ConsentTrackerStatus;\n file: string;\n classifyService: boolean;\n transcendUrl: string;\n}\n\nexport async function uploadDataFlowsFromCsv(\n this: LocalContext,\n {\n auth,\n trackerStatus,\n file,\n classifyService,\n transcendUrl,\n }: UploadDataFlowsFromCsvCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await uploadDataFlowsFromCsvHelper({\n auth,\n trackerStatus,\n file,\n classifyService,\n transcendUrl,\n });\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-WO3LVKNE.cjs","../src/commands/consent/upload-data-flows-from-csv/impl.ts"],"names":["uploadDataFlowsFromCsv","auth","trackerStatus","file","classifyService","transcendUrl","doneInputValidation"],"mappings":"AAAA,iIAAwC,gCAA6B,gCAA6B,wDAAyC,gCAA6B,gCAA6B,gCAA6B,gCAA6B,gCAA6B,MCa5R,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAErC,MAAMN,iCAAAA,CACJ,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAC,CACH,CAAA,mCAAA","file":"/home/runner/work/cli/cli/dist/impl-WO3LVKNE.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { uploadDataFlowsFromCsv as uploadDataFlowsFromCsvHelper } from '../../../lib/consent-manager';\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface UploadDataFlowsFromCsvCommandFlags {\n auth: string;\n trackerStatus: ConsentTrackerStatus;\n file: string;\n classifyService: boolean;\n transcendUrl: string;\n}\n\nexport async function uploadDataFlowsFromCsv(\n this: LocalContext,\n {\n auth,\n trackerStatus,\n file,\n classifyService,\n transcendUrl,\n }: UploadDataFlowsFromCsvCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await uploadDataFlowsFromCsvHelper({\n auth,\n trackerStatus,\n file,\n classifyService,\n transcendUrl,\n });\n}\n"]}
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkSW5CIF5Dcjs = require('./chunk-SW5CIF5D.cjs');var _chunkH6YI2HZScjs = require('./chunk-H6YI2HZS.cjs');var _chunkNKFAEQ2Qcjs = require('./chunk-NKFAEQ2Q.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');require('./chunk-QEM6S2W7.cjs');var _chunkRSN3DUTPcjs = require('./chunk-RSN3DUTP.cjs');require('./chunk-LCDYXJN6.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkE57K4DGXcjs = require('./chunk-E57K4DGX.cjs');var _chunkQ7I37FJVcjs = require('./chunk-Q7I37FJV.cjs');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);var _bluebird = require('bluebird');var _path = require('path');var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);async function Y({auth:b,resources:g=_chunkH6YI2HZScjs.h,file:e,transcendUrl:p,dataSiloIds:d=[],integrationNames:T=[],trackerStatuses:h=_chunkH6YI2HZScjs.i,pageSize:y,skipDatapoints:S,skipSubDatapoints:$,includeGuessedCategories:A,debug:s}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit);let i=await _chunkNKFAEQ2Qcjs.b.call(void 0, b),C=g.includes("all")?Object.values(_chunkQ7I37FJVcjs.d):g;if(typeof i=="string"){try{let r=_chunkRSN3DUTPcjs.vc.call(void 0, p,i),t=await _chunkRSN3DUTPcjs.ae.call(void 0, r,{dataSiloIds:d,integrationNames:T,resources:C,pageSize:y,debug:s,skipDatapoints:S,skipSubDatapoints:$,includeGuessedCategories:A,trackerStatuses:h});_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Writing configuration to file "${e}"...`)),_chunkSW5CIF5Dcjs.e.call(void 0, e,t)}catch(r){_chunkZUNVPK23cjs.a.error(_colors2.default.red(`An error occurred syncing the schema: ${s?r.stack:r.message}`)),this.process.exit(1)}_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully synced yaml file to disk at ${e}! View at ${_chunkE57K4DGXcjs.p}`))}else{if(!_fs2.default.lstatSync(e).isDirectory())throw new Error("File is expected to be a folder when passing in a list of API keys to pull from. e.g. --file=./working/");let r=[];await _bluebird.mapSeries.call(void 0, i,async(t,L)=>{let a=`[${L+1}/${i.length}][${t.organizationName}] `;_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`~~~
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkSW5CIF5Dcjs = require('./chunk-SW5CIF5D.cjs');var _chunk6CS4GCJ4cjs = require('./chunk-6CS4GCJ4.cjs');var _chunkXKYSQSROcjs = require('./chunk-XKYSQSRO.cjs');require('./chunk-QEM6S2W7.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');var _chunkQPIUQDJ6cjs = require('./chunk-QPIUQDJ6.cjs');require('./chunk-LCDYXJN6.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkMGAJ7ILDcjs = require('./chunk-MGAJ7ILD.cjs');var _chunkQ7I37FJVcjs = require('./chunk-Q7I37FJV.cjs');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);var _bluebird = require('bluebird');var _path = require('path');var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);async function Y({auth:b,resources:g=_chunk6CS4GCJ4cjs.h,file:e,transcendUrl:p,dataSiloIds:d=[],integrationNames:T=[],trackerStatuses:h=_chunk6CS4GCJ4cjs.i,pageSize:y,skipDatapoints:S,skipSubDatapoints:$,includeGuessedCategories:A,debug:s}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit);let i=await _chunkXKYSQSROcjs.b.call(void 0, b),C=g.includes("all")?Object.values(_chunkQ7I37FJVcjs.d):g;if(typeof i=="string"){try{let r=_chunkQPIUQDJ6cjs.vc.call(void 0, p,i),t=await _chunkQPIUQDJ6cjs.ae.call(void 0, r,{dataSiloIds:d,integrationNames:T,resources:C,pageSize:y,debug:s,skipDatapoints:S,skipSubDatapoints:$,includeGuessedCategories:A,trackerStatuses:h});_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Writing configuration to file "${e}"...`)),_chunkSW5CIF5Dcjs.e.call(void 0, e,t)}catch(r){_chunkZUNVPK23cjs.a.error(_colors2.default.red(`An error occurred syncing the schema: ${s?r.stack:r.message}`)),this.process.exit(1)}_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully synced yaml file to disk at ${e}! View at ${_chunkMGAJ7ILDcjs.p}`))}else{if(!_fs2.default.lstatSync(e).isDirectory())throw new Error("File is expected to be a folder when passing in a list of API keys to pull from. e.g. --file=./working/");let r=[];await _bluebird.mapSeries.call(void 0, i,async(t,L)=>{let a=`[${L+1}/${i.length}][${t.organizationName}] `;_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`~~~
2
2
 
3
3
  ${a}Attempting to pull configuration...
4
4
 
5
- ~~~`));let _=_chunkRSN3DUTPcjs.vc.call(void 0, p,t.apiKey);try{let c=await _chunkRSN3DUTPcjs.ae.call(void 0, _,{dataSiloIds:d,integrationNames:T,resources:C,pageSize:y,debug:s,skipDatapoints:S,skipSubDatapoints:$,includeGuessedCategories:A,trackerStatuses:h}),w=_path.join.call(void 0, e,`${t.organizationName}.yml`);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Writing configuration to file "${w}"...`)),_chunkSW5CIF5Dcjs.e.call(void 0, w,c),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`${a}Successfully pulled configuration!`))}catch(c){_chunkZUNVPK23cjs.a.error(_colors2.default.red(`${a}Failed to sync configuration. - ${c.message}`)),r.push(t.organizationName)}}),r.length>0&&(_chunkZUNVPK23cjs.a.info(_colors2.default.red(`Sync encountered errors for "${r.join(",")}". View output above for more information, or check out ${_chunkE57K4DGXcjs.p}`)),this.process.exit(1))}}exports.pull = Y;
6
- //# sourceMappingURL=impl-ERCHNSZD.cjs.map
5
+ ~~~`));let _=_chunkQPIUQDJ6cjs.vc.call(void 0, p,t.apiKey);try{let c=await _chunkQPIUQDJ6cjs.ae.call(void 0, _,{dataSiloIds:d,integrationNames:T,resources:C,pageSize:y,debug:s,skipDatapoints:S,skipSubDatapoints:$,includeGuessedCategories:A,trackerStatuses:h}),w=_path.join.call(void 0, e,`${t.organizationName}.yml`);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Writing configuration to file "${w}"...`)),_chunkSW5CIF5Dcjs.e.call(void 0, w,c),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`${a}Successfully pulled configuration!`))}catch(c){_chunkZUNVPK23cjs.a.error(_colors2.default.red(`${a}Failed to sync configuration. - ${c.message}`)),r.push(t.organizationName)}}),r.length>0&&(_chunkZUNVPK23cjs.a.info(_colors2.default.red(`Sync encountered errors for "${r.join(",")}". View output above for more information, or check out ${_chunkMGAJ7ILDcjs.p}`)),this.process.exit(1))}}exports.pull = Y;
6
+ //# sourceMappingURL=impl-WVAGHUZI.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-ERCHNSZD.cjs","../src/commands/inventory/pull/impl.ts"],"names":["pull","auth","resources","DEFAULT_TRANSCEND_PULL_RESOURCES","file","transcendUrl","dataSiloIds","integrationNames","trackerStatuses","DEFAULT_CONSENT_TRACKER_STATUSES","pageSize","skipDatapoints","skipSubDatapoints","includeGuessedCategories","debug","doneInputValidation","apiKeyOrList","validateTranscendAuth","resourcesToPull","TranscendPullResource","client","buildTranscendGraphQLClient","configuration","pullTranscendConfiguration","logger","colors","writeTranscendYaml","err"],"mappings":"AAAA,iOAAwC,wDAAgD,wDAAyC,wDAAyC,gCAA6B,wDAAkD,gCAA6B,wDAAyC,wDAAyC,wDAAyC,gFCS9X,oCACO,4BACL,gEACN,MA0Bf,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAYC,mBAAAA,CACZ,IAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,CAAC,CAAA,CACf,gBAAA,CAAAC,CAAAA,CAAmB,CAAC,CAAA,CACpB,eAAA,CAAAC,CAAAA,CAAkBC,mBAAAA,CAClB,QAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,wBAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAGrC,IAAMC,CAAAA,CAAe,MAAMC,iCAAAA,CAA0B,CAAA,CAE/CC,CAAAA,CAA2ChB,CAAAA,CAAU,QAAA,CAAS,KAAK,CAAA,CACrE,MAAA,CAAO,MAAA,CAAOiB,mBAAqB,CAAA,CAClCjB,CAAAA,CAGL,EAAA,CAAI,OAAOc,CAAAA,EAAiB,QAAA,CAAU,CACpC,GAAI,CAEF,IAAMI,CAAAA,CAASC,kCAAAA,CAA4BhB,CAAcW,CAAY,CAAA,CAE/DM,CAAAA,CAAgB,MAAMC,kCAAAA,CAA2BH,CAAQ,CAC7D,WAAA,CAAAd,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,SAAA,CAAWW,CAAAA,CACX,QAAA,CAAAR,CAAAA,CACA,KAAA,CAAAI,CAAAA,CACA,cAAA,CAAAH,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,wBAAA,CAAAC,CAAAA,CACA,eAAA,CAAAL,CACF,CAAC,CAAA,CAEDgB,mBAAAA,CAAO,IAAA,CAAKC,gBAAAA,CAAO,OAAA,CAAQ,CAAA,+BAAA,EAAkCrB,CAAI,CAAA,IAAA,CAAM,CAAC,CAAA,CACxEsB,iCAAAA,CAAmBtB,CAAMkB,CAAa,CACxC,CAAA,KAAA,CAASK,CAAAA,CAAK,CACZH,mBAAAA,CAAO,KAAA,CACLC,gBAAAA,CAAO,GAAA,CACL,CAAA,sCAAA,EACEX,CAAAA,CAAQa,CAAAA,CAAI,KAAA,CAAQA,CAAAA,CAAI,OAC1B,CAAA,CAAA;AA0BA;AAAgB;AAAA;AAiD1B,GAAA","file":"/home/runner/work/cli/cli/dist/impl-ERCHNSZD.cjs","sourcesContent":[null,"import { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport type { LocalContext } from '../../../context';\nimport { TranscendPullResource } from '../../../enums';\nimport {\n DEFAULT_CONSENT_TRACKER_STATUSES,\n DEFAULT_TRANSCEND_PULL_RESOURCES,\n} from './command';\n\nimport { logger } from '../../../logger';\nimport colors from 'colors';\nimport { mapSeries } from 'bluebird';\nimport { join } from 'node:path';\nimport fs from 'node:fs';\nimport {\n buildTranscendGraphQLClient,\n pullTranscendConfiguration,\n} from '../../../lib/graphql';\n\nimport { writeTranscendYaml } from '../../../lib/readTranscendYaml';\nimport { ADMIN_DASH_INTEGRATIONS } from '../../../constants';\nimport { validateTranscendAuth } from '../../../lib/api-keys';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface PullCommandFlags {\n auth: string;\n resources?: (TranscendPullResource | 'all')[];\n file: string;\n transcendUrl: string;\n dataSiloIds?: string[];\n integrationNames?: string[];\n trackerStatuses?: ConsentTrackerStatus[];\n pageSize: number;\n skipDatapoints: boolean;\n skipSubDatapoints: boolean;\n includeGuessedCategories: boolean;\n debug: boolean;\n}\n\nexport async function pull(\n this: LocalContext,\n {\n auth,\n resources = DEFAULT_TRANSCEND_PULL_RESOURCES,\n file,\n transcendUrl,\n dataSiloIds = [],\n integrationNames = [],\n trackerStatuses = DEFAULT_CONSENT_TRACKER_STATUSES,\n pageSize,\n skipDatapoints,\n skipSubDatapoints,\n includeGuessedCategories,\n debug,\n }: PullCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Parse authentication as API key or path to list of API keys\n const apiKeyOrList = await validateTranscendAuth(auth);\n\n const resourcesToPull: TranscendPullResource[] = resources.includes('all')\n ? Object.values(TranscendPullResource)\n : (resources as TranscendPullResource[]);\n\n // Sync to Disk\n if (typeof apiKeyOrList === 'string') {\n try {\n // Create a GraphQL client\n const client = buildTranscendGraphQLClient(transcendUrl, apiKeyOrList);\n\n const configuration = await pullTranscendConfiguration(client, {\n dataSiloIds,\n integrationNames,\n resources: resourcesToPull,\n pageSize,\n debug,\n skipDatapoints,\n skipSubDatapoints,\n includeGuessedCategories,\n trackerStatuses,\n });\n\n logger.info(colors.magenta(`Writing configuration to file \"${file}\"...`));\n writeTranscendYaml(file, configuration);\n } catch (err) {\n logger.error(\n colors.red(\n `An error occurred syncing the schema: ${\n debug ? err.stack : err.message\n }`,\n ),\n );\n this.process.exit(1);\n }\n\n // Indicate success\n logger.info(\n colors.green(\n `Successfully synced yaml file to disk at ${file}! View at ${ADMIN_DASH_INTEGRATIONS}`,\n ),\n );\n } else {\n if (!fs.lstatSync(file).isDirectory()) {\n throw new Error(\n 'File is expected to be a folder when passing in a list of API keys to pull from. e.g. --file=./working/',\n );\n }\n\n const encounteredErrors: string[] = [];\n await mapSeries(apiKeyOrList, async (apiKey, ind) => {\n const prefix = `[${ind + 1}/${apiKeyOrList.length}][${\n apiKey.organizationName\n }] `;\n logger.info(\n colors.magenta(\n `~~~\\n\\n${prefix}Attempting to pull configuration...\\n\\n~~~`,\n ),\n );\n\n // Create a GraphQL client\n const client = buildTranscendGraphQLClient(transcendUrl, apiKey.apiKey);\n\n try {\n const configuration = await pullTranscendConfiguration(client, {\n dataSiloIds,\n integrationNames,\n resources: resourcesToPull,\n pageSize,\n debug,\n skipDatapoints,\n skipSubDatapoints,\n includeGuessedCategories,\n trackerStatuses,\n });\n\n const filePath = join(file, `${apiKey.organizationName}.yml`);\n logger.info(\n colors.magenta(`Writing configuration to file \"${filePath}\"...`),\n );\n writeTranscendYaml(filePath, configuration);\n\n logger.info(\n colors.green(`${prefix}Successfully pulled configuration!`),\n );\n } catch (err) {\n logger.error(\n colors.red(`${prefix}Failed to sync configuration. - ${err.message}`),\n );\n encounteredErrors.push(apiKey.organizationName);\n }\n });\n\n if (encounteredErrors.length > 0) {\n logger.info(\n colors.red(\n `Sync encountered errors for \"${encounteredErrors.join(\n ',',\n )}\". View output above for more information, or check out ${ADMIN_DASH_INTEGRATIONS}`,\n ),\n );\n\n this.process.exit(1);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-WVAGHUZI.cjs","../src/commands/inventory/pull/impl.ts"],"names":["pull","auth","resources","DEFAULT_TRANSCEND_PULL_RESOURCES","file","transcendUrl","dataSiloIds","integrationNames","trackerStatuses","DEFAULT_CONSENT_TRACKER_STATUSES","pageSize","skipDatapoints","skipSubDatapoints","includeGuessedCategories","debug","doneInputValidation","apiKeyOrList","validateTranscendAuth","resourcesToPull","TranscendPullResource","client","buildTranscendGraphQLClient","configuration","pullTranscendConfiguration","logger","colors","writeTranscendYaml","err"],"mappings":"AAAA,iOAAwC,wDAAgD,wDAAyC,gCAA6B,wDAAyC,wDAAkD,gCAA6B,wDAAyC,wDAAyC,wDAAyC,gFCS9X,oCACO,4BACL,gEACN,MA0Bf,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAYC,mBAAAA,CACZ,IAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,CAAC,CAAA,CACf,gBAAA,CAAAC,CAAAA,CAAmB,CAAC,CAAA,CACpB,eAAA,CAAAC,CAAAA,CAAkBC,mBAAAA,CAClB,QAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,wBAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAGrC,IAAMC,CAAAA,CAAe,MAAMC,iCAAAA,CAA0B,CAAA,CAE/CC,CAAAA,CAA2ChB,CAAAA,CAAU,QAAA,CAAS,KAAK,CAAA,CACrE,MAAA,CAAO,MAAA,CAAOiB,mBAAqB,CAAA,CAClCjB,CAAAA,CAGL,EAAA,CAAI,OAAOc,CAAAA,EAAiB,QAAA,CAAU,CACpC,GAAI,CAEF,IAAMI,CAAAA,CAASC,kCAAAA,CAA4BhB,CAAcW,CAAY,CAAA,CAE/DM,CAAAA,CAAgB,MAAMC,kCAAAA,CAA2BH,CAAQ,CAC7D,WAAA,CAAAd,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,SAAA,CAAWW,CAAAA,CACX,QAAA,CAAAR,CAAAA,CACA,KAAA,CAAAI,CAAAA,CACA,cAAA,CAAAH,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,wBAAA,CAAAC,CAAAA,CACA,eAAA,CAAAL,CACF,CAAC,CAAA,CAEDgB,mBAAAA,CAAO,IAAA,CAAKC,gBAAAA,CAAO,OAAA,CAAQ,CAAA,+BAAA,EAAkCrB,CAAI,CAAA,IAAA,CAAM,CAAC,CAAA,CACxEsB,iCAAAA,CAAmBtB,CAAMkB,CAAa,CACxC,CAAA,KAAA,CAASK,CAAAA,CAAK,CACZH,mBAAAA,CAAO,KAAA,CACLC,gBAAAA,CAAO,GAAA,CACL,CAAA,sCAAA,EACEX,CAAAA,CAAQa,CAAAA,CAAI,KAAA,CAAQA,CAAAA,CAAI,OAC1B,CAAA,CAAA;AA0BA;AAAgB;AAAA;AAiD1B,GAAA","file":"/home/runner/work/cli/cli/dist/impl-WVAGHUZI.cjs","sourcesContent":[null,"import { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport type { LocalContext } from '../../../context';\nimport { TranscendPullResource } from '../../../enums';\nimport {\n DEFAULT_CONSENT_TRACKER_STATUSES,\n DEFAULT_TRANSCEND_PULL_RESOURCES,\n} from './command';\n\nimport { logger } from '../../../logger';\nimport colors from 'colors';\nimport { mapSeries } from 'bluebird';\nimport { join } from 'node:path';\nimport fs from 'node:fs';\nimport {\n buildTranscendGraphQLClient,\n pullTranscendConfiguration,\n} from '../../../lib/graphql';\n\nimport { writeTranscendYaml } from '../../../lib/readTranscendYaml';\nimport { ADMIN_DASH_INTEGRATIONS } from '../../../constants';\nimport { validateTranscendAuth } from '../../../lib/api-keys';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface PullCommandFlags {\n auth: string;\n resources?: (TranscendPullResource | 'all')[];\n file: string;\n transcendUrl: string;\n dataSiloIds?: string[];\n integrationNames?: string[];\n trackerStatuses?: ConsentTrackerStatus[];\n pageSize: number;\n skipDatapoints: boolean;\n skipSubDatapoints: boolean;\n includeGuessedCategories: boolean;\n debug: boolean;\n}\n\nexport async function pull(\n this: LocalContext,\n {\n auth,\n resources = DEFAULT_TRANSCEND_PULL_RESOURCES,\n file,\n transcendUrl,\n dataSiloIds = [],\n integrationNames = [],\n trackerStatuses = DEFAULT_CONSENT_TRACKER_STATUSES,\n pageSize,\n skipDatapoints,\n skipSubDatapoints,\n includeGuessedCategories,\n debug,\n }: PullCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Parse authentication as API key or path to list of API keys\n const apiKeyOrList = await validateTranscendAuth(auth);\n\n const resourcesToPull: TranscendPullResource[] = resources.includes('all')\n ? Object.values(TranscendPullResource)\n : (resources as TranscendPullResource[]);\n\n // Sync to Disk\n if (typeof apiKeyOrList === 'string') {\n try {\n // Create a GraphQL client\n const client = buildTranscendGraphQLClient(transcendUrl, apiKeyOrList);\n\n const configuration = await pullTranscendConfiguration(client, {\n dataSiloIds,\n integrationNames,\n resources: resourcesToPull,\n pageSize,\n debug,\n skipDatapoints,\n skipSubDatapoints,\n includeGuessedCategories,\n trackerStatuses,\n });\n\n logger.info(colors.magenta(`Writing configuration to file \"${file}\"...`));\n writeTranscendYaml(file, configuration);\n } catch (err) {\n logger.error(\n colors.red(\n `An error occurred syncing the schema: ${\n debug ? err.stack : err.message\n }`,\n ),\n );\n this.process.exit(1);\n }\n\n // Indicate success\n logger.info(\n colors.green(\n `Successfully synced yaml file to disk at ${file}! View at ${ADMIN_DASH_INTEGRATIONS}`,\n ),\n );\n } else {\n if (!fs.lstatSync(file).isDirectory()) {\n throw new Error(\n 'File is expected to be a folder when passing in a list of API keys to pull from. e.g. --file=./working/',\n );\n }\n\n const encounteredErrors: string[] = [];\n await mapSeries(apiKeyOrList, async (apiKey, ind) => {\n const prefix = `[${ind + 1}/${apiKeyOrList.length}][${\n apiKey.organizationName\n }] `;\n logger.info(\n colors.magenta(\n `~~~\\n\\n${prefix}Attempting to pull configuration...\\n\\n~~~`,\n ),\n );\n\n // Create a GraphQL client\n const client = buildTranscendGraphQLClient(transcendUrl, apiKey.apiKey);\n\n try {\n const configuration = await pullTranscendConfiguration(client, {\n dataSiloIds,\n integrationNames,\n resources: resourcesToPull,\n pageSize,\n debug,\n skipDatapoints,\n skipSubDatapoints,\n includeGuessedCategories,\n trackerStatuses,\n });\n\n const filePath = join(file, `${apiKey.organizationName}.yml`);\n logger.info(\n colors.magenta(`Writing configuration to file \"${filePath}\"...`),\n );\n writeTranscendYaml(filePath, configuration);\n\n logger.info(\n colors.green(`${prefix}Successfully pulled configuration!`),\n );\n } catch (err) {\n logger.error(\n colors.red(`${prefix}Failed to sync configuration. - ${err.message}`),\n );\n encounteredErrors.push(apiKey.organizationName);\n }\n });\n\n if (encounteredErrors.length > 0) {\n logger.info(\n colors.red(\n `Sync encountered errors for \"${encounteredErrors.join(\n ',',\n )}\". View output above for more information, or check out ${ADMIN_DASH_INTEGRATIONS}`,\n ),\n );\n\n this.process.exit(1);\n }\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');var _chunkRSN3DUTPcjs = require('./chunk-RSN3DUTP.cjs');require('./chunk-LCDYXJN6.cjs');require('./chunk-ZUNVPK23.cjs');require('./chunk-E57K4DGX.cjs');require('./chunk-Q7I37FJV.cjs');var _privacytypes = require('@transcend-io/privacy-types');async function g({auth:r,transcendUrl:a,folderPath:n,requestIds:s,statuses:i=[_privacytypes.RequestStatus.Approving,_privacytypes.RequestStatus.Downloadable],concurrency:l,createdAtBefore:d,createdAtAfter:m,approveAfterDownload:c}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit),await _chunkRSN3DUTPcjs.tf.call(void 0, {transcendUrl:a,auth:r,folderPath:n,requestIds:s,statuses:i,concurrency:l,createdAtBefore:d,createdAtAfter:m,approveAfterDownload:c})}exports.downloadFiles = g;
2
- //# sourceMappingURL=impl-GTJ5DPQ4.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');var _chunkQPIUQDJ6cjs = require('./chunk-QPIUQDJ6.cjs');require('./chunk-LCDYXJN6.cjs');require('./chunk-ZUNVPK23.cjs');require('./chunk-MGAJ7ILD.cjs');require('./chunk-Q7I37FJV.cjs');var _privacytypes = require('@transcend-io/privacy-types');async function g({auth:r,transcendUrl:a,folderPath:n,requestIds:s,statuses:i=[_privacytypes.RequestStatus.Approving,_privacytypes.RequestStatus.Downloadable],concurrency:l,createdAtBefore:d,createdAtAfter:m,approveAfterDownload:c}){_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit),await _chunkQPIUQDJ6cjs.tf.call(void 0, {transcendUrl:a,auth:r,folderPath:n,requestIds:s,statuses:i,concurrency:l,createdAtBefore:d,createdAtAfter:m,approveAfterDownload:c})}exports.downloadFiles = g;
2
+ //# sourceMappingURL=impl-X2FXS267.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-GTJ5DPQ4.cjs","../src/commands/request/download-files/impl.ts"],"names":["downloadFiles","auth","transcendUrl","folderPath","requestIds","statuses","RequestStatus","concurrency","createdAtBefore","createdAtAfter","approveAfterDownload","doneInputValidation","downloadPrivacyRequestFiles"],"mappings":"AAAA,iIAAwC,wDAA0C,gCAA6B,gCAA6B,gCAA6B,gCAA6B,2DCExK,MAgB9B,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CAAW,CAACC,2BAAAA,CAAc,SAAA,CAAWA,2BAAAA,CAAc,YAAY,CAAA,CAC/D,WAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,oBAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAErC,MAAMC,kCAAAA,CACJ,YAAA,CAAAV,CAAAA,CACA,IAAA,CAAAD,CAAAA,CACA,UAAA,CAAAE,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,WAAA,CAAAE,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,oBAAA,CAAAC,CACF,CAAC,CACH,CAAA,0BAAA","file":"/home/runner/work/cli/cli/dist/impl-GTJ5DPQ4.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { downloadPrivacyRequestFiles } from '../../../lib/requests';\nimport { RequestStatus } from '@transcend-io/privacy-types';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface DownloadFilesCommandFlags {\n auth: string;\n sombraAuth?: string;\n concurrency: number;\n requestIds?: string[];\n statuses?: RequestStatus[];\n folderPath: string;\n createdAtBefore?: Date;\n createdAtAfter?: Date;\n approveAfterDownload: boolean;\n transcendUrl: string;\n}\n\nexport async function downloadFiles(\n this: LocalContext,\n {\n auth,\n transcendUrl,\n folderPath,\n requestIds,\n statuses = [RequestStatus.Approving, RequestStatus.Downloadable],\n concurrency,\n createdAtBefore,\n createdAtAfter,\n approveAfterDownload,\n }: DownloadFilesCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await downloadPrivacyRequestFiles({\n transcendUrl,\n auth,\n folderPath,\n requestIds,\n statuses,\n concurrency,\n createdAtBefore,\n createdAtAfter,\n approveAfterDownload,\n });\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-X2FXS267.cjs","../src/commands/request/download-files/impl.ts"],"names":["downloadFiles","auth","transcendUrl","folderPath","requestIds","statuses","RequestStatus","concurrency","createdAtBefore","createdAtAfter","approveAfterDownload","doneInputValidation","downloadPrivacyRequestFiles"],"mappings":"AAAA,iIAAwC,wDAA0C,gCAA6B,gCAA6B,gCAA6B,gCAA6B,2DCExK,MAgB9B,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CAAW,CAACC,2BAAAA,CAAc,SAAA,CAAWA,2BAAAA,CAAc,YAAY,CAAA,CAC/D,WAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,oBAAA,CAAAC,CACF,CAAA,CACe,CACfC,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAErC,MAAMC,kCAAAA,CACJ,YAAA,CAAAV,CAAAA,CACA,IAAA,CAAAD,CAAAA,CACA,UAAA,CAAAE,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,WAAA,CAAAE,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,oBAAA,CAAAC,CACF,CAAC,CACH,CAAA,0BAAA","file":"/home/runner/work/cli/cli/dist/impl-X2FXS267.cjs","sourcesContent":[null,"import type { LocalContext } from '../../../context';\nimport { downloadPrivacyRequestFiles } from '../../../lib/requests';\nimport { RequestStatus } from '@transcend-io/privacy-types';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation';\n\nexport interface DownloadFilesCommandFlags {\n auth: string;\n sombraAuth?: string;\n concurrency: number;\n requestIds?: string[];\n statuses?: RequestStatus[];\n folderPath: string;\n createdAtBefore?: Date;\n createdAtAfter?: Date;\n approveAfterDownload: boolean;\n transcendUrl: string;\n}\n\nexport async function downloadFiles(\n this: LocalContext,\n {\n auth,\n transcendUrl,\n folderPath,\n requestIds,\n statuses = [RequestStatus.Approving, RequestStatus.Downloadable],\n concurrency,\n createdAtBefore,\n createdAtAfter,\n approveAfterDownload,\n }: DownloadFilesCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await downloadPrivacyRequestFiles({\n transcendUrl,\n auth,\n folderPath,\n requestIds,\n statuses,\n concurrency,\n createdAtBefore,\n createdAtAfter,\n approveAfterDownload,\n });\n}\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkHBKA5Z5Acjs = require('./chunk-HBKA5Z5A.cjs');var _chunkLR3CPNDMcjs = require('./chunk-LR3CPNDM.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');var _chunkRSN3DUTPcjs = require('./chunk-RSN3DUTP.cjs');require('./chunk-LCDYXJN6.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkE57K4DGXcjs = require('./chunk-E57K4DGX.cjs');require('./chunk-Q7I37FJV.cjs');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);var _bluebird = require('bluebird');async function Z({file:l,fileTarget:f,transcendUrl:p,auth:g,sombraAuth:x,cronDataSiloId:v,targetDataSiloId:N,actions:R,skipRequestCount:h,pageLimit:s,chunkSize:r}){h&&_chunkZUNVPK23cjs.a.info(_colors2.default.yellow("Skipping request count as requested. This may help speed up the call.")),(Number.isNaN(r)||r<=0||r%s!==0)&&(_chunkZUNVPK23cjs.a.error(_colors2.default.red(`Invalid chunk size: "${r}". Must be a positive integer that is a multiple of ${s}.`)),this.process.exit(1)),_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit);let S=_chunkRSN3DUTPcjs.vc.call(void 0, p,g),{baseName:j,extension:O}=_chunkLR3CPNDMcjs.d.call(void 0, l),{baseName:A,extension:D}=_chunkLR3CPNDMcjs.d.call(void 0, f),$=0,b=0,d=0;await _chunkHBKA5Z5Acjs.g.call(void 0, {dataSiloId:v,auth:g,sombraAuth:x,actions:R,apiPageSize:s,savePageSize:r,onSave:async n=>{$+=n.length;let k=n.map(t=>t.requestId),E=_chunkE57K4DGXcjs.j.call(void 0, k),G=_chunkE57K4DGXcjs.b.call(void 0, E,s),y=await _bluebird.map.call(void 0, G,async t=>(_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Fetching target identifiers for ${t.length} requests`)),(await _chunkRSN3DUTPcjs.Ed.call(void 0, S,s*2,{requestIds:t,dataSiloIds:[N]})).map(({fileName:I,remoteId:C})=>{if(!C)throw new Error(`Failed to find remoteId for ${I}`);return{RecordId:C,Object:_optionalChain([I, 'access', _ => _.replace, 'call', _2 => _2(".json",""), 'access', _3 => _3.split, 'call', _4 => _4("/"), 'access', _5 => _5.pop, 'call', _6 => _6(), 'optionalAccess', _7 => _7.replace, 'call', _8 => _8(" Information","")]),Comment:"Customer data deletion request submitted via transcend.io"}})),{concurrency:1});b+=y.flat().length;let M=_chunkE57K4DGXcjs.j.call(void 0, n.map(t=>Object.keys(t)).flat()),Q=`${j}-${d}${O}`,T=`${A}-${d}${D}`;_chunkLR3CPNDMcjs.c.call(void 0, Q,n,M),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${n.length} identifiers to file "${l}"`));let o=y.flat(),V=_chunkE57K4DGXcjs.j.call(void 0, o.map(t=>Object.keys(t)).flat());_chunkLR3CPNDMcjs.c.call(void 0, T,o,V),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${o.length} identifiers to file "${f}"`)),_chunkZUNVPK23cjs.a.info(_colors2.default.blue(`Processed chunk of ${_chunkE57K4DGXcjs.b.length} identifiers, found ${o.length} target identifiers`)),d+=1},transcendUrl:p,skipRequestCount:h}),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${$} identifiers to file "${l}"`)),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${b} identifiers to file "${f}"`))}exports.pullProfiles = Z;
2
- //# sourceMappingURL=impl-QC2QXWOW.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQRDYTLVBcjs = require('./chunk-QRDYTLVB.cjs');var _chunkLR3CPNDMcjs = require('./chunk-LR3CPNDM.cjs');var _chunkWKCTKYN4cjs = require('./chunk-WKCTKYN4.cjs');var _chunkQPIUQDJ6cjs = require('./chunk-QPIUQDJ6.cjs');require('./chunk-LCDYXJN6.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkMGAJ7ILDcjs = require('./chunk-MGAJ7ILD.cjs');require('./chunk-Q7I37FJV.cjs');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);var _bluebird = require('bluebird');async function Z({file:l,fileTarget:f,transcendUrl:p,auth:g,sombraAuth:x,cronDataSiloId:v,targetDataSiloId:N,actions:R,skipRequestCount:h,pageLimit:s,chunkSize:r}){h&&_chunkZUNVPK23cjs.a.info(_colors2.default.yellow("Skipping request count as requested. This may help speed up the call.")),(Number.isNaN(r)||r<=0||r%s!==0)&&(_chunkZUNVPK23cjs.a.error(_colors2.default.red(`Invalid chunk size: "${r}". Must be a positive integer that is a multiple of ${s}.`)),this.process.exit(1)),_chunkWKCTKYN4cjs.a.call(void 0, this.process.exit);let S=_chunkQPIUQDJ6cjs.vc.call(void 0, p,g),{baseName:j,extension:O}=_chunkLR3CPNDMcjs.d.call(void 0, l),{baseName:A,extension:D}=_chunkLR3CPNDMcjs.d.call(void 0, f),$=0,b=0,d=0;await _chunkQRDYTLVBcjs.g.call(void 0, {dataSiloId:v,auth:g,sombraAuth:x,actions:R,apiPageSize:s,savePageSize:r,onSave:async n=>{$+=n.length;let k=n.map(t=>t.requestId),E=_chunkMGAJ7ILDcjs.j.call(void 0, k),G=_chunkMGAJ7ILDcjs.b.call(void 0, E,s),y=await _bluebird.map.call(void 0, G,async t=>(_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Fetching target identifiers for ${t.length} requests`)),(await _chunkQPIUQDJ6cjs.Ed.call(void 0, S,s*2,{requestIds:t,dataSiloIds:[N]})).map(({fileName:I,remoteId:C})=>{if(!C)throw new Error(`Failed to find remoteId for ${I}`);return{RecordId:C,Object:_optionalChain([I, 'access', _ => _.replace, 'call', _2 => _2(".json",""), 'access', _3 => _3.split, 'call', _4 => _4("/"), 'access', _5 => _5.pop, 'call', _6 => _6(), 'optionalAccess', _7 => _7.replace, 'call', _8 => _8(" Information","")]),Comment:"Customer data deletion request submitted via transcend.io"}})),{concurrency:1});b+=y.flat().length;let M=_chunkMGAJ7ILDcjs.j.call(void 0, n.map(t=>Object.keys(t)).flat()),Q=`${j}-${d}${O}`,T=`${A}-${d}${D}`;_chunkLR3CPNDMcjs.c.call(void 0, Q,n,M),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${n.length} identifiers to file "${l}"`));let o=y.flat(),V=_chunkMGAJ7ILDcjs.j.call(void 0, o.map(t=>Object.keys(t)).flat());_chunkLR3CPNDMcjs.c.call(void 0, T,o,V),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${o.length} identifiers to file "${f}"`)),_chunkZUNVPK23cjs.a.info(_colors2.default.blue(`Processed chunk of ${_chunkMGAJ7ILDcjs.b.length} identifiers, found ${o.length} target identifiers`)),d+=1},transcendUrl:p,skipRequestCount:h}),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${$} identifiers to file "${l}"`)),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${b} identifiers to file "${f}"`))}exports.pullProfiles = Z;
2
+ //# sourceMappingURL=impl-ZWNKU6OC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-QC2QXWOW.cjs","../src/commands/request/cron/pull-profiles/impl.ts"],"names":["pullProfiles","file","fileTarget","transcendUrl","auth","sombraAuth","cronDataSiloId","targetDataSiloId","actions","skipRequestCount","pageLimit","chunkSize","logger","colors","doneInputValidation","client","buildTranscendGraphQLClient","baseName","extension","parseFilePath","baseNameTarget","extensionTarget","allIdentifiersCount","allTargetIdentifiersCount","fileCount","pullChunkedCustomSiloOutstandingIdentifiers","chunkToSave","requestIds","d","uniqueRequestIds","uniq_default","chunkedRequestIds","chunk_default","results","map","fetchRequestFilesForRequest","fileName","remoteId"],"mappings":"AAAA,quBAAwC,wDAAgD,wDAAyC,wDAAkD,gCAA6B,wDAAyC,wDAAgD,gCAA6B,gFCEnT,oCAEC,MA4BpB,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CACF,CAAA,CACe,CACXF,CAAAA,EACFG,mBAAAA,CAAO,IAAA,CACLC,gBAAAA,CAAO,MAAA,CACL,uEACF,CACF,CAAA,CAAA,CAIA,MAAA,CAAO,KAAA,CAAMF,CAAS,CAAA,EACtBA,CAAAA,EAAa,CAAA,EACbA,CAAAA,CAAYD,CAAAA,GAAc,CAAA,CAAA,EAAA,CAE1BE,mBAAAA,CAAO,KAAA,CACLC,gBAAAA,CAAO,GAAA,CACL,CAAA,qBAAA,EAAwBF,CAAS,CAAA,oDAAA,EAAuDD,CAAS,CAAA,CAAA,CACnG,CACF,CAAA,CACA,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGrBI,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAGrC,IAAMC,CAAAA,CAASC,kCAAAA,CAA4Bb,CAAcC,CAAI,CAAA,CACvD,CAAE,QAAA,CAAAa,CAAAA,CAAU,SAAA,CAAAC,CAAU,CAAA,CAAIC,iCAAAA,CAAkB,CAAA,CAC5C,CAAE,QAAA,CAAUC,CAAAA,CAAgB,SAAA,CAAWC,CAAgB,CAAA,CAC3DF,iCAAAA,CAAwB,CAAA,CAEtBG,CAAAA,CAAsB,CAAA,CACtBC,CAAAA,CAA4B,CAAA,CAC5BC,CAAAA,CAAY,CAAA,CAmFhB,MAAMC,iCAAAA,CACJ,UAAA,CAAYnB,CAAAA,CACZ,IAAA,CAAAF,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,OAAA,CAAAG,CAAAA,CACA,WAAA,CAAaE,CAAAA,CACb,YAAA,CAAcC,CAAAA,CACd,MAAA,CAxFa,MACbe,CAAAA,EACkB,CAElBJ,CAAAA,EAAuBI,CAAAA,CAAY,MAAA,CAGnC,IAAMC,CAAAA,CAAaD,CAAAA,CAAY,GAAA,CAAKE,CAAAA,EAAMA,CAAAA,CAAE,SAAmB,CAAA,CACzDC,CAAAA,CAAmBC,iCAAAA,CAAe,CAAA,CAGlCC,CAAAA,CAAoBC,iCAAAA,CAAMH,CAAkBnB,CAAS,CAAA,CACrDuB,CAAAA,CAAU,MAAMC,2BAAAA,CACpBH,CACA,MAAOJ,CAAAA,EAAAA,CACLf,mBAAAA,CAAO,IAAA,CACLC,gBAAAA,CAAO,OAAA,CACL,CAAA,gCAAA,EAAmCc,CAAAA,CAAW,MAAM,CAAA,SAAA,CACtD,CACF,CAAA,CAAA,CACgB,MAAMQ,kCAAAA,CACpBpB,CACAL,CAAAA,CAAY,CAAA,CACZ,CACE,UAAA,CAAAiB,CAAAA,CACA,WAAA,CAAa,CAACpB,CAAgB,CAChC,CACF,CAAA,CAAA,CACe,GAAA,CAAI,CAAC,CAAE,QAAA,CAAA6B,CAAAA,CAAU,QAAA,CAAAC,CAAS,CAAA,CAAA,EAAM,CAC7C,EAAA,CAAI,CAACA,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,CAAA,4BAAA,EAA+BD,CAAQ,CAAA,CAAA","file":"/home/runner/work/cli/cli/dist/impl-QC2QXWOW.cjs","sourcesContent":[null,"import type { RequestAction } from '@transcend-io/privacy-types';\nimport { logger } from '../../../../logger';\nimport colors from 'colors';\nimport { uniq, chunk } from 'lodash-es';\nimport { map } from 'bluebird';\nimport {\n buildTranscendGraphQLClient,\n fetchRequestFilesForRequest,\n} from '../../../../lib/graphql';\nimport type { LocalContext } from '../../../../context';\nimport {\n parseFilePath,\n pullChunkedCustomSiloOutstandingIdentifiers,\n writeCsv,\n type CsvFormattedIdentifier,\n} from '../../../../lib/cron';\nimport { doneInputValidation } from '../../../../lib/cli/done-input-validation';\n\nexport interface PullProfilesCommandFlags {\n file: string;\n fileTarget: string;\n transcendUrl: string;\n auth: string;\n sombraAuth?: string;\n cronDataSiloId: string;\n targetDataSiloId: string;\n actions: RequestAction[];\n skipRequestCount: boolean;\n pageLimit: number;\n chunkSize: number;\n}\n\nexport async function pullProfiles(\n this: LocalContext,\n {\n file,\n fileTarget,\n transcendUrl,\n auth,\n sombraAuth,\n cronDataSiloId,\n targetDataSiloId,\n actions,\n skipRequestCount,\n pageLimit,\n chunkSize,\n }: PullProfilesCommandFlags,\n): Promise<void> {\n if (skipRequestCount) {\n logger.info(\n colors.yellow(\n 'Skipping request count as requested. This may help speed up the call.',\n ),\n );\n }\n\n if (\n Number.isNaN(chunkSize) ||\n chunkSize <= 0 ||\n chunkSize % pageLimit !== 0\n ) {\n logger.error(\n colors.red(\n `Invalid chunk size: \"${chunkSize}\". Must be a positive integer that is a multiple of ${pageLimit}.`,\n ),\n );\n this.process.exit(1);\n }\n\n doneInputValidation(this.process.exit);\n\n // Create GraphQL client to connect to Transcend backend\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const { baseName, extension } = parseFilePath(file);\n const { baseName: baseNameTarget, extension: extensionTarget } =\n parseFilePath(fileTarget);\n\n let allIdentifiersCount = 0;\n let allTargetIdentifiersCount = 0;\n let fileCount = 0;\n // Create onSave callback to handle chunked processing\n const onSave = async (\n chunkToSave: CsvFormattedIdentifier[],\n ): Promise<void> => {\n // Add to all identifiers\n allIdentifiersCount += chunkToSave.length;\n\n // Get unique request IDs from this chunk\n const requestIds = chunkToSave.map((d) => d.requestId as string);\n const uniqueRequestIds = uniq(requestIds);\n\n // Pull down target identifiers for this chunk\n const chunkedRequestIds = chunk(uniqueRequestIds, pageLimit);\n const results = await map(\n chunkedRequestIds,\n async (requestIds) => {\n logger.info(\n colors.magenta(\n `Fetching target identifiers for ${requestIds.length} requests`,\n ),\n );\n const results = await fetchRequestFilesForRequest(\n client,\n pageLimit * 2,\n {\n requestIds,\n dataSiloIds: [targetDataSiloId],\n },\n );\n return results.map(({ fileName, remoteId }) => {\n if (!remoteId) {\n throw new Error(`Failed to find remoteId for ${fileName}`);\n }\n return {\n RecordId: remoteId,\n Object: fileName\n .replace('.json', '')\n .split('/')\n .pop()\n ?.replace(' Information', ''),\n Comment:\n 'Customer data deletion request submitted via transcend.io',\n };\n });\n },\n // We are grabbing all the request files for the 'pageLimit' # of requests at a time\n {\n concurrency: 1,\n },\n );\n\n allTargetIdentifiersCount += results.flat().length;\n\n // Write the identifiers and target identifiers to CSV\n const headers = uniq(chunkToSave.map((d) => Object.keys(d)).flat());\n const numberedFileName = `${baseName}-${fileCount}${extension}`;\n const numberedFileNameTarget = `${baseNameTarget}-${fileCount}${extensionTarget}`;\n writeCsv(numberedFileName, chunkToSave, headers);\n logger.info(\n colors.green(\n `Successfully wrote ${chunkToSave.length} identifiers to file \"${file}\"`,\n ),\n );\n\n const targetIdentifiers = results.flat();\n const headers2 = uniq(targetIdentifiers.map((d) => Object.keys(d)).flat());\n writeCsv(numberedFileNameTarget, targetIdentifiers, headers2);\n logger.info(\n colors.green(\n `Successfully wrote ${targetIdentifiers.length} identifiers to file \"${fileTarget}\"`,\n ),\n );\n\n logger.info(\n colors.blue(\n `Processed chunk of ${chunk.length} identifiers, found ${targetIdentifiers.length} target identifiers`,\n ),\n );\n fileCount += 1;\n };\n\n // Pull down outstanding identifiers using the new chunked function\n await pullChunkedCustomSiloOutstandingIdentifiers({\n dataSiloId: cronDataSiloId,\n auth,\n sombraAuth,\n actions,\n apiPageSize: pageLimit,\n savePageSize: chunkSize,\n onSave,\n transcendUrl,\n skipRequestCount,\n });\n\n logger.info(\n colors.green(\n `Successfully wrote ${allIdentifiersCount} identifiers to file \"${file}\"`,\n ),\n );\n logger.info(\n colors.green(\n `Successfully wrote ${allTargetIdentifiersCount} identifiers to file \"${fileTarget}\"`,\n ),\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/impl-ZWNKU6OC.cjs","../src/commands/request/cron/pull-profiles/impl.ts"],"names":["pullProfiles","file","fileTarget","transcendUrl","auth","sombraAuth","cronDataSiloId","targetDataSiloId","actions","skipRequestCount","pageLimit","chunkSize","logger","colors","doneInputValidation","client","buildTranscendGraphQLClient","baseName","extension","parseFilePath","baseNameTarget","extensionTarget","allIdentifiersCount","allTargetIdentifiersCount","fileCount","pullChunkedCustomSiloOutstandingIdentifiers","chunkToSave","requestIds","d","uniqueRequestIds","uniq_default","chunkedRequestIds","chunk_default","results","map","fetchRequestFilesForRequest","fileName","remoteId"],"mappings":"AAAA,quBAAwC,wDAAgD,wDAAyC,wDAAkD,gCAA6B,wDAAyC,wDAAgD,gCAA6B,gFCEnT,oCAEC,MA4BpB,SAAsBA,CAAAA,CAEpB,CACE,IAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CACF,CAAA,CACe,CACXF,CAAAA,EACFG,mBAAAA,CAAO,IAAA,CACLC,gBAAAA,CAAO,MAAA,CACL,uEACF,CACF,CAAA,CAAA,CAIA,MAAA,CAAO,KAAA,CAAMF,CAAS,CAAA,EACtBA,CAAAA,EAAa,CAAA,EACbA,CAAAA,CAAYD,CAAAA,GAAc,CAAA,CAAA,EAAA,CAE1BE,mBAAAA,CAAO,KAAA,CACLC,gBAAAA,CAAO,GAAA,CACL,CAAA,qBAAA,EAAwBF,CAAS,CAAA,oDAAA,EAAuDD,CAAS,CAAA,CAAA,CACnG,CACF,CAAA,CACA,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,CAAA,CAGrBI,iCAAAA,IAAoB,CAAK,OAAA,CAAQ,IAAI,CAAA,CAGrC,IAAMC,CAAAA,CAASC,kCAAAA,CAA4Bb,CAAcC,CAAI,CAAA,CACvD,CAAE,QAAA,CAAAa,CAAAA,CAAU,SAAA,CAAAC,CAAU,CAAA,CAAIC,iCAAAA,CAAkB,CAAA,CAC5C,CAAE,QAAA,CAAUC,CAAAA,CAAgB,SAAA,CAAWC,CAAgB,CAAA,CAC3DF,iCAAAA,CAAwB,CAAA,CAEtBG,CAAAA,CAAsB,CAAA,CACtBC,CAAAA,CAA4B,CAAA,CAC5BC,CAAAA,CAAY,CAAA,CAmFhB,MAAMC,iCAAAA,CACJ,UAAA,CAAYnB,CAAAA,CACZ,IAAA,CAAAF,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,OAAA,CAAAG,CAAAA,CACA,WAAA,CAAaE,CAAAA,CACb,YAAA,CAAcC,CAAAA,CACd,MAAA,CAxFa,MACbe,CAAAA,EACkB,CAElBJ,CAAAA,EAAuBI,CAAAA,CAAY,MAAA,CAGnC,IAAMC,CAAAA,CAAaD,CAAAA,CAAY,GAAA,CAAKE,CAAAA,EAAMA,CAAAA,CAAE,SAAmB,CAAA,CACzDC,CAAAA,CAAmBC,iCAAAA,CAAe,CAAA,CAGlCC,CAAAA,CAAoBC,iCAAAA,CAAMH,CAAkBnB,CAAS,CAAA,CACrDuB,CAAAA,CAAU,MAAMC,2BAAAA,CACpBH,CACA,MAAOJ,CAAAA,EAAAA,CACLf,mBAAAA,CAAO,IAAA,CACLC,gBAAAA,CAAO,OAAA,CACL,CAAA,gCAAA,EAAmCc,CAAAA,CAAW,MAAM,CAAA,SAAA,CACtD,CACF,CAAA,CAAA,CACgB,MAAMQ,kCAAAA,CACpBpB,CACAL,CAAAA,CAAY,CAAA,CACZ,CACE,UAAA,CAAAiB,CAAAA,CACA,WAAA,CAAa,CAACpB,CAAgB,CAChC,CACF,CAAA,CAAA,CACe,GAAA,CAAI,CAAC,CAAE,QAAA,CAAA6B,CAAAA,CAAU,QAAA,CAAAC,CAAS,CAAA,CAAA,EAAM,CAC7C,EAAA,CAAI,CAACA,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,CAAA,4BAAA,EAA+BD,CAAQ,CAAA,CAAA","file":"/home/runner/work/cli/cli/dist/impl-ZWNKU6OC.cjs","sourcesContent":[null,"import type { RequestAction } from '@transcend-io/privacy-types';\nimport { logger } from '../../../../logger';\nimport colors from 'colors';\nimport { uniq, chunk } from 'lodash-es';\nimport { map } from 'bluebird';\nimport {\n buildTranscendGraphQLClient,\n fetchRequestFilesForRequest,\n} from '../../../../lib/graphql';\nimport type { LocalContext } from '../../../../context';\nimport {\n parseFilePath,\n pullChunkedCustomSiloOutstandingIdentifiers,\n writeCsv,\n type CsvFormattedIdentifier,\n} from '../../../../lib/cron';\nimport { doneInputValidation } from '../../../../lib/cli/done-input-validation';\n\nexport interface PullProfilesCommandFlags {\n file: string;\n fileTarget: string;\n transcendUrl: string;\n auth: string;\n sombraAuth?: string;\n cronDataSiloId: string;\n targetDataSiloId: string;\n actions: RequestAction[];\n skipRequestCount: boolean;\n pageLimit: number;\n chunkSize: number;\n}\n\nexport async function pullProfiles(\n this: LocalContext,\n {\n file,\n fileTarget,\n transcendUrl,\n auth,\n sombraAuth,\n cronDataSiloId,\n targetDataSiloId,\n actions,\n skipRequestCount,\n pageLimit,\n chunkSize,\n }: PullProfilesCommandFlags,\n): Promise<void> {\n if (skipRequestCount) {\n logger.info(\n colors.yellow(\n 'Skipping request count as requested. This may help speed up the call.',\n ),\n );\n }\n\n if (\n Number.isNaN(chunkSize) ||\n chunkSize <= 0 ||\n chunkSize % pageLimit !== 0\n ) {\n logger.error(\n colors.red(\n `Invalid chunk size: \"${chunkSize}\". Must be a positive integer that is a multiple of ${pageLimit}.`,\n ),\n );\n this.process.exit(1);\n }\n\n doneInputValidation(this.process.exit);\n\n // Create GraphQL client to connect to Transcend backend\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const { baseName, extension } = parseFilePath(file);\n const { baseName: baseNameTarget, extension: extensionTarget } =\n parseFilePath(fileTarget);\n\n let allIdentifiersCount = 0;\n let allTargetIdentifiersCount = 0;\n let fileCount = 0;\n // Create onSave callback to handle chunked processing\n const onSave = async (\n chunkToSave: CsvFormattedIdentifier[],\n ): Promise<void> => {\n // Add to all identifiers\n allIdentifiersCount += chunkToSave.length;\n\n // Get unique request IDs from this chunk\n const requestIds = chunkToSave.map((d) => d.requestId as string);\n const uniqueRequestIds = uniq(requestIds);\n\n // Pull down target identifiers for this chunk\n const chunkedRequestIds = chunk(uniqueRequestIds, pageLimit);\n const results = await map(\n chunkedRequestIds,\n async (requestIds) => {\n logger.info(\n colors.magenta(\n `Fetching target identifiers for ${requestIds.length} requests`,\n ),\n );\n const results = await fetchRequestFilesForRequest(\n client,\n pageLimit * 2,\n {\n requestIds,\n dataSiloIds: [targetDataSiloId],\n },\n );\n return results.map(({ fileName, remoteId }) => {\n if (!remoteId) {\n throw new Error(`Failed to find remoteId for ${fileName}`);\n }\n return {\n RecordId: remoteId,\n Object: fileName\n .replace('.json', '')\n .split('/')\n .pop()\n ?.replace(' Information', ''),\n Comment:\n 'Customer data deletion request submitted via transcend.io',\n };\n });\n },\n // We are grabbing all the request files for the 'pageLimit' # of requests at a time\n {\n concurrency: 1,\n },\n );\n\n allTargetIdentifiersCount += results.flat().length;\n\n // Write the identifiers and target identifiers to CSV\n const headers = uniq(chunkToSave.map((d) => Object.keys(d)).flat());\n const numberedFileName = `${baseName}-${fileCount}${extension}`;\n const numberedFileNameTarget = `${baseNameTarget}-${fileCount}${extensionTarget}`;\n writeCsv(numberedFileName, chunkToSave, headers);\n logger.info(\n colors.green(\n `Successfully wrote ${chunkToSave.length} identifiers to file \"${file}\"`,\n ),\n );\n\n const targetIdentifiers = results.flat();\n const headers2 = uniq(targetIdentifiers.map((d) => Object.keys(d)).flat());\n writeCsv(numberedFileNameTarget, targetIdentifiers, headers2);\n logger.info(\n colors.green(\n `Successfully wrote ${targetIdentifiers.length} identifiers to file \"${fileTarget}\"`,\n ),\n );\n\n logger.info(\n colors.blue(\n `Processed chunk of ${chunk.length} identifiers, found ${targetIdentifiers.length} target identifiers`,\n ),\n );\n fileCount += 1;\n };\n\n // Pull down outstanding identifiers using the new chunked function\n await pullChunkedCustomSiloOutstandingIdentifiers({\n dataSiloId: cronDataSiloId,\n auth,\n sombraAuth,\n actions,\n apiPageSize: pageLimit,\n savePageSize: chunkSize,\n onSave,\n transcendUrl,\n skipRequestCount,\n });\n\n logger.info(\n colors.green(\n `Successfully wrote ${allIdentifiersCount} identifiers to file \"${file}\"`,\n ),\n );\n logger.info(\n colors.green(\n `Successfully wrote ${allTargetIdentifiersCount} identifiers to file \"${fileTarget}\"`,\n ),\n );\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _class;var _chunkK2E6TCB5cjs = require('./chunk-K2E6TCB5.cjs');var _chunkOCNPZWYTcjs = require('./chunk-OCNPZWYT.cjs');var _chunkIBTP5OXEcjs = require('./chunk-IBTP5OXE.cjs');var _chunkSW5CIF5Dcjs = require('./chunk-SW5CIF5D.cjs');var _chunkNKFAEQ2Qcjs = require('./chunk-NKFAEQ2Q.cjs');var _chunkHBKA5Z5Acjs = require('./chunk-HBKA5Z5A.cjs');var _chunkLR3CPNDMcjs = require('./chunk-LR3CPNDM.cjs');var _chunk2VX4QD73cjs = require('./chunk-2VX4QD73.cjs');var _chunk4GRQMYW2cjs = require('./chunk-4GRQMYW2.cjs');var _chunkQEM6S2W7cjs = require('./chunk-QEM6S2W7.cjs');var _chunkRSN3DUTPcjs = require('./chunk-RSN3DUTP.cjs');var _chunkLCDYXJN6cjs = require('./chunk-LCDYXJN6.cjs');require('./chunk-ZUNVPK23.cjs');var _chunkE57K4DGXcjs = require('./chunk-E57K4DGX.cjs');var _chunkQ7I37FJVcjs = require('./chunk-Q7I37FJV.cjs');var _typeutils = require('@transcend-io/type-utils');var _handlebarsutils = require('@transcend-io/handlebars-utils');var _privacytypes = require('@transcend-io/privacy-types');var T=20;async function D(a){let e=[],r=0,t=!1;do{let{largeLanguageModels:{nodes:s}}=await _chunkRSN3DUTPcjs.Xf.call(void 0, a,_chunkRSN3DUTPcjs.Fb,{first:T,offset:r});e.push(...s),r+=T,t=s.length===T}while(t);return e.sort((s,o)=>s.name.localeCompare(o.name))}var _bluebird = require('bluebird');function j(a){return new RegExp(`<${a}>([\\s\\S]+?)<\\/${a}>`)}function Bm(a){return a}var H=a=>{try{return JSON.parse(a)}catch (e2){return a}},B= exports.TranscendPromptManager = (_class =class{__init() {this.largeLanguageModels=[]}__init2() {this.agentsByName={}}__init3() {this.agentsByAgentId={}}constructor({prompts:e,handlebarsOptions:r={},transcendUrl:t=_chunkE57K4DGXcjs.r,transcendApiKey:s,requireApproval:o=!0,cacheDuration:i,defaultVariables:p={}}){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);this.prompts=e,this.transcendUrl=t,this.transcendApiKey=s,this.variables=p,this.defaultVariables=p,this.graphQLClient=_chunkRSN3DUTPcjs.vc.call(void 0, t,typeof s=="object"?s.release():s),this.requireApproval=o,this.cacheDuration=i,this.handlebarsOptions=r,this.handlebars=_handlebarsutils.createHandlebarsWithHelpers.call(void 0, r)}async fetchPromptsAndMetadata(){let e=_typeutils.getValues.call(void 0, this.prompts),r=e.map(({id:n})=>n).filter(n=>!!n),t=e.map(({title:n})=>n).filter(n=>!!n),s=_chunkE57K4DGXcjs.j.call(void 0, e.map(({agentNames:n})=>n||[]).flat()),[o,i,p]=await Promise.all([_chunkRSN3DUTPcjs.zd.call(void 0, this.graphQLClient,{promptIds:r,promptTitles:t}),D(this.graphQLClient),_chunkRSN3DUTPcjs.Fc.call(void 0, this.graphQLClient,{names:s})]);this.agentsByName=_chunkE57K4DGXcjs.e.call(void 0, p,"name"),this.agentsByAgentId=_chunkE57K4DGXcjs.e.call(void 0, p,"agentId"),this.largeLanguageModels=i.filter(n=>n.isTranscendHosted===!1);let m=_chunkE57K4DGXcjs.e.call(void 0, o.prompts,"title"),c=_chunkE57K4DGXcjs.e.call(void 0, o.prompts,"id");return this.variables={...o.calculatedVariables.reduce((n,g)=>Object.assign(n,{[g.name]:g.data?JSON.parse(g.data):g.data}),{}),...this.defaultVariables},this.handlebars=_handlebarsutils.createHandlebarsWithHelpers.call(void 0, {...this.handlebarsOptions,templates:[...this.handlebarsOptions.templates||[],...o.promptPartials.map(n=>({name:n.slug,content:n.content}))]}),this.promptContentMap=_typeutils.apply.call(void 0, this.prompts,({id:n,title:g})=>{let d=n?c[n]:g?m[g]:void 0;if(!d)throw new Error(`Failed to find prompt with title: "${g}" and id: "${n}"`);return d}),this.lastUpdatedAt=new Date,o}async getAgentByName(e){let r=this.agentsByName[e];if(r)return r;let[t]=await _chunkRSN3DUTPcjs.Fc.call(void 0, this.graphQLClient,{names:[e]});if(t)return this.agentsByName[t.name]=t,this.agentsByAgentId[t.agentId]=t,t}async getPromptThreadBySlackTs(e){let[r]=await _chunkRSN3DUTPcjs.Ad.call(void 0, this.graphQLClient,{slackMessageTs:[e]});return r}async getAgentsByName(e){if(e.length<1)throw new Error("Expected at least one name to be provided");let{hasCache:r=[],missingCache:t=[]}=_chunkE57K4DGXcjs.d.call(void 0, e,p=>this.agentsByName[p]?"hasCache":"missingCache"),s=r.map(p=>this.agentsByName[p]);if(t.length===0)return s;let o=_chunkE57K4DGXcjs.b.call(void 0, t,50),i=[];return await _bluebird.mapSeries.call(void 0, o,async p=>{let m=await _chunkRSN3DUTPcjs.Fc.call(void 0, this.graphQLClient,{names:p});m.forEach(c=>{this.agentsByName[c.name]=c,this.agentsByAgentId[c.agentId]=c}),i.push(...m)}),[...s,...i]}getAgentFiles(e){return _chunkRSN3DUTPcjs.Dc.call(void 0, this.graphQLClient,e)}getLargeLanguageModel(e){let r=this.largeLanguageModels.find(t=>typeof e=="string"?t.id===e:t.name===e.name&&t.client===e.client);if(!r)throw new Error(`Failed to find model matching: ${typeof e=="string"?e:JSON.stringify(e)}`);return r}async getPromptDefinition(e){(!this.lastUpdatedAt||this.cacheDuration===0||this.cacheDuration&&Date.now()-this.lastUpdatedAt.getTime()>this.cacheDuration)&&await this.fetchPromptsAndMetadata();let{promptContentMap:r}=this;if(!r)throw new Error("Expected this.promptContentMap to be defined");let t=r[e];if(!t)throw new Error(`Expected this.promptContentMap[${e}] to be defined`);return t}async compilePrompt(e,r){let t=await this.getPromptDefinition(e),s=this.prompts[e];if(!s)throw new Error(`Expected this.prompts[${e}] to be defined`);if(this.requireApproval&&t.status!==_privacytypes.PromptStatus.Approved)throw new Error(`Assessment "${t.title}" cannot be used because its in status: "${t.status}"`);if(t.status===_privacytypes.PromptStatus.Rejected)throw new Error(`Assessment "${t.title}" cannot be used because it's in status: "${t.status}"`);return _typeutils.decodeCodec.call(void 0, s.paramCodec,r),this.handlebars.compile(t.content)({currentDate:new Date().toISOString(),...this.variables,...r})}parseAiResponse(e,r){let t=this.prompts[e];if(!t)throw new Error(`Expected this.prompts[${e}] to be defined`);let s=t.extractFromTag&&(j(t.extractFromTag).exec(r)||[])[1]||r;return _typeutils.decodeCodec.call(void 0, t.outputCodec,H(s),!1)}async reportAndParsePromptRun(e,{largeLanguageModel:r,...t}){(!this.lastUpdatedAt||this.cacheDuration===0||this.cacheDuration&&Date.now()-this.lastUpdatedAt.getTime()>this.cacheDuration)&&await this.fetchPromptsAndMetadata();let s=t.name||`@transcend-io/cli-prompt-run-${new Date().toISOString()}`;if(!this.promptContentMap)throw new Error("Expected this.promptContentMap to be defined");let o=this.promptContentMap[e];if(!o)throw new Error(`Expected this.prompts[${e}] to be defined`);if(t.promptRunMessages.length===0)throw new Error("promptRunMessages is expected to have length > 0");if(t.promptRunMessages[0].role!==_privacytypes.ChatCompletionRole.System)throw new Error(`promptRunMessages[0].role is expected to be = ${_privacytypes.ChatCompletionRole.System}`);if(t.promptRunMessages[t.promptRunMessages.length-1].role!==_privacytypes.ChatCompletionRole.Assistant)throw new Error(`promptRunMessages[${t.promptRunMessages.length-1}].role is expected to be = ${_privacytypes.ChatCompletionRole.Assistant}`);let i=t.promptRunMessages[t.promptRunMessages.length-1].content,p;try{p=this.parseAiResponse(e,i)}catch(c){throw await _chunkRSN3DUTPcjs.be.call(void 0, this.graphQLClient,{productArea:_privacytypes.PromptRunProductArea.PromptManager,...t,name:s,error:c.message,status:_privacytypes.QueueStatus.Error,...typeof r=="string"?{largeLanguageModelId:r}:{largeLanguageModelName:r.name,largeLanguageModelClient:r.client},promptId:o.id,promptRunMessages:t.promptRunMessages.map((n,g)=>({...n,...g===0?{template:o.content}:{}}))}),c}let m=await _chunkRSN3DUTPcjs.be.call(void 0, this.graphQLClient,{productArea:_privacytypes.PromptRunProductArea.PromptManager,...t,name:s,status:_privacytypes.QueueStatus.Resolved,...typeof r=="string"?{largeLanguageModelId:r}:{largeLanguageModelName:r.name,largeLanguageModelClient:r.client},promptId:o.id,promptRunMessages:t.promptRunMessages.map((c,n)=>({...c,...n===0?{template:o.content}:{}}))});return{result:p,promptRunId:m,promptRunUrl:`https://app.transcend.io/prompts/runs/${m}`}}async reportPromptRunError(e,{largeLanguageModel:r,...t}){(!this.lastUpdatedAt||this.cacheDuration===0||this.cacheDuration&&Date.now()-this.lastUpdatedAt.getTime()>this.cacheDuration)&&await this.fetchPromptsAndMetadata();let s=t.name||`@transcend-io/cli-prompt-run-${new Date().toISOString()}`;if(!this.promptContentMap)throw new Error("Expected this.promptContentMap to be defined");let o=this.promptContentMap[e];if(!o)throw new Error(`Expected this.prompts[${e}] to be defined`);if(t.promptRunMessages.length===0)throw new Error("promptRunMessages is expected to have length > 0");if(t.promptRunMessages[0].role!==_privacytypes.ChatCompletionRole.System)throw new Error(`promptRunMessages[0].role is expected to be = ${_privacytypes.ChatCompletionRole.System}`);let i=await _chunkRSN3DUTPcjs.be.call(void 0, this.graphQLClient,{productArea:_privacytypes.PromptRunProductArea.PromptManager,...t,name:s,status:_privacytypes.QueueStatus.Error,...typeof r=="string"?{largeLanguageModelId:r}:{largeLanguageModelName:r.name,largeLanguageModelClient:r.client},promptId:o.id,promptRunMessages:t.promptRunMessages.map((p,m)=>({...p,...m===0?{template:o.content}:{}}))});return{promptRunId:i,promptRunUrl:`https://app.transcend.io/prompts/runs/${i}`}}}, _class);function Qm(a){let e=/(https?:\/\/[^\s]+)/g;return a.replace(e,"<link-omitted>")}function Um(a){return Object.entries(a).reduce((e,[r,t])=>t!=null&&t!==""&&!(Array.isArray(t)&&t.length===0)&&!(typeof t=="object"&&Object.keys(t).length===0)?Object.assign(e,{[r]:t}):e,{})}var _fastglob = require('fast-glob'); var _fastglob2 = _interopRequireDefault(_fastglob);var _child_process = require('child_process');function vm({baseBranch:a,rootDirectory:e,githubRepo:r,excludedGlob:t=[],fileBlockList:s=[]}){_child_process.execSync.call(void 0, `git fetch origin ${a}`);let o=_child_process.execSync.call(void 0, `git ls-remote ${r} "refs/heads/${a}" | cut -f 1`,{encoding:"utf-8"}).split(`
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _class;var _chunkDVJLLHL3cjs = require('./chunk-DVJLLHL3.cjs');var _chunkW6BLSHVEcjs = require('./chunk-W6BLSHVE.cjs');var _chunkIBTP5OXEcjs = require('./chunk-IBTP5OXE.cjs');var _chunkSW5CIF5Dcjs = require('./chunk-SW5CIF5D.cjs');var _chunkQRDYTLVBcjs = require('./chunk-QRDYTLVB.cjs');var _chunkLR3CPNDMcjs = require('./chunk-LR3CPNDM.cjs');var _chunkBICC2LJLcjs = require('./chunk-BICC2LJL.cjs');var _chunkIFAKI5FFcjs = require('./chunk-IFAKI5FF.cjs');var _chunkXKYSQSROcjs = require('./chunk-XKYSQSRO.cjs');var _chunkQEM6S2W7cjs = require('./chunk-QEM6S2W7.cjs');var _chunkQPIUQDJ6cjs = require('./chunk-QPIUQDJ6.cjs');var _chunkLCDYXJN6cjs = require('./chunk-LCDYXJN6.cjs');require('./chunk-ZUNVPK23.cjs');var _chunkMGAJ7ILDcjs = require('./chunk-MGAJ7ILD.cjs');var _chunkQ7I37FJVcjs = require('./chunk-Q7I37FJV.cjs');var _typeutils = require('@transcend-io/type-utils');var _handlebarsutils = require('@transcend-io/handlebars-utils');var _privacytypes = require('@transcend-io/privacy-types');var T=20;async function D(a){let e=[],r=0,t=!1;do{let{largeLanguageModels:{nodes:s}}=await _chunkQPIUQDJ6cjs.Xf.call(void 0, a,_chunkQPIUQDJ6cjs.Fb,{first:T,offset:r});e.push(...s),r+=T,t=s.length===T}while(t);return e.sort((s,o)=>s.name.localeCompare(o.name))}var _bluebird = require('bluebird');function j(a){return new RegExp(`<${a}>([\\s\\S]+?)<\\/${a}>`)}function Bm(a){return a}var H=a=>{try{return JSON.parse(a)}catch (e2){return a}},B= exports.TranscendPromptManager = (_class =class{__init() {this.largeLanguageModels=[]}__init2() {this.agentsByName={}}__init3() {this.agentsByAgentId={}}constructor({prompts:e,handlebarsOptions:r={},transcendUrl:t=_chunkMGAJ7ILDcjs.r,transcendApiKey:s,requireApproval:o=!0,cacheDuration:i,defaultVariables:p={}}){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);this.prompts=e,this.transcendUrl=t,this.transcendApiKey=s,this.variables=p,this.defaultVariables=p,this.graphQLClient=_chunkQPIUQDJ6cjs.vc.call(void 0, t,typeof s=="object"?s.release():s),this.requireApproval=o,this.cacheDuration=i,this.handlebarsOptions=r,this.handlebars=_handlebarsutils.createHandlebarsWithHelpers.call(void 0, r)}async fetchPromptsAndMetadata(){let e=_typeutils.getValues.call(void 0, this.prompts),r=e.map(({id:n})=>n).filter(n=>!!n),t=e.map(({title:n})=>n).filter(n=>!!n),s=_chunkMGAJ7ILDcjs.j.call(void 0, e.map(({agentNames:n})=>n||[]).flat()),[o,i,p]=await Promise.all([_chunkQPIUQDJ6cjs.zd.call(void 0, this.graphQLClient,{promptIds:r,promptTitles:t}),D(this.graphQLClient),_chunkQPIUQDJ6cjs.Fc.call(void 0, this.graphQLClient,{names:s})]);this.agentsByName=_chunkMGAJ7ILDcjs.e.call(void 0, p,"name"),this.agentsByAgentId=_chunkMGAJ7ILDcjs.e.call(void 0, p,"agentId"),this.largeLanguageModels=i.filter(n=>n.isTranscendHosted===!1);let m=_chunkMGAJ7ILDcjs.e.call(void 0, o.prompts,"title"),c=_chunkMGAJ7ILDcjs.e.call(void 0, o.prompts,"id");return this.variables={...o.calculatedVariables.reduce((n,g)=>Object.assign(n,{[g.name]:g.data?JSON.parse(g.data):g.data}),{}),...this.defaultVariables},this.handlebars=_handlebarsutils.createHandlebarsWithHelpers.call(void 0, {...this.handlebarsOptions,templates:[...this.handlebarsOptions.templates||[],...o.promptPartials.map(n=>({name:n.slug,content:n.content}))]}),this.promptContentMap=_typeutils.apply.call(void 0, this.prompts,({id:n,title:g})=>{let d=n?c[n]:g?m[g]:void 0;if(!d)throw new Error(`Failed to find prompt with title: "${g}" and id: "${n}"`);return d}),this.lastUpdatedAt=new Date,o}async getAgentByName(e){let r=this.agentsByName[e];if(r)return r;let[t]=await _chunkQPIUQDJ6cjs.Fc.call(void 0, this.graphQLClient,{names:[e]});if(t)return this.agentsByName[t.name]=t,this.agentsByAgentId[t.agentId]=t,t}async getPromptThreadBySlackTs(e){let[r]=await _chunkQPIUQDJ6cjs.Ad.call(void 0, this.graphQLClient,{slackMessageTs:[e]});return r}async getAgentsByName(e){if(e.length<1)throw new Error("Expected at least one name to be provided");let{hasCache:r=[],missingCache:t=[]}=_chunkMGAJ7ILDcjs.d.call(void 0, e,p=>this.agentsByName[p]?"hasCache":"missingCache"),s=r.map(p=>this.agentsByName[p]);if(t.length===0)return s;let o=_chunkMGAJ7ILDcjs.b.call(void 0, t,50),i=[];return await _bluebird.mapSeries.call(void 0, o,async p=>{let m=await _chunkQPIUQDJ6cjs.Fc.call(void 0, this.graphQLClient,{names:p});m.forEach(c=>{this.agentsByName[c.name]=c,this.agentsByAgentId[c.agentId]=c}),i.push(...m)}),[...s,...i]}getAgentFiles(e){return _chunkQPIUQDJ6cjs.Dc.call(void 0, this.graphQLClient,e)}getLargeLanguageModel(e){let r=this.largeLanguageModels.find(t=>typeof e=="string"?t.id===e:t.name===e.name&&t.client===e.client);if(!r)throw new Error(`Failed to find model matching: ${typeof e=="string"?e:JSON.stringify(e)}`);return r}async getPromptDefinition(e){(!this.lastUpdatedAt||this.cacheDuration===0||this.cacheDuration&&Date.now()-this.lastUpdatedAt.getTime()>this.cacheDuration)&&await this.fetchPromptsAndMetadata();let{promptContentMap:r}=this;if(!r)throw new Error("Expected this.promptContentMap to be defined");let t=r[e];if(!t)throw new Error(`Expected this.promptContentMap[${e}] to be defined`);return t}async compilePrompt(e,r){let t=await this.getPromptDefinition(e),s=this.prompts[e];if(!s)throw new Error(`Expected this.prompts[${e}] to be defined`);if(this.requireApproval&&t.status!==_privacytypes.PromptStatus.Approved)throw new Error(`Assessment "${t.title}" cannot be used because its in status: "${t.status}"`);if(t.status===_privacytypes.PromptStatus.Rejected)throw new Error(`Assessment "${t.title}" cannot be used because it's in status: "${t.status}"`);return _typeutils.decodeCodec.call(void 0, s.paramCodec,r),this.handlebars.compile(t.content)({currentDate:new Date().toISOString(),...this.variables,...r})}parseAiResponse(e,r){let t=this.prompts[e];if(!t)throw new Error(`Expected this.prompts[${e}] to be defined`);let s=t.extractFromTag&&(j(t.extractFromTag).exec(r)||[])[1]||r;return _typeutils.decodeCodec.call(void 0, t.outputCodec,H(s),!1)}async reportAndParsePromptRun(e,{largeLanguageModel:r,...t}){(!this.lastUpdatedAt||this.cacheDuration===0||this.cacheDuration&&Date.now()-this.lastUpdatedAt.getTime()>this.cacheDuration)&&await this.fetchPromptsAndMetadata();let s=t.name||`@transcend-io/cli-prompt-run-${new Date().toISOString()}`;if(!this.promptContentMap)throw new Error("Expected this.promptContentMap to be defined");let o=this.promptContentMap[e];if(!o)throw new Error(`Expected this.prompts[${e}] to be defined`);if(t.promptRunMessages.length===0)throw new Error("promptRunMessages is expected to have length > 0");if(t.promptRunMessages[0].role!==_privacytypes.ChatCompletionRole.System)throw new Error(`promptRunMessages[0].role is expected to be = ${_privacytypes.ChatCompletionRole.System}`);if(t.promptRunMessages[t.promptRunMessages.length-1].role!==_privacytypes.ChatCompletionRole.Assistant)throw new Error(`promptRunMessages[${t.promptRunMessages.length-1}].role is expected to be = ${_privacytypes.ChatCompletionRole.Assistant}`);let i=t.promptRunMessages[t.promptRunMessages.length-1].content,p;try{p=this.parseAiResponse(e,i)}catch(c){throw await _chunkQPIUQDJ6cjs.be.call(void 0, this.graphQLClient,{productArea:_privacytypes.PromptRunProductArea.PromptManager,...t,name:s,error:c.message,status:_privacytypes.QueueStatus.Error,...typeof r=="string"?{largeLanguageModelId:r}:{largeLanguageModelName:r.name,largeLanguageModelClient:r.client},promptId:o.id,promptRunMessages:t.promptRunMessages.map((n,g)=>({...n,...g===0?{template:o.content}:{}}))}),c}let m=await _chunkQPIUQDJ6cjs.be.call(void 0, this.graphQLClient,{productArea:_privacytypes.PromptRunProductArea.PromptManager,...t,name:s,status:_privacytypes.QueueStatus.Resolved,...typeof r=="string"?{largeLanguageModelId:r}:{largeLanguageModelName:r.name,largeLanguageModelClient:r.client},promptId:o.id,promptRunMessages:t.promptRunMessages.map((c,n)=>({...c,...n===0?{template:o.content}:{}}))});return{result:p,promptRunId:m,promptRunUrl:`https://app.transcend.io/prompts/runs/${m}`}}async reportPromptRunError(e,{largeLanguageModel:r,...t}){(!this.lastUpdatedAt||this.cacheDuration===0||this.cacheDuration&&Date.now()-this.lastUpdatedAt.getTime()>this.cacheDuration)&&await this.fetchPromptsAndMetadata();let s=t.name||`@transcend-io/cli-prompt-run-${new Date().toISOString()}`;if(!this.promptContentMap)throw new Error("Expected this.promptContentMap to be defined");let o=this.promptContentMap[e];if(!o)throw new Error(`Expected this.prompts[${e}] to be defined`);if(t.promptRunMessages.length===0)throw new Error("promptRunMessages is expected to have length > 0");if(t.promptRunMessages[0].role!==_privacytypes.ChatCompletionRole.System)throw new Error(`promptRunMessages[0].role is expected to be = ${_privacytypes.ChatCompletionRole.System}`);let i=await _chunkQPIUQDJ6cjs.be.call(void 0, this.graphQLClient,{productArea:_privacytypes.PromptRunProductArea.PromptManager,...t,name:s,status:_privacytypes.QueueStatus.Error,...typeof r=="string"?{largeLanguageModelId:r}:{largeLanguageModelName:r.name,largeLanguageModelClient:r.client},promptId:o.id,promptRunMessages:t.promptRunMessages.map((p,m)=>({...p,...m===0?{template:o.content}:{}}))});return{promptRunId:i,promptRunUrl:`https://app.transcend.io/prompts/runs/${i}`}}}, _class);function Qm(a){let e=/(https?:\/\/[^\s]+)/g;return a.replace(e,"<link-omitted>")}function Um(a){return Object.entries(a).reduce((e,[r,t])=>t!=null&&t!==""&&!(Array.isArray(t)&&t.length===0)&&!(typeof t=="object"&&Object.keys(t).length===0)?Object.assign(e,{[r]:t}):e,{})}var _fastglob = require('fast-glob'); var _fastglob2 = _interopRequireDefault(_fastglob);var _child_process = require('child_process');function vm({baseBranch:a,rootDirectory:e,githubRepo:r,excludedGlob:t=[],fileBlockList:s=[]}){_child_process.execSync.call(void 0, `git fetch origin ${a}`);let o=_child_process.execSync.call(void 0, `git ls-remote ${r} "refs/heads/${a}" | cut -f 1`,{encoding:"utf-8"}).split(`
2
2
  `)[0],i=_child_process.execSync.call(void 0, "git rev-parse HEAD",{encoding:"utf-8"}).split(`
3
- `)[0];if(!o||!i)throw new Error("FAILED TO FIND COMMIT RANGE");let p=_child_process.execSync.call(void 0, `git fetch && git diff --name-only "${a||o}...${i}" -- ${e}`,{encoding:"utf-8"}),m=_chunkE57K4DGXcjs.c.call(void 0, p.split(`
4
- `).filter(d=>d),s),c=t.length>0?_fastglob2.default.sync(m,{ignore:t}):m,n={};c.forEach(d=>{let F=_child_process.execSync.call(void 0, `git show ${i}:${d}`,{encoding:"utf-8"});n[d]=F});let g=r.split("/").pop().split(".")[0];return{changedFiles:m,fileDiffs:n,repoName:g,commit:i}}exports.ACTIONS = _chunkRSN3DUTPcjs.tb; exports.ADD_MESSAGES_TO_PROMPT_RUN = _chunkRSN3DUTPcjs.Ga; exports.ADD_SILO_DISCOVERY_RESULTS = _chunkRSN3DUTPcjs.G; exports.ADMIN_DASH = _chunkE57K4DGXcjs.o; exports.ADMIN_DASH_DATAPOINTS = _chunkE57K4DGXcjs.q; exports.ADMIN_DASH_INTEGRATIONS = _chunkE57K4DGXcjs.p; exports.AGENTS = _chunkRSN3DUTPcjs.Gb; exports.AGENT_FILES = _chunkRSN3DUTPcjs.Jb; exports.AGENT_FUNCTIONS = _chunkRSN3DUTPcjs.Mb; exports.API_KEYS = _chunkRSN3DUTPcjs.D; exports.APPROVE_PRIVACY_REQUEST = _chunkRSN3DUTPcjs.W; exports.ASSESSMENTS = _chunkRSN3DUTPcjs.ea; exports.ASSESSMENT_SECTION_FIELDS = _chunkRSN3DUTPcjs.da; exports.ASSESSMENT_TEMPLATES = _chunkRSN3DUTPcjs.ia; exports.ASSUME_ROLE = _chunkRSN3DUTPcjs.Eb; exports.ATTRIBUTES = _chunkRSN3DUTPcjs.Ka; exports.ATTRIBUTE_KEYS_REQUESTS = _chunkRSN3DUTPcjs.L; exports.ATTRIBUTE_VALUES = _chunkRSN3DUTPcjs.Oa; exports.ActionInput = _chunkQEM6S2W7cjs.G; exports.ActionItemCollectionInput = _chunkQEM6S2W7cjs.R; exports.ActionItemInput = _chunkQEM6S2W7cjs.S; exports.AgentFileInput = _chunkQEM6S2W7cjs.o; exports.AgentFunctionInput = _chunkQEM6S2W7cjs.n; exports.AgentInput = _chunkQEM6S2W7cjs.m; exports.ApiKeyInput = _chunkQEM6S2W7cjs.c; exports.AssessmentAction = _chunkRSN3DUTPcjs.Ld; exports.AssessmentAnswerOptionInput = _chunkQEM6S2W7cjs.Y; exports.AssessmentDisplayLogicInput = _chunkQEM6S2W7cjs.V; exports.AssessmentInput = _chunkQEM6S2W7cjs.ca; exports.AssessmentNestedRule = _chunkRSN3DUTPcjs.Kd; exports.AssessmentNestedRuleInput = _chunkQEM6S2W7cjs.U; exports.AssessmentResourceInput = _chunkQEM6S2W7cjs.ba; exports.AssessmentRetentionScheduleInput = _chunkQEM6S2W7cjs.$; exports.AssessmentRiskLogic = _chunkRSN3DUTPcjs.Nd; exports.AssessmentRule = _chunkRSN3DUTPcjs.Jd; exports.AssessmentRuleInput = _chunkQEM6S2W7cjs.T; exports.AssessmentSectionInput = _chunkQEM6S2W7cjs._; exports.AssessmentSectionQuestionInput = _chunkQEM6S2W7cjs.Z; exports.AssessmentTemplateInput = _chunkQEM6S2W7cjs.aa; exports.AttestedExtraIdentifiers = _chunkRSN3DUTPcjs.kf; exports.AttributeInput = _chunkQEM6S2W7cjs.k; exports.AttributePreview = _chunkQEM6S2W7cjs.l; exports.AttributeValueInput = _chunkQEM6S2W7cjs.j; exports.BLANK = _chunkRSN3DUTPcjs.cc; exports.BULK_APPLY = _chunkRSN3DUTPcjs.bc; exports.BULK_REQUEST_FILES = _chunkRSN3DUTPcjs.Ea; exports.BUSINESS_ENTITIES = _chunkRSN3DUTPcjs.qb; exports.BusinessEntityInput = _chunkQEM6S2W7cjs.y; exports.CANCEL_PRIVACY_REQUEST = _chunkRSN3DUTPcjs.X; exports.CAN_APPLY_IN_BULK = _chunkRSN3DUTPcjs.gc; exports.CATALOGS = _chunkRSN3DUTPcjs.r; exports.CHANGE_REQUEST_DATA_SILO_STATUS = _chunkRSN3DUTPcjs.ua; exports.CODE_PACKAGES = _chunkRSN3DUTPcjs.P; exports.CONSENT_MANAGER_ANALYTICS_DATA = _chunkRSN3DUTPcjs.pb; exports.CONSENT_PARTITIONS = _chunkRSN3DUTPcjs.Ta; exports.COOKIES = _chunkRSN3DUTPcjs.Ya; exports.CREATE_ACTION_ITEMS = _chunkRSN3DUTPcjs.xb; exports.CREATE_ACTION_ITEM_COLLECTION = _chunkRSN3DUTPcjs.Ia; exports.CREATE_AGENT = _chunkRSN3DUTPcjs.Hb; exports.CREATE_AGENT_FILE = _chunkRSN3DUTPcjs.Kb; exports.CREATE_AGENT_FUNCTION = _chunkRSN3DUTPcjs.Nb; exports.CREATE_API_KEY = _chunkRSN3DUTPcjs.E; exports.CREATE_ATTRIBUTE = _chunkRSN3DUTPcjs.Pa; exports.CREATE_ATTRIBUTE_VALUES = _chunkRSN3DUTPcjs.La; exports.CREATE_BUSINESS_ENTITY = _chunkRSN3DUTPcjs.rb; exports.CREATE_CODE_PACKAGE = _chunkRSN3DUTPcjs.R; exports.CREATE_CONSENT_EXPERIENCE = _chunkRSN3DUTPcjs.nb; exports.CREATE_CONSENT_MANAGER = _chunkRSN3DUTPcjs.ab; exports.CREATE_CONSENT_PARTITION = _chunkRSN3DUTPcjs.ob; exports.CREATE_DATA_FLOWS = _chunkRSN3DUTPcjs.Ua; exports.CREATE_DATA_SILOS = _chunkRSN3DUTPcjs.m; exports.CREATE_DATA_SUBJECT = _chunkRSN3DUTPcjs.x; exports.CREATE_DATA_SUB_CATEGORY = _chunkRSN3DUTPcjs.Tb; exports.CREATE_ENRICHER = _chunkRSN3DUTPcjs.p; exports.CREATE_IDENTIFIER = _chunkRSN3DUTPcjs.u; exports.CREATE_PROCESSING_ACTIVITY = _chunkRSN3DUTPcjs.Zb; exports.CREATE_PROCESSING_PURPOSE_SUB_CATEGORY = _chunkRSN3DUTPcjs.Wb; exports.CREATE_PROMPT = _chunkRSN3DUTPcjs.oa; exports.CREATE_PROMPT_GROUP = _chunkRSN3DUTPcjs.sa; exports.CREATE_PROMPT_PARTIAL = _chunkRSN3DUTPcjs.qa; exports.CREATE_REPOSITORY = _chunkRSN3DUTPcjs.C; exports.CREATE_SOFTWARE_DEVELOPMENT_KIT = _chunkRSN3DUTPcjs.O; exports.CREATE_TEAM = _chunkRSN3DUTPcjs.ya; exports.CREATE_TEMPLATE = _chunkRSN3DUTPcjs.J; exports.CREATE_VENDOR = _chunkRSN3DUTPcjs.Qb; exports.CachedFileState = _chunkRSN3DUTPcjs.hc; exports.CachedRequestState = _chunkRSN3DUTPcjs.jc; exports.CodePackageInput = _chunkQEM6S2W7cjs.D; exports.CodePackageSdk = _chunkQEM6S2W7cjs.C; exports.ColumnName = _chunkRSN3DUTPcjs.ec; exports.ConsentManageExperienceInput = _chunkQEM6S2W7cjs.K; exports.ConsentManagerInput = _chunkQEM6S2W7cjs.M; exports.ConsentManagerMetricBin = _chunkRSN3DUTPcjs.Qc; exports.ConsentManagerServiceMetadata = _chunkQEM6S2W7cjs.ka; exports.ConsentPreferenceResponse = _chunk2VX4QD73cjs.i; exports.ConsentPreferenceTopic = _chunkQEM6S2W7cjs.ea; exports.ConsentPreferenceTopicOptionValue = _chunkQEM6S2W7cjs.da; exports.ConsentPurpose = _chunkQEM6S2W7cjs.fa; exports.CookieCsvInput = _chunkQEM6S2W7cjs.ja; exports.CookieInput = _chunkQEM6S2W7cjs.J; exports.CronIdentifier = _chunkHBKA5Z5Acjs.a; exports.CronIdentifierPush = _chunkHBKA5Z5Acjs.c; exports.DATAPOINT_EXPORT = _chunkRSN3DUTPcjs.g; exports.DATA_FLOWS = _chunkRSN3DUTPcjs.Xa; exports.DATA_POINTS = _chunkRSN3DUTPcjs.a; exports.DATA_POINT_COUNT = _chunkRSN3DUTPcjs.b; exports.DATA_SILOS = _chunkRSN3DUTPcjs.i; exports.DATA_SILOS_ENRICHED = _chunkRSN3DUTPcjs.k; exports.DATA_SILO_EXPORT = _chunkRSN3DUTPcjs.j; exports.DATA_SUBJECTS = _chunkRSN3DUTPcjs.w; exports.DATA_SUB_CATEGORIES = _chunkRSN3DUTPcjs.Sb; exports.DEBUG = _chunkE57K4DGXcjs.z; exports.DEFAULT_TRANSCEND_API = _chunkE57K4DGXcjs.r; exports.DEFAULT_TRANSCEND_CONSENT_API = _chunkE57K4DGXcjs.s; exports.DEFAULT_TRANSCEND_PULL_RESOURCES = _chunkRSN3DUTPcjs.$d; exports.DELETE_API_KEY = _chunkRSN3DUTPcjs.F; exports.DELETE_ATTRIBUTE_VALUE = _chunkRSN3DUTPcjs.Na; exports.DEPLOYED_PRIVACY_CENTER_URL = _chunkRSN3DUTPcjs.zb; exports.DEPLOY_CONSENT_MANAGER = _chunkRSN3DUTPcjs.db; exports.DETERMINE_LOGIN_METHOD = _chunkRSN3DUTPcjs.Cb; exports.DataCategoryGuessInput = _chunkQEM6S2W7cjs.h; exports.DataCategoryInput = _chunkQEM6S2W7cjs.q; exports.DataCategoryPreviewInput = _chunkQEM6S2W7cjs.g; exports.DataCategoryRecommendationInput = _chunkQEM6S2W7cjs.i; exports.DataFlowCsvInput = _chunkQEM6S2W7cjs.ia; exports.DataFlowInput = _chunkQEM6S2W7cjs.I; exports.DataSiloInput = _chunkQEM6S2W7cjs.Q; exports.DataSubjectInput = _chunkQEM6S2W7cjs.F; exports.DatapointInput = _chunkQEM6S2W7cjs.w; exports.ENABLED_PLUGINS = _chunkRSN3DUTPcjs.H; exports.ENRICHERS = _chunkRSN3DUTPcjs.n; exports.ENTRY_COUNT = _chunkRSN3DUTPcjs.h; exports.EXPERIENCES = _chunkRSN3DUTPcjs.Sa; exports.EnrichPrivacyRequest = _chunkK2E6TCB5cjs.b; exports.EnricherInput = _chunkQEM6S2W7cjs.e; exports.FETCH_CONSENT_MANAGER = _chunkRSN3DUTPcjs._a; exports.FETCH_CONSENT_MANAGER_ID = _chunkRSN3DUTPcjs.Za; exports.FETCH_CONSENT_MANAGER_THEME = _chunkRSN3DUTPcjs.$a; exports.FETCH_PRIVACY_CENTER_ID = _chunkRSN3DUTPcjs.yb; exports.FieldInput = _chunkQEM6S2W7cjs.v; exports.GLOBAL_ACTION_ITEMS = _chunkRSN3DUTPcjs.vb; exports.GLOBAL_ACTION_ITEM_COLLECTIONS = _chunkRSN3DUTPcjs.Ha; exports.IDENTIFIERS = _chunkRSN3DUTPcjs.s; exports.IDENTIFIER_BLOCK_LIST = _chunkRSN3DUTPcjs.dc; exports.IMPORT_ONE_TRUST_ASSESSMENT_FORMS = _chunkRSN3DUTPcjs.fa; exports.INITIALIZER = _chunkRSN3DUTPcjs.o; exports.IP_ADDRESS_REGEX = _chunk2VX4QD73cjs.f; exports.IS_REQUIRED = _chunkRSN3DUTPcjs.fc; exports.IdentifierInput = _chunkQEM6S2W7cjs.H; exports.ImportOnetrustAssessmentsInput = _chunkQEM6S2W7cjs.ra; exports.IntlMessage = _chunkRSN3DUTPcjs.of; exports.IntlMessageInput = _chunkQEM6S2W7cjs.P; exports.LARGE_LANGUAGE_MODELS = _chunkRSN3DUTPcjs.Fb; exports.LOGIN = _chunkRSN3DUTPcjs.Db; exports.MESSAGES = _chunkRSN3DUTPcjs._; exports.NEW_IDENTIFIER_TYPES = _chunkRSN3DUTPcjs.t; exports.NONE = _chunkRSN3DUTPcjs.ac; exports.NOTIFY_ADDITIONAL_TIME = _chunkRSN3DUTPcjs.Z; exports.ORGANIZATION = _chunkRSN3DUTPcjs.K; exports.OneTrustFileFormat = _chunkQ7I37FJVcjs.a; exports.OneTrustPullResource = _chunkQ7I37FJVcjs.b; exports.OneTrustPullSource = _chunkQ7I37FJVcjs.c; exports.OpenAIEnabledRoute = _chunkQEM6S2W7cjs.ma; exports.OpenAIEnabledRoutes = _chunkQEM6S2W7cjs.na; exports.OpenAIIntegration = _chunkQEM6S2W7cjs.oa; exports.OpenAIRouteName = _chunkQ7I37FJVcjs.f; exports.POLICIES = _chunkRSN3DUTPcjs.T; exports.PREFERENCE_TOPICS = _chunkRSN3DUTPcjs.ha; exports.PRIVACY_CENTER = _chunkRSN3DUTPcjs.Ab; exports.PROCESSING_ACTIVITIES = _chunkRSN3DUTPcjs.Yb; exports.PROCESSING_PURPOSE_SUB_CATEGORIES = _chunkRSN3DUTPcjs.Vb; exports.PROMPTS = _chunkRSN3DUTPcjs.ja; exports.PROMPTS_WITH_VARIABLES = _chunkRSN3DUTPcjs.ma; exports.PROMPT_GROUPS = _chunkRSN3DUTPcjs.la; exports.PROMPT_PARTIALS = _chunkRSN3DUTPcjs.ka; exports.PROMPT_THREADS = _chunkRSN3DUTPcjs.S; exports.PURPOSES = _chunkRSN3DUTPcjs.ga; exports.ParsedAttributeInput = _chunkRSN3DUTPcjs.oc; exports.PartitionInput = _chunkQEM6S2W7cjs.L; exports.PathfinderPolicy = _chunkQEM6S2W7cjs.pa; exports.PathfinderPolicyName = _chunkQ7I37FJVcjs.e; exports.PathfinderPolicyNameC = _chunkQEM6S2W7cjs.la; exports.PathfinderPromptRunMetadata = _chunkQEM6S2W7cjs.qa; exports.PolicyInput = _chunkQEM6S2W7cjs.O; exports.PrivacyCenterInput = _chunkQEM6S2W7cjs.N; exports.PrivacyRequest = _chunkRSN3DUTPcjs.jd; exports.PrivacyRequestInput = _chunkRSN3DUTPcjs.lf; exports.PrivacyRequestResponse = _chunkRSN3DUTPcjs.uf; exports.ProcessingActivityInput = _chunkQEM6S2W7cjs.A; exports.ProcessingPurposeInput = _chunkQEM6S2W7cjs.r; exports.ProcessingPurposePreviewInput = _chunkQEM6S2W7cjs.f; exports.PromptAVendorEmailSettings = _chunkQEM6S2W7cjs.x; exports.PromptGroupInput = _chunkQEM6S2W7cjs.u; exports.PromptInput = _chunkQEM6S2W7cjs.s; exports.PromptPartialInput = _chunkQEM6S2W7cjs.t; exports.PurposeMap = _chunk4GRQMYW2cjs.e; exports.REDUCED_REQUESTS_FOR_DATA_SILO_COUNT = _chunkRSN3DUTPcjs.wa; exports.REMOVE_REQUEST_IDENTIFIERS = _chunkRSN3DUTPcjs.Aa; exports.REPORT_PROMPT_RUN = _chunkRSN3DUTPcjs.Fa; exports.REPOSITORIES = _chunkRSN3DUTPcjs.A; exports.REQUESTS = _chunkRSN3DUTPcjs.V; exports.REQUEST_DATA_SILOS = _chunkRSN3DUTPcjs.ta; exports.REQUEST_ENRICHERS = _chunkRSN3DUTPcjs.aa; exports.REQUEST_FILES = _chunkRSN3DUTPcjs.Da; exports.REQUEST_IDENTIFIERS = _chunkRSN3DUTPcjs.Ba; exports.RETRYABLE_BATCH_STATUSES = _chunkE57K4DGXcjs.y; exports.RETRY_REQUEST_DATA_SILO = _chunkRSN3DUTPcjs.va; exports.RETRY_REQUEST_ENRICHER = _chunkRSN3DUTPcjs.ba; exports.RateCounter = _chunkRSN3DUTPcjs.Vf; exports.RegionInput = _chunkQEM6S2W7cjs.z; exports.RepositoryInput = _chunkQEM6S2W7cjs.E; exports.RequestFileMetadata = _chunkRSN3DUTPcjs.pf; exports.RequestFileMetadataResponse = _chunkRSN3DUTPcjs.qf; exports.RequestIdentifiersResponse = _chunkRSN3DUTPcjs.hd; exports.RiskAssignmentInput = _chunkQEM6S2W7cjs.W; exports.RiskLogicInput = _chunkQEM6S2W7cjs.X; exports.SCOPES_BY_TITLE = _chunkE57K4DGXcjs.w; exports.SCOPE_TITLES = _chunkE57K4DGXcjs.x; exports.SET_RESOURCE_ATTRIBUTES = _chunkRSN3DUTPcjs.Ra; exports.SKIP_REQUEST_ENRICHER = _chunkRSN3DUTPcjs.ca; exports.SOFTWARE_DEVELOPMENT_KITS = _chunkRSN3DUTPcjs.M; exports.SOMBRA_VERSION = _chunkRSN3DUTPcjs.$b; exports.SUB_DATA_POINTS = _chunkRSN3DUTPcjs.c; exports.SUB_DATA_POINTS_COUNT = _chunkRSN3DUTPcjs.d; exports.SUB_DATA_POINTS_WITH_GUESSES = _chunkRSN3DUTPcjs.e; exports.SYNC_ATTRIBUTE_TYPES = _chunkRSN3DUTPcjs.Kc; exports.SoftwareDevelopmentKitInput = _chunkQEM6S2W7cjs.B; exports.StoredApiKey = _chunkQEM6S2W7cjs.ha; exports.SuccessfulRequest = _chunkRSN3DUTPcjs.ic; exports.TEAMS = _chunkRSN3DUTPcjs.xa; exports.TEMPLATES = _chunkRSN3DUTPcjs.I; exports.TOGGLE_CONSENT_PRECEDENCE = _chunkRSN3DUTPcjs.kb; exports.TOGGLE_DATA_SUBJECT = _chunkRSN3DUTPcjs.z; exports.TOGGLE_TELEMETRY_PARTITION_STRATEGY = _chunkRSN3DUTPcjs.jb; exports.TOGGLE_UNKNOWN_COOKIE_POLICY = _chunkRSN3DUTPcjs.ib; exports.TOGGLE_UNKNOWN_REQUEST_POLICY = _chunkRSN3DUTPcjs.hb; exports.TR_PULL_RESOURCE_SCOPE_MAP = _chunkE57K4DGXcjs.u; exports.TR_PUSH_RESOURCE_SCOPE_MAP = _chunkE57K4DGXcjs.t; exports.TR_YML_RESOURCE_TO_FIELD_NAME = _chunkE57K4DGXcjs.v; exports.TeamInput = _chunkQEM6S2W7cjs.d; exports.TemplateInput = _chunkQEM6S2W7cjs.a; exports.TranscendInput = _chunkQEM6S2W7cjs.ga; exports.TranscendPromptManager = B; exports.TranscendPullResource = _chunkQ7I37FJVcjs.d; exports.UPDATE_ACTION = _chunkRSN3DUTPcjs.ub; exports.UPDATE_ACTION_ITEMS = _chunkRSN3DUTPcjs.wb; exports.UPDATE_ACTION_ITEM_COLLECTION = _chunkRSN3DUTPcjs.Ja; exports.UPDATE_AGENTS = _chunkRSN3DUTPcjs.Ib; exports.UPDATE_AGENT_FILES = _chunkRSN3DUTPcjs.Lb; exports.UPDATE_AGENT_FUNCTIONS = _chunkRSN3DUTPcjs.Ob; exports.UPDATE_ATTRIBUTE = _chunkRSN3DUTPcjs.Qa; exports.UPDATE_ATTRIBUTE_VALUES = _chunkRSN3DUTPcjs.Ma; exports.UPDATE_BUSINESS_ENTITIES = _chunkRSN3DUTPcjs.sb; exports.UPDATE_CODE_PACKAGES = _chunkRSN3DUTPcjs.Q; exports.UPDATE_CONSENT_EXPERIENCE = _chunkRSN3DUTPcjs.mb; exports.UPDATE_CONSENT_MANAGER_DOMAINS = _chunkRSN3DUTPcjs.eb; exports.UPDATE_CONSENT_MANAGER_PARTITION = _chunkRSN3DUTPcjs.fb; exports.UPDATE_CONSENT_MANAGER_THEME = _chunkRSN3DUTPcjs.lb; exports.UPDATE_CONSENT_MANAGER_TO_LATEST = _chunkRSN3DUTPcjs.cb; exports.UPDATE_CONSENT_MANAGER_VERSION = _chunkRSN3DUTPcjs.bb; exports.UPDATE_DATA_FLOWS = _chunkRSN3DUTPcjs.Va; exports.UPDATE_DATA_SILOS = _chunkRSN3DUTPcjs.l; exports.UPDATE_DATA_SUBJECT = _chunkRSN3DUTPcjs.y; exports.UPDATE_DATA_SUB_CATEGORIES = _chunkRSN3DUTPcjs.Ub; exports.UPDATE_ENRICHER = _chunkRSN3DUTPcjs.q; exports.UPDATE_IDENTIFIER = _chunkRSN3DUTPcjs.v; exports.UPDATE_INTL_MESSAGES = _chunkRSN3DUTPcjs.$; exports.UPDATE_LOAD_OPTIONS = _chunkRSN3DUTPcjs.gb; exports.UPDATE_OR_CREATE_COOKIES = _chunkRSN3DUTPcjs.Wa; exports.UPDATE_OR_CREATE_DATA_POINT = _chunkRSN3DUTPcjs.f; exports.UPDATE_POLICIES = _chunkRSN3DUTPcjs.U; exports.UPDATE_PRIVACY_CENTER = _chunkRSN3DUTPcjs.Bb; exports.UPDATE_PRIVACY_REQUEST = _chunkRSN3DUTPcjs.Y; exports.UPDATE_PROCESSING_ACTIVITIES = _chunkRSN3DUTPcjs._b; exports.UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES = _chunkRSN3DUTPcjs.Xb; exports.UPDATE_PROMPTS = _chunkRSN3DUTPcjs.na; exports.UPDATE_PROMPT_GROUPS = _chunkRSN3DUTPcjs.ra; exports.UPDATE_PROMPT_PARTIALS = _chunkRSN3DUTPcjs.pa; exports.UPDATE_REPOSITORIES = _chunkRSN3DUTPcjs.B; exports.UPDATE_SOFTWARE_DEVELOPMENT_KITS = _chunkRSN3DUTPcjs.N; exports.UPDATE_TEAM = _chunkRSN3DUTPcjs.za; exports.UPDATE_VENDORS = _chunkRSN3DUTPcjs.Rb; exports.USERS = _chunkRSN3DUTPcjs.Ca; exports.USP_STRING_REGEX = _chunk4GRQMYW2cjs.d; exports.VARIABLE_PARAMETERS_NAME = _chunkSW5CIF5Dcjs.b; exports.VARIABLE_PARAMETERS_REGEXP = _chunkSW5CIF5Dcjs.a; exports.VENDORS = _chunkRSN3DUTPcjs.Pb; exports.VendorInput = _chunkQEM6S2W7cjs.p; exports.WebhookHeader = _chunkQEM6S2W7cjs.b; exports.addMessagesToPromptRun = _chunkRSN3DUTPcjs.tc; exports.appendCsvSync = _chunkLR3CPNDMcjs.b; exports.approvePrivacyRequests = _chunkRSN3DUTPcjs.wf; exports.assumeRole = _chunkRSN3DUTPcjs.Gd; exports.buildAIIntegrationType = _chunkLCDYXJN6cjs.b; exports.buildEnabledRouteType = _chunkLCDYXJN6cjs.a; exports.buildTranscendGraphQLClient = _chunkRSN3DUTPcjs.vc; exports.buildTranscendGraphQLClientGeneric = _chunkRSN3DUTPcjs.uc; exports.buildXdiSyncEndpoint = _chunk2VX4QD73cjs.g; exports.bulkRestartRequests = _chunkRSN3DUTPcjs.Ef; exports.bulkRetryEnrichers = _chunkRSN3DUTPcjs.Gf; exports.cancelPrivacyRequests = _chunkRSN3DUTPcjs.zf; exports.consentManagersToBusinessEntities = _chunk2VX4QD73cjs.h; exports.convertToDataSubjectAllowlist = _chunkRSN3DUTPcjs.vd; exports.convertToDataSubjectBlockList = _chunkRSN3DUTPcjs.ud; exports.createActionItemCollection = _chunkRSN3DUTPcjs.fe; exports.createActionItems = _chunkRSN3DUTPcjs.ie; exports.createAgent = _chunkRSN3DUTPcjs.re; exports.createAgentFile = _chunkRSN3DUTPcjs.le; exports.createAgentFunction = _chunkRSN3DUTPcjs.oe; exports.createApiKey = _chunkRSN3DUTPcjs.Hd; exports.createBusinessEntity = _chunkRSN3DUTPcjs.ve; exports.createCodePackage = _chunkRSN3DUTPcjs.Ee; exports.createConsentToken = _chunk4GRQMYW2cjs.a; exports.createDataCategory = _chunkRSN3DUTPcjs.Le; exports.createDataFlows = _chunkRSN3DUTPcjs.Pe; exports.createProcessingPurpose = _chunkRSN3DUTPcjs.Ze; exports.createPrompt = _chunkRSN3DUTPcjs.af; exports.createRegexForTag = j; exports.createRepository = _chunkRSN3DUTPcjs.Be; exports.createSoftwareDevelopmentKit = _chunkRSN3DUTPcjs.ye; exports.createSombraGotInstance = _chunkRSN3DUTPcjs.wc; exports.createTranscendConsentGotInstance = _chunkRSN3DUTPcjs.xc; exports.createVendor = _chunkRSN3DUTPcjs.df; exports.defineTranscendPrompts = Bm; exports.deleteApiKey = _chunkRSN3DUTPcjs.Id; exports.deployConsentManager = _chunkRSN3DUTPcjs.yc; exports.description = _chunkE57K4DGXcjs.l; exports.domainToHost = _chunk2VX4QD73cjs.e; exports.downloadPrivacyRequestFiles = _chunkRSN3DUTPcjs.tf; exports.enrichPrivacyRequest = _chunkK2E6TCB5cjs.c; exports.ensureAllDataSubjectsExist = _chunkRSN3DUTPcjs.td; exports.extractClientError = _chunkRSN3DUTPcjs.Bf; exports.extractErrorMessage = _chunkRSN3DUTPcjs.Qf; exports.fetchActiveSiloDiscoPlugin = _chunkRSN3DUTPcjs.Ac; exports.fetchAllActionItems = _chunkRSN3DUTPcjs.Bc; exports.fetchAllActions = _chunkRSN3DUTPcjs.Cc; exports.fetchAllAgentFiles = _chunkRSN3DUTPcjs.Dc; exports.fetchAllAgentFunctions = _chunkRSN3DUTPcjs.Ec; exports.fetchAllAgents = _chunkRSN3DUTPcjs.Fc; exports.fetchAllApiKeys = _chunkRSN3DUTPcjs.od; exports.fetchAllAssessmentTemplates = _chunkRSN3DUTPcjs.Hc; exports.fetchAllAssessments = _chunkRSN3DUTPcjs.Gc; exports.fetchAllAttributeValues = _chunkRSN3DUTPcjs.Jc; exports.fetchAllAttributes = _chunkRSN3DUTPcjs.Lc; exports.fetchAllBusinessEntities = _chunkRSN3DUTPcjs.Mc; exports.fetchAllCatalogs = _chunkRSN3DUTPcjs.qd; exports.fetchAllCookies = _chunkRSN3DUTPcjs.Tc; exports.fetchAllDataCategories = _chunkRSN3DUTPcjs.Uc; exports.fetchAllDataFlows = _chunkRSN3DUTPcjs.Vc; exports.fetchAllDataPoints = _chunkRSN3DUTPcjs.Rd; exports.fetchAllDataSilos = _chunkRSN3DUTPcjs.Pd; exports.fetchAllDataSubjects = _chunkRSN3DUTPcjs.sd; exports.fetchAllEnrichers = _chunkRSN3DUTPcjs.Vd; exports.fetchAllIdentifiers = _chunkRSN3DUTPcjs.Yf; exports.fetchAllMessages = _chunkRSN3DUTPcjs.Wc; exports.fetchAllPolicies = _chunkRSN3DUTPcjs.Zc; exports.fetchAllPreferenceTopics = _chunkRSN3DUTPcjs.$c; exports.fetchAllPrivacyCenters = _chunkRSN3DUTPcjs.ad; exports.fetchAllProcessingActivities = _chunkRSN3DUTPcjs.bd; exports.fetchAllProcessingPurposes = _chunkRSN3DUTPcjs.cd; exports.fetchAllPromptGroups = _chunkRSN3DUTPcjs.wd; exports.fetchAllPromptPartials = _chunkRSN3DUTPcjs.xd; exports.fetchAllPromptThreads = _chunkRSN3DUTPcjs.Ad; exports.fetchAllPrompts = _chunkRSN3DUTPcjs.yd; exports.fetchAllPurposes = _chunkRSN3DUTPcjs.dd; exports.fetchAllPurposesAndPreferences = _chunkRSN3DUTPcjs.ed; exports.fetchAllRequestAttributeKeys = _chunkRSN3DUTPcjs.Ic; exports.fetchAllRequestEnrichers = _chunkRSN3DUTPcjs.fd; exports.fetchAllRequestIdentifierMetadata = _chunkRSN3DUTPcjs.gd; exports.fetchAllRequestIdentifiers = _chunkRSN3DUTPcjs.id; exports.fetchAllRequests = _chunkRSN3DUTPcjs.kd; exports.fetchAllSubDataPoints = _chunkRSN3DUTPcjs.Qd; exports.fetchAllTeams = _chunkRSN3DUTPcjs.ld; exports.fetchAllTemplates = _chunkRSN3DUTPcjs.Xd; exports.fetchAllUsers = _chunkRSN3DUTPcjs.md; exports.fetchAllVendors = _chunkRSN3DUTPcjs.nd; exports.fetchAndIndexCatalogs = _chunkRSN3DUTPcjs.rd; exports.fetchApiKeys = _chunkRSN3DUTPcjs.pd; exports.fetchConsentManager = _chunkRSN3DUTPcjs.Nc; exports.fetchConsentManagerAnalyticsData = _chunkRSN3DUTPcjs.Rc; exports.fetchConsentManagerExperiences = _chunkRSN3DUTPcjs.Pc; exports.fetchConsentManagerId = _chunkRSN3DUTPcjs.Oc; exports.fetchConsentManagerTheme = _chunkRSN3DUTPcjs.Sc; exports.fetchConsentPreferences = _chunk2VX4QD73cjs.j; exports.fetchEnrichedDataSilos = _chunkRSN3DUTPcjs.Sd; exports.fetchIdentifiersAndCreateMissing = _chunkRSN3DUTPcjs.Zf; exports.fetchPartitions = _chunkRSN3DUTPcjs.Zd; exports.fetchPrivacyCenterId = _chunkRSN3DUTPcjs.Yc; exports.fetchPrivacyCenterUrl = _chunkRSN3DUTPcjs.Xc; exports.fetchPromptsWithVariables = _chunkRSN3DUTPcjs.zd; exports.fetchRequestDataSilo = _chunkRSN3DUTPcjs.Cd; exports.fetchRequestDataSiloActiveCount = _chunkRSN3DUTPcjs.Dd; exports.fetchRequestDataSilos = _chunkRSN3DUTPcjs.Bd; exports.fetchRequestFilesForRequest = _chunkRSN3DUTPcjs.Ed; exports.filterNullishValuesFromObject = Um; exports.filterRows = _chunkRSN3DUTPcjs.sc; exports.formatAttributeValues = _chunkRSN3DUTPcjs._c; exports.fuzzyMatchColumns = _chunkRSN3DUTPcjs.lc; exports.fuzzySearch = _chunkRSN3DUTPcjs.kc; exports.generateCrossAccountApiKeys = _chunkNKFAEQ2Qcjs.a; exports.getErrorStatus = _chunkRSN3DUTPcjs.Pf; exports.getFileMetadataForPrivacyRequests = _chunkRSN3DUTPcjs.rf; exports.getGitFilesThatChanged = vm; exports.getUniqueValuesForColumn = _chunkRSN3DUTPcjs.rc; exports.inquirerAutoComplete = _chunkRSN3DUTPcjs.Nf; exports.inquirerConfirmBoolean = _chunkRSN3DUTPcjs.Lf; exports.inquirerConfirmText = _chunkRSN3DUTPcjs.Mf; exports.limitRecords = _chunkRSN3DUTPcjs.Uf; exports.listDirectories = _chunkNKFAEQ2Qcjs.d; exports.listFiles = _chunkNKFAEQ2Qcjs.c; exports.loginUser = _chunkRSN3DUTPcjs.Fd; exports.makeGraphQLRequest = _chunkRSN3DUTPcjs.Xf; exports.mapColumnsToAttributes = _chunkRSN3DUTPcjs.Af; exports.mapColumnsToIdentifiers = _chunkRSN3DUTPcjs.yf; exports.mapCsvColumnsToApi = _chunkRSN3DUTPcjs.if; exports.mapCsvRowsToRequestInputs = _chunkRSN3DUTPcjs.nf; exports.mapEnumValues = _chunkRSN3DUTPcjs.mc; exports.mapRequestEnumValues = _chunkRSN3DUTPcjs.jf; exports.markCronIdentifierCompleted = _chunkHBKA5Z5Acjs.d; exports.markRequestDataSiloIdsCompleted = _chunkHBKA5Z5Acjs.f; exports.markSilentPrivacyRequests = _chunkRSN3DUTPcjs.hf; exports.mergeTranscendInputs = _chunkIBTP5OXEcjs.a; exports.name = _chunkE57K4DGXcjs.n; exports.normalizeIdentifierValue = _chunkRSN3DUTPcjs.mf; exports.notifyPrivacyRequestsAdditionalTime = _chunkRSN3DUTPcjs.xf; exports.parseAssessmentDisplayLogic = _chunkRSN3DUTPcjs.Md; exports.parseAssessmentRiskLogic = _chunkRSN3DUTPcjs.Od; exports.parseAttributesFromString = _chunkRSN3DUTPcjs.pc; exports.parseFilePath = _chunkLR3CPNDMcjs.d; exports.parseVariablesFromString = _chunkRSN3DUTPcjs.Of; exports.pullAllDatapoints = _chunkOCNPZWYTcjs.a; exports.pullChunkedCustomSiloOutstandingIdentifiers = _chunkHBKA5Z5Acjs.g; exports.pullConsentManagerMetrics = _chunk2VX4QD73cjs.d; exports.pullCronPageOfIdentifiers = _chunkHBKA5Z5Acjs.b; exports.pullManualEnrichmentIdentifiersToCsv = _chunkK2E6TCB5cjs.a; exports.pullPrivacyRequests = _chunkRSN3DUTPcjs.If; exports.pullTranscendConfiguration = _chunkRSN3DUTPcjs.ae; exports.pullUnstructuredSubDataPointRecommendations = _chunkOCNPZWYTcjs.b; exports.pushCronIdentifiersFromCsv = _chunkHBKA5Z5Acjs.e; exports.pushManualEnrichmentIdentifiersFromCsv = _chunkK2E6TCB5cjs.d; exports.readCsv = _chunkRSN3DUTPcjs.qc; exports.readSafe = _chunkRSN3DUTPcjs.Wf; exports.readTranscendYaml = _chunkSW5CIF5Dcjs.d; exports.removeLinks = Qm; exports.removeUnverifiedRequestIdentifiers = _chunkRSN3DUTPcjs.Kf; exports.replaceVariablesInYaml = _chunkSW5CIF5Dcjs.c; exports.reportPromptRun = _chunkRSN3DUTPcjs.be; exports.restartPrivacyRequest = _chunkRSN3DUTPcjs.Df; exports.retryRequestDataSilos = _chunkRSN3DUTPcjs.Hf; exports.retryRequestEnricher = _chunkRSN3DUTPcjs.ce; exports.retrySamePromise = _chunkRSN3DUTPcjs.Tf; exports.setResourceAttributes = _chunkRSN3DUTPcjs.de; exports.skipPreflightJobs = _chunkRSN3DUTPcjs.Ff; exports.skipRequestDataSilos = _chunkRSN3DUTPcjs.Jf; exports.sleepPromise = _chunkRSN3DUTPcjs.Rf; exports.splitCsvToList = _chunkRSN3DUTPcjs.nc; exports.splitInHalf = _chunkRSN3DUTPcjs.Sf; exports.streamPrivacyRequestFiles = _chunkRSN3DUTPcjs.sf; exports.submitPrivacyRequest = _chunkRSN3DUTPcjs.vf; exports.syncAction = _chunkRSN3DUTPcjs.ee; exports.syncActionItemCollections = _chunkRSN3DUTPcjs.he; exports.syncActionItems = _chunkRSN3DUTPcjs.ke; exports.syncAgentFiles = _chunkRSN3DUTPcjs.ne; exports.syncAgentFunctions = _chunkRSN3DUTPcjs.qe; exports.syncAgents = _chunkRSN3DUTPcjs.te; exports.syncAttribute = _chunkRSN3DUTPcjs.ue; exports.syncBusinessEntities = _chunkRSN3DUTPcjs.xe; exports.syncCodePackages = _chunkRSN3DUTPcjs.Ge; exports.syncConfigurationToTranscend = _chunkRSN3DUTPcjs._f; exports.syncConsentManager = _chunkRSN3DUTPcjs.Ie; exports.syncConsentManagerExperiences = _chunkRSN3DUTPcjs.He; exports.syncCookies = _chunkRSN3DUTPcjs.Ke; exports.syncDataCategories = _chunkRSN3DUTPcjs.Ne; exports.syncDataFlows = _chunkRSN3DUTPcjs.Qe; exports.syncDataSiloDependencies = _chunkRSN3DUTPcjs.Ud; exports.syncDataSilos = _chunkRSN3DUTPcjs.Td; exports.syncDataSubject = _chunkRSN3DUTPcjs.Re; exports.syncEnricher = _chunkRSN3DUTPcjs.Wd; exports.syncIdentifier = _chunkRSN3DUTPcjs.Se; exports.syncIntlMessages = _chunkRSN3DUTPcjs.Ue; exports.syncPartitions = _chunkRSN3DUTPcjs._d; exports.syncPolicies = _chunkRSN3DUTPcjs.We; exports.syncPrivacyCenter = _chunkRSN3DUTPcjs.Xe; exports.syncProcessingActivities = _chunkRSN3DUTPcjs.Ye; exports.syncProcessingPurposes = _chunkRSN3DUTPcjs.$e; exports.syncPrompts = _chunkRSN3DUTPcjs.cf; exports.syncRepositories = _chunkRSN3DUTPcjs.De; exports.syncSoftwareDevelopmentKits = _chunkRSN3DUTPcjs.Ae; exports.syncTemplate = _chunkRSN3DUTPcjs.Yd; exports.syncVendors = _chunkRSN3DUTPcjs.ff; exports.updateActionItem = _chunkRSN3DUTPcjs.je; exports.updateActionItemCollection = _chunkRSN3DUTPcjs.ge; exports.updateAgentFiles = _chunkRSN3DUTPcjs.me; exports.updateAgentFunctions = _chunkRSN3DUTPcjs.pe; exports.updateAgents = _chunkRSN3DUTPcjs.se; exports.updateBusinessEntities = _chunkRSN3DUTPcjs.we; exports.updateCodePackages = _chunkRSN3DUTPcjs.Fe; exports.updateConsentManagerToLatest = _chunkRSN3DUTPcjs.zc; exports.updateConsentManagerVersionToLatest = _chunk2VX4QD73cjs.a; exports.updateDataCategories = _chunkRSN3DUTPcjs.Me; exports.updateDataFlows = _chunkRSN3DUTPcjs.Oe; exports.updateIntlMessages = _chunkRSN3DUTPcjs.Te; exports.updateOrCreateCookies = _chunkRSN3DUTPcjs.Je; exports.updatePolicies = _chunkRSN3DUTPcjs.Ve; exports.updateProcessingPurposes = _chunkRSN3DUTPcjs._e; exports.updatePrompts = _chunkRSN3DUTPcjs.bf; exports.updateRepositories = _chunkRSN3DUTPcjs.Ce; exports.updateSoftwareDevelopmentKits = _chunkRSN3DUTPcjs.ze; exports.updateVendors = _chunkRSN3DUTPcjs.ef; exports.uploadConsents = _chunk4GRQMYW2cjs.f; exports.uploadCookiesFromCsv = _chunk2VX4QD73cjs.c; exports.uploadDataFlowsFromCsv = _chunk2VX4QD73cjs.b; exports.uploadPrivacyRequestsFromCsv = _chunkRSN3DUTPcjs.Cf; exports.uploadSiloDiscoveryResults = _chunkRSN3DUTPcjs.gf; exports.validateTranscendAuth = _chunkNKFAEQ2Qcjs.b; exports.version = _chunkE57K4DGXcjs.m; exports.writeCsv = _chunkLR3CPNDMcjs.c; exports.writeCsvSync = _chunkLR3CPNDMcjs.a; exports.writeLargeCsv = _chunkLR3CPNDMcjs.e; exports.writeTranscendYaml = _chunkSW5CIF5Dcjs.e;
3
+ `)[0];if(!o||!i)throw new Error("FAILED TO FIND COMMIT RANGE");let p=_child_process.execSync.call(void 0, `git fetch && git diff --name-only "${a||o}...${i}" -- ${e}`,{encoding:"utf-8"}),m=_chunkMGAJ7ILDcjs.c.call(void 0, p.split(`
4
+ `).filter(d=>d),s),c=t.length>0?_fastglob2.default.sync(m,{ignore:t}):m,n={};c.forEach(d=>{let F=_child_process.execSync.call(void 0, `git show ${i}:${d}`,{encoding:"utf-8"});n[d]=F});let g=r.split("/").pop().split(".")[0];return{changedFiles:m,fileDiffs:n,repoName:g,commit:i}}exports.ACTIONS = _chunkQPIUQDJ6cjs.tb; exports.ADD_MESSAGES_TO_PROMPT_RUN = _chunkQPIUQDJ6cjs.Ga; exports.ADD_SILO_DISCOVERY_RESULTS = _chunkQPIUQDJ6cjs.G; exports.ADMIN_DASH = _chunkMGAJ7ILDcjs.o; exports.ADMIN_DASH_DATAPOINTS = _chunkMGAJ7ILDcjs.q; exports.ADMIN_DASH_INTEGRATIONS = _chunkMGAJ7ILDcjs.p; exports.AGENTS = _chunkQPIUQDJ6cjs.Gb; exports.AGENT_FILES = _chunkQPIUQDJ6cjs.Jb; exports.AGENT_FUNCTIONS = _chunkQPIUQDJ6cjs.Mb; exports.API_KEYS = _chunkQPIUQDJ6cjs.D; exports.APPROVE_PRIVACY_REQUEST = _chunkQPIUQDJ6cjs.W; exports.ASSESSMENTS = _chunkQPIUQDJ6cjs.ea; exports.ASSESSMENT_SECTION_FIELDS = _chunkQPIUQDJ6cjs.da; exports.ASSESSMENT_TEMPLATES = _chunkQPIUQDJ6cjs.ia; exports.ASSUME_ROLE = _chunkQPIUQDJ6cjs.Eb; exports.ATTRIBUTES = _chunkQPIUQDJ6cjs.Ka; exports.ATTRIBUTE_KEYS_REQUESTS = _chunkQPIUQDJ6cjs.L; exports.ATTRIBUTE_VALUES = _chunkQPIUQDJ6cjs.Oa; exports.ActionInput = _chunkQEM6S2W7cjs.G; exports.ActionItemCollectionInput = _chunkQEM6S2W7cjs.R; exports.ActionItemInput = _chunkQEM6S2W7cjs.S; exports.AgentFileInput = _chunkQEM6S2W7cjs.o; exports.AgentFunctionInput = _chunkQEM6S2W7cjs.n; exports.AgentInput = _chunkQEM6S2W7cjs.m; exports.ApiKeyInput = _chunkQEM6S2W7cjs.c; exports.AssessmentAction = _chunkQPIUQDJ6cjs.Ld; exports.AssessmentAnswerOptionInput = _chunkQEM6S2W7cjs.Y; exports.AssessmentDisplayLogicInput = _chunkQEM6S2W7cjs.V; exports.AssessmentInput = _chunkQEM6S2W7cjs.ca; exports.AssessmentNestedRule = _chunkQPIUQDJ6cjs.Kd; exports.AssessmentNestedRuleInput = _chunkQEM6S2W7cjs.U; exports.AssessmentResourceInput = _chunkQEM6S2W7cjs.ba; exports.AssessmentRetentionScheduleInput = _chunkQEM6S2W7cjs.$; exports.AssessmentRiskLogic = _chunkQPIUQDJ6cjs.Nd; exports.AssessmentRule = _chunkQPIUQDJ6cjs.Jd; exports.AssessmentRuleInput = _chunkQEM6S2W7cjs.T; exports.AssessmentSectionInput = _chunkQEM6S2W7cjs._; exports.AssessmentSectionQuestionInput = _chunkQEM6S2W7cjs.Z; exports.AssessmentTemplateInput = _chunkQEM6S2W7cjs.aa; exports.AttestedExtraIdentifiers = _chunkQPIUQDJ6cjs.kf; exports.AttributeInput = _chunkQEM6S2W7cjs.k; exports.AttributePreview = _chunkQEM6S2W7cjs.l; exports.AttributeValueInput = _chunkQEM6S2W7cjs.j; exports.BLANK = _chunkQPIUQDJ6cjs.cc; exports.BULK_APPLY = _chunkQPIUQDJ6cjs.bc; exports.BULK_REQUEST_FILES = _chunkQPIUQDJ6cjs.Ea; exports.BUSINESS_ENTITIES = _chunkQPIUQDJ6cjs.qb; exports.BusinessEntityInput = _chunkQEM6S2W7cjs.y; exports.CANCEL_PRIVACY_REQUEST = _chunkQPIUQDJ6cjs.X; exports.CAN_APPLY_IN_BULK = _chunkQPIUQDJ6cjs.gc; exports.CATALOGS = _chunkQPIUQDJ6cjs.r; exports.CHANGE_REQUEST_DATA_SILO_STATUS = _chunkQPIUQDJ6cjs.ua; exports.CODE_PACKAGES = _chunkQPIUQDJ6cjs.P; exports.CONSENT_MANAGER_ANALYTICS_DATA = _chunkQPIUQDJ6cjs.pb; exports.CONSENT_PARTITIONS = _chunkQPIUQDJ6cjs.Ta; exports.COOKIES = _chunkQPIUQDJ6cjs.Ya; exports.CREATE_ACTION_ITEMS = _chunkQPIUQDJ6cjs.xb; exports.CREATE_ACTION_ITEM_COLLECTION = _chunkQPIUQDJ6cjs.Ia; exports.CREATE_AGENT = _chunkQPIUQDJ6cjs.Hb; exports.CREATE_AGENT_FILE = _chunkQPIUQDJ6cjs.Kb; exports.CREATE_AGENT_FUNCTION = _chunkQPIUQDJ6cjs.Nb; exports.CREATE_API_KEY = _chunkQPIUQDJ6cjs.E; exports.CREATE_ATTRIBUTE = _chunkQPIUQDJ6cjs.Pa; exports.CREATE_ATTRIBUTE_VALUES = _chunkQPIUQDJ6cjs.La; exports.CREATE_BUSINESS_ENTITY = _chunkQPIUQDJ6cjs.rb; exports.CREATE_CODE_PACKAGE = _chunkQPIUQDJ6cjs.R; exports.CREATE_CONSENT_EXPERIENCE = _chunkQPIUQDJ6cjs.nb; exports.CREATE_CONSENT_MANAGER = _chunkQPIUQDJ6cjs.ab; exports.CREATE_CONSENT_PARTITION = _chunkQPIUQDJ6cjs.ob; exports.CREATE_DATA_FLOWS = _chunkQPIUQDJ6cjs.Ua; exports.CREATE_DATA_SILOS = _chunkQPIUQDJ6cjs.m; exports.CREATE_DATA_SUBJECT = _chunkQPIUQDJ6cjs.x; exports.CREATE_DATA_SUB_CATEGORY = _chunkQPIUQDJ6cjs.Tb; exports.CREATE_ENRICHER = _chunkQPIUQDJ6cjs.p; exports.CREATE_IDENTIFIER = _chunkQPIUQDJ6cjs.u; exports.CREATE_PROCESSING_ACTIVITY = _chunkQPIUQDJ6cjs.Zb; exports.CREATE_PROCESSING_PURPOSE_SUB_CATEGORY = _chunkQPIUQDJ6cjs.Wb; exports.CREATE_PROMPT = _chunkQPIUQDJ6cjs.oa; exports.CREATE_PROMPT_GROUP = _chunkQPIUQDJ6cjs.sa; exports.CREATE_PROMPT_PARTIAL = _chunkQPIUQDJ6cjs.qa; exports.CREATE_REPOSITORY = _chunkQPIUQDJ6cjs.C; exports.CREATE_SOFTWARE_DEVELOPMENT_KIT = _chunkQPIUQDJ6cjs.O; exports.CREATE_TEAM = _chunkQPIUQDJ6cjs.ya; exports.CREATE_TEMPLATE = _chunkQPIUQDJ6cjs.J; exports.CREATE_VENDOR = _chunkQPIUQDJ6cjs.Qb; exports.CachedFileState = _chunkQPIUQDJ6cjs.hc; exports.CachedRequestState = _chunkQPIUQDJ6cjs.jc; exports.CodePackageInput = _chunkQEM6S2W7cjs.D; exports.CodePackageSdk = _chunkQEM6S2W7cjs.C; exports.ColumnName = _chunkQPIUQDJ6cjs.ec; exports.ConsentManageExperienceInput = _chunkQEM6S2W7cjs.K; exports.ConsentManagerInput = _chunkQEM6S2W7cjs.M; exports.ConsentManagerMetricBin = _chunkQPIUQDJ6cjs.Qc; exports.ConsentManagerServiceMetadata = _chunkQEM6S2W7cjs.ka; exports.ConsentPreferenceResponse = _chunkBICC2LJLcjs.i; exports.ConsentPreferenceTopic = _chunkQEM6S2W7cjs.ea; exports.ConsentPreferenceTopicOptionValue = _chunkQEM6S2W7cjs.da; exports.ConsentPurpose = _chunkQEM6S2W7cjs.fa; exports.CookieCsvInput = _chunkQEM6S2W7cjs.ja; exports.CookieInput = _chunkQEM6S2W7cjs.J; exports.CronIdentifier = _chunkQRDYTLVBcjs.a; exports.CronIdentifierPush = _chunkQRDYTLVBcjs.c; exports.DATAPOINT_EXPORT = _chunkQPIUQDJ6cjs.g; exports.DATA_FLOWS = _chunkQPIUQDJ6cjs.Xa; exports.DATA_POINTS = _chunkQPIUQDJ6cjs.a; exports.DATA_POINT_COUNT = _chunkQPIUQDJ6cjs.b; exports.DATA_SILOS = _chunkQPIUQDJ6cjs.i; exports.DATA_SILOS_ENRICHED = _chunkQPIUQDJ6cjs.k; exports.DATA_SILO_EXPORT = _chunkQPIUQDJ6cjs.j; exports.DATA_SUBJECTS = _chunkQPIUQDJ6cjs.w; exports.DATA_SUB_CATEGORIES = _chunkQPIUQDJ6cjs.Sb; exports.DEBUG = _chunkMGAJ7ILDcjs.z; exports.DEFAULT_TRANSCEND_API = _chunkMGAJ7ILDcjs.r; exports.DEFAULT_TRANSCEND_CONSENT_API = _chunkMGAJ7ILDcjs.s; exports.DEFAULT_TRANSCEND_PULL_RESOURCES = _chunkQPIUQDJ6cjs.$d; exports.DELETE_API_KEY = _chunkQPIUQDJ6cjs.F; exports.DELETE_ATTRIBUTE_VALUE = _chunkQPIUQDJ6cjs.Na; exports.DEPLOYED_PRIVACY_CENTER_URL = _chunkQPIUQDJ6cjs.zb; exports.DEPLOY_CONSENT_MANAGER = _chunkQPIUQDJ6cjs.db; exports.DETERMINE_LOGIN_METHOD = _chunkQPIUQDJ6cjs.Cb; exports.DataCategoryGuessInput = _chunkQEM6S2W7cjs.h; exports.DataCategoryInput = _chunkQEM6S2W7cjs.q; exports.DataCategoryPreviewInput = _chunkQEM6S2W7cjs.g; exports.DataCategoryRecommendationInput = _chunkQEM6S2W7cjs.i; exports.DataFlowCsvInput = _chunkQEM6S2W7cjs.ia; exports.DataFlowInput = _chunkQEM6S2W7cjs.I; exports.DataSiloInput = _chunkQEM6S2W7cjs.Q; exports.DataSubjectInput = _chunkQEM6S2W7cjs.F; exports.DatapointInput = _chunkQEM6S2W7cjs.w; exports.ENABLED_PLUGINS = _chunkQPIUQDJ6cjs.H; exports.ENRICHERS = _chunkQPIUQDJ6cjs.n; exports.ENTRY_COUNT = _chunkQPIUQDJ6cjs.h; exports.EXPERIENCES = _chunkQPIUQDJ6cjs.Sa; exports.EnrichPrivacyRequest = _chunkDVJLLHL3cjs.b; exports.EnricherInput = _chunkQEM6S2W7cjs.e; exports.FETCH_CONSENT_MANAGER = _chunkQPIUQDJ6cjs._a; exports.FETCH_CONSENT_MANAGER_ID = _chunkQPIUQDJ6cjs.Za; exports.FETCH_CONSENT_MANAGER_THEME = _chunkQPIUQDJ6cjs.$a; exports.FETCH_PRIVACY_CENTER_ID = _chunkQPIUQDJ6cjs.yb; exports.FieldInput = _chunkQEM6S2W7cjs.v; exports.GLOBAL_ACTION_ITEMS = _chunkQPIUQDJ6cjs.vb; exports.GLOBAL_ACTION_ITEM_COLLECTIONS = _chunkQPIUQDJ6cjs.Ha; exports.IDENTIFIERS = _chunkQPIUQDJ6cjs.s; exports.IDENTIFIER_BLOCK_LIST = _chunkQPIUQDJ6cjs.dc; exports.IMPORT_ONE_TRUST_ASSESSMENT_FORMS = _chunkQPIUQDJ6cjs.fa; exports.INITIALIZER = _chunkQPIUQDJ6cjs.o; exports.IP_ADDRESS_REGEX = _chunkBICC2LJLcjs.f; exports.IS_REQUIRED = _chunkQPIUQDJ6cjs.fc; exports.IdentifierInput = _chunkQEM6S2W7cjs.H; exports.ImportOnetrustAssessmentsInput = _chunkQEM6S2W7cjs.ra; exports.IntlMessage = _chunkQPIUQDJ6cjs.of; exports.IntlMessageInput = _chunkQEM6S2W7cjs.P; exports.LARGE_LANGUAGE_MODELS = _chunkQPIUQDJ6cjs.Fb; exports.LOGIN = _chunkQPIUQDJ6cjs.Db; exports.MESSAGES = _chunkQPIUQDJ6cjs._; exports.NEW_IDENTIFIER_TYPES = _chunkQPIUQDJ6cjs.t; exports.NONE = _chunkQPIUQDJ6cjs.ac; exports.NOTIFY_ADDITIONAL_TIME = _chunkQPIUQDJ6cjs.Z; exports.ORGANIZATION = _chunkQPIUQDJ6cjs.K; exports.OneTrustFileFormat = _chunkQ7I37FJVcjs.a; exports.OneTrustPullResource = _chunkQ7I37FJVcjs.b; exports.OneTrustPullSource = _chunkQ7I37FJVcjs.c; exports.OpenAIEnabledRoute = _chunkQEM6S2W7cjs.ma; exports.OpenAIEnabledRoutes = _chunkQEM6S2W7cjs.na; exports.OpenAIIntegration = _chunkQEM6S2W7cjs.oa; exports.OpenAIRouteName = _chunkQ7I37FJVcjs.f; exports.POLICIES = _chunkQPIUQDJ6cjs.T; exports.PREFERENCE_TOPICS = _chunkQPIUQDJ6cjs.ha; exports.PRIVACY_CENTER = _chunkQPIUQDJ6cjs.Ab; exports.PROCESSING_ACTIVITIES = _chunkQPIUQDJ6cjs.Yb; exports.PROCESSING_PURPOSE_SUB_CATEGORIES = _chunkQPIUQDJ6cjs.Vb; exports.PROMPTS = _chunkQPIUQDJ6cjs.ja; exports.PROMPTS_WITH_VARIABLES = _chunkQPIUQDJ6cjs.ma; exports.PROMPT_GROUPS = _chunkQPIUQDJ6cjs.la; exports.PROMPT_PARTIALS = _chunkQPIUQDJ6cjs.ka; exports.PROMPT_THREADS = _chunkQPIUQDJ6cjs.S; exports.PURPOSES = _chunkQPIUQDJ6cjs.ga; exports.ParsedAttributeInput = _chunkQPIUQDJ6cjs.oc; exports.PartitionInput = _chunkQEM6S2W7cjs.L; exports.PathfinderPolicy = _chunkQEM6S2W7cjs.pa; exports.PathfinderPolicyName = _chunkQ7I37FJVcjs.e; exports.PathfinderPolicyNameC = _chunkQEM6S2W7cjs.la; exports.PathfinderPromptRunMetadata = _chunkQEM6S2W7cjs.qa; exports.PolicyInput = _chunkQEM6S2W7cjs.O; exports.PrivacyCenterInput = _chunkQEM6S2W7cjs.N; exports.PrivacyRequest = _chunkQPIUQDJ6cjs.jd; exports.PrivacyRequestInput = _chunkQPIUQDJ6cjs.lf; exports.PrivacyRequestResponse = _chunkQPIUQDJ6cjs.uf; exports.ProcessingActivityInput = _chunkQEM6S2W7cjs.A; exports.ProcessingPurposeInput = _chunkQEM6S2W7cjs.r; exports.ProcessingPurposePreviewInput = _chunkQEM6S2W7cjs.f; exports.PromptAVendorEmailSettings = _chunkQEM6S2W7cjs.x; exports.PromptGroupInput = _chunkQEM6S2W7cjs.u; exports.PromptInput = _chunkQEM6S2W7cjs.s; exports.PromptPartialInput = _chunkQEM6S2W7cjs.t; exports.PurposeMap = _chunkIFAKI5FFcjs.e; exports.REDUCED_REQUESTS_FOR_DATA_SILO_COUNT = _chunkQPIUQDJ6cjs.wa; exports.REMOVE_REQUEST_IDENTIFIERS = _chunkQPIUQDJ6cjs.Aa; exports.REPORT_PROMPT_RUN = _chunkQPIUQDJ6cjs.Fa; exports.REPOSITORIES = _chunkQPIUQDJ6cjs.A; exports.REQUESTS = _chunkQPIUQDJ6cjs.V; exports.REQUEST_DATA_SILOS = _chunkQPIUQDJ6cjs.ta; exports.REQUEST_ENRICHERS = _chunkQPIUQDJ6cjs.aa; exports.REQUEST_FILES = _chunkQPIUQDJ6cjs.Da; exports.REQUEST_IDENTIFIERS = _chunkQPIUQDJ6cjs.Ba; exports.RETRYABLE_BATCH_STATUSES = _chunkMGAJ7ILDcjs.y; exports.RETRY_REQUEST_DATA_SILO = _chunkQPIUQDJ6cjs.va; exports.RETRY_REQUEST_ENRICHER = _chunkQPIUQDJ6cjs.ba; exports.RateCounter = _chunkQPIUQDJ6cjs.Vf; exports.RegionInput = _chunkQEM6S2W7cjs.z; exports.RepositoryInput = _chunkQEM6S2W7cjs.E; exports.RequestFileMetadata = _chunkQPIUQDJ6cjs.pf; exports.RequestFileMetadataResponse = _chunkQPIUQDJ6cjs.qf; exports.RequestIdentifiersResponse = _chunkQPIUQDJ6cjs.hd; exports.RiskAssignmentInput = _chunkQEM6S2W7cjs.W; exports.RiskLogicInput = _chunkQEM6S2W7cjs.X; exports.SCOPES_BY_TITLE = _chunkMGAJ7ILDcjs.w; exports.SCOPE_TITLES = _chunkMGAJ7ILDcjs.x; exports.SET_RESOURCE_ATTRIBUTES = _chunkQPIUQDJ6cjs.Ra; exports.SKIP_REQUEST_ENRICHER = _chunkQPIUQDJ6cjs.ca; exports.SOFTWARE_DEVELOPMENT_KITS = _chunkQPIUQDJ6cjs.M; exports.SOMBRA_VERSION = _chunkQPIUQDJ6cjs.$b; exports.SUB_DATA_POINTS = _chunkQPIUQDJ6cjs.c; exports.SUB_DATA_POINTS_COUNT = _chunkQPIUQDJ6cjs.d; exports.SUB_DATA_POINTS_WITH_GUESSES = _chunkQPIUQDJ6cjs.e; exports.SYNC_ATTRIBUTE_TYPES = _chunkQPIUQDJ6cjs.Kc; exports.SoftwareDevelopmentKitInput = _chunkQEM6S2W7cjs.B; exports.StoredApiKey = _chunkQEM6S2W7cjs.ha; exports.SuccessfulRequest = _chunkQPIUQDJ6cjs.ic; exports.TEAMS = _chunkQPIUQDJ6cjs.xa; exports.TEMPLATES = _chunkQPIUQDJ6cjs.I; exports.TOGGLE_CONSENT_PRECEDENCE = _chunkQPIUQDJ6cjs.kb; exports.TOGGLE_DATA_SUBJECT = _chunkQPIUQDJ6cjs.z; exports.TOGGLE_TELEMETRY_PARTITION_STRATEGY = _chunkQPIUQDJ6cjs.jb; exports.TOGGLE_UNKNOWN_COOKIE_POLICY = _chunkQPIUQDJ6cjs.ib; exports.TOGGLE_UNKNOWN_REQUEST_POLICY = _chunkQPIUQDJ6cjs.hb; exports.TR_PULL_RESOURCE_SCOPE_MAP = _chunkMGAJ7ILDcjs.u; exports.TR_PUSH_RESOURCE_SCOPE_MAP = _chunkMGAJ7ILDcjs.t; exports.TR_YML_RESOURCE_TO_FIELD_NAME = _chunkMGAJ7ILDcjs.v; exports.TeamInput = _chunkQEM6S2W7cjs.d; exports.TemplateInput = _chunkQEM6S2W7cjs.a; exports.TranscendInput = _chunkQEM6S2W7cjs.ga; exports.TranscendPromptManager = B; exports.TranscendPullResource = _chunkQ7I37FJVcjs.d; exports.UPDATE_ACTION = _chunkQPIUQDJ6cjs.ub; exports.UPDATE_ACTION_ITEMS = _chunkQPIUQDJ6cjs.wb; exports.UPDATE_ACTION_ITEM_COLLECTION = _chunkQPIUQDJ6cjs.Ja; exports.UPDATE_AGENTS = _chunkQPIUQDJ6cjs.Ib; exports.UPDATE_AGENT_FILES = _chunkQPIUQDJ6cjs.Lb; exports.UPDATE_AGENT_FUNCTIONS = _chunkQPIUQDJ6cjs.Ob; exports.UPDATE_ATTRIBUTE = _chunkQPIUQDJ6cjs.Qa; exports.UPDATE_ATTRIBUTE_VALUES = _chunkQPIUQDJ6cjs.Ma; exports.UPDATE_BUSINESS_ENTITIES = _chunkQPIUQDJ6cjs.sb; exports.UPDATE_CODE_PACKAGES = _chunkQPIUQDJ6cjs.Q; exports.UPDATE_CONSENT_EXPERIENCE = _chunkQPIUQDJ6cjs.mb; exports.UPDATE_CONSENT_MANAGER_DOMAINS = _chunkQPIUQDJ6cjs.eb; exports.UPDATE_CONSENT_MANAGER_PARTITION = _chunkQPIUQDJ6cjs.fb; exports.UPDATE_CONSENT_MANAGER_THEME = _chunkQPIUQDJ6cjs.lb; exports.UPDATE_CONSENT_MANAGER_TO_LATEST = _chunkQPIUQDJ6cjs.cb; exports.UPDATE_CONSENT_MANAGER_VERSION = _chunkQPIUQDJ6cjs.bb; exports.UPDATE_DATA_FLOWS = _chunkQPIUQDJ6cjs.Va; exports.UPDATE_DATA_SILOS = _chunkQPIUQDJ6cjs.l; exports.UPDATE_DATA_SUBJECT = _chunkQPIUQDJ6cjs.y; exports.UPDATE_DATA_SUB_CATEGORIES = _chunkQPIUQDJ6cjs.Ub; exports.UPDATE_ENRICHER = _chunkQPIUQDJ6cjs.q; exports.UPDATE_IDENTIFIER = _chunkQPIUQDJ6cjs.v; exports.UPDATE_INTL_MESSAGES = _chunkQPIUQDJ6cjs.$; exports.UPDATE_LOAD_OPTIONS = _chunkQPIUQDJ6cjs.gb; exports.UPDATE_OR_CREATE_COOKIES = _chunkQPIUQDJ6cjs.Wa; exports.UPDATE_OR_CREATE_DATA_POINT = _chunkQPIUQDJ6cjs.f; exports.UPDATE_POLICIES = _chunkQPIUQDJ6cjs.U; exports.UPDATE_PRIVACY_CENTER = _chunkQPIUQDJ6cjs.Bb; exports.UPDATE_PRIVACY_REQUEST = _chunkQPIUQDJ6cjs.Y; exports.UPDATE_PROCESSING_ACTIVITIES = _chunkQPIUQDJ6cjs._b; exports.UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES = _chunkQPIUQDJ6cjs.Xb; exports.UPDATE_PROMPTS = _chunkQPIUQDJ6cjs.na; exports.UPDATE_PROMPT_GROUPS = _chunkQPIUQDJ6cjs.ra; exports.UPDATE_PROMPT_PARTIALS = _chunkQPIUQDJ6cjs.pa; exports.UPDATE_REPOSITORIES = _chunkQPIUQDJ6cjs.B; exports.UPDATE_SOFTWARE_DEVELOPMENT_KITS = _chunkQPIUQDJ6cjs.N; exports.UPDATE_TEAM = _chunkQPIUQDJ6cjs.za; exports.UPDATE_VENDORS = _chunkQPIUQDJ6cjs.Rb; exports.USERS = _chunkQPIUQDJ6cjs.Ca; exports.USP_STRING_REGEX = _chunkIFAKI5FFcjs.d; exports.VARIABLE_PARAMETERS_NAME = _chunkSW5CIF5Dcjs.b; exports.VARIABLE_PARAMETERS_REGEXP = _chunkSW5CIF5Dcjs.a; exports.VENDORS = _chunkQPIUQDJ6cjs.Pb; exports.VendorInput = _chunkQEM6S2W7cjs.p; exports.WebhookHeader = _chunkQEM6S2W7cjs.b; exports.addMessagesToPromptRun = _chunkQPIUQDJ6cjs.tc; exports.appendCsvSync = _chunkLR3CPNDMcjs.b; exports.approvePrivacyRequests = _chunkQPIUQDJ6cjs.wf; exports.assumeRole = _chunkQPIUQDJ6cjs.Gd; exports.buildAIIntegrationType = _chunkLCDYXJN6cjs.b; exports.buildEnabledRouteType = _chunkLCDYXJN6cjs.a; exports.buildTranscendGraphQLClient = _chunkQPIUQDJ6cjs.vc; exports.buildTranscendGraphQLClientGeneric = _chunkQPIUQDJ6cjs.uc; exports.buildXdiSyncEndpoint = _chunkBICC2LJLcjs.g; exports.bulkRestartRequests = _chunkQPIUQDJ6cjs.Ef; exports.bulkRetryEnrichers = _chunkQPIUQDJ6cjs.Gf; exports.cancelPrivacyRequests = _chunkQPIUQDJ6cjs.zf; exports.consentManagersToBusinessEntities = _chunkBICC2LJLcjs.h; exports.convertToDataSubjectAllowlist = _chunkQPIUQDJ6cjs.vd; exports.convertToDataSubjectBlockList = _chunkQPIUQDJ6cjs.ud; exports.createActionItemCollection = _chunkQPIUQDJ6cjs.fe; exports.createActionItems = _chunkQPIUQDJ6cjs.ie; exports.createAgent = _chunkQPIUQDJ6cjs.re; exports.createAgentFile = _chunkQPIUQDJ6cjs.le; exports.createAgentFunction = _chunkQPIUQDJ6cjs.oe; exports.createApiKey = _chunkQPIUQDJ6cjs.Hd; exports.createBusinessEntity = _chunkQPIUQDJ6cjs.ve; exports.createCodePackage = _chunkQPIUQDJ6cjs.Ee; exports.createConsentToken = _chunkIFAKI5FFcjs.a; exports.createDataCategory = _chunkQPIUQDJ6cjs.Le; exports.createDataFlows = _chunkQPIUQDJ6cjs.Pe; exports.createProcessingPurpose = _chunkQPIUQDJ6cjs.Ze; exports.createPrompt = _chunkQPIUQDJ6cjs.af; exports.createRegexForTag = j; exports.createRepository = _chunkQPIUQDJ6cjs.Be; exports.createSoftwareDevelopmentKit = _chunkQPIUQDJ6cjs.ye; exports.createSombraGotInstance = _chunkQPIUQDJ6cjs.wc; exports.createTranscendConsentGotInstance = _chunkQPIUQDJ6cjs.xc; exports.createVendor = _chunkQPIUQDJ6cjs.df; exports.defineTranscendPrompts = Bm; exports.deleteApiKey = _chunkQPIUQDJ6cjs.Id; exports.deployConsentManager = _chunkQPIUQDJ6cjs.yc; exports.description = _chunkMGAJ7ILDcjs.l; exports.domainToHost = _chunkBICC2LJLcjs.e; exports.downloadPrivacyRequestFiles = _chunkQPIUQDJ6cjs.tf; exports.enrichPrivacyRequest = _chunkDVJLLHL3cjs.c; exports.ensureAllDataSubjectsExist = _chunkQPIUQDJ6cjs.td; exports.extractClientError = _chunkQPIUQDJ6cjs.Bf; exports.extractErrorMessage = _chunkQPIUQDJ6cjs.Qf; exports.fetchActiveSiloDiscoPlugin = _chunkQPIUQDJ6cjs.Ac; exports.fetchAllActionItems = _chunkQPIUQDJ6cjs.Bc; exports.fetchAllActions = _chunkQPIUQDJ6cjs.Cc; exports.fetchAllAgentFiles = _chunkQPIUQDJ6cjs.Dc; exports.fetchAllAgentFunctions = _chunkQPIUQDJ6cjs.Ec; exports.fetchAllAgents = _chunkQPIUQDJ6cjs.Fc; exports.fetchAllApiKeys = _chunkQPIUQDJ6cjs.od; exports.fetchAllAssessmentTemplates = _chunkQPIUQDJ6cjs.Hc; exports.fetchAllAssessments = _chunkQPIUQDJ6cjs.Gc; exports.fetchAllAttributeValues = _chunkQPIUQDJ6cjs.Jc; exports.fetchAllAttributes = _chunkQPIUQDJ6cjs.Lc; exports.fetchAllBusinessEntities = _chunkQPIUQDJ6cjs.Mc; exports.fetchAllCatalogs = _chunkQPIUQDJ6cjs.qd; exports.fetchAllCookies = _chunkQPIUQDJ6cjs.Tc; exports.fetchAllDataCategories = _chunkQPIUQDJ6cjs.Uc; exports.fetchAllDataFlows = _chunkQPIUQDJ6cjs.Vc; exports.fetchAllDataPoints = _chunkQPIUQDJ6cjs.Rd; exports.fetchAllDataSilos = _chunkQPIUQDJ6cjs.Pd; exports.fetchAllDataSubjects = _chunkQPIUQDJ6cjs.sd; exports.fetchAllEnrichers = _chunkQPIUQDJ6cjs.Vd; exports.fetchAllIdentifiers = _chunkQPIUQDJ6cjs.Yf; exports.fetchAllMessages = _chunkQPIUQDJ6cjs.Wc; exports.fetchAllPolicies = _chunkQPIUQDJ6cjs.Zc; exports.fetchAllPreferenceTopics = _chunkQPIUQDJ6cjs.$c; exports.fetchAllPrivacyCenters = _chunkQPIUQDJ6cjs.ad; exports.fetchAllProcessingActivities = _chunkQPIUQDJ6cjs.bd; exports.fetchAllProcessingPurposes = _chunkQPIUQDJ6cjs.cd; exports.fetchAllPromptGroups = _chunkQPIUQDJ6cjs.wd; exports.fetchAllPromptPartials = _chunkQPIUQDJ6cjs.xd; exports.fetchAllPromptThreads = _chunkQPIUQDJ6cjs.Ad; exports.fetchAllPrompts = _chunkQPIUQDJ6cjs.yd; exports.fetchAllPurposes = _chunkQPIUQDJ6cjs.dd; exports.fetchAllPurposesAndPreferences = _chunkQPIUQDJ6cjs.ed; exports.fetchAllRequestAttributeKeys = _chunkQPIUQDJ6cjs.Ic; exports.fetchAllRequestEnrichers = _chunkQPIUQDJ6cjs.fd; exports.fetchAllRequestIdentifierMetadata = _chunkQPIUQDJ6cjs.gd; exports.fetchAllRequestIdentifiers = _chunkQPIUQDJ6cjs.id; exports.fetchAllRequests = _chunkQPIUQDJ6cjs.kd; exports.fetchAllSubDataPoints = _chunkQPIUQDJ6cjs.Qd; exports.fetchAllTeams = _chunkQPIUQDJ6cjs.ld; exports.fetchAllTemplates = _chunkQPIUQDJ6cjs.Xd; exports.fetchAllUsers = _chunkQPIUQDJ6cjs.md; exports.fetchAllVendors = _chunkQPIUQDJ6cjs.nd; exports.fetchAndIndexCatalogs = _chunkQPIUQDJ6cjs.rd; exports.fetchApiKeys = _chunkQPIUQDJ6cjs.pd; exports.fetchConsentManager = _chunkQPIUQDJ6cjs.Nc; exports.fetchConsentManagerAnalyticsData = _chunkQPIUQDJ6cjs.Rc; exports.fetchConsentManagerExperiences = _chunkQPIUQDJ6cjs.Pc; exports.fetchConsentManagerId = _chunkQPIUQDJ6cjs.Oc; exports.fetchConsentManagerTheme = _chunkQPIUQDJ6cjs.Sc; exports.fetchConsentPreferences = _chunkBICC2LJLcjs.j; exports.fetchEnrichedDataSilos = _chunkQPIUQDJ6cjs.Sd; exports.fetchIdentifiersAndCreateMissing = _chunkQPIUQDJ6cjs.Zf; exports.fetchPartitions = _chunkQPIUQDJ6cjs.Zd; exports.fetchPrivacyCenterId = _chunkQPIUQDJ6cjs.Yc; exports.fetchPrivacyCenterUrl = _chunkQPIUQDJ6cjs.Xc; exports.fetchPromptsWithVariables = _chunkQPIUQDJ6cjs.zd; exports.fetchRequestDataSilo = _chunkQPIUQDJ6cjs.Cd; exports.fetchRequestDataSiloActiveCount = _chunkQPIUQDJ6cjs.Dd; exports.fetchRequestDataSilos = _chunkQPIUQDJ6cjs.Bd; exports.fetchRequestFilesForRequest = _chunkQPIUQDJ6cjs.Ed; exports.filterNullishValuesFromObject = Um; exports.filterRows = _chunkQPIUQDJ6cjs.sc; exports.formatAttributeValues = _chunkQPIUQDJ6cjs._c; exports.fuzzyMatchColumns = _chunkQPIUQDJ6cjs.lc; exports.fuzzySearch = _chunkQPIUQDJ6cjs.kc; exports.generateCrossAccountApiKeys = _chunkXKYSQSROcjs.a; exports.getErrorStatus = _chunkQPIUQDJ6cjs.Pf; exports.getFileMetadataForPrivacyRequests = _chunkQPIUQDJ6cjs.rf; exports.getGitFilesThatChanged = vm; exports.getUniqueValuesForColumn = _chunkQPIUQDJ6cjs.rc; exports.inquirerAutoComplete = _chunkQPIUQDJ6cjs.Nf; exports.inquirerConfirmBoolean = _chunkQPIUQDJ6cjs.Lf; exports.inquirerConfirmText = _chunkQPIUQDJ6cjs.Mf; exports.limitRecords = _chunkQPIUQDJ6cjs.Uf; exports.listDirectories = _chunkXKYSQSROcjs.d; exports.listFiles = _chunkXKYSQSROcjs.c; exports.loginUser = _chunkQPIUQDJ6cjs.Fd; exports.makeGraphQLRequest = _chunkQPIUQDJ6cjs.Xf; exports.mapColumnsToAttributes = _chunkQPIUQDJ6cjs.Af; exports.mapColumnsToIdentifiers = _chunkQPIUQDJ6cjs.yf; exports.mapCsvColumnsToApi = _chunkQPIUQDJ6cjs.if; exports.mapCsvRowsToRequestInputs = _chunkQPIUQDJ6cjs.nf; exports.mapEnumValues = _chunkQPIUQDJ6cjs.mc; exports.mapRequestEnumValues = _chunkQPIUQDJ6cjs.jf; exports.markCronIdentifierCompleted = _chunkQRDYTLVBcjs.d; exports.markRequestDataSiloIdsCompleted = _chunkQRDYTLVBcjs.f; exports.markSilentPrivacyRequests = _chunkQPIUQDJ6cjs.hf; exports.mergeTranscendInputs = _chunkIBTP5OXEcjs.a; exports.name = _chunkMGAJ7ILDcjs.n; exports.normalizeIdentifierValue = _chunkQPIUQDJ6cjs.mf; exports.notifyPrivacyRequestsAdditionalTime = _chunkQPIUQDJ6cjs.xf; exports.parseAssessmentDisplayLogic = _chunkQPIUQDJ6cjs.Md; exports.parseAssessmentRiskLogic = _chunkQPIUQDJ6cjs.Od; exports.parseAttributesFromString = _chunkQPIUQDJ6cjs.pc; exports.parseFilePath = _chunkLR3CPNDMcjs.d; exports.parseVariablesFromString = _chunkQPIUQDJ6cjs.Of; exports.pullAllDatapoints = _chunkW6BLSHVEcjs.a; exports.pullChunkedCustomSiloOutstandingIdentifiers = _chunkQRDYTLVBcjs.g; exports.pullConsentManagerMetrics = _chunkBICC2LJLcjs.d; exports.pullCronPageOfIdentifiers = _chunkQRDYTLVBcjs.b; exports.pullManualEnrichmentIdentifiersToCsv = _chunkDVJLLHL3cjs.a; exports.pullPrivacyRequests = _chunkQPIUQDJ6cjs.If; exports.pullTranscendConfiguration = _chunkQPIUQDJ6cjs.ae; exports.pullUnstructuredSubDataPointRecommendations = _chunkW6BLSHVEcjs.b; exports.pushCronIdentifiersFromCsv = _chunkQRDYTLVBcjs.e; exports.pushManualEnrichmentIdentifiersFromCsv = _chunkDVJLLHL3cjs.d; exports.readCsv = _chunkQPIUQDJ6cjs.qc; exports.readSafe = _chunkQPIUQDJ6cjs.Wf; exports.readTranscendYaml = _chunkSW5CIF5Dcjs.d; exports.removeLinks = Qm; exports.removeUnverifiedRequestIdentifiers = _chunkQPIUQDJ6cjs.Kf; exports.replaceVariablesInYaml = _chunkSW5CIF5Dcjs.c; exports.reportPromptRun = _chunkQPIUQDJ6cjs.be; exports.restartPrivacyRequest = _chunkQPIUQDJ6cjs.Df; exports.retryRequestDataSilos = _chunkQPIUQDJ6cjs.Hf; exports.retryRequestEnricher = _chunkQPIUQDJ6cjs.ce; exports.retrySamePromise = _chunkQPIUQDJ6cjs.Tf; exports.setResourceAttributes = _chunkQPIUQDJ6cjs.de; exports.skipPreflightJobs = _chunkQPIUQDJ6cjs.Ff; exports.skipRequestDataSilos = _chunkQPIUQDJ6cjs.Jf; exports.sleepPromise = _chunkQPIUQDJ6cjs.Rf; exports.splitCsvToList = _chunkQPIUQDJ6cjs.nc; exports.splitInHalf = _chunkQPIUQDJ6cjs.Sf; exports.streamPrivacyRequestFiles = _chunkQPIUQDJ6cjs.sf; exports.submitPrivacyRequest = _chunkQPIUQDJ6cjs.vf; exports.syncAction = _chunkQPIUQDJ6cjs.ee; exports.syncActionItemCollections = _chunkQPIUQDJ6cjs.he; exports.syncActionItems = _chunkQPIUQDJ6cjs.ke; exports.syncAgentFiles = _chunkQPIUQDJ6cjs.ne; exports.syncAgentFunctions = _chunkQPIUQDJ6cjs.qe; exports.syncAgents = _chunkQPIUQDJ6cjs.te; exports.syncAttribute = _chunkQPIUQDJ6cjs.ue; exports.syncBusinessEntities = _chunkQPIUQDJ6cjs.xe; exports.syncCodePackages = _chunkQPIUQDJ6cjs.Ge; exports.syncConfigurationToTranscend = _chunkQPIUQDJ6cjs._f; exports.syncConsentManager = _chunkQPIUQDJ6cjs.Ie; exports.syncConsentManagerExperiences = _chunkQPIUQDJ6cjs.He; exports.syncCookies = _chunkQPIUQDJ6cjs.Ke; exports.syncDataCategories = _chunkQPIUQDJ6cjs.Ne; exports.syncDataFlows = _chunkQPIUQDJ6cjs.Qe; exports.syncDataSiloDependencies = _chunkQPIUQDJ6cjs.Ud; exports.syncDataSilos = _chunkQPIUQDJ6cjs.Td; exports.syncDataSubject = _chunkQPIUQDJ6cjs.Re; exports.syncEnricher = _chunkQPIUQDJ6cjs.Wd; exports.syncIdentifier = _chunkQPIUQDJ6cjs.Se; exports.syncIntlMessages = _chunkQPIUQDJ6cjs.Ue; exports.syncPartitions = _chunkQPIUQDJ6cjs._d; exports.syncPolicies = _chunkQPIUQDJ6cjs.We; exports.syncPrivacyCenter = _chunkQPIUQDJ6cjs.Xe; exports.syncProcessingActivities = _chunkQPIUQDJ6cjs.Ye; exports.syncProcessingPurposes = _chunkQPIUQDJ6cjs.$e; exports.syncPrompts = _chunkQPIUQDJ6cjs.cf; exports.syncRepositories = _chunkQPIUQDJ6cjs.De; exports.syncSoftwareDevelopmentKits = _chunkQPIUQDJ6cjs.Ae; exports.syncTemplate = _chunkQPIUQDJ6cjs.Yd; exports.syncVendors = _chunkQPIUQDJ6cjs.ff; exports.updateActionItem = _chunkQPIUQDJ6cjs.je; exports.updateActionItemCollection = _chunkQPIUQDJ6cjs.ge; exports.updateAgentFiles = _chunkQPIUQDJ6cjs.me; exports.updateAgentFunctions = _chunkQPIUQDJ6cjs.pe; exports.updateAgents = _chunkQPIUQDJ6cjs.se; exports.updateBusinessEntities = _chunkQPIUQDJ6cjs.we; exports.updateCodePackages = _chunkQPIUQDJ6cjs.Fe; exports.updateConsentManagerToLatest = _chunkQPIUQDJ6cjs.zc; exports.updateConsentManagerVersionToLatest = _chunkBICC2LJLcjs.a; exports.updateDataCategories = _chunkQPIUQDJ6cjs.Me; exports.updateDataFlows = _chunkQPIUQDJ6cjs.Oe; exports.updateIntlMessages = _chunkQPIUQDJ6cjs.Te; exports.updateOrCreateCookies = _chunkQPIUQDJ6cjs.Je; exports.updatePolicies = _chunkQPIUQDJ6cjs.Ve; exports.updateProcessingPurposes = _chunkQPIUQDJ6cjs._e; exports.updatePrompts = _chunkQPIUQDJ6cjs.bf; exports.updateRepositories = _chunkQPIUQDJ6cjs.Ce; exports.updateSoftwareDevelopmentKits = _chunkQPIUQDJ6cjs.ze; exports.updateVendors = _chunkQPIUQDJ6cjs.ef; exports.uploadConsents = _chunkIFAKI5FFcjs.f; exports.uploadCookiesFromCsv = _chunkBICC2LJLcjs.c; exports.uploadDataFlowsFromCsv = _chunkBICC2LJLcjs.b; exports.uploadPrivacyRequestsFromCsv = _chunkQPIUQDJ6cjs.Cf; exports.uploadSiloDiscoveryResults = _chunkQPIUQDJ6cjs.gf; exports.validateTranscendAuth = _chunkXKYSQSROcjs.b; exports.version = _chunkMGAJ7ILDcjs.m; exports.writeCsv = _chunkLR3CPNDMcjs.c; exports.writeCsvSync = _chunkLR3CPNDMcjs.a; exports.writeLargeCsv = _chunkLR3CPNDMcjs.e; exports.writeTranscendYaml = _chunkSW5CIF5Dcjs.e;
5
5
  //# sourceMappingURL=index.cjs.map