@transcend-io/cli 8.23.1 → 8.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +69 -0
  2. package/dist/bin/bash-complete.cjs +1 -1
  3. package/dist/bin/cli.cjs +1 -1
  4. package/dist/bin/deprecated-command.cjs +2 -2
  5. package/dist/{chunk-KRLXEFCL.cjs → chunk-AOO3U7W3.cjs} +3 -3
  6. package/dist/{chunk-KRLXEFCL.cjs.map → chunk-AOO3U7W3.cjs.map} +1 -1
  7. package/dist/{chunk-CUUCCUX2.cjs → chunk-KKAJPI6O.cjs} +172 -168
  8. package/dist/chunk-KKAJPI6O.cjs.map +1 -0
  9. package/dist/{chunk-RZGR6ZFP.cjs → chunk-MWZABOIC.cjs} +25 -20
  10. package/dist/chunk-MWZABOIC.cjs.map +1 -0
  11. package/dist/{chunk-HVH5FPKY.cjs → chunk-NA6JTKNJ.cjs} +2 -2
  12. package/dist/{chunk-HVH5FPKY.cjs.map → chunk-NA6JTKNJ.cjs.map} +1 -1
  13. package/dist/{chunk-MSIMMKMG.cjs → chunk-NNHHVBQP.cjs} +4 -4
  14. package/dist/{chunk-MSIMMKMG.cjs.map → chunk-NNHHVBQP.cjs.map} +1 -1
  15. package/dist/{chunk-GGCTM7EC.cjs → chunk-O3EACWMC.cjs} +2 -2
  16. package/dist/{chunk-GGCTM7EC.cjs.map → chunk-O3EACWMC.cjs.map} +1 -1
  17. package/dist/{chunk-GPBUTESM.cjs → chunk-T5QZTOZC.cjs} +2 -2
  18. package/dist/{chunk-GPBUTESM.cjs.map → chunk-T5QZTOZC.cjs.map} +1 -1
  19. package/dist/{chunk-Y6RWZTI4.cjs → chunk-TRQBFWZP.cjs} +2 -2
  20. package/dist/{chunk-Y6RWZTI4.cjs.map → chunk-TRQBFWZP.cjs.map} +1 -1
  21. package/dist/{chunk-XYI7MMZT.cjs → chunk-VTYBZZQ5.cjs} +2 -2
  22. package/dist/{chunk-XYI7MMZT.cjs.map → chunk-VTYBZZQ5.cjs.map} +1 -1
  23. package/dist/{chunk-P7WCYR3A.cjs → chunk-VY55L6P5.cjs} +2 -2
  24. package/dist/{chunk-P7WCYR3A.cjs.map → chunk-VY55L6P5.cjs.map} +1 -1
  25. package/dist/chunk-WAXPOCXW.cjs +38 -0
  26. package/dist/chunk-WAXPOCXW.cjs.map +1 -0
  27. package/dist/{chunk-ZJRAMRQ6.cjs → chunk-YFF6A56N.cjs} +2 -2
  28. package/dist/{chunk-ZJRAMRQ6.cjs.map → chunk-YFF6A56N.cjs.map} +1 -1
  29. package/dist/{chunk-OZ5HYZX2.cjs → chunk-ZUT7UIQU.cjs} +2 -2
  30. package/dist/{chunk-OZ5HYZX2.cjs.map → chunk-ZUT7UIQU.cjs.map} +1 -1
  31. package/dist/{impl-4HIRQNHI.cjs → impl-2TS5SALN.cjs} +2 -2
  32. package/dist/{impl-4HIRQNHI.cjs.map → impl-2TS5SALN.cjs.map} +1 -1
  33. package/dist/{impl-CKK5XFKE.cjs → impl-2Y7WAQGJ.cjs} +2 -2
  34. package/dist/{impl-CKK5XFKE.cjs.map → impl-2Y7WAQGJ.cjs.map} +1 -1
  35. package/dist/{impl-KQDSAEUI.cjs → impl-2YVWUXEC.cjs} +2 -2
  36. package/dist/{impl-KQDSAEUI.cjs.map → impl-2YVWUXEC.cjs.map} +1 -1
  37. package/dist/{impl-4NCYLWJW.cjs → impl-3PH5TSFY.cjs} +3 -3
  38. package/dist/{impl-4NCYLWJW.cjs.map → impl-3PH5TSFY.cjs.map} +1 -1
  39. package/dist/{impl-NJGWDDJA.cjs → impl-4EEEQLZS.cjs} +3 -3
  40. package/dist/{impl-NJGWDDJA.cjs.map → impl-4EEEQLZS.cjs.map} +1 -1
  41. package/dist/{impl-RELREVJ4.cjs → impl-4RXGRXXS.cjs} +2 -2
  42. package/dist/{impl-RELREVJ4.cjs.map → impl-4RXGRXXS.cjs.map} +1 -1
  43. package/dist/{impl-XN45NETY.cjs → impl-6HWW3LAY.cjs} +2 -2
  44. package/dist/{impl-XN45NETY.cjs.map → impl-6HWW3LAY.cjs.map} +1 -1
  45. package/dist/{impl-XQMSGCCR.cjs → impl-6OZ2ZIVM.cjs} +2 -2
  46. package/dist/{impl-XQMSGCCR.cjs.map → impl-6OZ2ZIVM.cjs.map} +1 -1
  47. package/dist/{impl-OQYDIABO.cjs → impl-7YED2CRU.cjs} +2 -2
  48. package/dist/{impl-OQYDIABO.cjs.map → impl-7YED2CRU.cjs.map} +1 -1
  49. package/dist/{impl-VHHSV2GV.cjs → impl-AKKWJJRW.cjs} +2 -2
  50. package/dist/{impl-VHHSV2GV.cjs.map → impl-AKKWJJRW.cjs.map} +1 -1
  51. package/dist/{impl-2XWBALAH.cjs → impl-CUNZ7YNN.cjs} +2 -2
  52. package/dist/{impl-2XWBALAH.cjs.map → impl-CUNZ7YNN.cjs.map} +1 -1
  53. package/dist/{impl-MX3IWCKH.cjs → impl-DDDGYCKH.cjs} +2 -2
  54. package/dist/{impl-MX3IWCKH.cjs.map → impl-DDDGYCKH.cjs.map} +1 -1
  55. package/dist/{impl-EQDDZYUF.cjs → impl-DJCQNX56.cjs} +2 -2
  56. package/dist/{impl-EQDDZYUF.cjs.map → impl-DJCQNX56.cjs.map} +1 -1
  57. package/dist/{impl-WC6TN2UA.cjs → impl-FGLNPBNN.cjs} +2 -2
  58. package/dist/{impl-WC6TN2UA.cjs.map → impl-FGLNPBNN.cjs.map} +1 -1
  59. package/dist/impl-FO3XHC3T.cjs +2 -0
  60. package/dist/impl-FO3XHC3T.cjs.map +1 -0
  61. package/dist/{impl-OJ6CYOEK.cjs → impl-IBGULX7G.cjs} +2 -2
  62. package/dist/{impl-OJ6CYOEK.cjs.map → impl-IBGULX7G.cjs.map} +1 -1
  63. package/dist/{impl-XNJXNKOA.cjs → impl-IESXEP2S.cjs} +2 -2
  64. package/dist/{impl-XNJXNKOA.cjs.map → impl-IESXEP2S.cjs.map} +1 -1
  65. package/dist/{impl-YGZFTCNK.cjs → impl-IZTOX7X3.cjs} +2 -2
  66. package/dist/{impl-YGZFTCNK.cjs.map → impl-IZTOX7X3.cjs.map} +1 -1
  67. package/dist/{impl-D5WM5SAH.cjs → impl-JIVQZGAO.cjs} +2 -2
  68. package/dist/{impl-D5WM5SAH.cjs.map → impl-JIVQZGAO.cjs.map} +1 -1
  69. package/dist/{impl-QDVKSMY7.cjs → impl-KUZ5CZKZ.cjs} +2 -2
  70. package/dist/{impl-QDVKSMY7.cjs.map → impl-KUZ5CZKZ.cjs.map} +1 -1
  71. package/dist/{impl-J7GQPDGF.cjs → impl-L6F4PTY3.cjs} +2 -2
  72. package/dist/{impl-J7GQPDGF.cjs.map → impl-L6F4PTY3.cjs.map} +1 -1
  73. package/dist/{impl-JYTX7IXT.cjs → impl-MAHW2W43.cjs} +2 -2
  74. package/dist/{impl-JYTX7IXT.cjs.map → impl-MAHW2W43.cjs.map} +1 -1
  75. package/dist/{impl-DCMLHQCC.cjs → impl-MCE7B6NW.cjs} +2 -2
  76. package/dist/{impl-DCMLHQCC.cjs.map → impl-MCE7B6NW.cjs.map} +1 -1
  77. package/dist/{impl-Y5JWK56U.cjs → impl-OCLMWYMP.cjs} +2 -2
  78. package/dist/{impl-Y5JWK56U.cjs.map → impl-OCLMWYMP.cjs.map} +1 -1
  79. package/dist/{impl-QZ3PC4FN.cjs → impl-OOQNMHTX.cjs} +2 -2
  80. package/dist/{impl-QZ3PC4FN.cjs.map → impl-OOQNMHTX.cjs.map} +1 -1
  81. package/dist/{impl-2Z6DENXJ.cjs → impl-OPBD2KMY.cjs} +5 -5
  82. package/dist/{impl-2Z6DENXJ.cjs.map → impl-OPBD2KMY.cjs.map} +1 -1
  83. package/dist/impl-R3RC2YP7.cjs +2 -0
  84. package/dist/{impl-7BGZ5BWT.cjs.map → impl-R3RC2YP7.cjs.map} +1 -1
  85. package/dist/{impl-UBV237P2.cjs → impl-RHAYM5BX.cjs} +4 -4
  86. package/dist/{impl-UBV237P2.cjs.map → impl-RHAYM5BX.cjs.map} +1 -1
  87. package/dist/{impl-PHDAL2KZ.cjs → impl-SMK2SUTD.cjs} +2 -2
  88. package/dist/{impl-PHDAL2KZ.cjs.map → impl-SMK2SUTD.cjs.map} +1 -1
  89. package/dist/{impl-K4253LZW.cjs → impl-TJIMDEBN.cjs} +8 -8
  90. package/dist/{impl-K4253LZW.cjs.map → impl-TJIMDEBN.cjs.map} +1 -1
  91. package/dist/{impl-YIRKVDLY.cjs → impl-TXQ7EFQE.cjs} +2 -2
  92. package/dist/{impl-YIRKVDLY.cjs.map → impl-TXQ7EFQE.cjs.map} +1 -1
  93. package/dist/{impl-GOJPWPSQ.cjs → impl-VKEICKZ7.cjs} +2 -2
  94. package/dist/{impl-GOJPWPSQ.cjs.map → impl-VKEICKZ7.cjs.map} +1 -1
  95. package/dist/{impl-TZM54LOJ.cjs → impl-VMV24ZJH.cjs} +2 -2
  96. package/dist/{impl-TZM54LOJ.cjs.map → impl-VMV24ZJH.cjs.map} +1 -1
  97. package/dist/{impl-7MJUM2GC.cjs → impl-VXHUL55C.cjs} +2 -2
  98. package/dist/{impl-7MJUM2GC.cjs.map → impl-VXHUL55C.cjs.map} +1 -1
  99. package/dist/{impl-NM3DQGYQ.cjs → impl-WIGDO7DS.cjs} +2 -2
  100. package/dist/{impl-NM3DQGYQ.cjs.map → impl-WIGDO7DS.cjs.map} +1 -1
  101. package/dist/impl-WKBZDQYY.cjs +2 -0
  102. package/dist/impl-WKBZDQYY.cjs.map +1 -0
  103. package/dist/{impl-H4KZQFFX.cjs → impl-WLYOQTIL.cjs} +2 -2
  104. package/dist/{impl-H4KZQFFX.cjs.map → impl-WLYOQTIL.cjs.map} +1 -1
  105. package/dist/{impl-MDCSR2NY.cjs → impl-YEXHKEWQ.cjs} +2 -2
  106. package/dist/{impl-MDCSR2NY.cjs.map → impl-YEXHKEWQ.cjs.map} +1 -1
  107. package/dist/{impl-CQHMXRI4.cjs → impl-YHIIZRG6.cjs} +2 -2
  108. package/dist/{impl-CQHMXRI4.cjs.map → impl-YHIIZRG6.cjs.map} +1 -1
  109. package/dist/{impl-EE7GGHZL.cjs → impl-YPKYWIYP.cjs} +2 -2
  110. package/dist/{impl-EE7GGHZL.cjs.map → impl-YPKYWIYP.cjs.map} +1 -1
  111. package/dist/{impl-MDDUW5J6.cjs → impl-ZVMYU6PT.cjs} +2 -2
  112. package/dist/{impl-MDDUW5J6.cjs.map → impl-ZVMYU6PT.cjs.map} +1 -1
  113. package/dist/index.cjs +3 -3
  114. package/dist/index.cjs.map +1 -1
  115. package/dist/index.d.cts +77 -2
  116. package/package.json +2 -1
  117. package/dist/chunk-CUUCCUX2.cjs.map +0 -1
  118. package/dist/chunk-RZGR6ZFP.cjs.map +0 -1
  119. package/dist/impl-7BGZ5BWT.cjs +0 -2
  120. package/dist/impl-XJQYOQHI.cjs +0 -38
  121. package/dist/impl-XJQYOQHI.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-GPBUTESM.cjs","../src/lib/consent-manager/dataFlowsToDataSilos.ts"],"names":["dataFlowsToDataSilos","inputs","adTechPurposes","serviceToTitle","serviceToSupportedIntegration","siteTechIntegrations","adTechIntegrations","serviceToFoundOnDomain","flow","service","attributes","foundOnDomain","attr","v","union_default","s","adTechDataSilos"],"mappings":"AAAA,iIAAwC,SCWxBA,CAAAA,CACdC,CAAAA,CACA,CACE,cAAA,CAAAC,CAAAA,CAAiB,CAAC,YAAY,CAAA,CAC9B,cAAA,CAAAC,CAAAA,CACA,6BAAA,CAAAC,CACF,CAAA,CASA,CAEA,IAAIC,CAAAA,CAAiC,CAAC,CAAA,CAGhCC,CAAAA,CAA+B,CAAC,CAAA,CAGhCC,CAAAA,CAAsD,CAAC,CAAA,CAG7DN,CAAAA,CAAO,OAAA,CAASO,CAAAA,EAAS,CAEvB,GAAM,CAAE,OAAA,CAAAC,CAAAA,CAAS,UAAA,CAAAC,CAAAA,CAAa,CAAC,CAAE,CAAA,CAAIF,CAAAA,CACrC,EAAA,CAAI,CAACC,CAAAA,EAAWA,CAAAA,GAAY,iBAAA,CAC1B,MAAA,CAIF,IAAME,CAAAA,CAAgBD,CAAAA,CAAW,IAAA,CAC9BE,CAAAA,EAASA,CAAAA,CAAK,GAAA,GAAQ,iBACzB,CAAA,CAGID,CAAAA,EAAAA,CACGJ,CAAAA,CAAuBE,CAAO,CAAA,EAAA,CACjCF,CAAAA,CAAuBE,CAAO,CAAA,CAAI,CAAC,CAAA,CAAA,CAErCF,CAAAA,CAAuBE,CAAO,CAAA,CAAG,IAAA,CAC/B,GAAGE,CAAAA,CAAc,MAAA,CAAO,GAAA,CAAKE,CAAAA,EAC3BA,CAAAA,CAAE,OAAA,CAAQ,UAAA,CAAY,EAAE,CAAA,CAAE,OAAA,CAAQ,SAAA,CAAW,EAAE,CACjD,CACF,CAAA,CACAN,CAAAA,CAAuBE,CAAO,CAAA,CAAI,CAChC,GAAG,IAAI,GAAA,CAAIF,CAAAA,CAAuBE,CAAO,CAAC,CAC5C,CAAA,CAAA,CAIEK,iCAAAA,CAAMN,CAAK,gBAAA,CAAkBN,CAAc,CAAA,CAAE,MAAA,CAAS,CAAA,CAAA,CAExDI,CAAAA,CAAmB,IAAA,CAAKG,CAAO,CAAA,CAG3BJ,CAAAA,CAAqB,QAAA,CAASI,CAAO,CAAA,EAAA,CACvCJ,CAAAA,CAAuBA,CAAAA,CAAqB,MAAA,CACzCU,CAAAA,EAAMA,CAAAA,GAAMN,CACf,CAAA,CAAA,CAAA,CAEQH,CAAAA,CAAmB,QAAA,CAASG,CAAO,CAAA,EAE7CJ,CAAAA,CAAqB,IAAA,CAAKI,CAAO,CAErC,CAAC,CAAA,CAGD,IAAMO,CAAAA,CAAkB,CAAC,GAAG,IAAI,GAAA,CAAIV,CAAkB,CAAC,CAAA,CAAE,GAAA,CAAKG,CAAAA,EAAAA,CAAa,CACzE,KAAA,CAAON,CAAAA,CAAeM,CAAO,CAAA,CAC7B,GAAIL,CAAAA,CAA8BK,CAAO,CAAA,CACrC,CAAE,eAAA,CAAiBA,CAAQ,CAAA,CAC3B,CAAE,eAAA,CAAiB,eAAA,CAAiB,YAAA,CAAcA,CAAQ,CAAA,CAC9D,UAAA,CAAY,CACV,CACE,GAAA,CAAK,WAAA,CACL,MAAA,CAAQ,CAAC,SAAS,CACpB,CAAA,CACA,CACE,GAAA,CAAK,iBAAA,CACL,MAAA,CAAQF,CAAAA,CAAuBE,CAAO,CAAA,EAAK,CAAC,CAC9C,CACF,CACF,CAAA,CAAE,CAAA,CAsBF,MAAO,CACL,iBAAA,CApBwB,CAAC,GAAG,IAAI,GAAA,CAAIJ,CAAoB,CAAC,CAAA,CAAE,GAAA,CAC1DI,CAAAA,EAAAA,CAAa,CACZ,KAAA,CAAON,CAAAA,CAAeM,CAAO,CAAA,CAC7B,GAAIL,CAAAA,CAA8BK,CAAO,CAAA,CACrC,CAAE,eAAA,CAAiBA,CAAQ,CAAA,CAC3B,CAAE,eAAA,CAAiB,eAAA,CAAiB,SAAA,CAAWA,CAAQ,CAAA,CAC3D,UAAA,CAAY,CACV,CACE,GAAA,CAAK,WAAA,CACL,MAAA,CAAQ,CAAC,WAAW,CACtB,CAAA,CACA,CACE,GAAA,CAAK,iBAAA,CACL,MAAA,CAAQF,CAAAA,CAAuBE,CAAO,CAAA,EAAK,CAAC,CAC9C,CACF,CACF,CAAA,CACF,CAAA,CAIE,eAAA,CAAAO,CACF,CACF,CAAA,cAAA","file":"/home/runner/work/cli/cli/dist/chunk-GPBUTESM.cjs","sourcesContent":[null,"import { DataFlowInput, DataSiloInput } from '../../codecs';\nimport { union } from 'lodash-es';\nimport { IndexedCatalogs } from '../graphql';\n\n/**\n * Convert data flow configurations into a set of data silo configurations\n *\n * @param inputs - Data flow input to convert to data silos\n * @param options - Additional options\n * @returns Business entity configuration input\n */\nexport function dataFlowsToDataSilos(\n inputs: DataFlowInput[],\n {\n adTechPurposes = ['SaleOfInfo'],\n serviceToTitle,\n serviceToSupportedIntegration,\n }: IndexedCatalogs & {\n /** List of purposes that are considered \"Ad Tech\" */\n adTechPurposes?: string[];\n },\n): {\n /** List of data silo configurations for site-tech services */\n siteTechDataSilos: DataSiloInput[];\n /** List of data silo configurations for ad-tech services */\n adTechDataSilos: DataSiloInput[];\n} {\n // List of site tech integrations\n let siteTechIntegrations: string[] = [];\n\n // List of ad tech integrations\n const adTechIntegrations: string[] = [];\n\n // Mapping from service name to list of\n const serviceToFoundOnDomain: { [k in string]: string[] } = {};\n\n // iterate over each flow\n inputs.forEach((flow) => {\n // process data flows with services\n const { service, attributes = [] } = flow;\n if (!service || service === 'internalService') {\n return;\n }\n\n // create mapping to found on domain\n const foundOnDomain = attributes.find(\n (attr) => attr.key === 'Found on Domain',\n );\n\n // Create a list of all domains where the data flow was found\n if (foundOnDomain) {\n if (!serviceToFoundOnDomain[service]) {\n serviceToFoundOnDomain[service] = [];\n }\n serviceToFoundOnDomain[service]!.push(\n ...foundOnDomain.values.map((v) =>\n v.replace('https://', '').replace('http://', ''),\n ),\n );\n serviceToFoundOnDomain[service] = [\n ...new Set(serviceToFoundOnDomain[service]),\n ];\n }\n\n // Keep track of ad tech\n if (union(flow.trackingPurposes, adTechPurposes).length > 0) {\n // add service to ad tech list\n adTechIntegrations.push(service);\n\n // remove from site tech list\n if (siteTechIntegrations.includes(service)) {\n siteTechIntegrations = siteTechIntegrations.filter(\n (s) => s !== service,\n );\n }\n } else if (!adTechIntegrations.includes(service)) {\n // add to site tech list\n siteTechIntegrations.push(service);\n }\n });\n\n // create the list of ad tech integrations\n const adTechDataSilos = [...new Set(adTechIntegrations)].map((service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', 'outer-type': service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Ad Tech'],\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }));\n\n // create the list of site tech integrations\n const siteTechDataSilos = [...new Set(siteTechIntegrations)].map(\n (service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', outerType: service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Site Tech'],\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }),\n );\n\n return {\n siteTechDataSilos,\n adTechDataSilos,\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-T5QZTOZC.cjs","../src/lib/consent-manager/dataFlowsToDataSilos.ts"],"names":["dataFlowsToDataSilos","inputs","adTechPurposes","serviceToTitle","serviceToSupportedIntegration","siteTechIntegrations","adTechIntegrations","serviceToFoundOnDomain","flow","service","attributes","foundOnDomain","attr","v","union_default","s","adTechDataSilos"],"mappings":"AAAA,iIAAwC,SCWxBA,CAAAA,CACdC,CAAAA,CACA,CACE,cAAA,CAAAC,CAAAA,CAAiB,CAAC,YAAY,CAAA,CAC9B,cAAA,CAAAC,CAAAA,CACA,6BAAA,CAAAC,CACF,CAAA,CASA,CAEA,IAAIC,CAAAA,CAAiC,CAAC,CAAA,CAGhCC,CAAAA,CAA+B,CAAC,CAAA,CAGhCC,CAAAA,CAAsD,CAAC,CAAA,CAG7DN,CAAAA,CAAO,OAAA,CAASO,CAAAA,EAAS,CAEvB,GAAM,CAAE,OAAA,CAAAC,CAAAA,CAAS,UAAA,CAAAC,CAAAA,CAAa,CAAC,CAAE,CAAA,CAAIF,CAAAA,CACrC,EAAA,CAAI,CAACC,CAAAA,EAAWA,CAAAA,GAAY,iBAAA,CAC1B,MAAA,CAIF,IAAME,CAAAA,CAAgBD,CAAAA,CAAW,IAAA,CAC9BE,CAAAA,EAASA,CAAAA,CAAK,GAAA,GAAQ,iBACzB,CAAA,CAGID,CAAAA,EAAAA,CACGJ,CAAAA,CAAuBE,CAAO,CAAA,EAAA,CACjCF,CAAAA,CAAuBE,CAAO,CAAA,CAAI,CAAC,CAAA,CAAA,CAErCF,CAAAA,CAAuBE,CAAO,CAAA,CAAG,IAAA,CAC/B,GAAGE,CAAAA,CAAc,MAAA,CAAO,GAAA,CAAKE,CAAAA,EAC3BA,CAAAA,CAAE,OAAA,CAAQ,UAAA,CAAY,EAAE,CAAA,CAAE,OAAA,CAAQ,SAAA,CAAW,EAAE,CACjD,CACF,CAAA,CACAN,CAAAA,CAAuBE,CAAO,CAAA,CAAI,CAChC,GAAG,IAAI,GAAA,CAAIF,CAAAA,CAAuBE,CAAO,CAAC,CAC5C,CAAA,CAAA,CAIEK,iCAAAA,CAAMN,CAAK,gBAAA,CAAkBN,CAAc,CAAA,CAAE,MAAA,CAAS,CAAA,CAAA,CAExDI,CAAAA,CAAmB,IAAA,CAAKG,CAAO,CAAA,CAG3BJ,CAAAA,CAAqB,QAAA,CAASI,CAAO,CAAA,EAAA,CACvCJ,CAAAA,CAAuBA,CAAAA,CAAqB,MAAA,CACzCU,CAAAA,EAAMA,CAAAA,GAAMN,CACf,CAAA,CAAA,CAAA,CAEQH,CAAAA,CAAmB,QAAA,CAASG,CAAO,CAAA,EAE7CJ,CAAAA,CAAqB,IAAA,CAAKI,CAAO,CAErC,CAAC,CAAA,CAGD,IAAMO,CAAAA,CAAkB,CAAC,GAAG,IAAI,GAAA,CAAIV,CAAkB,CAAC,CAAA,CAAE,GAAA,CAAKG,CAAAA,EAAAA,CAAa,CACzE,KAAA,CAAON,CAAAA,CAAeM,CAAO,CAAA,CAC7B,GAAIL,CAAAA,CAA8BK,CAAO,CAAA,CACrC,CAAE,eAAA,CAAiBA,CAAQ,CAAA,CAC3B,CAAE,eAAA,CAAiB,eAAA,CAAiB,YAAA,CAAcA,CAAQ,CAAA,CAC9D,UAAA,CAAY,CACV,CACE,GAAA,CAAK,WAAA,CACL,MAAA,CAAQ,CAAC,SAAS,CACpB,CAAA,CACA,CACE,GAAA,CAAK,iBAAA,CACL,MAAA,CAAQF,CAAAA,CAAuBE,CAAO,CAAA,EAAK,CAAC,CAC9C,CACF,CACF,CAAA,CAAE,CAAA,CAsBF,MAAO,CACL,iBAAA,CApBwB,CAAC,GAAG,IAAI,GAAA,CAAIJ,CAAoB,CAAC,CAAA,CAAE,GAAA,CAC1DI,CAAAA,EAAAA,CAAa,CACZ,KAAA,CAAON,CAAAA,CAAeM,CAAO,CAAA,CAC7B,GAAIL,CAAAA,CAA8BK,CAAO,CAAA,CACrC,CAAE,eAAA,CAAiBA,CAAQ,CAAA,CAC3B,CAAE,eAAA,CAAiB,eAAA,CAAiB,SAAA,CAAWA,CAAQ,CAAA,CAC3D,UAAA,CAAY,CACV,CACE,GAAA,CAAK,WAAA,CACL,MAAA,CAAQ,CAAC,WAAW,CACtB,CAAA,CACA,CACE,GAAA,CAAK,iBAAA,CACL,MAAA,CAAQF,CAAAA,CAAuBE,CAAO,CAAA,EAAK,CAAC,CAC9C,CACF,CACF,CAAA,CACF,CAAA,CAIE,eAAA,CAAAO,CACF,CACF,CAAA,cAAA","file":"/home/runner/work/cli/cli/dist/chunk-T5QZTOZC.cjs","sourcesContent":[null,"import { DataFlowInput, DataSiloInput } from '../../codecs';\nimport { union } from 'lodash-es';\nimport { IndexedCatalogs } from '../graphql';\n\n/**\n * Convert data flow configurations into a set of data silo configurations\n *\n * @param inputs - Data flow input to convert to data silos\n * @param options - Additional options\n * @returns Business entity configuration input\n */\nexport function dataFlowsToDataSilos(\n inputs: DataFlowInput[],\n {\n adTechPurposes = ['SaleOfInfo'],\n serviceToTitle,\n serviceToSupportedIntegration,\n }: IndexedCatalogs & {\n /** List of purposes that are considered \"Ad Tech\" */\n adTechPurposes?: string[];\n },\n): {\n /** List of data silo configurations for site-tech services */\n siteTechDataSilos: DataSiloInput[];\n /** List of data silo configurations for ad-tech services */\n adTechDataSilos: DataSiloInput[];\n} {\n // List of site tech integrations\n let siteTechIntegrations: string[] = [];\n\n // List of ad tech integrations\n const adTechIntegrations: string[] = [];\n\n // Mapping from service name to list of\n const serviceToFoundOnDomain: { [k in string]: string[] } = {};\n\n // iterate over each flow\n inputs.forEach((flow) => {\n // process data flows with services\n const { service, attributes = [] } = flow;\n if (!service || service === 'internalService') {\n return;\n }\n\n // create mapping to found on domain\n const foundOnDomain = attributes.find(\n (attr) => attr.key === 'Found on Domain',\n );\n\n // Create a list of all domains where the data flow was found\n if (foundOnDomain) {\n if (!serviceToFoundOnDomain[service]) {\n serviceToFoundOnDomain[service] = [];\n }\n serviceToFoundOnDomain[service]!.push(\n ...foundOnDomain.values.map((v) =>\n v.replace('https://', '').replace('http://', ''),\n ),\n );\n serviceToFoundOnDomain[service] = [\n ...new Set(serviceToFoundOnDomain[service]),\n ];\n }\n\n // Keep track of ad tech\n if (union(flow.trackingPurposes, adTechPurposes).length > 0) {\n // add service to ad tech list\n adTechIntegrations.push(service);\n\n // remove from site tech list\n if (siteTechIntegrations.includes(service)) {\n siteTechIntegrations = siteTechIntegrations.filter(\n (s) => s !== service,\n );\n }\n } else if (!adTechIntegrations.includes(service)) {\n // add to site tech list\n siteTechIntegrations.push(service);\n }\n });\n\n // create the list of ad tech integrations\n const adTechDataSilos = [...new Set(adTechIntegrations)].map((service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', 'outer-type': service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Ad Tech'],\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }));\n\n // create the list of site tech integrations\n const siteTechDataSilos = [...new Set(siteTechIntegrations)].map(\n (service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', outerType: service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Site Tech'],\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }),\n );\n\n return {\n siteTechDataSilos,\n adTechDataSilos,\n };\n}\n"]}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkLR3CPNDMcjs = require('./chunk-LR3CPNDM.cjs');var _chunkCUUCCUX2cjs = require('./chunk-CUUCCUX2.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkP7WCYR3Acjs = require('./chunk-P7WCYR3A.cjs');var _privacytypes = require('@transcend-io/privacy-types');var _bluebird = require('bluebird');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);async function te({file:u,auth:s,sombraAuth:g,requestActions:f=[],concurrency:p=100,transcendUrl:n=_chunkP7WCYR3Acjs.r}){let o=_chunkCUUCCUX2cjs.wc.call(void 0, n,s),e=await _chunkCUUCCUX2cjs.xc.call(void 0, n,s,g);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Pulling manual enrichment requests, filtered for actions: ${f.join(",")}`));let d=await _chunkCUUCCUX2cjs.nd.call(void 0, o,{actions:f,statuses:[_privacytypes.RequestStatus.Enriching]}),i=[];await _bluebird.map.call(void 0, d,async t=>{let c=await _chunkCUUCCUX2cjs.hd.call(void 0, o,{requestId:t.id});if(c.filter(({status:m})=>m==="ACTION_REQUIRED")){let m=await _chunkCUUCCUX2cjs.kd.call(void 0, o,e,{requestId:t.id});i.push({...t,requestIdentifiers:m,requestEnrichers:c})}},{concurrency:p});let l=i.map(({attributeValues:t,requestIdentifiers:c,requestEnrichers:I,...m})=>({...m,...Object.entries(_chunkP7WCYR3Acjs.d.call(void 0, c,"name")).reduce((w,[P,$])=>Object.assign(w,{[P]:$.map(({value:C})=>C).join(",")}),{}),...Object.entries(_chunkP7WCYR3Acjs.d.call(void 0, t,"attributeKey.name")).reduce((w,[P,$])=>Object.assign(w,{[P]:$.map(({name:C})=>C).join(",")}),{})})),a=_chunkP7WCYR3Acjs.j.call(void 0, l.map(t=>Object.keys(t)).flat());return _chunkLR3CPNDMcjs.c.call(void 0, u,l,a),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${i.length} requests to file "${u}"`)),i}var _iots = require('io-ts'); var R = _interopRequireWildcard(_iots);var T="https://app.transcend.io/privacy-requests/incoming-requests/",F= exports.b =R.record(R.string,R.string);async function M(u,{id:s,...g},f,p){if(!s){let e=`Request ID must be provided to enricher request.${p?` Found error in row: ${p}`:""}`;throw _chunkZUNVPK23cjs.a.error(_colors2.default.red(e)),new Error(e)}let n=s.toLowerCase(),o=Object.entries(g).reduce((e,[d,i])=>_chunkP7WCYR3Acjs.j.call(void 0, _chunkCUUCCUX2cjs.oc.call(void 0, i)).length===0?e:Object.assign(e,{[d]:_chunkP7WCYR3Acjs.j.call(void 0, _chunkCUUCCUX2cjs.oc.call(void 0, i)).map(a=>({value:d==="email"?a.toLowerCase():a}))}),{});try{return await u.post("v1/enrich-identifiers",{headers:{"x-transcend-request-id":n,"x-transcend-enricher-id":f},json:{enrichedIdentifiers:o}}).json(),_chunkZUNVPK23cjs.a.error(_colors2.default.green(`Successfully enriched request: ${T}${n}`)),!0}catch(e){if(typeof e.response.body=="string"&&e.response.body.includes("Cannot update a resolved RequestEnricher"))return _chunkZUNVPK23cjs.a.warn(_colors2.default.magenta(`Skipped enrichment for request: ${T}${n}, request is no longer in the enriching phase.`)),!1;throw _chunkZUNVPK23cjs.a.error(_colors2.default.red(`Failed to enricher identifiers for request with id: ${T}${n} - ${e.message} - ${e.response.body}`)),e}}async function ge({file:u,auth:s,sombraAuth:g,enricherId:f,markSilent:p,concurrency:n=100,transcendUrl:o=_chunkP7WCYR3Acjs.r}){let e=await _chunkCUUCCUX2cjs.xc.call(void 0, o,s,g),d=_chunkCUUCCUX2cjs.wc.call(void 0, o,s);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Reading "${u}" from disk`));let i=_chunkCUUCCUX2cjs.rc.call(void 0, u,F);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Enriching "${i.length}" privacy requests.`));let l=0,a=0,t=0;if(await _bluebird.map.call(void 0, i,async(c,I)=>{try{p&&(await _chunkCUUCCUX2cjs.bg.call(void 0, d,_chunkCUUCCUX2cjs.Z,{input:{id:c.id,isSilent:!0}}),_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Mark request as silent mode - ${c.id}`))),await M(e,c,f,I)?l+=1:a+=1}catch (e2){t+=1}},{concurrency:n}),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully notified Transcend!
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkLR3CPNDMcjs = require('./chunk-LR3CPNDM.cjs');var _chunkKKAJPI6Ocjs = require('./chunk-KKAJPI6O.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkVY55L6P5cjs = require('./chunk-VY55L6P5.cjs');var _privacytypes = require('@transcend-io/privacy-types');var _bluebird = require('bluebird');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);async function te({file:u,auth:s,sombraAuth:g,requestActions:f=[],concurrency:p=100,transcendUrl:n=_chunkVY55L6P5cjs.r}){let o=_chunkKKAJPI6Ocjs.wc.call(void 0, n,s),e=await _chunkKKAJPI6Ocjs.xc.call(void 0, n,s,g);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Pulling manual enrichment requests, filtered for actions: ${f.join(",")}`));let d=await _chunkKKAJPI6Ocjs.nd.call(void 0, o,{actions:f,statuses:[_privacytypes.RequestStatus.Enriching]}),i=[];await _bluebird.map.call(void 0, d,async t=>{let c=await _chunkKKAJPI6Ocjs.hd.call(void 0, o,{requestId:t.id});if(c.filter(({status:m})=>m==="ACTION_REQUIRED")){let m=await _chunkKKAJPI6Ocjs.kd.call(void 0, o,e,{requestId:t.id});i.push({...t,requestIdentifiers:m,requestEnrichers:c})}},{concurrency:p});let l=i.map(({attributeValues:t,requestIdentifiers:c,requestEnrichers:I,...m})=>({...m,...Object.entries(_chunkVY55L6P5cjs.d.call(void 0, c,"name")).reduce((w,[P,$])=>Object.assign(w,{[P]:$.map(({value:C})=>C).join(",")}),{}),...Object.entries(_chunkVY55L6P5cjs.d.call(void 0, t,"attributeKey.name")).reduce((w,[P,$])=>Object.assign(w,{[P]:$.map(({name:C})=>C).join(",")}),{})})),a=_chunkVY55L6P5cjs.j.call(void 0, l.map(t=>Object.keys(t)).flat());return _chunkLR3CPNDMcjs.c.call(void 0, u,l,a),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${i.length} requests to file "${u}"`)),i}var _iots = require('io-ts'); var R = _interopRequireWildcard(_iots);var T="https://app.transcend.io/privacy-requests/incoming-requests/",F= exports.b =R.record(R.string,R.string);async function M(u,{id:s,...g},f,p){if(!s){let e=`Request ID must be provided to enricher request.${p?` Found error in row: ${p}`:""}`;throw _chunkZUNVPK23cjs.a.error(_colors2.default.red(e)),new Error(e)}let n=s.toLowerCase(),o=Object.entries(g).reduce((e,[d,i])=>_chunkVY55L6P5cjs.j.call(void 0, _chunkKKAJPI6Ocjs.oc.call(void 0, i)).length===0?e:Object.assign(e,{[d]:_chunkVY55L6P5cjs.j.call(void 0, _chunkKKAJPI6Ocjs.oc.call(void 0, i)).map(a=>({value:d==="email"?a.toLowerCase():a}))}),{});try{return await u.post("v1/enrich-identifiers",{headers:{"x-transcend-request-id":n,"x-transcend-enricher-id":f},json:{enrichedIdentifiers:o}}).json(),_chunkZUNVPK23cjs.a.error(_colors2.default.green(`Successfully enriched request: ${T}${n}`)),!0}catch(e){if(typeof e.response.body=="string"&&e.response.body.includes("Cannot update a resolved RequestEnricher"))return _chunkZUNVPK23cjs.a.warn(_colors2.default.magenta(`Skipped enrichment for request: ${T}${n}, request is no longer in the enriching phase.`)),!1;throw _chunkZUNVPK23cjs.a.error(_colors2.default.red(`Failed to enricher identifiers for request with id: ${T}${n} - ${e.message} - ${e.response.body}`)),e}}async function ge({file:u,auth:s,sombraAuth:g,enricherId:f,markSilent:p,concurrency:n=100,transcendUrl:o=_chunkVY55L6P5cjs.r}){let e=await _chunkKKAJPI6Ocjs.xc.call(void 0, o,s,g),d=_chunkKKAJPI6Ocjs.wc.call(void 0, o,s);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Reading "${u}" from disk`));let i=_chunkKKAJPI6Ocjs.rc.call(void 0, u,F);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Enriching "${i.length}" privacy requests.`));let l=0,a=0,t=0;if(await _bluebird.map.call(void 0, i,async(c,I)=>{try{p&&(await _chunkKKAJPI6Ocjs.dg.call(void 0, d,_chunkKKAJPI6Ocjs.Z,{input:{id:c.id,isSilent:!0}}),_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Mark request as silent mode - ${c.id}`))),await M(e,c,f,I)?l+=1:a+=1}catch (e2){t+=1}},{concurrency:n}),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully notified Transcend!
2
2
  Success count: ${l}.`)),a>0&&_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Skipped count: ${a}.`)),t>0)throw _chunkZUNVPK23cjs.a.info(_colors2.default.red(`Error Count: ${t}.`)),new Error(`Failed to enrich: ${t} requests.`);return i.length}exports.a = te; exports.b = F; exports.c = M; exports.d = ge;
