@transcend-io/cli 6.17.0 → 6.18.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 (29) hide show
  1. package/README.md +2 -0
  2. package/build/cli-chunk-csv.d.ts +14 -0
  3. package/build/cli-chunk-csv.d.ts.map +1 -0
  4. package/build/cli-chunk-csv.js +140 -0
  5. package/build/cli-chunk-csv.js.map +1 -0
  6. package/build/cli-upload-preferences.js +78 -18
  7. package/build/cli-upload-preferences.js.map +1 -1
  8. package/build/cron/writeCsv.d.ts +17 -1
  9. package/build/cron/writeCsv.d.ts.map +1 -1
  10. package/build/cron/writeCsv.js +51 -2
  11. package/build/cron/writeCsv.js.map +1 -1
  12. package/build/enums.d.ts +2 -2
  13. package/build/enums.d.ts.map +1 -1
  14. package/build/preference-management/getPreferencesForIdentifiers.d.ts.map +1 -1
  15. package/build/preference-management/getPreferencesForIdentifiers.js +6 -1
  16. package/build/preference-management/getPreferencesForIdentifiers.js.map +1 -1
  17. package/build/preference-management/parsePreferenceAndPurposeValuesFromCsv.d.ts.map +1 -1
  18. package/build/preference-management/parsePreferenceAndPurposeValuesFromCsv.js +75 -10
  19. package/build/preference-management/parsePreferenceAndPurposeValuesFromCsv.js.map +1 -1
  20. package/build/preference-management/parsePreferenceManagementCsv.d.ts +3 -1
  21. package/build/preference-management/parsePreferenceManagementCsv.d.ts.map +1 -1
  22. package/build/preference-management/parsePreferenceManagementCsv.js +7 -5
  23. package/build/preference-management/parsePreferenceManagementCsv.js.map +1 -1
  24. package/build/preference-management/uploadPreferenceManagementPreferencesInteractive.d.ts +3 -1
  25. package/build/preference-management/uploadPreferenceManagementPreferencesInteractive.d.ts.map +1 -1
  26. package/build/preference-management/uploadPreferenceManagementPreferencesInteractive.js +2 -1
  27. package/build/preference-management/uploadPreferenceManagementPreferencesInteractive.js.map +1 -1
  28. package/build/tsbuildinfo +1 -1
  29. package/package.json +1 -1
