@transcend-io/cli 4.13.0 → 4.14.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 (46) hide show
  1. package/README.md +21 -2
  2. package/build/cli-request-upload.js +7 -1
  3. package/build/cli-request-upload.js.map +1 -1
  4. package/build/graphql/fetchAllAttributeKeys.d.ts +2 -0
  5. package/build/graphql/fetchAllAttributeKeys.d.ts.map +1 -1
  6. package/build/graphql/fetchAllAttributeKeys.js.map +1 -1
  7. package/build/graphql/gqls/attributeKey.d.ts.map +1 -1
  8. package/build/graphql/gqls/attributeKey.js +1 -0
  9. package/build/graphql/gqls/attributeKey.js.map +1 -1
  10. package/build/requests/constants.d.ts +24 -0
  11. package/build/requests/constants.d.ts.map +1 -1
  12. package/build/requests/constants.js +12 -0
  13. package/build/requests/constants.js.map +1 -1
  14. package/build/requests/extractClientError.d.ts +8 -0
  15. package/build/requests/extractClientError.d.ts.map +1 -0
  16. package/build/requests/extractClientError.js +15 -0
  17. package/build/requests/extractClientError.js.map +1 -0
  18. package/build/requests/index.d.ts +1 -0
  19. package/build/requests/index.d.ts.map +1 -1
  20. package/build/requests/index.js +1 -0
  21. package/build/requests/index.js.map +1 -1
  22. package/build/requests/mapColumnsToAttributes.d.ts +3 -1
  23. package/build/requests/mapColumnsToAttributes.d.ts.map +1 -1
  24. package/build/requests/mapColumnsToAttributes.js +6 -5
  25. package/build/requests/mapColumnsToAttributes.js.map +1 -1
  26. package/build/requests/mapColumnsToIdentifiers.d.ts.map +1 -1
  27. package/build/requests/mapColumnsToIdentifiers.js +4 -1
  28. package/build/requests/mapColumnsToIdentifiers.js.map +1 -1
  29. package/build/requests/mapCsvRowsToRequestInputs.d.ts +8 -2
  30. package/build/requests/mapCsvRowsToRequestInputs.d.ts.map +1 -1
  31. package/build/requests/mapCsvRowsToRequestInputs.js +18 -5
  32. package/build/requests/mapCsvRowsToRequestInputs.js.map +1 -1
  33. package/build/requests/mapRequestEnumValues.d.ts.map +1 -1
  34. package/build/requests/mapRequestEnumValues.js +8 -4
  35. package/build/requests/mapRequestEnumValues.js.map +1 -1
  36. package/build/requests/parseAttributesFromString.js +1 -1
  37. package/build/requests/parseAttributesFromString.js.map +1 -1
  38. package/build/requests/submitPrivacyRequest.d.ts +1 -1
  39. package/build/requests/submitPrivacyRequest.js +1 -1
  40. package/build/requests/submitPrivacyRequest.js.map +1 -1
  41. package/build/requests/uploadPrivacyRequestsFromCsv.d.ts +12 -1
  42. package/build/requests/uploadPrivacyRequestsFromCsv.d.ts.map +1 -1
  43. package/build/requests/uploadPrivacyRequestsFromCsv.js +98 -17
  44. package/build/requests/uploadPrivacyRequestsFromCsv.js.map +1 -1
  45. package/build/tsbuildinfo +1 -1
  46. package/package.json +3 -1
@@ -3,23 +3,34 @@
3
3
  *
4
4
  * @param options - Options
5
5
  */
