@transcend-io/cli 2.2.3

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 (95) hide show
  1. package/.yarn/sdks/eslint/package.json +6 -0
  2. package/.yarn/sdks/prettier/package.json +6 -0
  3. package/.yarn/sdks/typescript/package.json +6 -0
  4. package/LICENSE +21 -0
  5. package/README.md +301 -0
  6. package/build/cli-pull.d.ts +3 -0
  7. package/build/cli-pull.d.ts.map +1 -0
  8. package/build/cli-pull.js +53 -0
  9. package/build/cli-pull.js.map +1 -0
  10. package/build/cli-push.d.ts +3 -0
  11. package/build/cli-push.d.ts.map +1 -0
  12. package/build/cli-push.js +82 -0
  13. package/build/cli-push.js.map +1 -0
  14. package/build/codecs.d.ts +541 -0
  15. package/build/codecs.d.ts.map +1 -0
  16. package/build/codecs.js +216 -0
  17. package/build/codecs.js.map +1 -0
  18. package/build/constants.d.ts +2 -0
  19. package/build/constants.d.ts.map +1 -0
  20. package/build/constants.js +5 -0
  21. package/build/constants.js.map +1 -0
  22. package/build/fetchApiKeys.d.ts +21 -0
  23. package/build/fetchApiKeys.d.ts.map +1 -0
  24. package/build/fetchApiKeys.js +56 -0
  25. package/build/fetchApiKeys.js.map +1 -0
  26. package/build/fetchDataSubjects.d.ts +40 -0
  27. package/build/fetchDataSubjects.d.ts.map +1 -0
  28. package/build/fetchDataSubjects.js +85 -0
  29. package/build/fetchDataSubjects.js.map +1 -0
  30. package/build/fetchIdentifiers.d.ts +27 -0
  31. package/build/fetchIdentifiers.d.ts.map +1 -0
  32. package/build/fetchIdentifiers.js +83 -0
  33. package/build/fetchIdentifiers.js.map +1 -0
  34. package/build/gqls.d.ts +16 -0
  35. package/build/gqls.d.ts.map +1 -0
  36. package/build/gqls.js +310 -0
  37. package/build/gqls.js.map +1 -0
  38. package/build/index.d.ts +4 -0
  39. package/build/index.d.ts.map +1 -0
  40. package/build/index.js +16 -0
  41. package/build/index.js.map +1 -0
  42. package/build/logger.d.ts +2 -0
  43. package/build/logger.d.ts.map +1 -0
  44. package/build/logger.js +5 -0
  45. package/build/logger.js.map +1 -0
  46. package/build/pullTranscendConfiguration.d.ts +11 -0
  47. package/build/pullTranscendConfiguration.d.ts.map +1 -0
  48. package/build/pullTranscendConfiguration.js +95 -0
  49. package/build/pullTranscendConfiguration.js.map +1 -0
  50. package/build/readTranscendYaml.d.ts +19 -0
  51. package/build/readTranscendYaml.d.ts.map +1 -0
  52. package/build/readTranscendYaml.js +47 -0
  53. package/build/readTranscendYaml.js.map +1 -0
  54. package/build/syncConfigurationToTranscend.d.ts +11 -0
  55. package/build/syncConfigurationToTranscend.d.ts.map +1 -0
  56. package/build/syncConfigurationToTranscend.js +96 -0
  57. package/build/syncConfigurationToTranscend.js.map +1 -0
  58. package/build/syncDataSilos.d.ts +144 -0
  59. package/build/syncDataSilos.d.ts.map +1 -0
  60. package/build/syncDataSilos.js +178 -0
  61. package/build/syncDataSilos.js.map +1 -0
  62. package/build/syncEnrichers.d.ts +45 -0
  63. package/build/syncEnrichers.d.ts.map +1 -0
  64. package/build/syncEnrichers.js +69 -0
  65. package/build/syncEnrichers.js.map +1 -0
  66. package/build/tests/fetchApiKeys.test.d.ts +1 -0
  67. package/build/tests/fetchApiKeys.test.d.ts.map +1 -0
  68. package/build/tests/fetchApiKeys.test.js +3 -0
  69. package/build/tests/fetchApiKeys.test.js.map +1 -0
  70. package/build/tests/fetchDataSubjects.test.d.ts +1 -0
  71. package/build/tests/fetchDataSubjects.test.d.ts.map +1 -0
  72. package/build/tests/fetchDataSubjects.test.js +3 -0
  73. package/build/tests/fetchDataSubjects.test.js.map +1 -0
  74. package/build/tests/fetchIdentifiers.test.d.ts +1 -0
  75. package/build/tests/fetchIdentifiers.test.d.ts.map +1 -0
  76. package/build/tests/fetchIdentifiers.test.js +3 -0
  77. package/build/tests/fetchIdentifiers.test.js.map +1 -0
  78. package/build/tests/main.test.d.ts +1 -0
  79. package/build/tests/main.test.d.ts.map +1 -0
  80. package/build/tests/main.test.js +6 -0
  81. package/build/tests/main.test.js.map +1 -0
  82. package/build/tests/readTranscendYaml.test.d.ts +2 -0
  83. package/build/tests/readTranscendYaml.test.d.ts.map +1 -0
  84. package/build/tests/readTranscendYaml.test.js +38 -0
  85. package/build/tests/readTranscendYaml.test.js.map +1 -0
  86. package/build/tests/syncDataSilos.test.d.ts +1 -0
  87. package/build/tests/syncDataSilos.test.d.ts.map +1 -0
  88. package/build/tests/syncDataSilos.test.js +3 -0
  89. package/build/tests/syncDataSilos.test.js.map +1 -0
  90. package/build/tests/syncEnrichers.test.d.ts +1 -0
  91. package/build/tests/syncEnrichers.test.d.ts.map +1 -0
  92. package/build/tests/syncEnrichers.test.js +3 -0
  93. package/build/tests/syncEnrichers.test.js.map +1 -0
  94. package/build/tsbuildinfo +1 -0
  95. package/package.json +70 -0