package/README.md CHANGED
@@ -2486,6 +2486,8 @@ In order to use this cli, you will first need to follow [this guide](https://doc
2486
2486
 
2487
2487
  #### Usage
2488
2488
 
2489
+ A sample CSV can be found [here](./examples/cli-upload-preferences-example.csv). In this example, `Sales` and `Marketing` are two custom Purposes, and `SalesCommunications` and `MarketingCommunications` are Preference Topics. During the interactive CLI prompt, you can map these columns to the slugs stored in Transcend!
2490
+
2489
2491
  Upload consent preferences to partition key `4d1c5daa-90b7-4d18-aa40-f86a43d2c726`
2490
2492
 
2491
2493
  ```sh
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Chunks a large CSV file into smaller files of approximately 1.5GB each
4
+ * Note that you may need to increase the node memory limit for this script to run!!
5
+ *
6
+ * Dev Usage:
7
+ * yarn ts-node ./src/cli-chunk-csv.ts --inputFile=./working/full_export.csv
8
+ *
9
+ * Standard usage:
10
+ * yarn tr-chunk-csv --inputFile=/path/to/large.csv --outputDir=/path/to/output
11
+ */
12
+ declare function main(): Promise<void>;
13
+ export { main };
14
+ //# sourceMappingURL=cli-chunk-csv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-chunk-csv.d.ts","sourceRoot":"","sources":["../src/cli-chunk-csv.ts"],"names":[],"mappings":";AA4BA;;;;;;;;;GASG;AACH,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA2InC;AAUD,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.main = void 0;
8
+ const csv_parse_1 = require("csv-parse");
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ const promises_1 = require("stream/promises");
12
+ const stream_1 = require("stream");
13
+ const yargs_parser_1 = __importDefault(require("yargs-parser"));
14
+ const colors_1 = __importDefault(require("colors"));
15
+ const logger_1 = require("./logger");
16
+ const writeCsv_1 = require("./cron/writeCsv");
17
+ /** Size of each chunk in bytes (need to stay WELL under JS string size limit of 512MB) */
18
+ const CHUNK_SIZE = 10 * 1024 * 1024;
19
+ /**
20
+ * Format memory usage for logging
21
+ *
22
+ * @param memoryData - The NodeJS memory usage data to format
23
+ * @returns A formatted string showing memory usage in MB
24
+ */
25
+ function formatMemoryUsage(memoryData) {
26
+ return Object.entries(memoryData)
27
+ .map(([key, value]) => `${key}: ${(value / 1024 / 1024).toFixed(2)} MB`)
28
+ .join(', ');
29
+ }
30
+ /**
31
+ * Chunks a large CSV file into smaller files of approximately 1.5GB each
32
+ * Note that you may need to increase the node memory limit for this script to run!!
33
+ *
34
+ * Dev Usage:
35
+ * yarn ts-node ./src/cli-chunk-csv.ts --inputFile=./working/full_export.csv
36
+ *
37
+ * Standard usage:
38
+ * yarn tr-chunk-csv --inputFile=/path/to/large.csv --outputDir=/path/to/output
39
+ */
40
+ async function main() {
41
+ // Parse command line arguments
42
+ const { inputFile, outputDir } = (0, yargs_parser_1.default)(process.argv.slice(2));
43
+ // Ensure inputFile is provided
44
+ if (!inputFile) {
45
+ logger_1.logger.error(colors_1.default.red('An input file must be provided. You can specify using --inputFile=/path/to/large.csv'));
46
+ process.exit(1);
47
+ }
48
+ const baseFileName = (0, path_1.basename)(inputFile, '.csv');
49
+ const outputDirectory = outputDir || (0, path_1.dirname)(inputFile);
50
+ let currentChunkSize = 0;
51
+ let currentChunkNumber = 1;
52
+ let headerRow = null;
53
+ let currentOutputFile = (0, path_1.join)(outputDirectory, `${baseFileName}_chunk1.csv`);
54
+ let expectedColumnCount = null;
55
+ let totalLinesProcessed = 0;
56
+ const parser = new csv_parse_1.Parser({
57
+ columns: false,
58
+ skip_empty_lines: true,
59
+ });
60
+ const chunker = new stream_1.Transform({
61
+ objectMode: true,
62
+ /**
63
+ * Transform function that processes each chunk of CSV data
64
+ *
65
+ * @param chunk - Array of strings representing a CSV row
66
+ * @param encoding - The encoding of the chunk
67
+ * @param callback - Callback function to signal completion
68
+ */
69
+ transform(chunk, encoding, callback) {
70
+ if (!headerRow) {
71
+ headerRow = chunk;
72
+ expectedColumnCount = headerRow.length;
73
+ logger_1.logger.info(colors_1.default.blue(`Found header row with ${expectedColumnCount} columns: ${headerRow.join(', ')}`));
74
+ callback();
75
+ return;
76
+ }
77
+ // Validate row structure
78
+ if (expectedColumnCount !== null &&
79
+ chunk.length !== expectedColumnCount) {
80
+ logger_1.logger.warn(colors_1.default.yellow(`Warning: Row ${totalLinesProcessed + 1} has ${chunk.length} columns, expected ${expectedColumnCount}`));
81
+ }
82
+ totalLinesProcessed += 1;
83
+ if (totalLinesProcessed % 1000000 === 0) {
84
+ const memoryUsage = formatMemoryUsage(process.memoryUsage());
85
+ logger_1.logger.info(colors_1.default.blue(`Processed ${totalLinesProcessed.toLocaleString()} lines... ` +
86
+ `Memory usage: ${memoryUsage}`));
87
+ }
88
+ const rowSize = Buffer.byteLength(chunk.join(','), 'utf8');
89
+ // Write the current row immediately
90
+ const data = [
91
+ {
92
+ ...Object.fromEntries(headerRow.map((header, index) => [header, chunk[index]])),
93
+ },
94
+ ];
95
+ currentChunkSize += rowSize;
96
+ if (currentChunkSize === rowSize) {
97
+ logger_1.logger.info(colors_1.default.yellow(`Starting new chunk ${currentChunkNumber} at ${currentOutputFile}`));
98
+ (0, writeCsv_1.writeCsvSync)(currentOutputFile, data, headerRow);
99
+ }
100
+ else {
101
+ (0, writeCsv_1.appendCsvSync)(currentOutputFile, data);
102
+ }
103
+ // Determine if we need to start a new chunk
104
+ if (currentChunkSize + rowSize > CHUNK_SIZE) {
105
+ currentChunkNumber += 1;
106
+ currentChunkSize = 0;
107
+ currentOutputFile = (0, path_1.join)(outputDirectory, `${baseFileName}_chunk${currentChunkNumber}.csv`);
108
+ }
109
+ callback();
110
+ },
111
+ /**
112
+ * Flush function that writes the final chunk of data
113
+ *
114
+ * @param callback - Callback function to signal completion
115
+ */
116
+ flush(callback) {
117
+ callback();
118
+ },
119
+ });
120
+ const readStream = (0, fs_1.createReadStream)(inputFile);
121
+ try {
122
+ logger_1.logger.info(colors_1.default.blue(`Starting to process ${inputFile}...`));
123
+ await (0, promises_1.pipeline)(readStream, parser, chunker);
124
+ logger_1.logger.info(colors_1.default.green(`Successfully chunked ${inputFile} into ${currentChunkNumber} files ` +
125
+ `(${totalLinesProcessed.toLocaleString()} total lines processed)`));
126
+ }
127
+ catch (error) {
128
+ logger_1.logger.error(colors_1.default.red('Error chunking CSV file:'), error);
129
+ process.exit(1);
130
+ }
131
+ }
132
+ exports.main = main;
133
+ // Run the main function if this file is being run directly
134
+ if (require.main === module) {
135
+ main().catch((error) => {
136
+ logger_1.logger.error(colors_1.default.red('Error:'), error);
137
+ process.exit(1);
138
+ });
139
+ }
140
+ //# sourceMappingURL=cli-chunk-csv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-chunk-csv.js","sourceRoot":"","sources":["../src/cli-chunk-csv.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@ const logger_1 = require("./logger");
10
10
  const constants_1 = require("./constants");
11
11
  const preference_management_1 = require("./preference-management");
12
12
  const requests_1 = require("./requests");
13
+ const fs_1 = require("fs");
14
+ const bluebird_1 = require("bluebird");
15
+ const path_1 = require("path");
13
16
  /**
14
17
  * Upload consent preferences to the managed consent database
15
18
  *
@@ -17,18 +20,20 @@ const requests_1 = require("./requests");
17
20
  * https://docs.transcend.io/docs/consent/reference/managed-consent-database
18
21
  *
19
22
  * Dev Usage:
20
- * yarn ts-node ./src/cli-upload-consent-preferences-interactive --base64EncryptionKey=$TRANSCEND_CONSENT_ENCRYPTION_KEY \
23
+ * yarn ts-node ./src/cli-upload-preferences --base64EncryptionKey=$TRANSCEND_CONSENT_ENCRYPTION_KEY \
21
24
  * --base64SigningKey=$TRANSCEND_CONSENT_SIGNING_KEY --partition=4d1c5daa-90b7-4d18-aa40-f86a43d2c726
22
25
  *
23
26
  * Standard usage:
24
- * yarn tr-upload-consent-preferences-interactive --base64EncryptionKey=$TRANSCEND_CONSENT_ENCRYPTION_KEY \
27
+ * yarn tr-upload-preferences --base64EncryptionKey=$TRANSCEND_CONSENT_ENCRYPTION_KEY \
25
28
  * --base64SigningKey=$TRANSCEND_CONSENT_SIGNING_KEY --partition=4d1c5daa-90b7-4d18-aa40-f86a43d2c726
26
29
  */
27
30
  async function main() {
28
31
  // Parse command line arguments
29
32
  const {
33
+ /** Directory to load preferences from */
34
+ directory,
30
35
  /** File to load preferences from */
31
- file = './preferences.csv',
36
+ file,
32
37
  /** Transcend URL */
33
38
  transcendUrl = constants_1.DEFAULT_TRANSCEND_API,
34
39
  /** API key */
@@ -43,12 +48,16 @@ async function main() {
43
48
  skipWorkflowTriggers = 'false',
44
49
  /** Whether to skip conflict updates */
45
50
  skipConflictUpdates = 'false',
51
+ /** Whether to skip the check for existing records. SHOULD ONLY BE USED FOR INITIAL UPLOAD */
52
+ skipExistingRecordCheck = 'false',
46
53
  /** Whether to skip sending emails */
47
54
  isSilent = 'true',
48
55
  /** Attributes to add to any DSR request if created */
49
56
  attributes = 'Tags:transcend-cli,Source:transcend-cli',
50
57
  /** Store resulting, continuing where left off */
51
- receiptFilepath = './preference-management-upload-receipts.json', } = (0, yargs_parser_1.default)(process.argv.slice(2));
58
+ receiptFileDir = './receipts',
59
+ /** Number of files to process concurrently (only relevant for directory processing) */
60
+ concurrency = '10', } = (0, yargs_parser_1.default)(process.argv.slice(2));
52
61
  // Ensure auth is passed
53
62
  if (!auth) {
54
63
  logger_1.logger.error(colors_1.default.red('A Transcend API key must be provided. You can specify using --auth=$TRANSCEND_API_KEY'));
@@ -60,20 +69,71 @@ async function main() {
60
69
  'You can specify using --partition=ee1a0845-694e-4820-9d51-50c7d0a23467'));
61
70
  process.exit(1);
62
71
  }
63
- // Upload cookies
64
- await (0, preference_management_1.uploadPreferenceManagementPreferencesInteractive)({
65
- receiptFilepath,
66
- auth,
67
- sombraAuth,
68
- file,
69
- partition,
70
- transcendUrl,
71
- skipConflictUpdates: skipConflictUpdates !== 'false',
72
- skipWorkflowTriggers: skipWorkflowTriggers !== 'false',
73
- isSilent: isSilent !== 'false',
74
- dryRun: dryRun !== 'false',
75
- attributes: (0, requests_1.splitCsvToList)(attributes),
76
- });
72
+ if (!!directory && !!file) {
73
+ logger_1.logger.error(colors_1.default.red('Cannot provide both a directory and a file. Please provide only one.'));
74
+ process.exit(1);
75
+ }
76
+ if (!file && !directory) {
77
+ logger_1.logger.error(colors_1.default.red(
78
+ // eslint-disable-next-line max-len
79
+ 'A file or directory must be provided. Please provide one using --file=./preferences.csv or --directory=./preferences'));
80
+ process.exit(1);
81
+ }
82
+ const files = [];
83
+ if (directory) {
84
+ try {
85
+ const filesInDirectory = (0, fs_1.readdirSync)(directory);
86
+ const csvFiles = filesInDirectory.filter((file) => file.endsWith('.csv'));
87
+ if (csvFiles.length === 0) {
88
+ logger_1.logger.error(colors_1.default.red(`No CSV files found in directory: ${directory}`));
89
+ process.exit(1);
90
+ }
91
+ // Add full paths for each CSV file
92
+ files.push(...csvFiles.map((file) => (0, path_1.join)(directory, file)));
93
+ }
94
+ catch (err) {
95
+ logger_1.logger.error(colors_1.default.red(`Failed to read directory: ${directory}`));
96
+ logger_1.logger.error(colors_1.default.red(err.message));
97
+ process.exit(1);
98
+ }
99
+ }
100
+ else {
101
+ try {
102
+ // Verify file exists and is a CSV
103
+ if (!file.endsWith('.csv')) {
104
+ logger_1.logger.error(colors_1.default.red('File must be a CSV file'));
105
+ process.exit(1);
106
+ }
107
+ files.push(file);
108
+ }
109
+ catch (err) {
110
+ logger_1.logger.error(colors_1.default.red(`Failed to access file: ${file}`));
111
+ logger_1.logger.error(colors_1.default.red(err.message));
112
+ process.exit(1);
113
+ }
114
+ }
115
+ logger_1.logger.info(colors_1.default.green(`Processing ${files.length} consent preferences files for partition: ${partition}`));
116
+ logger_1.logger.debug(`Files to process: ${files.join(', ')}`);
117
+ if (skipExistingRecordCheck !== 'false') {
118
+ logger_1.logger.info(colors_1.default.bgYellow(`Skipping existing record check: ${skipExistingRecordCheck}`));
119
+ }
120
+ await (0, bluebird_1.map)(files, async (filePath) => {
121
+ const fileName = (0, path_1.basename)(filePath).replace('.csv', '');
122
+ await (0, preference_management_1.uploadPreferenceManagementPreferencesInteractive)({
123
+ receiptFilepath: (0, path_1.join)(receiptFileDir, `${fileName}-receipts.json`),
124
+ auth,
125
+ sombraAuth,
126
+ file: filePath,
127
+ partition,
128
+ transcendUrl,
129
+ skipConflictUpdates: skipConflictUpdates !== 'false',
130
+ skipWorkflowTriggers: skipWorkflowTriggers !== 'false',
131
+ skipExistingRecordCheck: skipExistingRecordCheck !== 'false',
132
+ isSilent: isSilent !== 'false',
133
+ dryRun: dryRun !== 'false',
134
+ attributes: (0, requests_1.splitCsvToList)(attributes),
135
+ });
136
+ }, { concurrency: parseInt(concurrency, 10) });
77
137
  }
78
138
  main();
79
139
  //# sourceMappingURL=cli-upload-preferences.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-upload-preferences.js","sourceRoot":"","sources":["../src/cli-upload-preferences.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAiC;AACjC,oDAA4B;AAE5B,qCAAkC;AAClC,2CAAoD;AACpD,mEAA2F;AAC3F,yCAA4C;AAE5C;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,IAAI;IACjB,+BAA+B;IAC/B,MAAM;IACJ,oCAAoC;IACpC,IAAI,GAAG,mBAAmB;IAC1B,oBAAoB;IACpB,YAAY,GAAG,iCAAqB;IACpC,cAAc;IACd,IAAI;IACJ,qBAAqB;IACrB,UAAU;IACV,iCAAiC;IACjC,SAAS;IACT,8BAA8B;IAC9B,MAAM,GAAG,OAAO;IAChB,wCAAwC;IACxC,oBAAoB,GAAG,OAAO;IAC9B,uCAAuC;IACvC,mBAAmB,GAAG,OAAO;IAC7B,qCAAqC;IACrC,QAAQ,GAAG,MAAM;IACjB,sDAAsD;IACtD,UAAU,GAAG,yCAAyC;IACtD,kDAAkD;IAClD,eAAe,GAAG,8CAA8C,GACjE,GAAG,IAAA,sBAAK,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAA8B,CAAC;IAE9D,wBAAwB;IACxB,IAAI,CAAC,IAAI,EAAE;QACT,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,uFAAuF,CACxF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,mBAAmB;IACnB,IAAI,CAAC,SAAS,EAAE;QACd,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,gCAAgC;YAC9B,wEAAwE,CAC3E,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,iBAAiB;IACjB,MAAM,IAAA,wEAAgD,EAAC;QACrD,eAAe;QACf,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,SAAS;QACT,YAAY;QACZ,mBAAmB,EAAE,mBAAmB,KAAK,OAAO;QACpD,oBAAoB,EAAE,oBAAoB,KAAK,OAAO;QACtD,QAAQ,EAAE,QAAQ,KAAK,OAAO;QAC9B,MAAM,EAAE,MAAM,KAAK,OAAO;QAC1B,UAAU,EAAE,IAAA,yBAAc,EAAC,UAAU,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"cli-upload-preferences.js","sourceRoot":"","sources":["../src/cli-upload-preferences.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,22 @@
1
1
  import { ObjByString } from '@transcend-io/type-utils';
2
2
  /**
3
- * Write a csv to file
3
+ * Write a csv to file synchronously, overwriting any existing content
4
+ *
5
+ * @param filePath - File to write out to
6
+ * @param data - Data to write
7
+ * @param headers - Headers. If true, use object keys as headers. If array, use provided headers.
8
+ */
9
+ export declare function writeCsvSync(filePath: string, data: ObjByString[], headers: string[]): void;
10
+ /**
11
+ * Append data to an existing csv file synchronously
12
+ * Assumes the data structure matches the existing file
13
+ *
14
+ * @param filePath - File to append to
15
+ * @param data - Data to append
16
+ */
17
+ export declare function appendCsvSync(filePath: string, data: ObjByString[]): void;
18
+ /**
19
+ * Write a csv to file asynchronously
4
20
  *
5
21
  * @param filePath - File to write out to
6
22
  * @param data - Data to write
@@ -1 +1 @@
1
- {"version":3,"file":"writeCsv.d.ts","sourceRoot":"","sources":["../../src/cron/writeCsv.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,GAAE,OAAO,GAAG,MAAM,EAAS,GACjC,OAAO,CAAC,IAAI,CAAC,CAaf"}
1
+ {"version":3,"file":"writeCsv.d.ts","sourceRoot":"","sources":["../../src/cron/writeCsv.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAcvD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,EAAE,MAAM,EAAE,GAChB,IAAI,CAaN;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAWzE;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,GAAE,OAAO,GAAG,MAAM,EAAS,GACjC,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -23,11 +23,60 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.writeCsv = void 0;
26
+ exports.writeCsv = exports.appendCsvSync = exports.writeCsvSync = void 0;
27
27
  const fastcsv = __importStar(require("fast-csv"));
28
28
  const fs_1 = require("fs");
29
29
  /**
30
- * Write a csv to file
30
+ * Escape a CSV value
31
+ *
32
+ * @param value - Value to escape
33
+ * @returns Escaped value
34
+ */
35
+ function escapeCsvValue(value) {
36
+ if (value.includes('"') || value.includes(',') || value.includes('\n')) {
37
+ return `"${value.replace(/"/g, '""')}"`;
38
+ }
39
+ return value;
40
+ }
41
+ /**
42
+ * Write a csv to file synchronously, overwriting any existing content
43
+ *
44
+ * @param filePath - File to write out to
45
+ * @param data - Data to write
46
+ * @param headers - Headers. If true, use object keys as headers. If array, use provided headers.
47
+ */
48
+ function writeCsvSync(filePath, data, headers) {
49
+ const rows = [];
50
+ rows.push(headers);
51
+ rows.push(...data.map((row) => Object.values(row)));
52
+ // Build CSV content with proper escaping
53
+ const csvContent = rows
54
+ .map((row) => row.map(escapeCsvValue).join(','))
55
+ .join('\n');
56
+ // Write to file, overwriting existing content
57
+ (0, fs_1.writeFileSync)(filePath, csvContent);
58
+ }
59
+ exports.writeCsvSync = writeCsvSync;
60
+ /**
61
+ * Append data to an existing csv file synchronously
62
+ * Assumes the data structure matches the existing file
63
+ *
64
+ * @param filePath - File to append to
65
+ * @param data - Data to append
66
+ */
67
+ function appendCsvSync(filePath, data) {
68
+ // Convert data to CSV rows
69
+ const rows = data.map((row) => Object.values(row));
70
+ // Build CSV content with proper escaping
71
+ const csvContent = rows
72
+ .map((row) => row.map(escapeCsvValue).join(','))
73
+ .join('\n');
74
+ // Append to file with leading newline
75
+ (0, fs_1.appendFileSync)(filePath, `\n${csvContent}`);
76
+ }
77
+ exports.appendCsvSync = appendCsvSync;
78
+ /**
79
+ * Write a csv to file asynchronously
31
80
  *
32
81
  * @param filePath - File to write out to
33
82
  * @param data - Data to write
@@ -1 +1 @@
1
- {"version":3,"file":"writeCsv.js","sourceRoot":"","sources":["../../src/cron/writeCsv.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAoC;AACpC,2BAAuC;AAIvC;;;;;;GAMG;AACI,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,IAAmB,EACnB,UAA8B,IAAI;IAElC,MAAM,EAAE,GAAG,IAAA,sBAAiB,EAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI;YACF,OAAO;iBACJ,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;iBACxB,IAAI,CAAC,EAAE,CAAC;iBACR,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;iBACnB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAjBD,4BAiBC"}
1
+ {"version":3,"file":"writeCsv.js","sourceRoot":"","sources":["../../src/cron/writeCsv.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAoC;AACpC,2BAAsE;AAItE;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACtE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;KACzC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,QAAgB,EAChB,IAAmB,EACnB,OAAiB;IAEjB,MAAM,IAAI,GAAe,EAAE,CAAC;IAE5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpD,yCAAyC;IACzC,MAAM,UAAU,GAAG,IAAI;SACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,8CAA8C;IAC9C,IAAA,kBAAa,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC;AAjBD,oCAiBC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,QAAgB,EAAE,IAAmB;IACjE,2BAA2B;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnD,yCAAyC;IACzC,MAAM,UAAU,GAAG,IAAI;SACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,sCAAsC;IACtC,IAAA,mBAAc,EAAC,QAAQ,EAAE,KAAK,UAAU,EAAE,CAAC,CAAC;AAC9C,CAAC;AAXD,sCAWC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,IAAmB,EACnB,UAA8B,IAAI;IAElC,MAAM,EAAE,GAAG,IAAA,sBAAiB,EAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI;YACF,OAAO;iBACJ,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;iBACxB,IAAI,CAAC,EAAE,CAAC;iBACR,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;iBACnB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAjBD,4BAiBC"}
package/build/enums.d.ts CHANGED
@@ -63,7 +63,7 @@ export declare const PathfinderPolicyName: {
63
63
  /**
64
64
  * Type override
65
65
  */
