@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.
- package/README.md +137 -14
- package/build/cli-request-upload.d.ts +3 -0
- package/build/cli-request-upload.d.ts.map +1 -0
- package/build/cli-request-upload.js +57 -0
- package/build/cli-request-upload.js.map +1 -0
- package/build/codecs.d.ts +32 -0
- package/build/codecs.d.ts.map +1 -1
- package/build/graphql/fetchAllAttributeKeys.d.ts +15 -0
- package/build/graphql/fetchAllAttributeKeys.d.ts.map +1 -0
- package/build/graphql/fetchAllAttributeKeys.js +32 -0
- package/build/graphql/fetchAllAttributeKeys.js.map +1 -0
- package/build/graphql/gqls/attributeKey.d.ts +2 -0
- package/build/graphql/gqls/attributeKey.d.ts.map +1 -0
- package/build/graphql/gqls/attributeKey.js +19 -0
- package/build/graphql/gqls/attributeKey.js.map +1 -0
- package/build/graphql/gqls/enricher.d.ts +10 -0
- package/build/graphql/gqls/enricher.d.ts.map +1 -1
- package/build/graphql/gqls/enricher.js +11 -1
- package/build/graphql/gqls/enricher.js.map +1 -1
- package/build/graphql/gqls/index.d.ts +1 -0
- package/build/graphql/gqls/index.d.ts.map +1 -1
- package/build/graphql/gqls/index.js +1 -0
- package/build/graphql/gqls/index.js.map +1 -1
- package/build/graphql/index.d.ts +1 -0
- package/build/graphql/index.d.ts.map +1 -1
- package/build/graphql/index.js +1 -0
- package/build/graphql/index.js.map +1 -1
- package/build/requests/constants.d.ts +267 -1
- package/build/requests/constants.d.ts.map +1 -1
- package/build/requests/constants.js +85 -2
- package/build/requests/constants.js.map +1 -1
- package/build/requests/filterRows.d.ts +10 -0
- package/build/requests/filterRows.d.ts.map +1 -0
- package/build/requests/filterRows.js +61 -0
- package/build/requests/filterRows.js.map +1 -0
- package/build/requests/fuzzyMatchColumns.d.ts +3 -2
- package/build/requests/fuzzyMatchColumns.d.ts.map +1 -1
- package/build/requests/fuzzyMatchColumns.js +4 -2
- package/build/requests/fuzzyMatchColumns.js.map +1 -1
- package/build/requests/index.d.ts +12 -3
- package/build/requests/index.d.ts.map +1 -1
- package/build/requests/index.js +12 -3
- package/build/requests/index.js.map +1 -1
- package/build/requests/mapColumnsToAttributes.d.ts +20 -0
- package/build/requests/mapColumnsToAttributes.d.ts.map +1 -0
- package/build/requests/mapColumnsToAttributes.js +46 -0
- package/build/requests/mapColumnsToAttributes.js.map +1 -0
- package/build/requests/mapColumnsToIdentifiers.d.ts +20 -0
- package/build/requests/mapColumnsToIdentifiers.d.ts.map +1 -0
- package/build/requests/mapColumnsToIdentifiers.js +48 -0
- package/build/requests/mapColumnsToIdentifiers.js.map +1 -0
- package/build/requests/mapCsvColumnsToApi.d.ts +16 -0
- package/build/requests/mapCsvColumnsToApi.d.ts.map +1 -0
- package/build/requests/mapCsvColumnsToApi.js +44 -0
- package/build/requests/mapCsvColumnsToApi.js.map +1 -0
- package/build/requests/mapCsvRowsToRequestInputs.d.ts +68 -0
- package/build/requests/mapCsvRowsToRequestInputs.d.ts.map +1 -0
- package/build/requests/mapCsvRowsToRequestInputs.js +127 -0
- package/build/requests/mapCsvRowsToRequestInputs.js.map +1 -0
- package/build/requests/mapEnumValues.d.ts +14 -0
- package/build/requests/mapEnumValues.d.ts.map +1 -0
- package/build/requests/mapEnumValues.js +42 -0
- package/build/requests/mapEnumValues.js.map +1 -0
- package/build/requests/mapRequestEnumValues.d.ts +21 -0
- package/build/requests/mapRequestEnumValues.d.ts.map +1 -0
- package/build/requests/mapRequestEnumValues.js +46 -0
- package/build/requests/mapRequestEnumValues.js.map +1 -0
- package/build/requests/submitPrivacyRequest.d.ts +5468 -0
- package/build/requests/submitPrivacyRequest.d.ts.map +1 -0
- package/build/requests/submitPrivacyRequest.js +98 -0
- package/build/requests/submitPrivacyRequest.js.map +1 -0
- package/build/requests/tests/mapCsvRowsToRequestInputs.test.d.ts +1 -0
- package/build/requests/tests/mapCsvRowsToRequestInputs.test.d.ts.map +1 -0
- package/build/requests/tests/mapCsvRowsToRequestInputs.test.js +3 -0
- package/build/requests/tests/mapCsvRowsToRequestInputs.test.js.map +1 -0
- package/build/requests/uploadPrivacyRequestsFromCsv.d.ts +32 -0
- package/build/requests/uploadPrivacyRequestsFromCsv.d.ts.map +1 -0
- package/build/requests/uploadPrivacyRequestsFromCsv.js +139 -0
- package/build/requests/uploadPrivacyRequestsFromCsv.js.map +1 -0
- package/build/tsbuildinfo +1 -1
- package/package.json +7 -3
|
@@ -1,2 +1,268 @@
|
|
|
1
|
-
|
|
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":"
|
|
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
|
-
|
|
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":"
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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 './
|
|
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 './
|
|
6
|
-
export * from './
|
|
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,
|
|
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"}
|
package/build/requests/index.js
CHANGED
|
@@ -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("./
|
|
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("./
|
|
18
|
-
__exportStar(require("./
|
|
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,
|
|
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"}
|