@transcend-io/sdk 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@ import { GraphQLClient, gql } from "graphql-request";
3
3
  import got from "got";
4
4
  import { parse } from "graphql";
5
5
  import { chunk, difference, flatten, groupBy, keyBy, sortBy, uniq, uniqBy } from "lodash-es";
6
- import { AssessmentsDisplayLogicAction, AttributeKeyType, ComparisonOperator, ConsentTrackerStatus, EnricherType, IdentifierType, IsoCountryCode, IsoCountrySubdivisionCode, LogicOperator, OrderDirection, PreferenceQueryResponseItem, PreferenceStoreAuthLevel, PreferenceStoreIdentifier, PreferenceTopicType, PreferenceUpdateItem, RequestAction } from "@transcend-io/privacy-types";
6
+ import { AssessmentsDisplayLogicAction, AttributeKeyType, ComparisonOperator, ConsentTrackerStatus, EnricherType, IdentifierType, IsoCountryCode, IsoCountrySubdivisionCode, LogicOperator, OrderDirection, PreferenceQueryResponseItem, PreferenceStoreAuthLevel, PreferenceStoreIdentifier, PreferenceTopicType, PreferenceUpdateItem, RequestAction, WorkflowConfigType, WorkflowConfigVisibility } from "@transcend-io/privacy-types";
7
7
  import * as t from "io-ts";
8
8
  import { InitialViewState, KnownDefaultPurpose, OnConsentExpiry, UserPrivacySignalEnum } from "@transcend-io/airgap.js-types";
9
9
  import { apply, decodeCodec, valuesOf } from "@transcend-io/type-utils";
@@ -284,7 +284,7 @@ const UPDATE_BUSINESS_ENTITIES = gql`
284
284
  `;
285
285
  //#endregion
286
286
  //#region src/data-inventory/fetchAllBusinessEntities.ts