66
- export type PathfinderPolicyName = (typeof PathfinderPolicyName)[keyof typeof PathfinderPolicyName];
66
+ export type PathfinderPolicyName = typeof PathfinderPolicyName[keyof typeof PathfinderPolicyName];
67
67
  /**
68
68
  * The names of the OpenAI routes that we support setting policies for
69
69
  * reference: https://platform.openai.com/docs/api-reference/introduction
@@ -86,5 +86,5 @@ export declare const OpenAIRouteName: {
86
86
  /**
87
87
  * Type override
88
88
  */
89
- export type OpenAIRouteName = (typeof OpenAIRouteName)[keyof typeof OpenAIRouteName];
89
+ export type OpenAIRouteName = typeof OpenAIRouteName[keyof typeof OpenAIRouteName];
90
90
  //# sourceMappingURL=enums.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,UAAU,iBAAiB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAK/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAc1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,UAAU,iBAAiB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAK/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAc1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPreferencesForIdentifiers.d.ts","sourceRoot":"","sources":["../../src/preference-management/getPreferencesForIdentifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAqB/B;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,GAAG,EACX,EACE,WAAW,EACX,YAAY,EACZ,WAAmB,GACpB,EAAE;IACD,yCAAyC;IACzC,WAAW,EAAE;QACX,kCAAkC;QAClC,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAAC,2BAA2B,EAAE,CAAC,CA8ExC"}