3
- //# sourceMappingURL=chunk-Y6RWZTI4.cjs.map
3
+ //# sourceMappingURL=chunk-TRQBFWZP.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-Y6RWZTI4.cjs","../src/lib/manual-enrichment/pullManualEnrichmentIdentifiersToCsv.ts","../src/lib/manual-enrichment/pushManualEnrichmentIdentifiersFromCsv.ts"],"names":["pullManualEnrichmentIdentifiersToCsv","file","auth","sombraAuth","requestActions","concurrency","transcendUrl","DEFAULT_TRANSCEND_API","client","buildTranscendGraphQLClient","sombra","createSombraGotInstance","logger","colors"],"mappings":"AAAA,mfAAwC,wDAAyG,wDAAyC,wDAAuD,2DCApM,oCACzB,gFACD,MA6BnB,SAAsBA,EAAAA,CAAqC,CACzD,IAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CAAiB,CAAC,CAAA,CAClB,WAAA,CAAAC,CAAAA,CAAc,GAAA,CACd,YAAA,CAAAC,CAAAA,CAAeC,mBACjB,CAAA,CAa6C,CAE3C,IAAMC,CAAAA,CAASC,kCAAAA,CAA4BH,CAAcJ,CAAI,CAAA,CACvDQ,CAAAA,CAAS,MAAMC,kCAAAA,CAAwBL,CAAcJ,CAAAA,CAAMC,CAAU,CAAA,CAE3ES,mBAAAA,CAAO,IAAA,CACLC,gBAAAA,CAAO,OAAA,CACL,CAAA,0DAAA,EAA6DT,CAAAA,CAAe,IAAA,CAC1E,GACF,CAAC,CAAA,CAAA;ACuDP,gBAAA","file":"/home/runner/work/cli/cli/dist/chunk-Y6RWZTI4.cjs","sourcesContent":[null,"import { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\nimport { map } from 'bluebird';\nimport colors from 'colors';\nimport { groupBy, uniq } from 'lodash-es';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\nimport { writeCsv } from '../cron/writeCsv';\nimport {\n PrivacyRequest,\n RequestEnricher,\n RequestIdentifier,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n fetchAllRequestEnrichers,\n fetchAllRequestIdentifiers,\n fetchAllRequests,\n} from '../graphql';\nimport { logger } from '../../logger';\n\nexport interface PrivacyRequestWithIdentifiers extends PrivacyRequest {\n /** Request Enrichers */\n requestEnrichers: RequestEnricher[];\n /** Request Identifiers */\n requestIdentifiers: RequestIdentifier[];\n}\n\n/**\n * Pull the set of manual enrichment jobs to CSV\n *\n * @param options - Options\n * @returns List of requests with identifiers\n */\nexport async function pullManualEnrichmentIdentifiersToCsv({\n file,\n auth,\n sombraAuth,\n requestActions = [],\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** Sombra API key */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** The request actions to fetch */\n requestActions?: RequestAction[];\n /** API URL for Transcend backend */\n transcendUrl?: string;\n}): Promise<PrivacyRequestWithIdentifiers[]> {\n // Find all requests made before createdAt that are in a removing data state\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n\n logger.info(\n colors.magenta(\n `Pulling manual enrichment requests, filtered for actions: ${requestActions.join(\n ',',\n )}`,\n ),\n );\n\n // Pull all privacy requests\n const allRequests = await fetchAllRequests(client, {\n actions: requestActions,\n statuses: [RequestStatus.Enriching],\n });\n\n // Requests to save\n const savedRequests: PrivacyRequestWithIdentifiers[] = [];\n\n // Filter down requests to what is needed\n await map(\n allRequests,\n async (request) => {\n // Fetch enrichers\n const requestEnrichers = await fetchAllRequestEnrichers(client, {\n requestId: request.id,\n });\n\n // Check if manual enrichment exists for that request\n const hasManualEnrichment = requestEnrichers.filter(\n ({ status }) => status === 'ACTION_REQUIRED',\n );\n\n // Save request to queue\n if (hasManualEnrichment) {\n const requestIdentifiers = await fetchAllRequestIdentifiers(\n client,\n sombra,\n {\n requestId: request.id,\n },\n );\n savedRequests.push({\n ...request,\n requestIdentifiers,\n requestEnrichers,\n });\n }\n },\n {\n concurrency,\n },\n );\n\n const data = savedRequests.map(\n ({\n attributeValues,\n requestIdentifiers,\n requestEnrichers, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...request\n }) => ({\n ...request,\n // flatten identifiers\n ...Object.entries(groupBy(requestIdentifiers, 'name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ value }) => value).join(','),\n }),\n {},\n ),\n // flatten attributes\n ...Object.entries(groupBy(attributeValues, 'attributeKey.name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ name }) => name).join(','),\n }),\n {},\n ),\n }),\n );\n\n // Write out to CSV\n const headers = uniq(data.map((d) => Object.keys(d)).flat());\n writeCsv(file, data, headers);\n\n logger.info(\n colors.green(\n `Successfully wrote ${savedRequests.length} requests to file \"${file}\"`,\n ),\n );\n\n return savedRequests;\n}\n","import colors from 'colors';\nimport { map } from 'bluebird';\nimport { logger } from '../../logger';\nimport {\n UPDATE_PRIVACY_REQUEST,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n makeGraphQLRequest,\n} from '../graphql';\nimport {\n enrichPrivacyRequest,\n EnrichPrivacyRequest,\n} from './enrichPrivacyRequest';\nimport { readCsv } from '../requests';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\n\n/**\n * Push a CSV of enriched requests back into Transcend\n *\n * @param options - Options\n * @returns Number of items processed\n */\nexport async function pushManualEnrichmentIdentifiersFromCsv({\n file,\n auth,\n sombraAuth,\n enricherId,\n markSilent,\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** ID of enricher being uploaded to */\n enricherId: string;\n /** Sombra API key authentication */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** API URL for Transcend backend */\n transcendUrl?: string;\n /** Mark requests in silent mode before enriching */\n markSilent?: boolean;\n}): Promise<number> {\n // Create sombra instance to communicate with\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n // Read from CSV\n logger.info(colors.magenta(`Reading \"${file}\" from disk`));\n const activeResults = readCsv(file, EnrichPrivacyRequest);\n\n // Notify Transcend\n logger.info(\n colors.magenta(`Enriching \"${activeResults.length}\" privacy requests.`),\n );\n\n let successCount = 0;\n let skippedCount = 0;\n let errorCount = 0;\n\n await map(\n activeResults,\n async (request, index) => {\n try {\n // Mark requests in silent mode before a certain date\n if (markSilent) {\n await makeGraphQLRequest(client, UPDATE_PRIVACY_REQUEST, {\n input: {\n id: request.id,\n isSilent: true,\n },\n });\n\n logger.info(\n colors.magenta(`Mark request as silent mode - ${request.id}`),\n );\n }\n\n const result = await enrichPrivacyRequest(\n sombra,\n request,\n enricherId,\n index,\n );\n if (result) {\n successCount += 1;\n } else {\n skippedCount += 1;\n }\n } catch (err) {\n errorCount += 1;\n }\n },\n { concurrency },\n );\n\n logger.info(\n colors.green(\n `Successfully notified Transcend! \\n Success count: ${successCount}.`,\n ),\n );\n\n if (skippedCount > 0) {\n logger.info(colors.magenta(`Skipped count: ${skippedCount}.`));\n }\n\n if (errorCount > 0) {\n logger.info(colors.red(`Error Count: ${errorCount}.`));\n throw new Error(`Failed to enrich: ${errorCount} requests.`);\n }\n\n return activeResults.length;\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-TRQBFWZP.cjs","../src/lib/manual-enrichment/pullManualEnrichmentIdentifiersToCsv.ts","../src/lib/manual-enrichment/pushManualEnrichmentIdentifiersFromCsv.ts"],"names":["pullManualEnrichmentIdentifiersToCsv","file","auth","sombraAuth","requestActions","concurrency","transcendUrl","DEFAULT_TRANSCEND_API","client","buildTranscendGraphQLClient","sombra","createSombraGotInstance","logger","colors"],"mappings":"AAAA,mfAAwC,wDAAyG,wDAAyC,wDAAuD,2DCApM,oCACzB,gFACD,MA6BnB,SAAsBA,EAAAA,CAAqC,CACzD,IAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CAAiB,CAAC,CAAA,CAClB,WAAA,CAAAC,CAAAA,CAAc,GAAA,CACd,YAAA,CAAAC,CAAAA,CAAeC,mBACjB,CAAA,CAa6C,CAE3C,IAAMC,CAAAA,CAASC,kCAAAA,CAA4BH,CAAcJ,CAAI,CAAA,CACvDQ,CAAAA,CAAS,MAAMC,kCAAAA,CAAwBL,CAAcJ,CAAAA,CAAMC,CAAU,CAAA,CAE3ES,mBAAAA,CAAO,IAAA,CACLC,gBAAAA,CAAO,OAAA,CACL,CAAA,0DAAA,EAA6DT,CAAAA,CAAe,IAAA,CAC1E,GACF,CAAC,CAAA,CAAA;ACuDP,gBAAA","file":"/home/runner/work/cli/cli/dist/chunk-TRQBFWZP.cjs","sourcesContent":[null,"import { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\nimport { map } from 'bluebird';\nimport colors from 'colors';\nimport { groupBy, uniq } from 'lodash-es';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\nimport { writeCsv } from '../cron/writeCsv';\nimport {\n PrivacyRequest,\n RequestEnricher,\n RequestIdentifier,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n fetchAllRequestEnrichers,\n fetchAllRequestIdentifiers,\n fetchAllRequests,\n} from '../graphql';\nimport { logger } from '../../logger';\n\nexport interface PrivacyRequestWithIdentifiers extends PrivacyRequest {\n /** Request Enrichers */\n requestEnrichers: RequestEnricher[];\n /** Request Identifiers */\n requestIdentifiers: RequestIdentifier[];\n}\n\n/**\n * Pull the set of manual enrichment jobs to CSV\n *\n * @param options - Options\n * @returns List of requests with identifiers\n */\nexport async function pullManualEnrichmentIdentifiersToCsv({\n file,\n auth,\n sombraAuth,\n requestActions = [],\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** Sombra API key */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** The request actions to fetch */\n requestActions?: RequestAction[];\n /** API URL for Transcend backend */\n transcendUrl?: string;\n}): Promise<PrivacyRequestWithIdentifiers[]> {\n // Find all requests made before createdAt that are in a removing data state\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n\n logger.info(\n colors.magenta(\n `Pulling manual enrichment requests, filtered for actions: ${requestActions.join(\n ',',\n )}`,\n ),\n );\n\n // Pull all privacy requests\n const allRequests = await fetchAllRequests(client, {\n actions: requestActions,\n statuses: [RequestStatus.Enriching],\n });\n\n // Requests to save\n const savedRequests: PrivacyRequestWithIdentifiers[] = [];\n\n // Filter down requests to what is needed\n await map(\n allRequests,\n async (request) => {\n // Fetch enrichers\n const requestEnrichers = await fetchAllRequestEnrichers(client, {\n requestId: request.id,\n });\n\n // Check if manual enrichment exists for that request\n const hasManualEnrichment = requestEnrichers.filter(\n ({ status }) => status === 'ACTION_REQUIRED',\n );\n\n // Save request to queue\n if (hasManualEnrichment) {\n const requestIdentifiers = await fetchAllRequestIdentifiers(\n client,\n sombra,\n {\n requestId: request.id,\n },\n );\n savedRequests.push({\n ...request,\n requestIdentifiers,\n requestEnrichers,\n });\n }\n },\n {\n concurrency,\n },\n );\n\n const data = savedRequests.map(\n ({\n attributeValues,\n requestIdentifiers,\n requestEnrichers, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...request\n }) => ({\n ...request,\n // flatten identifiers\n ...Object.entries(groupBy(requestIdentifiers, 'name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ value }) => value).join(','),\n }),\n {},\n ),\n // flatten attributes\n ...Object.entries(groupBy(attributeValues, 'attributeKey.name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ name }) => name).join(','),\n }),\n {},\n ),\n }),\n );\n\n // Write out to CSV\n const headers = uniq(data.map((d) => Object.keys(d)).flat());\n writeCsv(file, data, headers);\n\n logger.info(\n colors.green(\n `Successfully wrote ${savedRequests.length} requests to file \"${file}\"`,\n ),\n );\n\n return savedRequests;\n}\n","import colors from 'colors';\nimport { map } from 'bluebird';\nimport { logger } from '../../logger';\nimport {\n UPDATE_PRIVACY_REQUEST,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n makeGraphQLRequest,\n} from '../graphql';\nimport {\n enrichPrivacyRequest,\n EnrichPrivacyRequest,\n} from './enrichPrivacyRequest';\nimport { readCsv } from '../requests';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\n\n/**\n * Push a CSV of enriched requests back into Transcend\n *\n * @param options - Options\n * @returns Number of items processed\n */\nexport async function pushManualEnrichmentIdentifiersFromCsv({\n file,\n auth,\n sombraAuth,\n enricherId,\n markSilent,\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** ID of enricher being uploaded to */\n enricherId: string;\n /** Sombra API key authentication */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** API URL for Transcend backend */\n transcendUrl?: string;\n /** Mark requests in silent mode before enriching */\n markSilent?: boolean;\n}): Promise<number> {\n // Create sombra instance to communicate with\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n // Read from CSV\n logger.info(colors.magenta(`Reading \"${file}\" from disk`));\n const activeResults = readCsv(file, EnrichPrivacyRequest);\n\n // Notify Transcend\n logger.info(\n colors.magenta(`Enriching \"${activeResults.length}\" privacy requests.`),\n );\n\n let successCount = 0;\n let skippedCount = 0;\n let errorCount = 0;\n\n await map(\n activeResults,\n async (request, index) => {\n try {\n // Mark requests in silent mode before a certain date\n if (markSilent) {\n await makeGraphQLRequest(client, UPDATE_PRIVACY_REQUEST, {\n input: {\n id: request.id,\n isSilent: true,\n },\n });\n\n logger.info(\n colors.magenta(`Mark request as silent mode - ${request.id}`),\n );\n }\n\n const result = await enrichPrivacyRequest(\n sombra,\n request,\n enricherId,\n index,\n );\n if (result) {\n successCount += 1;\n } else {\n skippedCount += 1;\n }\n } catch (err) {\n errorCount += 1;\n }\n },\n { concurrency },\n );\n\n logger.info(\n colors.green(\n `Successfully notified Transcend! \\n Success count: ${successCount}.`,\n ),\n );\n\n if (skippedCount > 0) {\n logger.info(colors.magenta(`Skipped count: ${skippedCount}.`));\n }\n\n if (errorCount > 0) {\n logger.info(colors.red(`Error Count: ${errorCount}.`));\n throw new Error(`Failed to enrich: ${errorCount} requests.`);\n }\n\n return activeResults.length;\n}\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkP7WCYR3Acjs = require('./chunk-P7WCYR3A.cjs');var _chunkQ7I37FJVcjs = require('./chunk-Q7I37FJV.cjs');var _core = require('@stricli/core');var _privacytypes = require('@transcend-io/privacy-types');var _ms = require('ms'); var _ms2 = _interopRequireDefault(_ms);function S(e){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e))throw new Error(`Invalid UUID format: ${e}`);return e}function n(e){try{return new URL(e).toString().replace(/\/$/,"")}catch (e2){throw new Error(`Invalid URL format: ${e}`)}}function T(e){return e.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function y(e){let r=new Date(e);if(Number.isNaN(r.getTime()))throw new TypeError(`Invalid date: ${e}. Try using the ISO 8601 format (YYYY-MM-DDTHH:MM:SS.SSSZ)`);return r}function k(e){if(typeof e=="number"&&Number.isFinite(e))return Math.round(e*1e3);if(typeof e=="string"){let r=e.trim();if(r==="")throw new Error('Invalid duration. Examples: "45", "2d", "1h", "90 minutes", "10s".');let t=Number(r);if(r!==""&&Number.isFinite(t))return Math.round(t*1e3);let a;try{a=_ms2.default.call(void 0, r)}catch (e3){throw new Error('Invalid duration. Examples: "45", "2d", "1h", "90 minutes", "10s".')}if(typeof a=="number"&&Number.isFinite(a))return a}throw new Error('Invalid duration. Examples: "45", "2d", "1h", "90 minutes", "10s".')}var d=({scopes:e,requiresSiloScope:r=!1})=>{let t={kind:"parsed",parse:String,brief:"The Transcend API key."};return r&&(t.brief+=" This key must be associated with the data silo(s) being operated on."),e==="Varies"?{...t,brief:`${t.brief} The scopes required will vary depending on the operation performed. If in doubt, the ${_privacytypes.TRANSCEND_SCOPES[_privacytypes.ScopeName.FullAdmin].title} scope will always work.`}:e.length===0?{...t,brief:`${t.brief} No scopes are required for this command.`}:{...t,brief:`${t.brief} Requires scopes: ${e.map(a=>`"${_privacytypes.TRANSCEND_SCOPES[a].title}"`).join(", ")}`}},u= exports.f =(e=_chunkP7WCYR3Acjs.r)=>({kind:"parsed",parse:n,brief:"URL of the Transcend backend. Use https://api.us.transcend.io for US hosting",default:e}),x= exports.g =(e=_chunkP7WCYR3Acjs.s)=>({kind:"parsed",parse:n,brief:"URL of the Transcend consent backend. Use https://consent.us.transcend.io for US hosting",default:e}),A= exports.h =()=>({kind:"parsed",parse:String,brief:"The Sombra internal key, use for additional authentication when self-hosting Sombra",optional:!0});var g=["dataSilos","enrichers","templates","apiKeys"],I= exports.j =Object.values(_privacytypes.ConsentTrackerStatus),R= exports.k =_core.buildCommand.call(void 0, {loader:async()=>{let{pull:e}=await Promise.resolve().then(() => _interopRequireWildcard(require("./impl-NJGWDDJA.cjs")));return e},parameters:{flags:{auth:d({scopes:"Varies"}),resources:{kind:"enum",values:["all",...Object.values(_chunkQ7I37FJVcjs.d)],brief:`The different resource types to pull in. Defaults to ${g.join(",")}.`,variadic:",",optional:!0},file:{kind:"parsed",parse:String,brief:"Path to the YAML file to pull into",default:"./transcend.yml"},transcendUrl:u(),dataSiloIds:{kind:"parsed",parse:String,variadic:",",brief:"The UUIDs of the data silos that should be pulled into the YAML file",optional:!0},integrationNames:{kind:"parsed",parse:String,variadic:",",brief:"The types of integrations to pull down",optional:!0},trackerStatuses:{kind:"enum",values:Object.values(_privacytypes.ConsentTrackerStatus),variadic:",",brief:"The statuses of consent manager trackers to pull down. Defaults to all statuses.",optional:!0},pageSize:{kind:"parsed",parse:_core.numberParser,brief:"The page size to use when paginating over the API",default:"50"},skipDatapoints:{kind:"boolean",brief:"When true, skip pulling in datapoints alongside data silo resource",default:!1},skipSubDatapoints:{kind:"boolean",brief:"When true, skip pulling in subDatapoints alongside data silo resource",default:!1},includeGuessedCategories:{kind:"boolean",brief:"When true, included guessed data categories that came from the content classifier",default:!1},debug:{kind:"boolean",brief:"Set to true to include debug logs while pulling the configuration",default:!1}}},docs:{brief:"Pull metadata from Transcend into transcend.yml",fullDescription:`Generates a transcend.yml by pulling the configuration from your Transcend instance.
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkVY55L6P5cjs = require('./chunk-VY55L6P5.cjs');var _chunkQ7I37FJVcjs = require('./chunk-Q7I37FJV.cjs');var _core = require('@stricli/core');var _privacytypes = require('@transcend-io/privacy-types');var _ms = require('ms'); var _ms2 = _interopRequireDefault(_ms);function S(e){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e))throw new Error(`Invalid UUID format: ${e}`);return e}function n(e){try{return new URL(e).toString().replace(/\/$/,"")}catch (e2){throw new Error(`Invalid URL format: ${e}`)}}function T(e){return e.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function y(e){let r=new Date(e);if(Number.isNaN(r.getTime()))throw new TypeError(`Invalid date: ${e}. Try using the ISO 8601 format (YYYY-MM-DDTHH:MM:SS.SSSZ)`);return r}function k(e){if(typeof e=="number"&&Number.isFinite(e))return Math.round(e*1e3);if(typeof e=="string"){let r=e.trim();if(r==="")throw new Error('Invalid duration. Examples: "45", "2d", "1h", "90 minutes", "10s".');let t=Number(r);if(r!==""&&Number.isFinite(t))return Math.round(t*1e3);let a;try{a=_ms2.default.call(void 0, r)}catch (e3){throw new Error('Invalid duration. Examples: "45", "2d", "1h", "90 minutes", "10s".')}if(typeof a=="number"&&Number.isFinite(a))return a}throw new Error('Invalid duration. Examples: "45", "2d", "1h", "90 minutes", "10s".')}var d=({scopes:e,requiresSiloScope:r=!1})=>{let t={kind:"parsed",parse:String,brief:"The Transcend API key."};return r&&(t.brief+=" This key must be associated with the data silo(s) being operated on."),e==="Varies"?{...t,brief:`${t.brief} The scopes required will vary depending on the operation performed. If in doubt, the ${_privacytypes.TRANSCEND_SCOPES[_privacytypes.ScopeName.FullAdmin].title} scope will always work.`}:e.length===0?{...t,brief:`${t.brief} No scopes are required for this command.`}:{...t,brief:`${t.brief} Requires scopes: ${e.map(a=>`"${_privacytypes.TRANSCEND_SCOPES[a].title}"`).join(", ")}`}},u= exports.f =(e=_chunkVY55L6P5cjs.r)=>({kind:"parsed",parse:n,brief:"URL of the Transcend backend. Use https://api.us.transcend.io for US hosting",default:e}),x= exports.g =(e=_chunkVY55L6P5cjs.s)=>({kind:"parsed",parse:n,brief:"URL of the Transcend consent backend. Use https://consent.us.transcend.io for US hosting",default:e}),A= exports.h =()=>({kind:"parsed",parse:String,brief:"The Sombra internal key, use for additional authentication when self-hosting Sombra",optional:!0});var g=["dataSilos","enrichers","templates","apiKeys"],I= exports.j =Object.values(_privacytypes.ConsentTrackerStatus),R= exports.k =_core.buildCommand.call(void 0, {loader:async()=>{let{pull:e}=await Promise.resolve().then(() => _interopRequireWildcard(require("./impl-4EEEQLZS.cjs")));return e},parameters:{flags:{auth:d({scopes:"Varies"}),resources:{kind:"enum",values:["all",...Object.values(_chunkQ7I37FJVcjs.d)],brief:`The different resource types to pull in. Defaults to ${g.join(",")}.`,variadic:",",optional:!0},file:{kind:"parsed",parse:String,brief:"Path to the YAML file to pull into",default:"./transcend.yml"},transcendUrl:u(),dataSiloIds:{kind:"parsed",parse:String,variadic:",",brief:"The UUIDs of the data silos that should be pulled into the YAML file",optional:!0},integrationNames:{kind:"parsed",parse:String,variadic:",",brief:"The types of integrations to pull down",optional:!0},trackerStatuses:{kind:"enum",values:Object.values(_privacytypes.ConsentTrackerStatus),variadic:",",brief:"The statuses of consent manager trackers to pull down. Defaults to all statuses.",optional:!0},pageSize:{kind:"parsed",parse:_core.numberParser,brief:"The page size to use when paginating over the API",default:"50"},skipDatapoints:{kind:"boolean",brief:"When true, skip pulling in datapoints alongside data silo resource",default:!1},skipSubDatapoints:{kind:"boolean",brief:"When true, skip pulling in subDatapoints alongside data silo resource",default:!1},includeGuessedCategories:{kind:"boolean",brief:"When true, included guessed data categories that came from the content classifier",default:!1},debug:{kind:"boolean",brief:"Set to true to include debug logs while pulling the configuration",default:!1}}},docs:{brief:"Pull metadata from Transcend into transcend.yml",fullDescription:`Generates a transcend.yml by pulling the configuration from your Transcend instance.
2
2
 
3
3
  The API key needs various scopes depending on the resources being pulled (see the CLI's README for more details).
4
4
 
@@ -6,4 +6,4 @@ This command can be helpful if you are looking to:
6
6
 
7
7
  - Copy your data into another instance
8
8
  - Generate a transcend.yml file as a starting point to maintain parts of your data inventory in code.`}});exports.a = S; exports.b = T; exports.c = y; exports.d = k; exports.e = d; exports.f = u; exports.g = x; exports.h = A; exports.i = g; exports.j = I; exports.k = R;
9
- //# sourceMappingURL=chunk-XYI7MMZT.cjs.map
9
+ //# sourceMappingURL=chunk-VTYBZZQ5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-XYI7MMZT.cjs","../src/commands/inventory/pull/command.ts","../src/lib/cli/parsers.ts"],"names":["uuidParser","input"],"mappings":"AAAA,mfAA0C,wDAAyC,qCCAxC,2DACN,gECDiB,SAStCA,CAAAA,CAAWC,CAAAA,CAAuB,CAGhD,EAAA,CAAI,CADF,4EAAA,CACa,IAAA,CAAKA,CAAK,CAAA,CACvB,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwBA,CAAK,CAAA,CAAA;ADwF5B;AAAA;AAAA;AAAA;AAAA;AAAA;AASpB,qGAAA","file":"/home/runner/work/cli/cli/dist/chunk-XYI7MMZT.cjs","sourcesContent":[null,"import { buildCommand, numberParser } from '@stricli/core';\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport {\n createAuthParameter,\n createTranscendUrlParameter,\n} from '../../../lib/cli/common-parameters';\nimport { TranscendPullResource } from '../../../enums';\n\nexport const DEFAULT_TRANSCEND_PULL_RESOURCES = [\n TranscendPullResource.DataSilos,\n TranscendPullResource.Enrichers,\n TranscendPullResource.Templates,\n TranscendPullResource.ApiKeys,\n];\n\nexport const DEFAULT_CONSENT_TRACKER_STATUSES =\n Object.values(ConsentTrackerStatus);\n\nexport const pullCommand = buildCommand({\n loader: async () => {\n const { pull } = await import('./impl');\n return pull;\n },\n parameters: {\n flags: {\n auth: createAuthParameter({\n scopes: 'Varies',\n }),\n resources: {\n kind: 'enum',\n values: ['all', ...Object.values(TranscendPullResource)],\n brief: `The different resource types to pull in. Defaults to ${DEFAULT_TRANSCEND_PULL_RESOURCES.join(\n ',',\n )}.`,\n variadic: ',',\n optional: true,\n },\n file: {\n kind: 'parsed',\n parse: String,\n brief: 'Path to the YAML file to pull into',\n default: './transcend.yml',\n },\n transcendUrl: createTranscendUrlParameter(),\n dataSiloIds: {\n kind: 'parsed',\n parse: String,\n variadic: ',',\n brief:\n 'The UUIDs of the data silos that should be pulled into the YAML file',\n optional: true,\n },\n integrationNames: {\n kind: 'parsed',\n parse: String,\n variadic: ',',\n brief: 'The types of integrations to pull down',\n optional: true,\n },\n trackerStatuses: {\n kind: 'enum',\n values: Object.values(ConsentTrackerStatus),\n variadic: ',',\n brief:\n 'The statuses of consent manager trackers to pull down. Defaults to all statuses.',\n optional: true,\n },\n pageSize: {\n kind: 'parsed',\n parse: numberParser,\n brief: 'The page size to use when paginating over the API',\n default: '50',\n },\n skipDatapoints: {\n kind: 'boolean',\n brief:\n 'When true, skip pulling in datapoints alongside data silo resource',\n default: false,\n },\n skipSubDatapoints: {\n kind: 'boolean',\n brief:\n 'When true, skip pulling in subDatapoints alongside data silo resource',\n default: false,\n },\n includeGuessedCategories: {\n kind: 'boolean',\n brief:\n 'When true, included guessed data categories that came from the content classifier',\n default: false,\n },\n debug: {\n kind: 'boolean',\n brief:\n 'Set to true to include debug logs while pulling the configuration',\n default: false,\n },\n },\n },\n docs: {\n brief: 'Pull metadata from Transcend into transcend.yml',\n fullDescription: `Generates a transcend.yml by pulling the configuration from your Transcend instance.\n\nThe API key needs various scopes depending on the resources being pulled (see the CLI's README for more details).\n\nThis command can be helpful if you are looking to:\n\n- Copy your data into another instance\n- Generate a transcend.yml file as a starting point to maintain parts of your data inventory in code.`,\n },\n});\n","import ms, { type StringValue as MsStringValue } from 'ms';\n\n/**\n * Validates and returns a UUID string.\n *\n * @param input - The input string to validate as UUID\n * @returns The validated UUID string\n * @throws Error if input is not a valid UUID\n */\nexport function uuidParser(input: string): string {\n const uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n if (!uuidRegex.test(input)) {\n throw new Error(`Invalid UUID format: ${input}`);\n }\n return input;\n}\n\n/**\n * Validates and returns a URL string.\n *\n * @param input - The input string to validate as URL\n * @returns The validated URL string\n * @throws Error if input is not a valid URL\n */\nexport function urlParser(input: string): string {\n try {\n const url = new URL(input);\n return url.toString().replace(/\\/$/, '');\n } catch {\n throw new Error(`Invalid URL format: ${input}`);\n }\n}\n\n/**\n * Parse a comma-separated string to array.\n * NOTE: Prefer using `variadic` for list arguments instead of this function. This should only be used for arguments which have a default value.\n *\n * @param input - The comma-separated string to parse\n * @returns Array of trimmed, non-empty strings\n */\nexport function arrayParser(input: string): string[] {\n return input\n .split(',')\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n}\n\n/**\n * Parse a date string to a Date object.\n *\n * @param input - The date string to parse\n * @returns The parsed Date object\n * @throws TypeError if input is not a valid date\n */\nexport function dateParser(input: string): Date {\n const date = new Date(input);\n if (Number.isNaN(date.getTime())) {\n throw new TypeError(\n `Invalid date: ${input}. Try using the ISO 8601 format (YYYY-MM-DDTHH:MM:SS.SSSZ)`,\n );\n }\n return date;\n}\n\n/**\n * Parse a duration string to milliseconds.\n * Accepts concise/natural-ish strings (powered by `ms`) and returns milliseconds.\n * Examples: \"3600\", \"2d\", \"1h\", \"90 minutes\", \"10s\".\n *\n * @param input - The duration to parse\n * @returns The parsed duration in milliseconds\n * @throws Error if input is not a valid duration\n */\nexport function parseDurationToMs(input: unknown): number {\n if (typeof input === 'number' && Number.isFinite(input)) {\n // backward-compat: numbers => seconds\n return Math.round(input * 1000);\n }\n\n if (typeof input === 'string') {\n const trimmed = input.trim();\n // empty string → our standardized error (avoid ms throwing its own)\n if (trimmed === '') {\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n }\n\n // bare numeric string => seconds (backward-compat)\n const asNumber = Number(trimmed);\n if (trimmed !== '' && Number.isFinite(asNumber)) {\n return Math.round(asNumber * 1000);\n }\n\n // let ms parse human strings\n let parsed: number | undefined;\n try {\n parsed = ms(trimmed as MsStringValue);\n } catch {\n // normalize ms' error to ours\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n }\n if (typeof parsed === 'number' && Number.isFinite(parsed)) {\n return parsed;\n }\n }\n\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-VTYBZZQ5.cjs","../src/commands/inventory/pull/command.ts","../src/lib/cli/parsers.ts"],"names":["uuidParser","input"],"mappings":"AAAA,mfAA0C,wDAAyC,qCCAxC,2DACN,gECDiB,SAStCA,CAAAA,CAAWC,CAAAA,CAAuB,CAGhD,EAAA,CAAI,CADF,4EAAA,CACa,IAAA,CAAKA,CAAK,CAAA,CACvB,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwBA,CAAK,CAAA,CAAA;ADwF5B;AAAA;AAAA;AAAA;AAAA;AAAA;AASpB,qGAAA","file":"/home/runner/work/cli/cli/dist/chunk-VTYBZZQ5.cjs","sourcesContent":[null,"import { buildCommand, numberParser } from '@stricli/core';\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport {\n createAuthParameter,\n createTranscendUrlParameter,\n} from '../../../lib/cli/common-parameters';\nimport { TranscendPullResource } from '../../../enums';\n\nexport const DEFAULT_TRANSCEND_PULL_RESOURCES = [\n TranscendPullResource.DataSilos,\n TranscendPullResource.Enrichers,\n TranscendPullResource.Templates,\n TranscendPullResource.ApiKeys,\n];\n\nexport const DEFAULT_CONSENT_TRACKER_STATUSES =\n Object.values(ConsentTrackerStatus);\n\nexport const pullCommand = buildCommand({\n loader: async () => {\n const { pull } = await import('./impl');\n return pull;\n },\n parameters: {\n flags: {\n auth: createAuthParameter({\n scopes: 'Varies',\n }),\n resources: {\n kind: 'enum',\n values: ['all', ...Object.values(TranscendPullResource)],\n brief: `The different resource types to pull in. Defaults to ${DEFAULT_TRANSCEND_PULL_RESOURCES.join(\n ',',\n )}.`,\n variadic: ',',\n optional: true,\n },\n file: {\n kind: 'parsed',\n parse: String,\n brief: 'Path to the YAML file to pull into',\n default: './transcend.yml',\n },\n transcendUrl: createTranscendUrlParameter(),\n dataSiloIds: {\n kind: 'parsed',\n parse: String,\n variadic: ',',\n brief:\n 'The UUIDs of the data silos that should be pulled into the YAML file',\n optional: true,\n },\n integrationNames: {\n kind: 'parsed',\n parse: String,\n variadic: ',',\n brief: 'The types of integrations to pull down',\n optional: true,\n },\n trackerStatuses: {\n kind: 'enum',\n values: Object.values(ConsentTrackerStatus),\n variadic: ',',\n brief:\n 'The statuses of consent manager trackers to pull down. Defaults to all statuses.',\n optional: true,\n },\n pageSize: {\n kind: 'parsed',\n parse: numberParser,\n brief: 'The page size to use when paginating over the API',\n default: '50',\n },\n skipDatapoints: {\n kind: 'boolean',\n brief:\n 'When true, skip pulling in datapoints alongside data silo resource',\n default: false,\n },\n skipSubDatapoints: {\n kind: 'boolean',\n brief:\n 'When true, skip pulling in subDatapoints alongside data silo resource',\n default: false,\n },\n includeGuessedCategories: {\n kind: 'boolean',\n brief:\n 'When true, included guessed data categories that came from the content classifier',\n default: false,\n },\n debug: {\n kind: 'boolean',\n brief:\n 'Set to true to include debug logs while pulling the configuration',\n default: false,\n },\n },\n },\n docs: {\n brief: 'Pull metadata from Transcend into transcend.yml',\n fullDescription: `Generates a transcend.yml by pulling the configuration from your Transcend instance.\n\nThe API key needs various scopes depending on the resources being pulled (see the CLI's README for more details).\n\nThis command can be helpful if you are looking to:\n\n- Copy your data into another instance\n- Generate a transcend.yml file as a starting point to maintain parts of your data inventory in code.`,\n },\n});\n","import ms, { type StringValue as MsStringValue } from 'ms';\n\n/**\n * Validates and returns a UUID string.\n *\n * @param input - The input string to validate as UUID\n * @returns The validated UUID string\n * @throws Error if input is not a valid UUID\n */\nexport function uuidParser(input: string): string {\n const uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n if (!uuidRegex.test(input)) {\n throw new Error(`Invalid UUID format: ${input}`);\n }\n return input;\n}\n\n/**\n * Validates and returns a URL string.\n *\n * @param input - The input string to validate as URL\n * @returns The validated URL string\n * @throws Error if input is not a valid URL\n */\nexport function urlParser(input: string): string {\n try {\n const url = new URL(input);\n return url.toString().replace(/\\/$/, '');\n } catch {\n throw new Error(`Invalid URL format: ${input}`);\n }\n}\n\n/**\n * Parse a comma-separated string to array.\n * NOTE: Prefer using `variadic` for list arguments instead of this function. This should only be used for arguments which have a default value.\n *\n * @param input - The comma-separated string to parse\n * @returns Array of trimmed, non-empty strings\n */\nexport function arrayParser(input: string): string[] {\n return input\n .split(',')\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n}\n\n/**\n * Parse a date string to a Date object.\n *\n * @param input - The date string to parse\n * @returns The parsed Date object\n * @throws TypeError if input is not a valid date\n */\nexport function dateParser(input: string): Date {\n const date = new Date(input);\n if (Number.isNaN(date.getTime())) {\n throw new TypeError(\n `Invalid date: ${input}. Try using the ISO 8601 format (YYYY-MM-DDTHH:MM:SS.SSSZ)`,\n );\n }\n return date;\n}\n\n/**\n * Parse a duration string to milliseconds.\n * Accepts concise/natural-ish strings (powered by `ms`) and returns milliseconds.\n * Examples: \"3600\", \"2d\", \"1h\", \"90 minutes\", \"10s\".\n *\n * @param input - The duration to parse\n * @returns The parsed duration in milliseconds\n * @throws Error if input is not a valid duration\n */\nexport function parseDurationToMs(input: unknown): number {\n if (typeof input === 'number' && Number.isFinite(input)) {\n // backward-compat: numbers => seconds\n return Math.round(input * 1000);\n }\n\n if (typeof input === 'string') {\n const trimmed = input.trim();\n // empty string → our standardized error (avoid ms throwing its own)\n if (trimmed === '') {\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n }\n\n // bare numeric string => seconds (backward-compat)\n const asNumber = Number(trimmed);\n if (trimmed !== '' && Number.isFinite(asNumber)) {\n return Math.round(asNumber * 1000);\n }\n\n // let ms parse human strings\n let parsed: number | undefined;\n try {\n parsed = ms(trimmed as MsStringValue);\n } catch {\n // normalize ms' error to ours\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n }\n if (typeof parsed === 'number' && Number.isFinite(parsed)) {\n return parsed;\n }\n }\n\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }function Jo(e,t,r){var o=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var n=Array(a);++o<a;)n[o]=e[o+t];return n}var ye=Jo;function Yo(e,t){return e===t||e!==e&&t!==t}var k=Yo;var Xo=typeof global=="object"&&global&&global.Object===Object&&global,_e=Xo;var Qo=typeof self=="object"&&self&&self.Object===Object&&self,ea=_e||Qo||Function("return this")(),g=ea;var ta=g.Symbol,h=ta;var et=Object.prototype,ra=et.hasOwnProperty,oa=et.toString,de=h?h.toStringTag:void 0;function aa(e){var t=ra.call(e,de),r=e[de];try{e[de]=void 0;var o=!0}catch (e2){}var a=oa.call(e);return o&&(t?e[de]=r:delete e[de]),a}var tt=aa;var na=Object.prototype,fa=na.toString;function sa(e){return fa.call(e)}var rt=sa;var ia="[object Null]",pa="[object Undefined]",ot=h?h.toStringTag:void 0;function ua(e){return e==null?e===void 0?pa:ia:ot&&ot in Object(e)?tt(e):rt(e)}var v=ua;function ma(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var S=ma;var da="[object AsyncFunction]",la="[object Function]",ca="[object GeneratorFunction]",xa="[object Proxy]";function ga(e){if(!S(e))return!1;var t=v(e);return t==la||t==ca||t==da||t==xa}var Ae=ga;var ha=9007199254740991;function ba(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ha}var z=ba;function ya(e){return e!=null&&z(e.length)&&!Ae(e)}var T=ya;var _a=9007199254740991,Aa=/^(?:0|[1-9]\d*)$/;function va(e,t){var r=typeof e;return t=_nullishCoalesce(t, () => (_a)),!!t&&(r=="number"||r!="symbol"&&Aa.test(e))&&e>-1&&e%1==0&&e<t}var K=va;function Sa(e,t,r){if(!S(r))return!1;var o=typeof t;return(o=="number"?T(r)&&K(t,r.length):o=="string"&&t in r)?k(r[t],e):!1}var le=Sa;var wa=/\s/;function Ta(e){for(var t=e.length;t--&&wa.test(e.charAt(t)););return t}var at=Ta;var Oa=/^\s+/;function Pa(e){return e&&e.slice(0,at(e)+1).replace(Oa,"")}var nt=Pa;function Ca(e){return e!=null&&typeof e=="object"}var y=Ca;var Ia="[object Symbol]";function Ma(e){return typeof e=="symbol"||y(e)&&v(e)==Ia}var w=Ma;var ft=NaN,Ea=/^[-+]0x[0-9a-f]+$/i,ja=/^0b[01]+$/i,Ra=/^0o[0-7]+$/i,Da=parseInt;function La(e){if(typeof e=="number")return e;if(w(e))return ft;if(S(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=S(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=nt(e);var r=ja.test(e);return r||Ra.test(e)?Da(e.slice(2),r?2:8):Ea.test(e)?ft:+e}var st=La;var it=1/0,Na=17976931348623157e292;function Fa(e){if(!e)return e===0?e:0;if(e=st(e),e===it||e===-it){var t=e<0?-1:1;return t*Na}return e===e?e:0}var pt=Fa;function Ua(e){var t=pt(e),r=t%1;return t===t?r?t-r:t:0}var ut=Ua;var Ba=Math.ceil,qa=Math.max;function Ga(e,t,r){(r?le(e,t,r):t===void 0)?t=1:t=qa(ut(t),0);var o=e==null?0:e.length;if(!o||t<1)return[];for(var a=0,n=0,f=Array(Ba(o/t));a<o;)f[n++]=ye(e,a,a+=t);return f}var Wa=Ga;var Va=g["__core-js_shared__"],ve=Va;var mt=function(){var e=/[^.]+$/.exec(ve&&ve.keys&&ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ha(e){return!!mt&&mt in e}var dt=Ha;var ka=Function.prototype,za=ka.toString;function Ka(e){if(e!=null){try{return za.call(e)}catch (e3){}try{return e+""}catch (e4){}}return""}var P=Ka;var Za=/[\\^$.*+?()[\]{}|]/g,$a=/^\[object .+?Constructor\]$/,Ja=Function.prototype,Ya=Object.prototype,Xa=Ja.toString,Qa=Ya.hasOwnProperty,en=RegExp("^"+Xa.call(Qa).replace(Za,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tn(e){if(!S(e)||dt(e))return!1;var t=Ae(e)?en:$a;return t.test(P(e))}var lt=tn;function rn(e,t){return _optionalChain([e, 'optionalAccess', _2 => _2[t]])}var ct=rn;function on(e,t){var r=ct(e,t);return lt(r)?r:void 0}var b=on;var an=b(Object,"create"),C=an;function nn(){this.__data__=C?C(null):{},this.size=0}var xt=nn;function fn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gt=fn;var sn="__lodash_hash_undefined__",pn=Object.prototype,un=pn.hasOwnProperty;function mn(e){var t=this.__data__;if(C){var r=t[e];return r===sn?void 0:r}return un.call(t,e)?t[e]:void 0}var ht=mn;var dn=Object.prototype,ln=dn.hasOwnProperty;function cn(e){var t=this.__data__;return C?t[e]!==void 0:ln.call(t,e)}var bt=cn;var xn="__lodash_hash_undefined__";function gn(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=C&&t===void 0?xn:t,this}var yt=gn;function Z(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}Z.prototype.clear=xt;Z.prototype.delete=gt;Z.prototype.get=ht;Z.prototype.has=bt;Z.prototype.set=yt;var Ge=Z;function hn(){this.__data__=[],this.size=0}var _t=hn;function bn(e,t){for(var r=e.length;r--;)if(k(e[r][0],t))return r;return-1}var M=bn;var yn=Array.prototype,_n=yn.splice;function An(e){var t=this.__data__,r=M(t,e);if(r<0)return!1;var o=t.length-1;return r==o?t.pop():_n.call(t,r,1),--this.size,!0}var At=An;function vn(e){var t=this.__data__,r=M(t,e);return r<0?void 0:t[r][1]}var vt=vn;function Sn(e){return M(this.__data__,e)>-1}var St=Sn;function wn(e,t){var r=this.__data__,o=M(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var wt=wn;function $(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}$.prototype.clear=_t;$.prototype.delete=At;$.prototype.get=vt;$.prototype.has=St;$.prototype.set=wt;var E=$;var Tn=b(g,"Map"),j=Tn;function On(){this.size=0,this.__data__={hash:new Ge,map:new(j||E),string:new Ge}}var Tt=On;function Pn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ot=Pn;function Cn(e,t){var r=e.__data__;return Ot(t)?r[typeof t=="string"?"string":"hash"]:r.map}var R=Cn;function In(e){var t=R(this,e).delete(e);return this.size-=t?1:0,t}var Pt=In;function Mn(e){return R(this,e).get(e)}var Ct=Mn;function En(e){return R(this,e).has(e)}var It=En;function jn(e,t){var r=R(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Mt=jn;function J(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}J.prototype.clear=Tt;J.prototype.delete=Pt;J.prototype.get=Ct;J.prototype.has=It;J.prototype.set=Mt;var V=J;var Rn="__lodash_hash_undefined__";function Dn(e){return this.__data__.set(e,Rn),this}var Et=Dn;function Ln(e){return this.__data__.has(e)}var jt=Ln;function Se(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new V;++t<r;)this.add(e[t])}Se.prototype.add=Se.prototype.push=Et;Se.prototype.has=jt;var Y=Se;function Nn(e,t,r,o){for(var a=e.length,n=r+(o?1:-1);o?n--:++n<a;)if(t(e[n],n,e))return n;return-1}var Rt=Nn;function Fn(e){return e!==e}var Dt=Fn;function Un(e,t,r){for(var o=r-1,a=e.length;++o<a;)if(e[o]===t)return o;return-1}var Lt=Un;function Bn(e,t,r){return t===t?Lt(e,t,r):Rt(e,Dt,r)}var Nt=Bn;function qn(e,t){var r=e==null?0:e.length;return!!r&&Nt(e,t,0)>-1}var we=qn;function Gn(e,t,r){for(var o=-1,a=e==null?0:e.length;++o<a;)if(r(t,e[o]))return!0;return!1}var Te=Gn;function Wn(e,t){for(var r=-1,o=e==null?0:e.length,a=Array(o);++r<o;)a[r]=t(e[r],r,e);return a}var D=Wn;function Vn(e){return function(t){return e(t)}}var X=Vn;function Hn(e,t){return e.has(t)}var Q=Hn;var kn=200;function zn(e,t,r,o){var a=-1,n=we,f=!0,i=e.length,p=[],u=t.length;if(!i)return p;r&&(t=D(t,X(r))),o?(n=Te,f=!1):t.length>=kn&&(n=Q,f=!1,t=new Y(t));e:for(;++a<i;){var m=e[a],d=r==null?m:r(m);if(m=o||m!==0?m:0,f&&d===d){for(var l=u;l--;)if(t[l]===d)continue e;p.push(m)}else n(t,d,o)||p.push(m)}return p}var Ft=zn;function Kn(e,t){for(var r=-1,o=t.length,a=e.length;++r<o;)e[a+r]=t[r];return e}var Oe=Kn;var Zn="[object Arguments]";function $n(e){return y(e)&&v(e)==Zn}var We=$n;var Ut=Object.prototype,Jn=Ut.hasOwnProperty,Yn=Ut.propertyIsEnumerable,Xn=We(function(){return arguments}())?We:function(e){return y(e)&&Jn.call(e,"callee")&&!Yn.call(e,"callee")},ee=Xn;var Qn=Array.isArray,x=Qn;var Bt=h?h.isConcatSpreadable:void 0;function ef(e){return x(e)||ee(e)||!!(Bt&&e&&e[Bt])}var qt=ef;function Gt(e,t,r,o,a){var n=-1,f=e.length;for(r||(r=qt),a||(a=[]);++n<f;){var i=e[n];t>0&&r(i)?t>1?Gt(i,t-1,r,o,a):Oe(a,i):o||(a[a.length]=i)}return a}var L=Gt;function tf(e){return e}var N=tf;function rf(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Wt=rf;var Vt=Math.max;function of(e,t,r){return t=Vt(t===void 0?e.length-1:t,0),function(){for(var o=arguments,a=-1,n=Vt(o.length-t,0),f=Array(n);++a<n;)f[a]=o[t+a];a=-1;for(var i=Array(t+1);++a<t;)i[a]=o[a];return i[t]=r(f),Wt(e,this,i)}}var Ht=of;function af(e){return function(){return e}}var kt=af;var nf=function(){try{var e=b(Object,"defineProperty");return e({},"",{}),e}catch (e5){}}(),te=nf;var ff=te?function(e,t){return te(e,"toString",{configurable:!0,enumerable:!1,value:kt(t),writable:!0})}:N,zt=ff;var sf=800,pf=16,uf=Date.now;function mf(e){var t=0,r=0;return function(){var o=uf(),a=pf-(o-r);if(r=o,a>0){if(++t>=sf)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Kt=mf;var df=Kt(zt),Zt=df;function lf(e,t){return Zt(Ht(e,t,N),e+"")}var re=lf;function cf(e){return y(e)&&T(e)}var ce=cf;var xf=re(function(e,t){return ce(e)?Ft(e,L(t,1,ce,!0)):[]}),gf= exports.c =xf;function hf(e,t,r){t=="__proto__"&&te?te(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var oe=hf;function bf(e,t,r,o){for(var a=-1,n=e==null?0:e.length;++a<n;){var f=e[a];t(o,f,r(f),e)}return o}var $t=bf;function yf(e){return function(t,r,o){for(var a=-1,n=Object(t),f=o(t),i=f.length;i--;){var p=f[e?i:++a];if(r(n[p],p,n)===!1)break}return t}}var Jt=yf;var _f=Jt(),Yt=_f;function Af(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var Xt=Af;function vf(){return!1}var Qt=vf;var rr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,er=rr&&typeof module=="object"&&module&&!module.nodeType&&module,Sf=er&&er.exports===rr,tr=Sf?g.Buffer:void 0,wf=tr?tr.isBuffer:void 0,Tf=wf||Qt,xe=Tf;var Of="[object Arguments]",Pf="[object Array]",Cf="[object Boolean]",If="[object Date]",Mf="[object Error]",Ef="[object Function]",jf="[object Map]",Rf="[object Number]",Df="[object Object]",Lf="[object RegExp]",Nf="[object Set]",Ff="[object String]",Uf="[object WeakMap]",Bf="[object ArrayBuffer]",qf="[object DataView]",Gf="[object Float32Array]",Wf="[object Float64Array]",Vf="[object Int8Array]",Hf="[object Int16Array]",kf="[object Int32Array]",zf="[object Uint8Array]",Kf="[object Uint8ClampedArray]",Zf="[object Uint16Array]",$f="[object Uint32Array]",c={};c[Gf]=c[Wf]=c[Vf]=c[Hf]=c[kf]=c[zf]=c[Kf]=c[Zf]=c[$f]=!0;c[Of]=c[Pf]=c[Bf]=c[Cf]=c[qf]=c[If]=c[Mf]=c[Ef]=c[jf]=c[Rf]=c[Df]=c[Lf]=c[Nf]=c[Ff]=c[Uf]=!1;function Jf(e){return y(e)&&z(e.length)&&!!c[v(e)]}var or=Jf;var ar=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ge=ar&&typeof module=="object"&&module&&!module.nodeType&&module,Yf=ge&&ge.exports===ar,Ve=Yf&&_e.process,Xf=function(){try{var e=ge&&ge.require&&ge.require("util").types;return e||Ve&&Ve.binding&&Ve.binding("util")}catch (e6){}}(),He=Xf;var nr=He&&He.isTypedArray,Qf=nr?X(nr):or,Pe=Qf;var es=Object.prototype,ts=es.hasOwnProperty;function rs(e,t){var r=x(e),o=!r&&ee(e),a=!r&&!o&&xe(e),n=!r&&!o&&!a&&Pe(e),f=r||o||a||n,i=f?Xt(e.length,String):[],p=i.length;for(var u in e)(t||ts.call(e,u))&&!(f&&(u=="length"||a&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||K(u,p)))&&i.push(u);return i}var fr=rs;var os=Object.prototype;function as(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||os;return e===r}var sr=as;function ns(e,t){return function(r){return e(t(r))}}var ir=ns;var fs=ir(Object.keys,Object),pr=fs;var ss=Object.prototype,is=ss.hasOwnProperty;function ps(e){if(!sr(e))return pr(e);var t=[];for(var r in Object(e))is.call(e,r)&&r!="constructor"&&t.push(r);return t}var ur=ps;function us(e){return T(e)?fr(e):ur(e)}var ae=us;function ms(e,t){return e&&Yt(e,t,ae)}var Ce=ms;function ds(e,t){return function(r,o){if(r==null)return r;if(!T(r))return e(r,o);for(var a=r.length,n=t?a:-1,f=Object(r);(t?n--:++n<a)&&o(f[n],n,f)!==!1;);return r}}var mr=ds;var ls=mr(Ce),Ie=ls;function cs(e,t,r,o){return Ie(e,function(a,n,f){t(o,a,r(a),f)}),o}var dr=cs;function xs(){this.__data__=new E,this.size=0}var lr=xs;function gs(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cr=gs;function hs(e){return this.__data__.get(e)}var xr=hs;function bs(e){return this.__data__.has(e)}var gr=bs;var ys=200;function _s(e,t){var r=this.__data__;if(r instanceof E){var o=r.__data__;if(!j||o.length<ys-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new V(o)}return r.set(e,t),this.size=r.size,this}var hr=_s;function ne(e){var t=this.__data__=new E(e);this.size=t.size}ne.prototype.clear=lr;ne.prototype.delete=cr;ne.prototype.get=xr;ne.prototype.has=gr;ne.prototype.set=hr;var fe=ne;function As(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return!0;return!1}var br=As;var vs=1,Ss=2;function ws(e,t,r,o,a,n){var f=r&vs,i=e.length,p=t.length;if(i!=p&&!(f&&p>i))return!1;var u=n.get(e),m=n.get(t);if(u&&m)return u==t&&m==e;var d=-1,l=!0,O=r&Ss?new Y:void 0;for(n.set(e,t),n.set(t,e);++d<i;){var _=e[d],A=t[d];if(o)var I=f?o(A,_,d,t,e,n):o(_,A,d,e,t,n);if(I!==void 0){if(I)continue;l=!1;break}if(O){if(!br(t,function(G,W){if(!Q(O,W)&&(_===G||a(_,G,r,o,n)))return O.push(W)})){l=!1;break}}else if(!(_===A||a(_,A,r,o,n))){l=!1;break}}return n.delete(e),n.delete(t),l}var Me=ws;var Ts=g.Uint8Array,ke=Ts;function Os(e){var t=-1,r=Array(e.size);return e.forEach(function(o,a){r[++t]=[a,o]}),r}var yr=Os;function Ps(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o}),r}var se=Ps;var Cs=1,Is=2,Ms="[object Boolean]",Es="[object Date]",js="[object Error]",Rs="[object Map]",Ds="[object Number]",Ls="[object RegExp]",Ns="[object Set]",Fs="[object String]",Us="[object Symbol]",Bs="[object ArrayBuffer]",qs="[object DataView]",_r=h?h.prototype:void 0,ze=_r?_r.valueOf:void 0;function Gs(e,t,r,o,a,n,f){switch(r){case qs:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Bs:return!(e.byteLength!=t.byteLength||!n(new ke(e),new ke(t)));case Ms:case Es:case Ds:return k(+e,+t);case js:return e.name==t.name&&e.message==t.message;case Ls:case Fs:return e==t+"";case Rs:var i=yr;case Ns:var p=o&Cs;if(i||(i=se),e.size!=t.size&&!p)return!1;var u=f.get(e);if(u)return u==t;o|=Is,f.set(e,t);var m=Me(i(e),i(t),o,a,n,f);return f.delete(e),m;case Us:if(ze)return ze.call(e)==ze.call(t)}return!1}var Ar=Gs;function Ws(e,t,r){var o=t(e);return x(e)?o:Oe(o,r(e))}var vr=Ws;function Vs(e,t){for(var r=-1,o=e==null?0:e.length,a=0,n=[];++r<o;){var f=e[r];t(f,r,e)&&(n[a++]=f)}return n}var Sr=Vs;function Hs(){return[]}var wr=Hs;var ks=Object.prototype,zs=ks.propertyIsEnumerable,Tr=Object.getOwnPropertySymbols,Ks=Tr?function(e){return e==null?[]:(e=Object(e),Sr(Tr(e),function(t){return zs.call(e,t)}))}:wr,Or=Ks;function Zs(e){return vr(e,ae,Or)}var Ke=Zs;var $s=1,Js=Object.prototype,Ys=Js.hasOwnProperty;function Xs(e,t,r,o,a,n){var f=r&$s,i=Ke(e),p=i.length,u=Ke(t),m=u.length;if(p!=m&&!f)return!1;for(var d=p;d--;){var l=i[d];if(!(f?l in t:Ys.call(t,l)))return!1}var O=n.get(e),_=n.get(t);if(O&&_)return O==t&&_==e;var A=!0;n.set(e,t),n.set(t,e);for(var I=f;++d<p;){l=i[d];var G=e[l],W=t[l];if(o)var Qe=f?o(W,G,l,t,e,n):o(G,W,l,e,t,n);if(!(Qe===void 0?G===W||a(G,W,r,o,n):Qe)){A=!1;break}I||(I=l=="constructor")}if(A&&!I){var he=e.constructor,be=t.constructor;he!=be&&"constructor"in e&&"constructor"in t&&!(typeof he=="function"&&he instanceof he&&typeof be=="function"&&be instanceof be)&&(A=!1)}return n.delete(e),n.delete(t),A}var Pr=Xs;var Qs=b(g,"DataView"),Ee=Qs;var ei=b(g,"Promise"),je=ei;var ti=b(g,"Set"),F=ti;var ri=b(g,"WeakMap"),Re=ri;var Cr="[object Map]",oi="[object Object]",Ir="[object Promise]",Mr="[object Set]",Er="[object WeakMap]",jr="[object DataView]",ai=P(Ee),ni=P(j),fi=P(je),si=P(F),ii=P(Re),H=v;(Ee&&H(new Ee(new ArrayBuffer(1)))!=jr||j&&H(new j)!=Cr||je&&H(je.resolve())!=Ir||F&&H(new F)!=Mr||Re&&H(new Re)!=Er)&&(H=function(e){var t=v(e),r=t==oi?e.constructor:void 0,o=r?P(r):"";if(o)switch(o){case ai:return jr;case ni:return Cr;case fi:return Ir;case si:return Mr;case ii:return Er}return t});var Ze=H;var pi=1,Rr="[object Arguments]",Dr="[object Array]",De="[object Object]",ui=Object.prototype,Lr=ui.hasOwnProperty;function mi(e,t,r,o,a,n){var f=x(e),i=x(t),p=f?Dr:Ze(e),u=i?Dr:Ze(t);p=p==Rr?De:p,u=u==Rr?De:u;var m=p==De,d=u==De,l=p==u;if(l&&xe(e)){if(!xe(t))return!1;f=!0,m=!1}if(l&&!m)return n||(n=new fe),f||Pe(e)?Me(e,t,r,o,a,n):Ar(e,t,p,r,o,a,n);if(!(r&pi)){var O=m&&Lr.call(e,"__wrapped__"),_=d&&Lr.call(t,"__wrapped__");if(O||_){var A=O?e.value():e,I=_?t.value():t;return n||(n=new fe),a(A,I,r,o,n)}}return l?(n||(n=new fe),Pr(e,t,r,o,a,n)):!1}var Nr=mi;function Fr(e,t,r,o,a){return e===t?!0:e==null||t==null||!y(e)&&!y(t)?e!==e&&t!==t:Nr(e,t,r,o,Fr,a)}var Le=Fr;var di=1,li=2;function ci(e,t,r,o){var a=r.length,n=a,f=!o;if(e==null)return!n;for(e=Object(e);a--;){var i=r[a];if(f&&i[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++a<n;){i=r[a];var p=i[0],u=e[p],m=i[1];if(f&&i[2]){if(u===void 0&&!(p in e))return!1}else{var d=new fe;if(o)var l=o(u,m,p,e,t,d);if(!(l===void 0?Le(m,u,di|li,o,d):l))return!1}}return!0}var Ur=ci;function xi(e){return e===e&&!S(e)}var Ne=xi;function gi(e){for(var t=ae(e),r=t.length;r--;){var o=t[r],a=e[o];t[r]=[o,a,Ne(a)]}return t}var Br=gi;function hi(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var Fe=hi;function bi(e){var t=Br(e);return t.length==1&&t[0][2]?Fe(t[0][0],t[0][1]):function(r){return r===e||Ur(r,e,t)}}var qr=bi;var yi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_i=/^\w*$/;function Ai(e,t){if(x(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||w(e)?!0:_i.test(e)||!yi.test(e)||t!=null&&e in Object(t)}var ie=Ai;var vi="Expected a function";function $e(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(vi);var r=function(){var o=arguments,a=t?t.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var f=e.apply(this,o);return r.cache=n.set(a,f)||n,f};return r.cache=new($e.Cache||V),r}$e.Cache=V;var Gr=$e;var Si=500;function wi(e){var t=Gr(e,function(o){return r.size===Si&&r.clear(),o}),r=t.cache;return t}var Wr=wi;var Ti=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oi=/\\(\\)?/g,Pi=Wr(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ti,function(r,o,a,n){t.push(a?n.replace(Oi,"$1"):o||r)}),t}),Vr=Pi;var Ci=1/0,Hr=h?h.prototype:void 0,kr=Hr?Hr.toString:void 0;function zr(e){if(typeof e=="string")return e;if(x(e))return D(e,zr)+"";if(w(e))return kr?kr.call(e):"";var t=e+"";return t=="0"&&1/e==-Ci?"-0":t}var Kr=zr;function Ii(e){return e==null?"":Kr(e)}var U=Ii;function Mi(e,t){return x(e)?e:ie(e,t)?[e]:Vr(U(e))}var Ue=Mi;var Ei=1/0;function ji(e){if(typeof e=="string"||w(e))return e;var t=e+"";return t=="0"&&1/e==-Ei?"-0":t}var B=ji;function Ri(e,t){t=Ue(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[B(t[r++])];return r&&r==o?e:void 0}var pe=Ri;function Di(e,t,r){var o=e==null?void 0:pe(e,t);return o===void 0?r:o}var Zr=Di;function Li(e,t){return e!=null&&t in Object(e)}var $r=Li;function Ni(e,t,r){t=Ue(t,e);for(var o=-1,a=t.length,n=!1;++o<a;){var f=B(t[o]);if(!(n=e!=null&&r(e,f)))break;e=e[f]}return n||++o!=a?n:(a=e==null?0:e.length,!!a&&z(a)&&K(f,a)&&(x(e)||ee(e)))}var Jr=Ni;function Fi(e,t){return e!=null&&Jr(e,t,$r)}var Yr=Fi;var Ui=1,Bi=2;function qi(e,t){return ie(e)&&Ne(t)?Fe(B(e),t):function(r){var o=Zr(r,e);return o===void 0&&o===t?Yr(r,e):Le(t,o,Ui|Bi)}}var Xr=qi;function Gi(e){return function(t){return _optionalChain([t, 'optionalAccess', _3 => _3[e]])}}var Qr=Gi;function Wi(e){return function(t){return pe(t,e)}}var eo=Wi;function Vi(e){return ie(e)?Qr(B(e)):eo(e)}var to=Vi;function Hi(e){return typeof e=="function"?e:e==null?N:typeof e=="object"?x(e)?Xr(e[0],e[1]):qr(e):to(e)}var q=Hi;function ki(e,t){return function(r,o){var a=x(r)?$t:dr,n=t?t():{};return a(r,e,q(o,2),n)}}var Be=ki;var zi=Object.prototype,Ki=zi.hasOwnProperty,Zi=Be(function(e,t,r){Ki.call(e,r)?e[r].push(t):oe(e,r,[t])}),$i= exports.d =Zi;function Ji(){}var ro=Ji;var Yi=1/0,Xi=F&&1/se(new F([,-0]))[1]==Yi?function(e){return new F(e)}:ro,oo=Xi;var Qi=200;function ep(e,t,r){var o=-1,a=we,n=e.length,f=!0,i=[],p=i;if(r)f=!1,a=Te;else if(n>=Qi){var u=t?null:oo(e);if(u)return se(u);f=!1,a=Q,p=new Y}else p=t?[]:i;e:for(;++o<n;){var m=e[o],d=t?t(m):m;if(m=r||m!==0?m:0,f&&d===d){for(var l=p.length;l--;)if(p[l]===d)continue e;t&&p.push(d),i.push(m)}else a(p,d,r)||(p!==i&&p.push(d),i.push(m))}return i}var ue=ep;function tp(e){return e&&e.length?ue(e):[]}var rp=tp;function op(e){var t=e==null?0:e.length;return t?L(e,1):[]}var ap=op;function np(e,t,r){var o=e.length;return r=r===void 0?o:r,!t&&r>=o?e:ye(e,t,r)}var ao=np;var fp="\\ud800-\\udfff",sp="\\u0300-\\u036f",ip="\\ufe20-\\ufe2f",pp="\\u20d0-\\u20ff",up=sp+ip+pp,mp="\\ufe0e\\ufe0f",dp="\\u200d",lp=RegExp("["+dp+fp+up+mp+"]");function cp(e){return lp.test(e)}var qe=cp;function xp(e){return e.split("")}var no=xp;var fo="\\ud800-\\udfff",gp="\\u0300-\\u036f",hp="\\ufe20-\\ufe2f",bp="\\u20d0-\\u20ff",yp=gp+hp+bp,_p="\\ufe0e\\ufe0f",Ap="["+fo+"]",Je="["+yp+"]",Ye="\\ud83c[\\udffb-\\udfff]",vp="(?:"+Je+"|"+Ye+")",so="[^"+fo+"]",io="(?:\\ud83c[\\udde6-\\uddff]){2}",po="[\\ud800-\\udbff][\\udc00-\\udfff]",Sp="\\u200d",uo=vp+"?",mo="["+_p+"]?",wp="(?:"+Sp+"(?:"+[so,io,po].join("|")+")"+mo+uo+")*",Tp=mo+uo+wp,Op="(?:"+[so+Je+"?",Je,io,po,Ap].join("|")+")",Pp=RegExp(Ye+"(?="+Ye+")|"+Op+Tp,"g");function Cp(e){return e.match(Pp)||[]}var lo=Cp;function Ip(e){return qe(e)?lo(e):no(e)}var co=Ip;function Mp(e){return function(t){t=U(t);var r=qe(t)?co(t):void 0,o=r?r[0]:t.charAt(0),a=r?ao(r,1).join(""):t.slice(1);return o[e]()+a}}var xo=Mp;var Ep=xo("toUpperCase"),go=Ep;function jp(e,t,r,o){var a=-1,n=e==null?0:e.length;for(o&&n&&(r=e[++a]);++a<n;)r=t(r,e[a],a,e);return r}var ho=jp;function Rp(e){return function(t){return _optionalChain([e, 'optionalAccess', _4 => _4[t]])}}var bo=Rp;var Dp={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Lp=bo(Dp),yo=Lp;var Np=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Fp="\\u0300-\\u036f",Up="\\ufe20-\\ufe2f",Bp="\\u20d0-\\u20ff",qp=Fp+Up+Bp,Gp="["+qp+"]",Wp=RegExp(Gp,"g");function Vp(e){return e=U(e),e&&e.replace(Np,yo).replace(Wp,"")}var _o=Vp;var Hp=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function kp(e){return e.match(Hp)||[]}var Ao=kp;var zp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Kp(e){return zp.test(e)}var vo=Kp;var Po="\\ud800-\\udfff",Zp="\\u0300-\\u036f",$p="\\ufe20-\\ufe2f",Jp="\\u20d0-\\u20ff",Yp=Zp+$p+Jp,Co="\\u2700-\\u27bf",Io="a-z\\xdf-\\xf6\\xf8-\\xff",Xp="\\xac\\xb1\\xd7\\xf7",Qp="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",eu="\\u2000-\\u206f",tu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Mo="A-Z\\xc0-\\xd6\\xd8-\\xde",ru="\\ufe0e\\ufe0f",Eo=Xp+Qp+eu+tu,jo="['\u2019]",So="["+Eo+"]",ou="["+Yp+"]",Ro="\\d+",au="["+Co+"]",Do="["+Io+"]",Lo="[^"+Po+Eo+Ro+Co+Io+Mo+"]",nu="\\ud83c[\\udffb-\\udfff]",fu="(?:"+ou+"|"+nu+")",su="[^"+Po+"]",No="(?:\\ud83c[\\udde6-\\uddff]){2}",Fo="[\\ud800-\\udbff][\\udc00-\\udfff]",me="["+Mo+"]",iu="\\u200d",wo="(?:"+Do+"|"+Lo+")",pu="(?:"+me+"|"+Lo+")",To="(?:"+jo+"(?:d|ll|m|re|s|t|ve))?",Oo="(?:"+jo+"(?:D|LL|M|RE|S|T|VE))?",Uo=fu+"?",Bo="["+ru+"]?",uu="(?:"+iu+"(?:"+[su,No,Fo].join("|")+")"+Bo+Uo+")*",mu="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",du="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",lu=Bo+Uo+uu,cu="(?:"+[au,No,Fo].join("|")+")"+lu,xu=RegExp([me+"?"+Do+"+"+To+"(?="+[So,me,"$"].join("|")+")",pu+"+"+Oo+"(?="+[So,me+wo,"$"].join("|")+")",me+"?"+wo+"+"+To,me+"+"+Oo,du,mu,Ro,cu].join("|"),"g");function gu(e){return e.match(xu)||[]}var qo=gu;function hu(e,t,r){return e=U(e),t=r?void 0:t,t===void 0?vo(e)?qo(e):Ao(e):e.match(t)||[]}var Go=hu;var bu="['\u2019]",yu=RegExp(bu,"g");function _u(e){return function(t){return ho(Go(_o(t).replace(yu,"")),e,"")}}var Wo=_u;function Au(e,t){var r=-1,o=T(e)?Array(e.length):[];return Ie(e,function(a,n,f){o[++r]=t(a,n,f)}),o}var Vo=Au;var vu=Be(function(e,t,r){oe(e,r,t)}),Xe= exports.e =vu;function Su(e,t){var r={};return t=q(t,3),Ce(e,function(o,a,n){oe(r,a,t(o,a,n))}),r}var wu=Su;function Tu(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var Ho=Tu;function Ou(e,t){if(e!==t){var r=e!==void 0,o=e===null,a=e===e,n=w(e),f=t!==void 0,i=t===null,p=t===t,u=w(t);if(!i&&!u&&!n&&e>t||n&&f&&p&&!i&&!u||o&&f&&p||!r&&p||!a)return 1;if(!o&&!n&&!u&&e<t||u&&r&&a&&!o&&!n||i&&r&&a||!f&&a||!p)return-1}return 0}var ko=Ou;function Pu(e,t,r){for(var o=-1,a=e.criteria,n=t.criteria,f=a.length,i=r.length;++o<f;){var p=ko(a[o],n[o]);if(p){if(o>=i)return p;var u=r[o];return p*(u=="desc"?-1:1)}}return e.index-t.index}var zo=Pu;function Cu(e,t,r){t.length?t=D(t,function(n){return x(n)?function(f){return pe(f,n.length===1?n[0]:n)}:n}):t=[N];var o=-1;t=D(t,X(q));var a=Vo(e,function(n,f,i){var p=D(t,function(u){return u(n)});return{criteria:p,index:++o,value:n}});return Ho(a,function(n,f){return zo(n,f,r)})}var Ko=Cu;var Iu=re(function(e,t){if(e==null)return[];var r=t.length;return r>1&&le(e,t[0],t[1])?t=[]:r>2&&le(t[0],t[1],t[2])&&(t=[t[0]]),Ko(e,L(t,1),[])}),Mu= exports.g =Iu;var Eu=Wo(function(e,t,r){return e+(r?" ":"")+go(t)}),ju= exports.h =Eu;var Ru=re(function(e){return ue(L(e,1,ce,!0))}),Du= exports.i =Ru;function Lu(e,t){return e&&e.length?ue(e,q(t,2)):[]}var Nu=Lu;var Fu="A command line interface for programmatic operations across Transcend.",Uu= exports.m ="8.23.1";var _privacytypes = require('@transcend-io/privacy-types');var fy="transcend",$o= exports.o ="https://app.transcend.io",sy= exports.p =`${$o}/infrastructure/integrations`,iy= exports.q =`${$o}/data-map/data-inventory/data-points`,py= exports.r =process.env.TRANSCEND_API_URL||"https://api.transcend.io",uy= exports.s =process.env.TRANSCEND_CONSENT_API_URL||"https://consent.transcend.io",my= exports.t ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ManageEmailTemplates],dataSilos:[_privacytypes.ScopeName.ManageDataMap,_privacytypes.ScopeName.ConnectDataSilos],enrichers:[_privacytypes.ScopeName.ManageRequestIdentities],businessEntities:[_privacytypes.ScopeName.ManageDataInventory],processingActivities:[_privacytypes.ScopeName.ManageDataMap],identifiers:[_privacytypes.ScopeName.ManageRequestIdentities],customFields:[_privacytypes.ScopeName.ManageGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ManageDataFlow],cookies:[_privacytypes.ScopeName.ManageDataFlow],consentManager:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],partitions:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],actions:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ManagePrompts],promptPartials:[_privacytypes.ScopeName.ManagePrompts],promptGroups:[_privacytypes.ScopeName.ManagePrompts],agents:[_privacytypes.ScopeName.ManagePathfinder],agentFunctions:[_privacytypes.ScopeName.ManagePathfinder],agentFiles:[_privacytypes.ScopeName.ManagePathfinder],vendors:[_privacytypes.ScopeName.ManageDataInventory],dataCategories:[_privacytypes.ScopeName.ManageDataInventory],processingPurposes:[_privacytypes.ScopeName.ManageDataInventory],actionItems:[_privacytypes.ScopeName.ManageAllActionItems,_privacytypes.ScopeName.ViewGlobalAttributes],actionItemCollections:[_privacytypes.ScopeName.ManageActionItemCollections],teams:[_privacytypes.ScopeName.ManageAccessControl],messages:[_privacytypes.ScopeName.ManageIntlMessages],privacyCenters:[_privacytypes.ScopeName.ManagePrivacyCenter],policies:[_privacytypes.ScopeName.ManagePolicies],assessments:[_privacytypes.ScopeName.ManageAssessments],assessmentTemplates:[_privacytypes.ScopeName.ManageAssessments],purposes:[_privacytypes.ScopeName.ManageConsentManager,_privacytypes.ScopeName.ManagePreferenceStoreSettings]},dy= exports.u ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ViewEmailTemplates],dataSilos:[_privacytypes.ScopeName.ViewDataMap,_privacytypes.ScopeName.ViewDataSubjectRequestSettings],enrichers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],businessEntities:[_privacytypes.ScopeName.ViewDataInventory],processingActivities:[_privacytypes.ScopeName.ViewDataInventory],identifiers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],customFields:[_privacytypes.ScopeName.ViewGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ViewDataFlow],cookies:[_privacytypes.ScopeName.ViewDataFlow],consentManager:[_privacytypes.ScopeName.ViewConsentManager],partitions:[_privacytypes.ScopeName.ViewConsentManager],actions:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ViewPrompts],promptPartials:[_privacytypes.ScopeName.ViewPrompts],promptGroups:[_privacytypes.ScopeName.ViewPrompts],agents:[_privacytypes.ScopeName.ViewPathfinder],agentFunctions:[_privacytypes.ScopeName.ViewPathfinder],agentFiles:[_privacytypes.ScopeName.ViewPathfinder],vendors:[_privacytypes.ScopeName.ViewDataInventory],dataCategories:[_privacytypes.ScopeName.ViewDataInventory],processingPurposes:[_privacytypes.ScopeName.ViewDataInventory],actionItemCollections:[_privacytypes.ScopeName.ViewAllActionItems],actionItems:[_privacytypes.ScopeName.ViewAllActionItems],teams:[_privacytypes.ScopeName.ViewScopes],messages:[_privacytypes.ScopeName.ViewIntlMessages],privacyCenters:[_privacytypes.ScopeName.ViewPrivacyCenter],policies:[_privacytypes.ScopeName.ViewPolicies],assessments:[_privacytypes.ScopeName.ViewAssessments],assessmentTemplates:[_privacytypes.ScopeName.ViewAssessments],purposes:[_privacytypes.ScopeName.ViewConsentManager,_privacytypes.ScopeName.ViewPreferenceStoreSettings]},ly= exports.v ={apiKeys:"api-keys",customFields:"attributes",dataFlows:"data-flows",cookies:"cookies",consentManager:"consent-manager",partitions:"partitions",actions:"actions",dataSubjects:"data-subjects",businessEntities:"business-entities",processingActivities:"processing-activities",identifiers:"identifiers",enrichers:"enrichers",dataSilos:"data-silos",templates:"templates",prompts:"prompts",promptPartials:"prompt-partials",promptGroups:"prompt-groups",agents:"agents",agentFunctions:"agent-functions",agentFiles:"agent-files",vendors:"vendors",dataCategories:"data-categories",processingPurposes:"processing-purposes",actionItems:"action-items",actionItemCollections:"action-item-collections",teams:"teams",messages:"messages",privacyCenters:"privacy-center",policies:"policies",assessments:"assessments",assessmentTemplates:"assessment-templates",purposes:"purposes"},qu= exports.w =Xe(Object.entries(_privacytypes.TRANSCEND_SCOPES).map(([e,t])=>({...t,name:e})),"title"),cy= exports.x =Object.keys(qu),xy= exports.y =new Set([429,502,500,504,329]),gy= exports.z =process.env.DEBUG==="1";exports.a = ap; exports.b = Wa; exports.c = gf; exports.d = $i; exports.e = Xe; exports.f = wu; exports.g = Mu; exports.h = ju; exports.i = Du; exports.j = rp; exports.k = Nu; exports.l = Fu; exports.m = Uu; exports.n = fy; exports.o = $o; exports.p = sy; exports.q = iy; exports.r = py; exports.s = uy; exports.t = my; exports.u = dy; exports.v = ly; exports.w = qu; exports.x = cy; exports.y = xy; exports.z = gy;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }function Jo(e,t,r){var o=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var n=Array(a);++o<a;)n[o]=e[o+t];return n}var ye=Jo;function Yo(e,t){return e===t||e!==e&&t!==t}var k=Yo;var Xo=typeof global=="object"&&global&&global.Object===Object&&global,_e=Xo;var Qo=typeof self=="object"&&self&&self.Object===Object&&self,ea=_e||Qo||Function("return this")(),g=ea;var ta=g.Symbol,h=ta;var et=Object.prototype,ra=et.hasOwnProperty,oa=et.toString,de=h?h.toStringTag:void 0;function aa(e){var t=ra.call(e,de),r=e[de];try{e[de]=void 0;var o=!0}catch (e2){}var a=oa.call(e);return o&&(t?e[de]=r:delete e[de]),a}var tt=aa;var na=Object.prototype,fa=na.toString;function sa(e){return fa.call(e)}var rt=sa;var ia="[object Null]",pa="[object Undefined]",ot=h?h.toStringTag:void 0;function ua(e){return e==null?e===void 0?pa:ia:ot&&ot in Object(e)?tt(e):rt(e)}var v=ua;function ma(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var S=ma;var da="[object AsyncFunction]",la="[object Function]",ca="[object GeneratorFunction]",xa="[object Proxy]";function ga(e){if(!S(e))return!1;var t=v(e);return t==la||t==ca||t==da||t==xa}var Ae=ga;var ha=9007199254740991;function ba(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ha}var z=ba;function ya(e){return e!=null&&z(e.length)&&!Ae(e)}var T=ya;var _a=9007199254740991,Aa=/^(?:0|[1-9]\d*)$/;function va(e,t){var r=typeof e;return t=_nullishCoalesce(t, () => (_a)),!!t&&(r=="number"||r!="symbol"&&Aa.test(e))&&e>-1&&e%1==0&&e<t}var K=va;function Sa(e,t,r){if(!S(r))return!1;var o=typeof t;return(o=="number"?T(r)&&K(t,r.length):o=="string"&&t in r)?k(r[t],e):!1}var le=Sa;var wa=/\s/;function Ta(e){for(var t=e.length;t--&&wa.test(e.charAt(t)););return t}var at=Ta;var Oa=/^\s+/;function Pa(e){return e&&e.slice(0,at(e)+1).replace(Oa,"")}var nt=Pa;function Ca(e){return e!=null&&typeof e=="object"}var y=Ca;var Ia="[object Symbol]";function Ma(e){return typeof e=="symbol"||y(e)&&v(e)==Ia}var w=Ma;var ft=NaN,Ea=/^[-+]0x[0-9a-f]+$/i,ja=/^0b[01]+$/i,Ra=/^0o[0-7]+$/i,Da=parseInt;function La(e){if(typeof e=="number")return e;if(w(e))return ft;if(S(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=S(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=nt(e);var r=ja.test(e);return r||Ra.test(e)?Da(e.slice(2),r?2:8):Ea.test(e)?ft:+e}var st=La;var it=1/0,Na=17976931348623157e292;function Fa(e){if(!e)return e===0?e:0;if(e=st(e),e===it||e===-it){var t=e<0?-1:1;return t*Na}return e===e?e:0}var pt=Fa;function Ua(e){var t=pt(e),r=t%1;return t===t?r?t-r:t:0}var ut=Ua;var Ba=Math.ceil,qa=Math.max;function Ga(e,t,r){(r?le(e,t,r):t===void 0)?t=1:t=qa(ut(t),0);var o=e==null?0:e.length;if(!o||t<1)return[];for(var a=0,n=0,f=Array(Ba(o/t));a<o;)f[n++]=ye(e,a,a+=t);return f}var Wa=Ga;var Va=g["__core-js_shared__"],ve=Va;var mt=function(){var e=/[^.]+$/.exec(ve&&ve.keys&&ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ha(e){return!!mt&&mt in e}var dt=Ha;var ka=Function.prototype,za=ka.toString;function Ka(e){if(e!=null){try{return za.call(e)}catch (e3){}try{return e+""}catch (e4){}}return""}var P=Ka;var Za=/[\\^$.*+?()[\]{}|]/g,$a=/^\[object .+?Constructor\]$/,Ja=Function.prototype,Ya=Object.prototype,Xa=Ja.toString,Qa=Ya.hasOwnProperty,en=RegExp("^"+Xa.call(Qa).replace(Za,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tn(e){if(!S(e)||dt(e))return!1;var t=Ae(e)?en:$a;return t.test(P(e))}var lt=tn;function rn(e,t){return _optionalChain([e, 'optionalAccess', _2 => _2[t]])}var ct=rn;function on(e,t){var r=ct(e,t);return lt(r)?r:void 0}var b=on;var an=b(Object,"create"),C=an;function nn(){this.__data__=C?C(null):{},this.size=0}var xt=nn;function fn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gt=fn;var sn="__lodash_hash_undefined__",pn=Object.prototype,un=pn.hasOwnProperty;function mn(e){var t=this.__data__;if(C){var r=t[e];return r===sn?void 0:r}return un.call(t,e)?t[e]:void 0}var ht=mn;var dn=Object.prototype,ln=dn.hasOwnProperty;function cn(e){var t=this.__data__;return C?t[e]!==void 0:ln.call(t,e)}var bt=cn;var xn="__lodash_hash_undefined__";function gn(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=C&&t===void 0?xn:t,this}var yt=gn;function Z(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}Z.prototype.clear=xt;Z.prototype.delete=gt;Z.prototype.get=ht;Z.prototype.has=bt;Z.prototype.set=yt;var Ge=Z;function hn(){this.__data__=[],this.size=0}var _t=hn;function bn(e,t){for(var r=e.length;r--;)if(k(e[r][0],t))return r;return-1}var M=bn;var yn=Array.prototype,_n=yn.splice;function An(e){var t=this.__data__,r=M(t,e);if(r<0)return!1;var o=t.length-1;return r==o?t.pop():_n.call(t,r,1),--this.size,!0}var At=An;function vn(e){var t=this.__data__,r=M(t,e);return r<0?void 0:t[r][1]}var vt=vn;function Sn(e){return M(this.__data__,e)>-1}var St=Sn;function wn(e,t){var r=this.__data__,o=M(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var wt=wn;function $(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}$.prototype.clear=_t;$.prototype.delete=At;$.prototype.get=vt;$.prototype.has=St;$.prototype.set=wt;var E=$;var Tn=b(g,"Map"),j=Tn;function On(){this.size=0,this.__data__={hash:new Ge,map:new(j||E),string:new Ge}}var Tt=On;function Pn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ot=Pn;function Cn(e,t){var r=e.__data__;return Ot(t)?r[typeof t=="string"?"string":"hash"]:r.map}var R=Cn;function In(e){var t=R(this,e).delete(e);return this.size-=t?1:0,t}var Pt=In;function Mn(e){return R(this,e).get(e)}var Ct=Mn;function En(e){return R(this,e).has(e)}var It=En;function jn(e,t){var r=R(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Mt=jn;function J(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}J.prototype.clear=Tt;J.prototype.delete=Pt;J.prototype.get=Ct;J.prototype.has=It;J.prototype.set=Mt;var V=J;var Rn="__lodash_hash_undefined__";function Dn(e){return this.__data__.set(e,Rn),this}var Et=Dn;function Ln(e){return this.__data__.has(e)}var jt=Ln;function Se(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new V;++t<r;)this.add(e[t])}Se.prototype.add=Se.prototype.push=Et;Se.prototype.has=jt;var Y=Se;function Nn(e,t,r,o){for(var a=e.length,n=r+(o?1:-1);o?n--:++n<a;)if(t(e[n],n,e))return n;return-1}var Rt=Nn;function Fn(e){return e!==e}var Dt=Fn;function Un(e,t,r){for(var o=r-1,a=e.length;++o<a;)if(e[o]===t)return o;return-1}var Lt=Un;function Bn(e,t,r){return t===t?Lt(e,t,r):Rt(e,Dt,r)}var Nt=Bn;function qn(e,t){var r=e==null?0:e.length;return!!r&&Nt(e,t,0)>-1}var we=qn;function Gn(e,t,r){for(var o=-1,a=e==null?0:e.length;++o<a;)if(r(t,e[o]))return!0;return!1}var Te=Gn;function Wn(e,t){for(var r=-1,o=e==null?0:e.length,a=Array(o);++r<o;)a[r]=t(e[r],r,e);return a}var D=Wn;function Vn(e){return function(t){return e(t)}}var X=Vn;function Hn(e,t){return e.has(t)}var Q=Hn;var kn=200;function zn(e,t,r,o){var a=-1,n=we,f=!0,i=e.length,p=[],u=t.length;if(!i)return p;r&&(t=D(t,X(r))),o?(n=Te,f=!1):t.length>=kn&&(n=Q,f=!1,t=new Y(t));e:for(;++a<i;){var m=e[a],d=r==null?m:r(m);if(m=o||m!==0?m:0,f&&d===d){for(var l=u;l--;)if(t[l]===d)continue e;p.push(m)}else n(t,d,o)||p.push(m)}return p}var Ft=zn;function Kn(e,t){for(var r=-1,o=t.length,a=e.length;++r<o;)e[a+r]=t[r];return e}var Oe=Kn;var Zn="[object Arguments]";function $n(e){return y(e)&&v(e)==Zn}var We=$n;var Ut=Object.prototype,Jn=Ut.hasOwnProperty,Yn=Ut.propertyIsEnumerable,Xn=We(function(){return arguments}())?We:function(e){return y(e)&&Jn.call(e,"callee")&&!Yn.call(e,"callee")},ee=Xn;var Qn=Array.isArray,x=Qn;var Bt=h?h.isConcatSpreadable:void 0;function ef(e){return x(e)||ee(e)||!!(Bt&&e&&e[Bt])}var qt=ef;function Gt(e,t,r,o,a){var n=-1,f=e.length;for(r||(r=qt),a||(a=[]);++n<f;){var i=e[n];t>0&&r(i)?t>1?Gt(i,t-1,r,o,a):Oe(a,i):o||(a[a.length]=i)}return a}var L=Gt;function tf(e){return e}var N=tf;function rf(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Wt=rf;var Vt=Math.max;function of(e,t,r){return t=Vt(t===void 0?e.length-1:t,0),function(){for(var o=arguments,a=-1,n=Vt(o.length-t,0),f=Array(n);++a<n;)f[a]=o[t+a];a=-1;for(var i=Array(t+1);++a<t;)i[a]=o[a];return i[t]=r(f),Wt(e,this,i)}}var Ht=of;function af(e){return function(){return e}}var kt=af;var nf=function(){try{var e=b(Object,"defineProperty");return e({},"",{}),e}catch (e5){}}(),te=nf;var ff=te?function(e,t){return te(e,"toString",{configurable:!0,enumerable:!1,value:kt(t),writable:!0})}:N,zt=ff;var sf=800,pf=16,uf=Date.now;function mf(e){var t=0,r=0;return function(){var o=uf(),a=pf-(o-r);if(r=o,a>0){if(++t>=sf)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Kt=mf;var df=Kt(zt),Zt=df;function lf(e,t){return Zt(Ht(e,t,N),e+"")}var re=lf;function cf(e){return y(e)&&T(e)}var ce=cf;var xf=re(function(e,t){return ce(e)?Ft(e,L(t,1,ce,!0)):[]}),gf= exports.c =xf;function hf(e,t,r){t=="__proto__"&&te?te(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var oe=hf;function bf(e,t,r,o){for(var a=-1,n=e==null?0:e.length;++a<n;){var f=e[a];t(o,f,r(f),e)}return o}var $t=bf;function yf(e){return function(t,r,o){for(var a=-1,n=Object(t),f=o(t),i=f.length;i--;){var p=f[e?i:++a];if(r(n[p],p,n)===!1)break}return t}}var Jt=yf;var _f=Jt(),Yt=_f;function Af(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var Xt=Af;function vf(){return!1}var Qt=vf;var rr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,er=rr&&typeof module=="object"&&module&&!module.nodeType&&module,Sf=er&&er.exports===rr,tr=Sf?g.Buffer:void 0,wf=tr?tr.isBuffer:void 0,Tf=wf||Qt,xe=Tf;var Of="[object Arguments]",Pf="[object Array]",Cf="[object Boolean]",If="[object Date]",Mf="[object Error]",Ef="[object Function]",jf="[object Map]",Rf="[object Number]",Df="[object Object]",Lf="[object RegExp]",Nf="[object Set]",Ff="[object String]",Uf="[object WeakMap]",Bf="[object ArrayBuffer]",qf="[object DataView]",Gf="[object Float32Array]",Wf="[object Float64Array]",Vf="[object Int8Array]",Hf="[object Int16Array]",kf="[object Int32Array]",zf="[object Uint8Array]",Kf="[object Uint8ClampedArray]",Zf="[object Uint16Array]",$f="[object Uint32Array]",c={};c[Gf]=c[Wf]=c[Vf]=c[Hf]=c[kf]=c[zf]=c[Kf]=c[Zf]=c[$f]=!0;c[Of]=c[Pf]=c[Bf]=c[Cf]=c[qf]=c[If]=c[Mf]=c[Ef]=c[jf]=c[Rf]=c[Df]=c[Lf]=c[Nf]=c[Ff]=c[Uf]=!1;function Jf(e){return y(e)&&z(e.length)&&!!c[v(e)]}var or=Jf;var ar=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ge=ar&&typeof module=="object"&&module&&!module.nodeType&&module,Yf=ge&&ge.exports===ar,Ve=Yf&&_e.process,Xf=function(){try{var e=ge&&ge.require&&ge.require("util").types;return e||Ve&&Ve.binding&&Ve.binding("util")}catch (e6){}}(),He=Xf;var nr=He&&He.isTypedArray,Qf=nr?X(nr):or,Pe=Qf;var es=Object.prototype,ts=es.hasOwnProperty;function rs(e,t){var r=x(e),o=!r&&ee(e),a=!r&&!o&&xe(e),n=!r&&!o&&!a&&Pe(e),f=r||o||a||n,i=f?Xt(e.length,String):[],p=i.length;for(var u in e)(t||ts.call(e,u))&&!(f&&(u=="length"||a&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||K(u,p)))&&i.push(u);return i}var fr=rs;var os=Object.prototype;function as(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||os;return e===r}var sr=as;function ns(e,t){return function(r){return e(t(r))}}var ir=ns;var fs=ir(Object.keys,Object),pr=fs;var ss=Object.prototype,is=ss.hasOwnProperty;function ps(e){if(!sr(e))return pr(e);var t=[];for(var r in Object(e))is.call(e,r)&&r!="constructor"&&t.push(r);return t}var ur=ps;function us(e){return T(e)?fr(e):ur(e)}var ae=us;function ms(e,t){return e&&Yt(e,t,ae)}var Ce=ms;function ds(e,t){return function(r,o){if(r==null)return r;if(!T(r))return e(r,o);for(var a=r.length,n=t?a:-1,f=Object(r);(t?n--:++n<a)&&o(f[n],n,f)!==!1;);return r}}var mr=ds;var ls=mr(Ce),Ie=ls;function cs(e,t,r,o){return Ie(e,function(a,n,f){t(o,a,r(a),f)}),o}var dr=cs;function xs(){this.__data__=new E,this.size=0}var lr=xs;function gs(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cr=gs;function hs(e){return this.__data__.get(e)}var xr=hs;function bs(e){return this.__data__.has(e)}var gr=bs;var ys=200;function _s(e,t){var r=this.__data__;if(r instanceof E){var o=r.__data__;if(!j||o.length<ys-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new V(o)}return r.set(e,t),this.size=r.size,this}var hr=_s;function ne(e){var t=this.__data__=new E(e);this.size=t.size}ne.prototype.clear=lr;ne.prototype.delete=cr;ne.prototype.get=xr;ne.prototype.has=gr;ne.prototype.set=hr;var fe=ne;function As(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return!0;return!1}var br=As;var vs=1,Ss=2;function ws(e,t,r,o,a,n){var f=r&vs,i=e.length,p=t.length;if(i!=p&&!(f&&p>i))return!1;var u=n.get(e),m=n.get(t);if(u&&m)return u==t&&m==e;var d=-1,l=!0,O=r&Ss?new Y:void 0;for(n.set(e,t),n.set(t,e);++d<i;){var _=e[d],A=t[d];if(o)var I=f?o(A,_,d,t,e,n):o(_,A,d,e,t,n);if(I!==void 0){if(I)continue;l=!1;break}if(O){if(!br(t,function(G,W){if(!Q(O,W)&&(_===G||a(_,G,r,o,n)))return O.push(W)})){l=!1;break}}else if(!(_===A||a(_,A,r,o,n))){l=!1;break}}return n.delete(e),n.delete(t),l}var Me=ws;var Ts=g.Uint8Array,ke=Ts;function Os(e){var t=-1,r=Array(e.size);return e.forEach(function(o,a){r[++t]=[a,o]}),r}var yr=Os;function Ps(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o}),r}var se=Ps;var Cs=1,Is=2,Ms="[object Boolean]",Es="[object Date]",js="[object Error]",Rs="[object Map]",Ds="[object Number]",Ls="[object RegExp]",Ns="[object Set]",Fs="[object String]",Us="[object Symbol]",Bs="[object ArrayBuffer]",qs="[object DataView]",_r=h?h.prototype:void 0,ze=_r?_r.valueOf:void 0;function Gs(e,t,r,o,a,n,f){switch(r){case qs:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Bs:return!(e.byteLength!=t.byteLength||!n(new ke(e),new ke(t)));case Ms:case Es:case Ds:return k(+e,+t);case js:return e.name==t.name&&e.message==t.message;case Ls:case Fs:return e==t+"";case Rs:var i=yr;case Ns:var p=o&Cs;if(i||(i=se),e.size!=t.size&&!p)return!1;var u=f.get(e);if(u)return u==t;o|=Is,f.set(e,t);var m=Me(i(e),i(t),o,a,n,f);return f.delete(e),m;case Us:if(ze)return ze.call(e)==ze.call(t)}return!1}var Ar=Gs;function Ws(e,t,r){var o=t(e);return x(e)?o:Oe(o,r(e))}var vr=Ws;function Vs(e,t){for(var r=-1,o=e==null?0:e.length,a=0,n=[];++r<o;){var f=e[r];t(f,r,e)&&(n[a++]=f)}return n}var Sr=Vs;function Hs(){return[]}var wr=Hs;var ks=Object.prototype,zs=ks.propertyIsEnumerable,Tr=Object.getOwnPropertySymbols,Ks=Tr?function(e){return e==null?[]:(e=Object(e),Sr(Tr(e),function(t){return zs.call(e,t)}))}:wr,Or=Ks;function Zs(e){return vr(e,ae,Or)}var Ke=Zs;var $s=1,Js=Object.prototype,Ys=Js.hasOwnProperty;function Xs(e,t,r,o,a,n){var f=r&$s,i=Ke(e),p=i.length,u=Ke(t),m=u.length;if(p!=m&&!f)return!1;for(var d=p;d--;){var l=i[d];if(!(f?l in t:Ys.call(t,l)))return!1}var O=n.get(e),_=n.get(t);if(O&&_)return O==t&&_==e;var A=!0;n.set(e,t),n.set(t,e);for(var I=f;++d<p;){l=i[d];var G=e[l],W=t[l];if(o)var Qe=f?o(W,G,l,t,e,n):o(G,W,l,e,t,n);if(!(Qe===void 0?G===W||a(G,W,r,o,n):Qe)){A=!1;break}I||(I=l=="constructor")}if(A&&!I){var he=e.constructor,be=t.constructor;he!=be&&"constructor"in e&&"constructor"in t&&!(typeof he=="function"&&he instanceof he&&typeof be=="function"&&be instanceof be)&&(A=!1)}return n.delete(e),n.delete(t),A}var Pr=Xs;var Qs=b(g,"DataView"),Ee=Qs;var ei=b(g,"Promise"),je=ei;var ti=b(g,"Set"),F=ti;var ri=b(g,"WeakMap"),Re=ri;var Cr="[object Map]",oi="[object Object]",Ir="[object Promise]",Mr="[object Set]",Er="[object WeakMap]",jr="[object DataView]",ai=P(Ee),ni=P(j),fi=P(je),si=P(F),ii=P(Re),H=v;(Ee&&H(new Ee(new ArrayBuffer(1)))!=jr||j&&H(new j)!=Cr||je&&H(je.resolve())!=Ir||F&&H(new F)!=Mr||Re&&H(new Re)!=Er)&&(H=function(e){var t=v(e),r=t==oi?e.constructor:void 0,o=r?P(r):"";if(o)switch(o){case ai:return jr;case ni:return Cr;case fi:return Ir;case si:return Mr;case ii:return Er}return t});var Ze=H;var pi=1,Rr="[object Arguments]",Dr="[object Array]",De="[object Object]",ui=Object.prototype,Lr=ui.hasOwnProperty;function mi(e,t,r,o,a,n){var f=x(e),i=x(t),p=f?Dr:Ze(e),u=i?Dr:Ze(t);p=p==Rr?De:p,u=u==Rr?De:u;var m=p==De,d=u==De,l=p==u;if(l&&xe(e)){if(!xe(t))return!1;f=!0,m=!1}if(l&&!m)return n||(n=new fe),f||Pe(e)?Me(e,t,r,o,a,n):Ar(e,t,p,r,o,a,n);if(!(r&pi)){var O=m&&Lr.call(e,"__wrapped__"),_=d&&Lr.call(t,"__wrapped__");if(O||_){var A=O?e.value():e,I=_?t.value():t;return n||(n=new fe),a(A,I,r,o,n)}}return l?(n||(n=new fe),Pr(e,t,r,o,a,n)):!1}var Nr=mi;function Fr(e,t,r,o,a){return e===t?!0:e==null||t==null||!y(e)&&!y(t)?e!==e&&t!==t:Nr(e,t,r,o,Fr,a)}var Le=Fr;var di=1,li=2;function ci(e,t,r,o){var a=r.length,n=a,f=!o;if(e==null)return!n;for(e=Object(e);a--;){var i=r[a];if(f&&i[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++a<n;){i=r[a];var p=i[0],u=e[p],m=i[1];if(f&&i[2]){if(u===void 0&&!(p in e))return!1}else{var d=new fe;if(o)var l=o(u,m,p,e,t,d);if(!(l===void 0?Le(m,u,di|li,o,d):l))return!1}}return!0}var Ur=ci;function xi(e){return e===e&&!S(e)}var Ne=xi;function gi(e){for(var t=ae(e),r=t.length;r--;){var o=t[r],a=e[o];t[r]=[o,a,Ne(a)]}return t}var Br=gi;function hi(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var Fe=hi;function bi(e){var t=Br(e);return t.length==1&&t[0][2]?Fe(t[0][0],t[0][1]):function(r){return r===e||Ur(r,e,t)}}var qr=bi;var yi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_i=/^\w*$/;function Ai(e,t){if(x(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||w(e)?!0:_i.test(e)||!yi.test(e)||t!=null&&e in Object(t)}var ie=Ai;var vi="Expected a function";function $e(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(vi);var r=function(){var o=arguments,a=t?t.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var f=e.apply(this,o);return r.cache=n.set(a,f)||n,f};return r.cache=new($e.Cache||V),r}$e.Cache=V;var Gr=$e;var Si=500;function wi(e){var t=Gr(e,function(o){return r.size===Si&&r.clear(),o}),r=t.cache;return t}var Wr=wi;var Ti=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oi=/\\(\\)?/g,Pi=Wr(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ti,function(r,o,a,n){t.push(a?n.replace(Oi,"$1"):o||r)}),t}),Vr=Pi;var Ci=1/0,Hr=h?h.prototype:void 0,kr=Hr?Hr.toString:void 0;function zr(e){if(typeof e=="string")return e;if(x(e))return D(e,zr)+"";if(w(e))return kr?kr.call(e):"";var t=e+"";return t=="0"&&1/e==-Ci?"-0":t}var Kr=zr;function Ii(e){return e==null?"":Kr(e)}var U=Ii;function Mi(e,t){return x(e)?e:ie(e,t)?[e]:Vr(U(e))}var Ue=Mi;var Ei=1/0;function ji(e){if(typeof e=="string"||w(e))return e;var t=e+"";return t=="0"&&1/e==-Ei?"-0":t}var B=ji;function Ri(e,t){t=Ue(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[B(t[r++])];return r&&r==o?e:void 0}var pe=Ri;function Di(e,t,r){var o=e==null?void 0:pe(e,t);return o===void 0?r:o}var Zr=Di;function Li(e,t){return e!=null&&t in Object(e)}var $r=Li;function Ni(e,t,r){t=Ue(t,e);for(var o=-1,a=t.length,n=!1;++o<a;){var f=B(t[o]);if(!(n=e!=null&&r(e,f)))break;e=e[f]}return n||++o!=a?n:(a=e==null?0:e.length,!!a&&z(a)&&K(f,a)&&(x(e)||ee(e)))}var Jr=Ni;function Fi(e,t){return e!=null&&Jr(e,t,$r)}var Yr=Fi;var Ui=1,Bi=2;function qi(e,t){return ie(e)&&Ne(t)?Fe(B(e),t):function(r){var o=Zr(r,e);return o===void 0&&o===t?Yr(r,e):Le(t,o,Ui|Bi)}}var Xr=qi;function Gi(e){return function(t){return _optionalChain([t, 'optionalAccess', _3 => _3[e]])}}var Qr=Gi;function Wi(e){return function(t){return pe(t,e)}}var eo=Wi;function Vi(e){return ie(e)?Qr(B(e)):eo(e)}var to=Vi;function Hi(e){return typeof e=="function"?e:e==null?N:typeof e=="object"?x(e)?Xr(e[0],e[1]):qr(e):to(e)}var q=Hi;function ki(e,t){return function(r,o){var a=x(r)?$t:dr,n=t?t():{};return a(r,e,q(o,2),n)}}var Be=ki;var zi=Object.prototype,Ki=zi.hasOwnProperty,Zi=Be(function(e,t,r){Ki.call(e,r)?e[r].push(t):oe(e,r,[t])}),$i= exports.d =Zi;function Ji(){}var ro=Ji;var Yi=1/0,Xi=F&&1/se(new F([,-0]))[1]==Yi?function(e){return new F(e)}:ro,oo=Xi;var Qi=200;function ep(e,t,r){var o=-1,a=we,n=e.length,f=!0,i=[],p=i;if(r)f=!1,a=Te;else if(n>=Qi){var u=t?null:oo(e);if(u)return se(u);f=!1,a=Q,p=new Y}else p=t?[]:i;e:for(;++o<n;){var m=e[o],d=t?t(m):m;if(m=r||m!==0?m:0,f&&d===d){for(var l=p.length;l--;)if(p[l]===d)continue e;t&&p.push(d),i.push(m)}else a(p,d,r)||(p!==i&&p.push(d),i.push(m))}return i}var ue=ep;function tp(e){return e&&e.length?ue(e):[]}var rp=tp;function op(e){var t=e==null?0:e.length;return t?L(e,1):[]}var ap=op;function np(e,t,r){var o=e.length;return r=r===void 0?o:r,!t&&r>=o?e:ye(e,t,r)}var ao=np;var fp="\\ud800-\\udfff",sp="\\u0300-\\u036f",ip="\\ufe20-\\ufe2f",pp="\\u20d0-\\u20ff",up=sp+ip+pp,mp="\\ufe0e\\ufe0f",dp="\\u200d",lp=RegExp("["+dp+fp+up+mp+"]");function cp(e){return lp.test(e)}var qe=cp;function xp(e){return e.split("")}var no=xp;var fo="\\ud800-\\udfff",gp="\\u0300-\\u036f",hp="\\ufe20-\\ufe2f",bp="\\u20d0-\\u20ff",yp=gp+hp+bp,_p="\\ufe0e\\ufe0f",Ap="["+fo+"]",Je="["+yp+"]",Ye="\\ud83c[\\udffb-\\udfff]",vp="(?:"+Je+"|"+Ye+")",so="[^"+fo+"]",io="(?:\\ud83c[\\udde6-\\uddff]){2}",po="[\\ud800-\\udbff][\\udc00-\\udfff]",Sp="\\u200d",uo=vp+"?",mo="["+_p+"]?",wp="(?:"+Sp+"(?:"+[so,io,po].join("|")+")"+mo+uo+")*",Tp=mo+uo+wp,Op="(?:"+[so+Je+"?",Je,io,po,Ap].join("|")+")",Pp=RegExp(Ye+"(?="+Ye+")|"+Op+Tp,"g");function Cp(e){return e.match(Pp)||[]}var lo=Cp;function Ip(e){return qe(e)?lo(e):no(e)}var co=Ip;function Mp(e){return function(t){t=U(t);var r=qe(t)?co(t):void 0,o=r?r[0]:t.charAt(0),a=r?ao(r,1).join(""):t.slice(1);return o[e]()+a}}var xo=Mp;var Ep=xo("toUpperCase"),go=Ep;function jp(e,t,r,o){var a=-1,n=e==null?0:e.length;for(o&&n&&(r=e[++a]);++a<n;)r=t(r,e[a],a,e);return r}var ho=jp;function Rp(e){return function(t){return _optionalChain([e, 'optionalAccess', _4 => _4[t]])}}var bo=Rp;var Dp={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Lp=bo(Dp),yo=Lp;var Np=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Fp="\\u0300-\\u036f",Up="\\ufe20-\\ufe2f",Bp="\\u20d0-\\u20ff",qp=Fp+Up+Bp,Gp="["+qp+"]",Wp=RegExp(Gp,"g");function Vp(e){return e=U(e),e&&e.replace(Np,yo).replace(Wp,"")}var _o=Vp;var Hp=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function kp(e){return e.match(Hp)||[]}var Ao=kp;var zp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Kp(e){return zp.test(e)}var vo=Kp;var Po="\\ud800-\\udfff",Zp="\\u0300-\\u036f",$p="\\ufe20-\\ufe2f",Jp="\\u20d0-\\u20ff",Yp=Zp+$p+Jp,Co="\\u2700-\\u27bf",Io="a-z\\xdf-\\xf6\\xf8-\\xff",Xp="\\xac\\xb1\\xd7\\xf7",Qp="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",eu="\\u2000-\\u206f",tu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Mo="A-Z\\xc0-\\xd6\\xd8-\\xde",ru="\\ufe0e\\ufe0f",Eo=Xp+Qp+eu+tu,jo="['\u2019]",So="["+Eo+"]",ou="["+Yp+"]",Ro="\\d+",au="["+Co+"]",Do="["+Io+"]",Lo="[^"+Po+Eo+Ro+Co+Io+Mo+"]",nu="\\ud83c[\\udffb-\\udfff]",fu="(?:"+ou+"|"+nu+")",su="[^"+Po+"]",No="(?:\\ud83c[\\udde6-\\uddff]){2}",Fo="[\\ud800-\\udbff][\\udc00-\\udfff]",me="["+Mo+"]",iu="\\u200d",wo="(?:"+Do+"|"+Lo+")",pu="(?:"+me+"|"+Lo+")",To="(?:"+jo+"(?:d|ll|m|re|s|t|ve))?",Oo="(?:"+jo+"(?:D|LL|M|RE|S|T|VE))?",Uo=fu+"?",Bo="["+ru+"]?",uu="(?:"+iu+"(?:"+[su,No,Fo].join("|")+")"+Bo+Uo+")*",mu="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",du="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",lu=Bo+Uo+uu,cu="(?:"+[au,No,Fo].join("|")+")"+lu,xu=RegExp([me+"?"+Do+"+"+To+"(?="+[So,me,"$"].join("|")+")",pu+"+"+Oo+"(?="+[So,me+wo,"$"].join("|")+")",me+"?"+wo+"+"+To,me+"+"+Oo,du,mu,Ro,cu].join("|"),"g");function gu(e){return e.match(xu)||[]}var qo=gu;function hu(e,t,r){return e=U(e),t=r?void 0:t,t===void 0?vo(e)?qo(e):Ao(e):e.match(t)||[]}var Go=hu;var bu="['\u2019]",yu=RegExp(bu,"g");function _u(e){return function(t){return ho(Go(_o(t).replace(yu,"")),e,"")}}var Wo=_u;function Au(e,t){var r=-1,o=T(e)?Array(e.length):[];return Ie(e,function(a,n,f){o[++r]=t(a,n,f)}),o}var Vo=Au;var vu=Be(function(e,t,r){oe(e,r,t)}),Xe= exports.e =vu;function Su(e,t){var r={};return t=q(t,3),Ce(e,function(o,a,n){oe(r,a,t(o,a,n))}),r}var wu=Su;function Tu(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var Ho=Tu;function Ou(e,t){if(e!==t){var r=e!==void 0,o=e===null,a=e===e,n=w(e),f=t!==void 0,i=t===null,p=t===t,u=w(t);if(!i&&!u&&!n&&e>t||n&&f&&p&&!i&&!u||o&&f&&p||!r&&p||!a)return 1;if(!o&&!n&&!u&&e<t||u&&r&&a&&!o&&!n||i&&r&&a||!f&&a||!p)return-1}return 0}var ko=Ou;function Pu(e,t,r){for(var o=-1,a=e.criteria,n=t.criteria,f=a.length,i=r.length;++o<f;){var p=ko(a[o],n[o]);if(p){if(o>=i)return p;var u=r[o];return p*(u=="desc"?-1:1)}}return e.index-t.index}var zo=Pu;function Cu(e,t,r){t.length?t=D(t,function(n){return x(n)?function(f){return pe(f,n.length===1?n[0]:n)}:n}):t=[N];var o=-1;t=D(t,X(q));var a=Vo(e,function(n,f,i){var p=D(t,function(u){return u(n)});return{criteria:p,index:++o,value:n}});return Ho(a,function(n,f){return zo(n,f,r)})}var Ko=Cu;var Iu=re(function(e,t){if(e==null)return[];var r=t.length;return r>1&&le(e,t[0],t[1])?t=[]:r>2&&le(t[0],t[1],t[2])&&(t=[t[0]]),Ko(e,L(t,1),[])}),Mu= exports.g =Iu;var Eu=Wo(function(e,t,r){return e+(r?" ":"")+go(t)}),ju= exports.h =Eu;var Ru=re(function(e){return ue(L(e,1,ce,!0))}),Du= exports.i =Ru;function Lu(e,t){return e&&e.length?ue(e,q(t,2)):[]}var Nu=Lu;var Fu="A command line interface for programmatic operations across Transcend.",Uu= exports.m ="8.24.1";var _privacytypes = require('@transcend-io/privacy-types');var fy="transcend",$o= exports.o ="https://app.transcend.io",sy= exports.p =`${$o}/infrastructure/integrations`,iy= exports.q =`${$o}/data-map/data-inventory/data-points`,py= exports.r =process.env.TRANSCEND_API_URL||"https://api.transcend.io",uy= exports.s =process.env.TRANSCEND_CONSENT_API_URL||"https://consent.transcend.io",my= exports.t ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ManageEmailTemplates],dataSilos:[_privacytypes.ScopeName.ManageDataMap,_privacytypes.ScopeName.ConnectDataSilos],enrichers:[_privacytypes.ScopeName.ManageRequestIdentities],businessEntities:[_privacytypes.ScopeName.ManageDataInventory],processingActivities:[_privacytypes.ScopeName.ManageDataMap],identifiers:[_privacytypes.ScopeName.ManageRequestIdentities],customFields:[_privacytypes.ScopeName.ManageGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ManageDataFlow],cookies:[_privacytypes.ScopeName.ManageDataFlow],consentManager:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],partitions:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],actions:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ManagePrompts],promptPartials:[_privacytypes.ScopeName.ManagePrompts],promptGroups:[_privacytypes.ScopeName.ManagePrompts],agents:[_privacytypes.ScopeName.ManagePathfinder],agentFunctions:[_privacytypes.ScopeName.ManagePathfinder],agentFiles:[_privacytypes.ScopeName.ManagePathfinder],vendors:[_privacytypes.ScopeName.ManageDataInventory],dataCategories:[_privacytypes.ScopeName.ManageDataInventory],processingPurposes:[_privacytypes.ScopeName.ManageDataInventory],actionItems:[_privacytypes.ScopeName.ManageAllActionItems,_privacytypes.ScopeName.ViewGlobalAttributes],actionItemCollections:[_privacytypes.ScopeName.ManageActionItemCollections],teams:[_privacytypes.ScopeName.ManageAccessControl],messages:[_privacytypes.ScopeName.ManageIntlMessages],privacyCenters:[_privacytypes.ScopeName.ManagePrivacyCenter],policies:[_privacytypes.ScopeName.ManagePolicies],assessments:[_privacytypes.ScopeName.ManageAssessments],assessmentTemplates:[_privacytypes.ScopeName.ManageAssessments],purposes:[_privacytypes.ScopeName.ManageConsentManager,_privacytypes.ScopeName.ManagePreferenceStoreSettings]},dy= exports.u ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ViewEmailTemplates],dataSilos:[_privacytypes.ScopeName.ViewDataMap,_privacytypes.ScopeName.ViewDataSubjectRequestSettings],enrichers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],businessEntities:[_privacytypes.ScopeName.ViewDataInventory],processingActivities:[_privacytypes.ScopeName.ViewDataInventory],identifiers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],customFields:[_privacytypes.ScopeName.ViewGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ViewDataFlow],cookies:[_privacytypes.ScopeName.ViewDataFlow],consentManager:[_privacytypes.ScopeName.ViewConsentManager],partitions:[_privacytypes.ScopeName.ViewConsentManager],actions:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ViewPrompts],promptPartials:[_privacytypes.ScopeName.ViewPrompts],promptGroups:[_privacytypes.ScopeName.ViewPrompts],agents:[_privacytypes.ScopeName.ViewPathfinder],agentFunctions:[_privacytypes.ScopeName.ViewPathfinder],agentFiles:[_privacytypes.ScopeName.ViewPathfinder],vendors:[_privacytypes.ScopeName.ViewDataInventory],dataCategories:[_privacytypes.ScopeName.ViewDataInventory],processingPurposes:[_privacytypes.ScopeName.ViewDataInventory],actionItemCollections:[_privacytypes.ScopeName.ViewAllActionItems],actionItems:[_privacytypes.ScopeName.ViewAllActionItems],teams:[_privacytypes.ScopeName.ViewScopes],messages:[_privacytypes.ScopeName.ViewIntlMessages],privacyCenters:[_privacytypes.ScopeName.ViewPrivacyCenter],policies:[_privacytypes.ScopeName.ViewPolicies],assessments:[_privacytypes.ScopeName.ViewAssessments],assessmentTemplates:[_privacytypes.ScopeName.ViewAssessments],purposes:[_privacytypes.ScopeName.ViewConsentManager,_privacytypes.ScopeName.ViewPreferenceStoreSettings]},ly= exports.v ={apiKeys:"api-keys",customFields:"attributes",dataFlows:"data-flows",cookies:"cookies",consentManager:"consent-manager",partitions:"partitions",actions:"actions",dataSubjects:"data-subjects",businessEntities:"business-entities",processingActivities:"processing-activities",identifiers:"identifiers",enrichers:"enrichers",dataSilos:"data-silos",templates:"templates",prompts:"prompts",promptPartials:"prompt-partials",promptGroups:"prompt-groups",agents:"agents",agentFunctions:"agent-functions",agentFiles:"agent-files",vendors:"vendors",dataCategories:"data-categories",processingPurposes:"processing-purposes",actionItems:"action-items",actionItemCollections:"action-item-collections",teams:"teams",messages:"messages",privacyCenters:"privacy-center",policies:"policies",assessments:"assessments",assessmentTemplates:"assessment-templates",purposes:"purposes"},qu= exports.w =Xe(Object.entries(_privacytypes.TRANSCEND_SCOPES).map(([e,t])=>({...t,name:e})),"title"),cy= exports.x =Object.keys(qu),xy= exports.y =new Set([429,502,500,504,329]),gy= exports.z =process.env.DEBUG==="1";exports.a = ap; exports.b = Wa; exports.c = gf; exports.d = $i; exports.e = Xe; exports.f = wu; exports.g = Mu; exports.h = ju; exports.i = Du; exports.j = rp; exports.k = Nu; exports.l = Fu; exports.m = Uu; exports.n = fy; exports.o = $o; exports.p = sy; exports.q = iy; exports.r = py; exports.s = uy; exports.t = my; exports.u = dy; exports.v = ly; exports.w = qu; exports.x = cy; exports.y = xy; exports.z = gy;
2
2
  /*! Bundled license information:
3
3
 
4
4
  lodash-es/lodash.js:
@@ -12,4 +12,4 @@ lodash-es/lodash.js:
12
12
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
13
13
  *)
14
14
  */
15
- //# sourceMappingURL=chunk-P7WCYR3A.cjs.map
15
+ //# sourceMappingURL=chunk-VY55L6P5.cjs.map