@transcend-io/cli 6.15.0 → 6.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +78 -12
  2. package/build/cli-pull-unstructured-discovery-files.d.ts +3 -0
  3. package/build/cli-pull-unstructured-discovery-files.d.ts.map +1 -0
  4. package/build/cli-pull-unstructured-discovery-files.js +73 -0
  5. package/build/cli-pull-unstructured-discovery-files.js.map +1 -0
  6. package/build/cli-sync-ot.js +32 -29
  7. package/build/cli-sync-ot.js.map +1 -1
  8. package/build/codecs.d.ts +71 -6
  9. package/build/codecs.d.ts.map +1 -1
  10. package/build/codecs.js +19 -2
  11. package/build/codecs.js.map +1 -1
  12. package/build/data-inventory/index.d.ts +1 -0
  13. package/build/data-inventory/index.d.ts.map +1 -1
  14. package/build/data-inventory/index.js +1 -0
  15. package/build/data-inventory/index.js.map +1 -1
  16. package/build/data-inventory/pullUnstructuredSubDataPointRecommendations.d.ts +58 -0
  17. package/build/data-inventory/pullUnstructuredSubDataPointRecommendations.d.ts.map +1 -0
  18. package/build/data-inventory/pullUnstructuredSubDataPointRecommendations.js +110 -0
  19. package/build/data-inventory/pullUnstructuredSubDataPointRecommendations.js.map +1 -0
  20. package/build/enums.d.ts +7 -0
  21. package/build/enums.d.ts.map +1 -1
  22. package/build/enums.js +9 -1
  23. package/build/enums.js.map +1 -1
  24. package/build/graphql/gqls/entry.d.ts +2 -0
  25. package/build/graphql/gqls/entry.d.ts.map +1 -0
  26. package/build/graphql/gqls/entry.js +17 -0
  27. package/build/graphql/gqls/entry.js.map +1 -0
  28. package/build/graphql/gqls/index.d.ts +1 -0
  29. package/build/graphql/gqls/index.d.ts.map +1 -1
  30. package/build/graphql/gqls/index.js +1 -0
  31. package/build/graphql/gqls/index.js.map +1 -1
  32. package/build/graphql/makeGraphQLRequest.d.ts +1 -1
  33. package/build/graphql/makeGraphQLRequest.d.ts.map +1 -1
  34. package/build/graphql/makeGraphQLRequest.js.map +1 -1
  35. package/build/graphql/syncPartitions.d.ts.map +1 -1
  36. package/build/graphql/syncPartitions.js +4 -0
  37. package/build/graphql/syncPartitions.js.map +1 -1
  38. package/build/oneTrust/helpers/enrichOneTrustAssessment.d.ts.map +1 -1
  39. package/build/oneTrust/helpers/enrichOneTrustAssessment.js +38 -30
  40. package/build/oneTrust/helpers/enrichOneTrustAssessment.js.map +1 -1
  41. package/build/oneTrust/helpers/index.d.ts +2 -0
  42. package/build/oneTrust/helpers/index.d.ts.map +1 -1
  43. package/build/oneTrust/helpers/index.js +2 -0
  44. package/build/oneTrust/helpers/index.js.map +1 -1
  45. package/build/oneTrust/helpers/oneTrustAssessmentToJson.js +3 -3
  46. package/build/oneTrust/helpers/oneTrustAssessmentToJson.js.map +1 -1
  47. package/build/oneTrust/helpers/parseCliSyncOtArguments.d.ts +5 -3
  48. package/build/oneTrust/helpers/parseCliSyncOtArguments.d.ts.map +1 -1
  49. package/build/oneTrust/helpers/parseCliSyncOtArguments.js +31 -10
  50. package/build/oneTrust/helpers/parseCliSyncOtArguments.js.map +1 -1
  51. package/build/oneTrust/helpers/syncOneTrustAssessmentToTranscend.d.ts +1 -1
  52. package/build/oneTrust/helpers/syncOneTrustAssessmentToTranscend.d.ts.map +1 -1
  53. package/build/oneTrust/helpers/syncOneTrustAssessmentToTranscend.js +11 -6
  54. package/build/oneTrust/helpers/syncOneTrustAssessmentToTranscend.js.map +1 -1
  55. package/build/oneTrust/helpers/syncOneTrustAssessmentsFromFile.d.ts +13 -0
  56. package/build/oneTrust/helpers/syncOneTrustAssessmentsFromFile.d.ts.map +1 -0
  57. package/build/oneTrust/helpers/syncOneTrustAssessmentsFromFile.js +78 -0
  58. package/build/oneTrust/helpers/syncOneTrustAssessmentsFromFile.js.map +1 -0
  59. package/build/oneTrust/helpers/{syncOneTrustAssessments.d.ts → syncOneTrustAssessmentsFromOneTrust.d.ts} +7 -2
  60. package/build/oneTrust/helpers/syncOneTrustAssessmentsFromOneTrust.d.ts.map +1 -0
  61. package/build/oneTrust/helpers/{syncOneTrustAssessments.js → syncOneTrustAssessmentsFromOneTrust.js} +50 -23
  62. package/build/oneTrust/helpers/syncOneTrustAssessmentsFromOneTrust.js.map +1 -0
  63. package/build/tsbuildinfo +1 -1
  64. package/package.json +3 -2
  65. package/build/oneTrust/helpers/syncOneTrustAssessments.d.ts.map +0 -1
  66. package/build/oneTrust/helpers/syncOneTrustAssessments.js.map +0 -1