1
+ {"version":3,"file":"getPreferencesForIdentifiers.d.ts","sourceRoot":"","sources":["../../src/preference-management/getPreferencesForIdentifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA0B/B;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,GAAG,EACX,EACE,WAAW,EACX,YAAY,EACZ,WAAmB,GACpB,EAAE;IACD,yCAAyC;IACzC,WAAW,EAAE;QACX,kCAAkC;QAClC,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAAC,2BAA2B,EAAE,CAAC,CA8ExC"}
@@ -44,7 +44,12 @@ const PreferenceRecordsQueryResponse = t.intersection([
44
44
  cursor: t.string,
45
45
  }),
46
46
  ]);
47
- const MSGS = ['ETIMEDOUT', '504 Gateway Time-out', 'Task timed out after'];
47
+ const MSGS = [
48
+ 'ENOTFOUND',
49
+ 'ETIMEDOUT',
50
+ '504 Gateway Time-out',
51
+ 'Task timed out after',
52
+ ];
48
53
  /**
49
54
  * Grab the current consent preference values for a list of identifiers
50
55
  *
@@ -1 +1 @@
1
- {"version":3,"file":"getPreferencesForIdentifiers.js","sourceRoot":"","sources":["../../src/preference-management/getPreferencesForIdentifiers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPreferencesForIdentifiers.js","sourceRoot":"","sources":["../../src/preference-management/getPreferencesForIdentifiers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA0E;AAE1E,oDAA4B;AAC5B,gEAAuC;AACvC,yDAAiC;AACjC,yDAAuD;AACvD,yCAA2B;AAC3B,uCAA+B;AAC/B,sCAAmC;AAEnC,MAAM,8BAA8B,GAAG,CAAC,CAAC,YAAY,CAAC;IACpD,CAAC,CAAC,IAAI,CAAC;QACL,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,2CAA2B,CAAC;KAC5C,CAAC;IACF,CAAC,CAAC,OAAO,CAAC;QACR,6EAA6E;QAC7E,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG;IACX,WAAW;IACX,WAAW;IACX,sBAAsB;IACtB,sBAAsB;CACvB,CAAC;AAEF;;;;;;GAMG;AACI,KAAK,UAAU,4BAA4B,CAChD,MAAW,EACX,EACE,WAAW,EACX,YAAY,EACZ,WAAW,GAAG,KAAK,GAWpB;IAED,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,MAAM,kBAAkB,GAAG,IAAA,eAAK,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEnD,kEAAkE;IAClE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,sBAAW,CAAC,SAAS,CAC3C,EAAE,EACF,sBAAW,CAAC,OAAO,CAAC,cAAc,CACnC,CAAC;IACF,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KAC1C;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,IAAA,cAAG,EACP,kBAAkB,EAClB,KAAK,EAAE,KAAK,EAAE,EAAE;;QACd,oCAAoC;QACpC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,OAAO,QAAQ,GAAG,WAAW,EAAE;YAC7B,IAAI;gBACF,4CAA4C;gBAC5C,MAAM,SAAS,GAAG,MAAM,MAAM;qBAC3B,IAAI,CAAC,kBAAkB,YAAY,QAAQ,EAAE;oBAC5C,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN,WAAW,EAAE,KAAK;yBACnB;wBACD,KAAK,EAAE,KAAK,CAAC,MAAM;qBACpB;iBACF,CAAC;qBACD,IAAI,EAAE,CAAC;gBAEV,MAAM,MAAM,GAAG,IAAA,wBAAW,EAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;gBACtB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM,CAAC,0BAA0B;aAClC;YAAC,OAAO,GAAG,EAAE;gBACZ,QAAQ,IAAI,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,IAAI,MAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA,IAAI,EAAE,CAAC;gBACtD,IACE,QAAQ,IAAI,WAAW;oBACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EACxD;oBACA,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,cAAc,GAAG,EAAE,CACnE,CAAC;iBACH;gBAED,eAAM,CAAC,IAAI,CACT,gBAAM,CAAC,MAAM,CACX,sCAAsC,QAAQ,IAAI;oBAChD,mBAAmB,KAAK,CAAC,MAAM,oCAAoC,YAAY,KAAK,GAAG,EAAE,CAC5F,CACF,CAAC;aACH;SACF;IACH,CAAC,EACD;QACE,WAAW,EAAE,EAAE;KAChB,CACF,CAAC;IAEF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAC,WAAW,EAAE;QAChB,sBAAsB;QACtB,eAAM,CAAC,IAAI,CACT,gBAAM,CAAC,KAAK,CAAC,0BAA0B,SAAS,GAAG,IAAI,YAAY,CAAC,CACrE,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AA/FD,oEA+FC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parsePreferenceAndPurposeValuesFromCsv.d.ts","sourceRoot":"","sources":["../../src/preference-management/parsePreferenceAndPurposeValuesFromCsv.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C;;;;;;;GAOG;AACH,wBAAsB,sCAAsC,CAC1D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACrC,YAAY,EAAE,iBAAiB,EAC/B,EACE,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4BAA4B;IAC5B,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC,GACA,OAAO,CAAC,iBAAiB,CAAC,CAiF5B"}
1
+ {"version":3,"file":"parsePreferenceAndPurposeValuesFromCsv.d.ts","sourceRoot":"","sources":["../../src/preference-management/parsePreferenceAndPurposeValuesFromCsv.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C;;;;;;;GAOG;AACH,wBAAsB,sCAAsC,CAC1D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACrC,YAAY,EAAE,iBAAiB,EAC/B,EACE,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4BAA4B;IAC5B,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC,GACA,OAAO,CAAC,iBAAiB,CAAC,CAwK5B"}
@@ -10,6 +10,8 @@ const inquirer_1 = __importDefault(require("inquirer"));
10
10
  const difference_1 = __importDefault(require("lodash/difference"));
11
11
  const logger_1 = require("../logger");
12
12
  const bluebird_1 = require("bluebird");
13
+ const privacy_types_1 = require("@transcend-io/privacy-types");
14
+ const requests_1 = require("../requests");
13
15
  /* eslint-disable no-param-reassign */
