@ketch-sdk/ketch-types 1.3.3 → 1.4.1

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 (118) hide show
  1. package/.editorconfig +13 -0
  2. package/.eslintignore +3 -0
  3. package/.eslintrc.json +31 -0
  4. package/.github/CODEOWNERS +1 -0
  5. package/.github/CONTRIBUTING.md +177 -0
  6. package/.github/ISSUE_TEMPLATE.md +19 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +30 -0
  8. package/.github/dependabot.yml +18 -0
  9. package/.github/release.yml +18 -0
  10. package/.github/workflows/ci.yml +79 -0
  11. package/.prettierignore +3 -0
  12. package/.prettierrc +15 -0
  13. package/docs/.nojekyll +1 -0
  14. package/docs/assets/highlight.css +22 -0
  15. package/docs/assets/main.js +4 -0
  16. package/docs/assets/search.js +1 -0
  17. package/docs/assets/style.css +1280 -0
  18. package/docs/enums/BannerPosition.html +88 -0
  19. package/docs/enums/ConsentExperienceType.html +81 -0
  20. package/docs/enums/CookieCategory.html +88 -0
  21. package/docs/enums/CookieDuration.html +74 -0
  22. package/docs/enums/CookieProvenance.html +74 -0
  23. package/docs/enums/ExperienceButtonDestination.html +81 -0
  24. package/docs/enums/ExperienceClosedReason.html +91 -0
  25. package/docs/enums/ExperienceDefault.html +74 -0
  26. package/docs/enums/ExperiencePrimaryButtonAction.html +74 -0
  27. package/docs/enums/ExperienceType.html +74 -0
  28. package/docs/enums/IdentityFormat.html +102 -0
  29. package/docs/enums/IdentityType.html +116 -0
  30. package/docs/enums/MigrationOption.html +95 -0
  31. package/docs/enums/ModalPosition.html +81 -0
  32. package/docs/enums/SwitchTextRenderLogic.html +96 -0
  33. package/docs/functions/isTab.html +137 -0
  34. package/docs/index.html +126 -0
  35. package/docs/interfaces/AppDiv.html +78 -0
  36. package/docs/interfaces/Banner.html +129 -0
  37. package/docs/interfaces/CanonicalPurpose.html +85 -0
  38. package/docs/interfaces/Configuration.html +305 -0
  39. package/docs/interfaces/ConsentExperience.html +120 -0
  40. package/docs/interfaces/ConsentsTab.html +161 -0
  41. package/docs/interfaces/Cookie.html +134 -0
  42. package/docs/interfaces/DataSubject.html +152 -0
  43. package/docs/interfaces/DataSubjectType.html +87 -0
  44. package/docs/interfaces/Deployment.html +78 -0
  45. package/docs/interfaces/Environment.html +92 -0
  46. package/docs/interfaces/Experience.html +78 -0
  47. package/docs/interfaces/GetBootstrapConfigurationRequest.html +78 -0
  48. package/docs/interfaces/GetConsentRequest.html +137 -0
  49. package/docs/interfaces/GetConsentResponse.html +139 -0
  50. package/docs/interfaces/GetFullConfigurationRequest.html +113 -0
  51. package/docs/interfaces/GetLocationRequest.html +71 -0
  52. package/docs/interfaces/GetLocationResponse.html +71 -0
  53. package/docs/interfaces/GetPreferenceQRRequest.html +125 -0
  54. package/docs/interfaces/IPInfo.html +155 -0
  55. package/docs/interfaces/IPLanguage.html +85 -0
  56. package/docs/interfaces/IPLocation.html +120 -0
  57. package/docs/interfaces/Identity.html +110 -0
  58. package/docs/interfaces/InvokeRightRequest.html +139 -0
  59. package/docs/interfaces/JIT.html +129 -0
  60. package/docs/interfaces/JurisdictionInfo.html +97 -0
  61. package/docs/interfaces/Ketch.html +735 -0
  62. package/docs/interfaces/Loaded.html +73 -0
  63. package/docs/interfaces/Modal.html +176 -0
  64. package/docs/interfaces/Organization.html +71 -0
  65. package/docs/interfaces/OverviewTab.html +99 -0
  66. package/docs/interfaces/PluginClass.html +354 -0
  67. package/docs/interfaces/PolicyDocument.html +85 -0
  68. package/docs/interfaces/PreferenceExperience.html +120 -0
  69. package/docs/interfaces/Property.html +92 -0
  70. package/docs/interfaces/Purpose.html +179 -0
  71. package/docs/interfaces/PurposeAllowed.html +78 -0
  72. package/docs/interfaces/PurposeAllowedLegalBasis.html +78 -0
  73. package/docs/interfaces/PurposeLegalBasis.html +78 -0
  74. package/docs/interfaces/Pusher.html +83 -0
  75. package/docs/interfaces/Recaptcha.html +73 -0
  76. package/docs/interfaces/Right.html +95 -0
  77. package/docs/interfaces/RightsTab.html +106 -0
  78. package/docs/interfaces/SetConsentRequest.html +144 -0
  79. package/docs/interfaces/Stack.html +82 -0
  80. package/docs/interfaces/StorageProvider.html +117 -0
  81. package/docs/interfaces/Theme.html +262 -0
  82. package/docs/interfaces/Vendor.html +134 -0
  83. package/docs/interfaces/VendorPurpose.html +78 -0
  84. package/docs/interfaces/WebReportRequest.html +104 -0
  85. package/docs/modules.html +218 -0
  86. package/docs/types/Callback.html +141 -0
  87. package/docs/types/Consent.html +135 -0
  88. package/docs/types/Identities.html +133 -0
  89. package/docs/types/IdentityProvider.html +136 -0
  90. package/docs/types/InvokeRightEvent.html +137 -0
  91. package/docs/types/Plugin.html +128 -0
  92. package/docs/types/PluginFunction.html +143 -0
  93. package/docs/types/PurposeCategory.html +139 -0
  94. package/docs/types/ShowConsentOptions.html +135 -0
  95. package/docs/types/ShowPreferenceOptions.html +149 -0
  96. package/docs/types/Status.html +133 -0
  97. package/docs/types/Tab.html +128 -0
  98. package/docs/types/TabTuple.html +128 -0
  99. package/docs/variables/ALL_TABS.html +128 -0
  100. package/jest.config.js +174 -0
  101. package/package.json +1 -1
  102. package/src/index.ts +1339 -0
  103. package/tsconfig.json +8 -3
  104. package/tsfmt.json +19 -0
  105. package/dist/index.d.ts +0 -1137
  106. package/dist/index.js +0 -1
  107. package/test-reports/coverage/clover.xml +0 -6
  108. package/test-reports/coverage/coverage-final.json +0 -1
  109. package/test-reports/coverage/lcov-report/base.css +0 -224
  110. package/test-reports/coverage/lcov-report/block-navigation.js +0 -87
  111. package/test-reports/coverage/lcov-report/favicon.png +0 -0
  112. package/test-reports/coverage/lcov-report/index.html +0 -101
  113. package/test-reports/coverage/lcov-report/prettify.css +0 -1
  114. package/test-reports/coverage/lcov-report/prettify.js +0 -2
  115. package/test-reports/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  116. package/test-reports/coverage/lcov-report/sorter.js +0 -196
  117. package/test-reports/coverage/lcov.info +0 -0
  118. package/test-reports/junit/junit.xml +0 -3