287
- const PAGE_SIZE$42 = 20;
287
+ const PAGE_SIZE$43 = 20;
288
288
  /**
289
289
  * Fetch all businessEntities in the organization
290
290
  *
@@ -299,14 +299,14 @@ async function fetchAllBusinessEntities(client, options = {}) {
299
299
  do {
300
300
  const { businessEntities: { nodes } } = await makeGraphQLRequest(client, BUSINESS_ENTITIES, {
301
301
  variables: {
302
- first: PAGE_SIZE$42,
302
+ first: PAGE_SIZE$43,
303
303
  offset
304
304
  },
305
305
  logger
306
306
  });
307
307
  businessEntities.push(...nodes);
308
- offset += PAGE_SIZE$42;
309
- shouldContinue = nodes.length === PAGE_SIZE$42;
308
+ offset += PAGE_SIZE$43;
309
+ shouldContinue = nodes.length === PAGE_SIZE$43;
310
310
  } while (shouldContinue);
311
311
  return businessEntities.sort((a, b) => a.title.localeCompare(b.title));
312
312
  }
@@ -357,7 +357,7 @@ const UPDATE_DATA_SUB_CATEGORIES = gql`
357
357
  `;
358
358
  //#endregion
359
359
  //#region src/data-inventory/fetchAllDataCategories.ts
360
- const PAGE_SIZE$41 = 20;
360
+ const PAGE_SIZE$42 = 20;
361
361
  /**
362
362
  * Fetch all dataSubCategories in the organization
363
363
  *
@@ -373,14 +373,14 @@ async function fetchAllDataCategories(client, options = {}) {
373
373
  do {
374
374
  const { dataSubCategories: { nodes } } = await makeGraphQLRequest(client, DATA_SUB_CATEGORIES, {
375
375
  variables: {
376
- first: PAGE_SIZE$41,
376
+ first: PAGE_SIZE$42,
377
377
  offset
378
378
  },
379
379
  logger
380
380
  });
381
381
  dataSubCategories.push(...nodes);
382
- offset += PAGE_SIZE$41;
383
- shouldContinue = nodes.length === PAGE_SIZE$41;
382
+ offset += PAGE_SIZE$42;
383
+ shouldContinue = nodes.length === PAGE_SIZE$42;
384
384
  } while (shouldContinue);
385
385
  return dataSubCategories.sort((a, b) => a.name.localeCompare(b.name));
386
386
  }
@@ -860,7 +860,7 @@ const IDENTIFIERS = parse(gql`
860
860
  `);
861
861
  //#endregion
862
862
  //#region src/data-inventory/fetchAllIdentifiers.ts
863
- const PAGE_SIZE$40 = 20;
863
+ const PAGE_SIZE$41 = 20;
864
864
  /**
865
865
  * Fetch all identifiers in the organization
866
866
  *
@@ -877,13 +877,13 @@ async function fetchAllIdentifiers(client, options = {}) {
877
877
  const { identifiers: { nodes } } = await makeGraphQLRequest(client, IDENTIFIERS, {
878
878
  logger,
879
879
  variables: {
880
- first: PAGE_SIZE$40,
880
+ first: PAGE_SIZE$41,
881
881
  offset
882
882
  }
883
883
  });
884
884
  identifiers.push(...nodes);
885
- offset += PAGE_SIZE$40;
886
- shouldContinue = nodes.length === PAGE_SIZE$40;
885
+ offset += PAGE_SIZE$41;
886
+ shouldContinue = nodes.length === PAGE_SIZE$41;
887
887
  } while (shouldContinue);
888
888
  return identifiers.sort((a, b) => a.name.localeCompare(b.name));
889
889
  }
@@ -962,7 +962,7 @@ const UPDATE_PROCESSING_ACTIVITIES = gql`
962
962
  `;
963
963
  //#endregion
964
964
  //#region src/data-inventory/fetchAllProcessingActivities.ts
965
- const PAGE_SIZE$39 = 20;
965
+ const PAGE_SIZE$40 = 20;
966
966
  /**
967
967
  * Fetch all processingActivities in the organization
968
968
  *
@@ -978,14 +978,14 @@ async function fetchAllProcessingActivities(client, options = {}) {
978
978
  do {
979
979
  const { processingActivities: { nodes } } = await makeGraphQLRequest(client, PROCESSING_ACTIVITIES, {
980
980
  variables: {
981
- first: PAGE_SIZE$39,
981
+ first: PAGE_SIZE$40,
982
982
  offset
983
983
  },
984
984
  logger
985
985
  });
986
986
  processingActivities.push(...nodes);
987
- offset += PAGE_SIZE$39;
988
- shouldContinue = nodes.length === PAGE_SIZE$39;
987
+ offset += PAGE_SIZE$40;
988
+ shouldContinue = nodes.length === PAGE_SIZE$40;
989
989
  } while (shouldContinue);
990
990
  return processingActivities.sort((a, b) => a.title.localeCompare(b.title));
991
991
  }
@@ -1050,7 +1050,7 @@ const UPDATE_VENDORS = gql`
1050
1050
  `;
1051
1051
  //#endregion
1052
1052
  //#region src/data-inventory/fetchAllVendors.ts
1053
- const PAGE_SIZE$38 = 20;
1053
+ const PAGE_SIZE$39 = 20;
1054
1054
  /**
1055
1055
  * Fetch all vendors in the organization
1056
1056
  *
@@ -1065,14 +1065,14 @@ async function fetchAllVendors(client, options = {}) {
1065
1065
  do {
1066
1066
  const { vendors: { nodes } } = await makeGraphQLRequest(client, VENDORS, {
1067
1067
  variables: {
1068
- first: PAGE_SIZE$38,
1068
+ first: PAGE_SIZE$39,
1069
1069
  offset
1070
1070
  },
1071
1071
  logger
1072
1072
  });
1073
1073
  vendors.push(...nodes);
1074
- offset += PAGE_SIZE$38;
1075
- shouldContinue = nodes.length === PAGE_SIZE$38;
1074
+ offset += PAGE_SIZE$39;
1075
+ shouldContinue = nodes.length === PAGE_SIZE$39;
1076
1076
  } while (shouldContinue);
1077
1077
  return vendors.sort((a, b) => a.title.localeCompare(b.title));
1078
1078
  }
@@ -1541,7 +1541,7 @@ const UPDATE_PURPOSE = parse(gql`
1541
1541
  `);
1542
1542
  //#endregion
1543
1543
  //#region src/preference-management/fetchAllPurposes.ts
1544
- const PAGE_SIZE$37 = 20;
1544
+ const PAGE_SIZE$38 = 20;
1545
1545
  /**
1546
1546
  * Fetch all purposes in the organization
1547
1547
  *
@@ -1558,14 +1558,14 @@ async function fetchAllPurposes(client, options = {}) {
1558
1558
  const { purposes: { nodes } } = await makeGraphQLRequest(client, PURPOSES$1, {
1559
1559
  logger,
1560
1560
  variables: {
1561
- first: PAGE_SIZE$37,
1561
+ first: PAGE_SIZE$38,
1562
1562
  offset,
1563
1563
  input: { includeDeleted }
1564
1564
  }
1565
1565
  });
1566
1566
  purposes.push(...nodes);
1567
- offset += PAGE_SIZE$37;
1568
- shouldContinue = nodes.length === PAGE_SIZE$37;
1567
+ offset += PAGE_SIZE$38;
1568
+ shouldContinue = nodes.length === PAGE_SIZE$38;
1569
1569
  } while (shouldContinue);
1570
1570
  return purposes.sort((a, b) => a.trackingType.localeCompare(b.trackingType));
1571
1571
  }
@@ -1619,7 +1619,7 @@ const CREATE_OR_UPDATE_PREFERENCE_TOPIC = parse(gql`
1619
1619
  `);
1620
1620
  //#endregion
1621
1621
  //#region src/preference-management/fetchAllPreferenceTopics.ts
1622
- const PAGE_SIZE$36 = 20;
1622
+ const PAGE_SIZE$37 = 20;
1623
1623
  /**
1624
1624
  * Fetch all preference topics in the organization
1625
1625
  *
@@ -1636,13 +1636,13 @@ async function fetchAllPreferenceTopics(client, options = {}) {
1636
1636
  const { preferenceTopics: { nodes } } = await makeGraphQLRequest(client, PREFERENCE_TOPICS, {
1637
1637
  logger,
1638
1638
  variables: {
1639
- first: PAGE_SIZE$36,
1639
+ first: PAGE_SIZE$37,
1640
1640
  offset
1641
1641
  }
1642
1642
  });
1643
1643
  preferenceTopics.push(...nodes);
1644
- offset += PAGE_SIZE$36;
1645
- shouldContinue = nodes.length === PAGE_SIZE$36;
1644
+ offset += PAGE_SIZE$37;
1645
+ shouldContinue = nodes.length === PAGE_SIZE$37;
1646
1646
  } while (shouldContinue);
1647
1647
  return preferenceTopics.sort((a, b) => `${a.slug}:${a.purpose.trackingType}`.localeCompare(`${b.slug}:${b.purpose.trackingType}`));
1648
1648
  }
@@ -2816,7 +2816,7 @@ const CREATE_OR_UPDATE_PREFERENCE_OPTION_VALUES = parse(gql`
2816
2816
  `);
2817
2817
  //#endregion
2818
2818
  //#region src/preference-management/fetchAllPreferenceOptionValues.ts
2819
- const PAGE_SIZE$35 = 50;
2819
+ const PAGE_SIZE$36 = 50;
2820
2820
  /**
2821
2821
  * Fetch all preference option values in the organization
2822
2822
  *
@@ -2832,14 +2832,14 @@ async function fetchAllPreferenceOptionValues(client, options = {}) {
2832
2832
  do {
2833
2833
  const { preferenceOptionValues: { nodes } } = await makeGraphQLRequest(client, PREFERENCE_OPTION_VALUES, {
2834
2834
  variables: {
2835
- first: PAGE_SIZE$35,
2835
+ first: PAGE_SIZE$36,
2836
2836
  offset
2837
2837
  },
2838
2838
  logger
2839
2839
  });
2840
2840
  preferenceOptionValues.push(...nodes);
2841
- offset += PAGE_SIZE$35;
2842
- shouldContinue = nodes.length === PAGE_SIZE$35;
2841
+ offset += PAGE_SIZE$36;
2842
+ shouldContinue = nodes.length === PAGE_SIZE$36;
2843
2843
  } while (shouldContinue);
2844
2844
  return preferenceOptionValues.sort((a, b) => a.slug.localeCompare(b.slug));
2845
2845
  }
@@ -3230,7 +3230,7 @@ const SET_RESOURCE_ATTRIBUTES = gql`
3230
3230
  `;
3231
3231
  //#endregion
3232
3232
  //#region src/administration/fetchAllAttributes.ts
3233
- const PAGE_SIZE$34 = 100;
3233
+ const PAGE_SIZE$35 = 100;
3234
3234
  /**
3235
3235
  * Fetch all attribute values for an attribute key
3236
3236
  *
@@ -3246,15 +3246,15 @@ async function fetchAllAttributeValues(client, options) {
3246
3246
  do {
3247
3247
  const { attributeValues: { nodes } } = await makeGraphQLRequest(client, ATTRIBUTE_VALUES, {
3248
3248
  variables: {
3249
- first: PAGE_SIZE$34,
3249
+ first: PAGE_SIZE$35,
3250
3250
  offset,
3251
3251
  attributeKeyId
3252
3252
  },
3253
3253
  logger
3254
3254
  });
3255
3255
  attributeValues.push(...nodes);
3256
- offset += PAGE_SIZE$34;
3257
- shouldContinue = nodes.length === PAGE_SIZE$34;
3256
+ offset += PAGE_SIZE$35;
3257
+ shouldContinue = nodes.length === PAGE_SIZE$35;
3258
3258
  } while (shouldContinue);
3259
3259
  return attributeValues.sort((a, b) => a.name.localeCompare(b.name));
3260
3260
  }
@@ -3273,7 +3273,7 @@ async function fetchAllAttributes(client, options = {}) {
3273
3273
  do {
3274
3274
  const { attributeKeys: { nodes } } = await makeGraphQLRequest(client, ATTRIBUTES, {
3275
3275
  variables: {
3276
- first: PAGE_SIZE$34,
3276
+ first: PAGE_SIZE$35,
3277
3277
  offset
3278
3278
  },
3279
3279
  logger
@@ -3285,8 +3285,8 @@ async function fetchAllAttributes(client, options = {}) {
3285
3285
  filterBy: { attributeKeyId: node.id }
3286
3286
  }) : []
3287
3287
  }))));
3288
- offset += PAGE_SIZE$34;
3289
- shouldContinue = nodes.length === PAGE_SIZE$34;
3288
+ offset += PAGE_SIZE$35;
3289
+ shouldContinue = nodes.length === PAGE_SIZE$35;
3290
3290
  } while (shouldContinue);
3291
3291
  return attributes.sort((a, b) => a.name.localeCompare(b.name));
3292
3292
  }
@@ -3403,7 +3403,7 @@ const UPDATE_TEAM = gql`
3403
3403
  `;
3404
3404
  //#endregion
3405
3405
  //#region src/administration/fetchAllTeams.ts
3406
- const PAGE_SIZE$33 = 20;
3406
+ const PAGE_SIZE$34 = 20;
3407
3407
  /**
3408
3408
  * Fetch all teams in the organization
3409
3409
  *
@@ -3419,20 +3419,20 @@ async function fetchAllTeams(client, options = {}) {
3419
3419
  do {
3420
3420
  const { teams: { nodes } } = await makeGraphQLRequest(client, TEAMS, {
3421
3421
  variables: {
3422
- first: PAGE_SIZE$33,
3422
+ first: PAGE_SIZE$34,
3423
3423
  offset
3424
3424
  },
3425
3425
  logger
3426
3426
  });
3427
3427
  teams.push(...nodes);
3428
- offset += PAGE_SIZE$33;
3429
- shouldContinue = nodes.length === PAGE_SIZE$33;
3428
+ offset += PAGE_SIZE$34;
3429
+ shouldContinue = nodes.length === PAGE_SIZE$34;
3430
3430
  } while (shouldContinue);
3431
3431
  return teams.sort((a, b) => a.name.localeCompare(b.name));
3432
3432
  }
3433
3433
  //#endregion
3434
3434
  //#region src/administration/fetchParentOrganizationTeams.ts
3435
- const PAGE_SIZE$32 = 20;
3435
+ const PAGE_SIZE$33 = 20;
3436
3436
  /**
3437
3437
  * Fetch teams from the parent organization that can be linked to child-org teams
3438
3438
  *
@@ -3448,15 +3448,15 @@ async function fetchParentOrganizationTeams(client, options = {}) {
3448
3448
  do {
3449
3449
  const { parentOrganizationTeams: { nodes } } = await makeGraphQLRequest(client, PARENT_ORGANIZATION_TEAMS, {
3450
3450
  variables: {
3451
- first: PAGE_SIZE$32,
3451
+ first: PAGE_SIZE$33,
3452
3452
  offset,
3453
3453
  filterBy
3454
3454
  },
3455
3455
  logger
3456
3456
  });
3457
3457
  teams.push(...nodes);
3458
- offset += PAGE_SIZE$32;
3459
- shouldContinue = nodes.length === PAGE_SIZE$32;
3458
+ offset += PAGE_SIZE$33;
3459
+ shouldContinue = nodes.length === PAGE_SIZE$33;
3460
3460
  } while (shouldContinue);
3461
3461
  return teams.sort((a, b) => a.name.localeCompare(b.name));
3462
3462
  }
@@ -3502,7 +3502,7 @@ const USERS = gql`
3502
3502
  `;
3503
3503
  //#endregion
3504
3504
  //#region src/administration/fetchAllUsers.ts
3505
- const PAGE_SIZE$31 = 20;
3505
+ const PAGE_SIZE$32 = 20;
3506
3506
  /**
3507
3507
  * Fetch all users in the organization
3508
3508
  *
@@ -3518,14 +3518,14 @@ async function fetchAllUsers(client, options = {}) {
3518
3518
  do {
3519
3519
  const { users: { nodes } } = await makeGraphQLRequest(client, USERS, {
3520
3520
  variables: {
3521
- first: PAGE_SIZE$31,
3521
+ first: PAGE_SIZE$32,
3522
3522
  offset
3523
3523
  },
3524
3524
  logger
3525
3525
  });
3526
3526
  users.push(...nodes);
3527
- offset += PAGE_SIZE$31;
3528
- shouldContinue = nodes.length === PAGE_SIZE$31;
3527
+ offset += PAGE_SIZE$32;
3528
+ shouldContinue = nodes.length === PAGE_SIZE$32;
3529
3529
  } while (shouldContinue);
3530
3530
  return users.sort((a, b) => a.email.localeCompare(b.email));
3531
3531
  }
@@ -3567,7 +3567,7 @@ const DELETE_API_KEY = gql`
3567
3567
  `;
3568
3568
  //#endregion
3569
3569
  //#region src/administration/fetchApiKeys.ts
3570
- const PAGE_SIZE$30 = 20;
3570
+ const PAGE_SIZE$31 = 20;
3571
3571
  const ADMIN_LINK = "https://app.transcend.io/infrastructure/api-keys";
3572
3572
  /**
3573
3573
  * Fetch all API keys in an organization
@@ -3584,15 +3584,15 @@ async function fetchAllApiKeys(client, options = {}) {
3584
3584
  do {
3585
3585
  const { apiKeys: { nodes } } = await makeGraphQLRequest(client, API_KEYS, {
3586
3586
  variables: {
3587
- first: PAGE_SIZE$30,
3587
+ first: PAGE_SIZE$31,
3588
3588
  offset,
3589
3589
  titles
3590
3590
  },
3591
3591
  logger
3592
3592
  });
3593
3593
  apiKeys.push(...nodes);
3594
- offset += PAGE_SIZE$30;
3595
- shouldContinue = nodes.length === PAGE_SIZE$30;
3594
+ offset += PAGE_SIZE$31;
3595
+ shouldContinue = nodes.length === PAGE_SIZE$31;
3596
3596
  } while (shouldContinue);
3597
3597
  return apiKeys.sort((a, b) => a.title.localeCompare(b.title));
3598
3598
  }
@@ -4567,7 +4567,7 @@ const DELETE_COOKIES = gql`
4567
4567
  `;
4568
4568
  //#endregion
4569
4569
  //#region src/consent/fetchAllCookies.ts
4570
- const PAGE_SIZE$29 = 20;
4570
+ const PAGE_SIZE$30 = 20;
4571
4571
  const DEFAULT_COOKIE_ORDER = [{
4572
4572
  field: "createdAt",
4573
4573
  direction: OrderDirection.Asc
@@ -4592,7 +4592,7 @@ async function fetchAllCookies(client, options = {}) {
4592
4592
  const { cookies: { nodes } } = await makeGraphQLRequest(client, COOKIES, {
4593
4593
  variables: {
4594
4594
  input: { airgapBundleId },
4595
- first: PAGE_SIZE$29,
4595
+ first: PAGE_SIZE$30,
4596
4596
  offset,
4597
4597
  filterBy: { status },
4598
4598
  orderBy
@@ -4600,8 +4600,8 @@ async function fetchAllCookies(client, options = {}) {
4600
4600
  logger
4601
4601
  });
4602
4602
  cookies.push(...nodes);
4603
- offset += PAGE_SIZE$29;
4604
- shouldContinue = nodes.length === PAGE_SIZE$29;
4603
+ offset += PAGE_SIZE$30;
4604
+ shouldContinue = nodes.length === PAGE_SIZE$30;
4605
4605
  } while (shouldContinue);
4606
4606
  return cookies.sort((a, b) => a.name.localeCompare(b.name));
4607
4607
  }
@@ -4713,7 +4713,7 @@ const DELETE_DATA_FLOWS = gql`
4713
4713
  `;
4714
4714
  //#endregion
4715
4715
  //#region src/consent/fetchAllDataFlows.ts
4716
- const PAGE_SIZE$28 = 20;
4716
+ const PAGE_SIZE$29 = 20;
4717
4717
  const DEFAULT_DATA_FLOW_ORDER = [{
4718
4718
  field: "createdAt",
4719
4719
  direction: OrderDirection.Asc
@@ -4738,7 +4738,7 @@ async function fetchAllDataFlows(client, options = {}) {
4738
4738
  const { dataFlows: { nodes } } = await makeGraphQLRequest(client, DATA_FLOWS, {
4739
4739
  variables: {
4740
4740
  input: { airgapBundleId },
4741
- first: PAGE_SIZE$28,
4741
+ first: PAGE_SIZE$29,
4742
4742
  offset,
4743
4743
  filterBy: {
4744
4744
  status,
@@ -4749,8 +4749,8 @@ async function fetchAllDataFlows(client, options = {}) {
4749
4749
  logger
4750
4750
  });
4751
4751
  dataFlows.push(...nodes);
4752
- offset += PAGE_SIZE$28;
4753
- shouldContinue = nodes.length === PAGE_SIZE$28;
4752
+ offset += PAGE_SIZE$29;
4753
+ shouldContinue = nodes.length === PAGE_SIZE$29;
4754
4754
  } while (shouldContinue);
4755
4755
  return dataFlows.sort((a, b) => a.value.localeCompare(b.value));
4756
4756
  }
@@ -4954,7 +4954,7 @@ const UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES = gql`
4954
4954
  `;
4955
4955
  //#endregion
4956
4956
  //#region src/consent/fetchAllProcessingPurposes.ts
4957
- const PAGE_SIZE$27 = 20;
4957
+ const PAGE_SIZE$28 = 20;
4958
4958
  /**
4959
4959
  * Fetch all processingPurposeSubCategories in the organization
4960
4960
  *
@@ -4969,14 +4969,14 @@ async function fetchAllProcessingPurposes(client, options = {}) {
4969
4969
  do {
4970
4970
  const { processingPurposeSubCategories: { nodes } } = await makeGraphQLRequest(client, PROCESSING_PURPOSE_SUB_CATEGORIES, {
4971
4971
  variables: {
4972
- first: PAGE_SIZE$27,
4972
+ first: PAGE_SIZE$28,
4973
4973
  offset
4974
4974
  },
4975
4975
  logger: options.logger
4976
4976
  });
4977
4977
  processingPurposeSubCategories.push(...nodes);
4978
- offset += PAGE_SIZE$27;
4979
- shouldContinue = nodes.length === PAGE_SIZE$27;
4978
+ offset += PAGE_SIZE$28;
4979
+ shouldContinue = nodes.length === PAGE_SIZE$28;
4980
4980
  } while (shouldContinue);
4981
4981
  return processingPurposeSubCategories.sort((a, b) => a.name.localeCompare(b.name));
4982
4982
  }
@@ -5078,7 +5078,7 @@ const CREATE_CONSENT_EXPERIENCE = gql`
5078
5078
  `;
5079
5079
  //#endregion
5080
5080
  //#region src/consent/fetchConsentManagerExperiences.ts
5081
- const PAGE_SIZE$26 = 50;
5081
+ const PAGE_SIZE$27 = 50;
5082
5082
  /**
5083
5083
  * Fetch consent manager experiences
5084
5084
  *
@@ -5093,14 +5093,14 @@ async function fetchConsentManagerExperiences(client, options = {}) {
5093
5093
  do {
5094
5094
  const { experiences: { nodes } } = await makeGraphQLRequest(client, EXPERIENCES, {
5095
5095
  variables: {
5096
- first: PAGE_SIZE$26,
5096
+ first: PAGE_SIZE$27,
5097
5097
  offset
5098
5098
  },
5099
5099
  logger: options.logger
5100
5100
  });
5101
5101
  experiences.push(...nodes);
5102
- offset += PAGE_SIZE$26;
5103
- shouldContinue = nodes.length === PAGE_SIZE$26;
5102
+ offset += PAGE_SIZE$27;
5103
+ shouldContinue = nodes.length === PAGE_SIZE$27;
5104
5104
  } while (shouldContinue);
5105
5105
  return experiences.sort((a, b) => a.name.localeCompare(b.name));
5106
5106
  }
@@ -5122,7 +5122,7 @@ async function fetchConsentManagerTheme(client, options) {
5122
5122
  }
5123
5123
  //#endregion
5124
5124
  //#region src/consent/fetchConsentThemes.ts
5125
- const PAGE_SIZE$25 = 50;
5125
+ const PAGE_SIZE$26 = 50;
5126
5126
  /**
5127
5127
  * Fetch consent themes
5128
5128
  *
@@ -5139,20 +5139,20 @@ async function fetchConsentThemes(client, options = {}) {
5139
5139
  const { consentUiThemes: { nodes } } = await makeGraphQLRequest(client, FETCH_CONSENT_UI_THEMES, {
5140
5140
  variables: {
5141
5141
  airgapBundleId,
5142
- first: PAGE_SIZE$25,
5142
+ first: PAGE_SIZE$26,
5143
5143
  offset
5144
5144
  },
5145
5145
  logger: options.logger
5146
5146
  });
5147
5147
  themes.push(...nodes);
5148
- offset += PAGE_SIZE$25;
5149
- shouldContinue = nodes.length === PAGE_SIZE$25;
5148
+ offset += PAGE_SIZE$26;
5149
+ shouldContinue = nodes.length === PAGE_SIZE$26;
5150
5150
  } while (shouldContinue);
5151
5151
  return themes;
5152
5152
  }
5153
5153
  //#endregion
5154
5154
  //#region src/consent/fetchConsentVariants.ts
5155
- const PAGE_SIZE$24 = 50;
5155
+ const PAGE_SIZE$25 = 50;
5156
5156
  /**
5157
5157
  * Fetch consent variants
5158
5158
  *
@@ -5169,14 +5169,14 @@ async function fetchConsentVariants(client, options = {}) {
5169
5169
  const { consentUiVariants: { nodes } } = await makeGraphQLRequest(client, FETCH_CONSENT_UI_VARIANTS, {
5170
5170
  variables: {
5171
5171
  airgapBundleId,
5172
- first: PAGE_SIZE$24,
5172
+ first: PAGE_SIZE$25,
5173
5173
  offset
5174
5174
  },
5175
5175
  logger: options.logger
5176
5176
  });
5177
5177
  variants.push(...nodes);
5178
- offset += PAGE_SIZE$24;
5179
- shouldContinue = nodes.length === PAGE_SIZE$24;
5178
+ offset += PAGE_SIZE$25;
5179
+ shouldContinue = nodes.length === PAGE_SIZE$25;
5180
5180
  } while (shouldContinue);
5181
5181
  return variants;
5182
5182
  }
@@ -5467,7 +5467,7 @@ async function syncConsentUiVariants(client, airgapBundleId, yamlVariants, synce
5467
5467
  }
5468
5468
  //#endregion
5469
5469
  //#region src/consent/syncPartitions.ts
5470
- const PAGE_SIZE$23 = 50;
5470
+ const PAGE_SIZE$24 = 50;
5471
5471
  /**
5472
5472
  * Fetch the list of partitions
5473
5473
  *
@@ -5483,14 +5483,14 @@ async function fetchPartitions(client, options = {}) {
5483
5483
  do {
5484
5484
  const { consentPartitions: { nodes } } = await makeGraphQLRequest(client, CONSENT_PARTITIONS, {
5485
5485
  variables: {
5486
- first: PAGE_SIZE$23,
5486
+ first: PAGE_SIZE$24,
5487
5487
  offset
5488
5488
  },
5489
5489
  logger
5490
5490
  });
5491
5491
  partitions.push(...nodes);
5492
- offset += PAGE_SIZE$23;
5493
- shouldContinue = nodes.length === PAGE_SIZE$23;
5492
+ offset += PAGE_SIZE$24;
5493
+ shouldContinue = nodes.length === PAGE_SIZE$24;
5494
5494
  } while (shouldContinue);
5495
5495
  return partitions.sort((a, b) => a.name.localeCompare(b.name));
5496
5496
  }
@@ -6099,7 +6099,7 @@ const SKIP_REQUEST_ENRICHER = gql`
6099
6099
  `;
6100
6100
  //#endregion
6101
6101
  //#region src/dsr-automation/fetchAllRequestEnrichers.ts
6102
- const PAGE_SIZE$22 = 50;
6102
+ const PAGE_SIZE$23 = 50;
6103
6103
  /**
6104
6104
  * Fetch all request enrichers for a particular request
6105
6105
  *
@@ -6115,15 +6115,15 @@ async function fetchAllRequestEnrichers(client, options) {
6115
6115
  do {
6116
6116
  const { requestEnrichers: { nodes } } = await makeGraphQLRequest(client, REQUEST_ENRICHERS, {
6117
6117
  variables: {
6118
- first: PAGE_SIZE$22,
6118
+ first: PAGE_SIZE$23,
6119
6119
  offset,
6120
6120
  requestId
6121
6121
  },
6122
6122
  logger
6123
6123
  });
6124
6124
  requestEnrichers.push(...nodes);
6125
- offset += PAGE_SIZE$22;
6126
- shouldContinue = nodes.length === PAGE_SIZE$22;
6125
+ offset += PAGE_SIZE$23;
6126
+ shouldContinue = nodes.length === PAGE_SIZE$23;
6127
6127
  } while (shouldContinue);
6128
6128
  return requestEnrichers;
6129
6129
  }
@@ -6151,7 +6151,7 @@ const RequestIdentifier = t.type({
6151
6151
  /** Type of identifier */