14
16
  /**
15
17
  * Parse out the purpose.enabled and preference values from a CSV file
@@ -50,7 +52,7 @@ async function parsePreferenceAndPurposeValuesFromCsv(preferences, currentState,
50
52
  name: 'purposeName',
51
53
  message: `Choose the purpose that column ${col} is associated with`,
52
54
  type: 'list',
53
- default: purposeNames[0],
55
+ default: purposeNames.find((x) => x.startsWith(purposeSlugs[0])),
54
56
  choices: purposeNames,
55
57
  },
56
58
  ]);
@@ -67,15 +69,78 @@ async function parsePreferenceAndPurposeValuesFromCsv(preferences, currentState,
67
69
  logger_1.logger.info(colors_1.default.magenta(`Value "${value}" is associated with purpose value "${purposeMapping.valueMapping[value]}"`));
68
70
  return;
69
71
  }
70
- const { purposeValue } = await inquirer_1.default.prompt([
71
- {
72
- name: 'purposeValue',
73
- message: `Choose the purpose value for value "${value}" associated with purpose "${purposeMapping.purpose}"`,
74
- type: 'confirm',
75
- default: value !== 'false',
76
- },
77
- ]);
78
- purposeMapping.valueMapping[value] = purposeValue;
72
+ // if preference is null, this column is just for the purpose
73
+ if (purposeMapping.preference === null) {
74
+ const { purposeValue } = await inquirer_1.default.prompt([
75
+ {
76
+ name: 'purposeValue',
77
+ message: `Choose the purpose value for value "${value}" associated with purpose "${purposeMapping.purpose}"`,
78
+ type: 'confirm',
79
+ default: value !== 'false',
80
+ },
81
+ ]);
82
+ purposeMapping.valueMapping[value] = purposeValue;
83
+ }
84
+ // if preference is not null, this column is for a specific preference
85
+ if (purposeMapping.preference !== null) {
86
+ const preferenceTopic = preferenceTopics.find((x) => x.slug === purposeMapping.preference);
87
+ if (!preferenceTopic) {
88
+ logger_1.logger.error(colors_1.default.red(`Preference topic "${purposeMapping.preference}" not found`));
89
+ return;
90
+ }
91
+ const preferenceOptions = preferenceTopic.preferenceOptionValues.map(({ slug }) => slug);
92
+ if (preferenceTopic.type === privacy_types_1.PreferenceTopicType.Boolean) {
93
+ const { preferenceValue } = await inquirer_1.default.prompt([
94
+ {
95
+ name: 'preferenceValue',
96
+ message:
97
+ // eslint-disable-next-line max-len
98
+ `Choose the preference value for "${preferenceTopic.slug}" value "${value}" associated with purpose "${purposeMapping.purpose}"`,
99
+ type: 'confirm',
100
+ default: value !== 'false',
101
+ },
102
+ ]);
103
+ purposeMapping.valueMapping[value] = preferenceValue;
104
+ return;
105
+ }
106
+ if (preferenceTopic.type === privacy_types_1.PreferenceTopicType.Select) {
107
+ const { preferenceValue } = await inquirer_1.default.prompt([
108
+ {
109
+ name: 'preferenceValue',
110
+ // eslint-disable-next-line max-len
111
+ message: `Choose the preference value for "${preferenceTopic.slug}" value "${value}" associated with purpose "${purposeMapping.purpose}"`,
112
+ type: 'list',
113
+ choices: preferenceOptions,
114
+ default: preferenceOptions.find((x) => x === value),
115
+ },
116
+ ]);
117
+ purposeMapping.valueMapping[value] = preferenceValue;
118
+ return;
119
+ }
120
+ if (preferenceTopic.type === privacy_types_1.PreferenceTopicType.MultiSelect) {
121
+ const parsedValues = (0, requests_1.splitCsvToList)(value);
122
+ // need to do this serially
123
+ await (0, bluebird_1.mapSeries)(parsedValues, async (parsedValue) => {
124
+ // if we already have a value, skip re-processing it again
125
+ if (purposeMapping.valueMapping[parsedValue] !== undefined) {
126
+ return;
127
+ }
128
+ const { preferenceValue } = await inquirer_1.default.prompt([
129
+ {
130
+ name: 'preferenceValue',
131
+ // eslint-disable-next-line max-len
132
+ message: `Choose the preference value for "${preferenceTopic.slug}" value "${parsedValue}" associated with purpose "${purposeMapping.purpose}"`,
133
+ type: 'list',
134
+ choices: preferenceOptions,
135
+ default: preferenceOptions.find((x) => x === parsedValue),
136
+ },
137
+ ]);
138
+ purposeMapping.valueMapping[parsedValue] = preferenceValue;
139
+ });
140
+ return;
141
+ }
142
+ throw new Error(`Unknown preference topic type: ${preferenceTopic.type}`);
143
+ }
79
144
  });
80
145
  currentState.columnToPurposeName[col] = purposeMapping;
81
146
  });
@@ -1 +1 @@
1
- {"version":3,"file":"parsePreferenceAndPurposeValuesFromCsv.js","sourceRoot":"","sources":["../../src/preference-management/parsePreferenceAndPurposeValuesFromCsv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsePreferenceAndPurposeValuesFromCsv.js","sourceRoot":"","sources":["../../src/preference-management/parsePreferenceAndPurposeValuesFromCsv.ts"],"names":[],"mappings":"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"}