@transcend-io/cli 4.11.1 → 4.13.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 (81) hide show
  1. package/README.md +137 -14
  2. package/build/cli-request-upload.d.ts +3 -0
  3. package/build/cli-request-upload.d.ts.map +1 -0
  4. package/build/cli-request-upload.js +57 -0
  5. package/build/cli-request-upload.js.map +1 -0
  6. package/build/codecs.d.ts +32 -0
  7. package/build/codecs.d.ts.map +1 -1
  8. package/build/graphql/fetchAllAttributeKeys.d.ts +15 -0
  9. package/build/graphql/fetchAllAttributeKeys.d.ts.map +1 -0
  10. package/build/graphql/fetchAllAttributeKeys.js +32 -0
  11. package/build/graphql/fetchAllAttributeKeys.js.map +1 -0
  12. package/build/graphql/gqls/attributeKey.d.ts +2 -0
  13. package/build/graphql/gqls/attributeKey.d.ts.map +1 -0
  14. package/build/graphql/gqls/attributeKey.js +19 -0
  15. package/build/graphql/gqls/attributeKey.js.map +1 -0
  16. package/build/graphql/gqls/enricher.d.ts +10 -0
  17. package/build/graphql/gqls/enricher.d.ts.map +1 -1
  18. package/build/graphql/gqls/enricher.js +11 -1
  19. package/build/graphql/gqls/enricher.js.map +1 -1
  20. package/build/graphql/gqls/index.d.ts +1 -0
  21. package/build/graphql/gqls/index.d.ts.map +1 -1
  22. package/build/graphql/gqls/index.js +1 -0
  23. package/build/graphql/gqls/index.js.map +1 -1
  24. package/build/graphql/index.d.ts +1 -0
  25. package/build/graphql/index.d.ts.map +1 -1
  26. package/build/graphql/index.js +1 -0
  27. package/build/graphql/index.js.map +1 -1
  28. package/build/requests/constants.d.ts +267 -1
  29. package/build/requests/constants.d.ts.map +1 -1
  30. package/build/requests/constants.js +85 -2
  31. package/build/requests/constants.js.map +1 -1
  32. package/build/requests/filterRows.d.ts +10 -0
  33. package/build/requests/filterRows.d.ts.map +1 -0
  34. package/build/requests/filterRows.js +61 -0
  35. package/build/requests/filterRows.js.map +1 -0
  36. package/build/requests/fuzzyMatchColumns.d.ts +3 -2
  37. package/build/requests/fuzzyMatchColumns.d.ts.map +1 -1
  38. package/build/requests/fuzzyMatchColumns.js +4 -2
  39. package/build/requests/fuzzyMatchColumns.js.map +1 -1
  40. package/build/requests/index.d.ts +12 -3
  41. package/build/requests/index.d.ts.map +1 -1
  42. package/build/requests/index.js +12 -3
  43. package/build/requests/index.js.map +1 -1
  44. package/build/requests/mapColumnsToAttributes.d.ts +20 -0
  45. package/build/requests/mapColumnsToAttributes.d.ts.map +1 -0
  46. package/build/requests/mapColumnsToAttributes.js +46 -0
  47. package/build/requests/mapColumnsToAttributes.js.map +1 -0
  48. package/build/requests/mapColumnsToIdentifiers.d.ts +20 -0
  49. package/build/requests/mapColumnsToIdentifiers.d.ts.map +1 -0
  50. package/build/requests/mapColumnsToIdentifiers.js +48 -0
  51. package/build/requests/mapColumnsToIdentifiers.js.map +1 -0
  52. package/build/requests/mapCsvColumnsToApi.d.ts +16 -0
  53. package/build/requests/mapCsvColumnsToApi.d.ts.map +1 -0
  54. package/build/requests/mapCsvColumnsToApi.js +44 -0
  55. package/build/requests/mapCsvColumnsToApi.js.map +1 -0
  56. package/build/requests/mapCsvRowsToRequestInputs.d.ts +68 -0
  57. package/build/requests/mapCsvRowsToRequestInputs.d.ts.map +1 -0
  58. package/build/requests/mapCsvRowsToRequestInputs.js +127 -0
  59. package/build/requests/mapCsvRowsToRequestInputs.js.map +1 -0
  60. package/build/requests/mapEnumValues.d.ts +14 -0
  61. package/build/requests/mapEnumValues.d.ts.map +1 -0
  62. package/build/requests/mapEnumValues.js +42 -0
  63. package/build/requests/mapEnumValues.js.map +1 -0
  64. package/build/requests/mapRequestEnumValues.d.ts +21 -0
  65. package/build/requests/mapRequestEnumValues.d.ts.map +1 -0
  66. package/build/requests/mapRequestEnumValues.js +46 -0
  67. package/build/requests/mapRequestEnumValues.js.map +1 -0
  68. package/build/requests/submitPrivacyRequest.d.ts +5468 -0
  69. package/build/requests/submitPrivacyRequest.d.ts.map +1 -0
  70. package/build/requests/submitPrivacyRequest.js +98 -0
  71. package/build/requests/submitPrivacyRequest.js.map +1 -0
  72. package/build/requests/tests/mapCsvRowsToRequestInputs.test.d.ts +1 -0
  73. package/build/requests/tests/mapCsvRowsToRequestInputs.test.d.ts.map +1 -0
  74. package/build/requests/tests/mapCsvRowsToRequestInputs.test.js +3 -0
  75. package/build/requests/tests/mapCsvRowsToRequestInputs.test.js.map +1 -0
  76. package/build/requests/uploadPrivacyRequestsFromCsv.d.ts +32 -0
  77. package/build/requests/uploadPrivacyRequestsFromCsv.d.ts.map +1 -0
  78. package/build/requests/uploadPrivacyRequestsFromCsv.js +139 -0
  79. package/build/requests/uploadPrivacyRequestsFromCsv.js.map +1 -0
  80. package/build/tsbuildinfo +1 -1
  81. package/package.json +7 -3
