@transcend-io/cli 13.0.5 → 13.0.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.
Files changed (157) hide show
  1. package/README.md +2 -2
  2. package/dist/{app-DQ5b5mys.mjs → app-CO1O5Hkp.mjs} +16 -16
  3. package/dist/{app-DQ5b5mys.mjs.map → app-CO1O5Hkp.mjs.map} +1 -1
  4. package/dist/{approvePrivacyRequests-O70eyhdH.mjs → approvePrivacyRequests-Dp391N0W.mjs} +2 -2
  5. package/dist/{approvePrivacyRequests-O70eyhdH.mjs.map → approvePrivacyRequests-Dp391N0W.mjs.map} +1 -1
  6. package/dist/bin/bash-complete.mjs +1 -1
  7. package/dist/bin/cli.mjs +1 -1
  8. package/dist/bin/deprecated-command.mjs +1 -1
  9. package/dist/{buildExamples-BsMXuFwm.mjs → buildExamples-CFmrB0Ib.mjs} +2 -2
  10. package/dist/{buildExamples-BsMXuFwm.mjs.map → buildExamples-CFmrB0Ib.mjs.map} +1 -1
  11. package/dist/{buildXdiSyncEndpoint-CRJSuwdq.mjs → buildXdiSyncEndpoint-ClifAojB.mjs} +2 -2
  12. package/dist/{buildXdiSyncEndpoint-CRJSuwdq.mjs.map → buildXdiSyncEndpoint-ClifAojB.mjs.map} +1 -1
  13. package/dist/{bulkRestartRequests-C9cHasoq.mjs → bulkRestartRequests-CiBW6ccP.mjs} +2 -2
  14. package/dist/bulkRestartRequests-CiBW6ccP.mjs.map +1 -0
  15. package/dist/{bulkRetryEnrichers-BLDtr5Ws.mjs → bulkRetryEnrichers-CeJbLkVa.mjs} +2 -2
  16. package/dist/{bulkRetryEnrichers-BLDtr5Ws.mjs.map → bulkRetryEnrichers-CeJbLkVa.mjs.map} +1 -1
  17. package/dist/{cancelPrivacyRequests-DSjAUS5b.mjs → cancelPrivacyRequests-DHUjIs6Q.mjs} +2 -2
  18. package/dist/{cancelPrivacyRequests-DSjAUS5b.mjs.map → cancelPrivacyRequests-DHUjIs6Q.mjs.map} +1 -1
  19. package/dist/{command-DB0ydG0y.mjs → command-CW2zzyZv.mjs} +2 -2
  20. package/dist/{command-DB0ydG0y.mjs.map → command-CW2zzyZv.mjs.map} +1 -1
  21. package/dist/{constants-ZX8RSZos.mjs → constants-COP23kS1.mjs} +2 -2
  22. package/dist/{constants-ZX8RSZos.mjs.map → constants-COP23kS1.mjs.map} +1 -1
  23. package/dist/{createPoolingCommandUi-Bj6pO1t7.mjs → createPoolingCommandUi-C1LcY1pb.mjs} +2 -2
  24. package/dist/{createPoolingCommandUi-Bj6pO1t7.mjs.map → createPoolingCommandUi-C1LcY1pb.mjs.map} +1 -1
  25. package/dist/{downloadPrivacyRequestFiles-DKRfQoAo.mjs → downloadPrivacyRequestFiles-BWzpebA9.mjs} +2 -2
  26. package/dist/downloadPrivacyRequestFiles-BWzpebA9.mjs.map +1 -0
  27. package/dist/extractClientError-BQgmnp3e.mjs.map +1 -1
  28. package/dist/{generateCrossAccountApiKeys-BnUQ_wCI.mjs → generateCrossAccountApiKeys-CySsayKo.mjs} +2 -2
  29. package/dist/{generateCrossAccountApiKeys-BnUQ_wCI.mjs.map → generateCrossAccountApiKeys-CySsayKo.mjs.map} +1 -1
  30. package/dist/{impl-CcVNbgw3.mjs → impl-B-0sNsEl.mjs} +2 -2
  31. package/dist/{impl-CcVNbgw3.mjs.map → impl-B-0sNsEl.mjs.map} +1 -1
  32. package/dist/{impl-Do_3rQWz.mjs → impl-BEsnbaiX.mjs} +2 -2
  33. package/dist/{impl-Do_3rQWz.mjs.map → impl-BEsnbaiX.mjs.map} +1 -1
  34. package/dist/{impl-XbrQy_Ti2.mjs → impl-BH5iAw6H2.mjs} +2 -2
  35. package/dist/{impl-XbrQy_Ti2.mjs.map → impl-BH5iAw6H2.mjs.map} +1 -1
  36. package/dist/{impl-DJ5kJ80R.mjs → impl-BLXycY43.mjs} +2 -2
  37. package/dist/{impl-DJ5kJ80R.mjs.map → impl-BLXycY43.mjs.map} +1 -1
  38. package/dist/{impl-CFza6vNy.mjs → impl-BOxmt2GG.mjs} +2 -2
  39. package/dist/{impl-CFza6vNy.mjs.map → impl-BOxmt2GG.mjs.map} +1 -1
  40. package/dist/{impl-CWykfeDx.mjs → impl-BR8Hd6mv.mjs} +2 -2
  41. package/dist/{impl-CWykfeDx.mjs.map → impl-BR8Hd6mv.mjs.map} +1 -1
  42. package/dist/{impl-DHq2UBl4.mjs → impl-BV5F911e.mjs} +2 -2
  43. package/dist/{impl-DHq2UBl4.mjs.map → impl-BV5F911e.mjs.map} +1 -1
  44. package/dist/{impl-bWws4YDq.mjs → impl-BZ-3THtu.mjs} +2 -2
  45. package/dist/{impl-bWws4YDq.mjs.map → impl-BZ-3THtu.mjs.map} +1 -1
  46. package/dist/{impl-BAd2ga54.mjs → impl-B__KKiTX.mjs} +2 -2
  47. package/dist/{impl-BAd2ga54.mjs.map → impl-B__KKiTX.mjs.map} +1 -1
  48. package/dist/{impl-fmS5PIlk.mjs → impl-BcdEn3Fl.mjs} +2 -2
  49. package/dist/{impl-fmS5PIlk.mjs.map → impl-BcdEn3Fl.mjs.map} +1 -1
  50. package/dist/{impl-CihGggtZ.mjs → impl-Bi6LJASv.mjs} +2 -2
  51. package/dist/{impl-CihGggtZ.mjs.map → impl-Bi6LJASv.mjs.map} +1 -1
  52. package/dist/{impl-IQy1_4me.mjs → impl-BlpM1lXA.mjs} +2 -2
  53. package/dist/{impl-IQy1_4me.mjs.map → impl-BlpM1lXA.mjs.map} +1 -1
  54. package/dist/{impl-CeR4wR2T.mjs → impl-BodK3EBe.mjs} +2 -2
  55. package/dist/{impl-CeR4wR2T.mjs.map → impl-BodK3EBe.mjs.map} +1 -1
  56. package/dist/{impl-5s_Ya3XD.mjs → impl-C70SbLuM.mjs} +2 -2
  57. package/dist/{impl-5s_Ya3XD.mjs.map → impl-C70SbLuM.mjs.map} +1 -1
  58. package/dist/{impl-CXOLmyC1.mjs → impl-CDdfGdZS.mjs} +2 -2
  59. package/dist/{impl-CXOLmyC1.mjs.map → impl-CDdfGdZS.mjs.map} +1 -1
  60. package/dist/{impl-B7PA6_OB.mjs → impl-CFd4xBgL.mjs} +2 -2
  61. package/dist/{impl-B7PA6_OB.mjs.map → impl-CFd4xBgL.mjs.map} +1 -1
  62. package/dist/{impl-CIEPBjFF.mjs → impl-CUMgdqIK.mjs} +2 -2
  63. package/dist/{impl-CIEPBjFF.mjs.map → impl-CUMgdqIK.mjs.map} +1 -1
  64. package/dist/{impl-B_5zE1r4.mjs → impl-CVUB56mN.mjs} +2 -2
  65. package/dist/{impl-B_5zE1r4.mjs.map → impl-CVUB56mN.mjs.map} +1 -1
  66. package/dist/{impl-DEK7xark.mjs → impl-CW1o90oL.mjs} +2 -2
  67. package/dist/{impl-DEK7xark.mjs.map → impl-CW1o90oL.mjs.map} +1 -1
  68. package/dist/{impl-B8sKYzjF2.mjs → impl-CYHtZNqc2.mjs} +2 -2
  69. package/dist/{impl-B8sKYzjF2.mjs.map → impl-CYHtZNqc2.mjs.map} +1 -1
  70. package/dist/{impl-DQftQKzh.mjs → impl-CYmUc_vX.mjs} +2 -2
  71. package/dist/{impl-DQftQKzh.mjs.map → impl-CYmUc_vX.mjs.map} +1 -1
  72. package/dist/{impl-t0qVrVte.mjs → impl-Ce8auZ7z.mjs} +2 -2
  73. package/dist/{impl-t0qVrVte.mjs.map → impl-Ce8auZ7z.mjs.map} +1 -1
  74. package/dist/{impl-Bizz-Eku.mjs → impl-CnMcL9n5.mjs} +2 -2
  75. package/dist/{impl-Bizz-Eku.mjs.map → impl-CnMcL9n5.mjs.map} +1 -1
  76. package/dist/impl-CoqCyj7e.mjs.map +1 -1
  77. package/dist/{impl-C7oKqTBj.mjs → impl-CwrOulKa.mjs} +2 -2
  78. package/dist/{impl-C7oKqTBj.mjs.map → impl-CwrOulKa.mjs.map} +1 -1
  79. package/dist/{impl-DRmy2-be.mjs → impl-D68Cz0sq.mjs} +2 -2
  80. package/dist/{impl-DRmy2-be.mjs.map → impl-D68Cz0sq.mjs.map} +1 -1
  81. package/dist/{impl-CHq5HbuZ2.mjs → impl-D8k-pJS22.mjs} +2 -2
  82. package/dist/{impl-CHq5HbuZ2.mjs.map → impl-D8k-pJS22.mjs.map} +1 -1
  83. package/dist/{impl-BUziAyU5.mjs → impl-D9OTKDPp.mjs} +2 -2
  84. package/dist/{impl-BUziAyU5.mjs.map → impl-D9OTKDPp.mjs.map} +1 -1
  85. package/dist/{impl-BLX_G5bC.mjs → impl-DEIttGUr.mjs} +2 -2
  86. package/dist/{impl-BLX_G5bC.mjs.map → impl-DEIttGUr.mjs.map} +1 -1
  87. package/dist/{impl-CDB2WA0G.mjs → impl-DOwpJ0Di.mjs} +2 -2
  88. package/dist/{impl-CDB2WA0G.mjs.map → impl-DOwpJ0Di.mjs.map} +1 -1
  89. package/dist/{impl-COz--q8S.mjs → impl-DPpvHMjb.mjs} +2 -2
  90. package/dist/{impl-COz--q8S.mjs.map → impl-DPpvHMjb.mjs.map} +1 -1
  91. package/dist/{impl-DpLBWRCJ.mjs → impl-DemRJL6E.mjs} +2 -2
  92. package/dist/{impl-DpLBWRCJ.mjs.map → impl-DemRJL6E.mjs.map} +1 -1
  93. package/dist/{impl-CaPpiEL2.mjs → impl-DpDvrRiO.mjs} +2 -2
  94. package/dist/{impl-CaPpiEL2.mjs.map → impl-DpDvrRiO.mjs.map} +1 -1
  95. package/dist/{impl-B1TF4tzM2.mjs → impl-Ex1k8tmr2.mjs} +2 -2
  96. package/dist/{impl-B1TF4tzM2.mjs.map → impl-Ex1k8tmr2.mjs.map} +1 -1
  97. package/dist/impl-HsRwcfRu.mjs.map +1 -1
  98. package/dist/{impl-CPW2Q51W2.mjs → impl-Nw0Zse5L2.mjs} +2 -2
  99. package/dist/{impl-CPW2Q51W2.mjs.map → impl-Nw0Zse5L2.mjs.map} +1 -1
  100. package/dist/{impl-BOVkmW_l.mjs → impl-Ozpcz9ZU.mjs} +2 -2
  101. package/dist/{impl-BOVkmW_l.mjs.map → impl-Ozpcz9ZU.mjs.map} +1 -1
  102. package/dist/impl-WJBuS_0m.mjs.map +1 -1
  103. package/dist/{impl-77sXwCIh.mjs → impl-_iRsjm4-.mjs} +2 -2
  104. package/dist/{impl-77sXwCIh.mjs.map → impl-_iRsjm4-.mjs.map} +1 -1
  105. package/dist/{impl-tQda5dQ2.mjs → impl-jDN8J2nu.mjs} +2 -2
  106. package/dist/{impl-tQda5dQ2.mjs.map → impl-jDN8J2nu.mjs.map} +1 -1
  107. package/dist/{impl-DgMukyER.mjs → impl-lICSh559.mjs} +2 -2
  108. package/dist/{impl-DgMukyER.mjs.map → impl-lICSh559.mjs.map} +1 -1
  109. package/dist/{impl-BUMhJG9i.mjs → impl-tnFsm0_E.mjs} +2 -2
  110. package/dist/{impl-BUMhJG9i.mjs.map → impl-tnFsm0_E.mjs.map} +1 -1
  111. package/dist/index.d.mts +9 -7
  112. package/dist/index.d.mts.map +1 -1
  113. package/dist/index.mjs +1 -1
  114. package/dist/{markRequestDataSiloIdsCompleted-ZZvKQhtT.mjs → markRequestDataSiloIdsCompleted-8pyUnD96.mjs} +2 -2
  115. package/dist/{markRequestDataSiloIdsCompleted-ZZvKQhtT.mjs.map → markRequestDataSiloIdsCompleted-8pyUnD96.mjs.map} +1 -1
  116. package/dist/{markSilentPrivacyRequests-DZ13Jy20.mjs → markSilentPrivacyRequests-B0WgT7XH.mjs} +2 -2
  117. package/dist/{markSilentPrivacyRequests-DZ13Jy20.mjs.map → markSilentPrivacyRequests-B0WgT7XH.mjs.map} +1 -1
  118. package/dist/{notifyPrivacyRequestsAdditionalTime-BspmtrPe.mjs → notifyPrivacyRequestsAdditionalTime-CF_Q_gQB.mjs} +2 -2
  119. package/dist/{notifyPrivacyRequestsAdditionalTime-BspmtrPe.mjs.map → notifyPrivacyRequestsAdditionalTime-CF_Q_gQB.mjs.map} +1 -1
  120. package/dist/{policy-bundle-manifest-BKRoT17e.mjs → policy-bundle-manifest-C54mLUrx.mjs} +2 -2
  121. package/dist/{policy-bundle-manifest-BKRoT17e.mjs.map → policy-bundle-manifest-C54mLUrx.mjs.map} +1 -1
  122. package/dist/{policy-project-discovery-BXcvhfK7.mjs → policy-project-discovery-DhZ6dKNc.mjs} +2 -2
  123. package/dist/{policy-project-discovery-BXcvhfK7.mjs.map → policy-project-discovery-DhZ6dKNc.mjs.map} +1 -1
  124. package/dist/{policy-scaffold-config-DvyJctQz.mjs → policy-scaffold-config-DGq600jy.mjs} +2 -2
  125. package/dist/{policy-scaffold-config-DvyJctQz.mjs.map → policy-scaffold-config-DGq600jy.mjs.map} +1 -1
  126. package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-CDHCpiXU.mjs → pullChunkedCustomSiloOutstandingIdentifiers-DDlLAT1E.mjs} +2 -2
  127. package/dist/pullChunkedCustomSiloOutstandingIdentifiers-DDlLAT1E.mjs.map +1 -0
  128. package/dist/{pullManualEnrichmentIdentifiersToCsv-BSM4bSjf.mjs → pullManualEnrichmentIdentifiersToCsv-CMdQpJhA.mjs} +2 -2
  129. package/dist/{pullManualEnrichmentIdentifiersToCsv-BSM4bSjf.mjs.map → pullManualEnrichmentIdentifiersToCsv-CMdQpJhA.mjs.map} +1 -1
  130. package/dist/{pushCronIdentifiersFromCsv-CnMWjt94.mjs → pushCronIdentifiersFromCsv-zG2hSmLe.mjs} +2 -2
  131. package/dist/pushCronIdentifiersFromCsv-zG2hSmLe.mjs.map +1 -0
  132. package/dist/{pushManualEnrichmentIdentifiersFromCsv-iv9Ts42q.mjs → pushManualEnrichmentIdentifiersFromCsv-BTNRsy1n.mjs} +2 -2
  133. package/dist/pushManualEnrichmentIdentifiersFromCsv-BTNRsy1n.mjs.map +1 -0
  134. package/dist/{removeUnverifiedRequestIdentifiers-Bo5U01oM.mjs → removeUnverifiedRequestIdentifiers-B-4jnuHJ.mjs} +2 -2
  135. package/dist/{removeUnverifiedRequestIdentifiers-Bo5U01oM.mjs.map → removeUnverifiedRequestIdentifiers-B-4jnuHJ.mjs.map} +1 -1
  136. package/dist/resolveBundleIdByName-D7NUOpLc.mjs.map +1 -1
  137. package/dist/resolvePolicyBundleVersion-CKbF9vqc.mjs.map +1 -1
  138. package/dist/{retryRequestDataSilos-BWGlpn1o.mjs → retryRequestDataSilos-4KK-YDFo.mjs} +2 -2
  139. package/dist/{retryRequestDataSilos-BWGlpn1o.mjs.map → retryRequestDataSilos-4KK-YDFo.mjs.map} +1 -1
  140. package/dist/{skipPreflightJobs-B0LSm9IU.mjs → skipPreflightJobs-CTAUtsAu.mjs} +2 -2
  141. package/dist/{skipPreflightJobs-B0LSm9IU.mjs.map → skipPreflightJobs-CTAUtsAu.mjs.map} +1 -1
  142. package/dist/{skipRequestDataSilos-EEaly2ls.mjs → skipRequestDataSilos-DhWSTG5Y.mjs} +2 -2
  143. package/dist/{skipRequestDataSilos-EEaly2ls.mjs.map → skipRequestDataSilos-DhWSTG5Y.mjs.map} +1 -1
  144. package/dist/{streamPrivacyRequestsToCsv-DUFu0-AB.mjs → streamPrivacyRequestsToCsv-BNGRUSGN.mjs} +2 -2
  145. package/dist/{streamPrivacyRequestsToCsv-DUFu0-AB.mjs.map → streamPrivacyRequestsToCsv-BNGRUSGN.mjs.map} +1 -1
  146. package/dist/{updateConsentManagerVersionToLatest-C4D6cqMh.mjs → updateConsentManagerVersionToLatest-sLQaEvXZ.mjs} +2 -2
  147. package/dist/{updateConsentManagerVersionToLatest-C4D6cqMh.mjs.map → updateConsentManagerVersionToLatest-sLQaEvXZ.mjs.map} +1 -1
  148. package/dist/{uploadConsents-CMTmdRLm.mjs → uploadConsents-DD5ZYsjA.mjs} +2 -2
  149. package/dist/{uploadConsents-CMTmdRLm.mjs.map → uploadConsents-DD5ZYsjA.mjs.map} +1 -1
  150. package/dist/{uploadPrivacyRequestsFromCsv-BIe_wJ4A.mjs → uploadPrivacyRequestsFromCsv-Dxep9tvI.mjs} +2 -2
  151. package/dist/{uploadPrivacyRequestsFromCsv-BIe_wJ4A.mjs.map → uploadPrivacyRequestsFromCsv-Dxep9tvI.mjs.map} +1 -1
  152. package/package.json +5 -5
  153. package/dist/bulkRestartRequests-C9cHasoq.mjs.map +0 -1
  154. package/dist/downloadPrivacyRequestFiles-DKRfQoAo.mjs.map +0 -1
  155. package/dist/pullChunkedCustomSiloOutstandingIdentifiers-CDHCpiXU.mjs.map +0 -1
  156. package/dist/pushCronIdentifiersFromCsv-CnMWjt94.mjs.map +0 -1
  157. package/dist/pushManualEnrichmentIdentifiersFromCsv-iv9Ts42q.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"impl-tQda5dQ2.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);\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,CAEjC,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
