@transcend-io/cli 7.0.1 → 7.0.3

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 (220) hide show
  1. package/README.md +1817 -159
  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-RPJHDKU6.cjs → chunk-2DLJ3BDD.cjs} +2 -2
  6. package/dist/{chunk-RPJHDKU6.cjs.map → chunk-2DLJ3BDD.cjs.map} +1 -1
  7. package/dist/chunk-3L4DLV6F.cjs +3 -0
  8. package/dist/chunk-3L4DLV6F.cjs.map +1 -0
  9. package/dist/chunk-6VV64JQD.cjs +2 -0
  10. package/dist/chunk-6VV64JQD.cjs.map +1 -0
  11. package/dist/chunk-A57ZB6XS.cjs +113 -0
  12. package/dist/chunk-A57ZB6XS.cjs.map +1 -0
  13. package/dist/chunk-DFOLIGJP.cjs +2 -0
  14. package/dist/chunk-DFOLIGJP.cjs.map +1 -0
  15. package/dist/chunk-DM7WURT2.cjs +2 -0
  16. package/dist/chunk-DM7WURT2.cjs.map +1 -0
  17. package/dist/{chunk-QUYFJVAC.cjs → chunk-GF4AD4KW.cjs} +2 -2
  18. package/dist/{chunk-QUYFJVAC.cjs.map → chunk-GF4AD4KW.cjs.map} +1 -1
  19. package/dist/chunk-JQ7LX2L3.cjs +12 -0
  20. package/dist/chunk-JQ7LX2L3.cjs.map +1 -0
  21. package/dist/{chunk-KOV2SQO2.cjs → chunk-L7NHDBBN.cjs} +3 -3
  22. package/dist/{chunk-KOV2SQO2.cjs.map → chunk-L7NHDBBN.cjs.map} +1 -1
  23. package/dist/{chunk-SDZR3H23.cjs → chunk-LD6RM4JJ.cjs} +2 -2
  24. package/dist/{chunk-SDZR3H23.cjs.map → chunk-LD6RM4JJ.cjs.map} +1 -1
  25. package/dist/{chunk-J72CSV4R.cjs → chunk-MYCE3NIE.cjs} +2 -2
  26. package/dist/{chunk-J72CSV4R.cjs.map → chunk-MYCE3NIE.cjs.map} +1 -1
  27. package/dist/{chunk-LL7YE3LT.cjs → chunk-S27CXPPN.cjs} +2 -2
  28. package/dist/{chunk-LL7YE3LT.cjs.map → chunk-S27CXPPN.cjs.map} +1 -1
  29. package/dist/chunk-T66BMKXU.cjs +2830 -0
  30. package/dist/chunk-T66BMKXU.cjs.map +1 -0
  31. package/dist/chunk-UM5F6R4I.cjs +15 -0
  32. package/dist/chunk-UM5F6R4I.cjs.map +1 -0
  33. package/dist/chunk-VBCQ7F34.cjs +75 -0
  34. package/dist/chunk-VBCQ7F34.cjs.map +1 -0
  35. package/dist/chunk-WKCTKYN4.cjs +2 -0
  36. package/dist/chunk-WKCTKYN4.cjs.map +1 -0
  37. package/dist/chunk-WLVJQVRU.cjs +2 -0
  38. package/dist/{chunk-MQNOIHZN.cjs.map → chunk-WLVJQVRU.cjs.map} +1 -1
  39. package/dist/chunk-ZD2HOHJI.cjs +2 -0
  40. package/dist/chunk-ZD2HOHJI.cjs.map +1 -0
  41. package/dist/impl-24MFRX5R.cjs +2 -0
  42. package/dist/impl-24MFRX5R.cjs.map +1 -0
  43. package/dist/impl-2FABITOO.cjs +2 -0
  44. package/dist/impl-2FABITOO.cjs.map +1 -0
  45. package/dist/impl-2WTVQZVH.cjs +4 -0
  46. package/dist/impl-2WTVQZVH.cjs.map +1 -0
  47. package/dist/impl-45GI5GBX.cjs +2 -0
  48. package/dist/impl-45GI5GBX.cjs.map +1 -0
  49. package/dist/impl-4CKKKZSW.cjs +2 -0
  50. package/dist/impl-4CKKKZSW.cjs.map +1 -0
  51. package/dist/impl-4GWAH2JR.cjs +2 -0
  52. package/dist/impl-4GWAH2JR.cjs.map +1 -0
  53. package/dist/impl-4JIOV3X6.cjs +2 -0
  54. package/dist/impl-4JIOV3X6.cjs.map +1 -0
  55. package/dist/impl-52VR3GDJ.cjs +2 -0
  56. package/dist/impl-52VR3GDJ.cjs.map +1 -0
  57. package/dist/impl-5R7QQLXX.cjs +2 -0
  58. package/dist/impl-5R7QQLXX.cjs.map +1 -0
  59. package/dist/impl-6WSGLEVR.cjs +2 -0
  60. package/dist/impl-6WSGLEVR.cjs.map +1 -0
  61. package/dist/impl-7TE6HP4S.cjs +2 -0
  62. package/dist/impl-7TE6HP4S.cjs.map +1 -0
  63. package/dist/impl-BJNS6ODX.cjs +2 -0
  64. package/dist/impl-BJNS6ODX.cjs.map +1 -0
  65. package/dist/impl-CEZKH3XW.cjs +2 -0
  66. package/dist/impl-CEZKH3XW.cjs.map +1 -0
  67. package/dist/impl-CTN3RH3H.cjs +2 -0
  68. package/dist/impl-CTN3RH3H.cjs.map +1 -0
  69. package/dist/impl-DNQUVLSW.cjs +6 -0
  70. package/dist/impl-DNQUVLSW.cjs.map +1 -0
  71. package/dist/impl-EHZWLIEN.cjs +2 -0
  72. package/dist/impl-EHZWLIEN.cjs.map +1 -0
  73. package/dist/impl-EJWCZU32.cjs +2 -0
  74. package/dist/impl-EJWCZU32.cjs.map +1 -0
  75. package/dist/impl-HBRGW4FK.cjs +2 -0
  76. package/dist/impl-HBRGW4FK.cjs.map +1 -0
  77. package/dist/impl-I7IZGNDD.cjs +2 -0
  78. package/dist/impl-I7IZGNDD.cjs.map +1 -0
  79. package/dist/impl-IVH7T3MG.cjs +2 -0
  80. package/dist/impl-IVH7T3MG.cjs.map +1 -0
  81. package/dist/impl-KCK7ESJ2.cjs +2 -0
  82. package/dist/impl-KCK7ESJ2.cjs.map +1 -0
  83. package/dist/impl-KHC6VQQ3.cjs +12 -0
  84. package/dist/impl-KHC6VQQ3.cjs.map +1 -0
  85. package/dist/impl-LAY6PG5S.cjs +2 -0
  86. package/dist/impl-LAY6PG5S.cjs.map +1 -0
  87. package/dist/impl-LEPYMCRL.cjs +3 -0
  88. package/dist/impl-LEPYMCRL.cjs.map +1 -0
  89. package/dist/impl-LGMUBZ3P.cjs +9 -0
  90. package/dist/impl-LGMUBZ3P.cjs.map +1 -0
  91. package/dist/impl-O72S3ARJ.cjs +2 -0
  92. package/dist/impl-O72S3ARJ.cjs.map +1 -0
  93. package/dist/impl-OIRM2C3D.cjs +7 -0
  94. package/dist/{impl-NZFTTWVH.cjs.map → impl-OIRM2C3D.cjs.map} +1 -1
  95. package/dist/impl-OOVHRMYF.cjs +2 -0
  96. package/dist/impl-OOVHRMYF.cjs.map +1 -0
  97. package/dist/impl-OUBX3UFM.cjs +2 -0
  98. package/dist/impl-OUBX3UFM.cjs.map +1 -0
  99. package/dist/impl-P64XABL2.cjs +2 -0
  100. package/dist/impl-P64XABL2.cjs.map +1 -0
  101. package/dist/impl-PBCOYUN3.cjs +2 -0
  102. package/dist/impl-PBCOYUN3.cjs.map +1 -0
  103. package/dist/impl-RBCLAU3L.cjs +6 -0
  104. package/dist/impl-RBCLAU3L.cjs.map +1 -0
  105. package/dist/impl-S4J44FBI.cjs +2 -0
  106. package/dist/impl-S4J44FBI.cjs.map +1 -0
  107. package/dist/impl-TIOK6UX4.cjs +2 -0
  108. package/dist/impl-TIOK6UX4.cjs.map +1 -0
  109. package/dist/impl-TSBZWYSU.cjs +2 -0
  110. package/dist/impl-TSBZWYSU.cjs.map +1 -0
  111. package/dist/impl-U5LM6TOR.cjs +2 -0
  112. package/dist/impl-U5LM6TOR.cjs.map +1 -0
  113. package/dist/impl-U7KRGFYL.cjs +2 -0
  114. package/dist/impl-U7KRGFYL.cjs.map +1 -0
  115. package/dist/impl-XSP2L4A3.cjs +2 -0
  116. package/dist/impl-XSP2L4A3.cjs.map +1 -0
  117. package/dist/impl-YST7YAME.cjs +2 -0
  118. package/dist/impl-YST7YAME.cjs.map +1 -0
  119. package/dist/index.cjs +3 -3
  120. package/dist/index.cjs.map +1 -1
  121. package/dist/index.d.cts +12 -16
  122. package/package.json +2 -1
  123. package/dist/chunk-4J2KYJVS.cjs +0 -2
  124. package/dist/chunk-4J2KYJVS.cjs.map +0 -1
  125. package/dist/chunk-5SI74STE.cjs +0 -12
  126. package/dist/chunk-5SI74STE.cjs.map +0 -1
  127. package/dist/chunk-DF4YVZJQ.cjs +0 -94
  128. package/dist/chunk-DF4YVZJQ.cjs.map +0 -1
  129. package/dist/chunk-E4Y3D2JZ.cjs +0 -75
  130. package/dist/chunk-E4Y3D2JZ.cjs.map +0 -1
  131. package/dist/chunk-EG4L6YAJ.cjs +0 -2
  132. package/dist/chunk-EG4L6YAJ.cjs.map +0 -1
  133. package/dist/chunk-MQNOIHZN.cjs +0 -2
  134. package/dist/chunk-OL2YE5SK.cjs +0 -2
  135. package/dist/chunk-OL2YE5SK.cjs.map +0 -1
  136. package/dist/chunk-P6ZHBB6P.cjs +0 -3
  137. package/dist/chunk-P6ZHBB6P.cjs.map +0 -1
  138. package/dist/chunk-UEGX6GZ2.cjs +0 -2
  139. package/dist/chunk-UEGX6GZ2.cjs.map +0 -1
  140. package/dist/chunk-XXGX7FUC.cjs +0 -2
  141. package/dist/chunk-XXGX7FUC.cjs.map +0 -1
  142. package/dist/chunk-YVY4TZ2O.cjs +0 -2844
  143. package/dist/chunk-YVY4TZ2O.cjs.map +0 -1
  144. package/dist/impl-4WA4CEB2.cjs +0 -2
  145. package/dist/impl-4WA4CEB2.cjs.map +0 -1
  146. package/dist/impl-7K57DEDR.cjs +0 -2
  147. package/dist/impl-7K57DEDR.cjs.map +0 -1
  148. package/dist/impl-AC2WQUNH.cjs +0 -2
  149. package/dist/impl-AC2WQUNH.cjs.map +0 -1
  150. package/dist/impl-B7WQMB3O.cjs +0 -2
  151. package/dist/impl-B7WQMB3O.cjs.map +0 -1
  152. package/dist/impl-DCTVGKDZ.cjs +0 -2
  153. package/dist/impl-DCTVGKDZ.cjs.map +0 -1
  154. package/dist/impl-DTFM3SWD.cjs +0 -2
  155. package/dist/impl-DTFM3SWD.cjs.map +0 -1
  156. package/dist/impl-GBTW2VLR.cjs +0 -2
  157. package/dist/impl-GBTW2VLR.cjs.map +0 -1
  158. package/dist/impl-HI27O5MJ.cjs +0 -4
  159. package/dist/impl-HI27O5MJ.cjs.map +0 -1
  160. package/dist/impl-I3RNGLKH.cjs +0 -2
  161. package/dist/impl-I3RNGLKH.cjs.map +0 -1
  162. package/dist/impl-IXNKRWC7.cjs +0 -2
  163. package/dist/impl-IXNKRWC7.cjs.map +0 -1
  164. package/dist/impl-IY2QSXYK.cjs +0 -2
  165. package/dist/impl-IY2QSXYK.cjs.map +0 -1
  166. package/dist/impl-KLXVHSVI.cjs +0 -2
  167. package/dist/impl-KLXVHSVI.cjs.map +0 -1
  168. package/dist/impl-L63MYKIO.cjs +0 -2
  169. package/dist/impl-L63MYKIO.cjs.map +0 -1
  170. package/dist/impl-LBZ5KQCA.cjs +0 -2
  171. package/dist/impl-LBZ5KQCA.cjs.map +0 -1
  172. package/dist/impl-LCGB6L6S.cjs +0 -2
  173. package/dist/impl-LCGB6L6S.cjs.map +0 -1
  174. package/dist/impl-MHMLFQYV.cjs +0 -2
  175. package/dist/impl-MHMLFQYV.cjs.map +0 -1
  176. package/dist/impl-MP7KOII5.cjs +0 -2
  177. package/dist/impl-MP7KOII5.cjs.map +0 -1
  178. package/dist/impl-MZEAMC6V.cjs +0 -2
  179. package/dist/impl-MZEAMC6V.cjs.map +0 -1
  180. package/dist/impl-N2Q4635G.cjs +0 -2
  181. package/dist/impl-N2Q4635G.cjs.map +0 -1
  182. package/dist/impl-NIMCX7UC.cjs +0 -2
  183. package/dist/impl-NIMCX7UC.cjs.map +0 -1
  184. package/dist/impl-NURZ5XJQ.cjs +0 -2
  185. package/dist/impl-NURZ5XJQ.cjs.map +0 -1
  186. package/dist/impl-NZFTTWVH.cjs +0 -7
  187. package/dist/impl-O5UHTMMM.cjs +0 -6
  188. package/dist/impl-O5UHTMMM.cjs.map +0 -1
  189. package/dist/impl-PRYWCT7Y.cjs +0 -12
  190. package/dist/impl-PRYWCT7Y.cjs.map +0 -1
  191. package/dist/impl-RKMMHSRM.cjs +0 -2
  192. package/dist/impl-RKMMHSRM.cjs.map +0 -1
  193. package/dist/impl-RWHAQHPT.cjs +0 -2
  194. package/dist/impl-RWHAQHPT.cjs.map +0 -1
  195. package/dist/impl-SBE23MJO.cjs +0 -2
  196. package/dist/impl-SBE23MJO.cjs.map +0 -1
  197. package/dist/impl-SC4TK2TM.cjs +0 -2
  198. package/dist/impl-SC4TK2TM.cjs.map +0 -1
  199. package/dist/impl-TIBNP5YM.cjs +0 -6
  200. package/dist/impl-TIBNP5YM.cjs.map +0 -1
  201. package/dist/impl-UNB3DZOL.cjs +0 -2
  202. package/dist/impl-UNB3DZOL.cjs.map +0 -1
  203. package/dist/impl-V4UKISVS.cjs +0 -2
  204. package/dist/impl-V4UKISVS.cjs.map +0 -1
  205. package/dist/impl-V5ICYKCT.cjs +0 -6
  206. package/dist/impl-V5ICYKCT.cjs.map +0 -1
  207. package/dist/impl-VQGXD5O3.cjs +0 -2
  208. package/dist/impl-VQGXD5O3.cjs.map +0 -1
  209. package/dist/impl-X2YAN6YV.cjs +0 -9
  210. package/dist/impl-X2YAN6YV.cjs.map +0 -1
  211. package/dist/impl-XKATFWGB.cjs +0 -2
  212. package/dist/impl-XKATFWGB.cjs.map +0 -1
  213. package/dist/impl-XRRNIJUK.cjs +0 -2
  214. package/dist/impl-XRRNIJUK.cjs.map +0 -1
  215. package/dist/impl-Y3ZMWRT7.cjs +0 -2
  216. package/dist/impl-Y3ZMWRT7.cjs.map +0 -1
  217. package/dist/impl-YDPROAJW.cjs +0 -2
  218. package/dist/impl-YDPROAJW.cjs.map +0 -1
  219. package/dist/impl-YTAZCQDL.cjs +0 -2
  220. package/dist/impl-YTAZCQDL.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-T66BMKXU.cjs","../src/lib/bluebird-replace.ts","../src/lib/graphql/gqls/dataPoint.ts","../src/lib/graphql/gqls/entry.ts","../src/lib/graphql/gqls/dataSilo.ts","../src/lib/graphql/gqls/enricher.ts","../src/lib/graphql/gqls/catalog.ts","../src/lib/graphql/gqls/identifier.ts","../src/lib/graphql/gqls/dataSubject.ts","../src/lib/graphql/gqls/repository.ts","../src/lib/graphql/gqls/apiKey.ts","../src/lib/graphql/gqls/siloDiscovery.ts","../src/lib/graphql/gqls/template.ts","../src/lib/graphql/gqls/organization.ts","../src/lib/graphql/gqls/attributeKey.ts","../src/lib/graphql/gqls/softwareDevelopmentKit.ts","../src/lib/graphql/gqls/codePackage.ts","../src/lib/graphql/gqls/promptThread.ts","../src/lib/graphql/gqls/policy.ts","../src/lib/graphql/gqls/request.ts","../src/lib/graphql/gqls/message.ts","../src/lib/graphql/gqls/RequestEnricher.ts","../src/lib/graphql/gqls/assessment.ts","../src/lib/graphql/gqls/purpose.ts","../src/lib/graphql/gqls/preferenceTopic.ts","../src/lib/graphql/gqls/assessmentTemplate.ts","../src/lib/graphql/gqls/prompt.ts","../src/lib/graphql/gqls/RequestDataSilo.ts","../src/lib/graphql/gqls/team.ts","../src/lib/graphql/gqls/RequestIdentifier.ts","../src/lib/graphql/gqls/user.ts","../src/lib/graphql/gqls/requestFile.ts","../src/lib/graphql/gqls/promptRun.ts","../src/lib/graphql/gqls/actionItemCollection.ts","../src/lib/graphql/gqls/attribute.ts","../src/lib/graphql/gqls/consentManager.ts","../src/lib/graphql/gqls/consentManagerMetrics.ts","../src/lib/graphql/gqls/businessEntity.ts","../src/lib/graphql/gqls/action.ts","../src/lib/graphql/gqls/actionItem.ts","../src/lib/graphql/gqls/privacyCenter.ts","../src/lib/graphql/gqls/auth.ts","../src/lib/graphql/gqls/largeLanguageModel.ts","../src/lib/graphql/gqls/agent.ts","../src/lib/graphql/gqls/agentFile.ts","../src/lib/graphql/gqls/agentFunction.ts","../src/lib/graphql/gqls/vendor.ts","../src/lib/graphql/gqls/dataCategory.ts","../src/lib/graphql/gqls/processingPurpose.ts","../src/lib/graphql/gqls/sombraVersion.ts","../src/lib/graphql/makeGraphQLRequest.ts","../src/lib/graphql/fetchIdentifiers.ts","../src/lib/graphql/syncIdentifier.ts","../src/lib/graphql/syncEnrichers.ts","../src/lib/graphql/syncDataSilos.ts","../src/lib/graphql/fetchApiKeys.ts"],"names":["mapSeries","array","iterator","results","i","map","options","concurrency","executing","nextIndex","executeNext","currentIndex","promise","result","index","initialBatch","initialPromises","DATA_POINTS","gql","DATA_POINT_COUNT","SUB_DATA_POINTS","SUB_DATA_POINTS_COUNT","SUB_DATA_POINTS_WITH_GUESSES","UPDATE_OR_CREATE_DATA_POINT","DATAPOINT_EXPORT","ENTRY_COUNT","DATA_SILOS","DATA_SILO_EXPORT","DATA_SILOS_ENRICHED","UPDATE_DATA_SILOS","CREATE_DATA_SILOS","ENRICHERS","INITIALIZER","CREATE_ENRICHER","UPDATE_ENRICHER","CATALOGS","IDENTIFIERS","NEW_IDENTIFIER_TYPES","CREATE_IDENTIFIER","UPDATE_IDENTIFIER","DATA_SUBJECTS","CREATE_DATA_SUBJECT","UPDATE_DATA_SUBJECT","TOGGLE_DATA_SUBJECT","REPOSITORIES","UPDATE_REPOSITORIES","CREATE_REPOSITORY","API_KEYS","CREATE_API_KEY","DELETE_API_KEY","ADD_SILO_DISCOVERY_RESULTS","ENABLED_PLUGINS","TEMPLATES","CREATE_TEMPLATE","ORGANIZATION","ATTRIBUTE_KEYS_REQUESTS","SOFTWARE_DEVELOPMENT_KITS","UPDATE_SOFTWARE_DEVELOPMENT_KITS","CREATE_SOFTWARE_DEVELOPMENT_KIT","CODE_PACKAGES","UPDATE_CODE_PACKAGES","CREATE_CODE_PACKAGE","PROMPT_THREADS","POLICIES","UPDATE_POLICIES","REQUESTS","APPROVE_PRIVACY_REQUEST","CANCEL_PRIVACY_REQUEST","UPDATE_PRIVACY_REQUEST","NOTIFY_ADDITIONAL_TIME","MESSAGES","UPDATE_INTL_MESSAGES","REQUEST_ENRICHERS","RETRY_REQUEST_ENRICHER","SKIP_REQUEST_ENRICHER","ASSESSMENT_SECTION_FIELDS","ASSESSMENTS","IMPORT_ONE_TRUST_ASSESSMENT_FORMS","PURPOSES","PREFERENCE_TOPICS","ASSESSMENT_TEMPLATES","PROMPTS","PROMPT_PARTIALS","PROMPT_GROUPS","PROMPTS_WITH_VARIABLES","UPDATE_PROMPTS","CREATE_PROMPT","UPDATE_PROMPT_PARTIALS","CREATE_PROMPT_PARTIAL","UPDATE_PROMPT_GROUPS","CREATE_PROMPT_GROUP","REQUEST_DATA_SILOS","CHANGE_REQUEST_DATA_SILO_STATUS","RETRY_REQUEST_DATA_SILO","REDUCED_REQUESTS_FOR_DATA_SILO_COUNT","TEAMS","CREATE_TEAM","UPDATE_TEAM","REMOVE_REQUEST_IDENTIFIERS","REQUEST_IDENTIFIERS","USERS","REQUEST_FILES","REPORT_PROMPT_RUN","ADD_MESSAGES_TO_PROMPT_RUN","GLOBAL_ACTION_ITEM_COLLECTIONS","CREATE_ACTION_ITEM_COLLECTION","UPDATE_ACTION_ITEM_COLLECTION","ATTRIBUTES","CREATE_ATTRIBUTE_VALUES","UPDATE_ATTRIBUTE_VALUES","DELETE_ATTRIBUTE_VALUE","ATTRIBUTE_VALUES","CREATE_ATTRIBUTE","UPDATE_ATTRIBUTE","SET_RESOURCE_ATTRIBUTES","EXPERIENCES","CONSENT_PARTITIONS","CREATE_DATA_FLOWS","UPDATE_DATA_FLOWS","UPDATE_OR_CREATE_COOKIES","DATA_FLOWS","COOKIES","FETCH_CONSENT_MANAGER_ID","FETCH_CONSENT_MANAGER","FETCH_CONSENT_MANAGER_THEME","CREATE_CONSENT_MANAGER","UPDATE_CONSENT_MANAGER_VERSION","UPDATE_CONSENT_MANAGER_TO_LATEST","DEPLOY_CONSENT_MANAGER","UPDATE_CONSENT_MANAGER_DOMAINS","UPDATE_CONSENT_MANAGER_PARTITION","UPDATE_LOAD_OPTIONS","TOGGLE_UNKNOWN_REQUEST_POLICY","TOGGLE_UNKNOWN_COOKIE_POLICY","TOGGLE_TELEMETRY_PARTITION_STRATEGY","TOGGLE_CONSENT_PRECEDENCE","UPDATE_CONSENT_MANAGER_THEME","UPDATE_CONSENT_EXPERIENCE","CREATE_CONSENT_EXPERIENCE","CREATE_CONSENT_PARTITION","CONSENT_MANAGER_ANALYTICS_DATA","BUSINESS_ENTITIES","CREATE_BUSINESS_ENTITY","UPDATE_BUSINESS_ENTITIES","ACTIONS","UPDATE_ACTION","GLOBAL_ACTION_ITEMS","UPDATE_ACTION_ITEMS","CREATE_ACTION_ITEMS","FETCH_PRIVACY_CENTER_ID","DEPLOYED_PRIVACY_CENTER_URL","PRIVACY_CENTER","UPDATE_PRIVACY_CENTER","DETERMINE_LOGIN_METHOD","LOGIN","ASSUME_ROLE","LARGE_LANGUAGE_MODELS","AGENTS","CREATE_AGENT","UPDATE_AGENTS","AGENT_FILES","CREATE_AGENT_FILE","UPDATE_AGENT_FILES","AGENT_FUNCTIONS","CREATE_AGENT_FUNCTION","UPDATE_AGENT_FUNCTIONS","VENDORS","CREATE_VENDOR","UPDATE_VENDORS","DATA_SUB_CATEGORIES","CREATE_DATA_SUB_CATEGORY","UPDATE_DATA_SUB_CATEGORIES","PROCESSING_PURPOSE_SUB_CATEGORIES","CREATE_PROCESSING_PURPOSE_SUB_CATEGORY","UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES","SOMBRA_VERSION","MAX_RETRIES","sleepPromise","sleepTime","resolve","KNOWN_ERRORS","makeGraphQLRequest","client","document","variables","requestHeaders","maxRequests","retryCount","err","logger","colors","msg","rateLimitResetAt","PAGE_SIZE","fetchAllIdentifiers","identifiers","offset","shouldContinue","nodes","a","b","fetchIdentifiersAndCreateMissing","enrichers","dataSilos","skipPublish","allIdentifiers","identifiersByName","keyBy_default","expectedIdentifiers","uniq_default","flatten_default","enricher","dataSilo","name","x","missingIdentifiers","difference_default","newIdentifierTypes","nativeTypesRemaining","identifier","createIdentifier","syncIdentifier","dataSubjectsByName","identifierId","type","fetchAllEnrichers","title","syncEnricher","identifierByName","existingEnricher","dataSubjectIds","subject","existing"],"mappings":"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","file":"/home/runner/work/cli/cli/dist/chunk-T66BMKXU.cjs","sourcesContent":[null,"/**\n * Replace bluebird's mapSeries with a simple for loop\n *\n * @param array - The array to iterate over\n * @param iterator - The iterator function that receives (item, index)\n * @returns The results of the iterator function\n */\nexport async function mapSeries<R, U>(\n array: R[],\n iterator: (item: R, index: number, arrayLength: number) => Promise<U>,\n): Promise<U[]> {\n const results = [];\n for (let i = 0; i < array.length; i += 1) {\n results.push(await iterator(array[i], i, array.length));\n }\n return results;\n}\n\n/**\n * Replace bluebird's map with Promise.all\n *\n * @param array - The array to iterate over\n * @param iterator - The iterator function that receives (item, index, arrayLength)\n * @param options - Options\n * @returns The results of the iterator function\n */\nexport async function map<R, U>(\n array: R[],\n iterator: (item: R, index: number, arrayLength: number) => Promise<U>,\n options: {\n /** Concurrency level for the Promise.all call */\n concurrency?: number;\n } = {},\n): Promise<U[]> {\n const { concurrency = Infinity } = options;\n const results: U[] = new Array(array.length);\n const executing: Promise<void>[] = [];\n let nextIndex = 0;\n\n const executeNext = async (): Promise<void> => {\n if (nextIndex >= array.length) return;\n\n const currentIndex = nextIndex;\n nextIndex += 1;\n\n const promise = iterator(\n array[currentIndex],\n currentIndex,\n array.length,\n ).then((result) => {\n results[currentIndex] = result;\n });\n\n executing.push(promise);\n await promise;\n\n // Remove the completed promise from executing array\n const index = executing.indexOf(promise);\n if (index > -1) {\n executing.splice(index, 1);\n }\n };\n\n // Start initial batch of promises up to concurrency limit\n const initialBatch = Math.min(concurrency, array.length);\n const initialPromises = [];\n for (let i = 0; i < initialBatch; i += 1) {\n initialPromises.push(executeNext());\n }\n\n // Wait for initial batch to start\n await Promise.all(initialPromises);\n\n // Continue executing remaining items as slots become available\n while (nextIndex < array.length) {\n if (executing.length < concurrency) {\n await executeNext();\n } else {\n // Wait for any promise to complete before continuing\n await Promise.race(executing);\n }\n }\n\n // Wait for all remaining promises to complete\n await Promise.all(executing);\n\n return results;\n}\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const DATA_POINTS = gql`\n query TranscendCliDataPoints(\n $filterBy: DataPointFiltersInput\n $first: Int!\n $offset: Int!\n ) {\n dataPoints(\n filterBy: $filterBy\n first: $first\n offset: $offset\n useMaster: false\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n title {\n defaultMessage\n }\n description {\n defaultMessage\n }\n owners {\n email\n }\n teams {\n name\n }\n name\n path\n actionSettings {\n type\n active\n }\n dataCollection {\n title {\n defaultMessage\n }\n }\n dbIntegrationQueries {\n query\n suggestedQuery\n requestType\n }\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const DATA_POINT_COUNT = gql`\n query TranscendCliDataPointCount($filterBy: DataPointFiltersInput) {\n dataPoints(filterBy: $filterBy, useMaster: false) {\n totalCount\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - add orderBy\n// isExportCsv: true\nexport const SUB_DATA_POINTS = gql`\n query TranscendCliSubDataPoints(\n $filterBy: SubDataPointFiltersInput\n $first: Int!\n $offset: Int!\n ) {\n subDataPoints(\n filterBy: $filterBy\n first: $first\n offset: $offset\n useMaster: false\n ) {\n nodes {\n id\n name\n description\n purposes {\n name\n purpose\n }\n categories {\n name\n category\n }\n accessRequestVisibilityEnabled\n erasureRequestRedactionEnabled\n attributeValues {\n attributeKey {\n name\n }\n name\n }\n }\n }\n }\n`;\n\nexport const SUB_DATA_POINTS_COUNT = gql`\n query TranscendCliSubDataPointsCount($filterBy: SubDataPointFiltersInput) {\n subDataPoints(filterBy: $filterBy, useMaster: false) {\n totalCount\n }\n }\n`;\n\nexport const SUB_DATA_POINTS_WITH_GUESSES = gql`\n query TranscendCliSubDataPointGuesses(\n $filterBy: SubDataPointFiltersInput\n $first: Int!\n $offset: Int!\n ) {\n subDataPoints(\n filterBy: $filterBy\n first: $first\n offset: $offset\n useMaster: false\n ) {\n nodes {\n id\n name\n description\n purposes {\n name\n purpose\n }\n categories {\n name\n category\n }\n pendingCategoryGuesses {\n category {\n name\n category\n }\n status\n confidence\n classifierVersion\n }\n accessRequestVisibilityEnabled\n erasureRequestRedactionEnabled\n attributeValues {\n attributeKey {\n name\n }\n name\n }\n }\n }\n }\n`;\n\nexport const UPDATE_OR_CREATE_DATA_POINT = gql`\n mutation TranscendCliUpdateOrCreateDataPoint(\n $dataSiloId: ID!\n $name: String!\n $path: [String!]\n $title: String\n $description: String\n $ownerIds: [ID!]\n $ownerEmails: [String!]\n $teamNames: [String!]\n $teamIds: [ID!]\n $dataCollectionTag: String\n $querySuggestions: [DbIntegrationQuerySuggestionInput!]\n $enabledActions: [RequestActionObjectResolver!]\n $subDataPoints: [DataPointSubDataPointInput!]\n ) {\n updateOrCreateDataPoint(\n input: {\n dataSiloId: $dataSiloId\n name: $name\n path: $path\n title: $title\n teamNames: $teamNames\n ownerEmails: $ownerEmails\n dataCollectionTag: $dataCollectionTag\n description: $description\n ownerIds: $ownerIds\n teamIds: $teamIds\n querySuggestions: $querySuggestions\n enabledActions: $enabledActions\n subDataPoints: $subDataPoints\n }\n ) {\n dataPoint {\n id\n name\n }\n }\n }\n`;\n\nexport const DATAPOINT_EXPORT = gql`\n query TranscendCliDataPointCsvExport(\n $filterBy: DataPointFiltersInput\n $first: Int!\n ) {\n dataPoints(filterBy: $filterBy, first: $first, useMaster: false) {\n nodes {\n id\n title {\n defaultMessage\n }\n description {\n defaultMessage\n }\n owners {\n email\n }\n teams {\n name\n }\n name\n path\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const ENTRY_COUNT = gql`\n query TranscendCliEntryCount(\n $filterBy: UnstructuredSubDataPointRecommendationsFilterInput\n ) {\n unstructuredSubDataPointRecommendations(\n filterBy: $filterBy\n useMaster: false\n ) {\n totalCount\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const DATA_SILOS = gql`\n query TranscendCliDataSilos(\n $filterBy: DataSiloFiltersInput!\n $first: Int!\n $offset: Int!\n ) {\n dataSilos(\n filterBy: $filterBy\n first: $first\n offset: $offset\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: title, direction: ASC }\n ]\n useMaster: false\n ) {\n nodes {\n id\n title\n link\n type\n catalog {\n hasAvcFunctionality\n }\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const DATA_SILO_EXPORT = gql`\n query TranscendCliDataSiloExport(\n $filterBy: DataSiloFiltersInput!\n $first: Int!\n ) {\n dataSilos(filterBy: $filterBy, first: $first, useMaster: false) {\n nodes {\n id\n title\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const DATA_SILOS_ENRICHED = gql`\n query TranscendCliDataSilosEnriched(\n $filterBy: DataSiloFiltersInput!\n $first: Int!\n $offset: Int!\n ) {\n dataSilos(\n filterBy: $filterBy\n first: $first\n offset: $offset\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: title, direction: ASC }\n ]\n useMaster: false\n ) {\n nodes {\n id\n title\n description\n type\n outerType\n link\n country\n countrySubDivision\n url\n notifyEmailAddress\n attributeValues {\n attributeKey {\n name\n }\n name\n }\n apiKeys {\n title\n }\n subjectBlocklist {\n type\n }\n identifiers {\n name\n isConnected\n }\n dependentDataSilos {\n title\n }\n owners {\n email\n }\n teams {\n id\n name\n }\n catalog {\n hasAvcFunctionality\n }\n isLive\n promptAVendorEmailSendFrequency\n promptAVendorEmailSendType\n promptAVendorEmailIncludeIdentifiersAttachment\n promptAVendorEmailCompletionLinkType\n manualWorkRetryFrequency\n discoveredBy {\n title\n }\n businessEntities {\n title\n }\n }\n }\n }\n`;\n\nexport const UPDATE_DATA_SILOS = gql`\n mutation TranscendCliUpdateDataSilo($input: UpdateDataSilosInput!) {\n updateDataSilos(input: $input) {\n clientMutationId\n dataSilos {\n id\n title\n }\n }\n }\n`;\n\nexport const CREATE_DATA_SILOS = gql`\n mutation TranscendCliCreateDataSilo($input: [CreateDataSilosInput!]!) {\n createDataSilos(input: $input) {\n dataSilos {\n id\n title\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const ENRICHERS = gql`\n query TranscendCliEnrichers($title: String, $first: Int!, $offset: Int!) {\n enrichers(\n filterBy: { text: $title }\n first: $first\n offset: $offset\n useMaster: false\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: title, direction: ASC }\n ]\n ) {\n nodes {\n id\n title\n url\n type\n expirationDuration\n lookerQueryTitle\n testRegex\n transitionRequestStatus\n phoneNumbers\n regionList\n inputIdentifier {\n name\n }\n identifiers {\n name\n }\n dataSubjects {\n type\n }\n actions\n }\n }\n }\n`;\n\nexport interface Initializer {\n /** ID of enricher */\n id: string;\n /** Identifiers */\n identifiers: {\n /** Name of identifier */\n name: string;\n }[];\n}\n\nexport const INITIALIZER = gql`\n query TranscendCliInitializer {\n initializer {\n id\n identifiers {\n name\n }\n }\n }\n`;\n\nexport const CREATE_ENRICHER = gql`\n mutation TranscendCliCreateEnricher($input: EnricherInput!) {\n createEnricher(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_ENRICHER = gql`\n mutation TranscendCliUpdateEnricher($input: UpdateEnricherInput!) {\n updateEnricher(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const CATALOGS = gql`\n query TranscendCliCatalogs($first: Int!, $offset: Int!) {\n catalogs(first: $first, offset: $offset, filterBy: {}, useMaster: false) {\n nodes {\n integrationName\n title\n hasApiFunctionality\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const IDENTIFIERS = gql`\n query TranscendCliIdentifiers($first: Int!, $offset: Int!) {\n identifiers(\n first: $first\n offset: $offset\n useMaster: false\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n type\n regex\n selectOptions\n privacyCenterVisibility\n dataSubjects {\n type\n }\n isRequiredInForm\n placeholder\n displayTitle {\n defaultMessage\n }\n displayDescription {\n defaultMessage\n }\n displayOrder\n }\n }\n }\n`;\n\nexport const NEW_IDENTIFIER_TYPES = gql`\n query TranscendCliNewIdentifierTypes {\n newIdentifierTypes {\n name\n }\n }\n`;\n\nexport const CREATE_IDENTIFIER = gql`\n mutation TranscendCliCreateIdentifier($input: IdentifierInput!) {\n createIdentifier(input: $input) {\n identifier {\n id\n name\n }\n }\n }\n`;\n\nexport const UPDATE_IDENTIFIER = gql`\n mutation TranscendCliUpdateIdentifier($input: UpdateIdentifierInput!) {\n updateIdentifier(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const DATA_SUBJECTS = gql`\n query TranscendCliDataSubjects {\n internalSubjects {\n id\n title {\n defaultMessage\n }\n active\n type\n adminDashboardDefaultSilentMode\n actions {\n type\n }\n }\n }\n`;\n\nexport const CREATE_DATA_SUBJECT = gql`\n mutation TranscendCliCreateDataSubject($type: String!) {\n createSubject(input: { type: $type, title: $type, subjectClass: OTHER }) {\n subject {\n id\n type\n }\n }\n }\n`;\n\nexport const UPDATE_DATA_SUBJECT = gql`\n mutation TranscendCliUpdateDataSubject($input: UpdateSubjectInput!) {\n updateSubject(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const TOGGLE_DATA_SUBJECT = gql`\n mutation TranscendCliToggleDataSubject($input: ToggleSubjectInput!) {\n toggleSubject(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const REPOSITORIES = gql`\n query TranscendCliRepositories(\n $first: Int!\n $offset: Int!\n $input: RepositoryFiltersInput\n ) {\n repositories(\n first: $first\n offset: $offset\n filterBy: $input\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n description\n url\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n }\n }\n }\n`;\n\nexport const UPDATE_REPOSITORIES = gql`\n mutation TranscendCliUpdateRepositories($input: UpdateRepositoriesInput!) {\n updateRepositories(input: $input) {\n clientMutationId\n repositories {\n id\n name\n url\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n }\n }\n }\n`;\n\nexport const CREATE_REPOSITORY = gql`\n mutation TranscendCliCreateRepository($input: CreateRepositoryInput!) {\n createRepository(input: $input) {\n clientMutationId\n repository {\n id\n name\n url\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const API_KEYS = gql`\n query TranscendCliApiKeys($first: Int!, $offset: Int!, $titles: [String!]) {\n apiKeys(\n first: $first\n offset: $offset\n filterBy: { titles: $titles }\n useMaster: false\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: title, direction: ASC }\n ]\n ) {\n nodes {\n id\n title\n }\n }\n }\n`;\n\nexport const CREATE_API_KEY = gql`\n mutation TranscendCliCreateApiKey($input: ApiKeyInput!) {\n createApiKey(input: $input) {\n apiKey {\n id\n apiKey\n title\n }\n }\n }\n`;\n\nexport const DELETE_API_KEY = gql`\n mutation TranscendCliDeleteApiKey($id: ID!) {\n deleteApiKey(id: $id) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const ADD_SILO_DISCOVERY_RESULTS = gql`\n mutation AddSiloDiscoveryResults(\n $pluginId: ID!\n $rawResults: [SiloDiscoveryRawResultInput!]!\n ) {\n addSiloDiscoveryResults(\n input: { pluginId: $pluginId, rawResults: $rawResults }\n ) {\n success\n }\n }\n`;\n\nexport const ENABLED_PLUGINS = gql`\n query Plugins($dataSiloId: String!, $type: PluginType!) {\n plugins(filterBy: { dataSiloId: $dataSiloId, type: $type, enabled: true }) {\n plugins {\n id\n dataSilo {\n type\n }\n }\n totalCount\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const TEMPLATES = gql`\n query TranscendCliTemplates($title: String, $first: Int!, $offset: Int!) {\n templates(\n filterBy: { text: $title }\n first: $first\n offset: $offset\n useMaster: false\n ) {\n nodes {\n id\n title\n subject {\n defaultMessage\n }\n template {\n defaultMessage\n }\n }\n }\n }\n`;\n\nexport const CREATE_TEMPLATE = gql`\n mutation TranscendCliCreateTemplate($title: String!) {\n createTemplate(input: { title: $title, template: \"\", subject: $title }) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const ORGANIZATION = gql`\n query TranscendCliOrganization {\n organization {\n sombra {\n customerUrl\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\nexport const ATTRIBUTE_KEYS_REQUESTS = gql`\n query TranscendCliAttributeKeys($first: Int!, $offset: Int!) {\n attributeKeys(\n filterBy: { enabledOn: [request] }\n first: $first\n useMaster: false\n offset: $offset\n ) {\n nodes {\n id\n name\n type\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const SOFTWARE_DEVELOPMENT_KITS = gql`\n query TranscendCliSoftwareDevelopmentKits(\n $first: Int!\n $offset: Int!\n $input: SoftwareDevelopmentKitFiltersInput\n ) {\n softwareDevelopmentKits(\n first: $first\n offset: $offset\n filterBy: $input\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n description\n codePackageType\n documentationLinks\n repositoryUrl\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n }\n }\n }\n`;\n\nexport const UPDATE_SOFTWARE_DEVELOPMENT_KITS = gql`\n mutation TranscendCliUpdateSoftwareDevelopmentKits(\n $input: UpdateSoftwareDevelopmentKitsInput!\n ) {\n updateSoftwareDevelopmentKits(input: $input) {\n clientMutationId\n softwareDevelopmentKits {\n id\n name\n description\n codePackageType\n documentationLinks\n repositoryUrl\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n }\n }\n }\n`;\n\nexport const CREATE_SOFTWARE_DEVELOPMENT_KIT = gql`\n mutation TranscendCliCreateSoftwareDevelopmentKit(\n $input: CreateSoftwareDevelopmentKitInput!\n ) {\n createSoftwareDevelopmentKit(input: $input) {\n clientMutationId\n softwareDevelopmentKit {\n id\n name\n description\n codePackageType\n documentationLinks\n repositoryUrl\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const CODE_PACKAGES = gql`\n query TranscendCliCodePackages(\n $first: Int!\n $offset: Int!\n $input: CodePackageFiltersInput\n ) {\n codePackages(\n first: $first\n offset: $offset\n filterBy: $input\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n description\n type\n relativePath\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n repository {\n id\n name\n }\n dataSilo {\n id\n title\n type\n }\n }\n }\n }\n`;\n\nexport const UPDATE_CODE_PACKAGES = gql`\n mutation TranscendCliUpdateCodePackages($input: UpdateCodePackagesInput!) {\n updateCodePackages(input: $input) {\n clientMutationId\n codePackages {\n id\n name\n description\n type\n relativePath\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n repository {\n id\n name\n }\n dataSilo {\n id\n title\n type\n }\n }\n }\n }\n`;\n\nexport const CREATE_CODE_PACKAGE = gql`\n mutation TranscendCliCreateCodePackage($input: CreateCodePackageInput!) {\n createCodePackage(input: $input) {\n clientMutationId\n codePackage {\n id\n name\n description\n type\n relativePath\n teams {\n id\n name\n }\n owners {\n id\n email\n }\n repository {\n id\n name\n }\n dataSilo {\n id\n title\n type\n }\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const PROMPT_THREADS = gql`\n query TranscendCliPromptThreads(\n $first: Int!\n $offset: Int!\n $filterBy: PromptThreadFiltersInput!\n ) {\n promptThreads(first: $first, offset: $offset, filterBy: $filterBy) {\n nodes {\n id\n threadId\n slackMessageTs\n slackTeamId\n slackChannelId\n slackChannelName\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const POLICIES = gql`\n query TranscendCliFetchPolicies($url: String!) {\n privacyCenterPolicies(lookup: { url: $url }) {\n id\n title {\n defaultMessage\n }\n disableEffectiveOn\n disabledLocales\n versions {\n effectiveOn\n content {\n defaultMessage\n }\n }\n }\n }\n`;\n\nexport const UPDATE_POLICIES = gql`\n mutation TranscendCliUpdatePolicies(\n $policies: [PolicyInput!]!\n $privacyCenterId: ID!\n ) {\n updatePolicies(\n input: {\n privacyCenterId: $privacyCenterId\n policies: $policies\n skipPublish: true\n }\n ) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const REQUESTS = gql`\n query TranscendCliRequests(\n $first: Int!\n $offset: Int!\n $filterBy: RequestFiltersInput!\n ) {\n requests(\n filterBy: $filterBy\n first: $first\n offset: $offset\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: id, direction: ASC }\n ]\n useMaster: false\n ) {\n nodes {\n id\n createdAt\n email\n link\n status\n details\n isTest\n locale\n origin\n isSilent\n coreIdentifier\n daysRemaining\n type\n subjectType\n country\n countrySubDivision\n attributeValues {\n id\n name\n attributeKey {\n id\n name\n }\n }\n }\n totalCount\n }\n }\n`;\n\nexport const APPROVE_PRIVACY_REQUEST = gql`\n mutation TranscendCliApprovePrivacyRequest($input: CommunicationInput!) {\n approveRequest(input: $input) {\n request {\n id\n }\n }\n }\n`;\nexport const CANCEL_PRIVACY_REQUEST = gql`\n mutation TranscendCliCancelPrivacyRequest($input: CommunicationInput!) {\n cancelRequest(input: $input) {\n request {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_PRIVACY_REQUEST = gql`\n mutation TranscendCliUpdatePrivacyRequest($input: UpdateRequestInput!) {\n updateRequest(input: $input) {\n request {\n id\n }\n }\n }\n`;\n\nexport const NOTIFY_ADDITIONAL_TIME = gql`\n mutation TranscendCliNotifyAdditionalTime($input: AdditionalTimeInput!) {\n notifyAdditionalTime(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const MESSAGES = gql`\n query TranscendCliFetchMessage {\n translatedMessages {\n id\n defaultMessage\n targetReactIntlId\n translations {\n locale\n value\n }\n }\n }\n`;\n\nexport const UPDATE_INTL_MESSAGES = gql`\n mutation TranscendCliUpdateIntlMessages($messages: [MessageInput!]!) {\n updateIntlMessages(input: { messages: $messages, skipPublish: true }) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const REQUEST_ENRICHERS = gql`\n query TranscendCliRequestEnrichers(\n $first: Int!\n $offset: Int!\n $requestId: ID!\n ) {\n requestEnrichers(\n input: { requestId: $requestId }\n first: $first\n offset: $offset\n useMaster: false\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: title, direction: ASC, model: enricher }\n ]\n ) {\n nodes {\n id\n status\n enricher {\n id\n type\n title\n }\n }\n totalCount\n }\n }\n`;\n\nexport const RETRY_REQUEST_ENRICHER = gql`\n mutation TranscendCliRetryRequestEnricher($requestEnricherId: ID!) {\n retryRequestEnricher(id: $requestEnricherId) {\n requestEnricher {\n id\n }\n }\n }\n`;\n\nexport const SKIP_REQUEST_ENRICHER = gql`\n mutation TranscendCliSkipRequestEnricher($requestEnricherId: ID!) {\n skipRequestEnricher(id: $requestEnricherId) {\n requestEnricher {\n id\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const ASSESSMENT_SECTION_FIELDS = `\n id\n title\n status\n index\n questions {\n id\n title\n index\n type\n subType\n placeholder\n description\n isRequired\n displayLogic\n riskLogic\n requireRiskEvaluation\n requireRiskMatrixEvaluation\n riskCategories {\n id\n title\n }\n riskFramework {\n id\n title\n description\n riskLevels {\n id\n title\n }\n riskCategories {\n id\n title\n }\n riskMatrixColumns {\n id\n title\n }\n riskMatrixRows {\n id\n title\n }\n riskMatrix {\n id\n title\n }\n creator {\n id\n email\n name\n }\n riskMatrixRowTitle\n riskMatrixColumnTitle\n }\n riskLevel {\n id\n title\n }\n reviewerRiskLevel {\n id\n title\n }\n riskLevelFromRiskMatrix {\n id\n title\n }\n answerOptions {\n id\n index\n value\n }\n selectedAnswers {\n ... on AssessmentAnswerInterface {\n id\n index\n value\n }\n }\n respondent {\n id\n email\n name\n }\n attributeKey {\n name\n }\n externalRespondentEmail\n comments {\n id\n content\n createdAt\n updatedAt\n author {\n id\n email\n name\n }\n }\n allowedMimeTypes\n updatedAt\n referenceId\n previousSubmissions {\n id\n updatedAt\n assessmentQuestionId\n answers {\n ... on AssessmentAnswerInterface {\n id\n index\n value\n }\n }\n }\n allowSelectOther\n syncModel\n syncColumn\n syncRowIds\n syncOverride\n }\n assignees {\n id\n email\n name\n }\n externalAssignees {\n id\n email\n }\n isReviewed\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: name, direction: ASC }\n// ]\nexport const ASSESSMENTS = gql`\n query TranscendCliAssessments(\n $first: Int!\n $offset: Int!\n $filterBy: AssessmentFormFiltersInput\n ) {\n assessmentForms(first: $first, offset: $offset, filterBy: $filterBy) {\n nodes {\n id\n creator {\n id\n email\n name\n }\n lastEditor {\n id\n email\n name\n }\n title\n description\n status\n assignees {\n id\n email\n name\n }\n externalAssignees {\n id\n email\n }\n reviewers {\n id\n email\n name\n }\n isLocked\n isArchived\n isExternallyCreated\n dueDate\n createdAt\n updatedAt\n assignedAt\n submittedAt\n approvedAt\n rejectedAt\n titleIsInternal\n retentionSchedule {\n id\n type\n durationDays\n operation\n }\n attributeValues {\n name\n attributeKey {\n name\n }\n }\n sections {\n ${ASSESSMENT_SECTION_FIELDS}\n }\n assessmentGroup {\n id\n title\n description\n }\n resources {\n resourceType\n ... on AttributeBusinessEntityResource {\n id\n title\n }\n ... on AttributeDataSiloResource {\n id\n title\n }\n ... on AttributeDataSubCategoryResource {\n id\n name\n category\n }\n ... on AttributeSubDataPointResource {\n id\n name\n }\n ... on AttributeProcessingPurposeSubCategoryResource {\n id\n name\n purpose\n }\n ... on AttributeRequestResource {\n id\n type\n }\n ... on AttributeVendorResource {\n id\n title\n }\n ... on AttributePromptResource {\n id\n title\n }\n ... on AttributePromptRunResource {\n id\n title\n }\n ... on AttributePromptGroupResource {\n id\n title\n }\n }\n syncedRows {\n resourceType\n ... on AttributeBusinessEntityResource {\n id\n title\n }\n ... on AttributeDataSiloResource {\n id\n title\n }\n ... on AttributeDataSubCategoryResource {\n id\n name\n category\n }\n ... on AttributeSubDataPointResource {\n id\n name\n }\n ... on AttributeProcessingPurposeSubCategoryResource {\n id\n name\n purpose\n }\n ... on AttributeVendorResource {\n id\n title\n }\n }\n }\n }\n }\n`;\n\nexport const IMPORT_ONE_TRUST_ASSESSMENT_FORMS = gql`\n mutation TranscendCliImportOneTrustAssessmentForms(\n $input: ImportOnetrustAssessmentsInput!\n ) {\n importOneTrustAssessmentForms(input: $input) {\n assessmentForms {\n id\n title\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: name, direction: ASC }\n// ]\nexport const PURPOSES = gql`\n query TranscendCliPurposes(\n $first: Int!\n $offset: Int!\n $filterBy: TrackingPurposeFiltersInput\n $input: TrackingPurposeInput!\n ) {\n purposes(\n first: $first\n offset: $offset\n filterBy: $filterBy\n input: $input\n ) {\n nodes {\n id\n name\n description\n defaultConsent\n trackingType\n configurable\n essential\n showInConsentManager\n isActive\n displayOrder\n optOutSignals\n deletedAt\n authLevel\n showInPrivacyCenter\n title\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: name, direction: ASC }\n// ]\nexport const PREFERENCE_TOPICS = gql`\n query TranscendCliPreferenceTopics(\n $first: Int!\n $offset: Int!\n $filterBy: PreferenceTopicFilterInput\n ) {\n preferenceTopics(first: $first, offset: $offset, filterBy: $filterBy) {\n nodes {\n id\n slug\n type\n title {\n id\n defaultMessage\n }\n showInPrivacyCenter\n displayDescription {\n id\n defaultMessage\n }\n defaultConfiguration\n preferenceOptionValues {\n slug\n title {\n id\n defaultMessage\n }\n }\n purpose {\n trackingType\n }\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\nimport { ASSESSMENT_SECTION_FIELDS } from './assessment';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: name, direction: ASC }\n// ]\nexport const ASSESSMENT_TEMPLATES = gql`\n query TranscendCliAssessmentTemplates(\n $first: Int!\n $offset: Int!\n $filterBy: AssessmentFormTemplateFiltersInput\n ) {\n assessmentFormTemplates(\n first: $first\n offset: $offset\n filterBy: $filterBy\n ) {\n nodes {\n id\n creator {\n id\n email\n name\n }\n lastEditor {\n id\n email\n name\n }\n title\n description\n status\n source\n parentId\n isLocked\n isArchived\n createdAt\n updatedAt\n retentionSchedule {\n id\n type\n durationDays\n operation\n createdAt\n updatedAt\n }\n assessmentEmailSet {\n id\n title\n description\n isDefault\n templates {\n id\n title\n }\n }\n sections {\n ${ASSESSMENT_SECTION_FIELDS}\n }\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const PROMPTS = gql`\n query TranscendCliPrompts(\n $first: Int!\n $offset: Int!\n $filterBy: PromptFiltersInput\n ) {\n prompts(\n first: $first\n orderBy: [{ field: title, direction: ASC }]\n offset: $offset\n filterBy: $filterBy\n ) {\n nodes {\n id\n title\n status\n content\n temperature\n topP\n maxTokensToSample\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// orderBy: [{ field: title, direction: ASC }]\nexport const PROMPT_PARTIALS = gql`\n query TranscendCliPromptPartials($first: Int!, $offset: Int!) {\n promptPartials(first: $first, offset: $offset) {\n nodes {\n id\n title\n content\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// orderBy: [{ field: title, direction: ASC }]\nexport const PROMPT_GROUPS = gql`\n query TranscendCliPromptGroups($first: Int!, $offset: Int!) {\n promptGroups(\n first: $first\n\n offset: $offset\n ) {\n nodes {\n id\n title\n description\n prompts {\n title\n }\n }\n }\n }\n`;\n\nexport const PROMPTS_WITH_VARIABLES = gql`\n query TranscendCliPromptsWithVariables($input: PromptsWithVariablesInput!) {\n promptsWithVariables(input: $input) {\n prompts {\n id\n title\n content\n status\n temperature\n topP\n maxTokensToSample\n responseFormat\n }\n promptPartials {\n id\n title\n content\n slug\n }\n calculatedVariables {\n data\n name\n }\n runtimeVariables {\n name\n }\n }\n }\n`;\n\nexport const UPDATE_PROMPTS = gql`\n mutation TranscendCliUpdatePrompts($input: UpdatePromptsInput!) {\n updatePrompts(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const CREATE_PROMPT = gql`\n mutation TranscendCliCreatePrompt($input: CreatePromptInput!) {\n createPrompt(input: $input) {\n clientMutationId\n prompt {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_PROMPT_PARTIALS = gql`\n mutation TranscendCliUpdatePromptPartials(\n $input: UpdatePromptPartialsInput!\n ) {\n updatePromptPartials(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const CREATE_PROMPT_PARTIAL = gql`\n mutation TranscendCliCreatePromptPartial($input: CreatePromptPartialInput!) {\n createPromptPartial(input: $input) {\n clientMutationId\n promptPartial {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_PROMPT_GROUPS = gql`\n mutation TranscendCliUpdatePromptGroups($input: UpdatePromptGroupsInput!) {\n updatePromptGroups(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const CREATE_PROMPT_GROUP = gql`\n mutation TranscendCliCreatePromptPartial($input: CreatePromptGroupInput!) {\n createPromptGroup(input: $input) {\n clientMutationId\n promptGroup {\n id\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const REQUEST_DATA_SILOS = gql`\n query TranscendCliRequestDataSilos(\n $first: Int!\n $offset: Int!\n $filterBy: RequestDataSiloFiltersInput!\n ) {\n requestDataSilos(\n filterBy: $filterBy\n first: $first\n offset: $offset\n useMaster: false\n orderBy: [\n { field: createdAt, direction: DESC }\n { field: title, direction: ASC, model: dataSilo }\n ]\n ) {\n nodes {\n id\n }\n totalCount\n }\n }\n`;\n\nexport const CHANGE_REQUEST_DATA_SILO_STATUS = gql`\n mutation TranscendCliMarkRequestDataSiloCompleted(\n $requestDataSiloId: ID!\n $status: UpdateRequestDataSiloStatus!\n ) {\n changeRequestDataSiloStatus(\n input: { id: $requestDataSiloId, status: $status }\n ) {\n requestDataSilo {\n id\n }\n }\n }\n`;\n\nexport const RETRY_REQUEST_DATA_SILO = gql`\n mutation TranscendCliRetryRequestDataSilo($requestDataSiloId: ID!) {\n retryRequestDataSilo(id: $requestDataSiloId) {\n requestDataSilo {\n id\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// orderBy: [\n// { field: createdAt, direction: DESC }\n// { field: title, direction: ASC, model: dataSilo }\n// ]\nexport const REDUCED_REQUESTS_FOR_DATA_SILO_COUNT = gql`\n query TranscendCliListReducedRequestsForDataSiloCount(\n $input: BulkCompletionReducedRequestInput!\n ) {\n listReducedRequestsForDataSilo(input: $input) {\n totalCount\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const TEAMS = gql`\n query TranscendCliTeams(\n $first: Int!\n $offset: Int!\n $input: TeamFiltersInput\n ) {\n teams(\n first: $first\n offset: $offset\n filterBy: $input\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n description\n ssoDepartment\n ssoGroup\n ssoTitle\n users {\n id\n email\n name\n }\n scopes {\n id\n name\n title\n }\n }\n }\n }\n`;\n\nexport const CREATE_TEAM = gql`\n mutation TranscendCliCreateTeam($input: TeamInput!) {\n createTeam(input: $input) {\n team {\n id\n name\n }\n }\n }\n`;\n\nexport const UPDATE_TEAM = gql`\n mutation TranscendCliUpdateTeam($input: UpdateTeamInput!) {\n updateTeam(input: $input) {\n team {\n id\n name\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const REMOVE_REQUEST_IDENTIFIERS = gql`\n mutation TranscendCliRemoveRequestIdentifiers(\n $input: RemoveRequestIdentifiersInput!\n ) {\n removeRequestIdentifiers(input: $input) {\n count\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const REQUEST_IDENTIFIERS = gql`\n query TranscendCliRequestIdentifiers(\n $first: Int!\n $offset: Int!\n $requestIds: [ID!]!\n ) {\n requestIdentifiers(\n input: { requestIds: $requestIds }\n first: $first\n offset: $offset\n useMaster: false\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n isVerifiedAtLeastOnce\n }\n totalCount\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const USERS = gql`\n query TranscendCliUsers(\n $first: Int!\n $offset: Int!\n $input: UserFiltersInput\n ) {\n users(\n first: $first\n offset: $offset\n filterBy: $input\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n email\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const REQUEST_FILES = gql`\n query TranscendCliRequestFiles(\n $first: Int!\n $offset: Int!\n $filterBy: RequestFileFiltersInput!\n ) {\n requestFiles(\n filterBy: $filterBy\n first: $first\n offset: $offset\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: id, direction: ASC }\n ]\n ) {\n nodes {\n remoteId\n fileName\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const REPORT_PROMPT_RUN = gql`\n mutation TranscendCliReportPromptRun($input: ReportPromptRunInput!) {\n reportPromptRun(input: $input) {\n clientMutationId\n promptRun {\n id\n }\n }\n }\n`;\n\nexport const ADD_MESSAGES_TO_PROMPT_RUN = gql`\n mutation TranscendCliAddMessagesToPromptRun(\n $input: AddMessagesToPromptRunInput!\n ) {\n addMessagesToPromptRun(input: $input) {\n clientMutationId\n promptRun {\n id\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: title, direction: ASC }\n// ]\nexport const GLOBAL_ACTION_ITEM_COLLECTIONS = gql`\n query TranscendCliGlobalActionItemCollectionss(\n $filterBy: GlobalActionItemCollectionFiltersInput!\n ) {\n globalActionItemCollections(filterBy: $filterBy) {\n nodes {\n id\n title\n description\n hidden\n productLine\n }\n }\n }\n`;\n\nexport const CREATE_ACTION_ITEM_COLLECTION = gql`\n mutation TranscendCliCreateActionItemCollection(\n $input: CreateActionItemCollectionInput!\n ) {\n createActionItemCollection(input: $input) {\n created {\n id\n title\n }\n }\n }\n`;\n\nexport const UPDATE_ACTION_ITEM_COLLECTION = gql`\n mutation TranscendCliUpdateActionItemCollection(\n $input: UpdateActionItemCollectionInput!\n ) {\n updateActionItemCollection(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const ATTRIBUTES = gql`\n query TranscendCliAttributes($first: Int!, $offset: Int!) {\n attributeKeys(first: $first, offset: $offset, useMaster: false) {\n nodes {\n id\n isCustom\n description\n enabledOn\n name\n type\n }\n }\n }\n`;\n\nexport const CREATE_ATTRIBUTE_VALUES = gql`\n mutation TranscendCliCreateAttributeValues(\n $input: [CreateAttributeValuesInput!]!\n ) {\n createAttributeValues(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_ATTRIBUTE_VALUES = gql`\n mutation TranscendCliUpdateAttributeValues(\n $input: [UpdateAttributeValueInput!]!\n ) {\n updateAttributeValues(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const DELETE_ATTRIBUTE_VALUE = gql`\n mutation TranscendCliDeleteAttributeValue($id: ID!) {\n deleteAttributeValue(id: $id) {\n clientMutationId\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const ATTRIBUTE_VALUES = gql`\n query TranscendCliAttributeValues(\n $first: Int!\n $offset: Int!\n $attributeKeyId: ID!\n ) {\n attributeValues(\n first: $first\n offset: $offset\n useMaster: false\n filterBy: { attributeKeys: [$attributeKeyId] }\n ) {\n nodes {\n id\n name\n description\n color\n }\n }\n }\n`;\n\nexport const CREATE_ATTRIBUTE = gql`\n mutation TranscendCliCreateAttribute(\n $name: String!\n $type: AttributeKeyType!\n $description: String\n $enabledOn: [AttributeSupportedResourceType!]\n ) {\n createAttributeKey(\n input: {\n name: $name\n type: $type\n description: $description\n enabledOn: $enabledOn\n }\n ) {\n clientMutationId\n attributeKey {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_ATTRIBUTE = gql`\n mutation TranscendCliCreateAttribute(\n $attributeKeyId: ID!\n $description: String\n $enabledOn: [AttributeSupportedResourceType!]\n ) {\n updateAttributeKey(\n input: {\n id: $attributeKeyId\n description: $description\n enabledOn: $enabledOn\n }\n ) {\n clientMutationId\n attributeKey {\n id\n }\n }\n }\n`;\n\nexport const SET_RESOURCE_ATTRIBUTES = gql`\n mutation TranscendCliSetResourceAttributes(\n $input: SetResourceAttributesInput!\n ) {\n setResourceAttributes(input: $input) {\n clientMutationId\n }\n }\n`;\n","/* eslint-disable max-lines */\nimport { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const EXPERIENCES = gql`\n query TranscendCliExperiences($first: Int!, $offset: Int!) {\n experiences(first: $first, offset: $offset, useMaster: false) {\n nodes {\n id\n name\n displayName\n regions {\n countrySubDivision\n country\n }\n operator\n displayPriority\n onConsentExpiry\n consentExpiry\n viewState\n purposes {\n name\n trackingType\n }\n optedOutPurposes {\n name\n trackingType\n }\n browserLanguages\n browserTimeZones\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// useMaster: false\n// isExportCsv: true\nexport const CONSENT_PARTITIONS = gql`\n query TranscendCliConsentPartitions($first: Int!, $offset: Int!) {\n consentPartitions(first: $first, offset: $offset) {\n nodes {\n id\n name\n partition\n }\n }\n }\n`;\n\nexport const CREATE_DATA_FLOWS = gql`\n mutation TranscendCliCreateDataFlows(\n $dataFlows: [DataFlowInput!]!\n $airgapBundleId: ID!\n $classifyService: Boolean\n ) {\n createDataFlows(\n input: {\n airgapBundleId: $airgapBundleId\n dataFlows: $dataFlows\n classifyService: $classifyService\n }\n ) {\n dataFlows {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_DATA_FLOWS = gql`\n mutation TranscendCliUpdateDataFlows(\n $airgapBundleId: ID!\n $dataFlows: [UpdateDataFlowInput!]!\n $classifyService: Boolean\n ) {\n updateDataFlows(\n input: {\n airgapBundleId: $airgapBundleId\n dataFlows: $dataFlows\n classifyService: $classifyService\n }\n ) {\n dataFlows {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_OR_CREATE_COOKIES = gql`\n mutation TranscendCliUpdateOrCreateCookies(\n $cookies: [UpdateOrCreateCookieInput!]!\n $airgapBundleId: ID!\n ) {\n updateOrCreateCookies(\n input: { airgapBundleId: $airgapBundleId, cookies: $cookies }\n ) {\n clientMutationId\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const DATA_FLOWS = gql`\n query TranscendCliDataFlows(\n $first: Int!\n $airgapBundleId: ID!\n $offset: Int!\n $status: ConsentTrackerStatus\n $showZeroActivity: Boolean\n ) {\n dataFlows(\n first: $first\n offset: $offset\n filterBy: { status: $status, showZeroActivity: $showZeroActivity }\n input: { airgapBundleId: $airgapBundleId }\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: value, direction: ASC }\n ]\n useMaster: false\n ) {\n nodes {\n id\n value\n type\n description\n trackingType\n service {\n integrationName\n }\n source\n status\n owners {\n email\n }\n teams {\n name\n }\n attributeValues {\n name\n attributeKey {\n name\n }\n }\n }\n }\n }\n`;\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const COOKIES = gql`\n query TranscendCliCookies(\n $first: Int!\n $offset: Int!\n $airgapBundleId: ID!\n $status: ConsentTrackerStatus\n ) {\n cookies(\n first: $first\n offset: $offset\n filterBy: { status: $status }\n input: { airgapBundleId: $airgapBundleId }\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n useMaster: false\n ) {\n nodes {\n id\n name\n isRegex\n description\n trackingPurposes\n service {\n integrationName\n }\n source\n status\n owners {\n email\n }\n teams {\n name\n }\n attributeValues {\n name\n attributeKey {\n name\n }\n }\n }\n }\n }\n`;\n\nexport const FETCH_CONSENT_MANAGER_ID = gql`\n query TranscendCliFetchConsentManagerId {\n consentManager {\n consentManager {\n id\n }\n }\n }\n`;\n\nexport const FETCH_CONSENT_MANAGER = gql`\n query TranscendCliFetchConsentManager {\n consentManager {\n consentManager {\n id\n bundleURL\n testBundleURL\n configuration {\n domains\n consentPrecedence\n unknownRequestPolicy\n unknownCookiePolicy\n syncEndpoint\n telemetryPartitioning\n signedIabAgreement\n syncGroups\n partition\n }\n partition {\n partition\n }\n }\n }\n }\n`;\n\nexport const FETCH_CONSENT_MANAGER_THEME = gql`\n query TranscendCliFetchConsentManagerTheme($airgapBundleId: ID!) {\n consentManagerTheme(input: { airgapBundleId: $airgapBundleId }) {\n theme {\n primaryColor\n fontColor\n privacyPolicy\n prompt\n }\n }\n }\n`;\n\nexport const CREATE_CONSENT_MANAGER = gql`\n mutation TranscendCliCreateConsentManager($privacyCenterId: ID!) {\n createConsentManager(input: { privacyCenterId: $privacyCenterId }) {\n consentManager {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_CONSENT_MANAGER_VERSION = gql`\n mutation TranscendCliUpdateConsentManager(\n $airgapBundleId: ID!\n $version: String!\n ) {\n updateConsentManager(id: $airgapBundleId, input: { version: $version }) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_CONSENT_MANAGER_TO_LATEST = gql`\n mutation TranscendCliUpdateConsentManagerToLatest(\n $airgapBundleId: ID!\n $bundleType: ConsentBundleType!\n ) {\n updateConsentManagerToLatestVersion(\n id: $airgapBundleId\n input: { bundleType: $bundleType }\n ) {\n clientMutationId\n }\n }\n`;\n\nexport const DEPLOY_CONSENT_MANAGER = gql`\n mutation TranscendCliDeployConsentManager(\n $airgapBundleId: ID!\n $bundleType: ConsentBundleType!\n ) {\n deployConsentManagerBundle(\n id: $airgapBundleId\n input: { bundleType: $bundleType }\n ) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_CONSENT_MANAGER_DOMAINS = gql`\n mutation TranscendCliUpdateConsentManagerDomains(\n $airgapBundleId: ID!\n $domains: [String!]!\n ) {\n updateConsentManagerDomains(\n input: { id: $airgapBundleId, domains: $domains }\n ) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_CONSENT_MANAGER_PARTITION = gql`\n mutation TranscendCliUpdateConsentManagerPartition(\n $airgapBundleId: ID!\n $partitionId: ID!\n ) {\n updateConsentManagerPartition(\n input: { id: $airgapBundleId, partitionId: $partitionId }\n ) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_LOAD_OPTIONS = gql`\n mutation TranscendCliUpdateLoadOptions($input: UpdateLoadOptionsInput!) {\n updateLoadOptions(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const TOGGLE_UNKNOWN_REQUEST_POLICY = gql`\n mutation TranscendCliToggleUnknownRequestPolicy(\n $input: ToggleUnknownRequestPolicyInput!\n ) {\n toggleUnknownRequestPolicy(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const TOGGLE_UNKNOWN_COOKIE_POLICY = gql`\n mutation TranscendCliToggleUnknownCookiePolicy(\n $input: ToggleUnknownCookiePolicyInput!\n ) {\n toggleUnknownCookiePolicy(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const TOGGLE_TELEMETRY_PARTITION_STRATEGY = gql`\n mutation TranscendCliToggleTelemetryPartitionStrategy(\n $input: ToggleTelemetryPartitionStrategyInput!\n ) {\n toggleTelemetryPartitioning(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const TOGGLE_CONSENT_PRECEDENCE = gql`\n mutation TranscendCliToggleConsentPrecedence(\n $input: ToggleConsentPrecedenceInput!\n ) {\n toggleConsentPrecedence(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_CONSENT_MANAGER_THEME = gql`\n mutation TranscendCliUpdateConsentManagerTheme(\n $input: UpdateConsentManagerThemeInput!\n ) {\n updateConsentManagerTheme(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const UPDATE_CONSENT_EXPERIENCE = gql`\n mutation TranscendCliUpdateConsentExperience($input: UpdateExperienceInput!) {\n updateExperience(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const CREATE_CONSENT_EXPERIENCE = gql`\n mutation TranscendCliCreateConsentExperience($input: CreateExperienceInput!) {\n createExperience(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const CREATE_CONSENT_PARTITION = gql`\n mutation TranscendCliCreateConsentPartition(\n $input: CreateConsentPartitionInput!\n ) {\n createConsentPartition(input: $input) {\n clientMutationId\n }\n }\n`;\n/* eslint-enable max-lines */\n","import { gql } from 'graphql-request';\n\nexport const CONSENT_MANAGER_ANALYTICS_DATA = gql`\n query TranscendCliConsentManagerAnalyticsData($input: AnalyticsInput!) {\n analyticsData(input: $input) {\n series {\n name\n points {\n key\n value\n }\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\nexport const BUSINESS_ENTITIES = gql`\n query TranscendCliBusinessEntities($first: Int!, $offset: Int!) {\n businessEntities(\n first: $first\n offset: $offset\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: title, direction: ASC }\n ]\n useMaster: false\n ) {\n nodes {\n id\n title\n description\n dataProtectionOfficerName\n dataProtectionOfficerEmail\n address\n headquarterCountry\n headquarterSubDivision\n attributeValues {\n name\n attributeKey {\n name\n }\n }\n }\n }\n }\n`;\n\nexport const CREATE_BUSINESS_ENTITY = gql`\n mutation TranscendCliCreateBusinessEntity(\n $input: CreateBusinessEntityInput!\n ) {\n createBusinessEntity(input: $input) {\n businessEntity {\n id\n title\n description\n dataProtectionOfficerName\n dataProtectionOfficerEmail\n address\n headquarterCountry\n headquarterSubDivision\n attributeValues {\n name\n attributeKey {\n name\n }\n }\n }\n }\n }\n`;\n\nexport const UPDATE_BUSINESS_ENTITIES = gql`\n mutation TranscendCliUpdateBusinessEntities(\n $input: [UpdateBusinessEntityInput!]!\n ) {\n updateBusinessEntities(input: { businessEntities: $input }) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// TODO: https://transcend.height.app/T-27909 - order by createdAt\nexport const ACTIONS = gql`\n query TranscendCliActions($first: Int!, $offset: Int!) {\n actions(\n first: $first\n offset: $offset\n useMaster: false\n orderBy: [{ field: type, direction: ASC }]\n ) {\n nodes {\n id\n type\n skipSecondaryIfNoFiles\n skipDownloadableStep\n requiresReview\n regionList\n regionDetectionMethod\n waitingPeriod\n }\n }\n }\n`;\n\nexport const UPDATE_ACTION = gql`\n mutation TranscendCliUpdateAction($input: UpdateActionInput!) {\n updateAction(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: title, direction: ASC }\n// ]\nexport const GLOBAL_ACTION_ITEMS = gql`\n query TranscendCliGlobalActionItems(\n $first: Int!\n $offset: Int!\n $filterBy: GlobalActionItemFiltersInput!\n ) {\n globalActionItems(first: $first, offset: $offset, filterBy: $filterBy) {\n nodes {\n ids\n count\n teams {\n id\n name\n }\n customerExperienceActionItemIds\n users {\n id\n email\n }\n collections {\n title\n id\n }\n dueDate\n priority\n titles\n resolved\n notes\n links\n type\n additionalContexts {\n iconOverride\n requestId\n dataSiloId\n requestType\n latestAirgapVersion\n parentTitle\n }\n attributeValues {\n name\n attributeKey {\n name\n }\n }\n }\n }\n }\n`;\n\nexport const UPDATE_ACTION_ITEMS = gql`\n mutation TranscendCliUpdateActionItems($input: UpdateActionItemsInput!) {\n updateActionItems(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport const CREATE_ACTION_ITEMS = gql`\n mutation TranscendCliCreateActionItems($input: [CreateActionItemsInput!]!) {\n createActionItems(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const FETCH_PRIVACY_CENTER_ID = gql`\n query TranscendCliFetchPrivacyCenterId($url: String!) {\n privacyCenter(lookup: { url: $url }) {\n id\n }\n }\n`;\n\nexport const DEPLOYED_PRIVACY_CENTER_URL = gql`\n query TranscendCliDeployedPrivacyCenterUrl {\n organization {\n deployedPrivacyCenterUrl\n }\n }\n`;\n\nexport const PRIVACY_CENTER = gql`\n query TranscendCliFetchPrivacyCenters($url: String!) {\n privacyCenter(lookup: { url: $url }) {\n id\n url\n isDisabled\n showPrivacyRequestButton\n showPolicies\n showTrackingTechnologies\n showCookies\n showDataFlows\n showConsentManager\n showManageYourPrivacy\n showMarketingPreferences\n locales\n defaultLocale\n preferBrowserDefaultLocale\n supportEmail\n replyToEmail\n useNoReplyEmailAddress\n useCustomEmailDomain\n transformAccessReportJsonToCsv\n themeStr\n }\n }\n`;\n\nexport const UPDATE_PRIVACY_CENTER = gql`\n mutation TranscendCliUpdatePrivacyCenter($input: UpdatePrivacyCenterInput!) {\n updatePrivacyCenter(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const DETERMINE_LOGIN_METHOD = gql`\n mutation TranscendCliDetermineLoginMethod($email: String!) {\n determineLoginMethod(input: { email: $email }) {\n loginMethod {\n email\n sombraPublicKey\n }\n }\n }\n`;\n\nexport const LOGIN = gql`\n mutation TranscendCliLogin(\n $email: String!\n $password: String!\n $publicKey: String!\n ) {\n login(\n input: { email: $email, password: $password }\n publicKey: $publicKey\n ) {\n user {\n roles {\n id\n organization {\n name\n id\n uri\n parentOrganizationId\n }\n }\n }\n }\n }\n`;\n\nexport const ASSUME_ROLE = gql`\n mutation TranscendCliAssumeRole($id: ID!, $publicKey: String!) {\n assumeRole(id: $id, publicKey: $publicKey) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const LARGE_LANGUAGE_MODELS = gql`\n query TranscendCliLargeLanguageModels(\n $first: Int!\n $offset: Int!\n $filterBy: LargeLanguageModelFiltersInput\n ) {\n largeLanguageModels(\n first: $first\n orderBy: [\n { field: name, direction: ASC }\n { field: client, direction: ASC }\n { field: isTranscendHosted, direction: ASC }\n ]\n offset: $offset\n filterBy: $filterBy\n ) {\n nodes {\n id\n name\n client\n isTranscendHosted\n }\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const AGENTS = gql`\n query TranscendCliAgents(\n $first: Int!\n $offset: Int!\n $filterBy: AgentFiltersInput\n ) {\n agents(\n first: $first\n offset: $offset\n filterBy: $filterBy\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n agentId\n instructions\n description\n codeInterpreterEnabled\n retrievalEnabled\n prompt {\n title\n }\n largeLanguageModel {\n name\n client\n }\n teams {\n name\n }\n owners {\n email\n }\n agentFunctions {\n name\n }\n agentFiles {\n name\n }\n }\n }\n }\n`;\n\nexport const CREATE_AGENT = gql`\n mutation TranscendCliCreateAgent($input: CreateAgentInput!) {\n createAgent(input: $input) {\n agent {\n id\n name\n agentId\n }\n }\n }\n`;\n\nexport const UPDATE_AGENTS = gql`\n mutation TranscendCliUpdateAgents($input: UpdateAgentsInput!) {\n updateAgents(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const AGENT_FILES = gql`\n query TranscendCliAgentFiles(\n $first: Int!\n $offset: Int!\n $filterBy: AgentFileFiltersInput\n ) {\n agentFiles(\n first: $first\n offset: $offset\n filterBy: $filterBy\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n description\n fileId\n size\n purpose\n initialFileName\n }\n }\n }\n`;\n\nexport const CREATE_AGENT_FILE = gql`\n mutation TranscendCliCreateAgentFile($input: CreateAgentFileInput!) {\n createAgentFile(input: $input) {\n agentFile {\n id\n name\n fileId\n initialFileName\n }\n }\n }\n`;\n\nexport const UPDATE_AGENT_FILES = gql`\n mutation TranscendCliUpdateAgentFiles($input: UpdateAgentFilesInput!) {\n updateAgentFiles(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// isExportCsv: true\n// useMaster: false\nexport const AGENT_FUNCTIONS = gql`\n query TranscendCliAgentFunctions($first: Int!, $offset: Int!) {\n agentFunctions(\n first: $first\n offset: $offset\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: name, direction: ASC }\n ]\n ) {\n nodes {\n id\n name\n description\n parameters\n }\n }\n }\n`;\n\nexport const CREATE_AGENT_FUNCTION = gql`\n mutation TranscendCliCreateAgentFunction($input: CreateAgentFunctionInput!) {\n createAgentFunction(input: $input) {\n agentFunction {\n id\n name\n }\n }\n }\n`;\n\nexport const UPDATE_AGENT_FUNCTIONS = gql`\n mutation TranscendCliUpdateAgentFunctions(\n $input: UpdateAgentFunctionsInput!\n ) {\n updateAgentFunctions(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const VENDORS = gql`\n query TranscendCliVendors($first: Int!, $offset: Int!) {\n vendors(\n first: $first\n offset: $offset\n useMaster: false\n isExportCsv: true\n orderBy: [\n { field: createdAt, direction: ASC }\n { field: title, direction: ASC }\n ]\n ) {\n nodes {\n id\n title\n description\n dataProcessingAgreementLink\n contactName\n contactEmail\n contactPhone\n address\n headquarterCountry\n headquarterSubDivision\n websiteUrl\n businessEntity {\n title\n }\n teams {\n name\n }\n owners {\n email\n }\n attributeValues {\n attributeKey {\n name\n }\n name\n }\n }\n }\n }\n`;\n\nexport const CREATE_VENDOR = gql`\n mutation TranscendCliCreateVendor($input: CreateVendorInput!) {\n createVendor(input: $input) {\n vendor {\n id\n title\n }\n }\n }\n`;\n\nexport const UPDATE_VENDORS = gql`\n mutation TranscendCliUpdateVendor($input: UpdateVendorsInput!) {\n updateVendors(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: name, direction: ASC }\n// ]\nexport const DATA_SUB_CATEGORIES = gql`\n query TranscendCliDataSubCategories($first: Int!, $offset: Int!) {\n dataSubCategories(\n first: $first\n offset: $offset\n isExportCsv: true\n useMaster: false\n ) {\n nodes {\n id\n name\n category\n description\n regex\n teams {\n name\n }\n owners {\n email\n }\n attributeValues {\n attributeKey {\n name\n }\n name\n }\n }\n }\n }\n`;\n\nexport const CREATE_DATA_SUB_CATEGORY = gql`\n mutation TranscendCliCreateDataSubCategory(\n $input: CreateDataInventorySubCategoryInput!\n ) {\n createDataSubCategory(input: $input) {\n dataSubCategory {\n id\n name\n category\n }\n }\n }\n`;\n\nexport const UPDATE_DATA_SUB_CATEGORIES = gql`\n mutation TranscendCliUpdateDataSubCategories(\n $input: UpdateDataSubCategoriesInput!\n ) {\n updateDataSubCategories(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\n// TODO: https://transcend.height.app/T-27909 - enable optimizations\n// orderBy: [\n// { field: createdAt, direction: ASC }\n// { field: name, direction: ASC }\n// ]\nexport const PROCESSING_PURPOSE_SUB_CATEGORIES = gql`\n query TranscendCliProcessingPurposeSubCategories(\n $first: Int!\n $offset: Int!\n ) {\n processingPurposeSubCategories(\n first: $first\n offset: $offset\n isExportCsv: true\n useMaster: false\n ) {\n nodes {\n id\n name\n purpose\n description\n teams {\n name\n }\n owners {\n email\n }\n attributeValues {\n attributeKey {\n name\n }\n name\n }\n }\n }\n }\n`;\n\nexport const CREATE_PROCESSING_PURPOSE_SUB_CATEGORY = gql`\n mutation TranscendCliCreateProcessingPurposeSubCategory(\n $input: CreateProcessingPurposeCategoryInput!\n ) {\n createProcessingPurposeSubCategory(input: $input) {\n processingPurposeSubCategory {\n id\n name\n purpose\n }\n }\n }\n`;\n\nexport const UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES = gql`\n mutation TranscendCliUpdateProcessingPurposeSubCategories(\n $input: UpdateProcessingPurposeSubCategoriesInput!\n ) {\n updateProcessingPurposeSubCategories(input: $input) {\n clientMutationId\n }\n }\n`;\n","import { gql } from 'graphql-request';\n\nexport const SOMBRA_VERSION = gql`\n query TranscendSombraVersion {\n organization {\n sombra {\n version\n }\n }\n }\n`;\n","import type {\n GraphQLClient,\n RequestDocument,\n Variables,\n} from 'graphql-request';\nimport { logger } from '../../logger';\nimport colors from 'colors';\n\nconst MAX_RETRIES = 4;\n\n/**\n * Sleep in a promise\n *\n * @param sleepTime - The time to sleep in milliseconds.\n * @returns Resolves promise\n */\nfunction sleepPromise(sleepTime: number): Promise<number> {\n return new Promise((resolve) => {\n setTimeout(() => resolve(sleepTime), sleepTime);\n });\n}\n\nconst KNOWN_ERRORS = [\n 'syntax error',\n 'got invalid value',\n 'Client error',\n 'cannot affect row a second time',\n 'GRAPHQL_VALIDATION_FAILED',\n];\n\n/**\n * Make a GraphQL request with retries\n *\n * @param client - GraphQL client\n * @param document - document\n * @param variables - Variable\n * @param requestHeaders - Headers\n * @param maxRequests - Max number of requests\n * @returns Response\n */\nexport async function makeGraphQLRequest<T, V extends Variables = Variables>(\n client: GraphQLClient,\n document: RequestDocument,\n variables?: V,\n requestHeaders?: Record<string, string> | string[][] | Headers,\n maxRequests = MAX_RETRIES,\n): Promise<T> {\n let retryCount = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n try {\n const result = await client.request(document, variables, requestHeaders);\n return result as T;\n } catch (err) {\n if (err.message.includes('API key is invalid')) {\n logger.error(\n colors.red(\n 'API key is invalid. ' +\n 'Please ensure that the key provided to `transcendAuth` has the proper scope and is not expired, ' +\n 'and that `transcendUrl` corresponds to the correct backend for your organization.',\n ),\n );\n process.exit(1);\n }\n\n if (KNOWN_ERRORS.some((msg) => err.message.includes(msg))) {\n throw err;\n }\n\n // wait for rate limit to resolve\n if (err.message.startsWith('Client error: Too many requests')) {\n const rateLimitResetAt = err.response.headers?.get('x-ratelimit-reset');\n const sleepTime = rateLimitResetAt\n ? new Date(rateLimitResetAt).getTime() - new Date().getTime() + 100\n : 1000 * 10;\n logger.log(\n colors.yellow(\n `DETECTED RATE LIMIT: ${err.message}. Sleeping for ${sleepTime}ms`,\n ),\n );\n\n await sleepPromise(sleepTime);\n }\n\n if (retryCount >= maxRequests) {\n throw err;\n }\n retryCount += 1;\n logger.log(\n colors.yellow(\n `REQUEST FAILED: ${err.message}. Retrying ${retryCount}/${maxRequests}...`,\n ),\n );\n }\n }\n}\n","import { GraphQLClient } from 'graphql-request';\nimport { IdentifierType, RequestAction } from '@transcend-io/privacy-types';\nimport { CREATE_IDENTIFIER, IDENTIFIERS, NEW_IDENTIFIER_TYPES } from './gqls';\nimport { keyBy, uniq, flatten, difference } from 'lodash-es';\nimport { TranscendInput } from '../../codecs';\nimport { logger } from '../../logger';\nimport colors from 'colors';\nimport { mapSeries } from '../bluebird-replace';\nimport { makeGraphQLRequest } from './makeGraphQLRequest';\n\nexport interface Identifier {\n /** ID of identifier */\n id: string;\n /** Name of identifier */\n name: string;\n /** The type of identifier */\n type: IdentifierType;\n /** Regular expression to */\n regex: string;\n /** The set of options that the identifier */\n selectOptions: string[];\n /** Whether identifier is enabled on privacy center */\n privacyCenterVisibility: RequestAction[];\n /** Enabled data subjects that are exposed this identifier on the privacy center */\n dataSubjects: {\n /** type of data subjects */\n type: string;\n }[];\n /** Whether identifier is a required field in privacy center form */\n isRequiredInForm: boolean;\n /** Identifier placeholder text */\n placeholder: string;\n /** Display title for identifier */\n displayTitle: {\n /** Default message */\n defaultMessage: string;\n };\n /** Display description for identifier */\n displayDescription: {\n /** Default */\n defaultMessage: string;\n };\n /** Display order */\n displayOrder: number;\n}\n\nconst PAGE_SIZE = 20;\n\n/**\n * Fetch all identifiers in the organization\n *\n * @param client - GraphQL client\n * @returns All identifiers in the organization\n */\nexport async function fetchAllIdentifiers(\n client: GraphQLClient,\n): Promise<Identifier[]> {\n const identifiers: Identifier[] = [];\n let offset = 0;\n\n // Whether to continue looping\n let shouldContinue = false;\n do {\n const {\n identifiers: { nodes },\n } = await makeGraphQLRequest<{\n /** Identifiers */\n identifiers: {\n /** List */\n nodes: Identifier[];\n };\n }>(client, IDENTIFIERS, {\n first: PAGE_SIZE,\n offset,\n });\n identifiers.push(...nodes);\n offset += PAGE_SIZE;\n shouldContinue = nodes.length === PAGE_SIZE;\n } while (shouldContinue);\n\n return identifiers.sort((a, b) => a.name.localeCompare(b.name));\n}\n\n/**\n * Fetch all identifiers and if any are found in the config that are\n * missing, create those identifiers.\n *\n * @param input - Transcend input\n * @param client - GraphQL client\n * @param skipPublish - When true, skip publishing to privacy center\n * @returns A map from identifier name to Identifier\n */\nexport async function fetchIdentifiersAndCreateMissing(\n {\n enrichers = [],\n 'data-silos': dataSilos = [],\n identifiers = [],\n }: TranscendInput,\n client: GraphQLClient,\n skipPublish = false,\n): Promise<{ [k in string]: Identifier }> {\n // Grab all existing identifiers\n const allIdentifiers = await fetchAllIdentifiers(client);\n\n // Create a map\n const identifiersByName = keyBy(allIdentifiers, 'name');\n\n // Determine expected set of identifiers\n const expectedIdentifiers = uniq([\n ...flatten(\n enrichers.map((enricher) => [\n enricher['input-identifier'],\n ...enricher['output-identifiers'],\n ]),\n ),\n ...flatten(dataSilos.map((dataSilo) => dataSilo['identity-keys'])),\n ...identifiers.map(({ name }) => name),\n ]).filter((x) => !!x);\n const missingIdentifiers = difference(\n expectedIdentifiers,\n allIdentifiers.map(({ name }) => name),\n );\n\n // If there are missing identifiers, create new ones\n if (missingIdentifiers.length > 0) {\n logger.info(\n colors.magenta(\n `Creating ${missingIdentifiers.length} new identifiers...`,\n ),\n );\n const { newIdentifierTypes } = await makeGraphQLRequest<{\n /** Query response */\n newIdentifierTypes: {\n /** Name of identifier type remaining */\n name: string;\n }[];\n }>(client, NEW_IDENTIFIER_TYPES);\n const nativeTypesRemaining = newIdentifierTypes.map(({ name }) => name);\n await mapSeries(missingIdentifiers, async (identifier) => {\n logger.info(colors.magenta(`Creating identifier ${identifier}...`));\n const { createIdentifier } = await makeGraphQLRequest<{\n /** createIdentifier Response */\n createIdentifier: {\n /** Created identifier */\n identifier: Identifier;\n };\n }>(client, CREATE_IDENTIFIER, {\n input: {\n name: identifier,\n type: nativeTypesRemaining.includes(identifier!)\n ? identifier\n : 'custom',\n skipPublish,\n },\n });\n logger.info(colors.green(`Created identifier ${identifier}!`));\n\n identifiersByName[identifier!] = createIdentifier.identifier;\n });\n }\n return identifiersByName;\n}\n","import { IdentifierInput } from '../../codecs';\nimport { GraphQLClient } from 'graphql-request';\nimport { UPDATE_IDENTIFIER } from './gqls';\nimport { makeGraphQLRequest } from './makeGraphQLRequest';\nimport type { DataSubject } from './fetchDataSubjects';\n\n/**\n * Sync the consent manager\n *\n * @param client - GraphQL client\n * @param options - Options\n */\nexport async function syncIdentifier(\n client: GraphQLClient,\n {\n identifier,\n dataSubjectsByName,\n identifierId,\n skipPublish = false,\n }: {\n /** Identifier update input */\n identifier: IdentifierInput;\n /** Data subject lookup by name */\n dataSubjectsByName: { [k in string]: DataSubject };\n /** Existing identifier Id */\n identifierId: string;\n /** When true, skip publishing to privacy center */\n skipPublish?: boolean;\n },\n): Promise<void> {\n await makeGraphQLRequest(client, UPDATE_IDENTIFIER, {\n input: {\n id: identifierId,\n selectOptions: identifier.selectOptions,\n isRequiredInForm: identifier.isRequiredInForm,\n regex: identifier.regex,\n placeholder: identifier.placeholder,\n displayTitle: identifier.displayTitle,\n displayDescription: identifier.displayDescription,\n displayOrder: identifier.displayOrder,\n privacyCenterVisibility: identifier.privacyCenterVisibility,\n dataSubjectIds: identifier.dataSubjects\n ? identifier.dataSubjects.map((type) => dataSubjectsByName[type].id)\n : undefined,\n skipPublish,\n },\n });\n}\n","import { EnricherInput } from '../../codecs';\nimport { GraphQLClient } from 'graphql-request';\nimport { ENRICHERS, CREATE_ENRICHER, UPDATE_ENRICHER } from './gqls';\nimport {\n EnricherType,\n IsoCountryCode,\n IsoCountrySubdivisionCode,\n PreflightRequestStatus,\n RequestAction,\n} from '@transcend-io/privacy-types';\nimport { Identifier } from './fetchIdentifiers';\nimport { makeGraphQLRequest } from './makeGraphQLRequest';\nimport { DataSubject } from './fetchDataSubjects';\n\nexport interface Enricher {\n /** ID of enricher */\n id: string;\n /** Title of enricher */\n title: string;\n /** URL of enricher */\n url: string;\n /** Server silo */\n type: EnricherType;\n /** Input identifier */\n inputIdentifier: {\n /** Identifier name */\n name: string;\n };\n /** The selected actions */\n actions: RequestAction[];\n /** Output identifiers */\n identifiers: {\n /** Identifier name */\n name: string;\n }[];\n /** Data subjects that the preflight check is configured for */\n dataSubjects: {\n /** Data subject type */\n type: string;\n }[];\n /** The duration (in ms) that the enricher should take to execute. - BigInt */\n expirationDuration: string;\n /** Looker query title */\n lookerQueryTitle?: string;\n /** A regular expression that can be used to match on for cancelation */\n testRegex?: string;\n /** The status that the enricher should transfer to when condition is met. */\n transitionRequestStatus?: PreflightRequestStatus;\n /** The twilio phone number to send from */\n phoneNumbers: string[];\n /**\n * The list of regions that should trigger the enrichment condition\n */\n regionList: (IsoCountryCode | IsoCountrySubdivisionCode)[];\n}\n\nconst PAGE_SIZE = 20;\n\n/**\n * Fetch all enrichers in the organization\n *\n * @param client - GraphQL client\n * @param title - Filter by title\n * @returns All enrichers in the organization\n */\nexport async function fetchAllEnrichers(\n client: GraphQLClient,\n title?: string,\n): Promise<Enricher[]> {\n const enrichers: Enricher[] = [];\n let offset = 0;\n\n // Whether to continue looping\n let shouldContinue = false;\n do {\n const {\n enrichers: { nodes },\n } = await makeGraphQLRequest<{\n /** Query response */\n enrichers: {\n /** List of matches */\n nodes: Enricher[];\n };\n }>(client, ENRICHERS, {\n first: PAGE_SIZE,\n offset,\n title,\n });\n enrichers.push(...nodes);\n offset += PAGE_SIZE;\n shouldContinue = nodes.length === PAGE_SIZE;\n } while (shouldContinue);\n\n return enrichers.sort((a, b) => a.title.localeCompare(b.title));\n}\n\n/**\n * Sync an enricher configuration\n *\n * @param client - GraphQL client\n * @param options - Options\n */\nexport async function syncEnricher(\n client: GraphQLClient,\n {\n enricher,\n identifierByName,\n dataSubjectsByName,\n }: {\n /** The enricher input */\n enricher: EnricherInput;\n /** Index of identifiers in the organization */\n identifierByName: { [name in string]: Identifier };\n /** Lookup data subject by name */\n dataSubjectsByName: { [name in string]: DataSubject };\n },\n): Promise<void> {\n // Whether to continue looping\n const matches = await fetchAllEnrichers(client, enricher.title);\n const existingEnricher = matches.find(\n ({ title }) => title === enricher.title,\n );\n\n // Map to data subject Ids\n const dataSubjectIds = enricher['data-subjects']?.map((subject) => {\n const existing = dataSubjectsByName[subject];\n if (!existing) {\n throw new Error(`Failed to find a data subject with name: ${subject}`);\n }\n return existing.id;\n });\n\n // If enricher exists, update it, else create new\n const inputIdentifier = enricher['input-identifier'];\n const actionUpdates =\n enricher['privacy-actions'] || Object.values(RequestAction);\n if (existingEnricher) {\n await makeGraphQLRequest(client, UPDATE_ENRICHER, {\n input: {\n id: existingEnricher.id,\n title: enricher.title,\n url: enricher.url,\n headers: enricher.headers,\n testRegex: enricher.testRegex,\n lookerQueryTitle: enricher.lookerQueryTitle,\n expirationDuration:\n typeof enricher.expirationDuration === 'number'\n ? enricher.expirationDuration.toString()\n : undefined,\n transitionRequestStatus: enricher.transitionRequestStatus,\n phoneNumbers: enricher.phoneNumbers,\n regionList: enricher.regionList,\n dataSubjectIds,\n description: enricher.description || '',\n inputIdentifier: inputIdentifier\n ? identifierByName[inputIdentifier].id\n : undefined,\n identifiers: enricher['output-identifiers'].map(\n (id) => identifierByName[id].id,\n ),\n ...(existingEnricher.type === EnricherType.Sombra\n ? {}\n : { actions: actionUpdates }),\n },\n });\n } else if (inputIdentifier) {\n await makeGraphQLRequest(client, CREATE_ENRICHER, {\n input: {\n title: enricher.title,\n url: enricher.url,\n type: enricher.type || EnricherType.Server,\n headers: enricher.headers,\n testRegex: enricher.testRegex,\n lookerQueryTitle: enricher.lookerQueryTitle,\n expirationDuration:\n typeof enricher.expirationDuration === 'number'\n ? enricher.expirationDuration.toString()\n : undefined,\n transitionRequestStatus: enricher.transitionRequestStatus,\n phoneNumbers: enricher.phoneNumbers,\n dataSubjectIds,\n regionList: enricher.regionList,\n description: enricher.description || '',\n inputIdentifier: identifierByName[inputIdentifier].id,\n identifiers: enricher['output-identifiers'].map(\n (id) => identifierByName[id].id,\n ),\n actions: actionUpdates,\n },\n });\n }\n}\n","/* eslint-disable max-lines */\nimport cliProgress from 'cli-progress';\nimport {\n DataCategoryInput,\n DataSiloInput,\n ProcessingPurposeInput,\n} from '../../codecs';\nimport { GraphQLClient } from 'graphql-request';\nimport { logger } from '../../logger';\nimport colors from 'colors';\nimport { mapSeries, map } from '../bluebird-replace';\nimport {\n DATA_SILOS,\n CREATE_DATA_SILOS,\n UPDATE_OR_CREATE_DATA_POINT,\n DATA_POINTS,\n SUB_DATA_POINTS,\n UPDATE_DATA_SILOS,\n DATA_SILOS_ENRICHED,\n SUB_DATA_POINTS_WITH_GUESSES,\n} from './gqls';\nimport {\n convertToDataSubjectBlockList,\n DataSubject,\n} from './fetchDataSubjects';\nimport { ApiKey } from './fetchApiKeys';\nimport {\n IsoCountryCode,\n IsoCountrySubdivisionCode,\n PromptAVendorEmailCompletionLinkType,\n PromptAVendorEmailSendType,\n ConfidenceLabel,\n RequestActionObjectResolver,\n SubDataPointDataSubCategoryGuessStatus,\n} from '@transcend-io/privacy-types';\nimport { sortBy, chunk, keyBy } from 'lodash-es';\nimport { makeGraphQLRequest } from './makeGraphQLRequest';\nimport { apply } from '@transcend-io/type-utils';\n\nexport interface DataSiloAttributeValue {\n /** Key associated to value */\n attributeKey: {\n /** Name of key */\n name: string;\n };\n /** Name of value */\n name: string;\n}\nexport interface DataSilo {\n /** ID of dataSilo */\n id: string;\n /** Title of dataSilo */\n title: string;\n /** Type of silo */\n type: string;\n /** The link to the data silo */\n link: string;\n /** Attribute labels */\n attributeValues: DataSiloAttributeValue[];\n /** description */\n description: string;\n /** Metadata for this data silo */\n catalog: {\n /** Whether the data silo supports automated vendor coordination */\n hasAvcFunctionality: boolean;\n };\n}\n\nconst BATCH_SILOS_LIMIT = 20;\n\n/**\n * Fetch all dataSilos in the organization\n *\n * @param client - GraphQL client\n * @param title - Filter by title\n * @returns All dataSilos in the organization\n */\nexport async function fetchAllDataSilos<TDataSilo extends DataSilo>(\n client: GraphQLClient,\n {\n titles,\n pageSize,\n ids = [],\n gql = DATA_SILOS,\n integrationNames = [],\n }: {\n /** Page size to fetch datapoints in */\n pageSize: number;\n /** Title */\n titles?: string[];\n /** IDs */\n ids?: string[];\n /** Set of integration names to fetch */\n integrationNames?: string[];\n /** GQL query for data silos */\n gql?: string;\n },\n): Promise<TDataSilo[]> {\n logger.info(\n colors.magenta(\n `Fetching ${ids.length === 0 ? 'all' : ids.length} Data Silos...`,\n ),\n );\n\n const dataSilos: TDataSilo[] = [];\n let offset = 0;\n\n // Whether to continue looping\n let shouldContinue = false;\n do {\n const {\n dataSilos: { nodes },\n } = await makeGraphQLRequest<{\n /** Query response */\n dataSilos: {\n /** List of matches */\n nodes: TDataSilo[];\n };\n }>(client, gql, {\n filterBy: {\n ids: ids.length > 0 ? ids : undefined,\n type: integrationNames.length > 0 ? integrationNames : undefined,\n titles,\n },\n first: pageSize,\n offset,\n });\n dataSilos.push(...nodes);\n offset += pageSize;\n shouldContinue = nodes.length === pageSize;\n } while (shouldContinue);\n logger.info(\n colors.green(\n `Found a total of ${dataSilos.length} data silo${\n ids.length > 0 ? ` matching IDs ${ids.join(',')}` : ''\n }s${\n integrationNames.length > 0\n ? ` matching integrationNames ${integrationNames.join(',')}`\n : ''\n }`,\n ),\n );\n\n return dataSilos.sort((a, b) => a.title.localeCompare(b.title));\n}\n\nexport interface SubDataPoint {\n /** Name (or key) of the subdatapoint */\n name: string;\n /** The description */\n description?: string;\n /** Personal data category */\n categories: DataCategoryInput[];\n /** The processing purpose for this sub datapoint */\n purposes: ProcessingPurposeInput[];\n /**\n * When true, this subdatapoint should be revealed in a data access request.\n * When false, this field should be redacted\n */\n accessRequestVisibilityEnabled: boolean;\n /**\n * When true, this subdatapoint should be redacted during an erasure request.\n * There normally is a choice of enabling hard deletion or redaction at the\n * datapoint level, but if redaction is enabled, this column can be used\n * to define which fields should be redacted.\n */\n erasureRequestRedactionEnabled: boolean;\n /** Attribute attached to subdatapoint */\n attributeValues: DataSiloAttributeValue[];\n /** Data category guesses that are output by the classifier */\n pendingCategoryGuesses?: {\n /** Data category being guessed */\n category: DataCategoryInput;\n /** Status of guess */\n status: SubDataPointDataSubCategoryGuessStatus;\n /** Confidence level of guess */\n confidence: number;\n /** Confidence label */\n confidenceLabel: ConfidenceLabel;\n /** classifier version that produced the guess */\n classifierVersion: number;\n }[];\n}\n\ninterface DataPoint {\n /** ID of dataPoint */\n id: string;\n /** Title of dataPoint */\n title: {\n /** Default message */\n defaultMessage: string;\n };\n /** The path to this data point */\n path: string[];\n /** Description */\n description: {\n /** Default message */\n defaultMessage: string;\n };\n /** Name */\n name: string;\n /** Global actions */\n actionSettings: {\n /** Action type */\n type: RequestActionObjectResolver;\n /** Is enabled */\n active: boolean;\n }[];\n /** Data collection tag for privacy request download zip labeling */\n dataCollection?: {\n /** Title of data collection */\n title: {\n /** Default message (since message can be translated) */\n defaultMessage: string;\n };\n };\n /** Metadata for this data silo */\n catalog: {\n /** Whether the data silo supports automated vendor coordination */\n hasAvcFunctionality: boolean;\n };\n /** Owners of the datapoint */\n owners: {\n /** Email address of the owner */\n email: string;\n }[];\n /** Teams that own the datapoint */\n teams: {\n /** Name of the team */\n name: string;\n }[];\n /** Database integration queries */\n dbIntegrationQueries: {\n /** Approved query */\n query: string | null;\n /** Suggested query */\n suggestedQuery: string | null;\n /** Request action */\n requestType: RequestActionObjectResolver;\n }[];\n}\n\ninterface DataPointWithSubDataPoint extends DataPoint {\n /** The associated subdatapoints */\n subDataPoints: SubDataPoint[];\n}\n\n/**\n * Helper to fetch all subdatapoints for a given datapoint\n *\n * @param client - The GraphQL client\n * @param dataPointId - The datapoint ID\n * @param options - Options\n * @returns The list of subdatapoints\n */\nexport async function fetchAllSubDataPoints(\n client: GraphQLClient,\n dataPointId: string,\n {\n debug,\n includeGuessedCategories,\n pageSize,\n }: {\n /** Debug logs */\n debug: boolean;\n /** Page size */\n pageSize: number;\n /** When true, metadata around guessed data categories should be included */\n includeGuessedCategories?: boolean;\n },\n): Promise<SubDataPoint[]> {\n const subDataPoints: SubDataPoint[] = [];\n\n let offset = 0;\n\n let shouldContinue = false;\n do {\n try {\n if (debug) {\n logger.log(\n colors.magenta(`Pulling in subdatapoints for offset ${offset}`),\n );\n }\n const {\n subDataPoints: { nodes },\n } = await makeGraphQLRequest<{\n /** Query response */\n subDataPoints: {\n /** List of matches */\n nodes: SubDataPoint[];\n };\n }>(\n client,\n includeGuessedCategories\n ? SUB_DATA_POINTS_WITH_GUESSES\n : SUB_DATA_POINTS,\n {\n first: pageSize,\n filterBy: {\n dataPoints: [dataPointId],\n },\n offset,\n },\n );\n\n subDataPoints.push(...nodes);\n offset += pageSize;\n shouldContinue = nodes.length === pageSize;\n\n if (debug) {\n logger.log(\n colors.green(\n `Pulled in subdatapoints for offset ${offset} for dataPointId=${dataPointId}`,\n ),\n );\n }\n } catch (err) {\n logger.error(\n colors.red(\n `An error fetching subdatapoints for offset ${offset} for dataPointId=${dataPointId}`,\n ),\n );\n throw err;\n }\n } while (shouldContinue);\n return sortBy(subDataPoints, 'name');\n}\n\n/**\n * Fetch all datapoints for a data silo\n *\n * @param client - GraphQL client\n * @param dataSiloId - Data silo ID\n * @param options - Options\n * @returns List of datapoints\n */\nexport async function fetchAllDataPoints(\n client: GraphQLClient,\n dataSiloId: string,\n {\n debug,\n pageSize,\n skipSubDatapoints,\n includeGuessedCategories,\n }: {\n /** Debug logs */\n debug: boolean;\n /** Page size */\n pageSize: number;\n /** Skip fetching of subdatapoints */\n skipSubDatapoints?: boolean;\n /** When true, metadata around guessed data categories should be included */\n includeGuessedCategories?: boolean;\n },\n): Promise<DataPointWithSubDataPoint[]> {\n const dataPoints: DataPointWithSubDataPoint[] = [];\n\n // TODO: https://transcend.height.app/T-40481 - add cursor pagination\n let offset = 0;\n\n // Whether to continue looping\n let shouldContinue = false;\n do {\n if (debug) {\n logger.info(colors.magenta(`Fetching datapoints with offset: ${offset}`));\n }\n\n const {\n dataPoints: { nodes },\n } = await makeGraphQLRequest<{\n /** Query response */\n dataPoints: {\n /** List of matches */\n nodes: DataPoint[];\n };\n }>(client, DATA_POINTS, {\n first: pageSize,\n filterBy: {\n dataSilos: [dataSiloId],\n },\n offset,\n });\n\n if (debug) {\n logger.info(\n colors.magenta(\n `Fetched ${nodes.length} datapoints at offset: ${offset}`,\n ),\n );\n }\n\n if (!skipSubDatapoints) {\n await map(\n nodes,\n /* eslint-disable no-loop-func */\n async (node) => {\n try {\n if (debug) {\n logger.info(\n colors.magenta(\n `Fetching subdatapoints for ${node.name} for datapoint offset ${offset}`,\n ),\n );\n }\n\n const subDataPoints = await fetchAllSubDataPoints(client, node.id, {\n pageSize: 1000, // max page size\n debug,\n includeGuessedCategories,\n });\n dataPoints.push({\n ...node,\n subDataPoints: subDataPoints.sort((a, b) =>\n a.name.localeCompare(b.name),\n ),\n });\n\n if (debug) {\n logger.info(\n colors.green(\n `Successfully fetched subdatapoints for ${node.name}`,\n ),\n );\n }\n } catch (err) {\n logger.error(\n colors.red(\n `An error fetching subdatapoints for ${node.name} datapoint offset ${offset}`,\n ),\n );\n throw err;\n }\n },\n /* eslint-enable no-loop-func */\n {\n concurrency: 5,\n },\n );\n\n if (debug) {\n logger.info(\n colors.green(\n `Fetched all subdatapoints for page of datapoints at offset: ${offset}`,\n ),\n );\n }\n }\n\n offset += pageSize;\n shouldContinue = nodes.length === pageSize;\n } while (shouldContinue);\n return dataPoints.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport interface DataSiloEnriched {\n /** ID of dataSilo */\n id: string;\n /** Title of dataSilo */\n title: string;\n /** Type of silo */\n type: string;\n /** Link to silo */\n link: string;\n /** Outer type of silo */\n outerType: string;\n /** Description of data silo */\n description: string;\n /** Webhook URL */\n url?: string;\n /** Email address of user to notify for prompt a person use case */\n notifyEmailAddress?: string;\n /** Associated API keys */\n apiKeys: {\n /** Title */\n title: string;\n }[];\n /** Data subject block list */\n subjectBlocklist: {\n /** Type of data subject */\n type: string;\n }[];\n /** Identifiers */\n identifiers: {\n /** Name of identifier */\n name: string;\n /** True if identifier is wired */\n isConnected: boolean;\n }[];\n /** Dependent data silos */\n dependentDataSilos: {\n /** Title of silo */\n title: string;\n }[];\n /** Silo owners */\n owners: {\n /** Email owners */\n email: string;\n }[];\n /** The teams assigned to this data silo */\n teams: {\n /** Name of the team assigned to this data silo */\n name: string;\n }[];\n /** Metadata for this data silo */\n catalog: {\n /** Whether the data silo supports automated vendor coordination */\n hasAvcFunctionality: boolean;\n };\n /** Silo is live */\n isLive: boolean;\n /** Hosting country of data silo */\n country?: IsoCountryCode;\n /** Hosting subdivision data silo */\n countrySubDivision?: IsoCountrySubdivisionCode;\n /**\n * The frequency with which we should be sending emails for this data silo, in milliseconds.\n */\n promptAVendorEmailSendFrequency: number;\n /**\n * The type of emails to send for this data silo, i.e. send an email for each DSR, across all open DSRs,\n * or per profile in a DSR.\n */\n promptAVendorEmailSendType: PromptAVendorEmailSendType;\n /**\n * Indicates whether prompt-a-vendor emails should include a list of identifiers\n * in addition to a link to the bulk processing UI.\n */\n promptAVendorEmailIncludeIdentifiersAttachment: boolean;\n /**\n * Indicates what kind of link to generate as part of the emails sent out for this Prompt-a-Vendor silo.\n */\n promptAVendorEmailCompletionLinkType: PromptAVendorEmailCompletionLinkType;\n /**\n * The frequency with which we should retry sending emails for this data silo, in milliseconds.\n * Needs to be a string because the number can be larger than the MAX_INT\n */\n manualWorkRetryFrequency: string;\n /** Attribute values tagged to data silo */\n attributeValues: DataSiloAttributeValue[];\n /**\n * The data silos that discovered this particular data silo\n */\n discoveredBy: {\n /** Title of data silo */\n title: string;\n }[];\n /**\n * The business entities assigned directly to this data silo\n */\n businessEntities: {\n /** Title of business entity */\n title: string;\n }[];\n}\n\n/**\n * Fetch all dataSilos with additional metadata\n *\n * @param client - GraphQL client\n * @param options - Filter options\n * @returns All dataSilos in the organization\n */\nexport async function fetchEnrichedDataSilos(\n client: GraphQLClient,\n {\n ids,\n pageSize,\n titles,\n debug,\n skipDatapoints,\n skipSubDatapoints,\n includeGuessedCategories,\n integrationNames,\n }: {\n /** Page size */\n pageSize: number;\n /** Filter by IDs */\n ids?: string[];\n /** Enable debug logs */\n debug: boolean;\n /** Filter by title */\n titles?: string[];\n /** Integration names */\n integrationNames?: string[];\n /** Skip fetching of datapoints */\n skipDatapoints?: boolean;\n /** Skip fetching of subdatapoints */\n skipSubDatapoints?: boolean;\n /** When true, metadata around guessed data categories should be included */\n includeGuessedCategories?: boolean;\n },\n): Promise<[DataSiloEnriched, DataPointWithSubDataPoint[]][]> {\n const dataSilos: [DataSiloEnriched, DataPointWithSubDataPoint[]][] = [];\n\n // Grab silos\n const silos = await fetchAllDataSilos<DataSiloEnriched>(client, {\n titles,\n ids,\n integrationNames,\n pageSize,\n gql: DATA_SILOS_ENRICHED,\n });\n\n // Graph datapoints for each silo\n if (!skipDatapoints) {\n await mapSeries(silos, async (silo, index) => {\n logger.info(\n colors.magenta(\n `[${index + 1}/${silos.length}] Fetching data silo - ${silo.title}`,\n ),\n );\n\n const dataPoints = await fetchAllDataPoints(client, silo.id, {\n debug,\n pageSize,\n skipSubDatapoints,\n includeGuessedCategories,\n });\n\n if (debug) {\n logger.info(\n colors.green(\n `[${index + 1}/${\n silos.length\n }] Successfully fetched datapoint for - ${silo.title}`,\n ),\n );\n }\n\n dataSilos.push([silo, dataPoints]);\n });\n }\n\n logger.info(\n colors.green(\n `Successfully fetched all ${silos.length} data silo configurations`,\n ),\n );\n\n return dataSilos;\n}\n\n/**\n * Sync a data silo configuration\n *\n * @param dataSilos - Data silos to sync\n * @param client - GraphQL client\n * @param options - Options\n * @returns Data silo info\n */\nexport async function syncDataSilos(\n dataSilos: DataSiloInput[],\n client: GraphQLClient,\n {\n pageSize,\n dataSubjectsByName,\n apiKeysByTitle,\n }: {\n /** Page size */\n pageSize: number;\n /** The data subjects in the organization */\n dataSubjectsByName: { [type in string]: DataSubject };\n /** API key title to API key */\n apiKeysByTitle: { [title in string]: ApiKey };\n },\n): Promise<{\n /** Whether successfully updated */\n success: boolean;\n /** A mapping between data silo title to data silo ID */\n dataSiloTitleToId: { [k in string]: string };\n}> {\n let encounteredError = false;\n\n // Time duration\n const t0 = new Date().getTime();\n logger.info(colors.magenta(`Syncing \"${dataSilos.length}\" data silos...`));\n\n // Determine the set of data silos that already exist\n const existingDataSilos = await fetchAllDataSilos(client, {\n titles: dataSilos.map(({ title }) => title),\n pageSize,\n });\n\n // Create a mapping of title -> existing silo, if it exists\n const existingDataSiloByTitle = keyBy<Pick<DataSilo, 'id' | 'title'>>(\n existingDataSilos,\n 'title',\n );\n\n // Create new silos that do not exist\n const newDataSiloInputs = dataSilos.filter(\n ({ title }) => !existingDataSiloByTitle[title],\n );\n if (newDataSiloInputs.length > 0) {\n logger.info(\n colors.magenta(\n `Creating \"${newDataSiloInputs.length}\" data silos that did not exist...`,\n ),\n );\n\n // Batch the creation\n const chunked = chunk(newDataSiloInputs, BATCH_SILOS_LIMIT);\n await mapSeries(chunked, async (dependencyUpdateChunk) => {\n const {\n createDataSilos: { dataSilos },\n } = await makeGraphQLRequest<{\n /** Mutation result */\n createDataSilos: {\n /** New data silos */\n dataSilos: Pick<DataSilo, 'id' | 'title'>[];\n };\n }>(client, CREATE_DATA_SILOS, {\n input: dependencyUpdateChunk.map((input) => ({\n name: input['outer-type'] || input.integrationName,\n title: input.title,\n country: input.country,\n countrySubDivision: input.countrySubDivision,\n })),\n });\n\n // save mapping of title and id\n dataSilos.forEach((silo) => {\n existingDataSiloByTitle[silo.title] = silo;\n });\n });\n\n logger.info(\n colors.green(\n `Successfully created \"${newDataSiloInputs.length}\" data silos!`,\n ),\n );\n }\n\n // Batch the updates\n const chunkedUpdates = chunk(dataSilos, BATCH_SILOS_LIMIT);\n await mapSeries(chunkedUpdates, async (dataSiloUpdateChunk, ind) => {\n logger.info(\n colors.magenta(\n `[Batch ${ind + 1}/${chunkedUpdates.length}] Syncing \"${\n dataSiloUpdateChunk.length\n }\" data silos`,\n ),\n );\n await makeGraphQLRequest<{\n /** Mutation result */\n updateDataSilos: {\n /** New data silos */\n dataSilos: Pick<DataSilo, 'id' | 'title'>[];\n };\n }>(client, UPDATE_DATA_SILOS, {\n input: {\n dataSilos: dataSiloUpdateChunk.map((input) => ({\n id: existingDataSiloByTitle[input.title].id,\n country: input.country,\n countrySubDivision: input.countrySubDivision,\n url: input.url,\n headers: input.headers,\n description: input.description,\n identifiers: input['identity-keys'],\n isLive: !input.disabled,\n ownerEmails: input.owners,\n teamNames: input.teams,\n // clear out if not specified, otherwise the update needs to be applied after\n // all data silos are created\n dependedOnDataSiloTitles: input['deletion-dependencies']\n ? undefined\n : [],\n apiKeyId: input['api-key-title']\n ? apiKeysByTitle[input['api-key-title']].id\n : undefined,\n dataSubjectBlockListIds: input['data-subjects']\n ? convertToDataSubjectBlockList(\n input['data-subjects'],\n dataSubjectsByName,\n )\n : undefined,\n attributes: input.attributes,\n businessEntityTitles: input.businessEntityTitles,\n // AVC settings\n notifyEmailAddress: input['email-settings']?.['notify-email-address'],\n promptAVendorEmailSendFrequency:\n input['email-settings']?.['send-frequency'],\n promptAVendorEmailSendType: input['email-settings']?.['send-type'],\n promptAVendorEmailIncludeIdentifiersAttachment:\n input['email-settings']?.['include-identifiers-attachment'],\n promptAVendorEmailCompletionLinkType:\n input['email-settings']?.['completion-link-type'],\n manualWorkRetryFrequency:\n input['email-settings']?.['manual-work-retry-frequency'],\n })),\n },\n });\n logger.info(\n colors.green(\n `[Batch ${ind + 1}/${chunkedUpdates.length}] Synced \"${\n dataSiloUpdateChunk.length\n }\" data silos!`,\n ),\n );\n });\n\n // Sync datapoints\n\n // create a new progress bar instance and use shades_classic theme\n const progressBar = new cliProgress.SingleBar(\n {},\n cliProgress.Presets.shades_classic,\n );\n const dataSilosWithDataPoints = dataSilos.filter(\n ({ datapoints = [] }) => datapoints.length > 0,\n );\n const totalDataPoints = dataSilos\n .map(({ datapoints = [] }) => datapoints.length)\n .reduce((acc, count) => acc + count, 0);\n logger.info(\n colors.magenta(\n `Syncing \"${totalDataPoints}\" datapoints from \"${dataSilosWithDataPoints.length}\" data silos...`,\n ),\n );\n progressBar.start(totalDataPoints, 0);\n let total = 0;\n\n await map(\n dataSilosWithDataPoints,\n async ({ datapoints, title }) => {\n if (datapoints) {\n await mapSeries(datapoints, async (datapoint) => {\n const fields = datapoint.fields\n ? datapoint.fields.map(\n ({\n key,\n description,\n categories,\n purposes,\n attributes,\n ...rest\n }) =>\n // TODO: Support setting title separately from the 'key/name'\n ({\n name: key,\n description,\n categories: !categories\n ? undefined\n : categories.map((category) => ({\n ...category,\n name: category.name || 'Other',\n })),\n purposes: !purposes\n ? undefined\n : purposes.map((purpose) => ({\n ...purpose,\n name: purpose.name || 'Other',\n })),\n attributes,\n accessRequestVisibilityEnabled:\n rest['access-request-visibility-enabled'],\n erasureRequestRedactionEnabled:\n rest['erasure-request-redaction-enabled'],\n }),\n )\n : undefined;\n\n const payload = {\n dataSiloId: existingDataSiloByTitle[title].id,\n path: datapoint.path,\n name: datapoint.key,\n title: datapoint.title,\n description: datapoint.description,\n ...(datapoint.owners\n ? {\n ownerEmails: datapoint.owners,\n }\n : {}),\n ...(datapoint.teams\n ? {\n teamNames: datapoint.teams,\n }\n : {}),\n ...(datapoint['data-collection-tag']\n ? { dataCollectionTag: datapoint['data-collection-tag'] }\n : {}),\n querySuggestions: !datapoint['privacy-action-queries']\n ? undefined\n : Object.entries(datapoint['privacy-action-queries']).map(\n ([key, value]) => ({\n requestType: key,\n suggestedQuery: value,\n }),\n ),\n enabledActions: datapoint['privacy-actions'] || [], // clear out when not specified\n subDataPoints: fields,\n };\n\n // Ensure no duplicate sub-datapoints are provided\n const subDataPointsToUpdate = (payload.subDataPoints || []).map(\n ({ name }) => name,\n );\n const duplicateDataPoints = subDataPointsToUpdate.filter(\n (name, index) => subDataPointsToUpdate.indexOf(name) !== index,\n );\n if (duplicateDataPoints.length > 0) {\n logger.info(\n colors.red(\n `\\nCannot update datapoint \"${\n datapoint.key\n }\" as it has duplicate sub-datapoints with the same name: \\n${duplicateDataPoints.join(\n '\\n',\n )}`,\n ),\n );\n encounteredError = true;\n } else {\n try {\n await makeGraphQLRequest(\n client,\n UPDATE_OR_CREATE_DATA_POINT,\n payload,\n );\n } catch (err) {\n logger.info(\n colors.red(\n `\\nFailed to update datapoint \"${datapoint.key}\" for data silo \"${title}\"! - \\n${err.message}`,\n ),\n );\n encounteredError = true;\n }\n }\n total += 1;\n progressBar.update(total);\n });\n }\n },\n {\n concurrency: 10,\n },\n );\n\n progressBar.stop();\n const t1 = new Date().getTime();\n const totalTime = t1 - t0;\n\n logger.info(\n colors.green(\n `Synced \"${\n dataSilos.length\n }\" data silos and \"${totalDataPoints}\" datapoints in \"${\n totalTime / 1000\n }\" seconds!`,\n ),\n );\n return {\n success: !encounteredError,\n dataSiloTitleToId: apply(existingDataSiloByTitle, ({ id }) => id),\n };\n}\n\n/**\n * Sync data silo dependencies\n *\n * @param client - GraphQL client\n * @param dependencyUpdates - Mapping from [data silo ID, dependency titles]\n * @returns True upon success\n */\nexport async function syncDataSiloDependencies(\n client: GraphQLClient,\n dependencyUpdates: [string, string[]][],\n): Promise<boolean> {\n let encounteredError = false;\n logger.info(\n colors.magenta(\n `Syncing \"${dependencyUpdates.length}\" data silo dependencies...`,\n ),\n );\n\n // Batch the updates\n const chunkedUpdates = chunk(dependencyUpdates, BATCH_SILOS_LIMIT);\n await mapSeries(chunkedUpdates, async (dependencyUpdateChunk, ind) => {\n logger.info(\n colors.magenta(\n `[Batch ${ind}/${dependencyUpdateChunk.length}] Updating \"${dependencyUpdateChunk.length}\" data silos...`,\n ),\n );\n try {\n await makeGraphQLRequest<{\n /** Mutation result */\n updateDataSilos: {\n /** New data silos */\n dataSilos: Pick<DataSilo, 'id' | 'title'>[];\n };\n }>(client, UPDATE_DATA_SILOS, {\n input: {\n dataSilos: dependencyUpdateChunk.map(\n ([id, dependedOnDataSiloTitles]) => ({\n id,\n dependedOnDataSiloTitles,\n }),\n ),\n },\n });\n logger.info(\n colors.green(\n `[Batch ${ind + 1}/${dependencyUpdateChunk.length}] ` +\n `Synced \"${dependencyUpdateChunk.length}\" data silos!`,\n ),\n );\n } catch (err) {\n encounteredError = true;\n logger.info(\n colors.red(\n `[Batch ${ind + 1}/${dependencyUpdateChunk.length}] ` +\n `Failed to update \"${dependencyUpdateChunk.length}\" silos! - ${err.message}`,\n ),\n );\n }\n });\n return !encounteredError;\n}\n/* eslint-enable max-lines */\n","import { GraphQLClient } from 'graphql-request';\nimport { API_KEYS } from './gqls';\nimport { keyBy, uniq, difference } from 'lodash-es';\nimport { logger } from '../../logger';\nimport colors from 'colors';\nimport { TranscendInput } from '../../codecs';\nimport { makeGraphQLRequest } from './makeGraphQLRequest';\n\nexport interface ApiKey {\n /** ID of API key */\n id: string;\n /** Title of API key */\n title: string;\n}\n\nconst PAGE_SIZE = 20;\n\nconst ADMIN_LINK = 'https://app.transcend.io/infrastructure/api-keys';\n\n/**\n * Fetch all API keys in an organization\n *\n * @param client - Client\n * @param titles - Filter on titles\n * @returns API keys\n */\nexport async function fetchAllApiKeys(\n client: GraphQLClient,\n titles?: string[],\n): Promise<ApiKey[]> {\n const apiKeys: ApiKey[] = [];\n let offset = 0;\n\n // Paginate\n let shouldContinue = false;\n do {\n const {\n apiKeys: { nodes },\n } = await makeGraphQLRequest<{\n /** API keys */\n apiKeys: {\n /** List */\n nodes: ApiKey[];\n };\n }>(client, API_KEYS, {\n first: PAGE_SIZE,\n offset,\n titles,\n });\n apiKeys.push(...nodes);\n offset += PAGE_SIZE;\n shouldContinue = nodes.length === PAGE_SIZE;\n } while (shouldContinue);\n return apiKeys.sort((a, b) => a.title.localeCompare(b.title));\n}\n\n/**\n * Fetch all apiKeys and if any are found in the config that are\n * missing, create those apiKeys.\n *\n * @param apiKeyInputs - API keys to fetch metadata on\n * @param client - GraphQL client\n * @param fetchAll - When true, fetch all API keys\n * @returns A map from apiKey title to Identifier\n */\nexport async function fetchApiKeys(\n {\n 'api-keys': apiKeyInputs = [],\n 'data-silos': dataSilos = [],\n }: TranscendInput,\n client: GraphQLClient,\n fetchAll = false,\n): Promise<{ [k in string]: ApiKey }> {\n logger.info(\n colors.magenta(\n `Fetching ${fetchAll ? 'all' : apiKeyInputs.length} API keys...`,\n ),\n );\n const titles = apiKeyInputs.map(({ title }) => title);\n const expectedApiKeyTitles = uniq(\n dataSilos\n .map((silo) => silo['api-key-title'])\n .filter((x): x is string => !!x),\n );\n const allTitlesExpected = [...expectedApiKeyTitles, ...titles];\n const apiKeys = await fetchAllApiKeys(\n client,\n fetchAll ? undefined : [...expectedApiKeyTitles, ...titles],\n );\n\n // Create a map\n const apiKeysByTitle = keyBy(apiKeys, 'title');\n\n // Determine expected set of apiKeys expected\n const missingApiKeys = difference(\n allTitlesExpected,\n apiKeys.map(({ title }) => title),\n );\n\n // If there are missing apiKeys, throw an error\n if (missingApiKeys.length > 0) {\n logger.info(\n colors.red(\n `Failed to find API keys \"${missingApiKeys.join(\n '\", \"',\n )}\"! Make sure these API keys are created at: ${ADMIN_LINK}`,\n ),\n );\n process.exit(1);\n }\n return apiKeysByTitle;\n}\n"]}
@@ -0,0 +1,15 @@
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; }var Zo=typeof global=="object"&&global&&global.Object===Object&&global,br=Zo;var $o=typeof self=="object"&&self&&self.Object===Object&&self,Jo=br||$o||Function("return this")(),x=Jo;var Yo=x.Symbol,g=Yo;var Xr=Object.prototype,Vo=Xr.hasOwnProperty,Xo=Xr.toString,mr=g?g.toStringTag:void 0;function Qo(r){var e=Vo.call(r,mr),t=r[mr];try{r[mr]=void 0;var o=!0}catch (e2){}var a=Xo.call(r);return o&&(e?r[mr]=t:delete r[mr]),a}var Qr=Qo;var ra=Object.prototype,ea=ra.toString;function ta(r){return ea.call(r)}var re=ta;var oa="[object Null]",aa="[object Undefined]",ee=g?g.toStringTag:void 0;function fa(r){return r==null?r===void 0?aa:oa:ee&&ee in Object(r)?Qr(r):re(r)}var v=fa;function na(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}var A=na;var ia="[object AsyncFunction]",sa="[object Function]",ua="[object GeneratorFunction]",pa="[object Proxy]";function ma(r){if(!A(r))return!1;var e=v(r);return e==sa||e==ua||e==ia||e==pa}var yr=ma;var da=x["__core-js_shared__"],_r=da;var te=function(){var r=/[^.]+$/.exec(_r&&_r.keys&&_r.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function la(r){return!!te&&te in r}var oe=la;var ca=Function.prototype,xa=ca.toString;function ga(r){if(r!=null){try{return xa.call(r)}catch (e3){}try{return r+""}catch (e4){}}return""}var S=ga;var ha=/[\\^$.*+?()[\]{}|]/g,ba=/^\[object .+?Constructor\]$/,ya=Function.prototype,_a=Object.prototype,va=ya.toString,Aa=_a.hasOwnProperty,Oa=RegExp("^"+va.call(Aa).replace(ha,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function wa(r){if(!A(r)||oe(r))return!1;var e=yr(r)?Oa:ba;return e.test(S(r))}var ae=wa;function Ta(r,e){return _optionalChain([r, 'optionalAccess', _2 => _2[e]])}var fe=Ta;function Sa(r,e){var t=fe(r,e);return ae(t)?t:void 0}var h=Sa;var Ca=h(Object,"create"),C=Ca;function ja(){this.__data__=C?C(null):{},this.size=0}var ne=ja;function Ia(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}var ie=Ia;var Pa="__lodash_hash_undefined__",Ea=Object.prototype,Ra=Ea.hasOwnProperty;function Ma(r){var e=this.__data__;if(C){var t=e[r];return t===Pa?void 0:t}return Ra.call(e,r)?e[r]:void 0}var se=Ma;var La=Object.prototype,Na=La.hasOwnProperty;function Da(r){var e=this.__data__;return C?e[r]!==void 0:Na.call(e,r)}var ue=Da;var Fa="__lodash_hash_undefined__";function Ba(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=C&&e===void 0?Fa:e,this}var pe=Ba;function H(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var o=r[e];this.set(o[0],o[1])}}H.prototype.clear=ne;H.prototype.delete=ie;H.prototype.get=se;H.prototype.has=ue;H.prototype.set=pe;var qr=H;function Ua(){this.__data__=[],this.size=0}var me=Ua;function qa(r,e){return r===e||r!==r&&e!==e}var k=qa;function Wa(r,e){for(var t=r.length;t--;)if(k(r[t][0],e))return t;return-1}var I=Wa;var Ga=Array.prototype,za=Ga.splice;function Ha(r){var e=this.__data__,t=I(e,r);if(t<0)return!1;var o=e.length-1;return t==o?e.pop():za.call(e,t,1),--this.size,!0}var de=Ha;function ka(r){var e=this.__data__,t=I(e,r);return t<0?void 0:e[t][1]}var le=ka;function Ka(r){return I(this.__data__,r)>-1}var ce=Ka;function Za(r,e){var t=this.__data__,o=I(t,r);return o<0?(++this.size,t.push([r,e])):t[o][1]=e,this}var xe=Za;function K(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var o=r[e];this.set(o[0],o[1])}}K.prototype.clear=me;K.prototype.delete=de;K.prototype.get=le;K.prototype.has=ce;K.prototype.set=xe;var P=K;var $a=h(x,"Map"),E=$a;function Ja(){this.size=0,this.__data__={hash:new qr,map:new(E||P),string:new qr}}var ge=Ja;function Ya(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}var he=Ya;function Va(r,e){var t=r.__data__;return he(e)?t[typeof e=="string"?"string":"hash"]:t.map}var R=Va;function Xa(r){var e=R(this,r).delete(r);return this.size-=e?1:0,e}var be=Xa;function Qa(r){return R(this,r).get(r)}var ye=Qa;function rf(r){return R(this,r).has(r)}var _e=rf;function ef(r,e){var t=R(this,r),o=t.size;return t.set(r,e),this.size+=t.size==o?0:1,this}var ve=ef;function Z(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var o=r[e];this.set(o[0],o[1])}}Z.prototype.clear=ge;Z.prototype.delete=be;Z.prototype.get=ye;Z.prototype.has=_e;Z.prototype.set=ve;var G=Z;var tf="__lodash_hash_undefined__";function of(r){return this.__data__.set(r,tf),this}var Ae=of;function af(r){return this.__data__.has(r)}var Oe=af;function vr(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new G;++e<t;)this.add(r[e])}vr.prototype.add=vr.prototype.push=Ae;vr.prototype.has=Oe;var $=vr;function ff(r,e,t,o){for(var a=r.length,f=t+(o?1:-1);o?f--:++f<a;)if(e(r[f],f,r))return f;return-1}var we=ff;function nf(r){return r!==r}var Te=nf;function sf(r,e,t){for(var o=t-1,a=r.length;++o<a;)if(r[o]===e)return o;return-1}var Se=sf;function uf(r,e,t){return e===e?Se(r,e,t):we(r,Te,t)}var Ce=uf;function pf(r,e){var t=r==null?0:r.length;return!!t&&Ce(r,e,0)>-1}var Ar=pf;function mf(r,e,t){for(var o=-1,a=r==null?0:r.length;++o<a;)if(t(e,r[o]))return!0;return!1}var Or=mf;function df(r,e){for(var t=-1,o=r==null?0:r.length,a=Array(o);++t<o;)a[t]=e(r[t],t,r);return a}var M=df;function lf(r){return function(e){return r(e)}}var J=lf;function cf(r,e){return r.has(e)}var Y=cf;var xf=200;function gf(r,e,t,o){var a=-1,f=Ar,n=!0,i=r.length,s=[],u=e.length;if(!i)return s;t&&(e=M(e,J(t))),o?(f=Or,n=!1):e.length>=xf&&(f=Y,n=!1,e=new $(e));r:for(;++a<i;){var p=r[a],m=t==null?p:t(p);if(p=o||p!==0?p:0,n&&m===m){for(var d=u;d--;)if(e[d]===m)continue r;s.push(p)}else f(e,m,o)||s.push(p)}return s}var je=gf;function hf(r,e){for(var t=-1,o=e.length,a=r.length;++t<o;)r[a+t]=e[t];return r}var wr=hf;function bf(r){return r!=null&&typeof r=="object"}var b=bf;var yf="[object Arguments]";function _f(r){return b(r)&&v(r)==yf}var Wr=_f;var Ie=Object.prototype,vf=Ie.hasOwnProperty,Af=Ie.propertyIsEnumerable,Of=Wr(function(){return arguments}())?Wr:function(r){return b(r)&&vf.call(r,"callee")&&!Af.call(r,"callee")},V=Of;var wf=Array.isArray,c=wf;var Pe=g?g.isConcatSpreadable:void 0;function Tf(r){return c(r)||V(r)||!!(Pe&&r&&r[Pe])}var Ee=Tf;function Re(r,e,t,o,a){var f=-1,n=r.length;for(t||(t=Ee),a||(a=[]);++f<n;){var i=r[f];e>0&&t(i)?e>1?Re(i,e-1,t,o,a):wr(a,i):o||(a[a.length]=i)}return a}var L=Re;function Sf(r){return r}var N=Sf;function Cf(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}var Me=Cf;var Le=Math.max;function jf(r,e,t){return e=Le(e===void 0?r.length-1:e,0),function(){for(var o=arguments,a=-1,f=Le(o.length-e,0),n=Array(f);++a<f;)n[a]=o[e+a];a=-1;for(var i=Array(e+1);++a<e;)i[a]=o[a];return i[e]=t(n),Me(r,this,i)}}var Ne=jf;function If(r){return function(){return r}}var De=If;var Pf=function(){try{var r=h(Object,"defineProperty");return r({},"",{}),r}catch (e5){}}(),X=Pf;var Ef=X?function(r,e){return X(r,"toString",{configurable:!0,enumerable:!1,value:De(e),writable:!0})}:N,Fe=Ef;var Rf=800,Mf=16,Lf=Date.now;function Nf(r){var e=0,t=0;return function(){var o=Lf(),a=Mf-(o-t);if(t=o,a>0){if(++e>=Rf)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}var Be=Nf;var Df=Be(Fe),Ue=Df;function Ff(r,e){return Ue(Ne(r,e,N),r+"")}var Q=Ff;var Bf=9007199254740991;function Uf(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=Bf}var rr=Uf;function qf(r){return r!=null&&rr(r.length)&&!yr(r)}var w=qf;function Wf(r){return b(r)&&w(r)}var dr=Wf;var Gf=Q(function(r,e){return dr(r)?je(r,L(e,1,dr,!0)):[]}),zf= exports.c =Gf;function Hf(r,e,t){e=="__proto__"&&X?X(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}var er=Hf;function kf(r,e,t,o){for(var a=-1,f=r==null?0:r.length;++a<f;){var n=r[a];e(o,n,t(n),r)}return o}var qe=kf;function Kf(r){return function(e,t,o){for(var a=-1,f=Object(e),n=o(e),i=n.length;i--;){var s=n[r?i:++a];if(t(f[s],s,f)===!1)break}return e}}var We=Kf;var Zf=We(),Ge=Zf;function $f(r,e){for(var t=-1,o=Array(r);++t<r;)o[t]=e(t);return o}var ze=$f;function Jf(){return!1}var He=Jf;var Ze=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ke=Ze&&typeof module=="object"&&module&&!module.nodeType&&module,Yf=ke&&ke.exports===Ze,Ke=Yf?x.Buffer:void 0,Vf=Ke?Ke.isBuffer:void 0,Xf=Vf||He,lr=Xf;var Qf=9007199254740991,rn=/^(?:0|[1-9]\d*)$/;function en(r,e){var t=typeof r;return e=_nullishCoalesce(e, () => (Qf)),!!e&&(t=="number"||t!="symbol"&&rn.test(r))&&r>-1&&r%1==0&&r<e}var tr=en;var tn="[object Arguments]",on="[object Array]",an="[object Boolean]",fn="[object Date]",nn="[object Error]",sn="[object Function]",un="[object Map]",pn="[object Number]",mn="[object Object]",dn="[object RegExp]",ln="[object Set]",cn="[object String]",xn="[object WeakMap]",gn="[object ArrayBuffer]",hn="[object DataView]",bn="[object Float32Array]",yn="[object Float64Array]",_n="[object Int8Array]",vn="[object Int16Array]",An="[object Int32Array]",On="[object Uint8Array]",wn="[object Uint8ClampedArray]",Tn="[object Uint16Array]",Sn="[object Uint32Array]",l={};l[bn]=l[yn]=l[_n]=l[vn]=l[An]=l[On]=l[wn]=l[Tn]=l[Sn]=!0;l[tn]=l[on]=l[gn]=l[an]=l[hn]=l[fn]=l[nn]=l[sn]=l[un]=l[pn]=l[mn]=l[dn]=l[ln]=l[cn]=l[xn]=!1;function Cn(r){return b(r)&&rr(r.length)&&!!l[v(r)]}var $e=Cn;var Je=typeof exports=="object"&&exports&&!exports.nodeType&&exports,cr=Je&&typeof module=="object"&&module&&!module.nodeType&&module,jn=cr&&cr.exports===Je,Gr=jn&&br.process,In=function(){try{var r=cr&&cr.require&&cr.require("util").types;return r||Gr&&Gr.binding&&Gr.binding("util")}catch (e6){}}(),zr=In;var Ye=zr&&zr.isTypedArray,Pn=Ye?J(Ye):$e,Tr=Pn;var En=Object.prototype,Rn=En.hasOwnProperty;function Mn(r,e){var t=c(r),o=!t&&V(r),a=!t&&!o&&lr(r),f=!t&&!o&&!a&&Tr(r),n=t||o||a||f,i=n?ze(r.length,String):[],s=i.length;for(var u in r)(e||Rn.call(r,u))&&!(n&&(u=="length"||a&&(u=="offset"||u=="parent")||f&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||tr(u,s)))&&i.push(u);return i}var Ve=Mn;var Ln=Object.prototype;function Nn(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||Ln;return r===t}var Xe=Nn;function Dn(r,e){return function(t){return r(e(t))}}var Qe=Dn;var Fn=Qe(Object.keys,Object),rt=Fn;var Bn=Object.prototype,Un=Bn.hasOwnProperty;function qn(r){if(!Xe(r))return rt(r);var e=[];for(var t in Object(r))Un.call(r,t)&&t!="constructor"&&e.push(t);return e}var et=qn;function Wn(r){return w(r)?Ve(r):et(r)}var or=Wn;function Gn(r,e){return r&&Ge(r,e,or)}var Sr=Gn;function zn(r,e){return function(t,o){if(t==null)return t;if(!w(t))return r(t,o);for(var a=t.length,f=e?a:-1,n=Object(t);(e?f--:++f<a)&&o(n[f],f,n)!==!1;);return t}}var tt=zn;var Hn=tt(Sr),Cr=Hn;function kn(r,e,t,o){return Cr(r,function(a,f,n){e(o,a,t(a),n)}),o}var ot=kn;function Kn(){this.__data__=new P,this.size=0}var at=Kn;function Zn(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}var ft=Zn;function $n(r){return this.__data__.get(r)}var nt=$n;function Jn(r){return this.__data__.has(r)}var it=Jn;var Yn=200;function Vn(r,e){var t=this.__data__;if(t instanceof P){var o=t.__data__;if(!E||o.length<Yn-1)return o.push([r,e]),this.size=++t.size,this;t=this.__data__=new G(o)}return t.set(r,e),this.size=t.size,this}var st=Vn;function ar(r){var e=this.__data__=new P(r);this.size=e.size}ar.prototype.clear=at;ar.prototype.delete=ft;ar.prototype.get=nt;ar.prototype.has=it;ar.prototype.set=st;var fr=ar;function Xn(r,e){for(var t=-1,o=r==null?0:r.length;++t<o;)if(e(r[t],t,r))return!0;return!1}var ut=Xn;var Qn=1,ri=2;function ei(r,e,t,o,a,f){var n=t&Qn,i=r.length,s=e.length;if(i!=s&&!(n&&s>i))return!1;var u=f.get(r),p=f.get(e);if(u&&p)return u==e&&p==r;var m=-1,d=!0,T=t&ri?new $:void 0;for(f.set(r,e),f.set(e,r);++m<i;){var y=r[m],_=e[m];if(o)var j=n?o(_,y,m,e,r,f):o(y,_,m,r,e,f);if(j!==void 0){if(j)continue;d=!1;break}if(T){if(!ut(e,function(q,W){if(!Y(T,W)&&(y===q||a(y,q,t,o,f)))return T.push(W)})){d=!1;break}}else if(!(y===_||a(y,_,t,o,f))){d=!1;break}}return f.delete(r),f.delete(e),d}var jr=ei;var ti=x.Uint8Array,Hr=ti;function oi(r){var e=-1,t=Array(r.size);return r.forEach(function(o,a){t[++e]=[a,o]}),t}var pt=oi;function ai(r){var e=-1,t=Array(r.size);return r.forEach(function(o){t[++e]=o}),t}var nr=ai;var fi=1,ni=2,ii="[object Boolean]",si="[object Date]",ui="[object Error]",pi="[object Map]",mi="[object Number]",di="[object RegExp]",li="[object Set]",ci="[object String]",xi="[object Symbol]",gi="[object ArrayBuffer]",hi="[object DataView]",mt=g?g.prototype:void 0,kr=mt?mt.valueOf:void 0;function bi(r,e,t,o,a,f,n){switch(t){case hi:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case gi:return!(r.byteLength!=e.byteLength||!f(new Hr(r),new Hr(e)));case ii:case si:case mi:return k(+r,+e);case ui:return r.name==e.name&&r.message==e.message;case di:case ci:return r==e+"";case pi:var i=pt;case li:var s=o&fi;if(i||(i=nr),r.size!=e.size&&!s)return!1;var u=n.get(r);if(u)return u==e;o|=ni,n.set(r,e);var p=jr(i(r),i(e),o,a,f,n);return n.delete(r),p;case xi:if(kr)return kr.call(r)==kr.call(e)}return!1}var dt=bi;function yi(r,e,t){var o=e(r);return c(r)?o:wr(o,t(r))}var lt=yi;function _i(r,e){for(var t=-1,o=r==null?0:r.length,a=0,f=[];++t<o;){var n=r[t];e(n,t,r)&&(f[a++]=n)}return f}var ct=_i;function vi(){return[]}var xt=vi;var Ai=Object.prototype,Oi=Ai.propertyIsEnumerable,gt=Object.getOwnPropertySymbols,wi=gt?function(r){return r==null?[]:(r=Object(r),ct(gt(r),function(e){return Oi.call(r,e)}))}:xt,ht=wi;function Ti(r){return lt(r,or,ht)}var Kr=Ti;var Si=1,Ci=Object.prototype,ji=Ci.hasOwnProperty;function Ii(r,e,t,o,a,f){var n=t&Si,i=Kr(r),s=i.length,u=Kr(e),p=u.length;if(s!=p&&!n)return!1;for(var m=s;m--;){var d=i[m];if(!(n?d in e:ji.call(e,d)))return!1}var T=f.get(r),y=f.get(e);if(T&&y)return T==e&&y==r;var _=!0;f.set(r,e),f.set(e,r);for(var j=n;++m<s;){d=i[m];var q=r[d],W=e[d];if(o)var Vr=n?o(W,q,d,e,r,f):o(q,W,d,r,e,f);if(!(Vr===void 0?q===W||a(q,W,t,o,f):Vr)){_=!1;break}j||(j=d=="constructor")}if(_&&!j){var gr=r.constructor,hr=e.constructor;gr!=hr&&"constructor"in r&&"constructor"in e&&!(typeof gr=="function"&&gr instanceof gr&&typeof hr=="function"&&hr instanceof hr)&&(_=!1)}return f.delete(r),f.delete(e),_}var bt=Ii;var Pi=h(x,"DataView"),Ir=Pi;var Ei=h(x,"Promise"),Pr=Ei;var Ri=h(x,"Set"),D=Ri;var Mi=h(x,"WeakMap"),Er=Mi;var yt="[object Map]",Li="[object Object]",_t="[object Promise]",vt="[object Set]",At="[object WeakMap]",Ot="[object DataView]",Ni=S(Ir),Di=S(E),Fi=S(Pr),Bi=S(D),Ui=S(Er),z=v;(Ir&&z(new Ir(new ArrayBuffer(1)))!=Ot||E&&z(new E)!=yt||Pr&&z(Pr.resolve())!=_t||D&&z(new D)!=vt||Er&&z(new Er)!=At)&&(z=function(r){var e=v(r),t=e==Li?r.constructor:void 0,o=t?S(t):"";if(o)switch(o){case Ni:return Ot;case Di:return yt;case Fi:return _t;case Bi:return vt;case Ui:return At}return e});var Zr=z;var qi=1,wt="[object Arguments]",Tt="[object Array]",Rr="[object Object]",Wi=Object.prototype,St=Wi.hasOwnProperty;function Gi(r,e,t,o,a,f){var n=c(r),i=c(e),s=n?Tt:Zr(r),u=i?Tt:Zr(e);s=s==wt?Rr:s,u=u==wt?Rr:u;var p=s==Rr,m=u==Rr,d=s==u;if(d&&lr(r)){if(!lr(e))return!1;n=!0,p=!1}if(d&&!p)return f||(f=new fr),n||Tr(r)?jr(r,e,t,o,a,f):dt(r,e,s,t,o,a,f);if(!(t&qi)){var T=p&&St.call(r,"__wrapped__"),y=m&&St.call(e,"__wrapped__");if(T||y){var _=T?r.value():r,j=y?e.value():e;return f||(f=new fr),a(_,j,t,o,f)}}return d?(f||(f=new fr),bt(r,e,t,o,a,f)):!1}var Ct=Gi;function jt(r,e,t,o,a){return r===e?!0:r==null||e==null||!b(r)&&!b(e)?r!==r&&e!==e:Ct(r,e,t,o,jt,a)}var Mr=jt;var zi=1,Hi=2;function ki(r,e,t,o){var a=t.length,f=a,n=!o;if(r==null)return!f;for(r=Object(r);a--;){var i=t[a];if(n&&i[2]?i[1]!==r[i[0]]:!(i[0]in r))return!1}for(;++a<f;){i=t[a];var s=i[0],u=r[s],p=i[1];if(n&&i[2]){if(u===void 0&&!(s in r))return!1}else{var m=new fr;if(o)var d=o(u,p,s,r,e,m);if(!(d===void 0?Mr(p,u,zi|Hi,o,m):d))return!1}}return!0}var It=ki;function Ki(r){return r===r&&!A(r)}var Lr=Ki;function Zi(r){for(var e=or(r),t=e.length;t--;){var o=e[t],a=r[o];e[t]=[o,a,Lr(a)]}return e}var Pt=Zi;function $i(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}var Nr=$i;function Ji(r){var e=Pt(r);return e.length==1&&e[0][2]?Nr(e[0][0],e[0][1]):function(t){return t===r||It(t,r,e)}}var Et=Ji;var Yi="[object Symbol]";function Vi(r){return typeof r=="symbol"||b(r)&&v(r)==Yi}var O=Vi;var Xi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Qi=/^\w*$/;function rs(r,e){if(c(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||O(r)?!0:Qi.test(r)||!Xi.test(r)||e!=null&&r in Object(e)}var ir=rs;var es="Expected a function";function $r(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(es);var t=function(){var o=arguments,a=e?e.apply(this,o):o[0],f=t.cache;if(f.has(a))return f.get(a);var n=r.apply(this,o);return t.cache=f.set(a,n)||f,n};return t.cache=new($r.Cache||G),t}$r.Cache=G;var Rt=$r;var ts=500;function os(r){var e=Rt(r,function(o){return t.size===ts&&t.clear(),o}),t=e.cache;return e}var Mt=os;var as=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,fs=/\\(\\)?/g,ns=Mt(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(as,function(t,o,a,f){e.push(a?f.replace(fs,"$1"):o||t)}),e}),Lt=ns;var is=1/0,Nt=g?g.prototype:void 0,Dt=Nt?Nt.toString:void 0;function Ft(r){if(typeof r=="string")return r;if(c(r))return M(r,Ft)+"";if(O(r))return Dt?Dt.call(r):"";var e=r+"";return e=="0"&&1/r==-is?"-0":e}var Bt=Ft;function ss(r){return r==null?"":Bt(r)}var F=ss;function us(r,e){return c(r)?r:ir(r,e)?[r]:Lt(F(r))}var Dr=us;var ps=1/0;function ms(r){if(typeof r=="string"||O(r))return r;var e=r+"";return e=="0"&&1/r==-ps?"-0":e}var B=ms;function ds(r,e){e=Dr(e,r);for(var t=0,o=e.length;r!=null&&t<o;)r=r[B(e[t++])];return t&&t==o?r:void 0}var sr=ds;function ls(r,e,t){var o=r==null?void 0:sr(r,e);return o===void 0?t:o}var Ut=ls;function cs(r,e){return r!=null&&e in Object(r)}var qt=cs;function xs(r,e,t){e=Dr(e,r);for(var o=-1,a=e.length,f=!1;++o<a;){var n=B(e[o]);if(!(f=r!=null&&t(r,n)))break;r=r[n]}return f||++o!=a?f:(a=r==null?0:r.length,!!a&&rr(a)&&tr(n,a)&&(c(r)||V(r)))}var Wt=xs;function gs(r,e){return r!=null&&Wt(r,e,qt)}var Gt=gs;var hs=1,bs=2;function ys(r,e){return ir(r)&&Lr(e)?Nr(B(r),e):function(t){var o=Ut(t,r);return o===void 0&&o===e?Gt(t,r):Mr(e,o,hs|bs)}}var zt=ys;function _s(r){return function(e){return _optionalChain([e, 'optionalAccess', _3 => _3[r]])}}var Ht=_s;function vs(r){return function(e){return sr(e,r)}}var kt=vs;function As(r){return ir(r)?Ht(B(r)):kt(r)}var Kt=As;function Os(r){return typeof r=="function"?r:r==null?N:typeof r=="object"?c(r)?zt(r[0],r[1]):Et(r):Kt(r)}var U=Os;function ws(r,e){return function(t,o){var a=c(t)?qe:ot,f=e?e():{};return a(t,r,U(o,2),f)}}var Fr=ws;var Ts=Object.prototype,Ss=Ts.hasOwnProperty,Cs=Fr(function(r,e,t){Ss.call(r,t)?r[t].push(e):er(r,t,[e])}),js= exports.d =Cs;function Is(){}var Zt=Is;var Ps=1/0,Es=D&&1/nr(new D([,-0]))[1]==Ps?function(r){return new D(r)}:Zt,$t=Es;var Rs=200;function Ms(r,e,t){var o=-1,a=Ar,f=r.length,n=!0,i=[],s=i;if(t)n=!1,a=Or;else if(f>=Rs){var u=e?null:$t(r);if(u)return nr(u);n=!1,a=Y,s=new $}else s=e?[]:i;r:for(;++o<f;){var p=r[o],m=e?e(p):p;if(p=t||p!==0?p:0,n&&m===m){for(var d=s.length;d--;)if(s[d]===m)continue r;e&&s.push(m),i.push(p)}else a(s,m,t)||(s!==i&&s.push(m),i.push(p))}return i}var ur=Ms;function Ls(r){return r&&r.length?ur(r):[]}var Ns=Ls;var Ds=/\s/;function Fs(r){for(var e=r.length;e--&&Ds.test(r.charAt(e)););return e}var Jt=Fs;var Bs=/^\s+/;function Us(r){return r&&r.slice(0,Jt(r)+1).replace(Bs,"")}var Yt=Us;var Vt=NaN,qs=/^[-+]0x[0-9a-f]+$/i,Ws=/^0b[01]+$/i,Gs=/^0o[0-7]+$/i,zs=parseInt;function Hs(r){if(typeof r=="number")return r;if(O(r))return Vt;if(A(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=A(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Yt(r);var t=Ws.test(r);return t||Gs.test(r)?zs(r.slice(2),t?2:8):qs.test(r)?Vt:+r}var Xt=Hs;var Qt=1/0,ks=17976931348623157e292;function Ks(r){if(!r)return r===0?r:0;if(r=Xt(r),r===Qt||r===-Qt){var e=r<0?-1:1;return e*ks}return r===r?r:0}var ro=Ks;function Zs(r){var e=ro(r),t=e%1;return e===e?t?e-t:e:0}var eo=Zs;function $s(r,e,t){if(!A(t))return!1;var o=typeof e;return(o=="number"?w(t)&&tr(e,t.length):o=="string"&&e in t)?k(t[e],r):!1}var xr=$s;function Js(r){var e=r==null?0:r.length;return e?L(r,1):[]}var Ys=Js;function Vs(r,e,t){var o=-1,a=r.length;e<0&&(e=-e>a?0:a+e),t=t>a?a:t,t<0&&(t+=a),a=e>t?0:t-e>>>0,e>>>=0;for(var f=Array(a);++o<a;)f[o]=r[o+e];return f}var Br=Vs;function Xs(r,e,t){var o=r.length;return t=t===void 0?o:t,!e&&t>=o?r:Br(r,e,t)}var to=Xs;var Qs="\\ud800-\\udfff",ru="\\u0300-\\u036f",eu="\\ufe20-\\ufe2f",tu="\\u20d0-\\u20ff",ou=ru+eu+tu,au="\\ufe0e\\ufe0f",fu="\\u200d",nu=RegExp("["+fu+Qs+ou+au+"]");function iu(r){return nu.test(r)}var Ur=iu;function su(r){return r.split("")}var oo=su;var ao="\\ud800-\\udfff",uu="\\u0300-\\u036f",pu="\\ufe20-\\ufe2f",mu="\\u20d0-\\u20ff",du=uu+pu+mu,lu="\\ufe0e\\ufe0f",cu="["+ao+"]",Jr="["+du+"]",Yr="\\ud83c[\\udffb-\\udfff]",xu="(?:"+Jr+"|"+Yr+")",fo="[^"+ao+"]",no="(?:\\ud83c[\\udde6-\\uddff]){2}",io="[\\ud800-\\udbff][\\udc00-\\udfff]",gu="\\u200d",so=xu+"?",uo="["+lu+"]?",hu="(?:"+gu+"(?:"+[fo,no,io].join("|")+")"+uo+so+")*",bu=uo+so+hu,yu="(?:"+[fo+Jr+"?",Jr,no,io,cu].join("|")+")",_u=RegExp(Yr+"(?="+Yr+")|"+yu+bu,"g");function vu(r){return r.match(_u)||[]}var po=vu;function Au(r){return Ur(r)?po(r):oo(r)}var mo=Au;function Ou(r){return function(e){e=F(e);var t=Ur(e)?mo(e):void 0,o=t?t[0]:e.charAt(0),a=t?to(t,1).join(""):e.slice(1);return o[r]()+a}}var lo=Ou;var wu=lo("toUpperCase"),co=wu;function Tu(r,e,t,o){var a=-1,f=r==null?0:r.length;for(o&&f&&(t=r[++a]);++a<f;)t=e(t,r[a],a,r);return t}var xo=Tu;function Su(r){return function(e){return _optionalChain([r, 'optionalAccess', _4 => _4[e]])}}var go=Su;var Cu={\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"},ju=go(Cu),ho=ju;var Iu=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pu="\\u0300-\\u036f",Eu="\\ufe20-\\ufe2f",Ru="\\u20d0-\\u20ff",Mu=Pu+Eu+Ru,Lu="["+Mu+"]",Nu=RegExp(Lu,"g");function Du(r){return r=F(r),r&&r.replace(Iu,ho).replace(Nu,"")}var bo=Du;var Fu=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Bu(r){return r.match(Fu)||[]}var yo=Bu;var Uu=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function qu(r){return Uu.test(r)}var _o=qu;var To="\\ud800-\\udfff",Wu="\\u0300-\\u036f",Gu="\\ufe20-\\ufe2f",zu="\\u20d0-\\u20ff",Hu=Wu+Gu+zu,So="\\u2700-\\u27bf",Co="a-z\\xdf-\\xf6\\xf8-\\xff",ku="\\xac\\xb1\\xd7\\xf7",Ku="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Zu="\\u2000-\\u206f",$u=" \\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",jo="A-Z\\xc0-\\xd6\\xd8-\\xde",Ju="\\ufe0e\\ufe0f",Io=ku+Ku+Zu+$u,Po="['\u2019]",vo="["+Io+"]",Yu="["+Hu+"]",Eo="\\d+",Vu="["+So+"]",Ro="["+Co+"]",Mo="[^"+To+Io+Eo+So+Co+jo+"]",Xu="\\ud83c[\\udffb-\\udfff]",Qu="(?:"+Yu+"|"+Xu+")",rp="[^"+To+"]",Lo="(?:\\ud83c[\\udde6-\\uddff]){2}",No="[\\ud800-\\udbff][\\udc00-\\udfff]",pr="["+jo+"]",ep="\\u200d",Ao="(?:"+Ro+"|"+Mo+")",tp="(?:"+pr+"|"+Mo+")",Oo="(?:"+Po+"(?:d|ll|m|re|s|t|ve))?",wo="(?:"+Po+"(?:D|LL|M|RE|S|T|VE))?",Do=Qu+"?",Fo="["+Ju+"]?",op="(?:"+ep+"(?:"+[rp,Lo,No].join("|")+")"+Fo+Do+")*",ap="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",fp="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",np=Fo+Do+op,ip="(?:"+[Vu,Lo,No].join("|")+")"+np,sp=RegExp([pr+"?"+Ro+"+"+Oo+"(?="+[vo,pr,"$"].join("|")+")",tp+"+"+wo+"(?="+[vo,pr+Ao,"$"].join("|")+")",pr+"?"+Ao+"+"+Oo,pr+"+"+wo,fp,ap,Eo,ip].join("|"),"g");function up(r){return r.match(sp)||[]}var Bo=up;function pp(r,e,t){return r=F(r),e=t?void 0:e,e===void 0?_o(r)?Bo(r):yo(r):r.match(e)||[]}var Uo=pp;var mp="['\u2019]",dp=RegExp(mp,"g");function lp(r){return function(e){return xo(Uo(bo(e).replace(dp,"")),r,"")}}var qo=lp;var cp=Math.ceil,xp=Math.max;function gp(r,e,t){(t?xr(r,e,t):e===void 0)?e=1:e=xp(eo(e),0);var o=r==null?0:r.length;if(!o||e<1)return[];for(var a=0,f=0,n=Array(cp(o/e));a<o;)n[f++]=Br(r,a,a+=e);return n}var hp=gp;function bp(r,e){var t=-1,o=w(r)?Array(r.length):[];return Cr(r,function(a,f,n){o[++t]=e(a,f,n)}),o}var Wo=bp;var yp=Fr(function(r,e,t){er(r,t,e)}),_p= exports.e =yp;function vp(r,e){var t={};return e=U(e,3),Sr(r,function(o,a,f){er(t,a,e(o,a,f))}),t}var Ap=vp;function Op(r,e){var t=r.length;for(r.sort(e);t--;)r[t]=r[t].value;return r}var Go=Op;function wp(r,e){if(r!==e){var t=r!==void 0,o=r===null,a=r===r,f=O(r),n=e!==void 0,i=e===null,s=e===e,u=O(e);if(!i&&!u&&!f&&r>e||f&&n&&s&&!i&&!u||o&&n&&s||!t&&s||!a)return 1;if(!o&&!f&&!u&&r<e||u&&t&&a&&!o&&!f||i&&t&&a||!n&&a||!s)return-1}return 0}var zo=wp;function Tp(r,e,t){for(var o=-1,a=r.criteria,f=e.criteria,n=a.length,i=t.length;++o<n;){var s=zo(a[o],f[o]);if(s){if(o>=i)return s;var u=t[o];return s*(u=="desc"?-1:1)}}return r.index-e.index}var Ho=Tp;function Sp(r,e,t){e.length?e=M(e,function(f){return c(f)?function(n){return sr(n,f.length===1?f[0]:f)}:f}):e=[N];var o=-1;e=M(e,J(U));var a=Wo(r,function(f,n,i){var s=M(e,function(u){return u(f)});return{criteria:s,index:++o,value:f}});return Go(a,function(f,n){return Ho(f,n,t)})}var ko=Sp;var Cp=Q(function(r,e){if(r==null)return[];var t=e.length;return t>1&&xr(r,e[0],e[1])?e=[]:t>2&&xr(e[0],e[1],e[2])&&(e=[e[0]]),ko(r,L(e,1),[])}),jp= exports.g =Cp;var Ip=qo(function(r,e,t){return r+(t?" ":"")+co(e)}),Pp= exports.h =Ip;var Ep=Q(function(r){return ur(L(r,1,dr,!0))}),Rp= exports.i =Ep;function Mp(r,e){return r&&r.length?ur(r,U(e,2)):[]}var Lp=Mp;var Yb="A command line interface for programmatic operations across Transcend.",Vb= exports.m ="7.0.3";exports.a = Ys; exports.b = hp; exports.c = zf; exports.d = js; exports.e = _p; exports.f = Ap; exports.g = jp; exports.h = Pp; exports.i = Rp; exports.j = Ns; exports.k = Lp; exports.l = Yb; exports.m = Vb;
2
+ /*! Bundled license information:
3
+
4
+ lodash-es/lodash.js:
5
+ (**
6
+ * @license
7
+ * Lodash (Custom Build) <https://lodash.com/>
8
+ * Build: `lodash modularize exports="es" -o ./`
9
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
10
+ * Released under MIT license <https://lodash.com/license>
11
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
12
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
13
+ *)
14
+ */
15
+ //# sourceMappingURL=chunk-UM5F6R4I.cjs.map