package/dist/index.d.ts DELETED
@@ -1,1137 +0,0 @@
1
- /**
2
- * Callback
3
- */
4
- export declare type Callback = (arg0: any) => void;
5
- /**
6
- * Status
7
- */
8
- export type Status = {
9
- [key: string]: boolean;
10
- };
11
- /**
12
- * Consent
13
- */
14
- export type Consent = {
15
- purposes: Status;
16
- vendors?: string[];
17
- };
18
- /**
19
- * Identities
20
- */
21
- export type Identities = {
22
- [key: string]: string;
23
- };
24
- /**
25
- * Tabs
26
- */
27
- export declare const ALL_TABS: readonly ["overviewTab", "rightsTab", "consentsTab"];
28
- type TabTuple = typeof ALL_TABS;
29
- export type Tab = TabTuple[number];
30
- export declare function isTab(value: string): value is Tab;
31
- /**
32
- * Plugin class
33
- */
34
- export interface PluginClass {
35
- init?: (host: Ketch, config: Configuration) => void;
36
- environmentLoaded?: (host: Ketch, config: Configuration, env: Environment) => void;
37
- geoIPLoaded?: (host: Ketch, config: Configuration, ipInfo: IPInfo) => void;
38
- identitiesLoaded?: (host: Ketch, config: Configuration, identities: Identities) => void;
39
- jurisdictionLoaded?: (host: Ketch, config: Configuration, policyScope: string) => void;
40
- regionInfoLoaded?: (host: Ketch, config: Configuration, region: string) => void;
41
- consentChanged?: (host: Ketch, config: Configuration, consent: Consent) => void;
42
- rightInvoked?: (host: Ketch, config: Configuration, request: InvokeRightRequest) => void;
43
- showConsentExperience?: (host: Ketch, config: Configuration, consents: Consent, options?: ShowConsentOptions) => void;
44
- showPreferenceExperience?: (host: Ketch, config: Configuration, consents: Consent, options?: ShowPreferenceOptions) => void;
45
- willShowExperience?: (host: Ketch, config: Configuration, type: string) => void;
46
- experienceHidden?: (host: Ketch, config: Configuration, reason: string) => void;
47
- }
48
- /**
49
- * Plugin factory function signature
50
- */
51
- export type PluginFunction = (host: Ketch, config?: any) => Promise<void>;
52
- /**
53
- * Plugin
54
- */
55
- export type Plugin = PluginClass | PluginFunction;
56
- /**
57
- * Ketch host
58
- */
59
- export interface Ketch {
60
- getConfig(): Promise<Configuration>;
61
- registerPlugin(plugin: Plugin, config?: any): Promise<void>;
62
- registerIdentityProvider(name: string, provider: () => Promise<string[]>): Promise<void>;
63
- hasConsent(): boolean;
64
- getConsent(): Promise<Consent>;
65
- setConsent(c: Consent): Promise<Consent>;
66
- /**
67
- * @deprecated use on('consent', callback)
68
- * @param callback
69
- */
70
- onConsent(callback: Callback): Promise<void>;
71
- setShowConsentExperience(): Promise<void>;
72
- showConsentExperience(): Promise<Consent>;
73
- /**
74
- * @deprecated use on('showConsentExperience', callback)
75
- * @param callback
76
- */
77
- onShowConsentExperience(callback: (consents: Consent, options?: ShowConsentOptions) => void): Promise<void>;
78
- showPreferenceExperience(params: ShowPreferenceOptions): Promise<Consent>;
79
- /**
80
- * @deprecated use on('showPreferenceExperience', callback)
81
- * @param callback
82
- */
83
- onShowPreferenceExperience(callback: (consents: Consent, options?: ShowPreferenceOptions) => void): Promise<void>;
84
- experienceClosed(reason: ExperienceClosedReason): Promise<Consent>;
85
- /**
86
- * @deprecated use on('experienceHidden', callback)
87
- * @param callback
88
- */
89
- onHideExperience(callback: Callback): Promise<void>;
90
- /**
91
- * @deprecated use on('willShowExperience', callback)
92
- * @param callback
93
- */
94
- onWillShowExperience(callback: Callback): Promise<void>;
95
- invokeRight(eventData: InvokeRightEvent): Promise<void>;
96
- /**
97
- * @deprecated use on('rightInvoked', callback)
98
- * @param callback
99
- */
100
- onInvokeRight(callback: Callback): Promise<void>;
101
- setEnvironment(env: Environment): Promise<Environment>;
102
- getEnvironment(): Promise<Environment>;
103
- /**
104
- * @deprecated use on('environment', callback)
105
- * @param callback
106
- */
107
- onEnvironment(callback: Callback): Promise<void>;
108
- setGeoIP(g: IPInfo): Promise<IPInfo>;
109
- getGeoIP(): Promise<IPInfo>;
110
- /**
111
- * @deprecated use on('geoip', callback)
112
- * @param callback
113
- */
114
- onGeoIP(callback: Callback): Promise<void>;
115
- setIdentities(id: Identities): Promise<Identities>;
116
- getIdentities(): Promise<Identities>;
117
- /**
118
- * @deprecated use on('identities', callback)
119
- * @param callback
120
- */
121
- onIdentities(callback: Callback): Promise<void>;
122
- setJurisdiction(ps: string): Promise<string>;
123
- getJurisdiction(): Promise<string>;
124
- /**
125
- * @deprecated use on('jurisdiction', callback)
126
- * @param callback
127
- */
128
- onJurisdiction(callback: Callback): Promise<void>;
129
- setRegionInfo(info: string): Promise<string>;
130
- getRegionInfo(): Promise<string>;
131
- /**
132
- * @deprecated use on('region', callback)
133
- * @param callback
134
- */
135
- onRegionInfo(callback: Callback): Promise<void>;
136
- emit(eventName: string | symbol, ...args: any[]): boolean;
137
- addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
138
- removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
139
- on(eventName: string | symbol, listener: (...args: any[]) => void): this;
140
- once(eventName: string | symbol, listener: (...args: any[]) => void): this;
141
- off(eventName: string | symbol, listener: (...args: any[]) => void): this;
142
- }
143
- /**
144
- * ShowPreferenceOptions
145
- */
146
- export type ShowPreferenceOptions = {
147
- tab?: Tab;
148
- /**
149
- * dataSubjectTypeCodes is the list of data subjects to display. If undefined, all data subjects are displayed.
150
- */
151
- dataSubjectTypeCodes?: string[];
152
- /**
153
- * showRightsTab determines whether the rights tab will show. If undefined, the rights tab is displayed.
154
- */
155
- showRightsTab?: boolean;
156
- /**
157
- * supportedCountries is the list of supported ISO 3166 ALPHA-2 country codes to show in the rights form
158
- */
159
- supportedCountries?: string[];
160
- /**
161
- * showConsentsTab determines whether the consents tab will show. If undefined, the consents tab is displayed
162
- */
163
- showConsentsTab?: boolean;
164
- };
165
- /**
166
- * ExperienceType is the type of experience that will be shown
167
- */
168
- export declare enum ExperienceType {
169
- Consent = "experiences.consent",
170
- Preference = "experiences.preference"
171
- }
172
- /**
173
- * ConsentExperienceType is the type of consent experience that will be shown
174
- */
175
- export declare enum ConsentExperienceType {
176
- Banner = "experiences.consent.banner",
177
- Modal = "experiences.consent.modal",
178
- JIT = "experiences.consent.jit"
179
- }
180
- /**
181
- * ShowConsentOptions
182
- */
183
- export type ShowConsentOptions = {
184
- displayHint: ConsentExperienceType;
185
- purposes?: string[];
186
- };
187
- /**
188
- * InvokeRightEvent
189
- */
190
- export type InvokeRightEvent = {
191
- right: string;
192
- subject: DataSubject;
193
- recaptchaToken?: string;
194
- };
195
- /**
196
- * AppDiv
197
- */
198
- export interface AppDiv {
199
- id: string;
200
- zIndex: string;
201
- }
202
- /**
203
- * ExperienceClosedReason describes the reason the experience was closed.
204
- *
205
- * setConsent = consent was accepted/set
206
- * invokeRight = the right was invoked
207
- * close = the close/exit button was clicked
208
- */
209
- export declare enum ExperienceClosedReason {
210
- SET_CONSENT = "setConsent",
211
- INVOKE_RIGHT = "invokeRight",
212
- CLOSE = "close",
213
- WILL_NOT_SHOW = "willNotShow"
214
- }
215
- /**
216
- * ExperienceDefault
217
- */
218
- export declare enum ExperienceDefault {
219
- BANNER = 1,
220
- MODAL = 2
221
- }
222
- /**
223
- * ExperienceButtonDestination
224
- */
225
- export declare enum ExperienceButtonDestination {
226
- GOTO_MODAL = 1,
227
- GOTO_PREFERENCE = 2,
228
- REJECT_ALL = 3
229
- }
230
- /**
231
- * ExperiencePrimaryButtonAction
232
- */
233
- export declare enum ExperiencePrimaryButtonAction {
234
- SAVE_CURRENT_STATE = 1,
235
- ACCEPT_ALL = 2
236
- }
237
- /**
238
- * MigrationOption
239
- */
240
- export declare enum MigrationOption {
241
- MIGRATE_DEFAULT = 0,
242
- MIGRATE_NEVER = 1,
243
- MIGRATE_FROM_ALLOW = 2,
244
- MIGRATE_FROM_DENY = 3,
245
- MIGRATE_ALWAYS = 4
246
- }
247
- /**
248
- * CookieDuration
249
- */
250
- export declare enum CookieDuration {
251
- SESSION = 1,
252
- PERSISTENT = 2
253
- }
254
- /**
255
- * CookieProvenance
256
- */
257
- export declare enum CookieProvenance {
258
- FIRST_PARTY = 1,
259
- THIRD_PARTY = 2
260
- }
261
- /**
262
- * CookieCategory
263
- */
264
- export declare enum CookieCategory {
265
- STRICTLY_NECESSARY = 1,
266
- FUNCTIONAL = 2,
267
- PERFORMANCE = 3,
268
- MARKETING = 4
269
- }
270
- /**
271
- * IPLanguage
272
- */
273
- export interface IPLanguage {
274
- code: string;
275
- name: string;
276
- native: string;
277
- }
278
- /**
279
- * IPLocation
280
- */
281
- export interface IPLocation {
282
- geonameId: number;
283
- capital: string;
284
- languages: IPLanguage[];
285
- countryFlag: string;
286
- countryFlagEmoji: string;
287
- countryFlagEmojiUnicode: string;
288
- callingCode: string;
289
- isEU: boolean;
290
- }
291
- /**
292
- * IPInfo
293
- */
294
- export interface IPInfo {
295
- ip: string;
296
- hostname: string;
297
- continentCode: string;
298
- continentName: string;
299
- countryCode: string;
300
- countryName: string;
301
- regionCode: string;
302
- regionName: string;
303
- city: string;
304
- zip: string;
305
- latitude: number;
306
- longitude: number;
307
- location: IPLocation;
308
- }
309
- /**
310
- * GetLocationRequest
311
- */
312
- export interface GetLocationRequest {
313
- IP?: string;
314
- }
315
- /**
316
- * GetLocationResponse
317
- */
318
- export interface GetLocationResponse {
319
- location: IPInfo;
320
- }
321
- /**
322
- * PurposeLegalBasis
323
- */
324
- export interface PurposeLegalBasis {
325
- allowed?: string;
326
- legalBasisCode: string;
327
- }
328
- /**
329
- * PurposeAllowed
330
- */
331
- export interface PurposeAllowed {
332
- allowed: string;
333
- legalBasisCode?: string;
334
- }
335
- /**
336
- * PurposeAllowedLegalBasis
337
- */
338
- export interface PurposeAllowedLegalBasis {
339
- allowed: string;
340
- legalBasisCode: string;
341
- }
342
- /**
343
- * GetConsentRequest
344
- */
345
- export interface GetConsentRequest {
346
- organizationCode: string;
347
- controllerCode?: string;
348
- propertyCode: string;
349
- environmentCode: string;
350
- jurisdictionCode: string;
351
- identities: {
352
- [key: string]: string;
353
- };
354
- purposes: {
355
- [key: string]: PurposeLegalBasis;
356
- };
357
- vendors?: string[];
358
- collectedAt?: number;
359
- }
360
- /**
361
- * GetConsentResponse
362
- */
363
- export interface GetConsentResponse {
364
- organizationCode: string;
365
- controllerCode?: string;
366
- propertyCode: string;
367
- environmentCode: string;
368
- jurisdictionCode: string;
369
- identities: {
370
- [key: string]: string;
371
- };
372
- purposes: {
373
- [key: string]: PurposeAllowed | string;
374
- };
375
- /**
376
- * list of vendor ids for which the user has opted out
377
- */
378
- vendors?: string[];
379
- collectedAt?: number;
380
- }
381
- /**
382
- * SetConsentRequest
383
- */
384
- export interface SetConsentRequest {
385
- organizationCode: string;
386
- controllerCode?: string;
387
- propertyCode: string;
388
- environmentCode: string;
389
- jurisdictionCode: string;
390
- identities: {
391
- [key: string]: string;
392
- };
393
- collectedAt?: number;
394
- migrationOption?: MigrationOption;
395
- purposes: {
396
- [key: string]: PurposeAllowedLegalBasis;
397
- };
398
- vendors?: string[];
399
- }
400
- /**
401
- * DataSubject
402
- */
403
- export interface DataSubject {
404
- email: string;
405
- firstName: string;
406
- lastName: string;
407
- country?: string;
408
- stateRegion?: string;
409
- description?: string;
410
- phone?: string;
411
- postalCode?: string;
412
- addressLine1?: string;
413
- addressLine2?: string;
414
- /**
415
- * typeCode is the identifier representing the data subject type specified by the user
416
- */
417
- typeCode?: string;
418
- /**
419
- * typeRelationshipDetails is additional information provided by the user describing their relation to the business
420
- */
421
- typeRelationshipDetails?: string;
422
- }
423
- /**
424
- * InvokeRightRequest
425
- */
426
- export interface InvokeRightRequest {
427
- organizationCode: string;
428
- controllerCode?: string;
429
- propertyCode: string;
430
- environmentCode: string;
431
- identities: {
432
- [key: string]: string;
433
- };
434
- invokedAt?: number;
435
- jurisdictionCode: string;
436
- rightCode: string;
437
- user: DataSubject;
438
- recaptchaToken?: string;
439
- }
440
- /**
441
- * GetBootstrapConfigurationRequest
442
- */
443
- export interface GetBootstrapConfigurationRequest {
444
- organizationCode: string;
445
- propertyCode: string;
446
- }
447
- /**
448
- * GetFullConfigurationRequest
449
- */
450
- export interface GetFullConfigurationRequest {
451
- organizationCode: string;
452
- propertyCode: string;
453
- environmentCode?: string;
454
- hash?: string;
455
- deploymentID?: string;
456
- jurisdictionCode?: string;
457
- languageCode?: string;
458
- }
459
- /**
460
- * GetPreferenceQRRequest
461
- */
462
- export interface GetPreferenceQRRequest {
463
- organizationCode: string;
464
- propertyCode: string;
465
- environmentCode?: string;
466
- imageSize?: number;
467
- path?: string;
468
- backgroundColor?: string;
469
- foregroundColor?: string;
470
- parameters: {
471
- [key: string]: string;
472
- };
473
- }
474
- /**
475
- * WebReportRequest
476
- */
477
- export interface WebReportRequest {
478
- type: string;
479
- age: number;
480
- url: string;
481
- user_agent: string;
482
- body: {
483
- [key: string]: any;
484
- };
485
- }
486
- /**
487
- * Organization
488
- */
489
- export interface Organization {
490
- code: string;
491
- }
492
- /**
493
- * JurisdictionInfo
494
- */
495
- export interface JurisdictionInfo {
496
- code?: string;
497
- defaultScopeCode?: string;
498
- variable?: string;
499
- scopes?: {
500
- [key: string]: string;
501
- };
502
- }
503
- /**
504
- * Property
505
- */
506
- export interface Property {
507
- code?: string;
508
- name?: string;
509
- platform?: string;
510
- proxy?: string;
511
- }
512
- /**
513
- * Environment
514
- */
515
- export interface Environment {
516
- code: string;
517
- pattern?: string;
518
- hash?: string;
519
- domain?: string;
520
- }
521
- /**
522
- * Deployment
523
- */
524
- export interface Deployment {
525
- code: string;
526
- version: number;
527
- }
528
- /**
529
- * Cookie
530
- */
531
- export interface Cookie {
532
- name: string;
533
- code: string;
534
- host: string;
535
- duration: CookieDuration;
536
- provenance: CookieProvenance;
537
- category: CookieCategory;
538
- description: string;
539
- serviceProvider?: string;
540
- latest?: boolean;
541
- version?: number;
542
- }
543
- /**
544
- * PurposeCategory
545
- */
546
- export type PurposeCategory = {
547
- name: string;
548
- description: string;
549
- retentionPeriod: string;
550
- externalTransfers: string;
551
- };
552
- /**
553
- * Purpose
554
- */
555
- export interface Purpose {
556
- code: string;
557
- name?: string;
558
- description?: string;
559
- legalBasisCode: string;
560
- requiresOptIn?: boolean;
561
- allowsOptOut?: boolean;
562
- requiresDisplay?: boolean;
563
- requiresPrivacyPolicy?: boolean;
564
- cookies?: Cookie[];
565
- categories?: PurposeCategory[];
566
- tcfType?: string;
567
- tcfID?: string;
568
- canonicalPurposeCode?: string;
569
- legalBasisName?: string;
570
- legalBasisDescription?: string;
571
- /**
572
- * the data subject types for which the purpose is relevant. If this list is empty then the purpose applies to all
573
- * data subject types
574
- */
575
- dataSubjectTypeCodes?: string[];
576
- }
577
- /**
578
- * CanonicalPurpose
579
- */
580
- export interface CanonicalPurpose {
581
- code: string;
582
- name: string;
583
- purposeCodes?: string[];
584
- }
585
- /**
586
- * IdentityLocation is the location on the page from which to retrieve identity information
587
- */
588
- export declare enum IdentityType {
589
- IDENTITY_TYPE_UNDEFINED = "",
590
- IDENTITY_TYPE_DATA_LAYER = "dataLayer",
591
- IDENTITY_TYPE_WINDOW = "window",
592
- IDENTITY_TYPE_COOKIE = "cookie",
593
- IDENTITY_TYPE_MANAGED = "managedCookie",
594
- IDENTITY_TYPE_LOCAL_STORAGE = "localStorage",
595
- IDENTITY_TYPE_SESSION_STORAGE = "sessionStorage",
596
- IDENTITY_TYPE_QUERY_STRING = "queryString"
597
- }
598
- /**
599
- * IdentityFormat is the encoding of the string identity value
600
- */
601
- export declare enum IdentityFormat {
602
- IDENTITY_FORMAT_UNDEFINED = "",
603
- IDENTITY_FORMAT_STRING = "string",
604
- IDENTITY_FORMAT_JSON = "json",
605
- IDENTITY_FORMAT_JWT = "jwt",
606
- IDENTITY_FORMAT_QUERY = "query",
607
- IDENTITY_FORMAT_SEMICOLON = "semicolon"
608
- }
609
- /**
610
- * Identity represents all the metadata for an identifier on the page
611
- */
612
- export interface Identity {
613
- /**
614
- * type is the location on the page from which to retrieve identity information
615
- */
616
- type: IdentityType;
617
- /**
618
- * variable is the name to look up the identity value in the specified location
619
- */
620
- variable: string;
621
- /**
622
- * format is the encoding of the value
623
- */
624
- format: IdentityFormat;
625
- /**
626
- * key is the identifier to find the identity within the value if the format is IDENTITY_FORMAT_STRING then key
627
- * will be undefined
628
- */
629
- key?: string;
630
- /**
631
- * priority of the identity for consent conflict resolution
632
- */
633
- priority?: number;
634
- }
635
- /**
636
- * PolicyDocument
637
- */
638
- export interface PolicyDocument {
639
- code: string;
640
- version: number;
641
- url: string;
642
- }
643
- /**
644
- * SwitchTextRenderLogic
645
- */
646
- export declare enum SwitchTextRenderLogic {
647
- /**
648
- * SWITCH_TEXT_RENDER_ALL always renders the switch text regardless of state
649
- */
650
- SWITCH_TEXT_RENDER_ALL = 1,
651
- /**
652
- * SWITCH_TEXT_RENDER_LEGAL_BASIS renders the switch text only if different from the legal basis default
653
- */
654
- SWITCH_TEXT_RENDER_LEGAL_BASIS = 2,
655
- /**
656
- * SWITCH_TEXT_RENDER_CHANGE renders the switch only if the user changes the state of the switch
657
- */
658
- SWITCH_TEXT_RENDER_CHANGE = 3,
659
- /**
660
- * SWITCH_TEXT_RENDER_NEVER never renders the switch text
661
- */
662
- SWITCH_TEXT_RENDER_NEVER = 4
663
- }
664
- /**
665
- * Banner
666
- */
667
- export interface Banner {
668
- title?: string;
669
- footerDescription: string;
670
- buttonText: string;
671
- primaryButtonAction?: ExperiencePrimaryButtonAction;
672
- secondaryButtonText?: string;
673
- secondaryButtonDestination?: ExperienceButtonDestination;
674
- /**
675
- * showCloseIcon determines whether the x out icon appears in the experience. Default do not show
676
- */
677
- showCloseIcon?: boolean;
678
- /**
679
- * additional extensions
680
- */
681
- extensions?: {
682
- [key: string]: string;
683
- };
684
- }
685
- /**
686
- * Modal
687
- */
688
- export interface Modal {
689
- title: string;
690
- bodyTitle?: string;
691
- bodyDescription?: string;
692
- footerDescription?: string;
693
- buttonText: string;
694
- /**
695
- * consentTitle is the heading that goes above the list of purposes this optionally overrides the standard title
696
- */
697
- consentTitle?: string;
698
- /**
699
- * hideConsentTitle determines whether the consent title should be hidden. Default is to show
700
- */
701
- hideConsentTitle?: boolean;
702
- /**
703
- * hideLegalBases determines whether the legal bases should be hidden. Default is to show
704
- */
705
- hideLegalBases?: boolean;
706
- /**
707
- * switchOnText overrides the standard text for a consent switch in the on state
708
- */
709
- switchOnText?: string;
710
- /**
711
- * switchOffText overrides the standard text for a consent switch in the off state
712
- */
713
- switchOffText?: string;
714
- /**
715
- * switchTextRenderLogic determines the logic for showing the switch text
716
- */
717
- switchTextRenderLogic?: SwitchTextRenderLogic;
718
- /**
719
- * showCloseIcon determines whether the x out icon appears in the experience. Default do not show
720
- */
721
- showCloseIcon?: boolean;
722
- /**
723
- * additional extensions
724
- */
725
- extensions?: {
726
- [key: string]: string;
727
- };
728
- }
729
- /**
730
- * JIT
731
- */
732
- export interface JIT {
733
- title?: string;
734
- bodyDescription?: string;
735
- acceptButtonText: string;
736
- declineButtonText: string;
737
- moreInfoText?: string;
738
- moreInfoDestination?: ExperienceButtonDestination;
739
- /**
740
- * showCloseIcon determines whether the x out icon appears in the experience. Default do not show
741
- */
742
- showCloseIcon?: boolean;
743
- /**
744
- * additional extensions
745
- */
746
- extensions?: {
747
- [key: string]: string;
748
- };
749
- }
750
- /**
751
- * RightsTab
752
- */
753
- export interface RightsTab {
754
- tabName: string;
755
- bodyTitle?: string;
756
- bodyDescription?: string;
757
- buttonText: string;
758
- /**
759
- * additional extensions
760
- */
761
- extensions?: {
762
- [key: string]: string;
763
- };
764
- }
765
- /**
766
- * ConsentsTab
767
- */
768
- export interface ConsentsTab {
769
- tabName: string;
770
- bodyTitle?: string;
771
- bodyDescription?: string;
772
- buttonText: string;
773
- /**
774
- * consentTitle is the heading that goes above the list of purposes
775
- * this optionally overrides the standard title
776
- */
777
- consentTitle?: string;
778
- /**
779
- * hideConsentTitle determines whether the consent title should be hidden. Default is to show
780
- */
781
- hideConsentTitle?: boolean;
782
- /**
783
- * hideLegalBases determines whether the legal bases should be hidden. Default is to show
784
- */
785
- hideLegalBases?: boolean;
786
- /**
787
- * switchOnText overrides the standard text for a consent switch in the on state
788
- */
789
- switchOnText?: string;
790
- /**
791
- * switchOffText overrides the standard text for a consent switch in the off state
792
- */
793
- switchOffText?: string;
794
- /**
795
- * switchTextRenderLogic determines the logic for showing the switch text
796
- */
797
- switchTextRenderLogic?: SwitchTextRenderLogic;
798
- /**
799
- * additional extensions
800
- */
801
- extensions?: {
802
- [key: string]: string;
803
- };
804
- }
805
- /**
806
- * OverviewTab
807
- */
808
- export interface OverviewTab {
809
- tabName: string;
810
- bodyTitle?: string;
811
- bodyDescription: string;
812
- /**
813
- * additional extensions
814
- * */
815
- extensions?: {
816
- [key: string]: string;
817
- };
818
- }
819
- /**
820
- * ConsentExperience
821
- */
822
- export interface ConsentExperience {
823
- code: string;
824
- version: number;
825
- banner: Banner;
826
- modal: Modal;
827
- jit?: JIT;
828
- experienceDefault: ExperienceDefault;
829
- /**
830
- * additional extensions
831
- */
832
- extensions?: {
833
- [key: string]: string;
834
- };
835
- }
836
- /**
837
- * PreferenceExperience
838
- */
839
- export interface PreferenceExperience {
840
- code: string;
841
- version: number;
842
- title: string;
843
- rights?: RightsTab;
844
- consents?: ConsentsTab;
845
- overview: OverviewTab;
846
- /**
847
- * additional extensions
848
- */
849
- extensions?: {
850
- [key: string]: string;
851
- };
852
- }
853
- /**
854
- * Right
855
- */
856
- export interface Right {
857
- code: string;
858
- name: string;
859
- description: string;
860
- /**
861
- * the data subject types for which the right is relevant. If this list is empty then the right applies to all
862
- * data subject types
863
- */
864
- dataSubjectTypeCodes?: string[];
865
- }
866
- /**
867
- * Experience
868
- */
869
- export interface Experience {
870
- consent?: ConsentExperience;
871
- preference?: PreferenceExperience;
872
- }
873
- /**
874
- * BannerPosition
875
- */
876
- export declare enum BannerPosition {
877
- BOTTOM = 1,
878
- TOP = 2,
879
- BOTTOM_LEFT = 3,
880
- BOTTOM_RIGHT = 4
881
- }
882
- /**
883
- * ModalPosition
884
- */
885
- export declare enum ModalPosition {
886
- CENTER = 1,
887
- LEFT_FULL_HEIGHT = 2,
888
- RIGHT_FULL_HEIGHT = 3
889
- }
890
- /**
891
- * Theme
892
- */
893
- export interface Theme {
894
- code?: string;
895
- name?: string;
896
- description?: string;
897
- watermark?: boolean;
898
- buttonBorderRadius: number;
899
- font?: string;
900
- bannerBackgroundColor: string;
901
- bannerContentColor?: string;
902
- bannerButtonColor: string;
903
- bannerSecondaryButtonColor?: string;
904
- bannerPosition?: BannerPosition;
905
- modalHeaderBackgroundColor: string;
906
- modalHeaderContentColor?: string;
907
- modalContentColor: string;
908
- modalButtonColor: string;
909
- modalPosition?: ModalPosition;
910
- /**
911
- * modalSwitchOnColor is the color of the consent switch in the on state for the modal this overrides standard theme
912
- * colors
913
- */
914
- modalSwitchOnColor?: string;
915
- /**
916
- * modalSwitchOffColor is the color of the consent switch in the off state for the modal this overrides standard
917
- * theme colors
918
- */
919
- modalSwitchOffColor?: string;
920
- formHeaderBackgroundColor: string;
921
- formHeaderContentColor?: string;
922
- formContentColor: string;
923
- formButtonColor: string;
924
- /**
925
- * formSwitchOnColor is the color of the consent switch in the on state for the form this overrides standard theme
926
- * colors
927
- */
928
- formSwitchOnColor?: string;
929
- /**
930
- * formSwitchOffColor is the color of the consent switch in the off state for the form this overrides standard theme
931
- * colors
932
- */
933
- formSwitchOffColor?: string;
934
- /**
935
- * qrBackgroundColor is the override for the QR code background color
936
- */
937
- qrBackgroundColor?: string;
938
- /**
939
- * qrForegroundColor is the override for the QR code foreground color
940
- */
941
- qrForegroundColor?: string;
942
- }
943
- /**
944
- * Vendor purpose
945
- */
946
- export interface VendorPurpose {
947
- name: string;
948
- legalBasis?: string;
949
- }
950
- /**
951
- * Vendor definition
952
- */
953
- export interface Vendor {
954
- id: string;
955
- name: string;
956
- purposes?: VendorPurpose[];
957
- specialPurposes?: VendorPurpose[];
958
- features?: VendorPurpose[];
959
- specialFeatures?: VendorPurpose[];
960
- policyUrl?: string;
961
- cookieMaxAgeSeconds?: number;
962
- usesCookies?: boolean;
963
- usesNonCookieAccess?: boolean;
964
- }
965
- /**
966
- * DataSubjectType represents user defined data subject types with code as the unique identifier
967
- */
968
- export interface DataSubjectType {
969
- code: string;
970
- name: string;
971
- /**
972
- * requiresUserInput is true if additional information must be requested to describe the data subject relation
973
- */
974
- requiresUserInput: boolean;
975
- }
976
- /**
977
- * Stack represents a grouping of purposes to be displayed in an experience
978
- */
979
- export interface Stack {
980
- /**
981
- * name of the stack to be displayed
982
- */
983
- name: string;
984
- /**
985
- * list of purpose codes that are members of the stack
986
- */
987
- purposeCodes: string[];
988
- }
989
- /**
990
- * Configuration
991
- */
992
- export interface Configuration {
993
- /**
994
- * Organization this configuration belongs to
995
- */
996
- organization: Organization;
997
- /**
998
- * Property this configuration belongs to
999
- */
1000
- property?: Property;
1001
- /**
1002
- * Language for all text
1003
- */
1004
- language?: string;
1005
- /**
1006
- * Available environments. Only available in the "boot" configuration.
1007
- */
1008
- environments?: Environment[];
1009
- /**
1010
- * Environment for this configuration. Only available in the "full" configuration.
1011
- */
1012
- environment?: Environment;
1013
- /**
1014
- * Applicable jurisdiction.
1015
- */
1016
- jurisdiction?: JurisdictionInfo;
1017
- /**
1018
- * Identity spaces defined for this property
1019
- */
1020
- identities?: {
1021
- [key: string]: Identity;
1022
- };
1023
- /**
1024
- * Deployment information. Only available in the "full" configuration.
1025
- */
1026
- deployment?: Deployment;
1027
- /**
1028
- * Regulations enabled for this jurisdiction.
1029
- */
1030
- regulations?: string[];
1031
- /**
1032
- * Rights available in this jurisdiction.
1033
- */
1034
- rights?: Right[];
1035
- /**
1036
- * Purposes in this jurisdiction.
1037
- */
1038
- purposes?: Purpose[];
1039
- /**
1040
- * Mapping of purposes to canonical purposes.
1041
- */
1042
- canonicalPurposes?: {
1043
- [key: string]: CanonicalPurpose;
1044
- };
1045
- /**
1046
- * Privacy policy document
1047
- */
1048
- privacyPolicy?: PolicyDocument;
1049
- /**
1050
- * Terms of Service (ToS) policy document
1051
- */
1052
- termsOfService?: PolicyDocument;
1053
- /**
1054
- * Theme
1055
- */
1056
- theme?: Theme;
1057
- /**
1058
- * Experience definitions
1059
- */
1060
- experiences?: Experience;
1061
- /**
1062
- * Vendors (TCF)
1063
- */
1064
- vendors?: Vendor[];
1065
- /**
1066
- * Data subject types relevant for this configuration
1067
- */
1068
- dataSubjectTypes?: DataSubjectType[];
1069
- /**
1070
- * Stacks to be displayed in an experience
1071
- */
1072
- stacks?: Stack[];
1073
- /**
1074
- * Services
1075
- */
1076
- services?: {
1077
- [key: string]: string;
1078
- };
1079
- /**
1080
- * Flexible options
1081
- */
1082
- options?: {
1083
- [key: string]: string;
1084
- };
1085
- /**
1086
- * Scripts to load
1087
- */
1088
- scripts?: string[];
1089
- /**
1090
- * Plugins configured for the configuration
1091
- */
1092
- plugins?: {
1093
- [key: string]: any;
1094
- };
1095
- /**
1096
- * Recaptcha config
1097
- */
1098
- recaptcha?: Recaptcha;
1099
- }
1100
- /**
1101
- * Recaptcha interface defines the Recaptcha config
1102
- */
1103
- export interface Recaptcha {
1104
- /**
1105
- * siteKey: Recaptcha site/public key used to exchange for a reCaptcha token
1106
- */
1107
- siteKey?: string;
1108
- }
1109
- /**
1110
- * Pusher interface defines a type that has a push function like an array
1111
- */
1112
- export interface Pusher {
1113
- /**
1114
- * Pushes the given arguments.
1115
- *
1116
- * @param args The arguments to push.
1117
- */
1118
- push(args: any[]): void;
1119
- }
1120
- /**
1121
- * Loaded interface defines a type that has a loaded boolean property
1122
- */
1123
- export interface Loaded {
1124
- /**
1125
- * Loaded is set to true if the object has fully loaded
1126
- */
1127
- loaded: boolean;
1128
- }
1129
- declare global {
1130
- interface Window {
1131
- /**
1132
- * Semaphore is the main entrypoint.
1133
- */
1134
- semaphore: Pusher & Loaded;
1135
- }
1136
- }
1137
- export {};