6152
6152
  type: valuesOf(IdentifierType)
6153
6153
  });
6154
- const PAGE_SIZE$21 = 50;
6154
+ const PAGE_SIZE$22 = 50;
6155
6155
  const RequestIdentifiersResponse = t.type({ identifiers: t.array(RequestIdentifier) });
6156
6156
  /**
6157
6157
  * Validate that the Sombra version meets the minimum requirement for
@@ -6182,7 +6182,7 @@ async function fetchAllRequestIdentifiers(client, sombra, options) {
6182
6182
  if (!skipSombraCheck) await validateSombraVersion(client, { logger });
6183
6183
  do {
6184
6184
  const { identifiers: nodes } = decodeCodec(RequestIdentifiersResponse, await withTransientRetry("Failed to fetch request identifiers", () => sombra.post("v1/request-identifiers", { json: {
6185
- first: PAGE_SIZE$21,
6185
+ first: PAGE_SIZE$22,
6186
6186
  offset,
6187
6187
  requestId
6188
6188
  } }).json(), {
@@ -6191,8 +6191,8 @@ async function fetchAllRequestIdentifiers(client, sombra, options) {
6191
6191
  baseDelayMs: 500
6192
6192
  }));
6193
6193
  requestIdentifiers.push(...nodes);
6194
- offset += PAGE_SIZE$21;
6195
- shouldContinue = nodes.length === PAGE_SIZE$21;
6194
+ offset += PAGE_SIZE$22;
6195
+ shouldContinue = nodes.length === PAGE_SIZE$22;
6196
6196
  } while (shouldContinue);
6197
6197
  return requestIdentifiers;
6198
6198
  }
@@ -6235,7 +6235,7 @@ const REQUEST_IDENTIFIERS = parse(gql`
6235
6235
  `);
6236
6236
  //#endregion
6237
6237
  //#region src/dsr-automation/fetchAllRequestIdentifierMetadata.ts
6238
- const PAGE_SIZE$20 = 50;
6238
+ const PAGE_SIZE$21 = 50;
6239
6239
  /**
6240
6240
  * Fetch all request identifier metadata for a particular request
6241
6241
  *
@@ -6253,7 +6253,7 @@ async function fetchAllRequestIdentifierMetadata(client, options = {}) {
6253
6253
  do {
6254
6254
  const { requestIdentifiers: { nodes } } = await makeGraphQLRequest(client, REQUEST_IDENTIFIERS, {
6255
6255
  variables: {
6256
- first: PAGE_SIZE$20,
6256
+ first: PAGE_SIZE$21,
6257
6257
  offset,
6258
6258
  requestIds: resolvedRequestIds,
6259
6259
  updatedAtBefore: updatedAtBefore ? updatedAtBefore.toISOString() : void 0,
@@ -6262,8 +6262,8 @@ async function fetchAllRequestIdentifierMetadata(client, options = {}) {
6262
6262
  logger
6263
6263
  });
6264
6264
  requestIdentifiers.push(...nodes);
6265
- offset += PAGE_SIZE$20;
6266
- shouldContinue = nodes.length === PAGE_SIZE$20;
6265
+ offset += PAGE_SIZE$21;
6266
+ shouldContinue = nodes.length === PAGE_SIZE$21;
6267
6267
  } while (shouldContinue);
6268
6268
  return requestIdentifiers;
6269
6269
  }
@@ -6543,7 +6543,7 @@ const UPDATE_ENRICHER = gql`
6543
6543
  `;
6544
6544
  //#endregion
6545
6545
  //#region src/dsr-automation/syncEnrichers.ts
6546
- const PAGE_SIZE$19 = 20;
6546
+ const PAGE_SIZE$20 = 20;
6547
6547
  /**
6548
6548
  * Fetch all enrichers in the organization
6549
6549
  *
@@ -6560,15 +6560,15 @@ async function fetchAllEnrichers(client, options = {}) {
6560
6560
  do {
6561
6561
  const { enrichers: { nodes } } = await makeGraphQLRequest(client, ENRICHERS, {
6562
6562
  variables: {
6563
- first: PAGE_SIZE$19,
6563
+ first: PAGE_SIZE$20,
6564
6564
  offset,
6565
6565
  title
6566
6566
  },
6567
6567
  logger
6568
6568
  });
6569
6569
  enrichers.push(...nodes);
6570
- offset += PAGE_SIZE$19;
6571
- shouldContinue = nodes.length === PAGE_SIZE$19;
6570
+ offset += PAGE_SIZE$20;
6571
+ shouldContinue = nodes.length === PAGE_SIZE$20;
6572
6572
  } while (shouldContinue);
6573
6573
  return enrichers.sort((a, b) => a.title.localeCompare(b.title));
6574
6574
  }
@@ -6738,7 +6738,7 @@ const UPDATE_ACTION = gql`
6738
6738
  `;
6739
6739
  //#endregion
6740
6740
  //#region src/dsr-automation/fetchAllActions.ts
6741
- const PAGE_SIZE$18 = 20;
6741
+ const PAGE_SIZE$19 = 20;
6742
6742
  /**
6743
6743
  * Fetch all actions in the organization
6744
6744
  *
@@ -6754,20 +6754,20 @@ async function fetchAllActions(client, options = {}) {
6754
6754
  do {
6755
6755
  const { actions: { nodes } } = await makeGraphQLRequest(client, ACTIONS, {
6756
6756
  variables: {
6757
- first: PAGE_SIZE$18,
6757
+ first: PAGE_SIZE$19,
6758
6758
  offset
6759
6759
  },
6760
6760
  logger
6761
6761
  });
6762
6762
  actions.push(...nodes);
6763
- offset += PAGE_SIZE$18;
6764
- shouldContinue = nodes.length === PAGE_SIZE$18;
6763
+ offset += PAGE_SIZE$19;
6764
+ shouldContinue = nodes.length === PAGE_SIZE$19;
6765
6765
  } while (shouldContinue);
6766
6766
  return actions.sort((a, b) => a.type.localeCompare(b.type));
6767
6767
  }
6768
6768
  //#endregion
6769
6769
  //#region src/dsr-automation/fetchAllAttributeKeys.ts
6770
- const PAGE_SIZE$17 = 20;
6770
+ const PAGE_SIZE$18 = 20;
6771
6771
  /**
6772
6772
  * Fetch all attribute keys enabled for privacy requests
6773
6773
  *
@@ -6783,14 +6783,14 @@ async function fetchAllRequestAttributeKeys(client, options = {}) {
6783
6783
  do {
6784
6784
  const { attributeKeys: { nodes } } = await makeGraphQLRequest(client, ATTRIBUTE_KEYS_REQUESTS, {
6785
6785
  variables: {
6786
- first: PAGE_SIZE$17,
6786
+ first: PAGE_SIZE$18,
6787
6787
  offset
6788
6788
  },
6789
6789
  logger
6790
6790
  });
6791
6791
  attributeKeys.push(...nodes);
6792
- offset += PAGE_SIZE$17;
6793
- shouldContinue = nodes.length === PAGE_SIZE$17;
6792
+ offset += PAGE_SIZE$18;
6793
+ shouldContinue = nodes.length === PAGE_SIZE$18;
6794
6794
  } while (shouldContinue);
6795
6795
  return attributeKeys.sort((a, b) => a.name.localeCompare(b.name));
6796
6796
  }
@@ -6821,7 +6821,7 @@ const SILO_DISCOVERY_RESULTS = gql`
6821
6821
  `;
6822
6822
  //#endregion
6823
6823
  //#region src/dsr-automation/fetchAllSiloDiscoveryResults.ts
6824
- const PAGE_SIZE$16 = 30;
6824
+ const PAGE_SIZE$17 = 30;
6825
6825
  /**
6826
6826
  * Fetch all silo discovery results in the organization
6827
6827
  *
@@ -6837,7 +6837,7 @@ async function fetchAllSiloDiscoveryResults(client, options = {}) {
6837
6837
  do {
6838
6838
  const { siloDiscoveryResults: { nodes } } = await makeGraphQLRequest(client, SILO_DISCOVERY_RESULTS, {
6839
6839
  variables: {
6840
- first: PAGE_SIZE$16,
6840
+ first: PAGE_SIZE$17,
6841
6841
  offset,
6842
6842
  input: {},
6843
6843
  filterBy: {}
@@ -6849,8 +6849,8 @@ async function fetchAllSiloDiscoveryResults(client, options = {}) {
6849
6849
  title: node.suggestedCatalog.title
6850
6850
  } : node);
6851
6851
  siloDiscoveryResults.push(...titledNodes);
6852
- offset += PAGE_SIZE$16;
6853
- shouldContinue = nodes.length === PAGE_SIZE$16;
6852
+ offset += PAGE_SIZE$17;
6853
+ shouldContinue = nodes.length === PAGE_SIZE$17;
6854
6854
  } while (shouldContinue);
6855
6855
  return siloDiscoveryResults;
6856
6856
  }
@@ -6869,7 +6869,7 @@ const CATALOGS = gql`
6869
6869
  `;
6870
6870
  //#endregion
6871
6871
  //#region src/dsr-automation/fetchCatalogs.ts
6872
- const PAGE_SIZE$15 = 100;
6872
+ const PAGE_SIZE$16 = 100;
6873
6873
  /**
6874
6874
  * Fetch all integration catalogs in an organization
6875
6875
  *
@@ -6885,14 +6885,14 @@ async function fetchAllCatalogs(client, options = {}) {
6885
6885
  do {
6886
6886
  const { catalogs: { nodes } } = await makeGraphQLRequest(client, CATALOGS, {
6887
6887
  variables: {
6888
- first: PAGE_SIZE$15,
6888
+ first: PAGE_SIZE$16,
6889
6889
  offset
6890
6890
  },
6891
6891
  logger
6892
6892
  });
6893
6893
  catalogs.push(...nodes);
6894
- offset += PAGE_SIZE$15;
6895
- shouldContinue = nodes.length === PAGE_SIZE$15;
6894
+ offset += PAGE_SIZE$16;
6895
+ shouldContinue = nodes.length === PAGE_SIZE$16;
6896
6896
  } while (shouldContinue);
6897
6897
  return catalogs.sort((a, b) => a.integrationName.localeCompare(b.integrationName));
6898
6898
  }
@@ -6995,7 +6995,7 @@ async function fetchRequestDataSilosCount(client, options = {}) {
6995
6995
  });
6996
6996
  return totalCount;
6997
6997
  }
6998
- const PAGE_SIZE$14 = 100;
6998
+ const PAGE_SIZE$15 = 100;
6999
6999
  /**
7000
7000
  * Fetch all request data silos by some filter criteria
7001
7001
  *
@@ -7011,7 +7011,7 @@ async function fetchRequestDataSilos(client, options = {}) {
7011
7011
  do {
7012
7012
  const { requestDataSilos: { nodes } } = await makeGraphQLRequest(client, REQUEST_DATA_SILOS, {
7013
7013
  variables: {
7014
- first: PAGE_SIZE$14,
7014
+ first: PAGE_SIZE$15,
7015
7015
  offset,
7016
7016
  filterBy: {
7017
7017
  dataSiloId,
@@ -7023,8 +7023,8 @@ async function fetchRequestDataSilos(client, options = {}) {
7023
7023
  logger
7024
7024
  });
7025
7025
  requestDataSilos.push(...nodes);
7026
- offset += PAGE_SIZE$14;
7027
- shouldContinue = nodes.length === PAGE_SIZE$14;
7026
+ offset += PAGE_SIZE$15;
7027
+ shouldContinue = nodes.length === PAGE_SIZE$15;
7028
7028
  onProgress?.(nodes.length);
7029
7029
  } while (shouldContinue && (!limit || offset < limit));
7030
7030
  return requestDataSilos;
@@ -7189,7 +7189,7 @@ const CREATE_TEMPLATE = gql`
7189
7189
  `;
7190
7190
  //#endregion
7191
7191
  //#region src/dsr-automation/syncTemplates.ts
7192
- const PAGE_SIZE$13 = 20;
7192
+ const PAGE_SIZE$14 = 20;
7193
7193
  /**
7194
7194
  * Fetch all Templates in the organization
7195
7195
  *
@@ -7205,15 +7205,15 @@ async function fetchAllTemplates(client, options = {}) {
7205
7205
  do {
7206
7206
  const { templates: { nodes } } = await makeGraphQLRequest(client, TEMPLATES, {
7207
7207
  variables: {
7208
- first: PAGE_SIZE$13,
7208
+ first: PAGE_SIZE$14,
7209
7209
  offset,
7210
7210
  title
7211
7211
  },
7212
7212
  logger
7213
7213
  });
7214
7214
  templates.push(...nodes);
7215
- offset += PAGE_SIZE$13;
7216
- shouldContinue = nodes.length === PAGE_SIZE$13;
7215
+ offset += PAGE_SIZE$14;
7216
+ shouldContinue = nodes.length === PAGE_SIZE$14;
7217
7217
  } while (shouldContinue);
7218
7218
  return templates.sort((a, b) => a.title.localeCompare(b.title));
7219
7219
  }
@@ -7235,6 +7235,321 @@ async function syncTemplate(client, template, options = {}) {
7235
7235
  });
7236
7236
  }
7237
7237
  //#endregion
7238
+ //#region src/dsr-automation/gqls/workflowConfig.ts
7239
+ const WORKFLOW_CONFIGS = parse(gql`
7240
+ query TranscendCliWorkflowConfigs($first: Int!, $offset: Int!, $filterBy: WorkflowFilterInput) {
7241
+ workflows(first: $first, offset: $offset, filterBy: $filterBy) {
7242
+ nodes {
7243
+ id
7244
+ title {
7245
+ defaultMessage
7246
+ }
7247
+ subtitle {
7248
+ defaultMessage
7249
+ }
7250
+ description {
7251
+ defaultMessage
7252
+ }
7253
+ internalName
7254
+ workflowConfigVisibility
7255
+ workflowConfigType
7256
+ collectDataSubjectRegions
7257
+ regionList
7258
+ expiryTime {
7259
+ region
7260
+ value
7261
+ }
7262
+ action {
7263
+ type
7264
+ }
7265
+ subject {
7266
+ id
7267
+ type
7268
+ }
7269
+ WorkflowConfigAttributeKeys {
7270
+ attributeKey {
7271
+ id
7272
+ name
7273
+ }
7274
+ }
7275
+ }
7276
+ totalCount
7277
+ }
7278
+ }
7279
+ `);
7280
+ const CREATE_WORKFLOW = parse(gql`
7281
+ mutation TranscendCliCreateWorkflow($input: CreateWorkflowInput!) {
7282
+ createWorkflow(input: $input) {
7283
+ workflowConfig {
7284
+ id
7285
+ internalName
7286
+ }
7287
+ }
7288
+ }
7289
+ `);
7290
+ const UPDATE_WORKFLOW_CONFIG = parse(gql`
7291
+ mutation TranscendCliUpdateWorkflowConfig($input: UpdateWorkflowConfigInput!) {
7292
+ updateWorkflowConfig(input: $input) {
7293
+ success
7294
+ }
7295
+ }
7296
+ `);
7297
+ //#endregion
7298
+ //#region src/dsr-automation/fetchAllWorkflowConfigs.ts
7299
+ const PAGE_SIZE$13 = 50;
7300
+ /**
7301
+ * Fetch all workflow configs in the organization
7302
+ *
7303
+ * @param client - GraphQL client
7304
+ * @param options - Options
7305
+ * @returns All workflow configs
7306
+ */
7307
+ async function fetchAllWorkflowConfigs(client, options = {}) {
7308
+ const { logger, workflowConfigType } = options;
7309
+ const configs = [];
7310
+ let offset = 0;
7311
+ let shouldContinue = false;
7312
+ do {
7313
+ const { workflows: { nodes } } = await makeGraphQLRequest(client, WORKFLOW_CONFIGS, {
7314
+ variables: {
7315
+ first: PAGE_SIZE$13,
7316
+ offset,
7317
+ filterBy: workflowConfigType ? { workflowConfigType } : void 0
7318
+ },
7319
+ logger
7320
+ });
7321
+ configs.push(...nodes);
7322
+ offset += PAGE_SIZE$13;
7323
+ shouldContinue = nodes.length === PAGE_SIZE$13;
7324
+ } while (shouldContinue);
7325
+ return configs.sort((a, b) => a.title.defaultMessage.localeCompare(b.title.defaultMessage));
7326
+ }
7327
+ //#endregion
7328
+ //#region src/dsr-automation/resolveWorkflowConfigMatch.ts
7329
+ /**
7330
+ * Stable key for title + action + data subject + region-list identity.
7331
+ *
7332
+ * @param config - Workflow config node
7333
+ * @returns Match key string
7334
+ */
7335
+ function workflowConfigMatchKey(config) {
7336
+ return [
7337
+ config.title.defaultMessage,
7338
+ config.action.type,
7339
+ config.subject?.type ?? "",
7340
+ workflowRegionListKey(config.regionList)
7341
+ ].join("\0");
7342
+ }
7343
+ /**
7344
+ * Order-independent region list key for workflow matching.
7345
+ *
7346
+ * @param regions - Region list
7347
+ * @returns Sorted comma-separated region codes
7348
+ */
7349
+ function workflowRegionListKey(regions) {
7350
+ return [...regions ?? []].sort().join(",");
7351
+ }
7352
+ /**
7353
+ * Human-readable label for logging and errors.
7354
+ *
7355
+ * @param input - Workflow config sync input
7356
+ * @returns Label string
7357
+ */
7358
+ function workflowConfigInputLabel(input) {
7359
+ return input["internal-name"] ?? input.title;
7360
+ }
7361
+ function sameRegionList(inputRegions, configRegions) {
7362
+ return workflowRegionListKey(inputRegions) === workflowRegionListKey(configRegions);
7363
+ }
7364
+ function narrowToOneOrContinue(candidates, next) {
7365
+ const [only] = candidates;
7366
+ if (candidates.length === 1 && only !== void 0) return {
7367
+ kind: "match",
7368
+ config: only
7369
+ };
7370
+ if (candidates.length === 0) return { kind: "create" };
7371
+ return next(candidates);
7372
+ }
7373
+ function continueCascade(candidates, input) {
7374
+ return narrowToOneOrContinue(candidates.filter((config) => config.title.defaultMessage === input.title), (byTitle) => narrowToOneOrContinue(byTitle.filter((config) => config.action.type === input["action-type"]), (byAction) => {
7375
+ const dataSubjectType = input["data-subject-type"];
7376
+ if (dataSubjectType) return narrowToOneOrContinue(byAction.filter((config) => config.subject?.type === dataSubjectType), (bySubject) => filterByRegions(bySubject, input));
7377
+ return filterByRegions(byAction, input);
7378
+ }));
7379
+ }
7380
+ function filterByRegions(candidates, input) {
7381
+ const matches = candidates.filter((config) => sameRegionList(input["region-list"], config.regionList));
7382
+ const [only] = matches;
7383
+ if (matches.length === 1 && only !== void 0) return {
7384
+ kind: "match",
7385
+ config: only
7386
+ };
7387
+ if (matches.length === 0) return { kind: "create" };
7388
+ if (!input["internal-name"]) {
7389
+ const [firstUnnamed] = matches.filter((config) => config.internalName == null);
7390
+ if (firstUnnamed !== void 0) return {
7391
+ kind: "match",
7392
+ config: firstUnnamed
7393
+ };
7394
+ }
7395
+ return {
7396
+ kind: "ambiguous",
7397
+ candidates: matches
7398
+ };
7399
+ }
7400
+ /**
7401
+ * Resolve which existing workflow config a YAML entry should update, if any.
7402
+ *
7403
+ * Cascade order: internal-name → title → action-type → data-subject-type (when
7404
+ * provided) → region-list. A provided internal-name with zero matches creates a
7405
+ * new workflow instead of falling through to title. When internal-name is
7406
+ * omitted and the cascade still matches multiple configs, prefer the candidate
7407
+ * with a null internal name.
7408
+ *
7409
+ * @param input - Workflow config sync input
7410
+ * @param existingConfigs - Existing workflow configs in the org
7411
+ * @returns Match resolution
7412
+ */
7413
+ function resolveWorkflowConfigMatch(input, existingConfigs) {
7414
+ const internalName = input["internal-name"];
7415
+ if (internalName) {
7416
+ const byName = existingConfigs.filter((config) => config.internalName === internalName);
7417
+ const [onlyByName] = byName;
7418
+ if (byName.length === 1 && onlyByName !== void 0) return {
7419
+ kind: "match",
7420
+ config: onlyByName
7421
+ };
7422
+ if (byName.length === 0) return { kind: "create" };
7423
+ return continueCascade(byName, input);
7424
+ }
7425
+ return continueCascade(existingConfigs, input);
7426
+ }
7427
+ //#endregion
7428
+ //#region src/dsr-automation/syncWorkflowConfigs.ts
7429
+ /**
7430
+ * Sync workflow configs to Transcend.
7431
+ *
7432
+ * Matches each input using a cascading key: internal-name → title → action-type
7433
+ * → data-subject-type (when provided) → region-list. Missing configs are
7434
+ * created via `createWorkflow` (DSR only; starts as Draft with default
7435
+ * associations), then updated with the remaining YAML fields. Successfully
7436
+ * matched configs are claimed (removed from the match pool) so later YAML
7437
+ * entries can resolve remaining duplicates.
7438
+ *
7439
+ * @param client - GraphQL client
7440
+ * @param inputs - Workflow config inputs from YAML
7441
+ * @param options - Options
7442
+ * @returns True if run without error
7443
+ */
7444
+ async function syncWorkflowConfigs(client, inputs, options = {}) {
7445
+ const { logger } = options;
7446
+ logger?.info(`Syncing "${inputs.length}" workflow configs...`);
7447
+ let encounteredError = false;
7448
+ const needsSubjects = inputs.some((config) => config["data-subject-type"]);
7449
+ const needsAttributeKeys = inputs.some((config) => config["attribute-keys"]?.length);
7450
+ const [fetchedConfigs, actions] = await Promise.all([fetchAllWorkflowConfigs(client, {
7451
+ logger,
7452
+ workflowConfigType: WorkflowConfigType.DSR
7453
+ }), fetchAllActions(client, { logger })]);
7454
+ const existingConfigs = [...fetchedConfigs];
7455
+ let dataSubjects = [];
7456
+ if (needsSubjects) dataSubjects = await fetchAllDataSubjects(client, { logger });
7457
+ let attributeKeys = [];
7458
+ if (needsAttributeKeys) attributeKeys = await fetchAllRequestAttributeKeys(client, { logger });
7459
+ const actionByType = keyBy(actions, "type");
7460
+ const dataSubjectByType = keyBy(dataSubjects, "type");
7461
+ const attributeKeyByName = keyBy(attributeKeys, "name");
7462
+ await mapSeries(inputs, async (config) => {
7463
+ const label = workflowConfigInputLabel(config);
7464
+ try {
7465
+ if (config.type && config.type !== WorkflowConfigType.DSR) throw new Error(`Workflow config "${label}" has type "${config.type}". Only DSR workflow configs can be synced — preference management workflows have purpose-based semantics and must be managed in the Admin Dashboard.`);
7466
+ const resolution = resolveWorkflowConfigMatch(config, existingConfigs);
7467
+ if (resolution.kind === "ambiguous") throw new Error(`Found "${resolution.candidates.length}" workflow configs matching "${label}" after applying title, action-type, data-subject-type, and region-list. Add a unique internal-name or disambiguating region-list to sync this workflow.`);
7468
+ const existingConfig = resolution.kind === "match" ? resolution.config : void 0;
7469
+ if (existingConfig && existingConfig.workflowConfigType !== WorkflowConfigType.DSR) throw new Error(`Workflow config "${label}" has type "${existingConfig.workflowConfigType}". Only DSR workflow configs can be synced — preference management workflows have purpose-based semantics and must be managed in the Admin Dashboard.`);
7470
+ const expiryTime = config["expiry-time"];
7471
+ if (expiryTime && expiryTime.length > 0) {
7472
+ if (!expiryTime.some(({ region }) => region === "default")) throw new Error(`Workflow config "${label}" has an expiry-time list without a "default" region entry. A \`region: default\` entry is required.`);
7473
+ const invalidEntries = expiryTime.filter(({ value }) => value <= 0);
7474
+ if (invalidEntries.length > 0) throw new Error(`Workflow config "${label}" has expiry-time values that are not positive: ${invalidEntries.map(({ region, value }) => `${region}=${value}`).join(", ")}. All expiry times must be greater than 0 days.`);
7475
+ }
7476
+ let subjectId;
7477
+ if (config["data-subject-type"]) {
7478
+ const subject = dataSubjectByType[config["data-subject-type"]];
7479
+ if (!subject) throw new Error(`Failed to find data subject with type: ${config["data-subject-type"]}`);
7480
+ subjectId = subject.id;
7481
+ }
7482
+ if (!actionByType[config["action-type"]]) throw new Error(`Failed to find action with type: ${config["action-type"]}`);
7483
+ let attributeKeyIds;
7484
+ if (config["attribute-keys"] !== void 0) attributeKeyIds = config["attribute-keys"].map((name) => {
7485
+ const attributeKey = attributeKeyByName[name];
7486
+ if (!attributeKey) throw new Error(`Failed to find attribute key with name: ${name}`);
7487
+ return attributeKey.id;
7488
+ });
7489
+ let workflowConfigId;
7490
+ if (!existingConfig) {
7491
+ const internalName = config["internal-name"];
7492
+ const { createWorkflow: { workflowConfig: created } } = await makeGraphQLRequest(client, CREATE_WORKFLOW, {
7493
+ variables: { input: {
7494
+ title: config.title,
7495
+ actionType: config["action-type"],
7496
+ ...internalName ? { internalName } : {},
7497
+ workflowConfigType: WorkflowConfigType.DSR
7498
+ } },
7499
+ logger
7500
+ });
7501
+ workflowConfigId = created.id;
7502
+ existingConfigs.push({
7503
+ id: created.id,
7504
+ title: { defaultMessage: config.title },
7505
+ subtitle: null,
7506
+ description: null,
7507
+ internalName: created.internalName ?? internalName ?? null,
7508
+ workflowConfigVisibility: WorkflowConfigVisibility.Draft,
7509
+ workflowConfigType: WorkflowConfigType.DSR,
7510
+ collectDataSubjectRegions: null,
7511
+ regionList: config["region-list"] ?? [],
7512
+ expiryTime: null,
7513
+ action: { type: config["action-type"] },
7514
+ subject: subjectId ? {
7515
+ id: subjectId,
7516
+ type: config["data-subject-type"]
7517
+ } : null,
7518
+ WorkflowConfigAttributeKeys: null
7519
+ });
7520
+ logger?.info(`Successfully created workflow config "${label}" (${created.id})!`);
7521
+ } else workflowConfigId = existingConfig.id;
7522
+ await makeGraphQLRequest(client, UPDATE_WORKFLOW_CONFIG, {
7523
+ variables: { input: {
7524
+ workflowConfigId,
7525
+ ...config.title !== void 0 ? { title: config.title } : {},
7526
+ ...config.subtitle !== void 0 ? { subtitle: config.subtitle } : {},
7527
+ ...config.description !== void 0 ? { description: config.description } : {},
7528
+ ...config.visibility !== void 0 ? { workflowConfigVisibility: config.visibility } : {},
7529
+ ...config["internal-name"] !== void 0 ? { internalName: config["internal-name"] } : {},
7530
+ actionType: config["action-type"],
7531
+ ...config["collect-data-subject-regions"] !== void 0 ? { collectDataSubjectRegions: config["collect-data-subject-regions"] } : {},
7532
+ ...subjectId ? { subjectId } : {},
7533
+ ...config["region-list"] !== void 0 ? { regionList: config["region-list"] } : {},
7534
+ ...config["expiry-time"] !== void 0 ? { expiryTime: config["expiry-time"] } : {},
7535
+ ...attributeKeyIds !== void 0 ? { attributeKeyIds } : {}
7536
+ } },
7537
+ logger
7538
+ });
7539
+ if (existingConfig) {
7540
+ const claimedIndex = existingConfigs.findIndex((config) => config.id === existingConfig.id);
7541
+ if (claimedIndex >= 0) existingConfigs.splice(claimedIndex, 1);
7542
+ }
7543
+ logger?.info(`Successfully synced workflow config "${label}" (${workflowConfigId})!`);
7544
+ } catch (err) {
7545
+ encounteredError = true;
7546
+ logger?.error(`Failed to sync workflow config "${label}"! - ${err.message}`);
7547
+ }
7548
+ });
7549
+ logger?.info(`Synced "${inputs.length}" workflow configs!`);
7550
+ return !encounteredError;
7551
+ }
7552
+ //#endregion
7238
7553
  //#region src/dsr-automation/uploadSiloDiscoveryResults.ts
