@transcend-io/cli 10.3.6 → 10.3.7
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.
- package/dist/{app-WNf_mTyn.mjs → app-DC4zcY_g.mjs} +16 -16
- package/dist/{app-WNf_mTyn.mjs.map → app-DC4zcY_g.mjs.map} +1 -1
- package/dist/{approvePrivacyRequests-BbWx0au4.mjs → approvePrivacyRequests-BR5mcuSb.mjs} +2 -2
- package/dist/{approvePrivacyRequests-BbWx0au4.mjs.map → approvePrivacyRequests-BR5mcuSb.mjs.map} +1 -1
- package/dist/bin/bash-complete.mjs +1 -1
- package/dist/bin/cli.mjs +1 -1
- package/dist/bin/deprecated-command.mjs +1 -1
- package/dist/{buildXdiSyncEndpoint-E8Q0U1bC.mjs → buildXdiSyncEndpoint-CJRPTf_i.mjs} +2 -2
- package/dist/{buildXdiSyncEndpoint-E8Q0U1bC.mjs.map → buildXdiSyncEndpoint-CJRPTf_i.mjs.map} +1 -1
- package/dist/{bulkRestartRequests-DwLx27gx.mjs → bulkRestartRequests-BJkf409e.mjs} +2 -2
- package/dist/{bulkRestartRequests-DwLx27gx.mjs.map → bulkRestartRequests-BJkf409e.mjs.map} +1 -1
- package/dist/{bulkRetryEnrichers-CJRhNV8M.mjs → bulkRetryEnrichers-BBb-zG0P.mjs} +2 -2
- package/dist/{bulkRetryEnrichers-CJRhNV8M.mjs.map → bulkRetryEnrichers-BBb-zG0P.mjs.map} +1 -1
- package/dist/{cancelPrivacyRequests-BQyfGe_g.mjs → cancelPrivacyRequests-Db7Fo9NS.mjs} +2 -2
- package/dist/{cancelPrivacyRequests-BQyfGe_g.mjs.map → cancelPrivacyRequests-Db7Fo9NS.mjs.map} +1 -1
- package/dist/{command-D2vuuffb.mjs → command-Cn-VTtF3.mjs} +2 -2
- package/dist/{command-D2vuuffb.mjs.map → command-Cn-VTtF3.mjs.map} +1 -1
- package/dist/{constants-CvFOBUqC.mjs → constants-BwO3d-v4.mjs} +2 -2
- package/dist/{constants-CvFOBUqC.mjs.map → constants-BwO3d-v4.mjs.map} +1 -1
- package/dist/{createExtraKeyHandler-C9l59RII.mjs → createExtraKeyHandler-Dij3MUwV.mjs} +2 -2
- package/dist/{createExtraKeyHandler-C9l59RII.mjs.map → createExtraKeyHandler-Dij3MUwV.mjs.map} +1 -1
- package/dist/{downloadPrivacyRequestFiles-Bji8hnh3.mjs → downloadPrivacyRequestFiles-CefkB8a5.mjs} +2 -2
- package/dist/{downloadPrivacyRequestFiles-Bji8hnh3.mjs.map → downloadPrivacyRequestFiles-CefkB8a5.mjs.map} +1 -1
- package/dist/{generateCrossAccountApiKeys-Ye06oxq3.mjs → generateCrossAccountApiKeys-DagMZcM2.mjs} +2 -2
- package/dist/{generateCrossAccountApiKeys-Ye06oxq3.mjs.map → generateCrossAccountApiKeys-DagMZcM2.mjs.map} +1 -1
- package/dist/{impl-BxBRn_d3.mjs → impl-4Kqq4OG_.mjs} +2 -2
- package/dist/{impl-BxBRn_d3.mjs.map → impl-4Kqq4OG_.mjs.map} +1 -1
- package/dist/{impl-CLM0PQ2z.mjs → impl-AYA5nkrH.mjs} +2 -2
- package/dist/{impl-CLM0PQ2z.mjs.map → impl-AYA5nkrH.mjs.map} +1 -1
- package/dist/{impl-R_J1GWvi.mjs → impl-B4tnfMOy.mjs} +2 -2
- package/dist/{impl-R_J1GWvi.mjs.map → impl-B4tnfMOy.mjs.map} +1 -1
- package/dist/{impl-BmH90BcM.mjs → impl-BHjKTJGy.mjs} +2 -2
- package/dist/{impl-BmH90BcM.mjs.map → impl-BHjKTJGy.mjs.map} +1 -1
- package/dist/{impl-P1fUapAT.mjs → impl-BOlPPm1_.mjs} +2 -2
- package/dist/{impl-P1fUapAT.mjs.map → impl-BOlPPm1_.mjs.map} +1 -1
- package/dist/{impl-D2B6hS6M.mjs → impl-BT24mDbc.mjs} +2 -2
- package/dist/{impl-D2B6hS6M.mjs.map → impl-BT24mDbc.mjs.map} +1 -1
- package/dist/{impl-BwF4NhEj.mjs → impl-BVFZzEl0.mjs} +2 -2
- package/dist/{impl-BwF4NhEj.mjs.map → impl-BVFZzEl0.mjs.map} +1 -1
- package/dist/{impl-CaY64Hd6.mjs → impl-BcfULoIK.mjs} +2 -2
- package/dist/{impl-CaY64Hd6.mjs.map → impl-BcfULoIK.mjs.map} +1 -1
- package/dist/{impl-DP_0Mlf5.mjs → impl-BsGGcGT_.mjs} +2 -2
- package/dist/{impl-DP_0Mlf5.mjs.map → impl-BsGGcGT_.mjs.map} +1 -1
- package/dist/{impl-Z8VqxZk6.mjs → impl-BvOxkh7J.mjs} +2 -2
- package/dist/{impl-Z8VqxZk6.mjs.map → impl-BvOxkh7J.mjs.map} +1 -1
- package/dist/{impl-C_n_dCAC.mjs → impl-CBkjBv2h.mjs} +2 -2
- package/dist/{impl-C_n_dCAC.mjs.map → impl-CBkjBv2h.mjs.map} +1 -1
- package/dist/{impl-WgFL98zF.mjs → impl-CLY8393N.mjs} +2 -2
- package/dist/{impl-WgFL98zF.mjs.map → impl-CLY8393N.mjs.map} +1 -1
- package/dist/{impl-DbvR5bso.mjs → impl-COFkWKPV.mjs} +2 -2
- package/dist/{impl-DbvR5bso.mjs.map → impl-COFkWKPV.mjs.map} +1 -1
- package/dist/{impl-BYXrhd1m.mjs → impl-COK4NOqq.mjs} +2 -2
- package/dist/{impl-BYXrhd1m.mjs.map → impl-COK4NOqq.mjs.map} +1 -1
- package/dist/{impl-Bqa273_3.mjs → impl-CR7fxnKR.mjs} +2 -2
- package/dist/{impl-Bqa273_3.mjs.map → impl-CR7fxnKR.mjs.map} +1 -1
- package/dist/{impl-DvFgTrEP.mjs → impl-CS2JaSVh.mjs} +2 -2
- package/dist/{impl-DvFgTrEP.mjs.map → impl-CS2JaSVh.mjs.map} +1 -1
- package/dist/{impl-rQozOYcZ.mjs → impl-CW2qSrFu.mjs} +2 -2
- package/dist/{impl-rQozOYcZ.mjs.map → impl-CW2qSrFu.mjs.map} +1 -1
- package/dist/{impl-Cr1Z9w_R.mjs → impl-CbiBteol.mjs} +2 -2
- package/dist/{impl-Cr1Z9w_R.mjs.map → impl-CbiBteol.mjs.map} +1 -1
- package/dist/{impl-DSuMNnJk.mjs → impl-CfrSm_z0.mjs} +2 -2
- package/dist/{impl-DSuMNnJk.mjs.map → impl-CfrSm_z0.mjs.map} +1 -1
- package/dist/{impl-BySUDdo-.mjs → impl-CmrM1-3B.mjs} +2 -2
- package/dist/{impl-BySUDdo-.mjs.map → impl-CmrM1-3B.mjs.map} +1 -1
- package/dist/{impl-DZcl1xTC.mjs → impl-CsmJAEgl.mjs} +2 -2
- package/dist/{impl-DZcl1xTC.mjs.map → impl-CsmJAEgl.mjs.map} +1 -1
- package/dist/{impl-DHopWUlX.mjs → impl-D2YsAVUe.mjs} +2 -2
- package/dist/{impl-DHopWUlX.mjs.map → impl-D2YsAVUe.mjs.map} +1 -1
- package/dist/{impl-DiCBP4F7.mjs → impl-D7PCRhwW.mjs} +2 -2
- package/dist/{impl-DiCBP4F7.mjs.map → impl-D7PCRhwW.mjs.map} +1 -1
- package/dist/{impl-YxkAjKlb.mjs → impl-DE2SWsi9.mjs} +2 -2
- package/dist/{impl-YxkAjKlb.mjs.map → impl-DE2SWsi9.mjs.map} +1 -1
- package/dist/{impl-DuFwG2qs.mjs → impl-DPcCMYIP.mjs} +2 -2
- package/dist/{impl-DuFwG2qs.mjs.map → impl-DPcCMYIP.mjs.map} +1 -1
- package/dist/{impl-C1aQJx0z.mjs → impl-DYpUCEVK.mjs} +2 -2
- package/dist/{impl-C1aQJx0z.mjs.map → impl-DYpUCEVK.mjs.map} +1 -1
- package/dist/{impl-ENcuhthJ.mjs → impl-DhVBzuLn.mjs} +2 -2
- package/dist/{impl-ENcuhthJ.mjs.map → impl-DhVBzuLn.mjs.map} +1 -1
- package/dist/{impl-DABpOahF.mjs → impl-DiKox85s.mjs} +2 -2
- package/dist/{impl-DABpOahF.mjs.map → impl-DiKox85s.mjs.map} +1 -1
- package/dist/{impl-tax_V7HF.mjs → impl-DtSjX73X.mjs} +2 -2
- package/dist/{impl-tax_V7HF.mjs.map → impl-DtSjX73X.mjs.map} +1 -1
- package/dist/{impl-C6zfjgSM.mjs → impl-Dw6kpn3N.mjs} +2 -2
- package/dist/{impl-C6zfjgSM.mjs.map → impl-Dw6kpn3N.mjs.map} +1 -1
- package/dist/{impl-C9YHKFlI.mjs → impl-EZjeJf1t.mjs} +2 -2
- package/dist/{impl-C9YHKFlI.mjs.map → impl-EZjeJf1t.mjs.map} +1 -1
- package/dist/{impl-otE-_tT6.mjs → impl-FHDP6V7y.mjs} +2 -2
- package/dist/{impl-otE-_tT6.mjs.map → impl-FHDP6V7y.mjs.map} +1 -1
- package/dist/{impl-416Ln2_E.mjs → impl-PRTbuj2u.mjs} +2 -2
- package/dist/{impl-416Ln2_E.mjs.map → impl-PRTbuj2u.mjs.map} +1 -1
- package/dist/index.d.mts +13 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{markRequestDataSiloIdsCompleted-3MJIGBrn.mjs → markRequestDataSiloIdsCompleted-URGUyr71.mjs} +2 -2
- package/dist/{markRequestDataSiloIdsCompleted-3MJIGBrn.mjs.map → markRequestDataSiloIdsCompleted-URGUyr71.mjs.map} +1 -1
- package/dist/{markSilentPrivacyRequests-D2NzIWFH.mjs → markSilentPrivacyRequests-DDKRgQdo.mjs} +2 -2
- package/dist/{markSilentPrivacyRequests-D2NzIWFH.mjs.map → markSilentPrivacyRequests-DDKRgQdo.mjs.map} +1 -1
- package/dist/{notifyPrivacyRequestsAdditionalTime-DwTCyv3_.mjs → notifyPrivacyRequestsAdditionalTime-BFkab0tk.mjs} +2 -2
- package/dist/{notifyPrivacyRequestsAdditionalTime-DwTCyv3_.mjs.map → notifyPrivacyRequestsAdditionalTime-BFkab0tk.mjs.map} +1 -1
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-BpRYPaed.mjs → pullChunkedCustomSiloOutstandingIdentifiers-bTV3ivr9.mjs} +2 -2
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-BpRYPaed.mjs.map → pullChunkedCustomSiloOutstandingIdentifiers-bTV3ivr9.mjs.map} +1 -1
- package/dist/{pullManualEnrichmentIdentifiersToCsv-DtUaXuun.mjs → pullManualEnrichmentIdentifiersToCsv-DIQYZwZX.mjs} +2 -2
- package/dist/{pullManualEnrichmentIdentifiersToCsv-DtUaXuun.mjs.map → pullManualEnrichmentIdentifiersToCsv-DIQYZwZX.mjs.map} +1 -1
- package/dist/{pushCronIdentifiersFromCsv-bdS2sat2.mjs → pushCronIdentifiersFromCsv-XwHKe623.mjs} +2 -2
- package/dist/{pushCronIdentifiersFromCsv-bdS2sat2.mjs.map → pushCronIdentifiersFromCsv-XwHKe623.mjs.map} +1 -1
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-FbzXaMeT.mjs → pushManualEnrichmentIdentifiersFromCsv-C5QN586O.mjs} +2 -2
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-FbzXaMeT.mjs.map → pushManualEnrichmentIdentifiersFromCsv-C5QN586O.mjs.map} +1 -1
- package/dist/{removeUnverifiedRequestIdentifiers-BdpMeOrL.mjs → removeUnverifiedRequestIdentifiers-we9LWcF7.mjs} +2 -2
- package/dist/{removeUnverifiedRequestIdentifiers-BdpMeOrL.mjs.map → removeUnverifiedRequestIdentifiers-we9LWcF7.mjs.map} +1 -1
- package/dist/{retryRequestDataSilos-BQez0IfF.mjs → retryRequestDataSilos-BDOgvAdo.mjs} +2 -2
- package/dist/{retryRequestDataSilos-BQez0IfF.mjs.map → retryRequestDataSilos-BDOgvAdo.mjs.map} +1 -1
- package/dist/{skipPreflightJobs-BQhv_vho.mjs → skipPreflightJobs-DdDHTAdy.mjs} +2 -2
- package/dist/{skipPreflightJobs-BQhv_vho.mjs.map → skipPreflightJobs-DdDHTAdy.mjs.map} +1 -1
- package/dist/{skipRequestDataSilos-Cx738sjs.mjs → skipRequestDataSilos-Du5DBheH.mjs} +2 -2
- package/dist/{skipRequestDataSilos-Cx738sjs.mjs.map → skipRequestDataSilos-Du5DBheH.mjs.map} +1 -1
- package/dist/{streamPrivacyRequestsToCsv-Cftue8ns.mjs → streamPrivacyRequestsToCsv-C-mu3l9p.mjs} +2 -2
- package/dist/{streamPrivacyRequestsToCsv-Cftue8ns.mjs.map → streamPrivacyRequestsToCsv-C-mu3l9p.mjs.map} +1 -1
- package/dist/{updateConsentManagerVersionToLatest-CSJRELZG.mjs → updateConsentManagerVersionToLatest-BxE5VOqU.mjs} +2 -2
- package/dist/{updateConsentManagerVersionToLatest-CSJRELZG.mjs.map → updateConsentManagerVersionToLatest-BxE5VOqU.mjs.map} +1 -1
- package/dist/{uploadConsents-D8RvuOjI.mjs → uploadConsents-BgB4l-nb.mjs} +2 -2
- package/dist/{uploadConsents-D8RvuOjI.mjs.map → uploadConsents-BgB4l-nb.mjs.map} +1 -1
- package/dist/{uploadCookiesFromCsv-LJ9YEcFQ.mjs → uploadCookiesFromCsv-DEBd330a.mjs} +2 -2
- package/dist/{uploadCookiesFromCsv-LJ9YEcFQ.mjs.map → uploadCookiesFromCsv-DEBd330a.mjs.map} +1 -1
- package/dist/{uploadDataFlowsFromCsv-CkO0Kmgs.mjs → uploadDataFlowsFromCsv-nAEg26Sb.mjs} +2 -2
- package/dist/{uploadDataFlowsFromCsv-CkO0Kmgs.mjs.map → uploadDataFlowsFromCsv-nAEg26Sb.mjs.map} +1 -1
- package/dist/{uploadPrivacyRequestsFromCsv-Dn1JdlzU.mjs → uploadPrivacyRequestsFromCsv-bUQKEJWa.mjs} +2 -2
- package/dist/{uploadPrivacyRequestsFromCsv-Dn1JdlzU.mjs.map → uploadPrivacyRequestsFromCsv-bUQKEJWa.mjs.map} +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./constants-
|
|
1
|
+
import{t as e}from"./constants-BwO3d-v4.mjs";import{t}from"./logger-Bj782ZYD.mjs";import{t as n}from"./done-input-validation-BcNBxhEs.mjs";import{n as r}from"./constants-BmwXDQu9.mjs";import i from"colors";import{buildTranscendGraphQLClient as a,fetchActiveSiloDiscoPlugin as o,uploadSiloDiscoveryResults as s}from"@transcend-io/sdk";import c from"fast-glob";import{stringify as l}from"query-string";async function u({scanPath:e,fileGlobs:n,ignoreDirs:r,config:i}){let{ignoreDirs:a,supportedFiles:o,scanFunction:s}=i,l=n===``?o:o.concat(n.split(`,`)),d=[...r.split(`,`),...a].filter(e=>e.length>0);try{let n=await c(`${e}/**/${l.join(`|`)}`,{ignore:d.map(t=>`${e}/**/${t}`),unique:!0,onlyFiles:!0});t.info(`Scanning: ${n.length} files`);let r=n.map(e=>s(e)).flat().map(e=>e.softwareDevelopmentKits||[]).flat(),i=[...new Set(r.map(e=>e.name))];return t.info(`Found: ${i.length} unique dependencies`),i.map(t=>({name:t,resourceId:`${e}/**/${t}`,useStrictClassifier:!0}))}catch(e){throw Error(`Error scanning globs ${u} with error: ${e}`)}}async function d({scanPath:c,dataSiloId:d,auth:f,fileGlobs:p,ignoreDirs:m,transcendUrl:h}){n(this.process.exit);let g=a(h,f),_=await o(g,{logger:t,filterBy:{dataSiloId:d}}),v=r[_.dataSilo.type];v||(t.error(i.red(`This plugin "${_.dataSilo.type}" is not supported for offline silo discovery.`)),this.process.exit(1));let y=await u({scanPath:c,fileGlobs:p,ignoreDirs:m,config:v});await s(g,{pluginId:_.id,results:y,logger:t});let b=new URL(e);b.pathname=`/data-map/data-inventory/silo-discovery/triage`,b.search=l({filters:JSON.stringify({pluginIds:[_.id]})}),t.info(i.green(`Scan found ${y.length} potential data silos at ${c}! View at '${b.href}'
|
|
2
2
|
|
|
3
3
|
NOTE: it may take 2-3 minutes for scan results to appear in the UI.`))}export{d as discoverSilos};
|
|
4
|
-
//# sourceMappingURL=impl-
|
|
4
|
+
//# sourceMappingURL=impl-DPcCMYIP.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-DPcCMYIP.mjs","names":[],"sources":["../src/lib/code-scanning/findFilesToScan.ts","../src/commands/inventory/discover-silos/impl.ts"],"sourcesContent":["import fastGlob from 'fast-glob';\n\nimport { logger } from '../../logger.js';\nimport { CodeScanningConfig } from './types.js';\n\nexport interface SiloDiscoveryRawResults {\n /** The name of the potential data silo entry */\n name: string;\n /** A unique UUID (represents the same resource across different silo discovery runs) */\n resourceId: string;\n /** Any hosts associated with the entry */\n host?: string;\n /** Type of data silo */\n type?: string | undefined;\n}\n\n/**\n * Helper to scan for data silos in all package.json files that it can find in a directory\n *\n * @deprecated TODO: https://transcend.height.app/T-32325 - use code scanning instead\n * @param options - Options\n * @returns the list of integrations\n */\nexport async function findFilesToScan({\n scanPath,\n fileGlobs,\n ignoreDirs,\n config,\n}: {\n /** Where to look for package.json files */\n scanPath: string;\n /** Globs to look for */\n fileGlobs: string;\n /** The directories to ignore (excludes node_modules and serverless-build) */\n ignoreDirs: string;\n /** Silo Discovery configuration */\n config: CodeScanningConfig;\n}): Promise<SiloDiscoveryRawResults[]> {\n const { ignoreDirs: IGNORE_DIRS, supportedFiles, scanFunction } = config;\n const globsToSupport =\n fileGlobs === '' ? supportedFiles : supportedFiles.concat(fileGlobs.split(','));\n const dirsToIgnore = [...ignoreDirs.split(','), ...IGNORE_DIRS].filter((dir) => dir.length > 0);\n try {\n const filesToScan: string[] = await fastGlob(`${scanPath}/**/${globsToSupport.join('|')}`, {\n ignore: dirsToIgnore.map((dir: string) => `${scanPath}/**/${dir}`),\n unique: true,\n onlyFiles: true,\n });\n logger.info(`Scanning: ${filesToScan.length} files`);\n const allPackages = filesToScan.map((filePath: string) => scanFunction(filePath)).flat();\n const allSdks = allPackages\n .map((appPackage) => appPackage.softwareDevelopmentKits || [])\n .flat();\n const uniqueDeps = new Set(allSdks.map((sdk) => sdk.name));\n const deps = [...uniqueDeps];\n logger.info(`Found: ${deps.length} unique dependencies`);\n return deps.map((dep) => ({\n name: dep,\n resourceId: `${scanPath}/**/${dep}`,\n useStrictClassifier: true,\n }));\n } catch (error) {\n throw new Error(`Error scanning globs ${findFilesToScan} with error: ${error}`);\n }\n}\n","import {\n buildTranscendGraphQLClient,\n fetchActiveSiloDiscoPlugin,\n uploadSiloDiscoveryResults,\n} from '@transcend-io/sdk';\nimport colors from 'colors';\nimport { stringify } from 'query-string';\n\nimport { ADMIN_DASH } from '../../../constants.js';\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { findFilesToScan } from '../../../lib/code-scanning/findFilesToScan.js';\nimport { SILO_DISCOVERY_CONFIGS } from '../../../lib/code-scanning/index.js';\nimport { logger } from '../../../logger.js';\n\nexport interface DiscoverSilosCommandFlags {\n scanPath: string;\n dataSiloId: string;\n auth: string;\n fileGlobs: string;\n ignoreDirs: string;\n transcendUrl: string;\n}\n\nexport async function discoverSilos(\n this: LocalContext,\n { scanPath, dataSiloId, auth, fileGlobs, ignoreDirs, transcendUrl }: DiscoverSilosCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Create a GraphQL client\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n const plugin = await fetchActiveSiloDiscoPlugin(client, {\n logger,\n filterBy: { dataSiloId },\n });\n\n const config = SILO_DISCOVERY_CONFIGS[plugin.dataSilo.type];\n if (!config) {\n logger.error(\n colors.red(\n `This plugin \"${plugin.dataSilo.type}\" is not supported for offline silo discovery.`,\n ),\n );\n this.process.exit(1);\n }\n\n const results = await findFilesToScan({\n scanPath,\n fileGlobs,\n ignoreDirs,\n config,\n });\n\n await uploadSiloDiscoveryResults(client, {\n pluginId: plugin.id,\n results,\n logger,\n });\n\n const newUrl = new URL(ADMIN_DASH);\n newUrl.pathname = '/data-map/data-inventory/silo-discovery/triage';\n newUrl.search = stringify({\n filters: JSON.stringify({ pluginIds: [plugin.id] }),\n });\n\n // Indicate success\n logger.info(\n colors.green(\n `Scan found ${results.length} potential data silos at ${scanPath}! ` +\n `View at '${newUrl.href}' ` +\n '\\n\\n NOTE: it may take 2-3 minutes for scan results to appear in the UI.',\n ),\n );\n}\n"],"mappings":"gZAuBA,eAAsB,EAAgB,CACpC,WACA,YACA,aACA,UAUqC,CACrC,GAAM,CAAE,WAAY,EAAa,iBAAgB,gBAAiB,EAC5D,EACJ,IAAc,GAAK,EAAiB,EAAe,OAAO,EAAU,MAAM,IAAI,CAAC,CAC3E,EAAe,CAAC,GAAG,EAAW,MAAM,IAAI,CAAE,GAAG,EAAY,CAAC,OAAQ,GAAQ,EAAI,OAAS,EAAE,CAC/F,GAAI,CACF,IAAM,EAAwB,MAAM,EAAS,GAAG,EAAS,MAAM,EAAe,KAAK,IAAI,GAAI,CACzF,OAAQ,EAAa,IAAK,GAAgB,GAAG,EAAS,MAAM,IAAM,CAClE,OAAQ,GACR,UAAW,GACZ,CAAC,CACF,EAAO,KAAK,aAAa,EAAY,OAAO,QAAQ,CAEpD,IAAM,EADc,EAAY,IAAK,GAAqB,EAAa,EAAS,CAAC,CAAC,MAAM,CAErF,IAAK,GAAe,EAAW,yBAA2B,EAAE,CAAC,CAC7D,MAAM,CAEH,EAAO,CAAC,GADK,IAAI,IAAI,EAAQ,IAAK,GAAQ,EAAI,KAAK,CAAC,CAC9B,CAE5B,OADA,EAAO,KAAK,UAAU,EAAK,OAAO,sBAAsB,CACjD,EAAK,IAAK,IAAS,CACxB,KAAM,EACN,WAAY,GAAG,EAAS,MAAM,IAC9B,oBAAqB,GACtB,EAAE,OACI,EAAO,CACd,MAAU,MAAM,wBAAwB,EAAgB,eAAe,IAAQ,ECtCnF,eAAsB,EAEpB,CAAE,WAAU,aAAY,OAAM,YAAW,aAAY,gBACtC,CACf,EAAoB,KAAK,QAAQ,KAAK,CAGtC,IAAM,EAAS,EAA4B,EAAc,EAAK,CAExD,EAAS,MAAM,EAA2B,EAAQ,CACtD,SACA,SAAU,CAAE,aAAY,CACzB,CAAC,CAEI,EAAS,EAAuB,EAAO,SAAS,MACjD,IACH,EAAO,MACL,EAAO,IACL,gBAAgB,EAAO,SAAS,KAAK,gDACtC,CACF,CACD,KAAK,QAAQ,KAAK,EAAE,EAGtB,IAAM,EAAU,MAAM,EAAgB,CACpC,WACA,YACA,aACA,SACD,CAAC,CAEF,MAAM,EAA2B,EAAQ,CACvC,SAAU,EAAO,GACjB,UACA,SACD,CAAC,CAEF,IAAM,EAAS,IAAI,IAAI,EAAW,CAClC,EAAO,SAAW,iDAClB,EAAO,OAAS,EAAU,CACxB,QAAS,KAAK,UAAU,CAAE,UAAW,CAAC,EAAO,GAAG,CAAE,CAAC,CACpD,CAAC,CAGF,EAAO,KACL,EAAO,MACL,cAAc,EAAQ,OAAO,2BAA2B,EAAS,aACnD,EAAO,KAAK;;sEAE3B,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as e}from"./enums-CyFTrzXY.mjs";import{r as t}from"./constants-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{o as e}from"./enums-CyFTrzXY.mjs";import{r as t}from"./constants-BwO3d-v4.mjs";import{n,t as r}from"./command-Cn-VTtF3.mjs";import{t as i}from"./logger-Bj782ZYD.mjs";import{a}from"./readTranscendYaml-DVkQL2SC.mjs";import{n as o}from"./pullTranscendConfiguration-DjOELnPo.mjs";import{t as s}from"./validateTranscendAuth-Cuh2Qfdl.mjs";import{t as c}from"./done-input-validation-BcNBxhEs.mjs";import l from"node:fs";import{join as u}from"node:path";import d from"colors";import{buildTranscendGraphQLClient as f}from"@transcend-io/sdk";import{mapSeries as p}from"@transcend-io/utils";async function m({auth:m,resources:h=n,file:g,transcendUrl:_,dataSiloIds:v=[],integrationNames:y=[],trackerStatuses:b=r,pageSize:x,skipDatapoints:S,skipSubDatapoints:C,includeGuessedCategories:w,debug:T}){c(this.process.exit);let E=await s(m),D=h.includes(`all`)?Object.values(e):h;if(typeof E==`string`){try{let e=await o(f(_,E),{dataSiloIds:v,integrationNames:y,resources:D,pageSize:x,debug:T,skipDatapoints:S,skipSubDatapoints:C,includeGuessedCategories:w,trackerStatuses:b});i.info(d.magenta(`Writing configuration to file "${g}"...`)),a(g,e)}catch(e){i.error(d.red(`An error occurred syncing the schema: ${T?e.stack:e.message}`)),this.process.exit(1)}i.info(d.green(`Successfully synced yaml file to disk at ${g}! View at ${t}`))}else{if(!l.lstatSync(g).isDirectory())throw Error(`File is expected to be a folder when passing in a list of API keys to pull from. e.g. --file=./working/`);let e=[];await p(E,async(t,n)=>{let r=`[${n+1}/${E.length}][${t.organizationName}] `;i.info(d.magenta(`~~~\n\n${r}Attempting to pull configuration...\n\n~~~`));let s=f(_,t.apiKey);try{let e=await o(s,{dataSiloIds:v,integrationNames:y,resources:D,pageSize:x,debug:T,skipDatapoints:S,skipSubDatapoints:C,includeGuessedCategories:w,trackerStatuses:b}),n=u(g,`${t.organizationName}.yml`);i.info(d.magenta(`Writing configuration to file "${n}"...`)),a(n,e),i.info(d.green(`${r}Successfully pulled configuration!`))}catch(n){i.error(d.red(`${r}Failed to sync configuration. - ${n.message}`)),e.push(t.organizationName)}}),e.length>0&&(i.info(d.red(`Sync encountered errors for "${e.join(`,`)}". View output above for more information, or check out ${t}`)),this.process.exit(1))}}export{m as pull};
|
|
2
|
+
//# sourceMappingURL=impl-DYpUCEVK.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-DYpUCEVK.mjs","names":[],"sources":["../src/commands/inventory/pull/impl.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { join } from 'node:path';\n\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport { buildTranscendGraphQLClient } from '@transcend-io/sdk';\nimport { mapSeries } from '@transcend-io/utils';\nimport colors from 'colors';\n\nimport { ADMIN_DASH_INTEGRATIONS } from '../../../constants.js';\nimport type { LocalContext } from '../../../context.js';\nimport { TranscendPullResource } from '../../../enums.js';\nimport { validateTranscendAuth } from '../../../lib/api-keys/index.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { pullTranscendConfiguration } from '../../../lib/graphql/index.js';\nimport { writeTranscendYaml } from '../../../lib/readTranscendYaml.js';\nimport { logger } from '../../../logger.js';\nimport { DEFAULT_CONSENT_TRACKER_STATUSES, DEFAULT_TRANSCEND_PULL_RESOURCES } from './command.js';\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(`An error occurred syncing the schema: ${debug ? err.stack : err.message}`),\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}][${apiKey.organizationName}] `;\n logger.info(colors.magenta(`~~~\\n\\n${prefix}Attempting to pull configuration...\\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(colors.magenta(`Writing configuration to file \"${filePath}\"...`));\n writeTranscendYaml(filePath, configuration);\n\n logger.info(colors.green(`${prefix}Successfully pulled configuration!`));\n } catch (err) {\n logger.error(colors.red(`${prefix}Failed to sync configuration. - ${err.message}`));\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"],"mappings":"2kBAiCA,eAAsB,EAEpB,CACE,OACA,YAAY,EACZ,OACA,eACA,cAAc,EAAE,CAChB,mBAAmB,EAAE,CACrB,kBAAkB,EAClB,WACA,iBACA,oBACA,2BACA,SAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAGtC,IAAM,EAAe,MAAM,EAAsB,EAAK,CAEhD,EAA2C,EAAU,SAAS,MAAM,CACtE,OAAO,OAAO,EAAsB,CACnC,EAGL,GAAI,OAAO,GAAiB,SAAU,CACpC,GAAI,CAIF,IAAM,EAAgB,MAAM,EAFb,EAA4B,EAAc,EAAa,CAEP,CAC7D,cACA,mBACA,UAAW,EACX,WACA,QACA,iBACA,oBACA,2BACA,kBACD,CAAC,CAEF,EAAO,KAAK,EAAO,QAAQ,kCAAkC,EAAK,MAAM,CAAC,CACzE,EAAmB,EAAM,EAAc,OAChC,EAAK,CACZ,EAAO,MACL,EAAO,IAAI,yCAAyC,EAAQ,EAAI,MAAQ,EAAI,UAAU,CACvF,CACD,KAAK,QAAQ,KAAK,EAAE,CAItB,EAAO,KACL,EAAO,MACL,4CAA4C,EAAK,YAAY,IAC9D,CACF,KACI,CACL,GAAI,CAAC,EAAG,UAAU,EAAK,CAAC,aAAa,CACnC,MAAU,MACR,0GACD,CAGH,IAAM,EAA8B,EAAE,CACtC,MAAM,EAAU,EAAc,MAAO,EAAQ,IAAQ,CACnD,IAAM,EAAS,IAAI,EAAM,EAAE,GAAG,EAAa,OAAO,IAAI,EAAO,iBAAiB,IAC9E,EAAO,KAAK,EAAO,QAAQ,UAAU,EAAO,4CAA4C,CAAC,CAGzF,IAAM,EAAS,EAA4B,EAAc,EAAO,OAAO,CAEvE,GAAI,CACF,IAAM,EAAgB,MAAM,EAA2B,EAAQ,CAC7D,cACA,mBACA,UAAW,EACX,WACA,QACA,iBACA,oBACA,2BACA,kBACD,CAAC,CAEI,EAAW,EAAK,EAAM,GAAG,EAAO,iBAAiB,MAAM,CAC7D,EAAO,KAAK,EAAO,QAAQ,kCAAkC,EAAS,MAAM,CAAC,CAC7E,EAAmB,EAAU,EAAc,CAE3C,EAAO,KAAK,EAAO,MAAM,GAAG,EAAO,oCAAoC,CAAC,OACjE,EAAK,CACZ,EAAO,MAAM,EAAO,IAAI,GAAG,EAAO,kCAAkC,EAAI,UAAU,CAAC,CACnF,EAAkB,KAAK,EAAO,iBAAiB,GAEjD,CAEE,EAAkB,OAAS,IAC7B,EAAO,KACL,EAAO,IACL,gCAAgC,EAAkB,KAChD,IACD,CAAC,0DAA0D,IAC7D,CACF,CAED,KAAK,QAAQ,KAAK,EAAE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./cancelPrivacyRequests-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./cancelPrivacyRequests-Db7Fo9NS.mjs";import{t}from"./done-input-validation-BcNBxhEs.mjs";async function n({auth:n,actions:r,statuses:i=[],requestIds:a,silentModeBefore:o,createdAtBefore:s,createdAtAfter:c,updatedAtBefore:l,updatedAtAfter:u,cancellationTitle:d,transcendUrl:f,concurrency:p}){t(this.process.exit),await e({transcendUrl:f,requestActions:r,auth:n,cancellationTitle:d,requestIds:a,statuses:i,concurrency:p,silentModeBefore:o?new Date(o):void 0,createdAtBefore:s?new Date(s):void 0,createdAtAfter:c?new Date(c):void 0,updatedAtBefore:l?new Date(l):void 0,updatedAtAfter:u?new Date(u):void 0})}export{n as cancel};
|
|
2
|
+
//# sourceMappingURL=impl-DhVBzuLn.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-DhVBzuLn.mjs","names":[],"sources":["../src/commands/request/cancel/impl.ts"],"sourcesContent":["import { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { cancelPrivacyRequests } from '../../../lib/requests/index.js';\n\nexport interface CancelCommandFlags {\n auth: string;\n actions: RequestAction[];\n statuses?: RequestStatus[];\n requestIds?: string[];\n silentModeBefore?: Date;\n createdAtBefore?: Date;\n createdAtAfter?: Date;\n updatedAtBefore?: Date;\n updatedAtAfter?: Date;\n cancellationTitle: string;\n transcendUrl: string;\n concurrency: number;\n}\n\nexport async function cancel(\n this: LocalContext,\n {\n auth,\n actions,\n statuses = [],\n requestIds,\n silentModeBefore,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n cancellationTitle,\n transcendUrl,\n concurrency,\n }: CancelCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await cancelPrivacyRequests({\n transcendUrl,\n requestActions: actions,\n auth,\n cancellationTitle,\n requestIds,\n statuses,\n concurrency,\n silentModeBefore: silentModeBefore ? new Date(silentModeBefore) : undefined,\n createdAtBefore: createdAtBefore ? new Date(createdAtBefore) : undefined,\n createdAtAfter: createdAtAfter ? new Date(createdAtAfter) : undefined,\n updatedAtBefore: updatedAtBefore ? new Date(updatedAtBefore) : undefined,\n updatedAtAfter: updatedAtAfter ? new Date(updatedAtAfter) : undefined,\n });\n}\n"],"mappings":"6GAqBA,eAAsB,EAEpB,CACE,OACA,UACA,WAAW,EAAE,CACb,aACA,mBACA,kBACA,iBACA,kBACA,iBACA,oBACA,eACA,eAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,MAAM,EAAsB,CAC1B,eACA,eAAgB,EAChB,OACA,oBACA,aACA,WACA,cACA,iBAAkB,EAAmB,IAAI,KAAK,EAAiB,CAAG,IAAA,GAClE,gBAAiB,EAAkB,IAAI,KAAK,EAAgB,CAAG,IAAA,GAC/D,eAAgB,EAAiB,IAAI,KAAK,EAAe,CAAG,IAAA,GAC5D,gBAAiB,EAAkB,IAAI,KAAK,EAAgB,CAAG,IAAA,GAC/D,eAAgB,EAAiB,IAAI,KAAK,EAAe,CAAG,IAAA,GAC7D,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./constants-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{n as e}from"./constants-BwO3d-v4.mjs";import{t}from"./logger-Bj782ZYD.mjs";import{s as n}from"./writeCsv-C4pjXGsD.mjs";import{t as r}from"./pullAllDatapoints-Bbmky50p.mjs";import{t as i}from"./done-input-validation-BcNBxhEs.mjs";import{groupBy as a,uniq as o}from"lodash-es";import s from"colors";import{buildTranscendGraphQLClient as c}from"@transcend-io/sdk";async function l({auth:l,file:u,transcendUrl:d,dataSiloIds:f,includeAttributes:p,includeGuessedCategories:m,parentCategories:h,subCategories:g=[]}){i(this.process.exit);try{let e=await r(c(d,l),{dataSiloIds:f,includeGuessedCategories:m,parentCategories:h,includeAttributes:p,subCategories:g});t.info(s.magenta(`Writing datapoints to file "${u}"...`));let i=[];await n(u,e.map(e=>{let t={"Property ID":e.id,"Data Silo":e.dataSilo.title,Object:e.dataPoint.name,"Object Path":e.dataPoint.path.join(`.`),Property:e.name,"Property Description":e.description,"Data Categories":e.categories.map(e=>`${e.category}:${e.name}`).join(`, `),"Guessed Category":e.pendingCategoryGuesses?.[0]?`${e.pendingCategoryGuesses[0].category.category}:${e.pendingCategoryGuesses[0].category.name}`:``,"Processing Purposes":e.purposes.map(e=>`${e.purpose}:${e.name}`).join(`, `),...Object.entries(a(e.attributeValues||[],({attributeKey:e})=>e.name)).reduce((e,[t,n])=>(e[t]=n.map(e=>e.name).join(`,`),e),{})};return i=o([...i,...Object.keys(t)]),t}),i)}catch(e){t.error(s.red(`An error occurred syncing the datapoints: ${e.message}`)),this.process.exit(1)}t.info(s.green(`Successfully synced datapoints to disk at ${u}! View at ${e}`))}export{l as pullDatapoints};
|
|
2
|
+
//# sourceMappingURL=impl-DiKox85s.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-DiKox85s.mjs","names":[],"sources":["../src/commands/inventory/pull-datapoints/impl.ts"],"sourcesContent":["import { DataCategoryType } from '@transcend-io/privacy-types';\nimport { buildTranscendGraphQLClient } from '@transcend-io/sdk';\nimport colors from 'colors';\nimport { uniq, groupBy } from 'lodash-es';\n\nimport { ADMIN_DASH_DATAPOINTS } from '../../../constants.js';\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { pullAllDatapoints } from '../../../lib/data-inventory/index.js';\nimport { writeLargeCsv } from '../../../lib/helpers/index.js';\nimport { logger } from '../../../logger.js';\n\nexport interface PullDatapointsCommandFlags {\n auth: string;\n file: string;\n transcendUrl: string;\n dataSiloIds?: string[];\n includeAttributes: boolean;\n includeGuessedCategories: boolean;\n parentCategories?: DataCategoryType[];\n subCategories?: string[];\n}\n\nexport async function pullDatapoints(\n this: LocalContext,\n {\n auth,\n file,\n transcendUrl,\n dataSiloIds,\n includeAttributes,\n includeGuessedCategories,\n parentCategories,\n subCategories = [],\n }: PullDatapointsCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n try {\n // Create a GraphQL client\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n const dataPoints = await pullAllDatapoints(client, {\n dataSiloIds,\n includeGuessedCategories,\n parentCategories,\n includeAttributes,\n subCategories, // TODO: https://transcend.height.app/T-40482 - do by name not ID\n });\n\n logger.info(colors.magenta(`Writing datapoints to file \"${file}\"...`));\n let headers: string[] = [];\n const inputs = dataPoints.map((point) => {\n const result = {\n 'Property ID': point.id,\n 'Data Silo': point.dataSilo.title,\n Object: point.dataPoint.name,\n 'Object Path': point.dataPoint.path.join('.'),\n Property: point.name,\n 'Property Description': point.description,\n 'Data Categories': point.categories\n .map((category) => `${category.category}:${category.name}`)\n .join(', '),\n 'Guessed Category': point.pendingCategoryGuesses?.[0]\n ? `${point.pendingCategoryGuesses![0]!.category.category}:${\n point.pendingCategoryGuesses![0]!.category.name\n }`\n : '',\n 'Processing Purposes': point.purposes\n .map((purpose) => `${purpose.purpose}:${purpose.name}`)\n .join(', '),\n ...Object.entries(\n groupBy(point.attributeValues || [], ({ attributeKey }) => attributeKey.name),\n ).reduce(\n (acc, [key, values]) => {\n acc[key] = values.map((value) => value.name).join(',');\n return acc;\n },\n {} as Record<string, string>,\n ),\n };\n headers = uniq([...headers, ...Object.keys(result)]);\n return result;\n });\n await writeLargeCsv(file, inputs, headers);\n } catch (err) {\n logger.error(colors.red(`An error occurred syncing the datapoints: ${err.message}`));\n this.process.exit(1);\n }\n\n // Indicate success\n logger.info(\n colors.green(\n `Successfully synced datapoints to disk at ${file}! View at ${ADMIN_DASH_DATAPOINTS}`,\n ),\n );\n}\n"],"mappings":"gXAuBA,eAAsB,EAEpB,CACE,OACA,OACA,eACA,cACA,oBACA,2BACA,mBACA,gBAAgB,EAAE,EAEL,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,GAAI,CAIF,IAAM,EAAa,MAAM,EAFV,EAA4B,EAAc,EAAK,CAEX,CACjD,cACA,2BACA,mBACA,oBACA,gBACD,CAAC,CAEF,EAAO,KAAK,EAAO,QAAQ,+BAA+B,EAAK,MAAM,CAAC,CACtE,IAAI,EAAoB,EAAE,CAiC1B,MAAM,EAAc,EAhCL,EAAW,IAAK,GAAU,CACvC,IAAM,EAAS,CACb,cAAe,EAAM,GACrB,YAAa,EAAM,SAAS,MAC5B,OAAQ,EAAM,UAAU,KACxB,cAAe,EAAM,UAAU,KAAK,KAAK,IAAI,CAC7C,SAAU,EAAM,KAChB,uBAAwB,EAAM,YAC9B,kBAAmB,EAAM,WACtB,IAAK,GAAa,GAAG,EAAS,SAAS,GAAG,EAAS,OAAO,CAC1D,KAAK,KAAK,CACb,mBAAoB,EAAM,yBAAyB,GAC/C,GAAG,EAAM,uBAAwB,GAAI,SAAS,SAAS,GACrD,EAAM,uBAAwB,GAAI,SAAS,OAE7C,GACJ,sBAAuB,EAAM,SAC1B,IAAK,GAAY,GAAG,EAAQ,QAAQ,GAAG,EAAQ,OAAO,CACtD,KAAK,KAAK,CACb,GAAG,OAAO,QACR,EAAQ,EAAM,iBAAmB,EAAE,EAAG,CAAE,kBAAmB,EAAa,KAAK,CAC9E,CAAC,QACC,EAAK,CAAC,EAAK,MACV,EAAI,GAAO,EAAO,IAAK,GAAU,EAAM,KAAK,CAAC,KAAK,IAAI,CAC/C,GAET,EAAE,CACH,CACF,CAED,MADA,GAAU,EAAK,CAAC,GAAG,EAAS,GAAG,OAAO,KAAK,EAAO,CAAC,CAAC,CAC7C,GACP,CACgC,EAAQ,OACnC,EAAK,CACZ,EAAO,MAAM,EAAO,IAAI,6CAA6C,EAAI,UAAU,CAAC,CACpF,KAAK,QAAQ,KAAK,EAAE,CAItB,EAAO,KACL,EAAO,MACL,6CAA6C,EAAK,YAAY,IAC/D,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e}from"./constants-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{c as e}from"./constants-BwO3d-v4.mjs";import{t}from"./generateCrossAccountApiKeys-DagMZcM2.mjs";import{t as n}from"./done-input-validation-BcNBxhEs.mjs";import{writeFileSync as r}from"node:fs";async function i({email:i,password:a,apiKeyTitle:o,file:s,scopes:c,deleteExistingApiKey:l,createNewApiKey:u,parentOrganizationId:d,transcendUrl:f}){n(this.process.exit);let{errors:p,apiKeys:m}=await t({transcendUrl:f,password:a,email:i,parentOrganizationId:d,deleteExistingApiKey:l,createNewApiKey:u,apiKeyTitle:o,scopes:c.map(t=>e[t].name)});r(s,`${JSON.stringify(m,null,2)}\n`),p.length>0&&this.process.exit(1)}export{i as generateApiKeys};
|
|
2
|
+
//# sourceMappingURL=impl-DtSjX73X.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-DtSjX73X.mjs","names":[],"sources":["../src/commands/admin/generate-api-keys/impl.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\n\nimport { ScopeName } from '@transcend-io/privacy-types';\n\nimport { SCOPES_BY_TITLE } from '../../../constants.js';\nimport type { LocalContext } from '../../../context.js';\nimport { generateCrossAccountApiKeys } from '../../../lib/api-keys/index.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\n\n// Command flag interface\nexport interface GenerateApiKeysCommandFlags {\n email: string;\n password: string;\n apiKeyTitle: string;\n file: string;\n scopes: string[];\n deleteExistingApiKey: boolean;\n createNewApiKey: boolean;\n parentOrganizationId?: string;\n transcendUrl: string;\n}\n\n// Command implementation\nexport async function generateApiKeys(\n this: LocalContext,\n {\n email,\n password,\n apiKeyTitle,\n file,\n scopes,\n deleteExistingApiKey,\n createNewApiKey,\n parentOrganizationId,\n transcendUrl,\n }: GenerateApiKeysCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n const scopeNames = scopes.map((scopeTitle) => SCOPES_BY_TITLE[scopeTitle].name as ScopeName);\n\n // Upload privacy requests\n const { errors, apiKeys } = await generateCrossAccountApiKeys({\n transcendUrl,\n password,\n email,\n parentOrganizationId,\n deleteExistingApiKey,\n createNewApiKey,\n apiKeyTitle,\n scopes: scopeNames,\n });\n\n // Write to disk\n writeFileSync(file, `${JSON.stringify(apiKeys, null, 2)}\\n`);\n if (errors.length > 0) {\n this.process.exit(1);\n }\n}\n"],"mappings":"wMAuBA,eAAsB,EAEpB,CACE,QACA,WACA,cACA,OACA,SACA,uBACA,kBACA,uBACA,gBAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAKtC,GAAM,CAAE,SAAQ,WAAY,MAAM,EAA4B,CAC5D,eACA,WACA,QACA,uBACA,uBACA,kBACA,cACA,OAXiB,EAAO,IAAK,GAAe,EAAgB,GAAY,KAAkB,CAY3F,CAAC,CAGF,EAAc,EAAM,GAAG,KAAK,UAAU,EAAS,KAAM,EAAE,CAAC,IAAI,CACxD,EAAO,OAAS,GAClB,KAAK,QAAQ,KAAK,EAAE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./bulkRestartRequests-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./bulkRestartRequests-BJkf409e.mjs";import{t}from"./done-input-validation-BcNBxhEs.mjs";async function n({auth:n,requestReceiptFolder:r,sombraAuth:i,actions:a,statuses:o,requestIds:s,createdAt:c,emailIsVerified:l,silentModeBefore:u,sendEmailReceipt:d,copyIdentifiers:f,skipWaitingPeriod:p,createdAtBefore:m,createdAtAfter:h,updatedAtBefore:g,updatedAtAfter:_,concurrency:v,transcendUrl:y}){t(this.process.exit),await e({requestReceiptFolder:r,auth:n,sombraAuth:i,requestActions:a,requestStatuses:o,requestIds:s,createdAt:c,emailIsVerified:l,silentModeBefore:u,sendEmailReceipt:d,copyIdentifiers:f,skipWaitingPeriod:p,createdAtBefore:m,createdAtAfter:h,updatedAtBefore:g,updatedAtAfter:_,concurrency:v,transcendUrl:y})}export{n as restart};
|
|
2
|
+
//# sourceMappingURL=impl-Dw6kpn3N.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-Dw6kpn3N.mjs","names":[],"sources":["../src/commands/request/restart/impl.ts"],"sourcesContent":["import type { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { bulkRestartRequests } from '../../../lib/requests/index.js';\n\nexport interface RestartCommandFlags {\n auth: string;\n actions: RequestAction[];\n statuses: RequestStatus[];\n transcendUrl: string;\n requestReceiptFolder: string;\n sombraAuth?: string;\n concurrency: number;\n requestIds?: string[];\n emailIsVerified: boolean;\n createdAt?: Date;\n silentModeBefore?: Date;\n createdAtBefore?: Date;\n createdAtAfter?: Date;\n updatedAtBefore?: Date;\n updatedAtAfter?: Date;\n sendEmailReceipt: boolean;\n copyIdentifiers: boolean;\n skipWaitingPeriod: boolean;\n}\n\nexport async function restart(\n this: LocalContext,\n {\n auth,\n requestReceiptFolder,\n sombraAuth,\n actions,\n statuses,\n requestIds,\n createdAt,\n emailIsVerified,\n silentModeBefore,\n sendEmailReceipt,\n copyIdentifiers,\n skipWaitingPeriod,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n concurrency,\n transcendUrl,\n }: RestartCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await bulkRestartRequests({\n requestReceiptFolder,\n auth,\n sombraAuth,\n requestActions: actions,\n requestStatuses: statuses,\n requestIds,\n createdAt,\n emailIsVerified,\n silentModeBefore,\n sendEmailReceipt,\n copyIdentifiers,\n skipWaitingPeriod,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n concurrency,\n transcendUrl,\n });\n}\n"],"mappings":"2GA2BA,eAAsB,EAEpB,CACE,OACA,uBACA,aACA,UACA,WACA,aACA,YACA,kBACA,mBACA,mBACA,kBACA,oBACA,kBACA,iBACA,kBACA,iBACA,cACA,gBAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,MAAM,EAAoB,CACxB,uBACA,OACA,aACA,eAAgB,EAChB,gBAAiB,EACjB,aACA,YACA,kBACA,mBACA,mBACA,kBACA,oBACA,kBACA,iBACA,kBACA,iBACA,cACA,eACD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./bulkRetryEnrichers-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./bulkRetryEnrichers-BBb-zG0P.mjs";import{t}from"./done-input-validation-BcNBxhEs.mjs";async function n({auth:n,enricherId:r,actions:i,requestEnricherStatuses:a,requestIds:o,createdAtBefore:s,createdAtAfter:c,updatedAtBefore:l,updatedAtAfter:u,concurrency:d,transcendUrl:f}){t(this.process.exit),await e({auth:n,enricherId:r,requestActions:i,requestEnricherStatuses:a,requestIds:o,createdAtBefore:s?new Date(s):void 0,createdAtAfter:c?new Date(c):void 0,updatedAtBefore:l?new Date(l):void 0,updatedAtAfter:u?new Date(u):void 0,concurrency:d,transcendUrl:f})}export{n as enricherRestart};
|
|
2
|
+
//# sourceMappingURL=impl-EZjeJf1t.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-EZjeJf1t.mjs","names":[],"sources":["../src/commands/request/enricher-restart/impl.ts"],"sourcesContent":["import type { RequestAction, RequestEnricherStatus } from '@transcend-io/privacy-types';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { bulkRetryEnrichers } from '../../../lib/requests/index.js';\n\nexport interface EnricherRestartCommandFlags {\n auth: string;\n enricherId: string;\n actions?: RequestAction[];\n requestEnricherStatuses?: RequestEnricherStatus[];\n transcendUrl: string;\n concurrency: number;\n requestIds?: string[];\n createdAtBefore?: Date;\n createdAtAfter?: Date;\n updatedAtBefore?: Date;\n updatedAtAfter?: Date;\n}\n\nexport async function enricherRestart(\n this: LocalContext,\n {\n auth,\n enricherId,\n actions,\n requestEnricherStatuses,\n requestIds,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n concurrency,\n transcendUrl,\n }: EnricherRestartCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await bulkRetryEnrichers({\n auth,\n enricherId,\n requestActions: actions,\n requestEnricherStatuses,\n requestIds,\n createdAtBefore: createdAtBefore ? new Date(createdAtBefore) : undefined,\n createdAtAfter: createdAtAfter ? new Date(createdAtAfter) : undefined,\n updatedAtBefore: updatedAtBefore ? new Date(updatedAtBefore) : undefined,\n updatedAtAfter: updatedAtAfter ? new Date(updatedAtAfter) : undefined,\n concurrency,\n transcendUrl,\n });\n}\n"],"mappings":"0GAoBA,eAAsB,EAEpB,CACE,OACA,aACA,UACA,0BACA,aACA,kBACA,iBACA,kBACA,iBACA,cACA,gBAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,MAAM,EAAmB,CACvB,OACA,aACA,eAAgB,EAChB,0BACA,aACA,gBAAiB,EAAkB,IAAI,KAAK,EAAgB,CAAG,IAAA,GAC/D,eAAgB,EAAiB,IAAI,KAAK,EAAe,CAAG,IAAA,GAC5D,gBAAiB,EAAkB,IAAI,KAAK,EAAgB,CAAG,IAAA,GAC/D,eAAgB,EAAiB,IAAI,KAAK,EAAe,CAAG,IAAA,GAC5D,cACA,eACD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./uploadCookiesFromCsv-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./uploadCookiesFromCsv-DEBd330a.mjs";import{t}from"./done-input-validation-BcNBxhEs.mjs";async function n({auth:n,trackerStatus:r,file:i,transcendUrl:a}){t(this.process.exit),await e({auth:n,trackerStatus:r,file:i,transcendUrl:a})}export{n as uploadCookiesFromCsv};
|
|
2
|
+
//# sourceMappingURL=impl-FHDP6V7y.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-FHDP6V7y.mjs","names":["uploadCookiesFromCsvHelper"],"sources":["../src/commands/consent/upload-cookies-from-csv/impl.ts"],"sourcesContent":["import { ConsentTrackerStatus } from '@transcend-io/privacy-types';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { uploadCookiesFromCsv as uploadCookiesFromCsvHelper } from '../../../lib/consent-manager/index.js';\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"],"mappings":"4GAaA,eAAsB,EAEpB,CAAE,OAAM,gBAAe,OAAM,gBACd,CACf,EAAoB,KAAK,QAAQ,KAAK,CAGtC,MAAMA,EAA2B,CAC/B,OACA,gBACA,OACA,eACD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./logger-Bj782ZYD.mjs";import{t}from"./streamPrivacyRequestsToCsv-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./logger-Bj782ZYD.mjs";import{t}from"./streamPrivacyRequestsToCsv-C-mu3l9p.mjs";import{t as n}from"./done-input-validation-BcNBxhEs.mjs";import r from"colors";async function i({auth:i,transcendUrl:a,file:o,pageLimit:s,concurrency:c,actions:l,sombraAuth:u,skipRequestIdentifiers:d,statuses:f,createdAtBefore:p,createdAtAfter:m,updatedAtBefore:h,updatedAtAfter:g,showTests:_}){n(this.process.exit);let{filePaths:v,totalCount:y}=await t({transcendUrl:a,concurrency:c,pageLimit:s,actions:l,statuses:f,auth:i,sombraAuth:u,skipRequestIdentifiers:d,createdAtBefore:p,createdAtAfter:m,updatedAtBefore:h,updatedAtAfter:g,isTest:_,file:o});e.info(r.green(`Successfully wrote ${y} requests to ${v.length} file(s): ${v.join(`, `)}`))}export{i as _export};
|
|
2
|
+
//# sourceMappingURL=impl-PRTbuj2u.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-PRTbuj2u.mjs","names":[],"sources":["../src/commands/request/export/impl.ts"],"sourcesContent":["import type { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\nimport colors from 'colors';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { streamPrivacyRequestsToCsv } from '../../../lib/requests/index.js';\nimport { logger } from '../../../logger.js';\n\nexport interface ExportCommandFlags {\n auth: string;\n sombraAuth?: string;\n actions?: RequestAction[];\n statuses?: RequestStatus[];\n transcendUrl: string;\n file: string;\n concurrency: number;\n createdAtBefore?: Date;\n createdAtAfter?: Date;\n updatedAtBefore?: Date;\n updatedAtAfter?: Date;\n showTests?: boolean;\n skipRequestIdentifiers?: boolean;\n pageLimit: number;\n}\n\n// `export` is a reserved keyword, so we need to prefix it with an underscore\n// eslint-disable-next-line no-underscore-dangle\nexport async function _export(\n this: LocalContext,\n {\n auth,\n transcendUrl,\n file,\n pageLimit,\n concurrency,\n actions,\n sombraAuth,\n skipRequestIdentifiers,\n statuses,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n showTests,\n }: ExportCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n const { filePaths, totalCount } = await streamPrivacyRequestsToCsv({\n transcendUrl,\n concurrency,\n pageLimit,\n actions,\n statuses,\n auth,\n sombraAuth,\n skipRequestIdentifiers,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n isTest: showTests,\n file,\n });\n\n logger.info(\n colors.green(\n `Successfully wrote ${totalCount} requests to ` +\n `${filePaths.length} file(s): ${filePaths.join(', ')}`,\n ),\n );\n}\n"],"mappings":"kLA2BA,eAAsB,EAEpB,CACE,OACA,eACA,OACA,YACA,cACA,UACA,aACA,yBACA,WACA,kBACA,iBACA,kBACA,iBACA,aAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,GAAM,CAAE,YAAW,cAAe,MAAM,EAA2B,CACjE,eACA,cACA,YACA,UACA,WACA,OACA,aACA,yBACA,kBACA,iBACA,kBACA,iBACA,OAAQ,EACR,OACD,CAAC,CAEF,EAAO,KACL,EAAO,MACL,sBAAsB,EAAW,eAC5B,EAAU,OAAO,YAAY,EAAU,KAAK,KAAK,GACvD,CACF"}
|
package/dist/index.d.mts
CHANGED
|
@@ -63684,6 +63684,8 @@ declare const ActionItemInput: t.IntersectionC<[t.TypeC<{
|
|
|
63684
63684
|
REQUEST_ASSIGNED_TO_USER: unknown;
|
|
63685
63685
|
BUSINESS_ENTITY_NEEDS_DOCUMENTATION: unknown;
|
|
63686
63686
|
DATA_POINT_DATABASE_QUERY_NEEDS_APPROVAL: unknown;
|
|
63687
|
+
RULES_AUTOMATION_RULE_TERMINAL_FAILURE: unknown;
|
|
63688
|
+
RULES_AUTOMATION_RULE_TERMINAL_FAILURE_ASSIGNED: unknown;
|
|
63687
63689
|
}>; /** The titles of the collections that the action item is grouped within */
|
|
63688
63690
|
collections: t.ArrayC<t.StringC>;
|
|
63689
63691
|
}>, t.PartialC<{
|
|
@@ -70312,6 +70314,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
70312
70314
|
REQUEST_ASSIGNED_TO_USER: unknown;
|
|
70313
70315
|
BUSINESS_ENTITY_NEEDS_DOCUMENTATION: unknown;
|
|
70314
70316
|
DATA_POINT_DATABASE_QUERY_NEEDS_APPROVAL: unknown;
|
|
70317
|
+
RULES_AUTOMATION_RULE_TERMINAL_FAILURE: unknown;
|
|
70318
|
+
RULES_AUTOMATION_RULE_TERMINAL_FAILURE_ASSIGNED: unknown;
|
|
70315
70319
|
}>; /** The titles of the collections that the action item is grouped within */
|
|
70316
70320
|
collections: t.ArrayC<t.StringC>;
|
|
70317
70321
|
}>, t.PartialC<{
|
|
@@ -133733,11 +133737,11 @@ declare const CachedFileState: t.TypeC<{
|
|
|
133733
133737
|
}>>; /** Mapping between request status in import to Transcend request status */
|
|
133734
133738
|
statusToRequestStatus: t.RecordC<t.StringC, t.KeyofC<{
|
|
133735
133739
|
CANCELED: unknown;
|
|
133740
|
+
"[NONE]": unknown;
|
|
133736
133741
|
FAILED_VERIFICATION: unknown;
|
|
133737
133742
|
COMPLETED: unknown;
|
|
133738
133743
|
SECONDARY_COMPLETED: unknown;
|
|
133739
133744
|
REVOKED: unknown;
|
|
133740
|
-
"[NONE]": unknown;
|
|
133741
133745
|
}>>;
|
|
133742
133746
|
}>;
|
|
133743
133747
|
/** Type override */
|
|
@@ -139644,20 +139648,20 @@ declare const PrivacyRequestResponse: t.TypeC<{
|
|
|
139644
139648
|
status: t.KeyofC<{
|
|
139645
139649
|
CANCELED: unknown;
|
|
139646
139650
|
ON_HOLD: unknown;
|
|
139647
|
-
REQUEST_MADE: unknown;
|
|
139648
139651
|
FAILED_VERIFICATION: unknown;
|
|
139652
|
+
COMPLETED: unknown;
|
|
139653
|
+
SECONDARY_COMPLETED: unknown;
|
|
139654
|
+
REVOKED: unknown;
|
|
139655
|
+
REQUEST_MADE: unknown;
|
|
139649
139656
|
ENRICHING: unknown;
|
|
139650
139657
|
WAITING: unknown;
|
|
139651
139658
|
COMPILING: unknown;
|
|
139652
139659
|
APPROVING: unknown;
|
|
139653
139660
|
DELAYED: unknown;
|
|
139654
|
-
COMPLETED: unknown;
|
|
139655
139661
|
DOWNLOADABLE: unknown;
|
|
139656
139662
|
VIEW_CATEGORIES: unknown;
|
|
139657
139663
|
SECONDARY: unknown;
|
|
139658
|
-
SECONDARY_COMPLETED: unknown;
|
|
139659
139664
|
SECONDARY_APPROVING: unknown;
|
|
139660
|
-
REVOKED: unknown;
|
|
139661
139665
|
}>;
|
|
139662
139666
|
type: t.KeyofC<{
|
|
139663
139667
|
AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
|
|
@@ -145542,20 +145546,20 @@ declare const PrivacyRequest: t.IntersectionC<[t.TypeC<{
|
|
|
145542
145546
|
status: t.KeyofC<{
|
|
145543
145547
|
CANCELED: unknown;
|
|
145544
145548
|
ON_HOLD: unknown;
|
|
145545
|
-
REQUEST_MADE: unknown;
|
|
145546
145549
|
FAILED_VERIFICATION: unknown;
|
|
145550
|
+
COMPLETED: unknown;
|
|
145551
|
+
SECONDARY_COMPLETED: unknown;
|
|
145552
|
+
REVOKED: unknown;
|
|
145553
|
+
REQUEST_MADE: unknown;
|
|
145547
145554
|
ENRICHING: unknown;
|
|
145548
145555
|
WAITING: unknown;
|
|
145549
145556
|
COMPILING: unknown;
|
|
145550
145557
|
APPROVING: unknown;
|
|
145551
145558
|
DELAYED: unknown;
|
|
145552
|
-
COMPLETED: unknown;
|
|
145553
145559
|
DOWNLOADABLE: unknown;
|
|
145554
145560
|
VIEW_CATEGORIES: unknown;
|
|
145555
145561
|
SECONDARY: unknown;
|
|
145556
|
-
SECONDARY_COMPLETED: unknown;
|
|
145557
145562
|
SECONDARY_APPROVING: unknown;
|
|
145558
|
-
REVOKED: unknown;
|
|
145559
145563
|
}>; /** Type of data subject */
|
|
145560
145564
|
subjectType: t.StringC; /** Country of request */
|
|
145561
145565
|
country: t.UnionC<[t.NullC, t.KeyofC<{
|