@@ -12,7 +12,7 @@ const keyBy_1 = __importDefault(require("lodash/keyBy"));
12
12
  * @returns the assessment enriched with details and risk information
13
13
  */
14
14
  const enrichOneTrustAssessment = ({ assessment, assessmentDetails, riskDetails, creatorDetails, approversDetails, respondentsDetails, }) => {
15
- var _a, _b;
15
+ var _a, _b, _c, _d, _e, _f;
16
16
  const riskDetailsById = (0, keyBy_1.default)(riskDetails, 'id');
17
17
  const { sections, createdBy, ...restAssessmentDetails } = assessmentDetails;
18
18
  const sectionsWithEnrichedRisk = sections.map((section) => {
@@ -42,45 +42,53 @@ const enrichOneTrustAssessment = ({ assessment, assessmentDetails, riskDetails,
42
42
  // grab creator details
43
43
  const enrichedCreatedBy = {
44
44
  ...createdBy,
45
- active: creatorDetails.active,
46
- userType: creatorDetails.userType,
47
- emails: creatorDetails.emails,
48
- title: creatorDetails.title,
49
- givenName: (_a = creatorDetails.name.givenName) !== null && _a !== void 0 ? _a : null,
50
- familyName: (_b = creatorDetails.name.familyName) !== null && _b !== void 0 ? _b : null,
45
+ active: (_a = creatorDetails === null || creatorDetails === void 0 ? void 0 : creatorDetails.active) !== null && _a !== void 0 ? _a : false,
46
+ userType: (_b = creatorDetails === null || creatorDetails === void 0 ? void 0 : creatorDetails.userType) !== null && _b !== void 0 ? _b : 'Internal',
47
+ emails: (_c = creatorDetails === null || creatorDetails === void 0 ? void 0 : creatorDetails.emails) !== null && _c !== void 0 ? _c : [],
48
+ title: (_d = creatorDetails === null || creatorDetails === void 0 ? void 0 : creatorDetails.title) !== null && _d !== void 0 ? _d : null,
49
+ givenName: (_e = creatorDetails === null || creatorDetails === void 0 ? void 0 : creatorDetails.name.givenName) !== null && _e !== void 0 ? _e : null,
50
+ familyName: (_f = creatorDetails === null || creatorDetails === void 0 ? void 0 : creatorDetails.name.familyName) !== null && _f !== void 0 ? _f : null,
51
51
  };
52
52
  // grab approvers details
53
53
  const approverDetailsById = (0, keyBy_1.default)(approversDetails, 'id');
54
- const enrichedApprovers = assessmentDetails.approvers.map((originalApprover) => {
54
+ const enrichedApprovers = assessmentDetails.approvers.flatMap((originalApprover) => {
55
55
  var _a, _b;
56
- return ({
57
- ...originalApprover,
58
- approver: {
59
- ...originalApprover.approver,
60
- active: approverDetailsById[originalApprover.id].active,
61
- userType: approverDetailsById[originalApprover.id].userType,
62
- emails: approverDetailsById[originalApprover.id].emails,
63
- title: approverDetailsById[originalApprover.id].title,
64
- givenName: (_a = approverDetailsById[originalApprover.id].name.givenName) !== null && _a !== void 0 ? _a : null,
65
- familyName: (_b = approverDetailsById[originalApprover.id].name.familyName) !== null && _b !== void 0 ? _b : null,
66
- },
67
- });
56
+ return approverDetailsById[originalApprover.id]
57
+ ? [
58
+ {
59
+ ...originalApprover,
60
+ approver: {
61
+ ...originalApprover.approver,
62
+ active: approverDetailsById[originalApprover.id].active,
63
+ userType: approverDetailsById[originalApprover.id].userType,
64
+ emails: approverDetailsById[originalApprover.id].emails,
65
+ title: approverDetailsById[originalApprover.id].title,
66
+ givenName: (_a = approverDetailsById[originalApprover.id].name.givenName) !== null && _a !== void 0 ? _a : null,
67
+ familyName: (_b = approverDetailsById[originalApprover.id].name.familyName) !== null && _b !== void 0 ? _b : null,
68
+ },
69
+ },
70
+ ]
71
+ : [];
68
72
  });
69
73
  // grab respondents details
70
74
  const respondentsDetailsById = (0, keyBy_1.default)(respondentsDetails, 'id');
71
75
  const enrichedRespondents = assessmentDetails.respondents
72
76
  .filter((r) => !r.name.includes('@')) // search only internal respondents
73
- .map((respondent) => {
77
+ .flatMap((respondent) => {
74
78
  var _a, _b;
75
- return ({
76
- ...respondent,
77
- active: respondentsDetailsById[respondent.id].active,
78
- userType: respondentsDetailsById[respondent.id].userType,
79
- emails: respondentsDetailsById[respondent.id].emails,
80
- title: respondentsDetailsById[respondent.id].title,
81
- givenName: (_a = respondentsDetailsById[respondent.id].name.givenName) !== null && _a !== void 0 ? _a : null,
82
- familyName: (_b = respondentsDetailsById[respondent.id].name.familyName) !== null && _b !== void 0 ? _b : null,
83
- });
79
+ return respondentsDetailsById[respondent.id]
80
+ ? [
81
+ {
82
+ ...respondent,
83
+ active: respondentsDetailsById[respondent.id].active,
84
+ userType: respondentsDetailsById[respondent.id].userType,
85
+ emails: respondentsDetailsById[respondent.id].emails,
86
+ title: respondentsDetailsById[respondent.id].title,
87
+ givenName: (_a = respondentsDetailsById[respondent.id].name.givenName) !== null && _a !== void 0 ? _a : null,
88
+ familyName: (_b = respondentsDetailsById[respondent.id].name.familyName) !== null && _b !== void 0 ? _b : null,
89
+ },
90
+ ]
91
+ : [];
84
92
  });
85
93
  // combine everything into a single enriched assessment
86
94
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"enrichOneTrustAssessment.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/enrichOneTrustAssessment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enrichOneTrustAssessment.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/enrichOneTrustAssessment.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export * from './flattenOneTrustAssessment';
2
2
  export * from './parseCliSyncOtArguments';
3
3
  export * from './syncOneTrustAssessmentToDisk';
4
+ export * from './syncOneTrustAssessmentsFromOneTrust';
5
+ export * from './syncOneTrustAssessmentsFromFile';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC"}
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./flattenOneTrustAssessment"), exports);
18
18
  __exportStar(require("./parseCliSyncOtArguments"), exports);
19
19
  __exportStar(require("./syncOneTrustAssessmentToDisk"), exports);
20
+ __exportStar(require("./syncOneTrustAssessmentsFromOneTrust"), exports);
21
+ __exportStar(require("./syncOneTrustAssessmentsFromFile"), exports);
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,4DAA0C;AAC1C,iEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,4DAA0C;AAC1C,iEAA+C;AAC/C,wEAAsD;AACtD,oEAAkD"}
@@ -11,16 +11,16 @@ const oneTrustAssessmentToJson = ({ assessment, index, total, wrap = true, }) =>
11
11
  let jsonEntry = '';
12
12
  // start with an opening bracket
13
13
  if (index === 0 || wrap) {
14
- jsonEntry = '[';
14
+ jsonEntry = '[\n';
15
15
  }
16
16
  const stringifiedAssessment = JSON.stringify(assessment);
17
17
  // Add comma for all items except the last one
18
18
  const comma = index < total - 1 && !wrap ? ',' : '';
19
19
  // write to file
20
- jsonEntry = jsonEntry + stringifiedAssessment + comma;
20
+ jsonEntry = `${jsonEntry + stringifiedAssessment + comma}\n`;
21
21
  // end with closing bracket
22
22
  if (index === total - 1 || wrap) {
23
- jsonEntry += ']';
23
+ jsonEntry += '\n]';
24
24
  }
25
25
  return jsonEntry;
26
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"oneTrustAssessmentToJson.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/oneTrustAssessmentToJson.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,CAAC,EACvC,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,GAAG,IAAI,GAUZ,EAAU,EAAE;IACX,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,gCAAgC;IAChC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,EAAE;QACvB,SAAS,GAAG,GAAG,CAAC;KACjB;IAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEzD,8CAA8C;IAC9C,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpD,gBAAgB;IAChB,SAAS,GAAG,SAAS,GAAG,qBAAqB,GAAG,KAAK,CAAC;IAEtD,2BAA2B;IAC3B,IAAI,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE;QAC/B,SAAS,IAAI,GAAG,CAAC;KAClB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAnCW,QAAA,wBAAwB,4BAmCnC"}
1
+ {"version":3,"file":"oneTrustAssessmentToJson.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/oneTrustAssessmentToJson.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,CAAC,EACvC,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,GAAG,IAAI,GAUZ,EAAU,EAAE;IACX,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,gCAAgC;IAChC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,EAAE;QACvB,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEzD,8CAA8C;IAC9C,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpD,gBAAgB;IAChB,SAAS,GAAG,GAAG,SAAS,GAAG,qBAAqB,GAAG,KAAK,IAAI,CAAC;IAE7D,2BAA2B;IAC3B,IAAI,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE;QAC/B,SAAS,IAAI,KAAK,CAAC;KACpB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAnCW,QAAA,wBAAwB,4BAmCnC"}
@@ -1,11 +1,11 @@
1
- import { OneTrustFileFormat, OneTrustPullResource } from '../../enums';
1
+ import { OneTrustFileFormat, OneTrustPullResource, OneTrustPullSource } from '../../enums';
2
2
  interface OneTrustCliArguments {
3
3
  /** The name of the file to write the resources to */
4
4
  file: string;
5
5
  /** The OneTrust hostname to send the requests to */
6
- hostname: string;
6
+ hostname?: string;
7
7
  /** The OAuth Bearer token used to authenticate the requests to OneTrust */
8
- oneTrustAuth: string;
8
+ oneTrustAuth?: string;
9
9
  /** The Transcend API key to authenticate the requests to Transcend */
10
10
  transcendAuth: string;
11
11
  /** The Transcend URL where to forward requests */
@@ -18,6 +18,8 @@ interface OneTrustCliArguments {
18
18
  fileFormat: OneTrustFileFormat;
19
19
  /** Whether to export the resource into a file rather than push to transcend */
20
20
  dryRun: boolean;
21
+ /** Where to read the OneTrust resource from */
22
+ source: OneTrustPullSource;
21
23
  }
22
24
  /**
23
25
  * Parse the command line arguments
@@ -1 +1 @@
1
- {"version":3,"file":"parseCliSyncOtArguments.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/parseCliSyncOtArguments.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAKvE,UAAU,oBAAoB;IAC5B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,UAAU,EAAE,kBAAkB,CAAC;IAC/B,+EAA+E;IAC/E,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAO,oBA0J1C,CAAC"}
1
+ {"version":3,"file":"parseCliSyncOtArguments.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/parseCliSyncOtArguments.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAKrB,UAAU,oBAAoB;IAC5B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,UAAU,EAAE,kBAAkB,CAAC;IAC/B,+EAA+E;IAC/E,MAAM,EAAE,OAAO,CAAC;IAChB,+CAA+C;IAC/C,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAO,oBAwL1C,CAAC"}
@@ -16,7 +16,7 @@ const VALID_FILE_FORMATS = Object.values(enums_1.OneTrustFileFormat);
16
16
  * @returns the parsed arguments
17
17
  */
18
18
  const parseCliSyncOtArguments = () => {
19
- const { file, hostname, oneTrustAuth, resource, debug, fileFormat, dryRun, transcendAuth, transcendUrl, } = (0, yargs_parser_1.default)(process.argv.slice(2), {
19
+ const { file, hostname, oneTrustAuth, resource, debug, fileFormat, dryRun, transcendAuth, transcendUrl, source, } = (0, yargs_parser_1.default)(process.argv.slice(2), {
20
20
  string: [
21
21
  'file',
22
22
  'hostname',
@@ -26,6 +26,7 @@ const parseCliSyncOtArguments = () => {
26
26
  'dryRun',
27
27
  'transcendAuth',
28
28
  'transcendUrl',
29
+ 'source',
29
30
  ],
30
31
  boolean: ['debug', 'dryRun'],
31
32
  default: {
@@ -34,6 +35,7 @@ const parseCliSyncOtArguments = () => {
34
35
  debug: false,
35
36
  dryRun: false,
36
37
  transcendUrl: 'https://api.transcend.io',
38
+ source: enums_1.OneTrustPullSource.OneTrust,
37
39
  },
38
40
  });
39
41
  // Must be able to authenticate to transcend to sync resources to it
@@ -49,7 +51,7 @@ const parseCliSyncOtArguments = () => {
49
51
  'Must specify a "transcendUrl" parameter to sync resources to Transcend. e.g. --transcendUrl=https://api.transcend.io'));
50
52
  return process.exit(1);
51
53
  }
52
- // Can only sync to Transcend via a CSV file format!
54
+ // Can only sync to Transcend via a Json file format!
53
55
  if (!dryRun && fileFormat !== enums_1.OneTrustFileFormat.Json) {
54
56
  logger_1.logger.error(colors_1.default.red(`The "fileFormat" parameter must equal ${enums_1.OneTrustFileFormat.Json} to sync resources to Transcend.`));
55
57
  return process.exit(1);
@@ -77,13 +79,31 @@ const parseCliSyncOtArguments = () => {
77
79
  return process.exit(1);
78
80
  }
79
81
  }
80
- if (!hostname) {
81
- logger_1.logger.error(colors_1.default.red('Missing required parameter "hostname". e.g. --hostname=customer.my.onetrust.com'));
82
- return process.exit(1);
82
+ // if reading assessments from a OneTrust
83
+ if (source === enums_1.OneTrustPullSource.OneTrust) {
84
+ // must specify the OneTrust hostname
85
+ if (!hostname) {
86
+ logger_1.logger.error(colors_1.default.red('Missing required parameter "hostname". e.g. --hostname=customer.my.onetrust.com'));
87
+ return process.exit(1);
88
+ }
89
+ // must specify the OneTrust auth
90
+ if (!oneTrustAuth) {
91
+ logger_1.logger.error(colors_1.default.red('Missing required parameter "oneTrustAuth". e.g. --oneTrustAuth=$ONE_TRUST_AUTH_TOKEN'));
92
+ return process.exit(1);
93
+ }
83
94
  }
84
- if (!oneTrustAuth) {
85
- logger_1.logger.error(colors_1.default.red('Missing required parameter "oneTrustAuth". e.g. --oneTrustAuth=$ONE_TRUST_AUTH_TOKEN'));
86
- return process.exit(1);
95
+ else {
96
+ // if reading the assessments from a file, must specify a file to read from
97
+ if (!file) {
98
+ logger_1.logger.error(colors_1.default.red('Must specify a "file" parameter to read the OneTrust assessments from. e.g. --source=./oneTrustAssessments.json'));
99
+ return process.exit(1);
100
+ }
101
+ // Cannot try reading from file and save assessments to a file simultaneously
102
+ if (dryRun) {
103
+ logger_1.logger.error(colors_1.default.red('Cannot read and write to a file simultaneously.' +
104
+ ` Emit the "source" parameter or set it to ${enums_1.OneTrustPullSource.OneTrust} if "dryRun" is enabled.`));
105
+ return process.exit(1);
106
+ }
87
107
  }
88
108
  if (!VALID_RESOURCES.includes(resource)) {
89
109
  logger_1.logger.error(colors_1.default.red(`Received invalid resource value: "${resource}". Allowed: ${VALID_RESOURCES.join(',')}`));
@@ -95,14 +115,15 @@ const parseCliSyncOtArguments = () => {
95
115
  }
96
116
  return {
97
117
  file,
98
- hostname,
99
- oneTrustAuth,
118
+ ...(hostname && { hostname }),
119
+ ...(oneTrustAuth && { oneTrustAuth }),
100
120
  resource,
101
121
  debug,
102
122
  fileFormat,
103
123
  dryRun,
104
124
  transcendAuth,
105
125
  transcendUrl,
126
+ source,
106
127
  };
107
128
  };
108
129
  exports.parseCliSyncOtArguments = parseCliSyncOtArguments;
@@ -1 +1 @@
1
- {"version":3,"file":"parseCliSyncOtArguments.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/parseCliSyncOtArguments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseCliSyncOtArguments.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/parseCliSyncOtArguments.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,5 @@ export declare const syncOneTrustAssessmentToTranscend: ({ transcend, assessment
21
21
  index: number;
22
22
  /** The total amount of assessments that we will write */
23
23
  total: number;
24
- }) => Promise<AssessmentForm | undefined>;
24
+ }) => Promise<void>;
25
25
  //# sourceMappingURL=syncOneTrustAssessmentToTranscend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncOneTrustAssessmentToTranscend.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/syncOneTrustAssessmentToTranscend.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAGzE,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC;IAM5C,oCAAoC;eACzB,aAAa;IACxB,0CAA0C;gBAC9B,0BAA0B;IACtC,4DAA4D;WACrD,MAAM;IACb,yDAAyD;WAClD,MAAM;MACX,QAAQ,cAAc,GAAG,SAAS,CAgCrC,CAAC"}
1
+ {"version":3,"file":"syncOneTrustAssessmentToTranscend.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/syncOneTrustAssessmentToTranscend.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAGzE,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC;IAM5C,oCAAoC;eACzB,aAAa;IACxB,0CAA0C;gBAC9B,0BAA0B;IACtC,4DAA4D;WACrD,MAAM;IACb,yDAAyD;WAClD,MAAM;MACX,QAAQ,IAAI,CAqCf,CAAC"}
@@ -16,20 +16,25 @@ const oneTrustAssessmentToJson_1 = require("./oneTrustAssessmentToJson");
16
16
  */
17
17
  const syncOneTrustAssessmentToTranscend = async ({ transcend, assessment, total, index, }) => {
18
18
  logger_1.logger.info(colors_1.default.magenta(`Writing enriched assessment ${index + 1} of ${total} to Transcend...`));
19
- // convert the OneTrust assessment object into a CSV Record (a map from the csv header to values)
19
+ // convert the OneTrust assessment object into a json record
20
20
  const json = (0, oneTrustAssessmentToJson_1.oneTrustAssessmentToJson)({
21
21
  assessment,
22
22
  index,
23
23
  total,
24
24
  });
25
- // transform the csv record into a valid input to the mutation
25
+ // transform the json record into a valid input to the mutation
26
26
  const input = {
27
27
  json,
28
28
  };
29
- const { importOneTrustAssessmentForms: { assessmentForms }, } = await (0, graphql_1.makeGraphQLRequest)(transcend, graphql_1.IMPORT_ONE_TRUST_ASSESSMENT_FORMS, {
30
- input,
31
- });
32
- return assessmentForms[0];
29
+ try {
30
+ await (0, graphql_1.makeGraphQLRequest)(transcend, graphql_1.IMPORT_ONE_TRUST_ASSESSMENT_FORMS, {
31
+ input,
32
+ });
33
+ }
34
+ catch (e) {
35
+ logger_1.logger.error(colors_1.default.red(`Failed to sync assessment ${index + 1} of ${total} to Transcend.\n` +
36
+ `\tAssessment Title: ${assessment.name}. Template Title: ${assessment.template.name}\n`));
37
+ }
33
38
  };
34
39
  exports.syncOneTrustAssessmentToTranscend = syncOneTrustAssessmentToTranscend;
35
40
  //# sourceMappingURL=syncOneTrustAssessmentToTranscend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncOneTrustAssessmentToTranscend.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/syncOneTrustAssessmentToTranscend.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAsC;AACtC,oDAA4B;AAE5B,2CAGuB;AAGvB,yEAAsE;AAStE;;;;;GAKG;AACI,MAAM,iCAAiC,GAAG,KAAK,EAAE,EACtD,SAAS,EACT,UAAU,EACV,KAAK,EACL,KAAK,GAUN,EAAuC,EAAE;IACxC,eAAM,CAAC,IAAI,CACT,gBAAM,CAAC,OAAO,CACZ,+BAA+B,KAAK,GAAG,CAAC,OAAO,KAAK,kBAAkB,CACvE,CACF,CAAC;IAEF,iGAAiG;IACjG,MAAM,IAAI,GAAG,IAAA,mDAAwB,EAAC;QACpC,UAAU;QACV,KAAK;QACL,KAAK;KACN,CAAC,CAAC;IAEH,8DAA8D;IAC9D,MAAM,KAAK,GAAmC;QAC5C,IAAI;KACL,CAAC;IAEF,MAAM,EACJ,6BAA6B,EAAE,EAAE,eAAe,EAAE,GACnD,GAAG,MAAM,IAAA,4BAAkB,EAMzB,SAAS,EAAE,2CAAiC,EAAE;QAC/C,KAAK;KACN,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AA9CW,QAAA,iCAAiC,qCA8C5C"}
1
+ {"version":3,"file":"syncOneTrustAssessmentToTranscend.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/syncOneTrustAssessmentToTranscend.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAsC;AACtC,oDAA4B;AAE5B,2CAGuB;AAGvB,yEAAsE;AAStE;;;;;GAKG;AACI,MAAM,iCAAiC,GAAG,KAAK,EAAE,EACtD,SAAS,EACT,UAAU,EACV,KAAK,EACL,KAAK,GAUN,EAAiB,EAAE;IAClB,eAAM,CAAC,IAAI,CACT,gBAAM,CAAC,OAAO,CACZ,+BAA+B,KAAK,GAAG,CAAC,OAAO,KAAK,kBAAkB,CACvE,CACF,CAAC;IAEF,4DAA4D;IAC5D,MAAM,IAAI,GAAG,IAAA,mDAAwB,EAAC;QACpC,UAAU;QACV,KAAK;QACL,KAAK;KACN,CAAC,CAAC;IAEH,+DAA+D;IAC/D,MAAM,KAAK,GAAmC;QAC5C,IAAI;KACL,CAAC;IAEF,IAAI;QACF,MAAM,IAAA,4BAAkB,EAMrB,SAAS,EAAE,2CAAiC,EAAE;YAC/C,KAAK;SACN,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,6BAA6B,KAAK,GAAG,CAAC,OAAO,KAAK,kBAAkB;YAClE,uBAAuB,UAAU,CAAC,IAAI,qBAAqB,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAC1F,CACF,CAAC;KACH;AACH,CAAC,CAAC;AAnDW,QAAA,iCAAiC,qCAmD5C"}
@@ -0,0 +1,13 @@
1
+ import { GraphQLClient } from 'graphql-request';
2
+ /**
3
+ * Reads assessments from a file and syncs them to Transcend.
4
+ *
5
+ * @param param - the information about the source file and Transcend instance to write them to.
6
+ */
7
+ export declare const syncOneTrustAssessmentsFromFile: ({ transcend, file, }: {
8
+ /** the Transcend client instance */
9
+ transcend: GraphQLClient;
10
+ /** The name of the file from which to read the OneTrust assessments */
11
+ file: string;
12
+ }) => Promise<void>;
13
+ //# sourceMappingURL=syncOneTrustAssessmentsFromFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncOneTrustAssessmentsFromFile.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/syncOneTrustAssessmentsFromFile.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;IAI1C,oCAAoC;eACzB,aAAa;IACxB,uEAAuE;UACjE,MAAM;MACV,QAAQ,IAAI,CA6Cf,CAAC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.syncOneTrustAssessmentsFromFile = void 0;
30
+ const type_utils_1 = require("@transcend-io/type-utils");
31
+ const colors_1 = __importDefault(require("colors"));
32
+ const logger_1 = require("../../logger");
33
+ const fs_1 = require("fs");
34
+ const readline = __importStar(require("readline"));
35
+ const privacy_types_1 = require("@transcend-io/privacy-types");
36
+ const syncOneTrustAssessmentToTranscend_1 = require("./syncOneTrustAssessmentToTranscend");
37
+ /**
38
+ * Reads assessments from a file and syncs them to Transcend.
39
+ *
40
+ * @param param - the information about the source file and Transcend instance to write them to.
41
+ */
42
+ const syncOneTrustAssessmentsFromFile = async ({ transcend, file, }) => {
43
+ logger_1.logger.info(`Getting list of all assessments from file ${file}...`);
44
+ // Create a readable stream from the file
45
+ const fileStream = (0, fs_1.createReadStream)(file, {
46
+ encoding: 'utf-8',
47
+ highWaterMark: 64 * 1024, // 64KB chunks
48
+ });
49
+ // Create readline interface
50
+ const rl = readline.createInterface({
51
+ input: fileStream,
52
+ crlfDelay: Infinity,
53
+ });
54
+ let index = 0;
55
+ // Process the file line by line
56
+ // eslint-disable-next-line no-restricted-syntax
57
+ for await (const line of rl) {
58
+ try {
59
+ // Parse each non-empty line and sync to transcend
60
+ if (line.trim()) {
61
+ const parsedAssessment = (0, type_utils_1.decodeCodec)(privacy_types_1.OneTrustEnrichedAssessment, line.endsWith(',') ? line.slice(0, -1) : line);
62
+ await (0, syncOneTrustAssessmentToTranscend_1.syncOneTrustAssessmentToTranscend)({
63
+ assessment: parsedAssessment,
64
+ transcend,
65
+ total: 2178,
66
+ index,
67
+ });
68
+ }
69
+ index += 1;
70
+ }
71
+ catch (parseError) {
72
+ // if failed to parse a line, report error and continue
73
+ logger_1.logger.error(colors_1.default.red(`Failed to parse the line ${index} from file '${file}': ${parseError.message}.`));
74
+ }
75
+ }
76
+ };
77
+ exports.syncOneTrustAssessmentsFromFile = syncOneTrustAssessmentsFromFile;
78
+ //# sourceMappingURL=syncOneTrustAssessmentsFromFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncOneTrustAssessmentsFromFile.js","sourceRoot":"","sources":["../../../src/oneTrust/helpers/syncOneTrustAssessmentsFromFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AACvD,oDAA4B;AAC5B,yCAAsC;AAEtC,2BAAsC;AACtC,mDAAqC;AACrC,+DAAyE;AACzE,2FAAwF;AAGxF;;;;GAIG;AACI,MAAM,+BAA+B,GAAG,KAAK,EAAE,EACpD,SAAS,EACT,IAAI,GAML,EAAiB,EAAE;IAClB,eAAM,CAAC,IAAI,CAAC,6CAA6C,IAAI,KAAK,CAAC,CAAC;IAEpE,yCAAyC;IACzC,MAAM,UAAU,GAAG,IAAA,qBAAgB,EAAC,IAAI,EAAE;QACxC,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE,EAAE,GAAG,IAAI,EAAE,cAAc;KACzC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,gCAAgC;IAChC,gDAAgD;IAChD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE;QAC3B,IAAI;YACF,kDAAkD;YAClD,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;gBACf,MAAM,gBAAgB,GAAG,IAAA,wBAAW,EAClC,0CAA0B,EAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9C,CAAC;gBAEF,MAAM,IAAA,qEAAiC,EAAC;oBACtC,UAAU,EAAE,gBAAgB;oBAC5B,SAAS;oBACT,KAAK,EAAE,IAAI;oBACX,KAAK;iBACN,CAAC,CAAC;aACJ;YACD,KAAK,IAAI,CAAC,CAAC;SACZ;QAAC,OAAO,UAAU,EAAE;YACnB,uDAAuD;YACvD,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,4BAA4B,KAAK,eAAe,IAAI,MAAM,UAAU,CAAC,OAAO,GAAG,CAChF,CACF,CAAC;SACH;KACF;AACH,CAAC,CAAC;AArDW,QAAA,+BAA+B,mCAqD1C"}
@@ -7,7 +7,12 @@ export interface AssessmentForm {
7
7
  /** Title of Assessment Form */
8
8
  name: string;
9
9
  }
10
- export declare const syncOneTrustAssessments: ({ oneTrust, file, fileFormat, dryRun, transcend, }: {
10
+ /**
11
+ * Reads all the assessments from a OneTrust instance and syncs them to Transcend or to Disk.
12
+ *
13
+ * @param param - the information about the assessment, its OneTrust source, and destination (disk or Transcend)
14
+ */
15
+ export declare const syncOneTrustAssessmentsFromOneTrust: ({ oneTrust, file, fileFormat, dryRun, transcend, }: {
11
16
  /** the OneTrust client instance */
12
17
  oneTrust: Got;
13
18
  /** the Transcend client instance */
@@ -19,4 +24,4 @@ export declare const syncOneTrustAssessments: ({ oneTrust, file, fileFormat, dry
19
24
  /** the format of the file in case dryRun is true */
20
25
  fileFormat?: OneTrustFileFormat | undefined;
21
26
  }) => Promise<void>;
22
- //# sourceMappingURL=syncOneTrustAssessments.d.ts.map
27
+ //# sourceMappingURL=syncOneTrustAssessmentsFromOneTrust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncOneTrustAssessmentsFromOneTrust.d.ts","sourceRoot":"","sources":["../../../src/oneTrust/helpers/syncOneTrustAssessmentsFromOneTrust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAoBtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,mCAAmC;IAO9C,mCAAmC;cACzB,GAAG;IACb,oCAAoC;;IAEpC,+DAA+D;YACvD,OAAO;IACf,kDAAkD;;IAElD,oDAAoD;;MAElD,QAAQ,IAAI,CA4Lf,CAAC"}
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.syncOneTrustAssessments = void 0;
6
+ exports.syncOneTrustAssessmentsFromOneTrust = void 0;
7
+ const colors_1 = __importDefault(require("colors"));
7
8
  const endpoints_1 = require("../endpoints");
8
9
  const bluebird_1 = require("bluebird");
9
10
  const logger_1 = require("../../logger");
@@ -12,7 +13,12 @@ const enrichOneTrustAssessment_1 = require("./enrichOneTrustAssessment");
12
13
  const syncOneTrustAssessmentToDisk_1 = require("./syncOneTrustAssessmentToDisk");
13
14
  const enums_1 = require("../../enums");
14
15
  const syncOneTrustAssessmentToTranscend_1 = require("./syncOneTrustAssessmentToTranscend");
15
- const syncOneTrustAssessments = async ({ oneTrust, file, fileFormat, dryRun, transcend, }) => {
16
+ /**
17
+ * Reads all the assessments from a OneTrust instance and syncs them to Transcend or to Disk.
18
+ *
19
+ * @param param - the information about the assessment, its OneTrust source, and destination (disk or Transcend)
20
+ */
21
+ const syncOneTrustAssessmentsFromOneTrust = async ({ oneTrust, file, fileFormat, dryRun, transcend, }) => {
16
22
  // fetch the list of all assessments in the OneTrust organization
17
23
  logger_1.logger.info('Getting list of all assessments from OneTrust...');
18
24
  const assessments = await (0, endpoints_1.getListOfOneTrustAssessments)({ oneTrust });
@@ -28,22 +34,29 @@ const syncOneTrustAssessments = async ({ oneTrust, file, fileFormat, dryRun, tra
28
34
  const batchEnrichedAssessments = [];
29
35
  // fetch assessment details from OneTrust in parallel
30
36
  await (0, bluebird_1.map)(assessmentBatch, async (assessment, index) => {
31
- const assessmentNumber = BATCH_SIZE * batch + index;
37
+ const assessmentNumber = BATCH_SIZE * batch + index + 1;
32
38
  logger_1.logger.info(`[assessment ${assessmentNumber} of ${assessments.length}]: fetching details...`);
39
+ const { templateName, assessmentId } = assessment;
33
40
  const assessmentDetails = await (0, endpoints_1.getOneTrustAssessment)({
34
41
  oneTrust,
35
- assessmentId: assessment.assessmentId,
42
+ assessmentId,
36
43
  });
37
44
  // fetch assessment's creator information
38
45
  const creatorId = assessmentDetails.createdBy.id;
39
46
  let creator = oneTrustCachedUsers[creatorId];
40
47
  if (!creator) {
41
48
  logger_1.logger.info(`[assessment ${assessmentNumber} of ${assessments.length}]: fetching creator...`);
42
- creator = await (0, endpoints_1.getOneTrustUser)({
43
- oneTrust,
44
- userId: creatorId,
45
- });
46
- oneTrustCachedUsers[creatorId] = creator;
49
+ try {
50
+ creator = await (0, endpoints_1.getOneTrustUser)({
51
+ oneTrust,
52
+ userId: creatorId,
53
+ });
54
+ oneTrustCachedUsers[creatorId] = creator;
55
+ }
56
+ catch (e) {
57
+ logger_1.logger.error(colors_1.default.red(`[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch form creator.` +
58
+ `\tcreatorId: ${creatorId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`));
59
+ }
47
60
  }
48
61
  // fetch assessment approvers information
49
62
  const { approvers } = assessmentDetails;
@@ -51,12 +64,19 @@ const syncOneTrustAssessments = async ({ oneTrust, file, fileFormat, dryRun, tra
51
64
  if (approvers.length > 0) {
52
65
  logger_1.logger.info(`[assessment ${assessmentNumber} of ${assessments.length}]: fetching approvers...`);
53
66
  approversDetails = await (0, bluebird_1.map)(approvers.map(({ id }) => id), async (userId) => {
54
- let approver = oneTrustCachedUsers[userId];
55
- if (!approver) {
56
- approver = await (0, endpoints_1.getOneTrustUser)({ oneTrust, userId });
57
- oneTrustCachedUsers[userId] = approver;
67
+ try {
68
+ let approver = oneTrustCachedUsers[userId];
69
+ if (!approver) {
70
+ approver = await (0, endpoints_1.getOneTrustUser)({ oneTrust, userId });
71
+ oneTrustCachedUsers[userId] = approver;
72
+ }
73
+ return [approver];
74
+ }
75
+ catch (e) {
76
+ logger_1.logger.error(colors_1.default.red(`[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch a form approver.` +
77
+ `\tapproverId: ${userId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`));
78
+ return [];
58
79
  }
59
- return approver;
60
80
  }, { concurrency: 5 });
61
81
  }
62
82
  // fetch assessment internal respondents information
@@ -67,12 +87,19 @@ const syncOneTrustAssessments = async ({ oneTrust, file, fileFormat, dryRun, tra
67
87
  if (internalRespondents.length > 0) {
68
88
  logger_1.logger.info(`[assessment ${assessmentNumber} of ${assessments.length}]: fetching respondents...`);
69
89
  respondentsDetails = await (0, bluebird_1.map)(internalRespondents.map(({ id }) => id), async (userId) => {
70
- let respondent = oneTrustCachedUsers[userId];
71
- if (!respondent) {
72
- respondent = await (0, endpoints_1.getOneTrustUser)({ oneTrust, userId });
73
- oneTrustCachedUsers[userId] = respondent;
90
+ try {
91
+ let respondent = oneTrustCachedUsers[userId];
92
+ if (!respondent) {
93
+ respondent = await (0, endpoints_1.getOneTrustUser)({ oneTrust, userId });
94
+ oneTrustCachedUsers[userId] = respondent;
95
+ }
96
+ return [respondent];
97
+ }
98
+ catch (e) {
99
+ logger_1.logger.error(colors_1.default.red(`[assessment ${assessmentNumber} of ${assessments.length}]: failed to fetch a respondent.` +
100
+ `\trespondentId: ${userId}. Assessment Title: ${assessment.name}. Template Title: ${templateName}`));
101
+ return [];
74
102
  }
75
- return respondent;
76
103
  }, { concurrency: 5 });
77
104
  }
78
105
  // fetch assessment risk information
@@ -90,8 +117,8 @@ const syncOneTrustAssessments = async ({ oneTrust, file, fileFormat, dryRun, tra
90
117
  assessmentDetails,
91
118
  riskDetails,
92
119
  creatorDetails: creator,
93
- approversDetails,
94
- respondentsDetails,
120
+ approversDetails: approversDetails.flat(),
121
+ respondentsDetails: respondentsDetails.flat(),
95
122
  });
96
123
  batchEnrichedAssessments.push(enrichedAssessment);
97
124
  }, { concurrency: BATCH_SIZE });
@@ -121,5 +148,5 @@ const syncOneTrustAssessments = async ({ oneTrust, file, fileFormat, dryRun, tra
121
148
  });
122
149
  });
123
150
  };
124
- exports.syncOneTrustAssessments = syncOneTrustAssessments;
125
- //# sourceMappingURL=syncOneTrustAssessments.js.map
151
+ exports.syncOneTrustAssessmentsFromOneTrust = syncOneTrustAssessmentsFromOneTrust;
152
+ //# sourceMappingURL=syncOneTrustAssessmentsFromOneTrust.js.map