@transcend-io/cli 10.18.1 → 10.19.0
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/README.md +21 -4
- package/dist/{app-BiUb5kV0.mjs → app-CoGyH0b1.mjs} +18 -18
- package/dist/{app-BiUb5kV0.mjs.map → app-CoGyH0b1.mjs.map} +1 -1
- package/dist/{approvePrivacyRequests-BV-2Dw30.mjs → approvePrivacyRequests-u7aJwb_X.mjs} +2 -2
- package/dist/{approvePrivacyRequests-BV-2Dw30.mjs.map → approvePrivacyRequests-u7aJwb_X.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/{buildExamples-CIxWSKXw.mjs → buildExamples-BTZy8qpK.mjs} +2 -2
- package/dist/{buildExamples-CIxWSKXw.mjs.map → buildExamples-BTZy8qpK.mjs.map} +1 -1
- package/dist/{buildXdiSyncEndpoint-l_Ei6bOc.mjs → buildXdiSyncEndpoint-CHPxc0Om.mjs} +2 -2
- package/dist/{buildXdiSyncEndpoint-l_Ei6bOc.mjs.map → buildXdiSyncEndpoint-CHPxc0Om.mjs.map} +1 -1
- package/dist/{bulkRestartRequests-BldF4vP9.mjs → bulkRestartRequests-BKT_Ys4F.mjs} +2 -2
- package/dist/{bulkRestartRequests-BldF4vP9.mjs.map → bulkRestartRequests-BKT_Ys4F.mjs.map} +1 -1
- package/dist/{bulkRetryEnrichers-B5anLMOn.mjs → bulkRetryEnrichers-CY8v2E38.mjs} +2 -2
- package/dist/{bulkRetryEnrichers-B5anLMOn.mjs.map → bulkRetryEnrichers-CY8v2E38.mjs.map} +1 -1
- package/dist/{cancelPrivacyRequests-BTU-rxVM.mjs → cancelPrivacyRequests-BprOJ-TF.mjs} +2 -2
- package/dist/{cancelPrivacyRequests-BTU-rxVM.mjs.map → cancelPrivacyRequests-BprOJ-TF.mjs.map} +1 -1
- package/dist/codecs-CfHvcMSL.mjs +2 -0
- package/dist/codecs-CfHvcMSL.mjs.map +1 -0
- package/dist/{command-CE22WIu1.mjs → command-CMUZwJ0Y.mjs} +2 -2
- package/dist/{command-CE22WIu1.mjs.map → command-CMUZwJ0Y.mjs.map} +1 -1
- package/dist/constants-DhKT1_p8.mjs +2 -0
- package/dist/constants-DhKT1_p8.mjs.map +1 -0
- package/dist/{createExtraKeyHandler-DNDHKlsR.mjs → createExtraKeyHandler-ogZXUqeP.mjs} +2 -2
- package/dist/{createExtraKeyHandler-DNDHKlsR.mjs.map → createExtraKeyHandler-ogZXUqeP.mjs.map} +1 -1
- package/dist/{downloadPrivacyRequestFiles-DJ6szIGF.mjs → downloadPrivacyRequestFiles-BJbYewLs.mjs} +2 -2
- package/dist/{downloadPrivacyRequestFiles-DJ6szIGF.mjs.map → downloadPrivacyRequestFiles-BJbYewLs.mjs.map} +1 -1
- package/dist/{enums-mAXnon_I.mjs → enums-D53y231X.mjs} +2 -2
- package/dist/enums-D53y231X.mjs.map +1 -0
- package/dist/{generateCrossAccountApiKeys-BmUjn8U4.mjs → generateCrossAccountApiKeys-BcDz9wXm.mjs} +2 -2
- package/dist/{generateCrossAccountApiKeys-BmUjn8U4.mjs.map → generateCrossAccountApiKeys-BcDz9wXm.mjs.map} +1 -1
- package/dist/{impl-Jzc8Ut8N2.mjs → impl-1_z8b7dq2.mjs} +2 -2
- package/dist/{impl-Jzc8Ut8N2.mjs.map → impl-1_z8b7dq2.mjs.map} +1 -1
- package/dist/{impl-BWBXkVFs.mjs → impl-8tbjF3a8.mjs} +2 -2
- package/dist/{impl-BWBXkVFs.mjs.map → impl-8tbjF3a8.mjs.map} +1 -1
- package/dist/{impl-K1eIDFRc.mjs → impl-8tcxiruu.mjs} +2 -2
- package/dist/{impl-K1eIDFRc.mjs.map → impl-8tcxiruu.mjs.map} +1 -1
- package/dist/{impl-DshUKXgr.mjs → impl-B-oBrTZH.mjs} +2 -2
- package/dist/{impl-DshUKXgr.mjs.map → impl-B-oBrTZH.mjs.map} +1 -1
- package/dist/{impl-pz2RbZR22.mjs → impl-B8VvtKqK2.mjs} +2 -2
- package/dist/{impl-pz2RbZR22.mjs.map → impl-B8VvtKqK2.mjs.map} +1 -1
- package/dist/{impl-CtgTs2rf.mjs → impl-BCPzfDOr.mjs} +2 -2
- package/dist/{impl-CtgTs2rf.mjs.map → impl-BCPzfDOr.mjs.map} +1 -1
- package/dist/{impl-DYM8usyf.mjs → impl-BCTorB3_.mjs} +2 -2
- package/dist/{impl-DYM8usyf.mjs.map → impl-BCTorB3_.mjs.map} +1 -1
- package/dist/{impl-hSTc3gLx2.mjs → impl-BGPo1v0n2.mjs} +2 -2
- package/dist/{impl-hSTc3gLx2.mjs.map → impl-BGPo1v0n2.mjs.map} +1 -1
- package/dist/{impl-Ca_wapdV.mjs → impl-BHIrjYvz.mjs} +2 -2
- package/dist/{impl-Ca_wapdV.mjs.map → impl-BHIrjYvz.mjs.map} +1 -1
- package/dist/{impl-BTVIYng_.mjs → impl-BL2crkB5.mjs} +2 -2
- package/dist/{impl-BTVIYng_.mjs.map → impl-BL2crkB5.mjs.map} +1 -1
- package/dist/{impl-Bie0nJ5C.mjs → impl-BSZm5vDL.mjs} +2 -2
- package/dist/{impl-Bie0nJ5C.mjs.map → impl-BSZm5vDL.mjs.map} +1 -1
- package/dist/{impl-4apk-8xK2.mjs → impl-BYsj7qu_2.mjs} +2 -2
- package/dist/{impl-4apk-8xK2.mjs.map → impl-BYsj7qu_2.mjs.map} +1 -1
- package/dist/{impl-Al6BRaZv.mjs → impl-BZMvZ-H5.mjs} +2 -2
- package/dist/{impl-Al6BRaZv.mjs.map → impl-BZMvZ-H5.mjs.map} +1 -1
- package/dist/{impl-CzYR6r9C.mjs → impl-BeQ3_Wfg.mjs} +2 -2
- package/dist/{impl-CzYR6r9C.mjs.map → impl-BeQ3_Wfg.mjs.map} +1 -1
- package/dist/{impl-BANdTEit.mjs → impl-BfrfvL5l.mjs} +2 -2
- package/dist/{impl-BANdTEit.mjs.map → impl-BfrfvL5l.mjs.map} +1 -1
- package/dist/{impl-C3CM79fn.mjs → impl-CFIr2tjA.mjs} +2 -2
- package/dist/{impl-C3CM79fn.mjs.map → impl-CFIr2tjA.mjs.map} +1 -1
- package/dist/{impl-Dx8zPf6J.mjs → impl-CGOsmCm1.mjs} +2 -2
- package/dist/{impl-Dx8zPf6J.mjs.map → impl-CGOsmCm1.mjs.map} +1 -1
- package/dist/{impl-CEBd3se_.mjs → impl-CIp_3y6X.mjs} +2 -2
- package/dist/{impl-CEBd3se_.mjs.map → impl-CIp_3y6X.mjs.map} +1 -1
- package/dist/{impl-g6bSWnsL.mjs → impl-CSnOATm5.mjs} +2 -2
- package/dist/{impl-g6bSWnsL.mjs.map → impl-CSnOATm5.mjs.map} +1 -1
- package/dist/{impl-CWp4OyVb.mjs → impl-CfOyPYaV.mjs} +2 -2
- package/dist/{impl-CWp4OyVb.mjs.map → impl-CfOyPYaV.mjs.map} +1 -1
- package/dist/{impl-EGyeOgjI.mjs → impl-Cgq7_BzZ.mjs} +2 -2
- package/dist/{impl-EGyeOgjI.mjs.map → impl-Cgq7_BzZ.mjs.map} +1 -1
- package/dist/{impl-DG0LNsZK.mjs → impl-Cv1a2Pae.mjs} +2 -2
- package/dist/{impl-DG0LNsZK.mjs.map → impl-Cv1a2Pae.mjs.map} +1 -1
- package/dist/{impl-D4rA9eEx2.mjs → impl-CyComgJC2.mjs} +2 -2
- package/dist/{impl-D4rA9eEx2.mjs.map → impl-CyComgJC2.mjs.map} +1 -1
- package/dist/{impl-ynu-szUI.mjs → impl-CzWXCLm6.mjs} +2 -2
- package/dist/{impl-ynu-szUI.mjs.map → impl-CzWXCLm6.mjs.map} +1 -1
- package/dist/{impl-3pWQw99s2.mjs → impl-D42DnT_a2.mjs} +2 -2
- package/dist/{impl-3pWQw99s2.mjs.map → impl-D42DnT_a2.mjs.map} +1 -1
- package/dist/{impl-CL-sbLQg.mjs → impl-D9KXJOIg.mjs} +2 -2
- package/dist/{impl-CL-sbLQg.mjs.map → impl-D9KXJOIg.mjs.map} +1 -1
- package/dist/{impl-CN6LUWBB.mjs → impl-DFhURh_H.mjs} +2 -2
- package/dist/{impl-CN6LUWBB.mjs.map → impl-DFhURh_H.mjs.map} +1 -1
- package/dist/{impl-DztfppaG2.mjs → impl-DckqZlHS2.mjs} +2 -2
- package/dist/{impl-DztfppaG2.mjs.map → impl-DckqZlHS2.mjs.map} +1 -1
- package/dist/{impl-B7Jx1VJT.mjs → impl-DeIo2HyV.mjs} +2 -2
- package/dist/{impl-B7Jx1VJT.mjs.map → impl-DeIo2HyV.mjs.map} +1 -1
- package/dist/{impl-DlusNsf9.mjs → impl-DsmP1Uj_.mjs} +2 -2
- package/dist/{impl-DlusNsf9.mjs.map → impl-DsmP1Uj_.mjs.map} +1 -1
- package/dist/{impl-CVUliihk.mjs → impl-HJCx46F6.mjs} +2 -2
- package/dist/{impl-CVUliihk.mjs.map → impl-HJCx46F6.mjs.map} +1 -1
- package/dist/{impl-BPNUUUWq2.mjs → impl-cOqkyYd32.mjs} +2 -2
- package/dist/{impl-BPNUUUWq2.mjs.map → impl-cOqkyYd32.mjs.map} +1 -1
- package/dist/{impl-cbKOCJZ5.mjs → impl-lMY6fT6G.mjs} +2 -2
- package/dist/{impl-cbKOCJZ5.mjs.map → impl-lMY6fT6G.mjs.map} +1 -1
- package/dist/{impl-u4m_lOOg.mjs → impl-p4Up14kP.mjs} +2 -2
- package/dist/{impl-u4m_lOOg.mjs.map → impl-p4Up14kP.mjs.map} +1 -1
- package/dist/{impl-CPc_UomH.mjs → impl-pTOz00yC.mjs} +2 -2
- package/dist/{impl-CPc_UomH.mjs.map → impl-pTOz00yC.mjs.map} +1 -1
- package/dist/{impl-CmJ03lO1.mjs → impl-poG1QFx1.mjs} +2 -2
- package/dist/{impl-CmJ03lO1.mjs.map → impl-poG1QFx1.mjs.map} +1 -1
- package/dist/{impl-B3jtMu4u.mjs → impl-qexLI_cv.mjs} +2 -2
- package/dist/{impl-B3jtMu4u.mjs.map → impl-qexLI_cv.mjs.map} +1 -1
- package/dist/{impl-C1UQ162F2.mjs → impl-tec4fZTx2.mjs} +2 -2
- package/dist/{impl-C1UQ162F2.mjs.map → impl-tec4fZTx2.mjs.map} +1 -1
- package/dist/{impl-DYkEqGRO.mjs → impl-umhvV4Zo.mjs} +2 -2
- package/dist/{impl-DYkEqGRO.mjs.map → impl-umhvV4Zo.mjs.map} +1 -1
- package/dist/index.d.mts +22028 -373
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/dist/{markRequestDataSiloIdsCompleted-DMme9TUi.mjs → markRequestDataSiloIdsCompleted-BuVxvSrw.mjs} +2 -2
- package/dist/{markRequestDataSiloIdsCompleted-DMme9TUi.mjs.map → markRequestDataSiloIdsCompleted-BuVxvSrw.mjs.map} +1 -1
- package/dist/{markSilentPrivacyRequests-B5AzihlB.mjs → markSilentPrivacyRequests-CgK-D7-n.mjs} +2 -2
- package/dist/{markSilentPrivacyRequests-B5AzihlB.mjs.map → markSilentPrivacyRequests-CgK-D7-n.mjs.map} +1 -1
- package/dist/{notifyPrivacyRequestsAdditionalTime-BUSx6iTV.mjs → notifyPrivacyRequestsAdditionalTime-DIixk5bl.mjs} +2 -2
- package/dist/{notifyPrivacyRequestsAdditionalTime-BUSx6iTV.mjs.map → notifyPrivacyRequestsAdditionalTime-DIixk5bl.mjs.map} +1 -1
- package/dist/parseVariablesFromString-C2SbrKX5.mjs +3 -0
- package/dist/parseVariablesFromString-C2SbrKX5.mjs.map +1 -0
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-yamc5Tm4.mjs → pullChunkedCustomSiloOutstandingIdentifiers-Le9YffBH.mjs} +2 -2
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-yamc5Tm4.mjs.map → pullChunkedCustomSiloOutstandingIdentifiers-Le9YffBH.mjs.map} +1 -1
- package/dist/{pullManualEnrichmentIdentifiersToCsv-M8Ydxx2_.mjs → pullManualEnrichmentIdentifiersToCsv-DfxeelCg.mjs} +2 -2
- package/dist/{pullManualEnrichmentIdentifiersToCsv-M8Ydxx2_.mjs.map → pullManualEnrichmentIdentifiersToCsv-DfxeelCg.mjs.map} +1 -1
- package/dist/pullTranscendConfiguration-B8mxJCi7.mjs +58 -0
- package/dist/pullTranscendConfiguration-B8mxJCi7.mjs.map +1 -0
- package/dist/{pushCronIdentifiersFromCsv-k3AEmN-Q.mjs → pushCronIdentifiersFromCsv-3QfEmXle.mjs} +2 -2
- package/dist/{pushCronIdentifiersFromCsv-k3AEmN-Q.mjs.map → pushCronIdentifiersFromCsv-3QfEmXle.mjs.map} +1 -1
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-BtpVJzb6.mjs → pushManualEnrichmentIdentifiersFromCsv-CVN2IgsU.mjs} +2 -2
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-BtpVJzb6.mjs.map → pushManualEnrichmentIdentifiersFromCsv-CVN2IgsU.mjs.map} +1 -1
- package/dist/{readTranscendYaml-DXGNTxJE.mjs → readTranscendYaml-BiOgzaYR.mjs} +2 -2
- package/dist/{readTranscendYaml-DXGNTxJE.mjs.map → readTranscendYaml-BiOgzaYR.mjs.map} +1 -1
- package/dist/{removeUnverifiedRequestIdentifiers-W61bF-9t.mjs → removeUnverifiedRequestIdentifiers-XDX2YsXr.mjs} +2 -2
- package/dist/{removeUnverifiedRequestIdentifiers-W61bF-9t.mjs.map → removeUnverifiedRequestIdentifiers-XDX2YsXr.mjs.map} +1 -1
- package/dist/{retryRequestDataSilos-B6jn3d3S.mjs → retryRequestDataSilos-B-3pcTlW.mjs} +2 -2
- package/dist/{retryRequestDataSilos-B6jn3d3S.mjs.map → retryRequestDataSilos-B-3pcTlW.mjs.map} +1 -1
- package/dist/{skipPreflightJobs-CABl58Nl.mjs → skipPreflightJobs-vbKqISnj.mjs} +2 -2
- package/dist/{skipPreflightJobs-CABl58Nl.mjs.map → skipPreflightJobs-vbKqISnj.mjs.map} +1 -1
- package/dist/{skipRequestDataSilos-NB2k7el9.mjs → skipRequestDataSilos-ynE55J9O.mjs} +2 -2
- package/dist/{skipRequestDataSilos-NB2k7el9.mjs.map → skipRequestDataSilos-ynE55J9O.mjs.map} +1 -1
- package/dist/{streamPrivacyRequestsToCsv-bzQXxsd3.mjs → streamPrivacyRequestsToCsv-CTqmCJmH.mjs} +2 -2
- package/dist/{streamPrivacyRequestsToCsv-bzQXxsd3.mjs.map → streamPrivacyRequestsToCsv-CTqmCJmH.mjs.map} +1 -1
- package/dist/{updateConsentManagerVersionToLatest-vKvjbR32.mjs → updateConsentManagerVersionToLatest-CBBKqf7a.mjs} +2 -2
- package/dist/{updateConsentManagerVersionToLatest-vKvjbR32.mjs.map → updateConsentManagerVersionToLatest-CBBKqf7a.mjs.map} +1 -1
- package/dist/{uploadConsents-BqHPndFX.mjs → uploadConsents-B-GaCLnK.mjs} +2 -2
- package/dist/{uploadConsents-BqHPndFX.mjs.map → uploadConsents-B-GaCLnK.mjs.map} +1 -1
- package/dist/{uploadCookiesFromCsv-X6fBW625.mjs → uploadCookiesFromCsv-s2L3iYBb.mjs} +2 -2
- package/dist/{uploadCookiesFromCsv-X6fBW625.mjs.map → uploadCookiesFromCsv-s2L3iYBb.mjs.map} +1 -1
- package/dist/{uploadDataFlowsFromCsv-CzLsbl4P.mjs → uploadDataFlowsFromCsv-D7mdw8pz.mjs} +2 -2
- package/dist/{uploadDataFlowsFromCsv-CzLsbl4P.mjs.map → uploadDataFlowsFromCsv-D7mdw8pz.mjs.map} +1 -1
- package/dist/{uploadPrivacyRequestsFromCsv-BN7RESDW.mjs → uploadPrivacyRequestsFromCsv-BEx6GSd5.mjs} +2 -2
- package/dist/{uploadPrivacyRequestsFromCsv-BN7RESDW.mjs.map → uploadPrivacyRequestsFromCsv-BEx6GSd5.mjs.map} +1 -1
- package/dist/{validateTranscendAuth-k4ufmEQW.mjs → validateTranscendAuth-B_EFnL1A.mjs} +2 -2
- package/dist/{validateTranscendAuth-k4ufmEQW.mjs.map → validateTranscendAuth-B_EFnL1A.mjs.map} +1 -1
- package/package.json +4 -4
- package/dist/codecs-8Cq4qQpS.mjs +0 -2
- package/dist/codecs-8Cq4qQpS.mjs.map +0 -1
- package/dist/constants-DJolQYDN.mjs +0 -2
- package/dist/constants-DJolQYDN.mjs.map +0 -1
- package/dist/enums-mAXnon_I.mjs.map +0 -1
- package/dist/parseVariablesFromString-COw5Nayn.mjs +0 -3
- package/dist/parseVariablesFromString-COw5Nayn.mjs.map +0 -1
- package/dist/pullTranscendConfiguration-QBl16rBd.mjs +0 -58
- package/dist/pullTranscendConfiguration-QBl16rBd.mjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./pullManualEnrichmentIdentifiersToCsv-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./pullManualEnrichmentIdentifiersToCsv-DfxeelCg.mjs";import{t}from"./done-input-validation-CvwjeRWr.mjs";async function n({auth:n,transcendUrl:r,file:i,concurrency:a,actions:o,sombraAuth:s}){t(this.process.exit),await e({file:i,transcendUrl:r,concurrency:a,requestActions:o,auth:n,sombraAuth:s})}export{n as pullIdentifiers};
|
|
2
|
+
//# sourceMappingURL=impl-cOqkyYd32.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-cOqkyYd32.mjs","names":[],"sources":["../src/commands/request/preflight/pull-identifiers/impl.ts"],"sourcesContent":["import type { RequestAction } from '@transcend-io/privacy-types';\n\nimport type { LocalContext } from '../../../../context.js';\nimport { doneInputValidation } from '../../../../lib/cli/done-input-validation.js';\nimport { pullManualEnrichmentIdentifiersToCsv } from '../../../../lib/manual-enrichment/index.js';\n\nexport interface PullIdentifiersCommandFlags {\n auth: string;\n sombraAuth?: string;\n transcendUrl: string;\n file: string;\n actions?: RequestAction[];\n concurrency: number;\n}\n\nexport async function pullIdentifiers(\n this: LocalContext,\n { auth, transcendUrl, file, concurrency, actions, sombraAuth }: PullIdentifiersCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await pullManualEnrichmentIdentifiersToCsv({\n file,\n transcendUrl,\n concurrency,\n requestActions: actions,\n auth,\n sombraAuth,\n });\n}\n"],"mappings":"4HAeA,eAAsB,EAEpB,CAAE,OAAM,eAAc,OAAM,cAAa,UAAS,cACnC,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,MAAM,EAAqC,CACzC,OACA,eACA,cACA,eAAgB,EAChB,OACA,aACD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./logger-B-LXIf3U.mjs";import{a as t,r as n}from"./readTranscendYaml-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./logger-B-LXIf3U.mjs";import{a as t,r as n}from"./readTranscendYaml-BiOgzaYR.mjs";import{t as r}from"./listFiles-B1GqyM33.mjs";import{t as i}from"./done-input-validation-CvwjeRWr.mjs";import{t as a}from"./dataFlowsToDataSilos-Blo6-adp.mjs";import{existsSync as o,lstatSync as s}from"node:fs";import{join as c}from"node:path";import l from"colors";import{buildTranscendGraphQLClient as u,fetchAndIndexCatalogs as d}from"@transcend-io/sdk";async function f({auth:f,dataFlowsYmlFolder:p,dataSilosYmlFolder:m,ignoreYmls:h=[],transcendUrl:g}){i(this.process.exit),(!o(p)||!s(p).isDirectory())&&(e.error(l.red(`Folder does not exist: "${p}"`)),this.process.exit(1)),(!o(m)||!s(m).isDirectory())&&(e.error(l.red(`Folder does not exist: "${m}"`)),this.process.exit(1));let{serviceToTitle:_,serviceToSupportedIntegration:v}=await d(u(g,f),{logger:e});r(p).forEach(r=>{let{"data-flows":i=[]}=n(c(p,r)),{adTechDataSilos:o,siteTechDataSilos:s}=a(i,{serviceToSupportedIntegration:v,serviceToTitle:_}),l=[...o,...s];e.log(`Total Services: ${l.length}`),e.log(`Ad Tech Services: ${o.length}`),e.log(`Site Tech Services: ${s.length}`),t(c(m,r),{"data-silos":h.includes(r)?[]:l})})}export{f as deriveDataSilosFromDataFlows};
|
|
2
|
+
//# sourceMappingURL=impl-lMY6fT6G.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-lMY6fT6G.mjs","names":[],"sources":["../src/commands/inventory/derive-data-silos-from-data-flows/impl.ts"],"sourcesContent":["import { existsSync, lstatSync } from 'node:fs';\nimport { join } from 'node:path';\n\nimport { buildTranscendGraphQLClient, fetchAndIndexCatalogs } from '@transcend-io/sdk';\nimport colors from 'colors';\n\nimport { DataFlowInput } from '../../../codecs.js';\nimport type { LocalContext } from '../../../context.js';\nimport { listFiles } from '../../../lib/api-keys/index.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { dataFlowsToDataSilos } from '../../../lib/consent-manager/dataFlowsToDataSilos.js';\nimport { readTranscendYaml, writeTranscendYaml } from '../../../lib/readTranscendYaml.js';\nimport { logger } from '../../../logger.js';\n\nexport interface DeriveDataSilosFromDataFlowsCommandFlags {\n auth: string;\n dataFlowsYmlFolder: string;\n dataSilosYmlFolder: string;\n ignoreYmls?: string[];\n transcendUrl: string;\n}\n\nexport async function deriveDataSilosFromDataFlows(\n this: LocalContext,\n {\n auth,\n dataFlowsYmlFolder,\n dataSilosYmlFolder,\n ignoreYmls = [],\n transcendUrl,\n }: DeriveDataSilosFromDataFlowsCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Ensure folder is passed\n if (!existsSync(dataFlowsYmlFolder) || !lstatSync(dataFlowsYmlFolder).isDirectory()) {\n logger.error(colors.red(`Folder does not exist: \"${dataFlowsYmlFolder}\"`));\n this.process.exit(1);\n }\n\n // Ensure folder is passed\n if (!existsSync(dataSilosYmlFolder) || !lstatSync(dataSilosYmlFolder).isDirectory()) {\n logger.error(colors.red(`Folder does not exist: \"${dataSilosYmlFolder}\"`));\n this.process.exit(1);\n }\n\n // Fetch all integrations in the catalog\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const { serviceToTitle, serviceToSupportedIntegration } = await fetchAndIndexCatalogs(client, {\n logger,\n });\n\n // List of each data flow yml file\n listFiles(dataFlowsYmlFolder).forEach((directory) => {\n // read in the data flows for a specific instance\n const { 'data-flows': dataFlows = [] } = readTranscendYaml(join(dataFlowsYmlFolder, directory));\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 // combine and write to yml file\n const dataSilos = [...adTechDataSilos, ...siteTechDataSilos];\n logger.log(`Total Services: ${dataSilos.length}`);\n logger.log(`Ad Tech Services: ${adTechDataSilos.length}`);\n logger.log(`Site Tech Services: ${siteTechDataSilos.length}`);\n writeTranscendYaml(join(dataSilosYmlFolder, directory), {\n 'data-silos': ignoreYmls.includes(directory) ? [] : dataSilos,\n });\n });\n}\n"],"mappings":"0cAsBA,eAAsB,EAEpB,CACE,OACA,qBACA,qBACA,aAAa,EAAE,CACf,gBAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,EAGlC,CAAC,EAAW,EAAmB,EAAI,CAAC,EAAU,EAAmB,CAAC,aAAa,IACjF,EAAO,MAAM,EAAO,IAAI,2BAA2B,EAAmB,GAAG,CAAC,CAC1E,KAAK,QAAQ,KAAK,EAAE,GAIlB,CAAC,EAAW,EAAmB,EAAI,CAAC,EAAU,EAAmB,CAAC,aAAa,IACjF,EAAO,MAAM,EAAO,IAAI,2BAA2B,EAAmB,GAAG,CAAC,CAC1E,KAAK,QAAQ,KAAK,EAAE,EAKtB,GAAM,CAAE,iBAAgB,iCAAkC,MAAM,EADjD,EAA4B,EAAc,EACmC,CAAE,CAC5F,SACD,CAAC,CAGF,EAAU,EAAmB,CAAC,QAAS,GAAc,CAEnD,GAAM,CAAE,aAAc,EAAY,EAAE,EAAK,EAAkB,EAAK,EAAoB,EAAU,CAAC,CAGzF,CAAE,kBAAiB,qBAAsB,EAC7C,EACA,CACE,gCACA,iBACD,CACF,CAGK,EAAY,CAAC,GAAG,EAAiB,GAAG,EAAkB,CAC5D,EAAO,IAAI,mBAAmB,EAAU,SAAS,CACjD,EAAO,IAAI,qBAAqB,EAAgB,SAAS,CACzD,EAAO,IAAI,uBAAuB,EAAkB,SAAS,CAC7D,EAAmB,EAAK,EAAoB,EAAU,CAAE,CACtD,aAAc,EAAW,SAAS,EAAU,CAAG,EAAE,CAAG,EACrD,CAAC,EACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./approvePrivacyRequests-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./approvePrivacyRequests-u7aJwb_X.mjs";import{t}from"./done-input-validation-CvwjeRWr.mjs";async function n({auth:n,actions:r,origins:i,silentModeBefore:a,createdAtBefore:o,createdAtAfter:s,updatedAtBefore:c,updatedAtAfter:l,transcendUrl:u,concurrency:d}){t(this.process.exit),await e({transcendUrl:u,requestActions:r,auth:n,requestOrigins:i,concurrency:d,silentModeBefore:a,createdAtBefore:o,createdAtAfter:s,updatedAtBefore:c,updatedAtAfter:l})}export{n as approve};
|
|
2
|
+
//# sourceMappingURL=impl-p4Up14kP.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-p4Up14kP.mjs","names":[],"sources":["../src/commands/request/approve/impl.ts"],"sourcesContent":["import { RequestAction, RequestOrigin } from '@transcend-io/privacy-types';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { approvePrivacyRequests } from '../../../lib/requests/index.js';\n\nexport interface ApproveCommandFlags {\n auth: string;\n actions: RequestAction[];\n origins?: RequestOrigin[];\n silentModeBefore?: Date;\n createdAtBefore?: Date;\n createdAtAfter?: Date;\n updatedAtBefore?: Date;\n updatedAtAfter?: Date;\n transcendUrl: string;\n concurrency: number;\n}\n\nexport async function approve(\n this: LocalContext,\n {\n auth,\n actions,\n origins,\n silentModeBefore,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n transcendUrl,\n concurrency,\n }: ApproveCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await approvePrivacyRequests({\n transcendUrl,\n requestActions: actions,\n auth,\n requestOrigins: origins,\n concurrency,\n silentModeBefore,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n });\n}\n"],"mappings":"8GAmBA,eAAsB,EAEpB,CACE,OACA,UACA,UACA,mBACA,kBACA,iBACA,kBACA,iBACA,eACA,eAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,MAAM,EAAuB,CAC3B,eACA,eAAgB,EAChB,OACA,eAAgB,EAChB,cACA,mBACA,kBACA,iBACA,kBACA,iBACD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{l as e}from"./constants-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{l as e}from"./constants-DhKT1_p8.mjs";import{t}from"./generateCrossAccountApiKeys-BcDz9wXm.mjs";import{t as n}from"./done-input-validation-CvwjeRWr.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-pTOz00yC.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-pTOz00yC.mjs","names":[],"sources":["../src/commands/admin/generate-api-keys/impl.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\n\nimport { ScopeName } from '@transcend-io/privacy-types';\n\nimport { SCOPES_BY_TITLE } from '../../../constants.js';\nimport type { LocalContext } from '../../../context.js';\nimport { generateCrossAccountApiKeys } from '../../../lib/api-keys/index.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\n\n// Command flag interface\nexport interface GenerateApiKeysCommandFlags {\n email: string;\n password: string;\n apiKeyTitle: string;\n file: string;\n scopes: string[];\n deleteExistingApiKey: boolean;\n createNewApiKey: boolean;\n parentOrganizationId?: string;\n transcendUrl: string;\n}\n\n// Command implementation\nexport async function generateApiKeys(\n this: LocalContext,\n {\n email,\n password,\n apiKeyTitle,\n file,\n scopes,\n deleteExistingApiKey,\n createNewApiKey,\n parentOrganizationId,\n transcendUrl,\n }: GenerateApiKeysCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n const scopeNames = scopes.map((scopeTitle) => SCOPES_BY_TITLE[scopeTitle].name as ScopeName);\n\n // Upload privacy requests\n const { errors, apiKeys } = await generateCrossAccountApiKeys({\n transcendUrl,\n password,\n email,\n parentOrganizationId,\n deleteExistingApiKey,\n createNewApiKey,\n apiKeyTitle,\n scopes: scopeNames,\n });\n\n // Write to disk\n writeFileSync(file, `${JSON.stringify(apiKeys, null, 2)}\\n`);\n if (errors.length > 0) {\n this.process.exit(1);\n }\n}\n"],"mappings":"wMAuBA,eAAsB,EAEpB,CACE,QACA,WACA,cACA,OACA,SACA,uBACA,kBACA,uBACA,gBAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAKtC,GAAM,CAAE,SAAQ,WAAY,MAAM,EAA4B,CAC5D,eACA,WACA,QACA,uBACA,uBACA,kBACA,cACA,OAXiB,EAAO,IAAK,GAAe,EAAgB,GAAY,KAWtD,CACnB,CAAC,CAGF,EAAc,EAAM,GAAG,KAAK,UAAU,EAAS,KAAM,EAAE,CAAC,IAAI,CACxD,EAAO,OAAS,GAClB,KAAK,QAAQ,KAAK,EAAE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./uploadCookiesFromCsv-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./uploadCookiesFromCsv-s2L3iYBb.mjs";import{t}from"./done-input-validation-CvwjeRWr.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-poG1QFx1.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-poG1QFx1.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-B-LXIf3U.mjs";import{E as t}from"./codecs-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./logger-B-LXIf3U.mjs";import{E as t}from"./codecs-CfHvcMSL.mjs";import{a as n}from"./readTranscendYaml-BiOgzaYR.mjs";import{t as r}from"./done-input-validation-CvwjeRWr.mjs";import{ConsentTrackerStatus as i,DataFlowScope as a}from"@transcend-io/privacy-types";import{decodeCodec as o}from"@transcend-io/type-utils";import{existsSync as s,readFileSync as c}from"node:fs";import l from"colors";import*as u from"io-ts";function d({file:d,output:f}){r(this.process.exit),s(d)||(e.error(l.red(`File does not exist: --file="${d}"`)),this.process.exit(1));let p=o(u.array(t),c(d,`utf-8`)),m=[],h=[];p.forEach(e=>{e.dataFlows.filter(({type:e})=>e!==a.CSP).forEach(e=>{m.push({value:e.value,type:e.type,status:i.Live,trackingPurposes:e.trackingPurposes})}),e.cookies.forEach(e=>{h.push({name:e.name,status:i.Live,trackingPurposes:e.trackingPurposes})})}),n(f,{"data-flows":m,cookies:h}),e.info(l.green(`Successfully wrote ${m.length} data flows and ${h.length} cookies to file "${f}"`))}export{d as consentManagerServiceJsonToYml};
|
|
2
|
+
//# sourceMappingURL=impl-qexLI_cv.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-qexLI_cv.mjs","names":[],"sources":["../src/commands/inventory/consent-manager-service-json-to-yml/impl.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\n\nimport { ConsentTrackerStatus, DataFlowScope } from '@transcend-io/privacy-types';\nimport { decodeCodec } from '@transcend-io/type-utils';\nimport colors from 'colors';\nimport * as t from 'io-ts';\n\nimport { ConsentManagerServiceMetadata, CookieInput, DataFlowInput } from '../../../codecs.js';\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { writeTranscendYaml } from '../../../lib/readTranscendYaml.js';\nimport { logger } from '../../../logger.js';\n\nexport interface ConsentManagerServiceJsonToYmlCommandFlags {\n file: string;\n output: string;\n}\n\nexport function consentManagerServiceJsonToYml(\n this: LocalContext,\n { file, output }: ConsentManagerServiceJsonToYmlCommandFlags,\n): void {\n doneInputValidation(this.process.exit);\n\n // Ensure files exist\n if (!existsSync(file)) {\n logger.error(colors.red(`File does not exist: --file=\"${file}\"`));\n this.process.exit(1);\n }\n\n // Read in each consent manager configuration\n const services = decodeCodec(t.array(ConsentManagerServiceMetadata), readFileSync(file, 'utf-8'));\n\n // Create data flows and cookie configurations\n const dataFlows: DataFlowInput[] = [];\n const cookies: CookieInput[] = [];\n services.forEach((service) => {\n service.dataFlows\n .filter(({ type }) => type !== DataFlowScope.CSP)\n .forEach((dataFlow) => {\n dataFlows.push({\n value: dataFlow.value,\n type: dataFlow.type,\n status: ConsentTrackerStatus.Live,\n trackingPurposes: dataFlow.trackingPurposes,\n });\n });\n\n service.cookies.forEach((cookie) => {\n cookies.push({\n name: cookie.name,\n status: ConsentTrackerStatus.Live,\n trackingPurposes: cookie.trackingPurposes,\n });\n });\n });\n\n // write to disk\n writeTranscendYaml(output, {\n 'data-flows': dataFlows,\n cookies,\n });\n\n logger.info(\n colors.green(\n `Successfully wrote ${dataFlows.length} data flows and ${cookies.length} cookies to file \"${output}\"`,\n ),\n );\n}\n"],"mappings":"obAkBA,SAAgB,EAEd,CAAE,OAAM,UACF,CACN,EAAoB,KAAK,QAAQ,KAAK,CAGjC,EAAW,EAAK,GACnB,EAAO,MAAM,EAAO,IAAI,gCAAgC,EAAK,GAAG,CAAC,CACjE,KAAK,QAAQ,KAAK,EAAE,EAItB,IAAM,EAAW,EAAY,EAAE,MAAM,EAA8B,CAAE,EAAa,EAAM,QAAQ,CAAC,CAG3F,EAA6B,EAAE,CAC/B,EAAyB,EAAE,CACjC,EAAS,QAAS,GAAY,CAC5B,EAAQ,UACL,QAAQ,CAAE,UAAW,IAAS,EAAc,IAAI,CAChD,QAAS,GAAa,CACrB,EAAU,KAAK,CACb,MAAO,EAAS,MAChB,KAAM,EAAS,KACf,OAAQ,EAAqB,KAC7B,iBAAkB,EAAS,iBAC5B,CAAC,EACF,CAEJ,EAAQ,QAAQ,QAAS,GAAW,CAClC,EAAQ,KAAK,CACX,KAAM,EAAO,KACb,OAAQ,EAAqB,KAC7B,iBAAkB,EAAO,iBAC1B,CAAC,EACF,EACF,CAGF,EAAmB,EAAQ,CACzB,aAAc,EACd,UACD,CAAC,CAEF,EAAO,KACL,EAAO,MACL,sBAAsB,EAAU,OAAO,kBAAkB,EAAQ,OAAO,oBAAoB,EAAO,GACpG,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./notifyPrivacyRequestsAdditionalTime-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./notifyPrivacyRequestsAdditionalTime-DIixk5bl.mjs";import{t}from"./done-input-validation-CvwjeRWr.mjs";async function n({auth:n,transcendUrl:r,createdAtBefore:i,createdAtAfter:a,updatedAtBefore:o,updatedAtAfter:s,actions:c,daysLeft:l,days:u,requestIds:d,emailTemplate:f,concurrency:p}){t(this.process.exit),await e({transcendUrl:r,requestActions:c,auth:n,emailTemplate:f,days:u,daysLeft:l,requestIds:d,concurrency:p,createdAtBefore:i,createdAtAfter:a,updatedAtBefore:o,updatedAtAfter:s})}export{n as notifyAdditionalTime};
|
|
2
|
+
//# sourceMappingURL=impl-tec4fZTx2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-tec4fZTx2.mjs","names":[],"sources":["../src/commands/request/notify-additional-time/impl.ts"],"sourcesContent":["import type { RequestAction } from '@transcend-io/privacy-types';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { notifyPrivacyRequestsAdditionalTime } from '../../../lib/requests/index.js';\n\nexport interface NotifyAdditionalTimeCommandFlags {\n auth: string;\n createdAtBefore: Date;\n createdAtAfter?: Date;\n updatedAtBefore?: Date;\n updatedAtAfter?: Date;\n actions?: RequestAction[];\n daysLeft: number;\n days: number;\n requestIds?: string[];\n emailTemplate: string;\n transcendUrl: string;\n concurrency: number;\n}\n\nexport async function notifyAdditionalTime(\n this: LocalContext,\n {\n auth,\n transcendUrl,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n actions,\n daysLeft,\n days,\n requestIds,\n emailTemplate,\n concurrency,\n }: NotifyAdditionalTimeCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n await notifyPrivacyRequestsAdditionalTime({\n transcendUrl,\n requestActions: actions,\n auth,\n emailTemplate,\n days,\n daysLeft,\n requestIds,\n concurrency,\n createdAtBefore,\n createdAtAfter,\n updatedAtBefore,\n updatedAtAfter,\n });\n}\n"],"mappings":"2HAqBA,eAAsB,EAEpB,CACE,OACA,eACA,kBACA,iBACA,kBACA,iBACA,UACA,WACA,OACA,aACA,gBACA,eAEa,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,MAAM,EAAoC,CACxC,eACA,eAAgB,EAChB,OACA,gBACA,OACA,WACA,aACA,cACA,kBACA,iBACA,kBACA,iBACD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./constants-
|
|
2
|
-
//# sourceMappingURL=impl-
|
|
1
|
+
import{t as e}from"./constants-DhKT1_p8.mjs";import{t}from"./logger-B-LXIf3U.mjs";import{n}from"./syncCodePackages-CwPtA473.mjs";import{t as r}from"./done-input-validation-CvwjeRWr.mjs";import{t as i}from"./constants-DXUo-hl3.mjs";import{getEntries as a}from"@transcend-io/type-utils";import o from"colors";import{buildTranscendGraphQLClient as s}from"@transcend-io/sdk";import{execSync as c}from"child_process";import l from"fast-glob";async function u({scanPath:e,ignoreDirs:n=[],repositoryName:r}){return(await Promise.all(a(i).map(async([i,a])=>{let{ignoreDirs:s,supportedFiles:c,scanFunction:u}=a,d=[...n,...s].filter(e=>e.length>0);try{let n=await l(`${e}/**/${c.join(`|`)}`,{ignore:d.map(t=>`${e}/**/${t}`),unique:!0,onlyFiles:!0});t.info(o.magenta(`Scanning: ${n.length} files of type ${i}`));let a=n.map(t=>u(t).map(n=>({...n,relativePath:t.replace(`${e}/`,``)}))).flat();return t.info(o.green(`Found: ${a.length} packages and ${a.map(({softwareDevelopmentKits:e=[]})=>e).flat().length} sdks`)),a.map(e=>({...e,type:i,repositoryName:r}))}catch(e){throw Error(`Error scanning globs ${c} with error: ${e}`)}}))).flat()}const d=`A repository name must be provided. You can specify using --repositoryName=$REPO_NAME or by ensuring the command "git config --get remote.origin.url" returns the name of the repository`;async function f({auth:i,scanPath:a,ignoreDirs:l,repositoryName:f,transcendUrl:p}){r(this.process.exit);let m=f;if(!m)try{let e=c(`cd ${a} && git config --get remote.origin.url`).toString(`utf-8`).trim();[m]=e.includes(`https:`)?e.split(`/`).slice(3).join(`/`).split(`.`):(e.split(`:`).pop()||``).split(`.`),m||(t.error(o.red(d)),this.process.exit(1))}catch(e){t.error(o.red(`${d} - Got error: ${e.message}`)),this.process.exit(1)}let h=s(p,i),g=await u({scanPath:a,ignoreDirs:l,repositoryName:m});await n(h,g);let _=new URL(e);_.pathname=`/code-scanning/code-packages`,t.info(o.green(`Scan found ${g.length} packages at ${a}! View results at '${_.href}'`))}export{f as scanPackages};
|
|
2
|
+
//# sourceMappingURL=impl-umhvV4Zo.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-
|
|
1
|
+
{"version":3,"file":"impl-umhvV4Zo.mjs","names":[],"sources":["../src/lib/code-scanning/findCodePackagesInFolder.ts","../src/commands/inventory/scan-packages/impl.ts"],"sourcesContent":["import { getEntries } from '@transcend-io/type-utils';\nimport colors from 'colors';\nimport fastGlob from 'fast-glob';\n\nimport { CodePackageInput } from '../../codecs.js';\nimport { logger } from '../../logger.js';\nimport { CODE_SCANNING_CONFIGS } from './constants.js';\n\n/**\n * Helper to scan and discovery all of the code packages within a folder\n *\n * @param options - Options\n * @returns the list of integrations\n */\nexport async function findCodePackagesInFolder({\n scanPath,\n ignoreDirs = [],\n repositoryName,\n}: {\n /** The name of the github repository reporting packages for */\n repositoryName: string;\n /** Where to look for package.json files */\n scanPath: string;\n /** The directories to ignore (excludes node_modules and serverless-build) */\n ignoreDirs?: string[];\n}): Promise<CodePackageInput[]> {\n const allCodePackages = await Promise.all(\n getEntries(CODE_SCANNING_CONFIGS).map(async ([codePackageType, config]) => {\n const { ignoreDirs: configIgnoreDirs, supportedFiles, scanFunction } = config;\n const dirsToIgnore = [...ignoreDirs, ...configIgnoreDirs].filter((dir) => dir.length > 0);\n try {\n const filesToScan: string[] = await fastGlob(`${scanPath}/**/${supportedFiles.join('|')}`, {\n ignore: dirsToIgnore.map((dir: string) => `${scanPath}/**/${dir}`),\n unique: true,\n onlyFiles: true,\n });\n logger.info(\n colors.magenta(`Scanning: ${filesToScan.length} files of type ${codePackageType}`),\n );\n const allPackages = filesToScan\n .map((filePath) =>\n scanFunction(filePath).map((result) => ({\n ...result,\n relativePath: filePath.replace(`${scanPath}/`, ''),\n })),\n )\n .flat();\n logger.info(\n colors.green(\n `Found: ${allPackages.length} packages and ${\n allPackages.map(({ softwareDevelopmentKits = [] }) => softwareDevelopmentKits).flat()\n .length\n } sdks`,\n ),\n );\n\n return allPackages.map(\n (pkg): CodePackageInput => ({\n ...pkg,\n type: codePackageType,\n repositoryName,\n }),\n );\n } catch (error) {\n throw new Error(`Error scanning globs ${supportedFiles} with error: ${error}`);\n }\n }),\n );\n\n return allCodePackages.flat();\n}\n","import { execSync } from 'child_process';\n\nimport { buildTranscendGraphQLClient } from '@transcend-io/sdk';\nimport colors from 'colors';\n\nimport { ADMIN_DASH } from '../../../constants.js';\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { findCodePackagesInFolder } from '../../../lib/code-scanning/index.js';\nimport { syncCodePackages } from '../../../lib/graphql/index.js';\nimport { logger } from '../../../logger.js';\n\nconst REPO_ERROR =\n 'A repository name must be provided. ' +\n 'You can specify using --repositoryName=$REPO_NAME or by ensuring the ' +\n 'command \"git config --get remote.origin.url\" returns the name of the repository';\n\nexport interface ScanPackagesCommandFlags {\n auth: string;\n scanPath: string;\n ignoreDirs?: string[];\n repositoryName?: string;\n transcendUrl: string;\n}\n\nexport async function scanPackages(\n this: LocalContext,\n { auth, scanPath, ignoreDirs, repositoryName, transcendUrl }: ScanPackagesCommandFlags,\n): Promise<void> {\n doneInputValidation(this.process.exit);\n\n // Ensure repository name is specified\n let gitRepositoryName = repositoryName;\n if (!gitRepositoryName) {\n try {\n const name = execSync(`cd ${scanPath} && git config --get remote.origin.url`);\n // Trim and parse the URL\n const url = name.toString('utf-8').trim();\n [gitRepositoryName] = !url.includes('https:')\n ? (url.split(':').pop() || '').split('.')\n : url.split('/').slice(3).join('/').split('.');\n if (!gitRepositoryName) {\n logger.error(colors.red(REPO_ERROR));\n this.process.exit(1);\n }\n } catch (err) {\n logger.error(colors.red(`${REPO_ERROR} - Got error: ${err.message}`));\n this.process.exit(1);\n }\n }\n\n // Create a GraphQL client\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n // Scan the codebase to discovery packages\n const results = await findCodePackagesInFolder({\n scanPath,\n ignoreDirs,\n repositoryName: gitRepositoryName,\n });\n\n // Report scan to Transcend\n await syncCodePackages(client, results);\n\n const newUrl = new URL(ADMIN_DASH);\n newUrl.pathname = '/code-scanning/code-packages';\n\n // Indicate success\n logger.info(\n colors.green(\n `Scan found ${results.length} packages at ${scanPath}! ` + `View results at '${newUrl.href}'`,\n ),\n );\n}\n"],"mappings":"qbAcA,eAAsB,EAAyB,CAC7C,WACA,aAAa,EAAE,CACf,kBAQ8B,CA4C9B,OAAO,MA3CuB,QAAQ,IACpC,EAAW,EAAsB,CAAC,IAAI,MAAO,CAAC,EAAiB,KAAY,CACzE,GAAM,CAAE,WAAY,EAAkB,iBAAgB,gBAAiB,EACjE,EAAe,CAAC,GAAG,EAAY,GAAG,EAAiB,CAAC,OAAQ,GAAQ,EAAI,OAAS,EAAE,CACzF,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,KACL,EAAO,QAAQ,aAAa,EAAY,OAAO,iBAAiB,IAAkB,CACnF,CACD,IAAM,EAAc,EACjB,IAAK,GACJ,EAAa,EAAS,CAAC,IAAK,IAAY,CACtC,GAAG,EACH,aAAc,EAAS,QAAQ,GAAG,EAAS,GAAI,GAAG,CACnD,EAAE,CACJ,CACA,MAAM,CAUT,OATA,EAAO,KACL,EAAO,MACL,UAAU,EAAY,OAAO,gBAC3B,EAAY,KAAK,CAAE,0BAA0B,EAAE,IAAO,EAAwB,CAAC,MAAM,CAClF,OACJ,OACF,CACF,CAEM,EAAY,IAChB,IAA2B,CAC1B,GAAG,EACH,KAAM,EACN,iBACD,EACF,OACM,EAAO,CACd,MAAU,MAAM,wBAAwB,EAAe,eAAe,IAAQ,GAEhF,CACH,EAEsB,MAAM,CCzD/B,MAAM,EACJ,2LAYF,eAAsB,EAEpB,CAAE,OAAM,WAAU,aAAY,iBAAgB,gBAC/B,CACf,EAAoB,KAAK,QAAQ,KAAK,CAGtC,IAAI,EAAoB,EACxB,GAAI,CAAC,EACH,GAAI,CAGF,IAAM,EAFO,EAAS,MAAM,EAAS,wCAErB,CAAC,SAAS,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAsB,EAAI,SAAS,SAAS,CAEzC,EAAI,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,EAD3C,EAAI,MAAM,IAAI,CAAC,KAAK,EAAI,IAAI,MAAM,IAAI,CAEtC,IACH,EAAO,MAAM,EAAO,IAAI,EAAW,CAAC,CACpC,KAAK,QAAQ,KAAK,EAAE,QAEf,EAAK,CACZ,EAAO,MAAM,EAAO,IAAI,GAAG,EAAW,gBAAgB,EAAI,UAAU,CAAC,CACrE,KAAK,QAAQ,KAAK,EAAE,CAKxB,IAAM,EAAS,EAA4B,EAAc,EAAK,CAGxD,EAAU,MAAM,EAAyB,CAC7C,WACA,aACA,eAAgB,EACjB,CAAC,CAGF,MAAM,EAAiB,EAAQ,EAAQ,CAEvC,IAAM,EAAS,IAAI,IAAI,EAAW,CAClC,EAAO,SAAW,+BAGlB,EAAO,KACL,EAAO,MACL,cAAc,EAAQ,OAAO,eAAe,EAAS,qBAA0B,EAAO,KAAK,GAC5F,CACF"}
|