@@ -1,2 +1,268 @@
1
- export declare const NONE = "NONE";
1
+ import * as t from 'io-ts';
2
+ export declare const NONE: "[NONE]";
3
+ export declare const BULK_APPLY: "[APPLY VALUE TO ALL ROWS]";
4
+ export declare const BLANK: "<blank>";
5
+ /**
6
+ * Column names to map
7
+ */
8
+ export declare enum ColumnName {
9
+ /** The title of the email column */
10
+ Email = "email",
11
+ /** The title of the core identifier column */
12
+ CoreIdentifier = "coreIdentifier",
13
+ /** The title of the requestType column */
14
+ RequestType = "requestType",
15
+ /** The title of the subjectType column */
16
+ SubjectType = "subjectType",
17
+ /** The title of the locale column */
18
+ Locale = "locale",
19
+ /** The title of the requestStatus column */
20
+ RequestStatus = "requestStatus",
21
+ /** The title of the createdAt column */
22
+ CreatedAt = "createdAt",
23
+ /** The title of the dataSiloIds column */
24
+ DataSiloIds = "dataSiloIds"
25
+ }
26
+ /** These parameters are required in the Transcend DSR API */
27
+ export declare const IS_REQUIRED: {
28
+ [k in ColumnName]: boolean;
29
+ };
30
+ /** These parameters can be specified for the entire CSV set if needed */
31
+ export declare const CAN_APPLY_IN_BULK: {
32
+ [k in ColumnName]?: boolean;
33
+ };
34
+ export declare const CachedFileState: t.TypeC<{
35
+ /** Mapping between the default request input column names and the CSV column name for that input */
36
+ columnNames: t.PartialC<{
37
+ email: t.StringC;
38
+ coreIdentifier: t.StringC;
39
+ requestType: t.StringC;
40
+ subjectType: t.StringC;
41
+ locale: t.StringC;
42
+ requestStatus: t.StringC;
43
+ createdAt: t.StringC;
44
+ dataSiloIds: t.StringC;
45
+ }>;
46
+ /** Mapping between the identifier names and the CSV column name for that input */
47
+ identifierNames: t.RecordC<t.StringC, t.StringC>;
48
+ /** Mapping between the request attribute inputs and the CSV column name for that input */
49
+ attributeNames: t.RecordC<t.StringC, t.StringC>;
50
+ /** Mapping between CSV request type and Transcend Request Action */
51
+ requestTypeToRequestAction: t.RecordC<t.StringC, t.KeyofC<{
52
+ ACCESS: unknown;
53
+ ERASURE: unknown;
54
+ RECTIFICATION: unknown;
55
+ RESTRICTION: unknown;
56
+ BUSINESS_PURPOSE: unknown;
57
+ PLACE_ON_LEGAL_HOLD: unknown;
58
+ REMOVE_FROM_LEGAL_HOLD: unknown;
59
+ AUTOMATED_DECISION_MAKING_OPT_IN: unknown;
60
+ USE_OF_SENSITIVE_INFORMATION_OPT_IN: unknown;
61
+ SALE_OPT_IN: unknown;
62
+ TRACKING_OPT_IN: unknown;
63
+ CONTACT_OPT_IN: unknown;
64
+ CUSTOM_OPT_IN: unknown;
65
+ AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
66
+ USE_OF_SENSITIVE_INFORMATION_OPT_OUT: unknown;
67
+ CONTACT_OPT_OUT: unknown;
68
+ SALE_OPT_OUT: unknown;
69
+ TRACKING_OPT_OUT: unknown;
70
+ CUSTOM_OPT_OUT: unknown;
71
+ }>>;
72
+ /** Mapping between CSV data subject type and the name of the data subject in Transcend */
73
+ subjectTypeToSubjectName: t.RecordC<t.StringC, t.StringC>;
74
+ /** Mapping between language imported and Transcend locale code */
75
+ languageToLocale: t.RecordC<t.StringC, t.KeyofC<{
76
+ en: unknown;
77
+ ar: unknown;
78
+ fr: unknown;
79
+ es: unknown;
80
+ de: unknown;
81
+ it: unknown;
82
+ ja: unknown;
83
+ ru: unknown;
84
+ "ar-AE": unknown;
85
+ "fr-FR": unknown;
86
+ "de-DE": unknown;
87
+ "de-AT": unknown;
88
+ "de-CH": unknown;
89
+ "it-IT": unknown;
90
+ "it-CH": unknown;
91
+ "af-ZA": unknown;
92
+ "bg-BG": unknown;
93
+ "zh-CN": unknown;
94
+ "hr-HR": unknown;
95
+ "cs-CZ": unknown;
96
+ "da-DK": unknown;
97
+ "en-GB": unknown;
98
+ "en-CA": unknown;
99
+ "en-AE": unknown;
100
+ "fi-FI": unknown;
101
+ "el-GR": unknown;
102
+ "hi-IN": unknown;
103
+ "hu-HU": unknown;
104
+ "id-ID": unknown;
105
+ "ja-JP": unknown;
106
+ "ko-KR": unknown;
107
+ "lt-LT": unknown;
108
+ "ms-MY": unknown;
109
+ "mr-IN": unknown;
110
+ "nb-NO": unknown;
111
+ "pl-PL": unknown;
112
+ "pt-BR": unknown;
113
+ "pt-PT": unknown;
114
+ "ro-RO": unknown;
115
+ "ru-RU": unknown;
116
+ "sr-Latn-RS": unknown;
117
+ "sv-SE": unknown;
118
+ "ta-IN": unknown;
119
+ "th-TH": unknown;
120
+ "tr-TR": unknown;
121
+ "uk-UA": unknown;
122
+ "vi-VN": unknown;
123
+ "zu-ZA": unknown;
124
+ "en-US": unknown;
125
+ "en-AU": unknown;
126
+ "fr-BE": unknown;
127
+ "fr-CA": unknown;
128
+ "fr-CH": unknown;
129
+ "en-IE": unknown;
130
+ "nl-NL": unknown;
131
+ "nl-BE": unknown;
132
+ "es-ES": unknown;
133
+ "es-419": unknown;
134
+ "zh-HK": unknown;
135
+ "he-IL": unknown;
136
+ "en-NZ": unknown;
137
+ }>>;
138
+ /** Mapping between request status in import to Transcend request status */
139
+ statusToRequestStatus: t.RecordC<t.StringC, t.KeyofC<{
140
+ "[NONE]": unknown;
141
+ FAILED_VERIFICATION: unknown;
142
+ COMPLETED: unknown;
143
+ CANCELED: unknown;
144
+ SECONDARY_COMPLETED: unknown;
145
+ REVOKED: unknown;
146
+ }>>;
147
+ /** Set of privacy requests that failed to upload */
148
+ failingRequests: t.ArrayC<t.RecordC<t.StringC, t.AnyC>>;
149
+ }>;
150
+ /** Type override */
151
+ export declare type CachedFileState = t.TypeOf<typeof CachedFileState>;
152
+ export declare const CachedState: t.RecordC<t.StringC, t.TypeC<{
153
+ /** Mapping between the default request input column names and the CSV column name for that input */
154
+ columnNames: t.PartialC<{
155
+ email: t.StringC;
156
+ coreIdentifier: t.StringC;
157
+ requestType: t.StringC;
158
+ subjectType: t.StringC;
159
+ locale: t.StringC;
160
+ requestStatus: t.StringC;
161
+ createdAt: t.StringC;
162
+ dataSiloIds: t.StringC;
163
+ }>;
164
+ /** Mapping between the identifier names and the CSV column name for that input */
165
+ identifierNames: t.RecordC<t.StringC, t.StringC>;
166
+ /** Mapping between the request attribute inputs and the CSV column name for that input */
167
+ attributeNames: t.RecordC<t.StringC, t.StringC>;
168
+ /** Mapping between CSV request type and Transcend Request Action */
169
+ requestTypeToRequestAction: t.RecordC<t.StringC, t.KeyofC<{
170
+ ACCESS: unknown;
171
+ ERASURE: unknown;
172
+ RECTIFICATION: unknown;
173
+ RESTRICTION: unknown;
174
+ BUSINESS_PURPOSE: unknown;
175
+ PLACE_ON_LEGAL_HOLD: unknown;
176
+ REMOVE_FROM_LEGAL_HOLD: unknown;
177
+ AUTOMATED_DECISION_MAKING_OPT_IN: unknown;
178
+ USE_OF_SENSITIVE_INFORMATION_OPT_IN: unknown;
179
+ SALE_OPT_IN: unknown;
180
+ TRACKING_OPT_IN: unknown;
181
+ CONTACT_OPT_IN: unknown;
182
+ CUSTOM_OPT_IN: unknown;
183
+ AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
184
+ USE_OF_SENSITIVE_INFORMATION_OPT_OUT: unknown;
185
+ CONTACT_OPT_OUT: unknown;
186
+ SALE_OPT_OUT: unknown;
187
+ TRACKING_OPT_OUT: unknown;
188
+ CUSTOM_OPT_OUT: unknown;
189
+ }>>;
190
+ /** Mapping between CSV data subject type and the name of the data subject in Transcend */
191
+ subjectTypeToSubjectName: t.RecordC<t.StringC, t.StringC>;
192
+ /** Mapping between language imported and Transcend locale code */
193
+ languageToLocale: t.RecordC<t.StringC, t.KeyofC<{
194
+ en: unknown;
195
+ ar: unknown;
196
+ fr: unknown;
197
+ es: unknown;
198
+ de: unknown;
199
+ it: unknown;
200
+ ja: unknown;
201
+ ru: unknown;
202
+ "ar-AE": unknown;
203
+ "fr-FR": unknown;
204
+ "de-DE": unknown;
205
+ "de-AT": unknown;
206
+ "de-CH": unknown;
207
+ "it-IT": unknown;
208
+ "it-CH": unknown;
209
+ "af-ZA": unknown;
210
+ "bg-BG": unknown;
211
+ "zh-CN": unknown;
212
+ "hr-HR": unknown;
213
+ "cs-CZ": unknown;
214
+ "da-DK": unknown;
215
+ "en-GB": unknown;
216
+ "en-CA": unknown;
217
+ "en-AE": unknown;
218
+ "fi-FI": unknown;
219
+ "el-GR": unknown;
220
+ "hi-IN": unknown;
221
+ "hu-HU": unknown;
222
+ "id-ID": unknown;
223
+ "ja-JP": unknown;
224
+ "ko-KR": unknown;
225
+ "lt-LT": unknown;
226
+ "ms-MY": unknown;
227
+ "mr-IN": unknown;
228
+ "nb-NO": unknown;
229
+ "pl-PL": unknown;
230
+ "pt-BR": unknown;
231
+ "pt-PT": unknown;
232
+ "ro-RO": unknown;
233
+ "ru-RU": unknown;
234
+ "sr-Latn-RS": unknown;
235
+ "sv-SE": unknown;
236
+ "ta-IN": unknown;
237
+ "th-TH": unknown;
238
+ "tr-TR": unknown;
239
+ "uk-UA": unknown;
240
+ "vi-VN": unknown;
241
+ "zu-ZA": unknown;
242
+ "en-US": unknown;
243
+ "en-AU": unknown;
244
+ "fr-BE": unknown;
245
+ "fr-CA": unknown;
246
+ "fr-CH": unknown;
247
+ "en-IE": unknown;
248
+ "nl-NL": unknown;
249
+ "nl-BE": unknown;
250
+ "es-ES": unknown;
251
+ "es-419": unknown;
252
+ "zh-HK": unknown;
253
+ "he-IL": unknown;
254
+ "en-NZ": unknown;
255
+ }>>;
256
+ /** Mapping between request status in import to Transcend request status */
257
+ statusToRequestStatus: t.RecordC<t.StringC, t.KeyofC<{
258
+ "[NONE]": unknown;
259
+ FAILED_VERIFICATION: unknown;
260
+ COMPLETED: unknown;
261
+ CANCELED: unknown;
262
+ SECONDARY_COMPLETED: unknown;
263
+ REVOKED: unknown;
264
+ }>>;
265
+ /** Set of privacy requests that failed to upload */
266
+ failingRequests: t.ArrayC<t.RecordC<t.StringC, t.AnyC>>;
267
+ }>>;
2
268
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/requests/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,SAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/requests/constants.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,eAAO,MAAM,IAAI,UAAoB,CAAC;AACtC,eAAO,MAAM,UAAU,6BAAuC,CAAC;AAC/D,eAAO,MAAM,KAAK,WAAqB,CAAC;AAExC;;GAEG;AACH,oBAAY,UAAU;IACpB,oCAAoC;IACpC,KAAK,UAAU;IACf,8CAA8C;IAC9C,cAAc,mBAAmB;IACjC,0CAA0C;IAC1C,WAAW,gBAAgB;IAC3B,0CAA0C;IAC1C,WAAW,gBAAgB;IAC3B,qCAAqC;IACrC,MAAM,WAAW;IACjB,4CAA4C;IAC5C,aAAa,kBAAkB;IAC/B,wCAAwC;IACxC,SAAS,cAAc;IACvB,0CAA0C;IAC1C,WAAW,gBAAgB;CAC5B;AAED,6DAA6D;AAC7D,eAAO,MAAM,WAAW,EAAE;KAAG,CAAC,IAAI,UAAU,GAAG,OAAO;CASrD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE;KAAG,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,OAAO;CAG5D,CAAC;AAGF,eAAO,MAAM,eAAe;IAC1B,oGAAoG;;;;;;;;;;;IAEpG,kFAAkF;;IAElF,0FAA0F;;IAE1F,oEAAoE;;;;;;;;;;;;;;;;;;;;;;IAEpE,0FAA0F;;IAE1F,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAElE,2EAA2E;;;;;;;;;IAK3E,oDAAoD;;EAEpD,CAAC;AAEH,oBAAoB;AACpB,oBAAY,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE/D,eAAO,MAAM,WAAW;IAxBtB,oGAAoG;;;;;;;;;;;IAEpG,kFAAkF;;IAElF,0FAA0F;;IAE1F,oEAAoE;;;;;;;;;;;;;;;;;;;;;;IAEpE,0FAA0F;;IAE1F,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAElE,2EAA2E;;;;;;;;;IAK3E,oDAAoD;;GAOQ,CAAC"}
@@ -1,5 +1,88 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NONE = void 0;
4
- exports.NONE = 'NONE';
22
+ exports.CachedState = exports.CachedFileState = exports.CAN_APPLY_IN_BULK = exports.IS_REQUIRED = exports.ColumnName = exports.BLANK = exports.BULK_APPLY = exports.NONE = void 0;
23
+ const type_utils_1 = require("@transcend-io/type-utils");
24
+ const internationalization_1 = require("@transcend-io/internationalization");
25
+ const privacy_types_1 = require("@transcend-io/privacy-types");
26
+ const t = __importStar(require("io-ts"));
27
+ exports.NONE = '[NONE]';
28
+ exports.BULK_APPLY = '[APPLY VALUE TO ALL ROWS]';
29
+ exports.BLANK = '<blank>';
30
+ /**
31
+ * Column names to map
32
+ */
33
+ var ColumnName;
34
+ (function (ColumnName) {
35
+ /** The title of the email column */
36
+ ColumnName["Email"] = "email";
37
+ /** The title of the core identifier column */
38
+ ColumnName["CoreIdentifier"] = "coreIdentifier";
39
+ /** The title of the requestType column */
40
+ ColumnName["RequestType"] = "requestType";
41
+ /** The title of the subjectType column */
42
+ ColumnName["SubjectType"] = "subjectType";
43
+ /** The title of the locale column */
44
+ ColumnName["Locale"] = "locale";
45
+ /** The title of the requestStatus column */
46
+ ColumnName["RequestStatus"] = "requestStatus";
47
+ /** The title of the createdAt column */
48
+ ColumnName["CreatedAt"] = "createdAt";
49
+ /** The title of the dataSiloIds column */
50
+ ColumnName["DataSiloIds"] = "dataSiloIds";
51
+ })(ColumnName = exports.ColumnName || (exports.ColumnName = {}));
52
+ /** These parameters are required in the Transcend DSR API */
53
+ exports.IS_REQUIRED = {
54
+ [ColumnName.Email]: false,
55
+ [ColumnName.CoreIdentifier]: true,
56
+ [ColumnName.RequestType]: true,
57
+ [ColumnName.SubjectType]: true,
58
+ [ColumnName.RequestStatus]: false,
59
+ [ColumnName.CreatedAt]: false,
60
+ [ColumnName.DataSiloIds]: false,
61
+ [ColumnName.Locale]: false,
62
+ };
63
+ /** These parameters can be specified for the entire CSV set if needed */
64
+ exports.CAN_APPLY_IN_BULK = {
65
+ [ColumnName.RequestType]: true,
66
+ [ColumnName.SubjectType]: true,
67
+ };
68
+ // Cache state
69
+ exports.CachedFileState = t.type({
70
+ /** Mapping between the default request input column names and the CSV column name for that input */
71
+ columnNames: t.partial((0, type_utils_1.applyEnum)(ColumnName, () => t.string)),
72
+ /** Mapping between the identifier names and the CSV column name for that input */
73
+ identifierNames: t.record(t.string, t.string),
74
+ /** Mapping between the request attribute inputs and the CSV column name for that input */
75
+ attributeNames: t.record(t.string, t.string),
76
+ /** Mapping between CSV request type and Transcend Request Action */
77
+ requestTypeToRequestAction: t.record(t.string, (0, type_utils_1.valuesOf)(privacy_types_1.RequestAction)),
78
+ /** Mapping between CSV data subject type and the name of the data subject in Transcend */
79
+ subjectTypeToSubjectName: t.record(t.string, t.string),
80
+ /** Mapping between language imported and Transcend locale code */
81
+ languageToLocale: t.record(t.string, (0, type_utils_1.valuesOf)(internationalization_1.LanguageKey)),
82
+ /** Mapping between request status in import to Transcend request status */
83
+ statusToRequestStatus: t.record(t.string, (0, type_utils_1.valuesOf)({ ...privacy_types_1.CompletedRequestStatus, [exports.NONE]: exports.NONE })),
84
+ /** Set of privacy requests that failed to upload */
85
+ failingRequests: t.array(t.record(t.string, t.any)),
86
+ });
87
+ exports.CachedState = t.record(t.string, exports.CachedFileState);
5
88
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/requests/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/requests/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ObjByString } from '@transcend-io/type-utils';
2
+ /**
3
+ * Filter a list of CSV rows by column values
4
+ * Choose columns that contain metadata to filter the requests
5
+ *
6
+ * @param rows - Rows to filter
7
+ * @returns Filtered rows
8
+ */
9
+ export declare function filterRows(rows: ObjByString[]): Promise<ObjByString[]>;
10
+ //# sourceMappingURL=filterRows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterRows.d.ts","sourceRoot":"","sources":["../../src/requests/filterRows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAOvD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAoD5E"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.filterRows = void 0;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const colors_1 = __importDefault(require("colors"));
9
+ const uniq_1 = __importDefault(require("lodash/uniq"));
10
+ const logger_1 = require("../logger");
11
+ const constants_1 = require("./constants");
12
+ const getUniqueValuesForColumn_1 = require("./getUniqueValuesForColumn");
13
+ /**
14
+ * Filter a list of CSV rows by column values
15
+ * Choose columns that contain metadata to filter the requests
16
+ *
17
+ * @param rows - Rows to filter
18
+ * @returns Filtered rows
19
+ */
20
+ async function filterRows(rows) {
21
+ // Determine set of column names
22
+ const columnNames = (0, uniq_1.default)(rows.map((x) => Object.keys(x)).flat());
23
+ // update these variables recursively
24
+ let filteredRows = rows;
25
+ let keepFiltering = true;
26
+ // loop over
27
+ while (keepFiltering) {
28
+ // Prompt user for column to filter on
29
+ // eslint-disable-next-line no-await-in-loop
30
+ const { filterColumnName } = await inquirer_1.default.prompt([
31
+ {
32
+ name: 'filterColumnName',
33
+ // eslint-disable-next-line max-len
34
+ message: `If you need to filter the list of requests to import, choose the column to filter on. Currently ${filteredRows.length} rows.`,
35
+ type: 'list',
36
+ default: columnNames,
37
+ choices: [constants_1.NONE, ...columnNames],
38
+ },
39
+ ]);
40
+ // Determine if filtering should continue, or loop should be exited
41
+ keepFiltering = constants_1.NONE !== filterColumnName;
42
+ if (keepFiltering) {
43
+ const options = (0, getUniqueValuesForColumn_1.getUniqueValuesForColumn)(filteredRows, filterColumnName);
44
+ // eslint-disable-next-line no-await-in-loop
45
+ const { valuesToKeep } = await inquirer_1.default.prompt([
46
+ {
47
+ name: 'valuesToKeep',
48
+ message: 'Keep rows matching this value',
49
+ type: 'checkbox',
50
+ default: columnNames,
51
+ choices: options,
52
+ },
53
+ ]);
54
+ filteredRows = filteredRows.filter((request) => valuesToKeep.includes(request[filterColumnName]));
55
+ }
56
+ }
57
+ logger_1.logger.info(colors_1.default.magenta(`Importing ${filteredRows.length} requests`));
58
+ return filteredRows;
59
+ }
60
+ exports.filterRows = filterRows;
61
+ //# sourceMappingURL=filterRows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterRows.js","sourceRoot":"","sources":["../../src/requests/filterRows.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,oDAA4B;AAC5B,uDAA+B;AAC/B,sCAAmC;AACnC,2CAAmC;AACnC,yEAAsE;AAEtE;;;;;;GAMG;AACI,KAAK,UAAU,UAAU,CAAC,IAAmB;IAClD,gCAAgC;IAChC,MAAM,WAAW,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjE,qCAAqC;IACrC,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,YAAY;IACZ,OAAO,aAAa,EAAE;QACpB,sCAAsC;QACtC,4CAA4C;QAC5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAG/C;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,mCAAmC;gBACnC,OAAO,EAAE,mGAAmG,YAAY,CAAC,MAAM,QAAQ;gBACvI,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,CAAC,gBAAI,EAAE,GAAG,WAAW,CAAC;aAChC;SACF,CAAC,CAAC;QAEH,mEAAmE;QACnE,aAAa,GAAG,gBAAI,KAAK,gBAAgB,CAAC;QAC1C,IAAI,aAAa,EAAE;YACjB,MAAM,OAAO,GAAG,IAAA,mDAAwB,EAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YACzE,4CAA4C;YAC5C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAG3C;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,+BAA+B;oBACxC,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC,CAAC;YAEH,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC7C,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CACjD,CAAC;SACH;KACF;IAED,eAAM,CAAC,IAAI,CAAC,gBAAM,CAAC,OAAO,CAAC,aAAa,YAAY,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;IACzE,OAAO,YAAY,CAAC;AACtB,CAAC;AApDD,gCAoDC"}
@@ -13,8 +13,9 @@ export declare function fuzzySearch(word1: string, word2: string): boolean;
13
13
  *