@@ -0,0 +1,541 @@
1
+ import * as t from 'io-ts';
2
+ /**
3
+ * Input to define API keys that may be shared across data silos
4
+ * in the data map. When creating new data silos through the yaml
5
+ * cli, it is possible to specify which API key should be associated
6
+ * with the newly created data silo.
7
+ *
8
+ * @see https://docs.transcend.io/docs/authentication
9
+ */
10
+ export declare const ApiKeyInput: t.TypeC<{
11
+ /** The display title of the enricher */
12
+ title: t.StringC;
13
+ }>;
14
+ /** Type override */
15
+ export declare type ApiKeyInput = t.TypeOf<typeof ApiKeyInput>;
16
+ /**
17
+ * Input to define an enricher
18
+ *
19
+ * Define enricher or pre-flight check webhooks that will be executed
20
+ * prior to privacy request workflows. Some examples may include:
21
+ * - identity enrichment: look up additional identifiers for that user.
22
+ * i.e. map an email address to a user ID
23
+ * - fraud check: auto-cancel requests if the user is flagged for fraudulent behavior
24
+ * - customer check: auto-cancel request for some custom business criteria
25
+ *
26
+ * @see https://docs.transcend.io/docs/identity-enrichment
27
+ */
28
+ export declare const EnricherInput: t.IntersectionC<[t.TypeC<{
29
+ /** The display title of the enricher */
30
+ title: t.StringC;
31
+ /** The URL of the enricher */
32
+ url: t.StringC;
33
+ /**
34
+ * The name of the identifier that will be the input to this enricher.
35
+ * Whenever a privacy request contains this identifier, the webhook will
36
+ * be called with the value of that identifier as input
37
+ */
38
+ 'input-identifier': t.StringC;
39
+ /**
40
+ * The names of the identifiers that can be resolved by this enricher.
41
+ * i.e. email -> [userId, phone, advertisingId]
42
+ */
43
+ 'output-identifiers': t.ArrayC<t.StringC>;
44
+ }>, t.PartialC<{
45
+ /** Internal description for why the enricher is needed */
46
+ description: t.StringC;
47
+ /** The privacy actions that the enricher should run against */
48
+ 'privacy-actions': t.ArrayC<t.KeyofC<{
49
+ AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
50
+ CONTACT_OPT_OUT: unknown;
51
+ SALE_OPT_OUT: unknown;
52
+ TRACKING_OPT_OUT: unknown;
53
+ ACCESS: unknown;
54
+ ERASURE: unknown;
55
+ ACCOUNT_DELETION: unknown;
56
+ RECTIFICATION: unknown;
57
+ RESTRICTION: unknown;
58
+ DATA_CHECK: unknown;
59
+ }>>;
60
+ }>]>;
61
+ /** Type override */
62
+ export declare type EnricherInput = t.TypeOf<typeof EnricherInput>;
63
+ /**
64
+ * Annotate specific fields within a datapoint. These are often database table columns.
65
+ * Fields can also be a JSON object or separate file.
66
+ */
67
+ export declare const FieldInput: t.IntersectionC<[t.TypeC<{
68
+ /** The unique key of the field */
69
+ key: t.StringC;
70
+ }>, t.PartialC<{
71
+ /** Display title of the field */
72
+ title: t.StringC;
73
+ /** The unique key of the datapoint. When a database, this is the table name. */
74
+ key: t.StringC;
75
+ /** Description of the field */
76
+ description: t.StringC;
77
+ }>]>;
78
+ /** Type override */
79
+ export declare type FieldInput = t.TypeOf<typeof FieldInput>;
80
+ /**
81
+ * Datapoints are the different types of data models that existing within your data silo.
82
+ * If the data silo is a database, these would be your tables.
83
+ * Note: These are currently called "datapoints" in the Transcend UI and documentation.
84
+ *
85
+ * @see https://docs.transcend.io/docs/the-data-map#datapoints
86
+ */
87
+ export declare const DatapointInput: t.IntersectionC<[t.TypeC<{
88
+ /** The display title of the enricher */
89
+ title: t.StringC;
90
+ /** The unique key of the datapoint. When a database, this is the table name. */
91
+ key: t.StringC;
92
+ }>, t.PartialC<{
93
+ /** Internal description for why the enricher is needed */
94
+ description: t.StringC;
95
+ /**
96
+ * What is the purpose of processing for this datapoint/table?
97
+ *
98
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
99
+ */
100
+ purpose: t.KeyofC<{
101
+ ESSENTIAL: unknown;
102
+ ADDITIONAL_FUNCTIONALITY: unknown;
103
+ ADVERTISING: unknown;
104
+ MARKETING: unknown;
105
+ ANALYTICS: unknown;
106
+ PERSONALIZATION: unknown;
107
+ OPERATION_SECURITY: unknown;
108
+ LEGAL: unknown;
109
+ TRANSFER: unknown;
110
+ SALE: unknown;
111
+ HR: unknown;
112
+ OTHER: unknown;
113
+ UNSPECIFIED: unknown;
114
+ }>;
115
+ /**
116
+ * The category of personal data for this datapoint
117
+ *
118
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
119
+ */
120
+ category: t.KeyofC<{
121
+ OTHER: unknown;
122
+ UNSPECIFIED: unknown;
123
+ FINANCIAL: unknown;
124
+ HEALTH: unknown;
125
+ CONTACT: unknown;
126
+ LOCATION: unknown;
127
+ DEMOGRAPHIC: unknown;
128
+ ID: unknown;
129
+ ONLINE_ACTIVITY: unknown;
130
+ USER_PROFILE: unknown;
131
+ SOCIAL_MEDIA: unknown;
132
+ CONNECTION: unknown;
133
+ TRACKING: unknown;
134
+ DEVICE: unknown;
135
+ SURVEY: unknown;
136
+ }>;
137
+ /**
138
+ * The SQL queries that should be run for that datapoint in a privacy request.
139
+ *
140
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
141
+ */
142
+ 'privacy-action-queries': t.PartialC<{
143
+ AUTOMATED_DECISION_MAKING_OPT_OUT: t.StringC;
144
+ CONTACT_OPT_OUT: t.StringC;
145
+ SALE_OPT_OUT: t.StringC;
146
+ TRACKING_OPT_OUT: t.StringC;
147
+ ACCESS: t.StringC;
148
+ ERASURE: t.StringC;
149
+ ACCOUNT_DELETION: t.StringC;
150
+ RECTIFICATION: t.StringC;
151
+ RESTRICTION: t.StringC;
152
+ }>;
153
+ /**
154
+ * The types of privacy actions that this datapoint can implement
155
+ *
156
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
157
+ */
158
+ 'privacy-actions': t.ArrayC<t.KeyofC<{
159
+ AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
160
+ CONTACT_OPT_OUT: unknown;
161
+ SALE_OPT_OUT: unknown;
162
+ TRACKING_OPT_OUT: unknown;
163
+ ACCESS: unknown;
164
+ ERASURE: unknown;
165
+ ACCOUNT_DELETION: unknown;
166
+ RECTIFICATION: unknown;
167
+ RESTRICTION: unknown;
168
+ }>>;
169
+ /**
170
+ * Provide field-level metadata for this datapoint.
171
+ * This is often the column metadata
172
+ */
173
+ fields: t.ArrayC<t.IntersectionC<[t.TypeC<{
174
+ /** The unique key of the field */
175
+ key: t.StringC;
176
+ }>, t.PartialC<{
177
+ /** Display title of the field */
178
+ title: t.StringC;
179
+ /** The unique key of the datapoint. When a database, this is the table name. */
180
+ key: t.StringC;
181
+ /** Description of the field */
182
+ description: t.StringC;
183
+ }>]>>;
184
+ }>]>;
185
+ /** Type override */
186
+ export declare type DatapointInput = t.TypeOf<typeof DatapointInput>;
187
+ /**
188
+ * Input to define a data silo
189
+ *
190
+ * Define the data silos in your data map. A data silo can be a database,
191
+ * or a web service that may use a collection of different data stores under the hood.
192
+ *
193
+ * @see https://docs.transcend.io/docs/the-data-map#data-silos
194
+ */
195
+ export declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
196
+ /** The display title of the data silo */
197
+ title: t.StringC;
198
+ /**
199
+ * The type of integration. Common internal system types:
200
+ * server | database | cron | promptAPerson
201
+ */
202
+ integrationName: t.StringC;
203
+ }>, t.PartialC<{
204
+ /** A description for that data silo */
205
+ description: t.StringC;
206
+ /** The webhook URL to notify for data privacy requests */
207
+ url: t.StringC;
208
+ /** The email address of the user to notify when a promptAPerson integration */
209
+ 'notify-email-address': t.StringC;
210
+ /** The title of the API key that will be used to respond to privacy requests */
211
+ 'api-key-title': t.StringC;
212
+ /**
213
+ * Specify which data subjects may have personally-identifiable-information (PII) within this system
214
+ * This field can be omitted, and the default assumption will be that the system may potentially
215
+ * contain PII for any potential data subject type.
216
+ */
217
+ 'data-subjects': t.ArrayC<t.StringC>;
218
+ /**
219
+ * When this data silo implements a privacy request, these are the identifiers
220
+ * that should be looked up within this system.
221
+ */
222
+ 'identity-keys': t.ArrayC<t.StringC>;
223
+ /**
224
+ * When a data erasure request is being performed, this data silo should not be deleted from
225
+ * until all of the following data silos were deleted first. This list can contain other internal
226
+ * systems defined in this file, as well as any of the SaaS tools connected in your Transcend instance.
227
+ */
228
+ 'deletion-dependencies': t.ArrayC<t.StringC>;
229
+ /**
230
+ * The email addresses of the employees within your company that are the go-to individuals
231
+ * for managing this data silo
232
+ */
233
+ owners: t.ArrayC<t.StringC>;
234
+ /**
235
+ * Specify this flag if the data silo is under development and should not be included
236
+ * in production privacy request workflows. Will still sync metadata to app.transcend.io.
237
+ */
238
+ disabled: t.BooleanC;
239
+ /**
240
+ * Datapoints defined within this data silo, see comment of `DatapointInput`
241
+ * for further details.
242
+ */
243
+ datapoints: t.ArrayC<t.IntersectionC<[t.TypeC<{
244
+ /** The display title of the enricher */
245
+ title: t.StringC;
246
+ /** The unique key of the datapoint. When a database, this is the table name. */
247
+ key: t.StringC;
248
+ }>, t.PartialC<{
249
+ /** Internal description for why the enricher is needed */
250
+ description: t.StringC;
251
+ /**
252
+ * What is the purpose of processing for this datapoint/table?
253
+ *
254
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
255
+ */
256
+ purpose: t.KeyofC<{
257
+ ESSENTIAL: unknown;
258
+ ADDITIONAL_FUNCTIONALITY: unknown;
259
+ ADVERTISING: unknown;
260
+ MARKETING: unknown;
261
+ ANALYTICS: unknown;
262
+ PERSONALIZATION: unknown;
263
+ OPERATION_SECURITY: unknown;
264
+ LEGAL: unknown;
265
+ TRANSFER: unknown;
266
+ SALE: unknown;
267
+ HR: unknown;
268
+ OTHER: unknown;
269
+ UNSPECIFIED: unknown;
270
+ }>;
271
+ /**
272
+ * The category of personal data for this datapoint
273
+ *
274
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
275
+ */
276
+ category: t.KeyofC<{
277
+ OTHER: unknown;
278
+ UNSPECIFIED: unknown;
279
+ FINANCIAL: unknown;
280
+ HEALTH: unknown;
281
+ CONTACT: unknown;
282
+ LOCATION: unknown;
283
+ DEMOGRAPHIC: unknown;
284
+ ID: unknown;
285
+ ONLINE_ACTIVITY: unknown;
286
+ USER_PROFILE: unknown;
287
+ SOCIAL_MEDIA: unknown;
288
+ CONNECTION: unknown;
289
+ TRACKING: unknown;
290
+ DEVICE: unknown;
291
+ SURVEY: unknown;
292
+ }>;
293
+ /**
294
+ * The SQL queries that should be run for that datapoint in a privacy request.
295
+ *
296
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
297
+ */
298
+ 'privacy-action-queries': t.PartialC<{
299
+ AUTOMATED_DECISION_MAKING_OPT_OUT: t.StringC;
300
+ CONTACT_OPT_OUT: t.StringC;
301
+ SALE_OPT_OUT: t.StringC;
302
+ TRACKING_OPT_OUT: t.StringC;
303
+ ACCESS: t.StringC;
304
+ ERASURE: t.StringC;
305
+ ACCOUNT_DELETION: t.StringC;
306
+ RECTIFICATION: t.StringC;
307
+ RESTRICTION: t.StringC;
308
+ }>;
309
+ /**
310
+ * The types of privacy actions that this datapoint can implement
311
+ *
312
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
313
+ */
314
+ 'privacy-actions': t.ArrayC<t.KeyofC<{
315
+ AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
316
+ CONTACT_OPT_OUT: unknown;
317
+ SALE_OPT_OUT: unknown;
318
+ TRACKING_OPT_OUT: unknown;
319
+ ACCESS: unknown;
320
+ ERASURE: unknown;
321
+ ACCOUNT_DELETION: unknown;
322
+ RECTIFICATION: unknown;
323
+ RESTRICTION: unknown;
324
+ }>>;
325
+ /**
326
+ * Provide field-level metadata for this datapoint.
327
+ * This is often the column metadata
328
+ */
329
+ fields: t.ArrayC<t.IntersectionC<[t.TypeC<{
330
+ /** The unique key of the field */
331
+ key: t.StringC;
332
+ }>, t.PartialC<{
333
+ /** Display title of the field */
334
+ title: t.StringC;
335
+ /** The unique key of the datapoint. When a database, this is the table name. */
336
+ key: t.StringC;
337
+ /** Description of the field */
338
+ description: t.StringC;
339
+ }>]>>;
340
+ }>]>>;
341
+ }>]>;
342
+ /** Type override */
343
+ export declare type DataSiloInput = t.TypeOf<typeof DataSiloInput>;
344
+ export declare const TranscendInput: t.PartialC<{
345
+ /**
346
+ * API key definitions
347
+ */
348
+ 'api-keys': t.ArrayC<t.TypeC<{
349
+ /** The display title of the enricher */
350
+ title: t.StringC;
351
+ }>>;
352
+ /**
353
+ * Enricher definitions
354
+ */
355
+ enrichers: t.ArrayC<t.IntersectionC<[t.TypeC<{
356
+ /** The display title of the enricher */
357
+ title: t.StringC;
358
+ /** The URL of the enricher */
359
+ url: t.StringC;
360
+ /**
361
+ * The name of the identifier that will be the input to this enricher.
362
+ * Whenever a privacy request contains this identifier, the webhook will
363
+ * be called with the value of that identifier as input
364
+ */
365
+ 'input-identifier': t.StringC;
366
+ /**
367
+ * The names of the identifiers that can be resolved by this enricher.
368
+ * i.e. email -> [userId, phone, advertisingId]
369
+ */
370
+ 'output-identifiers': t.ArrayC<t.StringC>;
371
+ }>, t.PartialC<{
372
+ /** Internal description for why the enricher is needed */
373
+ description: t.StringC;
374
+ /** The privacy actions that the enricher should run against */
375
+ 'privacy-actions': t.ArrayC<t.KeyofC<{
376
+ AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
377
+ CONTACT_OPT_OUT: unknown;
378
+ SALE_OPT_OUT: unknown;
379
+ TRACKING_OPT_OUT: unknown;
380
+ ACCESS: unknown;
381
+ ERASURE: unknown;
382
+ ACCOUNT_DELETION: unknown;
383
+ RECTIFICATION: unknown;
384
+ RESTRICTION: unknown;
385
+ DATA_CHECK: unknown;
386
+ }>>;
387
+ }>]>>;
388
+ /**
389
+ * Data silo definitions
390
+ */
391
+ 'data-silos': t.ArrayC<t.IntersectionC<[t.TypeC<{
392
+ /** The display title of the data silo */
393
+ title: t.StringC;
394
+ /**
395
+ * The type of integration. Common internal system types:
396
+ * server | database | cron | promptAPerson
397
+ */
398
+ integrationName: t.StringC;
399
+ }>, t.PartialC<{
400
+ /** A description for that data silo */
401
+ description: t.StringC;
402
+ /** The webhook URL to notify for data privacy requests */
403
+ url: t.StringC;
404
+ /** The email address of the user to notify when a promptAPerson integration */
405
+ 'notify-email-address': t.StringC;
406
+ /** The title of the API key that will be used to respond to privacy requests */
407
+ 'api-key-title': t.StringC;
408
+ /**
409
+ * Specify which data subjects may have personally-identifiable-information (PII) within this system
410
+ * This field can be omitted, and the default assumption will be that the system may potentially
411
+ * contain PII for any potential data subject type.
412
+ */
413
+ 'data-subjects': t.ArrayC<t.StringC>;
414
+ /**
415
+ * When this data silo implements a privacy request, these are the identifiers
416
+ * that should be looked up within this system.
417
+ */
418
+ 'identity-keys': t.ArrayC<t.StringC>;
419
+ /**
420
+ * When a data erasure request is being performed, this data silo should not be deleted from
421
+ * until all of the following data silos were deleted first. This list can contain other internal
422
+ * systems defined in this file, as well as any of the SaaS tools connected in your Transcend instance.
423
+ */
424
+ 'deletion-dependencies': t.ArrayC<t.StringC>;
425
+ /**
426
+ * The email addresses of the employees within your company that are the go-to individuals
427
+ * for managing this data silo
428
+ */
429
+ owners: t.ArrayC<t.StringC>;
430
+ /**
431
+ * Specify this flag if the data silo is under development and should not be included
432
+ * in production privacy request workflows. Will still sync metadata to app.transcend.io.
433
+ */
434
+ disabled: t.BooleanC;
435
+ /**
436
+ * Datapoints defined within this data silo, see comment of `DatapointInput`
437
+ * for further details.
438
+ */
439
+ datapoints: t.ArrayC<t.IntersectionC<[t.TypeC<{
440
+ /** The display title of the enricher */
441
+ title: t.StringC;
442
+ /** The unique key of the datapoint. When a database, this is the table name. */
443
+ key: t.StringC;
444
+ }>, t.PartialC<{
445
+ /** Internal description for why the enricher is needed */
446
+ description: t.StringC;
447
+ /**
448
+ * What is the purpose of processing for this datapoint/table?
449
+ *
450
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
451
+ */
452
+ purpose: t.KeyofC<{
453
+ ESSENTIAL: unknown;
454
+ ADDITIONAL_FUNCTIONALITY: unknown;
455
+ ADVERTISING: unknown;
456
+ MARKETING: unknown;
457
+ ANALYTICS: unknown;
458
+ PERSONALIZATION: unknown;
459
+ OPERATION_SECURITY: unknown;
460
+ LEGAL: unknown;
461
+ TRANSFER: unknown;
462
+ SALE: unknown;
463
+ HR: unknown;
464
+ OTHER: unknown;
465
+ UNSPECIFIED: unknown;
466
+ }>;
467
+ /**
468
+ * The category of personal data for this datapoint
469
+ *
470
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
471
+ */
472
+ category: t.KeyofC<{
473
+ OTHER: unknown;
474
+ UNSPECIFIED: unknown;
475
+ FINANCIAL: unknown;
476
+ HEALTH: unknown;
477
+ CONTACT: unknown;
478
+ LOCATION: unknown;
479
+ DEMOGRAPHIC: unknown;
480
+ ID: unknown;
481
+ ONLINE_ACTIVITY: unknown;
482
+ USER_PROFILE: unknown;
483
+ SOCIAL_MEDIA: unknown;
484
+ CONNECTION: unknown;
485
+ TRACKING: unknown;
486
+ DEVICE: unknown;
487
+ SURVEY: unknown;
488
+ }>;
489
+ /**
490
+ * The SQL queries that should be run for that datapoint in a privacy request.
491
+ *
492
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
493
+ */
494
+ 'privacy-action-queries': t.PartialC<{
495
+ AUTOMATED_DECISION_MAKING_OPT_OUT: t.StringC;
496
+ CONTACT_OPT_OUT: t.StringC;
497
+ SALE_OPT_OUT: t.StringC;
498
+ TRACKING_OPT_OUT: t.StringC;
499
+ ACCESS: t.StringC;
500
+ ERASURE: t.StringC;
501
+ ACCOUNT_DELETION: t.StringC;
502
+ RECTIFICATION: t.StringC;
503
+ RESTRICTION: t.StringC;
504
+ }>;
505
+ /**
506
+ * The types of privacy actions that this datapoint can implement
507
+ *
508
+ * @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
509
+ */
510
+ 'privacy-actions': t.ArrayC<t.KeyofC<{
511
+ AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
512
+ CONTACT_OPT_OUT: unknown;
513
+ SALE_OPT_OUT: unknown;
514
+ TRACKING_OPT_OUT: unknown;
515
+ ACCESS: unknown;
516
+ ERASURE: unknown;
517
+ ACCOUNT_DELETION: unknown;
518
+ RECTIFICATION: unknown;
519
+ RESTRICTION: unknown;
520
+ }>>;
521
+ /**
522
+ * Provide field-level metadata for this datapoint.
523
+ * This is often the column metadata
524
+ */
525
+ fields: t.ArrayC<t.IntersectionC<[t.TypeC<{
526
+ /** The unique key of the field */
527
+ key: t.StringC;
528
+ }>, t.PartialC<{
529
+ /** Display title of the field */
530
+ title: t.StringC;
531
+ /** The unique key of the datapoint. When a database, this is the table name. */
532
+ key: t.StringC;
533
+ /** Description of the field */
534
+ description: t.StringC;
535
+ }>]>>;
536
+ }>]>>;
537
+ }>]>>;
538
+ }>;
539
+ /** Type override */
540
+ export declare type TranscendInput = t.TypeOf<typeof TranscendInput>;
541
+ //# sourceMappingURL=codecs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"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"}