@transcend-io/cli 4.73.0 → 4.75.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.
Files changed (37) hide show
  1. package/README.md +171 -6
  2. package/build/cli-consent-managers-to-business-entities.js +1 -1
  3. package/build/cli-consent-managers-to-business-entities.js.map +1 -1
  4. package/build/cli-derive-data-silos-from-data-flows-cross-instance.d.ts +3 -0
  5. package/build/cli-derive-data-silos-from-data-flows-cross-instance.d.ts.map +1 -0
  6. package/build/cli-derive-data-silos-from-data-flows-cross-instance.js +148 -0
  7. package/build/cli-derive-data-silos-from-data-flows-cross-instance.js.map +1 -0
  8. package/build/cli-derive-data-silos-from-data-flows.d.ts +3 -0
  9. package/build/cli-derive-data-silos-from-data-flows.d.ts.map +1 -0
  10. package/build/cli-derive-data-silos-from-data-flows.js +88 -0
  11. package/build/cli-derive-data-silos-from-data-flows.js.map +1 -0
  12. package/build/cli-upload-cookies-from-csv.d.ts +3 -0
  13. package/build/cli-upload-cookies-from-csv.d.ts.map +1 -0
  14. package/build/cli-upload-cookies-from-csv.js +59 -0
  15. package/build/cli-upload-cookies-from-csv.js.map +1 -0
  16. package/build/codecs.d.ts +22 -0
  17. package/build/codecs.d.ts.map +1 -1
  18. package/build/codecs.js +23 -1
  19. package/build/codecs.js.map +1 -1
  20. package/build/consent-manager/dataFlowsToDataSilos.d.ts +19 -0
  21. package/build/consent-manager/dataFlowsToDataSilos.d.ts.map +1 -0
  22. package/build/consent-manager/dataFlowsToDataSilos.js +95 -0
  23. package/build/consent-manager/dataFlowsToDataSilos.js.map +1 -0
  24. package/build/consent-manager/index.d.ts +1 -0
  25. package/build/consent-manager/index.d.ts.map +1 -1
  26. package/build/consent-manager/index.js +1 -0
  27. package/build/consent-manager/index.js.map +1 -1
  28. package/build/consent-manager/uploadCookiesFromCsv.d.ts +17 -0
  29. package/build/consent-manager/uploadCookiesFromCsv.d.ts.map +1 -0
  30. package/build/consent-manager/uploadCookiesFromCsv.js +70 -0
  31. package/build/consent-manager/uploadCookiesFromCsv.js.map +1 -0
  32. package/build/graphql/fetchCatalogs.d.ts +20 -0
  33. package/build/graphql/fetchCatalogs.d.ts.map +1 -1
  34. package/build/graphql/fetchCatalogs.js +23 -1
  35. package/build/graphql/fetchCatalogs.js.map +1 -1
  36. package/build/tsbuildinfo +1 -1
  37. package/package.json +4 -1
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.uploadCookiesFromCsv = void 0;
7
+ const colors_1 = __importDefault(require("colors"));
8
+ const logger_1 = require("../logger");
9
+ const graphql_1 = require("../graphql");
10
+ const readCsv_1 = require("../requests/readCsv");
11
+ const codecs_1 = require("../codecs");
12
+ const requests_1 = require("../requests");
13
+ const constants_1 = require("../constants");
14
+ const OMIT_COLUMNS = [
15
+ 'ID',
16
+ 'Activity',
17
+ 'Encounters',
18
+ 'Last Seen At',
19
+ 'Has Native Do Not Sell/Share Support',
20
+ 'IAB USP API Support',
21
+ 'Service Description',
22
+ 'Website URL',
23
+ 'Categories of Recipients',
24
+ ];
25
+ /**
26
+ * Upload a set of cookies from CSV
27
+ *
28
+ * @param options - Options
29
+ */
30
+ async function uploadCookiesFromCsv({ auth, trackerStatus, file, transcendUrl = constants_1.DEFAULT_TRANSCEND_API, }) {
31
+ // Build a GraphQL client
32
+ const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendUrl, auth);
33
+ // Read from CSV the set of cookie inputs
34
+ logger_1.logger.info(colors_1.default.magenta(`Reading "${file}" from disk`));
35
+ const cookieInputs = (0, readCsv_1.readCsv)(file, codecs_1.CookieCsvInput);
36
+ // Convert these inputs into a format that the other function can use
37
+ const validatedCookieInputs = cookieInputs.map(({ Notes,
38
+ // TODO: https://transcend.height.app/T-26391 - export in CSV
39
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
40
+ Service, Purpose, Status, Owners, Teams, 'Connections Made To': name, ...rest }) => ({
41
+ name,
42
+ description: Notes,
43
+ trackingPurposes: (0, requests_1.splitCsvToList)(Purpose),
44
+ // TODO: https://transcend.height.app/T-26391
45
+ // service: Service,
46
+ // Apply the trackerStatus to all values in the CSV -> allows for customer to define tracker status
47
+ // on a row by row basis if needed
48
+ status: Status || trackerStatus,
49
+ owners: Owners ? (0, requests_1.splitCsvToList)(Owners) : undefined,
50
+ teams: Teams ? (0, requests_1.splitCsvToList)(Teams) : undefined,
51
+ // all remaining options are attribute
52
+ attributes: Object.entries(rest)
53
+ // filter out native columns that are exported from the admin dashboard
54
+ // but not custom attributes
55
+ .filter(([key]) => !OMIT_COLUMNS.includes(key))
56
+ .map(([key, value]) => ({
57
+ key,
58
+ values: (0, requests_1.splitCsvToList)(value),
59
+ })),
60
+ }));
61
+ // Upload the cookies into Transcend dashboard
62
+ const syncedCookies = await (0, graphql_1.syncCookies)(client, validatedCookieInputs);
63
+ // Log errors
64
+ if (!syncedCookies) {
65
+ logger_1.logger.error(colors_1.default.red('Encountered error(s) syncing cookies from CSV, see logs above for more info. '));
66
+ process.exit(1);
67
+ }
68
+ }
69
+ exports.uploadCookiesFromCsv = uploadCookiesFromCsv;
70
+ //# sourceMappingURL=uploadCookiesFromCsv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadCookiesFromCsv.js","sourceRoot":"","sources":["../../src/consent-manager/uploadCookiesFromCsv.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,sCAAmC;AAEnC,wCAAsE;AACtE,iDAA8C;AAC9C,sCAAwD;AACxD,0CAA6C;AAC7C,4CAAqD;AAErD,MAAM,YAAY,GAAG;IACnB,IAAI;IACJ,UAAU;IACV,YAAY;IACZ,cAAc;IACd,sCAAsC;IACtC,qBAAqB;IACrB,qBAAqB;IACrB,aAAa;IACb,0BAA0B;CAC3B,CAAC;AAEF;;;;GAIG;AACI,KAAK,UAAU,oBAAoB,CAAC,EACzC,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,YAAY,GAAG,iCAAqB,GAUrC;IACC,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAA,qCAA2B,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAE/D,yCAAyC;IACzC,eAAM,CAAC,IAAI,CAAC,gBAAM,CAAC,OAAO,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAA,iBAAO,EAAC,IAAI,EAAE,uBAAc,CAAC,CAAC;IAEnD,sEAAsE;IACtE,MAAM,qBAAqB,GAAG,YAAY,CAAC,GAAG,CAC5C,CAAC,EACC,KAAK;IACL,6DAA6D;IAC7D,6DAA6D;IAC7D,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,qBAAqB,EAAE,IAAI,EAC3B,GAAG,IAAI,EACR,EAAe,EAAE,CAAC,CAAC;QAClB,IAAI;QACJ,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,IAAA,yBAAc,EAAC,OAAO,CAAC;QACzC,6CAA6C;QAC7C,oBAAoB;QACpB,mGAAmG;QACnG,kCAAkC;QAClC,MAAM,EAAE,MAAM,IAAI,aAAa;QAC/B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACnD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAChD,sCAAsC;QACtC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,uEAAuE;YACvE,4BAA4B;aAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG;YACH,MAAM,EAAE,IAAA,yBAAc,EAAC,KAAK,CAAC;SAC9B,CAAC,CAAC;KACN,CAAC,CACH,CAAC;IAEF,8CAA8C;IAC9C,MAAM,aAAa,GAAG,MAAM,IAAA,qBAAW,EAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEvE,aAAa;IACb,IAAI,CAAC,aAAa,EAAE;QAClB,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,+EAA+E,CAChF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC;AAtED,oDAsEC"}
@@ -14,4 +14,24 @@ export interface Catalog {
14
14
  * @returns Integration catalogs
15
15
  */
16
16
  export declare function fetchAllCatalogs(client: GraphQLClient): Promise<Catalog[]>;
17
+ export interface IndexedCatalogs {
18
+ /** Mapping from service name to service title */
19
+ serviceToTitle: {
20
+ [k in string]: string;
21
+ };
22
+ /** Mapping from service name to boolean indicate if service has API integration support */
23
+ serviceToSupportedIntegration: {
24
+ [k in string]: boolean;
25
+ };
26
+ }
27
+ /**
28
+ * Fetch all integration catalogs and index them for usage in common utility manners
29
+ *
30
+ * @param client - Client
31
+ * @returns Integration catalogs
32
+ */
33
+ export declare function fetchAndIndexCatalogs(client: GraphQLClient): Promise<{
34
+ /** List of all catalogs */
35
+ catalogs: Catalog[];
36
+ } & IndexedCatalogs>;
17
37
  //# sourceMappingURL=fetchCatalogs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchCatalogs.d.ts","sourceRoot":"","sources":["../../src/graphql/fetchCatalogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,OAAO;IACtB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAID;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAyBpB"}
1
+ {"version":3,"file":"fetchCatalogs.d.ts","sourceRoot":"","sources":["../../src/graphql/fetchCatalogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,OAAO;IACtB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAID;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAyBpB;AAED,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,cAAc,EAAE;SAAG,CAAC,IAAI,MAAM,GAAG,MAAM;KAAE,CAAC;IAC1C,2FAA2F;IAC3F,6BAA6B,EAAE;SAAG,CAAC,IAAI,MAAM,GAAG,OAAO;KAAE,CAAC;CAC3D;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CACzE;IACE,2BAA2B;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,GAAG,eAAe,CACpB,CAyBA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchAllCatalogs = void 0;
3
+ exports.fetchAndIndexCatalogs = exports.fetchAllCatalogs = void 0;
4
4
  const gqls_1 = require("./gqls");
5
5
  const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
6
6
  const PAGE_SIZE = 100;
@@ -29,4 +29,26 @@ async function fetchAllCatalogs(client) {
29
29
  return catalogs;
30
30
  }
31
31
  exports.fetchAllCatalogs = fetchAllCatalogs;
32
+ /**
33
+ * Fetch all integration catalogs and index them for usage in common utility manners
34
+ *
35
+ * @param client - Client
36
+ * @returns Integration catalogs
37
+ */
38
+ async function fetchAndIndexCatalogs(client) {
39
+ // Fetch all integrations in the catalog
40
+ const catalogs = await fetchAllCatalogs(client);
41
+ // Create mapping from service name to service title
42
+ const serviceToTitle = catalogs.reduce((acc, catalog) => Object.assign(acc, { [catalog.integrationName]: catalog.title }), {});
43
+ // Create mapping from service name to boolean indicate if service has API integration support
44
+ const serviceToSupportedIntegration = catalogs.reduce((acc, catalog) => Object.assign(acc, {
45
+ [catalog.integrationName]: catalog.hasApiFunctionality,
46
+ }), {});
47
+ return {
48
+ catalogs,
49
+ serviceToTitle,
50
+ serviceToSupportedIntegration,
51
+ };
52
+ }
53
+ exports.fetchAndIndexCatalogs = fetchAndIndexCatalogs;
32
54
  //# sourceMappingURL=fetchCatalogs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchCatalogs.js","sourceRoot":"","sources":["../../src/graphql/fetchCatalogs.ts"],"names":[],"mappings":";;;AACA,iCAAkC;AAClC,6DAA0D;AAW1D,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAqB;IAErB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,WAAW;IACX,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,GAAG;QACD,MAAM,EACJ,QAAQ,EAAE,EAAE,KAAK,EAAE;QACnB,4CAA4C;UAC7C,GAAG,MAAM,IAAA,uCAAkB,EAMzB,MAAM,EAAE,eAAQ,EAAE;YACnB,KAAK,EAAE,SAAS;YAChB,MAAM;SACP,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC;QACpB,cAAc,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;KAC7C,QAAQ,cAAc,EAAE;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AA3BD,4CA2BC"}
1
+ {"version":3,"file":"fetchCatalogs.js","sourceRoot":"","sources":["../../src/graphql/fetchCatalogs.ts"],"names":[],"mappings":";;;AACA,iCAAkC;AAClC,6DAA0D;AAW1D,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAqB;IAErB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,WAAW;IACX,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,GAAG;QACD,MAAM,EACJ,QAAQ,EAAE,EAAE,KAAK,EAAE;QACnB,4CAA4C;UAC7C,GAAG,MAAM,IAAA,uCAAkB,EAMzB,MAAM,EAAE,eAAQ,EAAE;YACnB,KAAK,EAAE,SAAS;YAChB,MAAM;SACP,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC;QACpB,cAAc,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;KAC7C,QAAQ,cAAc,EAAE;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AA3BD,4CA2BC;AASD;;;;;GAKG;AACI,KAAK,UAAU,qBAAqB,CAAC,MAAqB;IAM/D,wCAAwC;IACxC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEhD,oDAAoD;IACpD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CACf,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAClE,EAA+B,CAChC,CAAC;IAEF,8FAA8F;IAC9F,MAAM,6BAA6B,GAAG,QAAQ,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CACf,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,mBAAmB;KACvD,CAAC,EACJ,EAAgC,CACjC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,cAAc;QACd,6BAA6B;KAC9B,CAAC;AACJ,CAAC;AA9BD,sDA8BC"}