7239
7554
  const CHUNK_SIZE$2 = 1e3;
7240
7555
  /**
@@ -9682,6 +9997,6 @@ function createMonorepoPackageDefinition(name, directory) {
9682
9997
  };
9683
9998
  }
9684
9999
  //#endregion
9685
- export { AIRGAP_BUNDLE_AGGREGATE_ANALYTICS, AIRGAP_BUNDLE_TIMESERIES_ANALYTICS, ASSESSMENTS, ASSESSMENT_SECTION_FIELDS, ATTRIBUTE_KEYS_REQUESTS, ATTRIBUTE_VALUE_FIELDS, AssessmentAction, AssessmentNestedRule, AssessmentRiskLogic, AssessmentRule, AssessmentRuleWithOperands, AssessmentRuleWithoutOperands, BULK_REQUEST_FILES, CHANGE_REQUEST_DATA_SILO_STATUS, CODE_PACKAGES, CONSENT_MANAGER_ANALYTICS_DATA, CONSENT_PARTITIONS, COOKIES, COOKIE_STATS, CREATE_CODE_PACKAGE, CREATE_CONSENT_EXPERIENCE, CREATE_CONSENT_MANAGER, CREATE_CONSENT_PARTITION, CREATE_CONSENT_UI_THEME, CREATE_CONSENT_UI_VARIANT, CREATE_DATA_FLOWS, CREATE_DATA_SILOS, CREATE_DATA_SUBJECT, CREATE_ENRICHER, CREATE_IDENTIFIER, CREATE_PROCESSING_PURPOSE_SUB_CATEGORY, ColumnIdentifierMap, ColumnMetadataMap, ColumnPurposeMap, ConsentPreferenceResponse, DATAPOINT_EXPORT, DATA_FLOWS, DATA_FLOW_STATS, DATA_POINTS, DATA_POINT_COUNT, DATA_SILOS, DATA_SILOS_ENRICHED, DATA_SILO_EXPORT, DATA_SUBJECTS, DELETE_COOKIES, DELETE_DATA_FLOWS, DEPLOYED_PRIVACY_CENTER_URL, DEPLOY_CONSENT_MANAGER, DeletePreferenceRecordCliCsvRow, DeletePreferenceRecordsInput, DeletePreferenceRecordsResponse, ENRICHERS, EXPERIENCES, FETCH_CONSENT_MANAGER, FETCH_CONSENT_MANAGER_ID, FETCH_CONSENT_MANAGER_THEME, FETCH_CONSENT_UI_THEMES, FETCH_CONSENT_UI_VARIANTS, FETCH_PRIVACY_CENTER_ID, FailingPreferenceUpdates, FileFormatState, FileMetadataState, IMPORT_ONE_TRUST_ASSESSMENT_FORMS, INITIALIZER, IdentifierMetadataForPreference, MetadataMapping, NEW_IDENTIFIER_TYPES, NOOP_LOGGER, OWNER_FIELDS, POLICIES, PRIVACY_CENTER, PROCESSING_PURPOSE_SUB_CATEGORIES, PURPOSES, PendingSafePreferenceUpdates, PendingWithConflictPreferenceUpdates, PreferenceOptionValueInput, PreferenceState, PreferenceTopicSyncInput, PreferenceUpdateMap, PurposeInput, PurposeRowMapping, REDUCED_REQUESTS_FOR_DATA_SILO_COUNT, REMOVE_REQUEST_IDENTIFIERS, REQUEST_DATA_SILOS, REQUEST_ENRICHERS, REQUEST_FILES, REQUEST_IDENTIFIERS, RETRY_REQUEST_DATA_SILO, RETRY_REQUEST_ENRICHER, RETRY_TRANSIENT_MSGS, RequestIdentifiersResponse, RequestUploadReceipts, SERVICE_FIELDS, SKIP_REQUEST_ENRICHER, SOMBRA_VERSION, SUB_DATA_POINTS, SUB_DATA_POINTS_COUNT, SUB_DATA_POINTS_WITH_GUESSES, SYNC_ATTRIBUTE_TYPES, SkippedPreferenceUpdates, TEAM_FIELDS, TOGGLE_CONSENT_PRECEDENCE, TOGGLE_DATA_SUBJECT, TOGGLE_TELEMETRY_PARTITION_STRATEGY, TOGGLE_UNKNOWN_COOKIE_POLICY, TOGGLE_UNKNOWN_REQUEST_POLICY, TRACKING_PURPOSE_FIELDS, UPDATE_CODE_PACKAGES, UPDATE_CONSENT_EXPERIENCE, UPDATE_CONSENT_MANAGER_DOMAINS, UPDATE_CONSENT_MANAGER_PARTITION, UPDATE_CONSENT_MANAGER_THEME, UPDATE_CONSENT_MANAGER_TO_LATEST, UPDATE_CONSENT_MANAGER_VERSION, UPDATE_CONSENT_UI_THEME, UPDATE_CONSENT_UI_VARIANT, UPDATE_DATA_FLOWS, UPDATE_DATA_SILOS, UPDATE_DATA_SUBJECT, UPDATE_ENRICHER, UPDATE_IDENTIFIER, UPDATE_LOAD_OPTIONS, UPDATE_OR_CREATE_COOKIES, UPDATE_OR_CREATE_DATA_POINT, UPDATE_POLICIES, UPDATE_PRIVACY_CENTER, UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES, addMessagesToPromptRun, assumeRole, buildConsentChunks, buildTranscendGraphQLClient, buildTranscendGraphQLClientGeneric, checkIfPendingPreferenceUpdatesAreNoOp, checkIfPendingPreferenceUpdatesCauseConflict, consentWindowHasAny, convertToDataSubjectAllowlist, convertToDataSubjectBlockList, createActionItemCollection, createActionItems, createAgent, createAgentFile, createAgentFunction, createApiKey, createBusinessEntity, createDataCategory, createDataFlows, createDataSubject, createMonorepoPackageDefinition, createOrUpdatePreferenceOptionValues, createPreferenceAccessTokens, createProcessingPurpose, createPrompt, createPromptGroup, createPromptPartial, createRepository, createSoftwareDevelopmentKit, createSombraGotInstance, createTeam, createTranscendConsentGotInstance, createVendor, deleteApiKey, deployConsentManager, fetchActiveSiloDiscoPlugin, fetchAirgapBundleAggregateAnalytics, fetchAirgapBundleTimeseriesAnalytics, fetchAllActionItemCollections, fetchAllActionItems, fetchAllActions, fetchAllAgentFiles, fetchAllAgentFunctions, fetchAllAgents, fetchAllApiKeys, fetchAllAssessments, fetchAllAttributeValues, fetchAllAttributes, fetchAllBusinessEntities, fetchAllCatalogs, fetchAllCodePackages, fetchAllCookies, fetchAllDataCategories, fetchAllDataFlows, fetchAllDataPoints, fetchAllDataSilos, fetchAllDataSubjects, fetchAllEnrichers, fetchAllIdentifiers, fetchAllLargeLanguageModels, fetchAllMessages, fetchAllPolicies, fetchAllPreferenceOptionValues, fetchAllPreferenceTopics, fetchAllPrivacyCenters, fetchAllProcessingActivities, fetchAllProcessingPurposes, fetchAllPromptGroups, fetchAllPromptPartials, fetchAllPromptThreads, fetchAllPrompts, fetchAllPurposes, fetchAllPurposesAndPreferences, fetchAllRepositories, fetchAllRequestAttributeKeys, fetchAllRequestEnrichers, fetchAllRequestIdentifierMetadata, fetchAllRequestIdentifiers, fetchAllSiloDiscoveryResults, fetchAllSoftwareDevelopmentKits, fetchAllSubDataPoints, fetchAllTeams, fetchAllTemplates, fetchAllUsers, fetchAllVendors, fetchAndIndexCatalogs, fetchApiKeys, fetchConsentManager, fetchConsentManagerAnalyticsData, fetchConsentManagerExperiences, fetchConsentManagerId, fetchConsentManagerTheme, fetchConsentPreferences, fetchConsentPreferencesChunked, fetchConsentThemes, fetchConsentVariants, fetchEnrichedDataSilos, fetchIdentifiersAndCreateMissing, fetchParentOrganizationTeams, fetchPartitions, fetchPrivacyCenterId, fetchPrivacyCenterUrl, fetchPromptsWithVariables, fetchRequestDataSilo, fetchRequestDataSilos, fetchRequestDataSilosCount, fetchRequestFilesForRequest, findEarliestDayWithData, findLatestDayWithData, formatAttributeValues, formatRegions, getBoundsFromConsentFilter, getComparisonTimeForRecord, getPreferenceIdentifiersFromRow, getPreferenceMetadataFromRow, getPreferenceUpdatesFromRow, getPreferencesForIdentifiers, getUniquePreferenceIdentifierNamesFromRow, isTransientError, iterateConsentPages, loadReferenceData, loginUser, makeGraphQLRequest, parseAssessmentDisplayLogic, parseAssessmentRiskLogic, pickConsentChunkMode, reportPromptRun, resolveParentTeamIdsByName, retryRequestEnricher, setResourceAttributes, syncAction, syncActionItemCollections, syncActionItems, syncAgentFiles, syncAgentFunctions, syncAgents, syncAttribute, syncBusinessEntities, syncConsentManager, syncConsentManagerExperiences, syncConsentUiThemes, syncConsentUiVariants, syncCookies, syncDataCategories, syncDataFlows, syncDataSiloDependencies, syncDataSubject, syncEnricher, syncIdentifier, syncIntlMessages, syncPartitions, syncPolicies, syncPreferenceOptionValues, syncPreferenceTopics, syncPrivacyCenter, syncProcessingActivities, syncProcessingPurposes, syncPromptGroups, syncPromptPartials, syncPrompts, syncPurposes, syncRepositories, syncSoftwareDevelopmentKits, syncTeams, syncTemplate, syncVendors, transformPreferenceRecordToCsv, updateActionItem, updateActionItemCollection, updateAgentFiles, updateAgentFunctions, updateAgents, updateBusinessEntities, updateConsentManagerToLatest, updateDataCategories, updateDataFlows, updateIntlMessages, updateOrCreateCookies, updatePolicies, updateProcessingPurposes, updatePromptGroups, updatePromptPartials, updatePrompts, updateRepositories, updateSoftwareDevelopmentKits, updateTeam, updateVendors, uploadSiloDiscoveryResults, validateSombraVersion, withTransientRetry };
10000
+ export { AIRGAP_BUNDLE_AGGREGATE_ANALYTICS, AIRGAP_BUNDLE_TIMESERIES_ANALYTICS, ASSESSMENTS, ASSESSMENT_SECTION_FIELDS, ATTRIBUTE_KEYS_REQUESTS, ATTRIBUTE_VALUE_FIELDS, AssessmentAction, AssessmentNestedRule, AssessmentRiskLogic, AssessmentRule, AssessmentRuleWithOperands, AssessmentRuleWithoutOperands, BULK_REQUEST_FILES, CHANGE_REQUEST_DATA_SILO_STATUS, CODE_PACKAGES, CONSENT_MANAGER_ANALYTICS_DATA, CONSENT_PARTITIONS, COOKIES, COOKIE_STATS, CREATE_CODE_PACKAGE, CREATE_CONSENT_EXPERIENCE, CREATE_CONSENT_MANAGER, CREATE_CONSENT_PARTITION, CREATE_CONSENT_UI_THEME, CREATE_CONSENT_UI_VARIANT, CREATE_DATA_FLOWS, CREATE_DATA_SILOS, CREATE_DATA_SUBJECT, CREATE_ENRICHER, CREATE_IDENTIFIER, CREATE_PROCESSING_PURPOSE_SUB_CATEGORY, ColumnIdentifierMap, ColumnMetadataMap, ColumnPurposeMap, ConsentPreferenceResponse, DATAPOINT_EXPORT, DATA_FLOWS, DATA_FLOW_STATS, DATA_POINTS, DATA_POINT_COUNT, DATA_SILOS, DATA_SILOS_ENRICHED, DATA_SILO_EXPORT, DATA_SUBJECTS, DELETE_COOKIES, DELETE_DATA_FLOWS, DEPLOYED_PRIVACY_CENTER_URL, DEPLOY_CONSENT_MANAGER, DeletePreferenceRecordCliCsvRow, DeletePreferenceRecordsInput, DeletePreferenceRecordsResponse, ENRICHERS, EXPERIENCES, FETCH_CONSENT_MANAGER, FETCH_CONSENT_MANAGER_ID, FETCH_CONSENT_MANAGER_THEME, FETCH_CONSENT_UI_THEMES, FETCH_CONSENT_UI_VARIANTS, FETCH_PRIVACY_CENTER_ID, FailingPreferenceUpdates, FileFormatState, FileMetadataState, IMPORT_ONE_TRUST_ASSESSMENT_FORMS, INITIALIZER, IdentifierMetadataForPreference, MetadataMapping, NEW_IDENTIFIER_TYPES, NOOP_LOGGER, OWNER_FIELDS, POLICIES, PRIVACY_CENTER, PROCESSING_PURPOSE_SUB_CATEGORIES, PURPOSES, PendingSafePreferenceUpdates, PendingWithConflictPreferenceUpdates, PreferenceOptionValueInput, PreferenceState, PreferenceTopicSyncInput, PreferenceUpdateMap, PurposeInput, PurposeRowMapping, REDUCED_REQUESTS_FOR_DATA_SILO_COUNT, REMOVE_REQUEST_IDENTIFIERS, REQUEST_DATA_SILOS, REQUEST_ENRICHERS, REQUEST_FILES, REQUEST_IDENTIFIERS, RETRY_REQUEST_DATA_SILO, RETRY_REQUEST_ENRICHER, RETRY_TRANSIENT_MSGS, RequestIdentifiersResponse, RequestUploadReceipts, SERVICE_FIELDS, SKIP_REQUEST_ENRICHER, SOMBRA_VERSION, SUB_DATA_POINTS, SUB_DATA_POINTS_COUNT, SUB_DATA_POINTS_WITH_GUESSES, SYNC_ATTRIBUTE_TYPES, SkippedPreferenceUpdates, TEAM_FIELDS, TOGGLE_CONSENT_PRECEDENCE, TOGGLE_DATA_SUBJECT, TOGGLE_TELEMETRY_PARTITION_STRATEGY, TOGGLE_UNKNOWN_COOKIE_POLICY, TOGGLE_UNKNOWN_REQUEST_POLICY, TRACKING_PURPOSE_FIELDS, UPDATE_CODE_PACKAGES, UPDATE_CONSENT_EXPERIENCE, UPDATE_CONSENT_MANAGER_DOMAINS, UPDATE_CONSENT_MANAGER_PARTITION, UPDATE_CONSENT_MANAGER_THEME, UPDATE_CONSENT_MANAGER_TO_LATEST, UPDATE_CONSENT_MANAGER_VERSION, UPDATE_CONSENT_UI_THEME, UPDATE_CONSENT_UI_VARIANT, UPDATE_DATA_FLOWS, UPDATE_DATA_SILOS, UPDATE_DATA_SUBJECT, UPDATE_ENRICHER, UPDATE_IDENTIFIER, UPDATE_LOAD_OPTIONS, UPDATE_OR_CREATE_COOKIES, UPDATE_OR_CREATE_DATA_POINT, UPDATE_POLICIES, UPDATE_PRIVACY_CENTER, UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES, addMessagesToPromptRun, assumeRole, buildConsentChunks, buildTranscendGraphQLClient, buildTranscendGraphQLClientGeneric, checkIfPendingPreferenceUpdatesAreNoOp, checkIfPendingPreferenceUpdatesCauseConflict, consentWindowHasAny, convertToDataSubjectAllowlist, convertToDataSubjectBlockList, createActionItemCollection, createActionItems, createAgent, createAgentFile, createAgentFunction, createApiKey, createBusinessEntity, createDataCategory, createDataFlows, createDataSubject, createMonorepoPackageDefinition, createOrUpdatePreferenceOptionValues, createPreferenceAccessTokens, createProcessingPurpose, createPrompt, createPromptGroup, createPromptPartial, createRepository, createSoftwareDevelopmentKit, createSombraGotInstance, createTeam, createTranscendConsentGotInstance, createVendor, deleteApiKey, deployConsentManager, fetchActiveSiloDiscoPlugin, fetchAirgapBundleAggregateAnalytics, fetchAirgapBundleTimeseriesAnalytics, fetchAllActionItemCollections, fetchAllActionItems, fetchAllActions, fetchAllAgentFiles, fetchAllAgentFunctions, fetchAllAgents, fetchAllApiKeys, fetchAllAssessments, fetchAllAttributeValues, fetchAllAttributes, fetchAllBusinessEntities, fetchAllCatalogs, fetchAllCodePackages, fetchAllCookies, fetchAllDataCategories, fetchAllDataFlows, fetchAllDataPoints, fetchAllDataSilos, fetchAllDataSubjects, fetchAllEnrichers, fetchAllIdentifiers, fetchAllLargeLanguageModels, fetchAllMessages, fetchAllPolicies, fetchAllPreferenceOptionValues, fetchAllPreferenceTopics, fetchAllPrivacyCenters, fetchAllProcessingActivities, fetchAllProcessingPurposes, fetchAllPromptGroups, fetchAllPromptPartials, fetchAllPromptThreads, fetchAllPrompts, fetchAllPurposes, fetchAllPurposesAndPreferences, fetchAllRepositories, fetchAllRequestAttributeKeys, fetchAllRequestEnrichers, fetchAllRequestIdentifierMetadata, fetchAllRequestIdentifiers, fetchAllSiloDiscoveryResults, fetchAllSoftwareDevelopmentKits, fetchAllSubDataPoints, fetchAllTeams, fetchAllTemplates, fetchAllUsers, fetchAllVendors, fetchAllWorkflowConfigs, fetchAndIndexCatalogs, fetchApiKeys, fetchConsentManager, fetchConsentManagerAnalyticsData, fetchConsentManagerExperiences, fetchConsentManagerId, fetchConsentManagerTheme, fetchConsentPreferences, fetchConsentPreferencesChunked, fetchConsentThemes, fetchConsentVariants, fetchEnrichedDataSilos, fetchIdentifiersAndCreateMissing, fetchParentOrganizationTeams, fetchPartitions, fetchPrivacyCenterId, fetchPrivacyCenterUrl, fetchPromptsWithVariables, fetchRequestDataSilo, fetchRequestDataSilos, fetchRequestDataSilosCount, fetchRequestFilesForRequest, findEarliestDayWithData, findLatestDayWithData, formatAttributeValues, formatRegions, getBoundsFromConsentFilter, getComparisonTimeForRecord, getPreferenceIdentifiersFromRow, getPreferenceMetadataFromRow, getPreferenceUpdatesFromRow, getPreferencesForIdentifiers, getUniquePreferenceIdentifierNamesFromRow, isTransientError, iterateConsentPages, loadReferenceData, loginUser, makeGraphQLRequest, parseAssessmentDisplayLogic, parseAssessmentRiskLogic, pickConsentChunkMode, reportPromptRun, resolveParentTeamIdsByName, resolveWorkflowConfigMatch, retryRequestEnricher, setResourceAttributes, syncAction, syncActionItemCollections, syncActionItems, syncAgentFiles, syncAgentFunctions, syncAgents, syncAttribute, syncBusinessEntities, syncConsentManager, syncConsentManagerExperiences, syncConsentUiThemes, syncConsentUiVariants, syncCookies, syncDataCategories, syncDataFlows, syncDataSiloDependencies, syncDataSubject, syncEnricher, syncIdentifier, syncIntlMessages, syncPartitions, syncPolicies, syncPreferenceOptionValues, syncPreferenceTopics, syncPrivacyCenter, syncProcessingActivities, syncProcessingPurposes, syncPromptGroups, syncPromptPartials, syncPrompts, syncPurposes, syncRepositories, syncSoftwareDevelopmentKits, syncTeams, syncTemplate, syncVendors, syncWorkflowConfigs, transformPreferenceRecordToCsv, updateActionItem, updateActionItemCollection, updateAgentFiles, updateAgentFunctions, updateAgents, updateBusinessEntities, updateConsentManagerToLatest, updateDataCategories, updateDataFlows, updateIntlMessages, updateOrCreateCookies, updatePolicies, updateProcessingPurposes, updatePromptGroups, updatePromptPartials, updatePrompts, updateRepositories, updateSoftwareDevelopmentKits, updateTeam, updateVendors, uploadSiloDiscoveryResults, validateSombraVersion, withTransientRetry, workflowConfigInputLabel, workflowConfigMatchKey, workflowRegionListKey };
9686
10001
 
9687
10002
  //# sourceMappingURL=index.mjs.map