+ {"version":3,"file":"impl-jDN8J2nu.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);\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,CAEjC,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{i as e,n as t,t as n}from"./policy-project-discovery-BXcvhfK7.mjs";import{n as r,r as i}from"./runOpa-ojIqU1tO.mjs";import{t as a}from"./done-input-validation-LiTaCEzF.mjs";import o from"node:path";import s from"colors";async function c({format:c,verbose:l,run:u,coverage:d,threshold:f,timeout:p,"var-values":m,explain:h,schema:g,"exit-zero-on-skipped":_},v=n){a(this.process),i();let y=e(this.process.cwd(),v);if(!this.fs.existsSync(y)||!this.fs.statSync(y).isDirectory())throw Error(`Policy directory does not exist or is not a directory: ${y}`);if(f!==void 0&&!d)throw Error(`--threshold requires --coverage.`);if(f!==void 0){let e=Number(f);if(!Number.isFinite(e)||e<0||e>100)throw Error(`--threshold must be a number between 0 and 100, got: ${f}`)}let b=g?o.resolve(this.process.cwd(),g):void 0;if(b&&!this.fs.existsSync(b))throw Error(`Schema path not found: ${b}`);let x=t(this,y);if(x.length===0)throw Error("No publishable policy bundles found. Add one with `transcend policy new`, or pass a directory that contains a `.manifest`.");for(let e of x){this.logger.info(s.green(`Running policy tests in ${e}...`));let t=await r([`test`,`--fail-on-empty`,`-b`,e,`--format`,c,...l?[`--verbose`]:[],...u?[`--run`,u]:[],...d?[`--coverage`]:[],...f===void 0?[]:[`--threshold`,f],...p?[`--timeout`,p]:[],...m?[`--var-values`]:[],...h?[`--explain`,h]:[],...b?[`--schema`,b]:[],..._?[`--exit-zero-on-skipped`]:[]]);t!==0&&this.process.exit(t)}this.logger.info(s.green(`Policy tests passed.`))}export{c as test};
2
- //# sourceMappingURL=impl-DgMukyER.mjs.map
1
+ import{i as e,n as t,t as n}from"./policy-project-discovery-DhZ6dKNc.mjs";import{n as r,r as i}from"./runOpa-ojIqU1tO.mjs";import{t as a}from"./done-input-validation-LiTaCEzF.mjs";import o from"node:path";import s from"colors";async function c({format:c,verbose:l,run:u,coverage:d,threshold:f,timeout:p,"var-values":m,explain:h,schema:g,"exit-zero-on-skipped":_},v=n){a(this.process),i();let y=e(this.process.cwd(),v);if(!this.fs.existsSync(y)||!this.fs.statSync(y).isDirectory())throw Error(`Policy directory does not exist or is not a directory: ${y}`);if(f!==void 0&&!d)throw Error(`--threshold requires --coverage.`);if(f!==void 0){let e=Number(f);if(!Number.isFinite(e)||e<0||e>100)throw Error(`--threshold must be a number between 0 and 100, got: ${f}`)}let b=g?o.resolve(this.process.cwd(),g):void 0;if(b&&!this.fs.existsSync(b))throw Error(`Schema path not found: ${b}`);let x=t(this,y);if(x.length===0)throw Error("No publishable policy bundles found. Add one with `transcend policy new`, or pass a directory that contains a `.manifest`.");for(let e of x){this.logger.info(s.green(`Running policy tests in ${e}...`));let t=await r([`test`,`--fail-on-empty`,`-b`,e,`--format`,c,...l?[`--verbose`]:[],...u?[`--run`,u]:[],...d?[`--coverage`]:[],...f===void 0?[]:[`--threshold`,f],...p?[`--timeout`,p]:[],...m?[`--var-values`]:[],...h?[`--explain`,h]:[],...b?[`--schema`,b]:[],..._?[`--exit-zero-on-skipped`]:[]]);t!==0&&this.process.exit(t)}this.logger.info(s.green(`Policy tests passed.`))}export{c as test};
2
+ //# sourceMappingURL=impl-lICSh559.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"impl-DgMukyER.mjs","names":[],"sources":["../src/commands/policy/test/impl.ts"],"sourcesContent":["import path from 'node:path';\n\nimport colors from 'colors';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport {\n DEFAULT_POLICY_PROJECT_DIRECTORY,\n discoverPolicyBundleDirectories,\n resolvePolicyProjectDirectory,\n} from '../../../lib/policy/policy-project-discovery.js';\nimport { assertOpaInstalled, runOpa } from '../helpers/index.js';\nimport type { PolicyTestExplainMode, PolicyTestFormat } from './command.js';\n\n/** CLI flags for `transcend policy test`. */\nexport interface TestCommandFlags {\n /** `opa test --format` value. */\n format: PolicyTestFormat;\n /** `opa test --verbose`. */\n verbose: boolean;\n /** Optional `opa test --run` regex. */\n run?: string;\n /** `opa test --coverage`. */\n coverage: boolean;\n /** Optional `opa test --threshold` coverage percent. */\n threshold?: string;\n /** Optional `opa test --timeout` duration. */\n timeout?: string;\n /** `opa test --var-values`. */\n 'var-values': boolean;\n /** Optional `opa test --explain` mode. */\n explain?: PolicyTestExplainMode;\n /** Optional `opa test --schema` path. */\n schema?: string;\n /** `opa test --exit-zero-on-skipped`. */\n 'exit-zero-on-skipped': boolean;\n}\n\n/**\n * Run OPA tests against local policy bundles.\n *\n * With no directory (or the default workspace path), discovers every immediate\n * child that contains a `.manifest` and tests each. Pass one bundle path to\n * test a single publishable unit.\n *\n * @param this - CLI context\n * @param flags - Command flags\n * @param directory - Policy workspace or bundle directory\n */\nexport async function test(\n this: LocalContext,\n {\n format,\n verbose,\n run,\n coverage,\n threshold,\n timeout,\n 'var-values': varValues,\n explain,\n schema,\n 'exit-zero-on-skipped': exitZeroOnSkipped,\n }: TestCommandFlags,\n directory: string = DEFAULT_POLICY_PROJECT_DIRECTORY,\n): Promise<void> {\n doneInputValidation(this.process);\n\n assertOpaInstalled();\n const resolvedDir = resolvePolicyProjectDirectory(this.process.cwd(), directory);\n if (!this.fs.existsSync(resolvedDir) || !this.fs.statSync(resolvedDir).isDirectory()) {\n throw new Error(`Policy directory does not exist or is not a directory: ${resolvedDir}`);\n }\n\n if (threshold !== undefined && !coverage) {\n throw new Error('--threshold requires --coverage.');\n }\n if (threshold !== undefined) {\n const parsed = Number(threshold);\n if (!Number.isFinite(parsed) || parsed < 0 || parsed > 100) {\n throw new Error(`--threshold must be a number between 0 and 100, got: ${threshold}`);\n }\n }\n\n const schemaPath = schema ? path.resolve(this.process.cwd(), schema) : undefined;\n if (schemaPath && !this.fs.existsSync(schemaPath)) {\n throw new Error(`Schema path not found: ${schemaPath}`);\n }\n\n const bundleDirectories = discoverPolicyBundleDirectories(this, resolvedDir);\n if (bundleDirectories.length === 0) {\n throw new Error(\n 'No publishable policy bundles found. Add one with `transcend policy new`, ' +\n 'or pass a directory that contains a `.manifest`.',\n );\n }\n\n for (const bundleDirectory of bundleDirectories) {\n this.logger.info(colors.green(`Running policy tests in ${bundleDirectory}...`));\n const exitCode = await runOpa([\n 'test',\n '--fail-on-empty',\n '-b',\n bundleDirectory,\n '--format',\n format,\n ...(verbose ? ['--verbose'] : []),\n ...(run ? ['--run', run] : []),\n ...(coverage ? ['--coverage'] : []),\n ...(threshold !== undefined ? ['--threshold', threshold] : []),\n ...(timeout ? ['--timeout', timeout] : []),\n ...(varValues ? ['--var-values'] : []),\n ...(explain ? ['--explain', explain] : []),\n ...(schemaPath ? ['--schema', schemaPath] : []),\n ...(exitZeroOnSkipped ? ['--exit-zero-on-skipped'] : []),\n ]);\n if (exitCode !== 0) {\n this.process.exit(exitCode);\n }\n }\n\n this.logger.info(colors.green('Policy tests passed.'));\n}\n"],"mappings":"mOAiDA,eAAsB,EAEpB,CACE,SACA,UACA,MACA,WACA,YACA,UACA,aAAc,EACd,UACA,SACA,uBAAwB,GAE1B,EAAoB,EACL,CACf,EAAoB,KAAK,QAAQ,CAEjC,GAAoB,CACpB,IAAM,EAAc,EAA8B,KAAK,QAAQ,KAAK,CAAE,EAAU,CAChF,GAAI,CAAC,KAAK,GAAG,WAAW,EAAY,EAAI,CAAC,KAAK,GAAG,SAAS,EAAY,CAAC,aAAa,CAClF,MAAU,MAAM,0DAA0D,IAAc,CAG1F,GAAI,IAAc,IAAA,IAAa,CAAC,EAC9B,MAAU,MAAM,mCAAmC,CAErD,GAAI,IAAc,IAAA,GAAW,CAC3B,IAAM,EAAS,OAAO,EAAU,CAChC,GAAI,CAAC,OAAO,SAAS,EAAO,EAAI,EAAS,GAAK,EAAS,IACrD,MAAU,MAAM,wDAAwD,IAAY,CAIxF,IAAM,EAAa,EAAS,EAAK,QAAQ,KAAK,QAAQ,KAAK,CAAE,EAAO,CAAG,IAAA,GACvE,GAAI,GAAc,CAAC,KAAK,GAAG,WAAW,EAAW,CAC/C,MAAU,MAAM,0BAA0B,IAAa,CAGzD,IAAM,EAAoB,EAAgC,KAAM,EAAY,CAC5E,GAAI,EAAkB,SAAW,EAC/B,MAAU,MACR,6HAED,CAGH,IAAK,IAAM,KAAmB,EAAmB,CAC/C,KAAK,OAAO,KAAK,EAAO,MAAM,2BAA2B,EAAgB,KAAK,CAAC,CAC/E,IAAM,EAAW,MAAM,EAAO,CAC5B,OACA,kBACA,KACA,EACA,WACA,EACA,GAAI,EAAU,CAAC,YAAY,CAAG,EAAE,CAChC,GAAI,EAAM,CAAC,QAAS,EAAI,CAAG,EAAE,CAC7B,GAAI,EAAW,CAAC,aAAa,CAAG,EAAE,CAClC,GAAI,IAAc,IAAA,GAAyC,EAAE,CAA/B,CAAC,cAAe,EAAU,CACxD,GAAI,EAAU,CAAC,YAAa,EAAQ,CAAG,EAAE,CACzC,GAAI,EAAY,CAAC,eAAe,CAAG,EAAE,CACrC,GAAI,EAAU,CAAC,YAAa,EAAQ,CAAG,EAAE,CACzC,GAAI,EAAa,CAAC,WAAY,EAAW,CAAG,EAAE,CAC9C,GAAI,EAAoB,CAAC,yBAAyB,CAAG,EAAE,CACxD,CAAC,CACE,IAAa,GACf,KAAK,QAAQ,KAAK,EAAS,CAI/B,KAAK,OAAO,KAAK,EAAO,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"impl-lICSh559.mjs","names":[],"sources":["../src/commands/policy/test/impl.ts"],"sourcesContent":["import path from 'node:path';\n\nimport colors from 'colors';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport {\n DEFAULT_POLICY_PROJECT_DIRECTORY,\n discoverPolicyBundleDirectories,\n resolvePolicyProjectDirectory,\n} from '../../../lib/policy/policy-project-discovery.js';\nimport { assertOpaInstalled, runOpa } from '../helpers/index.js';\nimport type { PolicyTestExplainMode, PolicyTestFormat } from './command.js';\n\n/** CLI flags for `transcend policy test`. */\nexport interface TestCommandFlags {\n /** `opa test --format` value. */\n format: PolicyTestFormat;\n /** `opa test --verbose`. */\n verbose: boolean;\n /** Optional `opa test --run` regex. */\n run?: string;\n /** `opa test --coverage`. */\n coverage: boolean;\n /** Optional `opa test --threshold` coverage percent. */\n threshold?: string;\n /** Optional `opa test --timeout` duration. */\n timeout?: string;\n /** `opa test --var-values`. */\n 'var-values': boolean;\n /** Optional `opa test --explain` mode. */\n explain?: PolicyTestExplainMode;\n /** Optional `opa test --schema` path. */\n schema?: string;\n /** `opa test --exit-zero-on-skipped`. */\n 'exit-zero-on-skipped': boolean;\n}\n\n/**\n * Run OPA tests against local policy bundles.\n *\n * With no directory (or the default workspace path), discovers every immediate\n * child that contains a `.manifest` and tests each. Pass one bundle path to\n * test a single publishable unit.\n *\n * @param this - CLI context\n * @param flags - Command flags\n * @param directory - Policy workspace or bundle directory\n */\nexport async function test(\n this: LocalContext,\n {\n format,\n verbose,\n run,\n coverage,\n threshold,\n timeout,\n 'var-values': varValues,\n explain,\n schema,\n 'exit-zero-on-skipped': exitZeroOnSkipped,\n }: TestCommandFlags,\n directory: string = DEFAULT_POLICY_PROJECT_DIRECTORY,\n): Promise<void> {\n doneInputValidation(this.process);\n\n assertOpaInstalled();\n const resolvedDir = resolvePolicyProjectDirectory(this.process.cwd(), directory);\n if (!this.fs.existsSync(resolvedDir) || !this.fs.statSync(resolvedDir).isDirectory()) {\n throw new Error(`Policy directory does not exist or is not a directory: ${resolvedDir}`);\n }\n\n if (threshold !== undefined && !coverage) {\n throw new Error('--threshold requires --coverage.');\n }\n if (threshold !== undefined) {\n const parsed = Number(threshold);\n if (!Number.isFinite(parsed) || parsed < 0 || parsed > 100) {\n throw new Error(`--threshold must be a number between 0 and 100, got: ${threshold}`);\n }\n }\n\n const schemaPath = schema ? path.resolve(this.process.cwd(), schema) : undefined;\n if (schemaPath && !this.fs.existsSync(schemaPath)) {\n throw new Error(`Schema path not found: ${schemaPath}`);\n }\n\n const bundleDirectories = discoverPolicyBundleDirectories(this, resolvedDir);\n if (bundleDirectories.length === 0) {\n throw new Error(\n 'No publishable policy bundles found. Add one with `transcend policy new`, ' +\n 'or pass a directory that contains a `.manifest`.',\n );\n }\n\n for (const bundleDirectory of bundleDirectories) {\n this.logger.info(colors.green(`Running policy tests in ${bundleDirectory}...`));\n const exitCode = await runOpa([\n 'test',\n '--fail-on-empty',\n '-b',\n bundleDirectory,\n '--format',\n format,\n ...(verbose ? ['--verbose'] : []),\n ...(run ? ['--run', run] : []),\n ...(coverage ? ['--coverage'] : []),\n ...(threshold !== undefined ? ['--threshold', threshold] : []),\n ...(timeout ? ['--timeout', timeout] : []),\n ...(varValues ? ['--var-values'] : []),\n ...(explain ? ['--explain', explain] : []),\n ...(schemaPath ? ['--schema', schemaPath] : []),\n ...(exitZeroOnSkipped ? ['--exit-zero-on-skipped'] : []),\n ]);\n if (exitCode !== 0) {\n this.process.exit(exitCode);\n }\n }\n\n this.logger.info(colors.green('Policy tests passed.'));\n}\n"],"mappings":"mOAiDA,eAAsB,EAEpB,CACE,SACA,UACA,MACA,WACA,YACA,UACA,aAAc,EACd,UACA,SACA,uBAAwB,GAE1B,EAAoB,EACL,CACf,EAAoB,KAAK,QAAQ,CAEjC,GAAoB,CACpB,IAAM,EAAc,EAA8B,KAAK,QAAQ,KAAK,CAAE,EAAU,CAChF,GAAI,CAAC,KAAK,GAAG,WAAW,EAAY,EAAI,CAAC,KAAK,GAAG,SAAS,EAAY,CAAC,aAAa,CAClF,MAAU,MAAM,0DAA0D,IAAc,CAG1F,GAAI,IAAc,IAAA,IAAa,CAAC,EAC9B,MAAU,MAAM,mCAAmC,CAErD,GAAI,IAAc,IAAA,GAAW,CAC3B,IAAM,EAAS,OAAO,EAAU,CAChC,GAAI,CAAC,OAAO,SAAS,EAAO,EAAI,EAAS,GAAK,EAAS,IACrD,MAAU,MAAM,wDAAwD,IAAY,CAIxF,IAAM,EAAa,EAAS,EAAK,QAAQ,KAAK,QAAQ,KAAK,CAAE,EAAO,CAAG,IAAA,GACvE,GAAI,GAAc,CAAC,KAAK,GAAG,WAAW,EAAW,CAC/C,MAAU,MAAM,0BAA0B,IAAa,CAGzD,IAAM,EAAoB,EAAgC,KAAM,EAAY,CAC5E,GAAI,EAAkB,SAAW,EAC/B,MAAU,MACR,6HAED,CAGH,IAAK,IAAM,KAAmB,EAAmB,CAC/C,KAAK,OAAO,KAAK,EAAO,MAAM,2BAA2B,EAAgB,KAAK,CAAC,CAC/E,IAAM,EAAW,MAAM,EAAO,CAC5B,OACA,kBACA,KACA,EACA,WACA,EACA,GAAI,EAAU,CAAC,YAAY,CAAG,EAAE,CAChC,GAAI,EAAM,CAAC,QAAS,EAAI,CAAG,EAAE,CAC7B,GAAI,EAAW,CAAC,aAAa,CAAG,EAAE,CAClC,GAAI,IAAc,IAAA,GAAyC,EAAE,CAA/B,CAAC,cAAe,EAAU,CACxD,GAAI,EAAU,CAAC,YAAa,EAAQ,CAAG,EAAE,CACzC,GAAI,EAAY,CAAC,eAAe,CAAG,EAAE,CACrC,GAAI,EAAU,CAAC,YAAa,EAAQ,CAAG,EAAE,CACzC,GAAI,EAAa,CAAC,WAAY,EAAW,CAAG,EAAE,CAC9C,GAAI,EAAoB,CAAC,yBAAyB,CAAG,EAAE,CACxD,CAAC,CACE,IAAa,GACf,KAAK,QAAQ,KAAK,EAAS,CAI/B,KAAK,OAAO,KAAK,EAAO,MAAM,uBAAuB,CAAC"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./constants-ZX8RSZos.mjs";import{t}from"./logger-CPu6zbyQ.mjs";import{n}from"./syncCodePackages-DJnrcX5l.mjs";import{t as r}from"./done-input-validation-LiTaCEzF.mjs";import{t as i}from"./constants-DC_bBO09.mjs";import a from"colors";import o from"fast-glob";import{getEntries as s}from"@transcend-io/type-utils";import{buildTranscendGraphQLClient as c}from"@transcend-io/sdk";import{execSync as l}from"child_process";async function u({scanPath:e,ignoreDirs:n=[],repositoryName:r}){return(await Promise.all(s(i).map(async([i,s])=>{let{ignoreDirs:c,supportedFiles:l,scanFunction:u}=s,d=[...n,...c].filter(e=>e.length>0);try{let n=await o(`${e}/**/${l.join(`|`)}`,{ignore:d.map(t=>`${e}/**/${t}`),unique:!0,onlyFiles:!0});t.info(a.magenta(`Scanning: ${n.length} files of type ${i}`));let s=n.map(t=>u(t).map(n=>({...n,relativePath:t.replace(`${e}/`,``)}))).flat();return t.info(a.green(`Found: ${s.length} packages and ${s.map(({softwareDevelopmentKits:e=[]})=>e).flat().length} sdks`)),s.map(e=>({...e,type:i,repositoryName:r}))}catch(e){throw Error(`Error scanning globs ${l} 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:t,scanPath:i,ignoreDirs:o,repositoryName:s,transcendUrl:f}){r(this.process);let p=s;if(!p)try{let e=l(`cd ${i} && git config --get remote.origin.url`).toString(`utf-8`).trim();[p]=e.includes(`https:`)?e.split(`/`).slice(3).join(`/`).split(`.`):(e.split(`:`).pop()||``).split(`.`),p||(this.logger.error(a.red(d)),this.process.exit(1))}catch(e){this.logger.error(a.red(`${d} - Got error: ${e.message}`)),this.process.exit(1)}let m=c(f,t),h=await u({scanPath:i,ignoreDirs:o,repositoryName:p});await n(m,h);let g=new URL(e);g.pathname=`/code-scanning/code-packages`,this.logger.info(a.green(`Scan found ${h.length} packages at ${i}! View results at '${g.href}'`))}export{f as scanPackages};
2
- //# sourceMappingURL=impl-BUMhJG9i.mjs.map
1
+ import{t as e}from"./constants-COP23kS1.mjs";import{t}from"./logger-CPu6zbyQ.mjs";import{n}from"./syncCodePackages-DJnrcX5l.mjs";import{t as r}from"./done-input-validation-LiTaCEzF.mjs";import{t as i}from"./constants-DC_bBO09.mjs";import a from"colors";import o from"fast-glob";import{getEntries as s}from"@transcend-io/type-utils";import{buildTranscendGraphQLClient as c}from"@transcend-io/sdk";import{execSync as l}from"child_process";async function u({scanPath:e,ignoreDirs:n=[],repositoryName:r}){return(await Promise.all(s(i).map(async([i,s])=>{let{ignoreDirs:c,supportedFiles:l,scanFunction:u}=s,d=[...n,...c].filter(e=>e.length>0);try{let n=await o(`${e}/**/${l.join(`|`)}`,{ignore:d.map(t=>`${e}/**/${t}`),unique:!0,onlyFiles:!0});t.info(a.magenta(`Scanning: ${n.length} files of type ${i}`));let s=n.map(t=>u(t).map(n=>({...n,relativePath:t.replace(`${e}/`,``)}))).flat();return t.info(a.green(`Found: ${s.length} packages and ${s.map(({softwareDevelopmentKits:e=[]})=>e).flat().length} sdks`)),s.map(e=>({...e,type:i,repositoryName:r}))}catch(e){throw Error(`Error scanning globs ${l} 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:t,scanPath:i,ignoreDirs:o,repositoryName:s,transcendUrl:f}){r(this.process);let p=s;if(!p)try{let e=l(`cd ${i} && git config --get remote.origin.url`).toString(`utf-8`).trim();[p]=e.includes(`https:`)?e.split(`/`).slice(3).join(`/`).split(`.`):(e.split(`:`).pop()||``).split(`.`),p||(this.logger.error(a.red(d)),this.process.exit(1))}catch(e){this.logger.error(a.red(`${d} - Got error: ${e.message}`)),this.process.exit(1)}let m=c(f,t),h=await u({scanPath:i,ignoreDirs:o,repositoryName:p});await n(m,h);let g=new URL(e);g.pathname=`/code-scanning/code-packages`,this.logger.info(a.green(`Scan found ${h.length} packages at ${i}! View results at '${g.href}'`))}export{f as scanPackages};
2
+ //# sourceMappingURL=impl-tnFsm0_E.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"impl-BUMhJG9i.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';\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);\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 this.logger.error(colors.red(REPO_ERROR));\n this.process.exit(1);\n }\n } catch (err) {\n this.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 this.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,CC1D/B,MAAM,EACJ,2LAYF,eAAsB,EAEpB,CAAE,OAAM,WAAU,aAAY,iBAAgB,gBAC/B,CACf,EAAoB,KAAK,QAAQ,CAGjC,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,KAAK,OAAO,MAAM,EAAO,IAAI,EAAW,CAAC,CACzC,KAAK,QAAQ,KAAK,EAAE,QAEf,EAAK,CACZ,KAAK,OAAO,MAAM,EAAO,IAAI,GAAG,EAAW,gBAAgB,EAAI,UAAU,CAAC,CAC1E,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,KAAK,OAAO,KACV,EAAO,MACL,cAAc,EAAQ,OAAO,eAAe,EAAS,qBAA0B,EAAO,KAAK,GAC5F,CACF"}
1
+ {"version":3,"file":"impl-tnFsm0_E.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';\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);\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 this.logger.error(colors.red(REPO_ERROR));\n this.process.exit(1);\n }\n } catch (err) {\n this.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 this.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,CC1D/B,MAAM,EACJ,2LAYF,eAAsB,EAEpB,CAAE,OAAM,WAAU,aAAY,iBAAgB,gBAC/B,CACf,EAAoB,KAAK,QAAQ,CAGjC,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,KAAK,OAAO,MAAM,EAAO,IAAI,EAAW,CAAC,CACzC,KAAK,QAAQ,KAAK,EAAE,QAEf,EAAK,CACZ,KAAK,OAAO,MAAM,EAAO,IAAI,GAAG,EAAW,gBAAgB,EAAI,UAAU,CAAC,CAC1E,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,KAAK,OAAO,KACV,EAAO,MACL,cAAc,EAAQ,OAAO,eAAe,EAAS,qBAA0B,EAAO,KAAK,GAC5F,CACF"}
package/dist/index.d.mts CHANGED
@@ -165,6 +165,7 @@ declare const TeamInput: t.IntersectionC<[t.TypeC<{
165
165
  viewCustomFunction: unknown;
166
166
  manageCustomFunction: unknown;
167
167
  viewUsage: unknown;
168
+ executeLLMClassification: unknown;
168
169
  }>>;
169
170
  }>]>;
170
171
  /** Type override */
@@ -87147,6 +87148,7 @@ declare const TranscendInput: t.PartialC<{
87147
87148
  viewCustomFunction: unknown;
87148
87149
  manageCustomFunction: unknown;
87149
87150
  viewUsage: unknown;
87151
+ executeLLMClassification: unknown;
87150
87152
  }>>;
87151
87153
  }>]>>;
87152
87154
  /**
@@ -178202,7 +178204,7 @@ type PrivacyRequestResponse = t.TypeOf<typeof PrivacyRequestResponse>;
178202
178204
  * @param options - Additional options
178203
178205
  * @returns Successfully submitted request
178204
178206
  */
178205
- declare function submitPrivacyRequest(sombra: Got, input: PrivacyRequestInput, {
178207
+ declare function submitPrivacyRequest(sombra: Pick<Got, 'post'>, input: PrivacyRequestInput, {
178206
178208
  details,
178207
178209
  isTest,
178208
178210
  emailIsVerified,
@@ -184418,7 +184420,7 @@ declare function getFileMetadataForPrivacyRequests(requests: Pick<PrivacyRequest
184418
184420
  concurrency,
184419
184421
  limit
184420
184422
  }: {
184421
- /** Sombra instance */sombra: Got; /** Number of files to pull at once */
184423
+ /** Sombra instance */sombra: Pick<Got, 'get'>; /** Number of files to pull at once */
184422
184424
  limit?: number; /** Concurrency limit for approving */
184423
184425
  concurrency?: number;
184424
184426
  }): Promise<[Pick<PrivacyRequest, 'id' | 'status'>, RequestFileMetadata[]][]>;
@@ -184439,7 +184441,7 @@ declare function streamPrivacyRequestFiles(fileMetadata: RequestFileMetadata[],
184439
184441
  concurrency
184440
184442
  }: {
184441
184443
  /** Request ID for logging */requestId: string; /** Sombra got instance */
184442
- sombra: Got; /** Handler on each file */
184444
+ sombra: Pick<Got, 'get'>; /** Handler on each file */
184443
184445
  onFileDownloaded: (metadata: RequestFileMetadata, stream: Uint8Array) => void; /** Concurrent downloads at once */
184444
184446
  concurrency?: number;
184445
184447
  }): Promise<void>;
@@ -184553,7 +184555,7 @@ declare function bulkRestartRequests({
184553
184555
  * @param input - Request input
184554
184556
  * @returns Successfully submitted request
184555
184557
  */
184556
- declare function restartPrivacyRequest(sombra: Got, request: PrivacyRequest, {
184558
+ declare function restartPrivacyRequest(sombra: Pick<Got, 'post'>, request: PrivacyRequest, {
184557
184559
  sendEmailReceipt,
184558
184560
  skipWaitingPeriod,
184559
184561
  emailIsVerified,
@@ -185356,7 +185358,7 @@ type CronIdentifier = t.TypeOf<typeof CronIdentifier>;
185356
185358
  * @param options - Additional options
185357
185359
  * @returns Successfully submitted request
185358
185360
  */
185359
- declare function pullCronPageOfIdentifiers(sombra: Got, {
185361
+ declare function pullCronPageOfIdentifiers(sombra: Pick<Got, 'get'>, {
185360
185362
  dataSiloId,
185361
185363
  limit,
185362
185364
  offset,
@@ -185411,7 +185413,7 @@ type CronIdentifierPush = t.TypeOf<typeof CronIdentifierPush>;
185411
185413
  * @param options - Additional options
185412
185414
  * @returns Successfully submitted request, false if not in a state to update
185413
185415
  */
185414
- declare function markCronIdentifierCompleted(sombra: Got, {
185416
+ declare function markCronIdentifierCompleted(sombra: Pick<Got, 'put'>, {
185415
185417
  nonce,
185416
185418
  identifier
185417
185419
  }: CronIdentifierPush): Promise<boolean>;
@@ -185817,7 +185819,7 @@ type EnrichPrivacyRequest = t.TypeOf<typeof EnrichPrivacyRequest>;
185817
185819
  * @param index - Index of request ID
185818
185820
  * @returns True if enriched successfully, false if skipped, throws error if failed
185819
185821
  */
185820
- declare function enrichPrivacyRequest(sombra: Got, {
185822
+ declare function enrichPrivacyRequest(sombra: Pick<Got, 'post'>, {
185821
185823
  id: rawId,
185822
185824
  ...rest
185823
185825
  }: EnrichPrivacyRequest, enricherId: string, index?: number): Promise<boolean>;