6
- export declare function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraAuth, concurrency, transcendApiUrl, attributes, emailIsVerified, skipFilterStep, isTest, isSilent, dryRun, }: {
6
+ export declare function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraAuth, concurrency, defaultPhoneCountryCode, // USA
7
+ transcendApiUrl, attributes, emailIsVerified, clearSuccessfulRequests, clearFailingRequests, clearDuplicateRequests, skipFilterStep, isTest, isSilent, debug, dryRun, }: {
7
8
  /** File to cache metadata about mapping of CSV shape to script */
8
9
  cacheFilepath: string;
9
10
  /** CSV file path */
10
11
  file: string;
11
12
  /** Transcend API key authentication */
12
13
  auth: string;
14
+ /** Default country code for phone numbers */
15
+ defaultPhoneCountryCode?: string;
13
16
  /** Concurrency to upload in */
14
17
  concurrency?: number;
15
18
  /** API URL for Transcend backend */
16
19
  transcendApiUrl?: string;
17
20
  /** Sombra API key authentication */
18
21
  sombraAuth?: string;
22
+ /** Include debug logs */
23
+ debug?: boolean;
19
24
  /** Skip the step where requests are filtered */
20
25
  skipFilterStep?: boolean;
21
26
  /** Whether test requests are being uploaded */
22
27
  isTest?: boolean;
28
+ /** When true, clear out the failed requests from cache */
29
+ clearFailingRequests?: boolean;
30
+ /** When true, clear out the successful requests from cache */
31
+ clearSuccessfulRequests?: boolean;
32
+ /** When true, clear out duplicate requests from cache */
33
+ clearDuplicateRequests?: boolean;
23
34
  /** Whether requests are uploaded in silent mode */
24
35
  isSilent?: boolean;
25
36
  /** Whether the email was verified up front */
@@ -1 +1 @@
1
- {"version":3,"file":"uploadPrivacyRequestsFromCsv.d.ts","sourceRoot":"","sources":["../../src/requests/uploadPrivacyRequestsFromCsv.ts"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,EACjD,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,WAAgB,EAChB,eAA4C,EAC5C,UAAe,EACf,eAAsB,EACtB,cAAsB,EACtB,MAAc,EACd,QAAe,EACf,MAAc,GACf,EAAE;IACD,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyJhB"}
1
+ {"version":3,"file":"uploadPrivacyRequestsFromCsv.d.ts","sourceRoot":"","sources":["../../src/requests/uploadPrivacyRequestsFromCsv.ts"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,EACjD,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,WAAgB,EAChB,uBAA6B,EAAE,MAAM;AACrC,eAA4C,EAC5C,UAAe,EACf,eAAsB,EACtB,uBAA+B,EAC/B,oBAA4B,EAC5B,sBAA8B,EAC9B,cAAsB,EACtB,MAAc,EACd,QAAe,EACf,KAAa,EACb,MAAc,GACf,EAAE;IACD,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqQhB"}
@@ -27,6 +27,7 @@ const colors_1 = __importDefault(require("colors"));
27
27
  const bluebird_1 = require("bluebird");
28
28
  const t = __importStar(require("io-ts"));
29
29
  const uniq_1 = __importDefault(require("lodash/uniq"));
30
+ const cli_progress_1 = __importDefault(require("cli-progress"));
30
31
  const persisted_state_1 = require("@transcend-io/persisted-state");
31
32
  const logger_1 = require("../logger");
32
33
  const graphql_1 = require("../graphql");
@@ -40,12 +41,18 @@ const mapColumnsToAttributes_1 = require("./mapColumnsToAttributes");
40
41
  const mapColumnsToIdentifiers_1 = require("./mapColumnsToIdentifiers");
41
42
  const mapCsvRowsToRequestInputs_1 = require("./mapCsvRowsToRequestInputs");
42
43
  const filterRows_1 = require("./filterRows");
44
+ const extractClientError_1 = require("./extractClientError");
43
45
  /**
44
46
  * Upload a set of privacy requests from CSV
45
47
  *
46
48
  * @param options - Options
47
49
  */
48
- async function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraAuth, concurrency = 20, transcendApiUrl = 'https://api.transcend.io', attributes = [], emailIsVerified = true, skipFilterStep = false, isTest = false, isSilent = true, dryRun = false, }) {
50
+ async function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraAuth, concurrency = 20, defaultPhoneCountryCode = '1', // USA
51
+ transcendApiUrl = 'https://api.transcend.io', attributes = [], emailIsVerified = true, clearSuccessfulRequests = false, clearFailingRequests = false, clearDuplicateRequests = false, skipFilterStep = false, isTest = false, isSilent = true, debug = false, dryRun = false, }) {
52
+ // Time duration
53
+ const t0 = new Date().getTime();
54
+ // create a new progress bar instance and use shades_classic theme
55
+ const progressBar = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
49
56
  // Parse out the extra attributes to apply to all requests uploaded
50
57
  const parsedAttributes = (0, parseAttributesFromString_1.parseAttributesFromString)(attributes);
51
58
  // Create a new state to persist the metadata that
@@ -59,8 +66,20 @@ async function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraA
59
66
  statusToRequestStatus: {},
60
67
  identifierNames: {},
61
68
  attributeNames: {},
69
+ successfulRequests: [],
70
+ duplicateRequests: [],
62
71
  failingRequests: [],
63
72
  };
73
+ if (clearFailingRequests) {
74
+ cached.failingRequests = [];
75
+ }
76
+ if (clearSuccessfulRequests) {
77
+ cached.successfulRequests = [];
78
+ }
79
+ if (clearDuplicateRequests) {
80
+ cached.duplicateRequests = [];
81
+ }
82
+ state.setValue(cached, file);
64
83
  // Create sombra instance to communicate with
65
84
  const sombra = await (0, graphql_1.createSombraGotInstance)(transcendApiUrl, auth, sombraAuth);
66
85
  // Read in the list of integration requests
@@ -70,8 +89,10 @@ async function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraA
70
89
  if (requestsList.length === 0) {
71
90
  throw new Error('No Requests found in list! Ensure the first row of the CSV is a header and the rest are requests.');
72
91
  }
73
- const firstRequest = requestsList[0];
74
- logger_1.logger.info(colors_1.default.magenta(`First request: ${JSON.stringify(firstRequest, null, 2)}`));
92
+ if (debug) {
93
+ const firstRequest = requestsList[0];
94
+ logger_1.logger.info(colors_1.default.magenta(`First request: ${JSON.stringify(firstRequest, null, 2)}`));
95
+ }
75
96
  // Determine what rows in the CSV should be imported
76
97
  // Choose columns that contain metadata to filter the requests
77
98
  const filteredRequestList = skipFilterStep
@@ -79,12 +100,15 @@ async function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraA
79
100
  : await (0, filterRows_1.filterRows)(requestsList);
80
101
  // Build a GraphQL client
81
102
  const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendApiUrl, auth);
103
+ // Grab the request attributes
104
+ const requestAttributeKeys = await (0, graphql_1.fetchAllRequestAttributeKeys)(client);
82
105
  // Determine the columns that should be mapped
83
106
  const columnNameMap = await (0, mapCsvColumnsToApi_1.mapCsvColumnsToApi)(columnNames, cached);
84
107
  state.setValue(cached, file);
85
108
  const identifierNameMap = await (0, mapColumnsToIdentifiers_1.mapColumnsToIdentifiers)(client, columnNames, cached);
86
109
  state.setValue(cached, file);
87
- const attributeNameMap = await (0, mapColumnsToAttributes_1.mapColumnsToAttributes)(client, columnNames, cached);
110
+ const attributeNameMap = await (0, mapColumnsToAttributes_1.mapColumnsToAttributes)(client, columnNames, cached, requestAttributeKeys);
111
+ state.setValue(cached, file);
88
112
  await (0, mapRequestEnumValues_1.mapRequestEnumValues)(client, filteredRequestList, {
89
113
  fileName: file,
90
114
  state,
@@ -93,14 +117,27 @@ async function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraA
93
117
  cached = state.getValue(file);
94
118
  // map the CSV to request input
95
119
  const requestInputs = (0, mapCsvRowsToRequestInputs_1.mapCsvRowsToRequestInputs)(filteredRequestList, cached, {
120
+ defaultPhoneCountryCode,
96
121
  columnNameMap,
97
122
  identifierNameMap,
98
123
  attributeNameMap,
124
+ requestAttributeKeys,
99
125
  });
126
+ // start the progress bar with a total value of 200 and start value of 0
127
+ if (!debug) {
128
+ progressBar.start(requestInputs.length, 0);
129
+ }
130
+ let total = 0;
100
131
  // Submit each request
101
132
  await (0, bluebird_1.map)(requestInputs, async ([rawRow, requestInput], ind) => {
102
133
  var _a;
103
- logger_1.logger.info(colors_1.default.magenta(`[${ind}/${requestInputs.length}] Importing: ${JSON.stringify(requestInput, null, 2)}`));
134
+ // The identifier to log, only include personal data if debug mode is on
135
+ const requestLogId = debug
136
+ ? `email:${requestInput.email} | coreIdentifier:${requestInput.coreIdentifier}`
137
+ : `row:${ind.toString()}`;
138
+ if (debug) {
139
+ logger_1.logger.info(colors_1.default.magenta(`[${ind}/${requestInputs.length}] Importing: ${JSON.stringify(requestInput, null, 2)}`));
140
+ }
104
141
  // Skip on dry run
105
142
  if (dryRun) {
106
143
  logger_1.logger.info(colors_1.default.magenta('Bailing out on dry run because dryRun is set'));
@@ -115,25 +152,69 @@ async function uploadPrivacyRequestsFromCsv({ cacheFilepath, file, auth, sombraA
115
152
  isSilent,
116
153
  additionalAttributes: parsedAttributes,
117
154
  });
118
- logger_1.logger.info(colors_1.default.green(
119
- // eslint-disable-next-line max-len
120
- `[${ind}/${requestInputs.length}] Successfully submitted the test data subject request for email: "${requestInput.email}"`));
121
- logger_1.logger.info(colors_1.default.green(`[${ind}/${requestInputs.length}] View it at: "${requestResponse.link}"`));
122
- }
123
- catch (err) {
124
- const msg = `${err.message} - ${JSON.stringify((_a = err.response) === null || _a === void 0 ? void 0 : _a.body, null, 2)}`;
125
- cached.failingRequests.push({
126
- ...requestInput,
127
- error: msg,
155
+ // Log success
156
+ if (debug) {
157
+ logger_1.logger.info(colors_1.default.green(`[${ind}/${requestInputs.length}] Successfully submitted the test data subject request: "${requestLogId}"`));
158
+ logger_1.logger.info(colors_1.default.green(`[${ind}/${requestInputs.length}] View it at: "${requestResponse.link}"`));
159
+ }
160
+ // Cache successful upload
161
+ cached.successfulRequests.push({
162
+ id: requestResponse.id,
163
+ link: requestResponse.link,
164
+ coreIdentifier: requestResponse.coreIdentifier,
128
165
  attemptedAt: new Date().toISOString(),
129
166
  });
130
167
  state.setValue(cached, file);
131
- logger_1.logger.error(colors_1.default.red(msg));
132
- logger_1.logger.error(colors_1.default.red(`[${ind}/${requestInputs.length}] Failed to submit request for: "${requestInput.email}"`));
168
+ }
169
+ catch (err) {
170
+ const msg = `${err.message} - ${JSON.stringify((_a = err.response) === null || _a === void 0 ? void 0 : _a.body, null, 2)}`;
171
+ const clientError = (0, extractClientError_1.extractClientError)(msg);
172
+ if (clientError === 'Client error: You have already made this request.') {
173
+ if (debug) {
174
+ logger_1.logger.info(colors_1.default.yellow(`[${ind}/${requestInputs.length}] Skipping request as it is a duplicate`));
175
+ }
176
+ cached.duplicateRequests.push({
177
+ coreIdentifier: requestInput.coreIdentifier,
178
+ attemptedAt: new Date().toISOString(),
179
+ });
180
+ state.setValue(cached, file);
181
+ }
182
+ else {
183
+ cached.failingRequests.push({
184
+ ...requestInput,
185
+ error: clientError || msg,
186
+ attemptedAt: new Date().toISOString(),
187
+ });
188
+ state.setValue(cached, file);
189
+ if (debug) {
190
+ logger_1.logger.error(colors_1.default.red(clientError || msg));
191
+ logger_1.logger.error(colors_1.default.red(`[${ind}/${requestInputs.length}] Failed to submit request for: "${requestLogId}"`));
192
+ }
193
+ }
194
+ }
195
+ total += 1;
196
+ if (!debug) {
197
+ progressBar.update(total);
133
198
  }
134
199
  }, {
135
200
  concurrency,
136
201
  });
202
+ progressBar.stop();
203
+ const t1 = new Date().getTime();
204
+ const totalTime = t1 - t0;
205
+ // Log completion time
206
+ logger_1.logger.info(colors_1.default.green(`Completed upload in "${totalTime / 1000}" seconds.`));
207
+ // Log duplicates
208
+ if (cached.duplicateRequests.length > 0) {
209
+ logger_1.logger.info(colors_1.default.magenta(`Encountered "${cached.duplicateRequests.length}" duplicate requests. ` +
210
+ `See "${cacheFilepath}" to review the core identifiers for these requests.`));
211
+ }
212
+ // Log errors
213
+ if (cached.failingRequests.length > 0) {
214
+ logger_1.logger.error(colors_1.default.red(`Encountered "${cached.failingRequests.length}" errors. ` +
215
+ `See "${cacheFilepath}" to review the error messages and inputs.`));
216
+ process.exit(1);
217
+ }
137
218
  }
138
219
  exports.uploadPrivacyRequestsFromCsv = uploadPrivacyRequestsFromCsv;
139
220
  //# sourceMappingURL=uploadPrivacyRequestsFromCsv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uploadPrivacyRequestsFromCsv.js","sourceRoot":"","sources":["../../src/requests/uploadPrivacyRequestsFromCsv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uploadPrivacyRequestsFromCsv.js","sourceRoot":"","sources":["../../src/requests/uploadPrivacyRequestsFromCsv.ts"],"names":[],"mappings":"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"}