14
14
  * @param allColumnNames - List of all column names
15
15
  * @param fuzzyMapName - The name of field being mapped to
16
- * @param isRequired - When require, don't show NONE
16
+ * @param isRequired - When true, don't include "NONE" as an option
17
+ * @param canApplyAll - When true, include an option to specify the value in bulk
17
18
  * @returns The list of suggestions for inquirer
18
19
  */
19
- export declare function fuzzyMatchColumns(allColumnNames: string[], fuzzyMapName: string, isRequired: boolean): (string | InstanceType<typeof inquirer.Separator>)[];
20
+ export declare function fuzzyMatchColumns(allColumnNames: string[], fuzzyMapName: string, isRequired: boolean, canApplyAll?: boolean): (string | InstanceType<typeof inquirer.Separator>)[];
20
21
  //# sourceMappingURL=fuzzyMatchColumns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fuzzyMatchColumns.d.ts","sourceRoot":"","sources":["../../src/requests/fuzzyMatchColumns.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAKhC;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,OAAO,GAClB,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAUtD"}
1
+ {"version":3,"file":"fuzzyMatchColumns.d.ts","sourceRoot":"","sources":["../../src/requests/fuzzyMatchColumns.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAKhC;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,OAAO,GACpB,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAWtD"}
@@ -25,15 +25,17 @@ exports.fuzzySearch = fuzzySearch;
25
25
  *
26
26
  * @param allColumnNames - List of all column names
27
27
  * @param fuzzyMapName - The name of field being mapped to
28
- * @param isRequired - When require, don't show NONE
28
+ * @param isRequired - When true, don't include "NONE" as an option
29
+ * @param canApplyAll - When true, include an option to specify the value in bulk
29
30
  * @returns The list of suggestions for inquirer
30
31
  */
31
- function fuzzyMatchColumns(allColumnNames, fuzzyMapName, isRequired) {
32
+ function fuzzyMatchColumns(allColumnNames, fuzzyMapName, isRequired, canApplyAll) {
32
33
  const matchingColumnNames = allColumnNames.filter((x) => fuzzySearch(fuzzyMapName.toLowerCase(), x.toLowerCase()));
33
34
  return [
34
35
  ...matchingColumnNames,
35
36
  new inquirer_1.default.Separator(),
36
37
  ...(isRequired ? [] : [constants_1.NONE]),
38
+ ...(canApplyAll ? [constants_1.BULK_APPLY] : []),
37
39
  ...allColumnNames.filter((x) => !matchingColumnNames.includes(x)),
38
40
  ];
39
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fuzzyMatchColumns.js","sourceRoot":"","sources":["../../src/requests/fuzzyMatchColumns.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,2CAAmC;AAEnC,8DAAsC;AAEtC;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,KAAa,EAAE,KAAa;IACtD,OAAO,CACL,IAAA,qBAAW,EAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QACrD,IAAA,qBAAW,EAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC;AALD,kCAKC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,cAAwB,EACxB,YAAoB,EACpB,UAAmB;IAEnB,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;IACF,OAAO;QACL,GAAG,mBAAmB;QACtB,IAAI,kBAAQ,CAAC,SAAS,EAAE;QACxB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAI,CAAC,CAAC;QAC7B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAdD,8CAcC"}
1
+ {"version":3,"file":"fuzzyMatchColumns.js","sourceRoot":"","sources":["../../src/requests/fuzzyMatchColumns.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,2CAA+C;AAE/C,8DAAsC;AAEtC;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,KAAa,EAAE,KAAa;IACtD,OAAO,CACL,IAAA,qBAAW,EAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QACrD,IAAA,qBAAW,EAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC;AALD,kCAKC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,cAAwB,EACxB,YAAoB,EACpB,UAAmB,EACnB,WAAqB;IAErB,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;IACF,OAAO;QACL,GAAG,mBAAmB;QACtB,IAAI,kBAAQ,CAAC,SAAS,EAAE;QACxB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAI,CAAC,CAAC;QAC7B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAhBD,8CAgBC"}
@@ -1,7 +1,16 @@
1
- export * from './splitCsvToList';
1
+ export * from './fuzzyMatchColumns';
2
2
  export * from './constants';
3
+ export * from './mapEnumValues';
4
+ export * from './splitCsvToList';
5
+ export * from './parseAttributesFromString';
3
6
  export * from './readCsv';
4
7
  export * from './getUniqueValuesForColumn';
5
- export * from './fuzzyMatchColumns';
6
- export * from './parseAttributesFromString';
8
+ export * from './filterRows';
9
+ export * from './mapCsvColumnsToApi';
10
+ export * from './mapRequestEnumValues';
11
+ export * from './mapCsvRowsToRequestInputs';
12
+ export * from './submitPrivacyRequest';
13
+ export * from './mapColumnsToIdentifiers';
14
+ export * from './mapColumnsToAttributes';
15
+ export * from './uploadPrivacyRequestsFromCsv';
7
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/requests/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/requests/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC"}
@@ -10,10 +10,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./splitCsvToList"), exports);
13
+ __exportStar(require("./fuzzyMatchColumns"), exports);
14
14
  __exportStar(require("./constants"), exports);
15
+ __exportStar(require("./mapEnumValues"), exports);
16
+ __exportStar(require("./splitCsvToList"), exports);
17
+ __exportStar(require("./parseAttributesFromString"), exports);
15
18
  __exportStar(require("./readCsv"), exports);
16
19
  __exportStar(require("./getUniqueValuesForColumn"), exports);
17
- __exportStar(require("./fuzzyMatchColumns"), exports);
18
- __exportStar(require("./parseAttributesFromString"), exports);
20
+ __exportStar(require("./filterRows"), exports);
21
+ __exportStar(require("./mapCsvColumnsToApi"), exports);
22
+ __exportStar(require("./mapRequestEnumValues"), exports);
23
+ __exportStar(require("./mapCsvRowsToRequestInputs"), exports);
24
+ __exportStar(require("./submitPrivacyRequest"), exports);
25
+ __exportStar(require("./mapColumnsToIdentifiers"), exports);
26
+ __exportStar(require("./mapColumnsToAttributes"), exports);
27
+ __exportStar(require("./uploadPrivacyRequestsFromCsv"), exports);
19
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/requests/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiC;AACjC,8CAA4B;AAC5B,4CAA0B;AAC1B,6DAA2C;AAC3C,sDAAoC;AACpC,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/requests/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC;AACpC,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,8DAA4C;AAC5C,4CAA0B;AAC1B,6DAA2C;AAC3C,+CAA6B;AAC7B,uDAAqC;AACrC,yDAAuC;AACvC,8DAA4C;AAC5C,yDAAuC;AACvC,4DAA0C;AAC1C,2DAAyC;AACzC,iEAA+C"}
@@ -0,0 +1,20 @@
1
+ import type { GraphQLClient } from 'graphql-request';
2
+ import { CachedFileState } from './constants';
3
+ /**
4
+ * Mapping from attribute name to request input parameter
5
+ */
6
+ export declare type AttributeNameMap = {
7
+ [k in string]: string;
8
+ };
9
+ /**
10
+ * Create a mapping from the attributes names that can be included
11
+ * at request submission, to the names of the columns that map to those
12
+ * attributes.
13
+ *
14
+ * @param client - GraphQL client
15
+ * @param columnNames - The set of all column names
16
+ * @param cached - Cached state of this mapping
17
+ * @returns Mapping from attributes name to column name
18
+ */
19
+ export declare function mapColumnsToAttributes(client: GraphQLClient, columnNames: string[], cached: CachedFileState): Promise<AttributeNameMap>;
20
+ //# sourceMappingURL=mapColumnsToAttributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapColumnsToAttributes.d.ts","sourceRoot":"","sources":["../../src/requests/mapColumnsToAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;GAEG;AACH,oBAAY,gBAAgB,GAAG;KAC5B,CAAC,IAAI,MAAM,GAAG,MAAM;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAoC3B"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.mapColumnsToAttributes = void 0;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const graphql_1 = require("../graphql");
9
+ const fuzzyMatchColumns_1 = require("./fuzzyMatchColumns");
10
+ /**
11
+ * Create a mapping from the attributes names that can be included
12
+ * at request submission, to the names of the columns that map to those
13
+ * attributes.
14
+ *
15
+ * @param client - GraphQL client
16
+ * @param columnNames - The set of all column names
17
+ * @param cached - Cached state of this mapping
18
+ * @returns Mapping from attributes name to column name
19
+ */
20
+ async function mapColumnsToAttributes(client, columnNames, cached) {
21
+ // Grab the initializer
22
+ const requestAttributeKeys = await (0, graphql_1.fetchAllRequestAttributeKeys)(client);
23
+ // Determine the columns that should be mapped
24
+ const columnQuestions = requestAttributeKeys.filter(({ name }) => !cached.attributeNames[name]);
25
+ // Skip mapping when everything is mapped
26
+ const attributeNameMap = columnQuestions.length === 0
27
+ ? {}
28
+ : // prompt questions to map columns
29
+ await inquirer_1.default.prompt(columnQuestions.map(({ name }) => {
30
+ const matches = (0, fuzzyMatchColumns_1.fuzzyMatchColumns)(columnNames, name, false);
31
+ return {
32
+ name,
33
+ message: `Choose the column that will be used to map in the attribute: ${name}`,
34
+ type: 'list',
35
+ default: matches[0],
36
+ choices: matches,
37
+ };
38
+ }));
39
+ Object.entries(attributeNameMap).forEach(([k, v]) => {
40
+ // eslint-disable-next-line no-param-reassign
41
+ cached.attributeNames[k] = v;
42
+ });
43
+ return attributeNameMap;
44
+ }
45
+ exports.mapColumnsToAttributes = mapColumnsToAttributes;
46
+ //# sourceMappingURL=mapColumnsToAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapColumnsToAttributes.js","sourceRoot":"","sources":["../../src/requests/mapColumnsToAttributes.ts"],"names":[],"mappings":";;;;;;AACA,wDAAgC;AAChC,wCAA0D;AAE1D,2DAAwD;AASxD;;;;;;;;;GASG;AACI,KAAK,UAAU,sBAAsB,CAC1C,MAAqB,EACrB,WAAqB,EACrB,MAAuB;IAEvB,uBAAuB;IACvB,MAAM,oBAAoB,GAAG,MAAM,IAAA,sCAA4B,EAAC,MAAM,CAAC,CAAC;IAExE,8CAA8C;IAC9C,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CACjD,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAC3C,CAAC;IAEF,yCAAyC;IACzC,MAAM,gBAAgB,GACpB,eAAe,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,kCAAkC;YAClC,MAAM,kBAAQ,CAAC,MAAM,CAKnB,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC/B,MAAM,OAAO,GAAG,IAAA,qCAAiB,EAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5D,OAAO;oBACL,IAAI;oBACJ,OAAO,EAAE,gEAAgE,IAAI,EAAE;oBAC/E,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;oBACnB,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;IACR,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAClD,6CAA6C;QAC7C,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAxCD,wDAwCC"}