@transcend-io/sdk 1.2.5 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +249 -116
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +779 -202
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -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$
|
|
287
|
+
const PAGE_SIZE$41 = 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$
|
|
302
|
+
first: PAGE_SIZE$41,
|
|
303
303
|
offset
|
|
304
304
|
},
|
|
305
305
|
logger
|
|
306
306
|
});
|
|
307
307
|
businessEntities.push(...nodes);
|
|
308
|
-
offset += PAGE_SIZE$
|
|
309
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
308
|
+
offset += PAGE_SIZE$41;
|
|
309
|
+
shouldContinue = nodes.length === PAGE_SIZE$41;
|
|
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$
|
|
360
|
+
const PAGE_SIZE$40 = 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$
|
|
376
|
+
first: PAGE_SIZE$40,
|
|
377
377
|
offset
|
|
378
378
|
},
|
|
379
379
|
logger
|
|
380
380
|
});
|
|
381
381
|
dataSubCategories.push(...nodes);
|
|
382
|
-
offset += PAGE_SIZE$
|
|
383
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
382
|
+
offset += PAGE_SIZE$40;
|
|
383
|
+
shouldContinue = nodes.length === PAGE_SIZE$40;
|
|
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$
|
|
863
|
+
const PAGE_SIZE$39 = 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$
|
|
880
|
+
first: PAGE_SIZE$39,
|
|
881
881
|
offset
|
|
882
882
|
}
|
|
883
883
|
});
|
|
884
884
|
identifiers.push(...nodes);
|
|
885
|
-
offset += PAGE_SIZE$
|
|
886
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
885
|
+
offset += PAGE_SIZE$39;
|
|
886
|
+
shouldContinue = nodes.length === PAGE_SIZE$39;
|
|
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$
|
|
965
|
+
const PAGE_SIZE$38 = 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$
|
|
981
|
+
first: PAGE_SIZE$38,
|
|
982
982
|
offset
|
|
983
983
|
},
|
|
984
984
|
logger
|
|
985
985
|
});
|
|
986
986
|
processingActivities.push(...nodes);
|
|
987
|
-
offset += PAGE_SIZE$
|
|
988
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
987
|
+
offset += PAGE_SIZE$38;
|
|
988
|
+
shouldContinue = nodes.length === PAGE_SIZE$38;
|
|
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$
|
|
1053
|
+
const PAGE_SIZE$37 = 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$
|
|
1068
|
+
first: PAGE_SIZE$37,
|
|
1069
1069
|
offset
|
|
1070
1070
|
},
|
|
1071
1071
|
logger
|
|
1072
1072
|
});
|
|
1073
1073
|
vendors.push(...nodes);
|
|
1074
|
-
offset += PAGE_SIZE$
|
|
1075
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
1074
|
+
offset += PAGE_SIZE$37;
|
|
1075
|
+
shouldContinue = nodes.length === PAGE_SIZE$37;
|
|
1076
1076
|
} while (shouldContinue);
|
|
1077
1077
|
return vendors.sort((a, b) => a.title.localeCompare(b.title));
|
|
1078
1078
|
}
|
|
@@ -1521,7 +1521,7 @@ const PURPOSES$1 = parse(gql`
|
|
|
1521
1521
|
`);
|
|
1522
1522
|
//#endregion
|
|
1523
1523
|
//#region src/preference-management/fetchAllPurposes.ts
|
|
1524
|
-
const PAGE_SIZE$
|
|
1524
|
+
const PAGE_SIZE$36 = 20;
|
|
1525
1525
|
/**
|
|
1526
1526
|
* Fetch all purposes in the organization
|
|
1527
1527
|
*
|
|
@@ -1538,14 +1538,14 @@ async function fetchAllPurposes(client, options = {}) {
|
|
|
1538
1538
|
const { purposes: { nodes } } = await makeGraphQLRequest(client, PURPOSES$1, {
|
|
1539
1539
|
logger,
|
|
1540
1540
|
variables: {
|
|
1541
|
-
first: PAGE_SIZE$
|
|
1541
|
+
first: PAGE_SIZE$36,
|
|
1542
1542
|
offset,
|
|
1543
1543
|
input: { includeDeleted }
|
|
1544
1544
|
}
|
|
1545
1545
|
});
|
|
1546
1546
|
purposes.push(...nodes);
|
|
1547
|
-
offset += PAGE_SIZE$
|
|
1548
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
1547
|
+
offset += PAGE_SIZE$36;
|
|
1548
|
+
shouldContinue = nodes.length === PAGE_SIZE$36;
|
|
1549
1549
|
} while (shouldContinue);
|
|
1550
1550
|
return purposes.sort((a, b) => a.trackingType.localeCompare(b.trackingType));
|
|
1551
1551
|
}
|
|
@@ -1588,7 +1588,7 @@ const PREFERENCE_TOPICS = parse(gql`
|
|
|
1588
1588
|
`);
|
|
1589
1589
|
//#endregion
|
|
1590
1590
|
//#region src/preference-management/fetchAllPreferenceTopics.ts
|
|
1591
|
-
const PAGE_SIZE$
|
|
1591
|
+
const PAGE_SIZE$35 = 20;
|
|
1592
1592
|
/**
|
|
1593
1593
|
* Fetch all preference topics in the organization
|
|
1594
1594
|
*
|
|
@@ -1605,13 +1605,13 @@ async function fetchAllPreferenceTopics(client, options = {}) {
|
|
|
1605
1605
|
const { preferenceTopics: { nodes } } = await makeGraphQLRequest(client, PREFERENCE_TOPICS, {
|
|
1606
1606
|
logger,
|
|
1607
1607
|
variables: {
|
|
1608
|
-
first: PAGE_SIZE$
|
|
1608
|
+
first: PAGE_SIZE$35,
|
|
1609
1609
|
offset
|
|
1610
1610
|
}
|
|
1611
1611
|
});
|
|
1612
1612
|
preferenceTopics.push(...nodes);
|
|
1613
|
-
offset += PAGE_SIZE$
|
|
1614
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
1613
|
+
offset += PAGE_SIZE$35;
|
|
1614
|
+
shouldContinue = nodes.length === PAGE_SIZE$35;
|
|
1615
1615
|
} while (shouldContinue);
|
|
1616
1616
|
return preferenceTopics.sort((a, b) => `${a.slug}:${a.purpose.trackingType}`.localeCompare(`${b.slug}:${b.purpose.trackingType}`));
|
|
1617
1617
|
}
|
|
@@ -1689,12 +1689,43 @@ async function createPreferenceAccessTokens(client, options) {
|
|
|
1689
1689
|
/**
|
|
1690
1690
|
* New response codec for the query endpoint
|
|
1691
1691
|
*/
|
|
1692
|
-
const ConsentPreferenceResponse = t.intersection([t.type({ nodes: t.array(PreferenceQueryResponseItem) }), t.partial({
|
|
1692
|
+
const ConsentPreferenceResponse = t.intersection([t.type({ nodes: t.array(PreferenceQueryResponseItem) }), t.partial({
|
|
1693
|
+
/** Cursor for next page (opaque) */
|
|
1694
|
+
cursor: t.string })]);
|
|
1693
1695
|
//#endregion
|
|
1694
1696
|
//#region src/preference-management/codecs.ts
|
|
1695
1697
|
const PurposeRowMapping = t.type({
|
|
1698
|
+
/**
|
|
1699
|
+
* The slug or trackingType of the purpose to map to
|
|
1700
|
+
*
|
|
1701
|
+
* e.g. `Marketing`
|
|
1702
|
+
*/
|
|
1696
1703
|
purpose: t.string,
|
|
1704
|
+
/**
|
|
1705
|
+
* If the column maps to a preference instead of a purpose
|
|
1706
|
+
* this is the slug of the purpose.
|
|
1707
|
+
*
|
|
1708
|
+
* null value indicates that this column maps to the true/false
|
|
1709
|
+
* value of the purpose
|
|
1710
|
+
*/
|
|
1697
1711
|
preference: t.union([t.string, t.null]),
|
|
1712
|
+
/**
|
|
1713
|
+
* The mapping between each row value and purpose/preference value.
|
|
1714
|
+
*
|
|
1715
|
+
* e.g. for a boolean preference or purpose
|
|
1716
|
+
* {
|
|
1717
|
+
* 'true': true,
|
|
1718
|
+
* 'false': false,
|
|
1719
|
+
* '': true,
|
|
1720
|
+
* }
|
|
1721
|
+
*
|
|
1722
|
+
* or for a single or multi select preference
|
|
1723
|
+
* {
|
|
1724
|
+
* '': true,
|
|
1725
|
+
* 'value1': 'Value1',
|
|
1726
|
+
* 'value2': 'Value2',
|
|
1727
|
+
* }
|
|
1728
|
+
*/
|
|
1698
1729
|
valueMapping: t.record(t.string, t.union([
|
|
1699
1730
|
t.string,
|
|
1700
1731
|
t.boolean,
|
|
@@ -1709,7 +1740,9 @@ const PurposeRowMapping = t.type({
|
|
|
1709
1740
|
*/
|
|
1710
1741
|
const ColumnPurposeMap = t.record(t.string, PurposeRowMapping);
|
|
1711
1742
|
const IdentifierMetadataForPreference = t.type({
|
|
1743
|
+
/** The identifier name */
|
|
1712
1744
|
name: t.string,
|
|
1745
|
+
/** Is unique on preference store */
|
|
1713
1746
|
isUniqueOnPreferenceStore: t.boolean
|
|
1714
1747
|
});
|
|
1715
1748
|
/**
|
|
@@ -1718,20 +1751,41 @@ const IdentifierMetadataForPreference = t.type({
|
|
|
1718
1751
|
*/
|
|
1719
1752
|
const ColumnIdentifierMap = t.record(t.string, IdentifierMetadataForPreference);
|
|
1720
1753
|
/** Mapping of a CSV column to a metadata key in the preference store. */
|
|
1721
|
-
const MetadataMapping = t.type({
|
|
1754
|
+
const MetadataMapping = t.type({
|
|
1755
|
+
/** The metadata key name in the preference store */
|
|
1756
|
+
key: t.string });
|
|
1722
1757
|
/** Record mapping CSV column names to metadata keys. */
|
|
1723
1758
|
const ColumnMetadataMap = t.record(t.string, MetadataMapping);
|
|
1724
1759
|
const FileMetadataState = t.intersection([t.type({
|
|
1760
|
+
/**
|
|
1761
|
+
* Definition of how to map each column in the CSV to
|
|
1762
|
+
* the relevant purpose and preference definitions in transcend
|
|
1763
|
+
*/
|
|
1725
1764
|
columnToPurposeName: t.record(t.string, PurposeRowMapping),
|
|
1765
|
+
/** Last time the file was last parsed at */
|
|
1726
1766
|
lastFetchedAt: t.string,
|
|
1767
|
+
/**
|
|
1768
|
+
* Mapping of userId to the rows in the file that need to be uploaded
|
|
1769
|
+
* These uploads are overwriting non-existent preferences and are safe
|
|
1770
|
+
*/
|
|
1727
1771
|
pendingSafeUpdates: t.record(t.string, t.record(t.string, t.string)),
|
|
1772
|
+
/**
|
|
1773
|
+
* Mapping of userId to the rows in the file that need to be uploaded
|
|
1774
|
+
* these records have conflicts with existing consent preferences
|
|
1775
|
+
*/
|
|
1728
1776
|
pendingConflictUpdates: t.record(t.string, t.type({
|
|
1729
1777
|
record: PreferenceQueryResponseItem,
|
|
1730
1778
|
row: t.record(t.string, t.string)
|
|
1731
1779
|
})),
|
|
1780
|
+
/**
|
|
1781
|
+
* Mapping of userId to the rows in the file that can be skipped because
|
|
1782
|
+
* their preferences are already in the store
|
|
1783
|
+
*/
|
|
1732
1784
|
skippedUpdates: t.record(t.string, t.record(t.string, t.string))
|
|
1733
1785
|
}), t.partial({
|
|
1786
|
+
/** Determine which column name in file maps to consent record identifier to upload on */
|
|
1734
1787
|
identifierColumn: t.string,
|
|
1788
|
+
/** Determine which column name in file maps to the timestamp */
|
|
1735
1789
|
timestampColum: t.string
|
|
1736
1790
|
})]);
|
|
1737
1791
|
/**
|
|
@@ -1741,12 +1795,18 @@ const FileMetadataState = t.intersection([t.type({
|
|
|
1741
1795
|
* describes how columns map to identifiers, purposes, timestamps, and metadata.
|
|
1742
1796
|
*/
|
|
1743
1797
|
const FileFormatState = t.intersection([t.type({
|
|
1798
|
+
/** Maps each CSV column to its purpose/preference definition in Transcend */
|
|
1744
1799
|
columnToPurposeName: ColumnPurposeMap,
|
|
1800
|
+
/** ISO 8601 timestamp of when this config was last generated or refreshed */
|
|
1745
1801
|
lastFetchedAt: t.string,
|
|
1802
|
+
/** Maps each CSV column to the identifier it represents (e.g. email, userId) */
|
|
1746
1803
|
columnToIdentifier: ColumnIdentifierMap
|
|
1747
1804
|
}), t.partial({
|
|
1805
|
+
/** CSV column whose values contain the consent timestamp */
|
|
1748
1806
|
timestampColumn: t.string,
|
|
1807
|
+
/** Maps CSV columns to metadata keys stored alongside the preference record */
|
|
1749
1808
|
columnToMetadata: ColumnMetadataMap,
|
|
1809
|
+
/** CSV columns that should be skipped during upload */
|
|
1750
1810
|
columnsToIgnore: t.array(t.string)
|
|
1751
1811
|
})]);
|
|
1752
1812
|
/**
|
|
@@ -1768,8 +1828,11 @@ const PendingSafePreferenceUpdates = t.record(t.string, t.union([t.boolean, t.re
|
|
|
1768
1828
|
* These are the updates that failed to be uploaded to the API.
|
|
1769
1829
|
*/
|
|
1770
1830
|
const FailingPreferenceUpdates = t.record(t.string, t.type({
|
|
1831
|
+
/** Time upload ran at */
|
|
1771
1832
|
uploadedAt: t.string,
|
|
1833
|
+
/** Attempts to upload that resulted in an error */
|
|
1772
1834
|
error: t.string,
|
|
1835
|
+
/** The update body */
|
|
1773
1836
|
update: PreferenceUpdateItem
|
|
1774
1837
|
}));
|
|
1775
1838
|
/**
|
|
@@ -1779,7 +1842,9 @@ const FailingPreferenceUpdates = t.record(t.string, t.type({
|
|
|
1779
1842
|
* The value is the row in the file that is pending upload.
|
|
1780
1843
|
*/
|
|
1781
1844
|
const PendingWithConflictPreferenceUpdates = t.record(t.string, t.type({
|
|
1845
|
+
/** Record to be inserted to transcend v1/preferences API */
|
|
1782
1846
|
record: PreferenceQueryResponseItem,
|
|
1847
|
+
/** The row in the file that is pending upload */
|
|
1783
1848
|
row: t.record(t.string, t.string)
|
|
1784
1849
|
}));
|
|
1785
1850
|
/**
|
|
@@ -1793,37 +1858,74 @@ const PendingWithConflictPreferenceUpdates = t.record(t.string, t.type({
|
|
|
1793
1858
|
const SkippedPreferenceUpdates = t.record(t.string, t.record(t.string, t.string));
|
|
1794
1859
|
/** Persist this data between runs of the script */
|
|
1795
1860
|
const PreferenceState = t.type({
|
|
1861
|
+
/**
|
|
1862
|
+
* Store a cache of previous files read in
|
|
1863
|
+
*/
|
|
1796
1864
|
fileMetadata: t.record(t.string, FileMetadataState),
|
|
1865
|
+
/**
|
|
1866
|
+
* The set of successful uploads to Transcend
|
|
1867
|
+
* Mapping from userId to the upload metadata
|
|
1868
|
+
*/
|
|
1797
1869
|
failingUpdates: t.record(t.string, t.type({
|
|
1870
|
+
/** Time upload ran at */
|
|
1798
1871
|
uploadedAt: t.string,
|
|
1872
|
+
/** Attempts to upload that resulted in an error */
|
|
1799
1873
|
error: t.string,
|
|
1874
|
+
/** The update body */
|
|
1800
1875
|
update: PreferenceUpdateItem
|
|
1801
1876
|
})),
|
|
1877
|
+
/**
|
|
1878
|
+
* The set of pending uploads to Transcend
|
|
1879
|
+
* Mapping from userId to the upload metadata
|
|
1880
|
+
*/
|
|
1802
1881
|
pendingUpdates: t.record(t.string, PreferenceUpdateItem)
|
|
1803
1882
|
});
|
|
1804
1883
|
const RequestUploadReceipts = t.type({
|
|
1884
|
+
/** ISO 8601 timestamp of when the receipt file was last written */
|
|
1805
1885
|
lastFetchedAt: t.string,
|
|
1886
|
+
/** Updates that can be applied without conflicting with existing preferences */
|
|
1806
1887
|
pendingSafeUpdates: PendingSafePreferenceUpdates,
|
|
1888
|
+
/** Updates that conflict with existing preference values and need review */
|
|
1807
1889
|
pendingConflictUpdates: PendingWithConflictPreferenceUpdates,
|
|
1890
|
+
/** Rows skipped because their preferences already match the store */
|
|
1808
1891
|
skippedUpdates: SkippedPreferenceUpdates,
|
|
1892
|
+
/** Updates that were attempted but failed with an API error */
|
|
1809
1893
|
failingUpdates: FailingPreferenceUpdates,
|
|
1894
|
+
/** Updates still queued to be sent to the API */
|
|
1810
1895
|
pendingUpdates: PreferenceUpdateMap,
|
|
1896
|
+
/** Updates that have been successfully written to the preference store */
|
|
1811
1897
|
successfulUpdates: PreferenceUpdateMap
|
|
1812
1898
|
});
|
|
1813
|
-
const DeletePreferenceRecordsInput = t.type({
|
|
1899
|
+
const DeletePreferenceRecordsInput = t.type({
|
|
1900
|
+
/** Array of consent preference records to delete */
|
|
1901
|
+
records: t.array(t.type({
|
|
1902
|
+
/** The anchor identifier to locate the consent record */
|
|
1814
1903
|
anchorIdentifier: PreferenceStoreIdentifier,
|
|
1904
|
+
/** The ISO 8601 timestamp of when the deletion is requested */
|
|
1815
1905
|
timestamp: t.string
|
|
1816
1906
|
})) });
|
|
1817
1907
|
const DeletePreferenceRecordsResponse = t.intersection([t.type({
|
|
1818
|
-
|
|
1908
|
+
/** Array of results for each preference record deletion */
|
|
1909
|
+
records: t.array(t.intersection([t.type({
|
|
1910
|
+
/** Whether the deletion was successful */
|
|
1911
|
+
success: t.boolean }), t.partial({
|
|
1912
|
+
/** An error message if the deletion failed */
|
|
1913
|
+
errorMessage: t.string })])),
|
|
1914
|
+
/** The list of failed deletions with their respective errors */
|
|
1819
1915
|
failures: t.array(t.type({
|
|
1916
|
+
/** The index of the failed update in the original request */
|
|
1820
1917
|
index: t.number,
|
|
1918
|
+
/** The error message associated with the failure */
|
|
1821
1919
|
error: t.string
|
|
1822
1920
|
}))
|
|
1823
|
-
}), t.partial({
|
|
1921
|
+
}), t.partial({
|
|
1922
|
+
/** Any general errors that occurred during the operation */
|
|
1923
|
+
errors: t.array(t.string) })]);
|
|
1824
1924
|
/** CLI CSV Row for deleting preference records */
|
|
1825
1925
|
const DeletePreferenceRecordCliCsvRow = t.type({
|
|
1926
|
+
/** The name of the identifier type (e.g., email, userId) */
|
|
1826
1927
|
name: t.string,
|
|
1928
|
+
/** The value of the identifier */
|
|
1827
1929
|
value: t.string
|
|
1828
1930
|
});
|
|
1829
1931
|
//#endregion
|
|
@@ -2696,7 +2798,7 @@ const SET_RESOURCE_ATTRIBUTES = gql`
|
|
|
2696
2798
|
`;
|
|
2697
2799
|
//#endregion
|
|
2698
2800
|
//#region src/administration/fetchAllAttributes.ts
|
|
2699
|
-
const PAGE_SIZE$
|
|
2801
|
+
const PAGE_SIZE$34 = 100;
|
|
2700
2802
|
/**
|
|
2701
2803
|
* Fetch all attribute values for an attribute key
|
|
2702
2804
|
*
|
|
@@ -2712,15 +2814,15 @@ async function fetchAllAttributeValues(client, options) {
|
|
|
2712
2814
|
do {
|
|
2713
2815
|
const { attributeValues: { nodes } } = await makeGraphQLRequest(client, ATTRIBUTE_VALUES, {
|
|
2714
2816
|
variables: {
|
|
2715
|
-
first: PAGE_SIZE$
|
|
2817
|
+
first: PAGE_SIZE$34,
|
|
2716
2818
|
offset,
|
|
2717
2819
|
attributeKeyId
|
|
2718
2820
|
},
|
|
2719
2821
|
logger
|
|
2720
2822
|
});
|
|
2721
2823
|
attributeValues.push(...nodes);
|
|
2722
|
-
offset += PAGE_SIZE$
|
|
2723
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
2824
|
+
offset += PAGE_SIZE$34;
|
|
2825
|
+
shouldContinue = nodes.length === PAGE_SIZE$34;
|
|
2724
2826
|
} while (shouldContinue);
|
|
2725
2827
|
return attributeValues.sort((a, b) => a.name.localeCompare(b.name));
|
|
2726
2828
|
}
|
|
@@ -2739,7 +2841,7 @@ async function fetchAllAttributes(client, options = {}) {
|
|
|
2739
2841
|
do {
|
|
2740
2842
|
const { attributeKeys: { nodes } } = await makeGraphQLRequest(client, ATTRIBUTES, {
|
|
2741
2843
|
variables: {
|
|
2742
|
-
first: PAGE_SIZE$
|
|
2844
|
+
first: PAGE_SIZE$34,
|
|
2743
2845
|
offset
|
|
2744
2846
|
},
|
|
2745
2847
|
logger
|
|
@@ -2751,8 +2853,8 @@ async function fetchAllAttributes(client, options = {}) {
|
|
|
2751
2853
|
filterBy: { attributeKeyId: node.id }
|
|
2752
2854
|
}) : []
|
|
2753
2855
|
}))));
|
|
2754
|
-
offset += PAGE_SIZE$
|
|
2755
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
2856
|
+
offset += PAGE_SIZE$34;
|
|
2857
|
+
shouldContinue = nodes.length === PAGE_SIZE$34;
|
|
2756
2858
|
} while (shouldContinue);
|
|
2757
2859
|
return attributes.sort((a, b) => a.name.localeCompare(b.name));
|
|
2758
2860
|
}
|
|
@@ -2869,7 +2971,7 @@ const UPDATE_TEAM = gql`
|
|
|
2869
2971
|
`;
|
|
2870
2972
|
//#endregion
|
|
2871
2973
|
//#region src/administration/fetchAllTeams.ts
|
|
2872
|
-
const PAGE_SIZE$
|
|
2974
|
+
const PAGE_SIZE$33 = 20;
|
|
2873
2975
|
/**
|
|
2874
2976
|
* Fetch all teams in the organization
|
|
2875
2977
|
*
|
|
@@ -2885,20 +2987,20 @@ async function fetchAllTeams(client, options = {}) {
|
|
|
2885
2987
|
do {
|
|
2886
2988
|
const { teams: { nodes } } = await makeGraphQLRequest(client, TEAMS, {
|
|
2887
2989
|
variables: {
|
|
2888
|
-
first: PAGE_SIZE$
|
|
2990
|
+
first: PAGE_SIZE$33,
|
|
2889
2991
|
offset
|
|
2890
2992
|
},
|
|
2891
2993
|
logger
|
|
2892
2994
|
});
|
|
2893
2995
|
teams.push(...nodes);
|
|
2894
|
-
offset += PAGE_SIZE$
|
|
2895
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
2996
|
+
offset += PAGE_SIZE$33;
|
|
2997
|
+
shouldContinue = nodes.length === PAGE_SIZE$33;
|
|
2896
2998
|
} while (shouldContinue);
|
|
2897
2999
|
return teams.sort((a, b) => a.name.localeCompare(b.name));
|
|
2898
3000
|
}
|
|
2899
3001
|
//#endregion
|
|
2900
3002
|
//#region src/administration/fetchParentOrganizationTeams.ts
|
|
2901
|
-
const PAGE_SIZE$
|
|
3003
|
+
const PAGE_SIZE$32 = 20;
|
|
2902
3004
|
/**
|
|
2903
3005
|
* Fetch teams from the parent organization that can be linked to child-org teams
|
|
2904
3006
|
*
|
|
@@ -2914,15 +3016,15 @@ async function fetchParentOrganizationTeams(client, options = {}) {
|
|
|
2914
3016
|
do {
|
|
2915
3017
|
const { parentOrganizationTeams: { nodes } } = await makeGraphQLRequest(client, PARENT_ORGANIZATION_TEAMS, {
|
|
2916
3018
|
variables: {
|
|
2917
|
-
first: PAGE_SIZE$
|
|
3019
|
+
first: PAGE_SIZE$32,
|
|
2918
3020
|
offset,
|
|
2919
3021
|
filterBy
|
|
2920
3022
|
},
|
|
2921
3023
|
logger
|
|
2922
3024
|
});
|
|
2923
3025
|
teams.push(...nodes);
|
|
2924
|
-
offset += PAGE_SIZE$
|
|
2925
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
3026
|
+
offset += PAGE_SIZE$32;
|
|
3027
|
+
shouldContinue = nodes.length === PAGE_SIZE$32;
|
|
2926
3028
|
} while (shouldContinue);
|
|
2927
3029
|
return teams.sort((a, b) => a.name.localeCompare(b.name));
|
|
2928
3030
|
}
|
|
@@ -2968,7 +3070,7 @@ const USERS = gql`
|
|
|
2968
3070
|
`;
|
|
2969
3071
|
//#endregion
|
|
2970
3072
|
//#region src/administration/fetchAllUsers.ts
|
|
2971
|
-
const PAGE_SIZE$
|
|
3073
|
+
const PAGE_SIZE$31 = 20;
|
|
2972
3074
|
/**
|
|
2973
3075
|
* Fetch all users in the organization
|
|
2974
3076
|
*
|
|
@@ -2984,14 +3086,14 @@ async function fetchAllUsers(client, options = {}) {
|
|
|
2984
3086
|
do {
|
|
2985
3087
|
const { users: { nodes } } = await makeGraphQLRequest(client, USERS, {
|
|
2986
3088
|
variables: {
|
|
2987
|
-
first: PAGE_SIZE$
|
|
3089
|
+
first: PAGE_SIZE$31,
|
|
2988
3090
|
offset
|
|
2989
3091
|
},
|
|
2990
3092
|
logger
|
|
2991
3093
|
});
|
|
2992
3094
|
users.push(...nodes);
|
|
2993
|
-
offset += PAGE_SIZE$
|
|
2994
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
3095
|
+
offset += PAGE_SIZE$31;
|
|
3096
|
+
shouldContinue = nodes.length === PAGE_SIZE$31;
|
|
2995
3097
|
} while (shouldContinue);
|
|
2996
3098
|
return users.sort((a, b) => a.email.localeCompare(b.email));
|
|
2997
3099
|
}
|
|
@@ -3033,7 +3135,7 @@ const DELETE_API_KEY = gql`
|
|
|
3033
3135
|
`;
|
|
3034
3136
|
//#endregion
|
|
3035
3137
|
//#region src/administration/fetchApiKeys.ts
|
|
3036
|
-
const PAGE_SIZE$
|
|
3138
|
+
const PAGE_SIZE$30 = 20;
|
|
3037
3139
|
const ADMIN_LINK = "https://app.transcend.io/infrastructure/api-keys";
|
|
3038
3140
|
/**
|
|
3039
3141
|
* Fetch all API keys in an organization
|
|
@@ -3050,15 +3152,15 @@ async function fetchAllApiKeys(client, options = {}) {
|
|
|
3050
3152
|
do {
|
|
3051
3153
|
const { apiKeys: { nodes } } = await makeGraphQLRequest(client, API_KEYS, {
|
|
3052
3154
|
variables: {
|
|
3053
|
-
first: PAGE_SIZE$
|
|
3155
|
+
first: PAGE_SIZE$30,
|
|
3054
3156
|
offset,
|
|
3055
3157
|
titles
|
|
3056
3158
|
},
|
|
3057
3159
|
logger
|
|
3058
3160
|
});
|
|
3059
3161
|
apiKeys.push(...nodes);
|
|
3060
|
-
offset += PAGE_SIZE$
|
|
3061
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
3162
|
+
offset += PAGE_SIZE$30;
|
|
3163
|
+
shouldContinue = nodes.length === PAGE_SIZE$30;
|
|
3062
3164
|
} while (shouldContinue);
|
|
3063
3165
|
return apiKeys.sort((a, b) => a.title.localeCompare(b.title));
|
|
3064
3166
|
}
|
|
@@ -3643,6 +3745,264 @@ const UPDATE_CONSENT_MANAGER_THEME = gql`
|
|
|
3643
3745
|
}
|
|
3644
3746
|
}
|
|
3645
3747
|
`;
|
|
3748
|
+
const FETCH_CONSENT_UI_VARIANTS = gql`
|
|
3749
|
+
query TranscendCliConsentUiVariants($airgapBundleId: ID!, $first: Int!, $offset: Int!) {
|
|
3750
|
+
consentUiVariants(input: { airgapBundleId: $airgapBundleId }, first: $first, offset: $offset) {
|
|
3751
|
+
totalCount
|
|
3752
|
+
nodes {
|
|
3753
|
+
id
|
|
3754
|
+
name
|
|
3755
|
+
slug
|
|
3756
|
+
description
|
|
3757
|
+
status
|
|
3758
|
+
locales
|
|
3759
|
+
configuration {
|
|
3760
|
+
firstLayerConfig {
|
|
3761
|
+
showCloseButton
|
|
3762
|
+
alphaMask
|
|
3763
|
+
footer {
|
|
3764
|
+
showTranscendBadge
|
|
3765
|
+
showGpcDetected
|
|
3766
|
+
showLocalePicker
|
|
3767
|
+
}
|
|
3768
|
+
links
|
|
3769
|
+
buttons {
|
|
3770
|
+
type
|
|
3771
|
+
action
|
|
3772
|
+
}
|
|
3773
|
+
showHeader
|
|
3774
|
+
}
|
|
3775
|
+
secondLayerConfig {
|
|
3776
|
+
showCloseButton
|
|
3777
|
+
alphaMask
|
|
3778
|
+
footer {
|
|
3779
|
+
showTranscendBadge
|
|
3780
|
+
showGpcDetected
|
|
3781
|
+
showLocalePicker
|
|
3782
|
+
}
|
|
3783
|
+
links
|
|
3784
|
+
buttons {
|
|
3785
|
+
type
|
|
3786
|
+
action
|
|
3787
|
+
}
|
|
3788
|
+
showBulkActions
|
|
3789
|
+
closeAfterBulkAction
|
|
3790
|
+
showPurposeDescriptions
|
|
3791
|
+
showToggleText
|
|
3792
|
+
showToggleIcon
|
|
3793
|
+
}
|
|
3794
|
+
defaultLocale
|
|
3795
|
+
}
|
|
3796
|
+
theme {
|
|
3797
|
+
id
|
|
3798
|
+
slug
|
|
3799
|
+
}
|
|
3800
|
+
userFlow
|
|
3801
|
+
}
|
|
3802
|
+
}
|
|
3803
|
+
}
|
|
3804
|
+
`;
|
|
3805
|
+
const FETCH_CONSENT_UI_THEMES = gql`
|
|
3806
|
+
query TranscendCliConsentUiThemes($airgapBundleId: ID!, $first: Int!, $offset: Int!) {
|
|
3807
|
+
consentUiThemes(input: { airgapBundleId: $airgapBundleId }, first: $first, offset: $offset) {
|
|
3808
|
+
totalCount
|
|
3809
|
+
nodes {
|
|
3810
|
+
id
|
|
3811
|
+
name
|
|
3812
|
+
slug
|
|
3813
|
+
configuration {
|
|
3814
|
+
buttonThemes {
|
|
3815
|
+
backgroundColor
|
|
3816
|
+
backgroundHoverColor
|
|
3817
|
+
textColor
|
|
3818
|
+
textHoverColor
|
|
3819
|
+
borderRadius
|
|
3820
|
+
borderColor
|
|
3821
|
+
borderHoverColor
|
|
3822
|
+
linkColor
|
|
3823
|
+
linkHoverColor
|
|
3824
|
+
linkUnderline
|
|
3825
|
+
}
|
|
3826
|
+
firstLayer {
|
|
3827
|
+
alwaysShowScrollbar
|
|
3828
|
+
background {
|
|
3829
|
+
backgroundColor
|
|
3830
|
+
}
|
|
3831
|
+
buttons
|
|
3832
|
+
closeButton {
|
|
3833
|
+
backgroundColor
|
|
3834
|
+
backgroundHoverColor
|
|
3835
|
+
borderRadius
|
|
3836
|
+
borderColor
|
|
3837
|
+
borderHoverColor
|
|
3838
|
+
iconColor
|
|
3839
|
+
iconHoverColor
|
|
3840
|
+
}
|
|
3841
|
+
container {
|
|
3842
|
+
backgroundColor
|
|
3843
|
+
borderRadius
|
|
3844
|
+
borderColor
|
|
3845
|
+
}
|
|
3846
|
+
contentFlow
|
|
3847
|
+
contentLayout {
|
|
3848
|
+
breakpoint {
|
|
3849
|
+
value
|
|
3850
|
+
unit
|
|
3851
|
+
}
|
|
3852
|
+
maxWidths {
|
|
3853
|
+
flow
|
|
3854
|
+
width
|
|
3855
|
+
}
|
|
3856
|
+
fullWidth
|
|
3857
|
+
}
|
|
3858
|
+
cookieAndPrivacyPolicy {
|
|
3859
|
+
linkColor
|
|
3860
|
+
linkUnderline
|
|
3861
|
+
}
|
|
3862
|
+
poweredByTranscend {
|
|
3863
|
+
linkColor
|
|
3864
|
+
}
|
|
3865
|
+
description {
|
|
3866
|
+
textColor
|
|
3867
|
+
linkColor
|
|
3868
|
+
linkUnderline
|
|
3869
|
+
}
|
|
3870
|
+
footer {
|
|
3871
|
+
backgroundColor
|
|
3872
|
+
localePickerColor
|
|
3873
|
+
}
|
|
3874
|
+
header {
|
|
3875
|
+
textColor
|
|
3876
|
+
logoPosition
|
|
3877
|
+
logoImageUrl
|
|
3878
|
+
}
|
|
3879
|
+
horizontalAlign
|
|
3880
|
+
verticalAlign
|
|
3881
|
+
}
|
|
3882
|
+
secondLayer {
|
|
3883
|
+
alwaysOnText {
|
|
3884
|
+
textColor
|
|
3885
|
+
}
|
|
3886
|
+
alwaysShowScrollbar
|
|
3887
|
+
background {
|
|
3888
|
+
backgroundColor
|
|
3889
|
+
}
|
|
3890
|
+
bulkActionButtons
|
|
3891
|
+
buttons
|
|
3892
|
+
cardTitle {
|
|
3893
|
+
textColor
|
|
3894
|
+
}
|
|
3895
|
+
caretIcon {
|
|
3896
|
+
iconColor
|
|
3897
|
+
}
|
|
3898
|
+
closeButton {
|
|
3899
|
+
backgroundColor
|
|
3900
|
+
backgroundHoverColor
|
|
3901
|
+
borderColor
|
|
3902
|
+
borderHoverColor
|
|
3903
|
+
borderRadius
|
|
3904
|
+
iconColor
|
|
3905
|
+
iconHoverColor
|
|
3906
|
+
}
|
|
3907
|
+
container {
|
|
3908
|
+
backgroundColor
|
|
3909
|
+
borderRadius
|
|
3910
|
+
borderColor
|
|
3911
|
+
}
|
|
3912
|
+
cookieAndPrivacyPolicy {
|
|
3913
|
+
linkColor
|
|
3914
|
+
linkUnderline
|
|
3915
|
+
}
|
|
3916
|
+
poweredByTranscend {
|
|
3917
|
+
linkColor
|
|
3918
|
+
}
|
|
3919
|
+
description {
|
|
3920
|
+
textColor
|
|
3921
|
+
linkColor
|
|
3922
|
+
linkUnderline
|
|
3923
|
+
}
|
|
3924
|
+
footer {
|
|
3925
|
+
backgroundColor
|
|
3926
|
+
localePickerColor
|
|
3927
|
+
}
|
|
3928
|
+
header {
|
|
3929
|
+
logoImageUrl
|
|
3930
|
+
logoPosition
|
|
3931
|
+
textColor
|
|
3932
|
+
}
|
|
3933
|
+
horizontalAlign
|
|
3934
|
+
lockToEdges
|
|
3935
|
+
maxWidth
|
|
3936
|
+
modalSubtitle {
|
|
3937
|
+
textColor
|
|
3938
|
+
}
|
|
3939
|
+
modalTitle {
|
|
3940
|
+
textColor
|
|
3941
|
+
}
|
|
3942
|
+
purposeCard {
|
|
3943
|
+
backgroundColor
|
|
3944
|
+
borderRadius
|
|
3945
|
+
borderColor
|
|
3946
|
+
}
|
|
3947
|
+
purposeDescription {
|
|
3948
|
+
textColor
|
|
3949
|
+
linkColor
|
|
3950
|
+
linkUnderline
|
|
3951
|
+
}
|
|
3952
|
+
purposeListTitle {
|
|
3953
|
+
textColor
|
|
3954
|
+
}
|
|
3955
|
+
shrinkToFullWidth
|
|
3956
|
+
toggle {
|
|
3957
|
+
textColor
|
|
3958
|
+
iconColor
|
|
3959
|
+
enabledColor
|
|
3960
|
+
disabledColor
|
|
3961
|
+
knobColor
|
|
3962
|
+
}
|
|
3963
|
+
}
|
|
3964
|
+
}
|
|
3965
|
+
}
|
|
3966
|
+
}
|
|
3967
|
+
}
|
|
3968
|
+
`;
|
|
3969
|
+
const CREATE_CONSENT_UI_VARIANT = gql`
|
|
3970
|
+
mutation TranscendCliCreateConsentUiVariant($input: CreateConsentUiVariantInput!) {
|
|
3971
|
+
createConsentUiVariant(input: $input) {
|
|
3972
|
+
consentUiVariant {
|
|
3973
|
+
id
|
|
3974
|
+
}
|
|
3975
|
+
}
|
|
3976
|
+
}
|
|
3977
|
+
`;
|
|
3978
|
+
const UPDATE_CONSENT_UI_VARIANT = gql`
|
|
3979
|
+
mutation TranscendCliUpdateConsentUiVariant($input: UpdateConsentUiVariantInput!) {
|
|
3980
|
+
updateConsentUiVariant(input: $input) {
|
|
3981
|
+
consentUiVariant {
|
|
3982
|
+
id
|
|
3983
|
+
}
|
|
3984
|
+
}
|
|
3985
|
+
}
|
|
3986
|
+
`;
|
|
3987
|
+
const CREATE_CONSENT_UI_THEME = gql`
|
|
3988
|
+
mutation TranscendCliCreateConsentUiTheme($input: CreateConsentUiThemeInput!) {
|
|
3989
|
+
createConsentUiTheme(input: $input) {
|
|
3990
|
+
consentUiTheme {
|
|
3991
|
+
id
|
|
3992
|
+
name
|
|
3993
|
+
}
|
|
3994
|
+
}
|
|
3995
|
+
}
|
|
3996
|
+
`;
|
|
3997
|
+
const UPDATE_CONSENT_UI_THEME = gql`
|
|
3998
|
+
mutation TranscendCliUpdateConsentUiTheme($input: UpdateConsentUiThemeInput!) {
|
|
3999
|
+
updateConsentUiTheme(input: $input) {
|
|
4000
|
+
consentUiTheme {
|
|
4001
|
+
id
|
|
4002
|
+
}
|
|
4003
|
+
}
|
|
4004
|
+
}
|
|
4005
|
+
`;
|
|
3646
4006
|
//#endregion
|
|
3647
4007
|
//#region src/consent/deployConsentManager.ts
|
|
3648
4008
|
/**
|
|
@@ -3678,81 +4038,8 @@ async function updateConsentManagerToLatest(client, options) {
|
|
|
3678
4038
|
});
|
|
3679
4039
|
}
|
|
3680
4040
|
//#endregion
|
|
3681
|
-
//#region src/consent/gqls/consentManagerMetrics.ts
|
|
3682
|
-
const CONSENT_MANAGER_ANALYTICS_DATA = gql`
|
|
3683
|
-
query TranscendCliConsentManagerAnalyticsData($input: AnalyticsInput!) {
|
|
3684
|
-
analyticsData(input: $input) {
|
|
3685
|
-
series {
|
|
3686
|
-
name
|
|
3687
|
-
points {
|
|
3688
|
-
key
|
|
3689
|
-
value
|
|
3690
|
-
}
|
|
3691
|
-
}
|
|
3692
|
-
}
|
|
3693
|
-
}
|
|
3694
|
-
`;
|
|
3695
|
-
//#endregion
|
|
3696
|
-
//#region src/consent/gqls/experiences.ts
|
|
3697
|
-
const EXPERIENCES = gql`
|
|
3698
|
-
query TranscendCliExperiences($first: Int!, $offset: Int!) {
|
|
3699
|
-
experiences(first: $first, offset: $offset, useMaster: false) {
|
|
3700
|
-
totalCount
|
|
3701
|
-
nodes {
|
|
3702
|
-
id
|
|
3703
|
-
name
|
|
3704
|
-
displayName
|
|
3705
|
-
regions {
|
|
3706
|
-
countrySubDivision
|
|
3707
|
-
country
|
|
3708
|
-
}
|
|
3709
|
-
operator
|
|
3710
|
-
displayPriority
|
|
3711
|
-
onConsentExpiry
|
|
3712
|
-
consentExpiry
|
|
3713
|
-
viewState
|
|
3714
|
-
purposes {
|
|
3715
|
-
name
|
|
3716
|
-
trackingType
|
|
3717
|
-
}
|
|
3718
|
-
optedOutPurposes {
|
|
3719
|
-
name
|
|
3720
|
-
trackingType
|
|
3721
|
-
}
|
|
3722
|
-
browserLanguages
|
|
3723
|
-
browserTimeZones
|
|
3724
|
-
}
|
|
3725
|
-
}
|
|
3726
|
-
}
|
|
3727
|
-
`;
|
|
3728
|
-
const UPDATE_CONSENT_EXPERIENCE = gql`
|
|
3729
|
-
mutation TranscendCliUpdateConsentExperience($input: UpdateExperienceInput!) {
|
|
3730
|
-
updateExperience(input: $input) {
|
|
3731
|
-
clientMutationId
|
|
3732
|
-
}
|
|
3733
|
-
}
|
|
3734
|
-
`;
|
|
3735
|
-
const CREATE_CONSENT_EXPERIENCE = gql`
|
|
3736
|
-
mutation TranscendCliCreateConsentExperience($input: CreateExperienceInput!) {
|
|
3737
|
-
createExperience(input: $input) {
|
|
3738
|
-
clientMutationId
|
|
3739
|
-
}
|
|
3740
|
-
}
|
|
3741
|
-
`;
|
|
3742
|
-
//#endregion
|
|
3743
4041
|
//#region src/consent/fetchConsentManagerId.ts
|
|
3744
4042
|
/**
|
|
3745
|
-
* Fetch consent manager
|
|
3746
|
-
*
|
|
3747
|
-
* @param client - GraphQL client
|
|
3748
|
-
* @param options - Options
|
|
3749
|
-
* @returns Consent manager ID in organization
|
|
3750
|
-
*/
|
|
3751
|
-
async function fetchConsentManager(client, options = {}) {
|
|
3752
|
-
const { consentManager: { consentManager } } = await makeGraphQLRequest(client, FETCH_CONSENT_MANAGER, { logger: options.logger });
|
|
3753
|
-
return consentManager;
|
|
3754
|
-
}
|
|
3755
|
-
/**
|
|
3756
4043
|
* Fetch consent manager ID
|
|
3757
4044
|
*
|
|
3758
4045
|
* @param client - GraphQL client
|
|
@@ -3766,62 +4053,6 @@ async function fetchConsentManagerId(client, options = {}) {
|
|
|
3766
4053
|
});
|
|
3767
4054
|
return consentManager.id;
|
|
3768
4055
|
}
|
|
3769
|
-
const PAGE_SIZE$27 = 50;
|
|
3770
|
-
/**
|
|
3771
|
-
* Fetch consent manager experiences
|
|
3772
|
-
*
|
|
3773
|
-
* @param client - GraphQL client
|
|
3774
|
-
* @param options - Options
|
|
3775
|
-
* @returns Consent manager experiences in the organization
|
|
3776
|
-
*/
|
|
3777
|
-
async function fetchConsentManagerExperiences(client, options = {}) {
|
|
3778
|
-
const experiences = [];
|
|
3779
|
-
let offset = 0;
|
|
3780
|
-
let shouldContinue = false;
|
|
3781
|
-
do {
|
|
3782
|
-
const { experiences: { nodes } } = await makeGraphQLRequest(client, EXPERIENCES, {
|
|
3783
|
-
variables: {
|
|
3784
|
-
first: PAGE_SIZE$27,
|
|
3785
|
-
offset
|
|
3786
|
-
},
|
|
3787
|
-
logger: options.logger
|
|
3788
|
-
});
|
|
3789
|
-
experiences.push(...nodes);
|
|
3790
|
-
offset += PAGE_SIZE$27;
|
|
3791
|
-
shouldContinue = nodes.length === PAGE_SIZE$27;
|
|
3792
|
-
} while (shouldContinue);
|
|
3793
|
-
return experiences.sort((a, b) => a.name.localeCompare(b.name));
|
|
3794
|
-
}
|
|
3795
|
-
/**
|
|
3796
|
-
* Fetch consent manager analytics data
|
|
3797
|
-
*
|
|
3798
|
-
* @param client - GraphQL client
|
|
3799
|
-
* @param input - Input for fetching data
|
|
3800
|
-
* @param options - Options
|
|
3801
|
-
* @returns Consent manager purposes in the organization
|
|
3802
|
-
*/
|
|
3803
|
-
async function fetchConsentManagerAnalyticsData(client, input, options = {}) {
|
|
3804
|
-
const { analyticsData: { series } } = await makeGraphQLRequest(client, CONSENT_MANAGER_ANALYTICS_DATA, {
|
|
3805
|
-
variables: { input },
|
|
3806
|
-
logger: options.logger
|
|
3807
|
-
});
|
|
3808
|
-
return series;
|
|
3809
|
-
}
|
|
3810
|
-
/**
|
|
3811
|
-
* Fetch consent manager theme
|
|
3812
|
-
*
|
|
3813
|
-
* @param client - GraphQL client
|
|
3814
|
-
* @param airgapBundleId - Airgap bundle ID to fetch for
|
|
3815
|
-
* @param options - Options
|
|
3816
|
-
* @returns Consent manager ID in organization
|
|
3817
|
-
*/
|
|
3818
|
-
async function fetchConsentManagerTheme(client, options) {
|
|
3819
|
-
const { consentManagerTheme: { theme } } = await makeGraphQLRequest(client, FETCH_CONSENT_MANAGER_THEME, {
|
|
3820
|
-
variables: { airgapBundleId: options.filterBy.airgapBundleId },
|
|
3821
|
-
logger: options.logger
|
|
3822
|
-
});
|
|
3823
|
-
return theme;
|
|
3824
|
-
}
|
|
3825
4056
|
//#endregion
|
|
3826
4057
|
//#region src/consent/gqls/shared.ts
|
|
3827
4058
|
/** Service fields shared by cookies and data flows */
|
|
@@ -3904,7 +4135,7 @@ const DELETE_COOKIES = gql`
|
|
|
3904
4135
|
`;
|
|
3905
4136
|
//#endregion
|
|
3906
4137
|
//#region src/consent/fetchAllCookies.ts
|
|
3907
|
-
const PAGE_SIZE$
|
|
4138
|
+
const PAGE_SIZE$29 = 20;
|
|
3908
4139
|
const DEFAULT_COOKIE_ORDER = [{
|
|
3909
4140
|
field: "createdAt",
|
|
3910
4141
|
direction: OrderDirection.Asc
|
|
@@ -3929,7 +4160,7 @@ async function fetchAllCookies(client, options = {}) {
|
|
|
3929
4160
|
const { cookies: { nodes } } = await makeGraphQLRequest(client, COOKIES, {
|
|
3930
4161
|
variables: {
|
|
3931
4162
|
input: { airgapBundleId },
|
|
3932
|
-
first: PAGE_SIZE$
|
|
4163
|
+
first: PAGE_SIZE$29,
|
|
3933
4164
|
offset,
|
|
3934
4165
|
filterBy: { status },
|
|
3935
4166
|
orderBy
|
|
@@ -3937,8 +4168,8 @@ async function fetchAllCookies(client, options = {}) {
|
|
|
3937
4168
|
logger
|
|
3938
4169
|
});
|
|
3939
4170
|
cookies.push(...nodes);
|
|
3940
|
-
offset += PAGE_SIZE$
|
|
3941
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
4171
|
+
offset += PAGE_SIZE$29;
|
|
4172
|
+
shouldContinue = nodes.length === PAGE_SIZE$29;
|
|
3942
4173
|
} while (shouldContinue);
|
|
3943
4174
|
return cookies.sort((a, b) => a.name.localeCompare(b.name));
|
|
3944
4175
|
}
|
|
@@ -4050,7 +4281,7 @@ const DELETE_DATA_FLOWS = gql`
|
|
|
4050
4281
|
`;
|
|
4051
4282
|
//#endregion
|
|
4052
4283
|
//#region src/consent/fetchAllDataFlows.ts
|
|
4053
|
-
const PAGE_SIZE$
|
|
4284
|
+
const PAGE_SIZE$28 = 20;
|
|
4054
4285
|
const DEFAULT_DATA_FLOW_ORDER = [{
|
|
4055
4286
|
field: "createdAt",
|
|
4056
4287
|
direction: OrderDirection.Asc
|
|
@@ -4075,7 +4306,7 @@ async function fetchAllDataFlows(client, options = {}) {
|
|
|
4075
4306
|
const { dataFlows: { nodes } } = await makeGraphQLRequest(client, DATA_FLOWS, {
|
|
4076
4307
|
variables: {
|
|
4077
4308
|
input: { airgapBundleId },
|
|
4078
|
-
first: PAGE_SIZE$
|
|
4309
|
+
first: PAGE_SIZE$28,
|
|
4079
4310
|
offset,
|
|
4080
4311
|
filterBy: {
|
|
4081
4312
|
status,
|
|
@@ -4086,8 +4317,8 @@ async function fetchAllDataFlows(client, options = {}) {
|
|
|
4086
4317
|
logger
|
|
4087
4318
|
});
|
|
4088
4319
|
dataFlows.push(...nodes);
|
|
4089
|
-
offset += PAGE_SIZE$
|
|
4090
|
-
shouldContinue = nodes.length === PAGE_SIZE$
|
|
4320
|
+
offset += PAGE_SIZE$28;
|
|
4321
|
+
shouldContinue = nodes.length === PAGE_SIZE$28;
|
|
4091
4322
|
} while (shouldContinue);
|
|
4092
4323
|
return dataFlows.sort((a, b) => a.value.localeCompare(b.value));
|
|
4093
4324
|
}
|
|
@@ -4291,7 +4522,7 @@ const UPDATE_PROCESSING_PURPOSE_SUB_CATEGORIES = gql`
|
|
|
4291
4522
|
`;
|
|
4292
4523
|
//#endregion
|
|
4293
4524
|
//#region src/consent/fetchAllProcessingPurposes.ts
|
|
4294
|
-
const PAGE_SIZE$
|
|
4525
|
+
const PAGE_SIZE$27 = 20;
|
|
4295
4526
|
/**
|
|
4296
4527
|
* Fetch all processingPurposeSubCategories in the organization
|
|
4297
4528
|
*
|
|
@@ -4306,16 +4537,216 @@ async function fetchAllProcessingPurposes(client, options = {}) {
|
|
|
4306
4537
|
do {
|
|
4307
4538
|
const { processingPurposeSubCategories: { nodes } } = await makeGraphQLRequest(client, PROCESSING_PURPOSE_SUB_CATEGORIES, {
|
|
4308
4539
|
variables: {
|
|
4309
|
-
first: PAGE_SIZE$
|
|
4540
|
+
first: PAGE_SIZE$27,
|
|
4310
4541
|
offset
|
|
4311
4542
|
},
|
|
4312
4543
|
logger: options.logger
|
|
4313
4544
|
});
|
|
4314
4545
|
processingPurposeSubCategories.push(...nodes);
|
|
4546
|
+
offset += PAGE_SIZE$27;
|
|
4547
|
+
shouldContinue = nodes.length === PAGE_SIZE$27;
|
|
4548
|
+
} while (shouldContinue);
|
|
4549
|
+
return processingPurposeSubCategories.sort((a, b) => a.name.localeCompare(b.name));
|
|
4550
|
+
}
|
|
4551
|
+
//#endregion
|
|
4552
|
+
//#region src/consent/fetchConsentManager.ts
|
|
4553
|
+
/**
|
|
4554
|
+
* Fetch consent manager
|
|
4555
|
+
*
|
|
4556
|
+
* @param client - GraphQL client
|
|
4557
|
+
* @param options - Options
|
|
4558
|
+
* @returns Consent manager ID in organization
|
|
4559
|
+
*/
|
|
4560
|
+
async function fetchConsentManager(client, options = {}) {
|
|
4561
|
+
const { consentManager: { consentManager } } = await makeGraphQLRequest(client, FETCH_CONSENT_MANAGER, { logger: options.logger });
|
|
4562
|
+
return consentManager;
|
|
4563
|
+
}
|
|
4564
|
+
//#endregion
|
|
4565
|
+
//#region src/consent/gqls/consentManagerMetrics.ts
|
|
4566
|
+
const CONSENT_MANAGER_ANALYTICS_DATA = gql`
|
|
4567
|
+
query TranscendCliConsentManagerAnalyticsData($input: AnalyticsInput!) {
|
|
4568
|
+
analyticsData(input: $input) {
|
|
4569
|
+
series {
|
|
4570
|
+
name
|
|
4571
|
+
points {
|
|
4572
|
+
key
|
|
4573
|
+
value
|
|
4574
|
+
}
|
|
4575
|
+
}
|
|
4576
|
+
}
|
|
4577
|
+
}
|
|
4578
|
+
`;
|
|
4579
|
+
//#endregion
|
|
4580
|
+
//#region src/consent/fetchConsentManagerAnalyticsData.ts
|
|
4581
|
+
/**
|
|
4582
|
+
* Fetch consent manager analytics data
|
|
4583
|
+
*
|
|
4584
|
+
* @param client - GraphQL client
|
|
4585
|
+
* @param input - Input for fetching data
|
|
4586
|
+
* @param options - Options
|
|
4587
|
+
* @returns Consent manager purposes in the organization
|
|
4588
|
+
*/
|
|
4589
|
+
async function fetchConsentManagerAnalyticsData(client, input, options = {}) {
|
|
4590
|
+
const { analyticsData: { series } } = await makeGraphQLRequest(client, CONSENT_MANAGER_ANALYTICS_DATA, {
|
|
4591
|
+
variables: { input },
|
|
4592
|
+
logger: options.logger
|
|
4593
|
+
});
|
|
4594
|
+
return series;
|
|
4595
|
+
}
|
|
4596
|
+
//#endregion
|
|
4597
|
+
//#region src/consent/gqls/experiences.ts
|
|
4598
|
+
const EXPERIENCES = gql`
|
|
4599
|
+
query TranscendCliExperiences($first: Int!, $offset: Int!) {
|
|
4600
|
+
experiences(first: $first, offset: $offset, useMaster: false) {
|
|
4601
|
+
totalCount
|
|
4602
|
+
nodes {
|
|
4603
|
+
id
|
|
4604
|
+
name
|
|
4605
|
+
displayName
|
|
4606
|
+
regions {
|
|
4607
|
+
countrySubDivision
|
|
4608
|
+
country
|
|
4609
|
+
}
|
|
4610
|
+
operator
|
|
4611
|
+
displayPriority
|
|
4612
|
+
onConsentExpiry
|
|
4613
|
+
consentExpiry
|
|
4614
|
+
viewState
|
|
4615
|
+
purposes {
|
|
4616
|
+
name
|
|
4617
|
+
trackingType
|
|
4618
|
+
}
|
|
4619
|
+
optedOutPurposes {
|
|
4620
|
+
name
|
|
4621
|
+
trackingType
|
|
4622
|
+
}
|
|
4623
|
+
browserLanguages
|
|
4624
|
+
browserTimeZones
|
|
4625
|
+
consentUiVariant {
|
|
4626
|
+
id
|
|
4627
|
+
slug
|
|
4628
|
+
}
|
|
4629
|
+
}
|
|
4630
|
+
}
|
|
4631
|
+
}
|
|
4632
|
+
`;
|
|
4633
|
+
const UPDATE_CONSENT_EXPERIENCE = gql`
|
|
4634
|
+
mutation TranscendCliUpdateConsentExperience($input: UpdateExperienceInput!) {
|
|
4635
|
+
updateExperience(input: $input) {
|
|
4636
|
+
clientMutationId
|
|
4637
|
+
}
|
|
4638
|
+
}
|
|
4639
|
+
`;
|
|
4640
|
+
const CREATE_CONSENT_EXPERIENCE = gql`
|
|
4641
|
+
mutation TranscendCliCreateConsentExperience($input: CreateExperienceInput!) {
|
|
4642
|
+
createExperience(input: $input) {
|
|
4643
|
+
clientMutationId
|
|
4644
|
+
}
|
|
4645
|
+
}
|
|
4646
|
+
`;
|
|
4647
|
+
//#endregion
|
|
4648
|
+
//#region src/consent/fetchConsentManagerExperiences.ts
|
|
4649
|
+
const PAGE_SIZE$26 = 50;
|
|
4650
|
+
/**
|
|
4651
|
+
* Fetch consent manager experiences
|
|
4652
|
+
*
|
|
4653
|
+
* @param client - GraphQL client
|
|
4654
|
+
* @param options - Options
|
|
4655
|
+
* @returns Consent manager experiences in the organization
|
|
4656
|
+
*/
|
|
4657
|
+
async function fetchConsentManagerExperiences(client, options = {}) {
|
|
4658
|
+
const experiences = [];
|
|
4659
|
+
let offset = 0;
|
|
4660
|
+
let shouldContinue = false;
|
|
4661
|
+
do {
|
|
4662
|
+
const { experiences: { nodes } } = await makeGraphQLRequest(client, EXPERIENCES, {
|
|
4663
|
+
variables: {
|
|
4664
|
+
first: PAGE_SIZE$26,
|
|
4665
|
+
offset
|
|
4666
|
+
},
|
|
4667
|
+
logger: options.logger
|
|
4668
|
+
});
|
|
4669
|
+
experiences.push(...nodes);
|
|
4670
|
+
offset += PAGE_SIZE$26;
|
|
4671
|
+
shouldContinue = nodes.length === PAGE_SIZE$26;
|
|
4672
|
+
} while (shouldContinue);
|
|
4673
|
+
return experiences.sort((a, b) => a.name.localeCompare(b.name));
|
|
4674
|
+
}
|
|
4675
|
+
//#endregion
|
|
4676
|
+
//#region src/consent/fetchConsentManagerTheme.ts
|
|
4677
|
+
/**
|
|
4678
|
+
* Fetch consent manager theme
|
|
4679
|
+
*
|
|
4680
|
+
* @param client - GraphQL client
|
|
4681
|
+
* @param options - Options
|
|
4682
|
+
* @returns Consent manager theme
|
|
4683
|
+
*/
|
|
4684
|
+
async function fetchConsentManagerTheme(client, options) {
|
|
4685
|
+
const { consentManagerTheme: { theme } } = await makeGraphQLRequest(client, FETCH_CONSENT_MANAGER_THEME, {
|
|
4686
|
+
variables: { airgapBundleId: options.filterBy.airgapBundleId },
|
|
4687
|
+
logger: options.logger
|
|
4688
|
+
});
|
|
4689
|
+
return theme;
|
|
4690
|
+
}
|
|
4691
|
+
//#endregion
|
|
4692
|
+
//#region src/consent/fetchConsentThemes.ts
|
|
4693
|
+
const PAGE_SIZE$25 = 50;
|
|
4694
|
+
/**
|
|
4695
|
+
* Fetch consent themes
|
|
4696
|
+
*
|
|
4697
|
+
* @param client - GraphQL client
|
|
4698
|
+
* @param options - Options
|
|
4699
|
+
* @returns consent UI themes
|
|
4700
|
+
*/
|
|
4701
|
+
async function fetchConsentThemes(client, options = {}) {
|
|
4702
|
+
const themes = [];
|
|
4703
|
+
let offset = 0;
|
|
4704
|
+
const airgapBundleId = await fetchConsentManagerId(client, { logger: options.logger });
|
|
4705
|
+
let shouldContinue = false;
|
|
4706
|
+
do {
|
|
4707
|
+
const { consentUiThemes: { nodes } } = await makeGraphQLRequest(client, FETCH_CONSENT_UI_THEMES, {
|
|
4708
|
+
variables: {
|
|
4709
|
+
airgapBundleId,
|
|
4710
|
+
first: PAGE_SIZE$25,
|
|
4711
|
+
offset
|
|
4712
|
+
},
|
|
4713
|
+
logger: options.logger
|
|
4714
|
+
});
|
|
4715
|
+
themes.push(...nodes);
|
|
4716
|
+
offset += PAGE_SIZE$25;
|
|
4717
|
+
shouldContinue = nodes.length === PAGE_SIZE$25;
|
|
4718
|
+
} while (shouldContinue);
|
|
4719
|
+
return themes;
|
|
4720
|
+
}
|
|
4721
|
+
//#endregion
|
|
4722
|
+
//#region src/consent/fetchConsentVariants.ts
|
|
4723
|
+
const PAGE_SIZE$24 = 50;
|
|
4724
|
+
/**
|
|
4725
|
+
* Fetch consent variants
|
|
4726
|
+
*
|
|
4727
|
+
* @param client - GraphQL client
|
|
4728
|
+
* @param options - Options
|
|
4729
|
+
* @returns consent UI variants
|
|
4730
|
+
*/
|
|
4731
|
+
async function fetchConsentVariants(client, options = {}) {
|
|
4732
|
+
const variants = [];
|
|
4733
|
+
let offset = 0;
|
|
4734
|
+
const airgapBundleId = await fetchConsentManagerId(client, { logger: options.logger });
|
|
4735
|
+
let shouldContinue = false;
|
|
4736
|
+
do {
|
|
4737
|
+
const { consentUiVariants: { nodes } } = await makeGraphQLRequest(client, FETCH_CONSENT_UI_VARIANTS, {
|
|
4738
|
+
variables: {
|
|
4739
|
+
airgapBundleId,
|
|
4740
|
+
first: PAGE_SIZE$24,
|
|
4741
|
+
offset
|
|
4742
|
+
},
|
|
4743
|
+
logger: options.logger
|
|
4744
|
+
});
|
|
4745
|
+
variants.push(...nodes);
|
|
4315
4746
|
offset += PAGE_SIZE$24;
|
|
4316
4747
|
shouldContinue = nodes.length === PAGE_SIZE$24;
|
|
4317
4748
|
} while (shouldContinue);
|
|
4318
|
-
return
|
|
4749
|
+
return variants;
|
|
4319
4750
|
}
|
|
4320
4751
|
//#endregion
|
|
4321
4752
|
//#region src/consent/gqls/airgapBundleAnalytics.ts
|
|
@@ -4474,6 +4905,135 @@ const DATA_FLOW_STATS = gql`
|
|
|
4474
4905
|
}
|
|
4475
4906
|
`;
|
|
4476
4907
|
//#endregion
|
|
4908
|
+
//#region src/consent/syncConsentUi.ts
|
|
4909
|
+
/**
|
|
4910
|
+
* Parse a JSON configuration string from transcend.yml
|
|
4911
|
+
*
|
|
4912
|
+
* @param configuration - JSON configuration string
|
|
4913
|
+
* @param resourceLabel - Label for error messages
|
|
4914
|
+
* @returns Parsed configuration object
|
|
4915
|
+
*/
|
|
4916
|
+
function parseConsentUiConfiguration(configuration, resourceLabel) {
|
|
4917
|
+
try {
|
|
4918
|
+
return JSON.parse(configuration);
|
|
4919
|
+
} catch {
|
|
4920
|
+
throw new Error(`Invalid JSON configuration for ${resourceLabel}`);
|
|
4921
|
+
}
|
|
4922
|
+
}
|
|
4923
|
+
/**
|
|
4924
|
+
* Sync consent UI themes from transcend.yml
|
|
4925
|
+
*
|
|
4926
|
+
* @param client - GraphQL client
|
|
4927
|
+
* @param airgapBundleId - Airgap bundle ID
|
|
4928
|
+
* @param yamlThemes - Theme inputs from transcend.yml
|
|
4929
|
+
* @param options - Options
|
|
4930
|
+
* @returns Synced themes (id + slug) for resolving variant themeSlug assignments
|
|
4931
|
+
*/
|
|
4932
|
+
async function syncConsentUiThemes(client, airgapBundleId, yamlThemes, options = {}) {
|
|
4933
|
+
const { logger = NOOP_LOGGER } = options;
|
|
4934
|
+
const remoteThemeBySlug = keyBy(await fetchConsentThemes(client, { logger }), "slug");
|
|
4935
|
+
const syncedThemes = [];
|
|
4936
|
+
await map(yamlThemes, async (yamlTheme, index) => {
|
|
4937
|
+
const resourceLabel = `consentManager.consentThemes[${index}]`;
|
|
4938
|
+
const configuration = parseConsentUiConfiguration(yamlTheme.configuration, resourceLabel);
|
|
4939
|
+
const remoteTheme = remoteThemeBySlug[yamlTheme.slug];
|
|
4940
|
+
if (remoteTheme) {
|
|
4941
|
+
await makeGraphQLRequest(client, UPDATE_CONSENT_UI_THEME, {
|
|
4942
|
+
variables: { input: {
|
|
4943
|
+
id: remoteTheme.id,
|
|
4944
|
+
airgapBundleId,
|
|
4945
|
+
name: yamlTheme.name,
|
|
4946
|
+
configuration
|
|
4947
|
+
} },
|
|
4948
|
+
logger
|
|
4949
|
+
});
|
|
4950
|
+
syncedThemes.push({
|
|
4951
|
+
id: remoteTheme.id,
|
|
4952
|
+
slug: yamlTheme.slug
|
|
4953
|
+
});
|
|
4954
|
+
logger.info(`Successfully synced consent UI theme "${yamlTheme.name}"!`);
|
|
4955
|
+
} else {
|
|
4956
|
+
const result = await makeGraphQLRequest(client, CREATE_CONSENT_UI_THEME, {
|
|
4957
|
+
variables: { input: {
|
|
4958
|
+
airgapBundleId,
|
|
4959
|
+
name: yamlTheme.name,
|
|
4960
|
+
slug: yamlTheme.slug,
|
|
4961
|
+
configuration
|
|
4962
|
+
} },
|
|
4963
|
+
logger
|
|
4964
|
+
});
|
|
4965
|
+
syncedThemes.push({
|
|
4966
|
+
id: result.createConsentUiTheme.consentUiTheme.id,
|
|
4967
|
+
slug: yamlTheme.slug
|
|
4968
|
+
});
|
|
4969
|
+
logger.info(`Successfully created consent UI theme "${yamlTheme.name}"!`);
|
|
4970
|
+
}
|
|
4971
|
+
}, { concurrency: 5 });
|
|
4972
|
+
return syncedThemes;
|
|
4973
|
+
}
|
|
4974
|
+
/**
|
|
4975
|
+
* Sync consent UI variants from transcend.yml
|
|
4976
|
+
*
|
|
4977
|
+
* @param client - GraphQL client
|
|
4978
|
+
* @param airgapBundleId - Airgap bundle ID
|
|
4979
|
+
* @param yamlVariants - Variant inputs from transcend.yml
|
|
4980
|
+
* @param syncedThemes - Themes synced by syncConsentUiThemes, used to resolve themeSlug
|
|
4981
|
+
* @param options - Options
|
|
4982
|
+
* @returns Synced variants (id + slug) for resolving experience consentUiVariantSlug assignments
|
|
4983
|
+
*/
|
|
4984
|
+
async function syncConsentUiVariants(client, airgapBundleId, yamlVariants, syncedThemes, options = {}) {
|
|
4985
|
+
const { logger = NOOP_LOGGER } = options;
|
|
4986
|
+
const remoteVariantBySlug = keyBy(await fetchConsentVariants(client, { logger }), "slug");
|
|
4987
|
+
const syncedThemeBySlug = keyBy(syncedThemes, "slug");
|
|
4988
|
+
const syncedVariants = [];
|
|
4989
|
+
await map(yamlVariants, async (yamlVariant, index) => {
|
|
4990
|
+
const resourceLabel = `consentManager.consentVariants[${index}]`;
|
|
4991
|
+
const configuration = parseConsentUiConfiguration(yamlVariant.configuration, resourceLabel);
|
|
4992
|
+
const remoteThemeId = yamlVariant.themeSlug ? syncedThemeBySlug[yamlVariant.themeSlug]?.id : void 0;
|
|
4993
|
+
const remoteVariant = remoteVariantBySlug[yamlVariant.slug];
|
|
4994
|
+
if (remoteVariant) {
|
|
4995
|
+
await makeGraphQLRequest(client, UPDATE_CONSENT_UI_VARIANT, {
|
|
4996
|
+
variables: { input: {
|
|
4997
|
+
id: remoteVariant.id,
|
|
4998
|
+
airgapBundleId,
|
|
4999
|
+
name: yamlVariant.name,
|
|
5000
|
+
description: yamlVariant.description,
|
|
5001
|
+
locales: yamlVariant.locales,
|
|
5002
|
+
configuration,
|
|
5003
|
+
status: yamlVariant.status,
|
|
5004
|
+
...remoteThemeId ? { themeId: remoteThemeId } : {}
|
|
5005
|
+
} },
|
|
5006
|
+
logger
|
|
5007
|
+
});
|
|
5008
|
+
syncedVariants.push({
|
|
5009
|
+
id: remoteVariant.id,
|
|
5010
|
+
slug: yamlVariant.slug
|
|
5011
|
+
});
|
|
5012
|
+
logger.info(`Successfully synced consent UI variant "${yamlVariant.name}"!`);
|
|
5013
|
+
} else {
|
|
5014
|
+
const result = await makeGraphQLRequest(client, CREATE_CONSENT_UI_VARIANT, {
|
|
5015
|
+
variables: { input: {
|
|
5016
|
+
airgapBundleId,
|
|
5017
|
+
name: yamlVariant.name,
|
|
5018
|
+
slug: yamlVariant.slug,
|
|
5019
|
+
description: yamlVariant.description,
|
|
5020
|
+
locales: yamlVariant.locales,
|
|
5021
|
+
configuration,
|
|
5022
|
+
status: yamlVariant.status,
|
|
5023
|
+
...remoteThemeId ? { themeId: remoteThemeId } : {}
|
|
5024
|
+
} },
|
|
5025
|
+
logger
|
|
5026
|
+
});
|
|
5027
|
+
syncedVariants.push({
|
|
5028
|
+
id: result.createConsentUiVariant.consentUiVariant.id,
|
|
5029
|
+
slug: yamlVariant.slug
|
|
5030
|
+
});
|
|
5031
|
+
logger.info(`Successfully created consent UI variant "${yamlVariant.name}"!`);
|
|
5032
|
+
}
|
|
5033
|
+
}, { concurrency: 5 });
|
|
5034
|
+
return syncedVariants;
|
|
5035
|
+
}
|
|
5036
|
+
//#endregion
|
|
4477
5037
|
//#region src/consent/syncPartitions.ts
|
|
4478
5038
|
const PAGE_SIZE$23 = 50;
|
|
4479
5039
|
/**
|
|
@@ -4540,12 +5100,14 @@ const PURPOSES_LINK = "https://app.transcend.io/consent-manager/regional-experie
|
|
|
4540
5100
|
*
|
|
4541
5101
|
* @param client - GraphQL client
|
|
4542
5102
|
* @param experiences - The experience inputs
|
|
5103
|
+
* @param syncedVariants - Variants synced by syncConsentUiVariants, used to resolve consentUiVariantSlug
|
|
4543
5104
|
* @param options - Options
|
|
4544
5105
|
*/
|
|
4545
|
-
async function syncConsentManagerExperiences(client, experiences, options = {}) {
|
|
5106
|
+
async function syncConsentManagerExperiences(client, experiences, syncedVariants, options = {}) {
|
|
4546
5107
|
const { logger = NOOP_LOGGER } = options;
|
|
4547
5108
|
const experienceLookup = keyBy(await fetchConsentManagerExperiences(client, { logger }), "name");
|
|
4548
5109
|
const purposeLookup = keyBy(await fetchAllPurposes(client, { logger }), "trackingType");
|
|
5110
|
+
const syncedVariantBySlug = keyBy(syncedVariants, "slug");
|
|
4549
5111
|
await map(experiences, async (exp, ind) => {
|
|
4550
5112
|
const purposeIds = exp.purposes?.map((purpose, ind2) => {
|
|
4551
5113
|
const existingPurpose = purposeLookup[purpose.trackingType];
|
|
@@ -4557,6 +5119,7 @@ async function syncConsentManagerExperiences(client, experiences, options = {})
|
|
|
4557
5119
|
if (!existingPurpose) throw new Error(`Invalid purpose trackingType provided at consentManager.experiences[${ind}].optedOutPurposes[${ind2}]: ${purpose.trackingType}. See list of valid purposes ${PURPOSES_LINK}`);
|
|
4558
5120
|
return existingPurpose.id;
|
|
4559
5121
|
});
|
|
5122
|
+
const remoteConsentUiVariantId = exp.consentUiVariantSlug ? syncedVariantBySlug[exp.consentUiVariantSlug]?.id : void 0;
|
|
4560
5123
|
const existingExperience = experienceLookup[exp.name];
|
|
4561
5124
|
if (existingExperience) {
|
|
4562
5125
|
await makeGraphQLRequest(client, UPDATE_CONSENT_EXPERIENCE, {
|
|
@@ -4572,7 +5135,8 @@ async function syncConsentManagerExperiences(client, experiences, options = {})
|
|
|
4572
5135
|
purposes: purposeIds,
|
|
4573
5136
|
optedOutPurposes: optedOutPurposeIds,
|
|
4574
5137
|
browserLanguages: exp.browserLanguages,
|
|
4575
|
-
browserTimeZones: exp.browserTimeZones
|
|
5138
|
+
browserTimeZones: exp.browserTimeZones,
|
|
5139
|
+
...remoteConsentUiVariantId ? { consentUiVariantId: remoteConsentUiVariantId } : {}
|
|
4576
5140
|
} },
|
|
4577
5141
|
logger
|
|
4578
5142
|
});
|
|
@@ -4591,7 +5155,8 @@ async function syncConsentManagerExperiences(client, experiences, options = {})
|
|
|
4591
5155
|
purposes: purposeIds || [],
|
|
4592
5156
|
optedOutPurposes: optedOutPurposeIds || [],
|
|
4593
5157
|
browserLanguages: exp.browserLanguages,
|
|
4594
|
-
browserTimeZones: exp.browserTimeZones
|
|
5158
|
+
browserTimeZones: exp.browserTimeZones,
|
|
5159
|
+
...remoteConsentUiVariantId ? { consentUiVariantId: remoteConsentUiVariantId } : {}
|
|
4595
5160
|
} },
|
|
4596
5161
|
logger
|
|
4597
5162
|
});
|
|
@@ -4683,7 +5248,11 @@ async function syncConsentManager(client, consentManager, options = {}) {
|
|
|
4683
5248
|
} },
|
|
4684
5249
|
logger
|
|
4685
5250
|
});
|
|
4686
|
-
if (consentManager.
|
|
5251
|
+
if (consentManager.consentThemes || consentManager.consentVariants || consentManager.experiences) {
|
|
5252
|
+
const syncedThemes = consentManager.consentThemes ? await syncConsentUiThemes(client, airgapBundleId, consentManager.consentThemes, { logger }) : [];
|
|
5253
|
+
const syncedVariants = consentManager.consentVariants ? await syncConsentUiVariants(client, airgapBundleId, consentManager.consentVariants, syncedThemes, { logger }) : [];
|
|
5254
|
+
if (consentManager.experiences) await syncConsentManagerExperiences(client, consentManager.experiences, syncedVariants, { logger });
|
|
5255
|
+
}
|
|
4687
5256
|
if (consentManager.theme) await makeGraphQLRequest(client, UPDATE_CONSENT_MANAGER_THEME, {
|
|
4688
5257
|
variables: { input: {
|
|
4689
5258
|
airgapBundleId,
|
|
@@ -5141,9 +5710,13 @@ const SOMBRA_VERSION = parse(gql`
|
|
|
5141
5710
|
//#region src/dsr-automation/fetchAllRequestIdentifiers.ts
|
|
5142
5711
|
const MIN_SOMBRA_VERSION_TO_DECRYPT = "7.180.0";
|
|
5143
5712
|
const RequestIdentifier = t.type({
|
|
5713
|
+
/** ID of request */
|
|
5144
5714
|
id: t.string,
|
|
5715
|
+
/** Name of identifier */
|
|
5145
5716
|
name: t.string,
|
|
5717
|
+
/** The underlying identifier value */
|
|
5146
5718
|
value: t.string,
|
|
5719
|
+
/** Type of identifier */
|
|
5147
5720
|
type: valuesOf(IdentifierType)
|
|
5148
5721
|
});
|
|
5149
5722
|
const PAGE_SIZE$21 = 50;
|
|
@@ -7885,8 +8458,12 @@ const AssessmentRuleWithoutOperands = t.type({
|
|
|
7885
8458
|
* The final, flexible codec that accepts EITHER a rule with operands OR a rule without them.
|
|
7886
8459
|
*/
|
|
7887
8460
|
const AssessmentRule = t.union([AssessmentRuleWithOperands, AssessmentRuleWithoutOperands]);
|
|
7888
|
-
const AssessmentNestedRule = t.recursion("AssessmentNestedRule", (self) => t.intersection([t.type({
|
|
8461
|
+
const AssessmentNestedRule = t.recursion("AssessmentNestedRule", (self) => t.intersection([t.type({
|
|
8462
|
+
/** The operator to use when comparing the nested rules */
|
|
8463
|
+
logicOperator: valuesOf(LogicOperator) }), t.partial({
|
|
8464
|
+
/** The rules to evaluate and be compared with to other using the LogicOperator */
|
|
7889
8465
|
rules: t.array(AssessmentRule),
|
|
8466
|
+
/** The nested rules to add one more level of nesting to the rules. They are also compared to each other. */
|
|
7890
8467
|
nestedRules: t.array(self)
|
|
7891
8468
|
})]));
|
|
7892
8469
|
const AssessmentAction = t.partial({
|
|
@@ -8673,6 +9250,6 @@ function createMonorepoPackageDefinition(name, directory) {
|
|
|
8673
9250
|
};
|
|
8674
9251
|
}
|
|
8675
9252
|
//#endregion
|
|
8676
|
-
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_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_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, PreferenceState, PreferenceUpdateMap, 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_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, 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, 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, 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, syncCookies, syncDataCategories, syncDataFlows, syncDataSiloDependencies, syncDataSubject, syncEnricher, syncIdentifier, syncIntlMessages, syncPartitions, syncPolicies, syncPrivacyCenter, syncProcessingActivities, syncProcessingPurposes, syncPromptGroups, syncPromptPartials, syncPrompts, 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 };
|
|
9253
|
+
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, PreferenceState, PreferenceUpdateMap, 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, 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, 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, syncPrivacyCenter, syncProcessingActivities, syncProcessingPurposes, syncPromptGroups, syncPromptPartials, syncPrompts, 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 };
|
|
8677
9254
|
|
|
8678
9255
|
//# sourceMappingURL=index.mjs.map
|