@cookiemunch/sdk 0.2.0 → 0.4.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/dist/index.cjs +40 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +571 -13
- package/dist/index.d.ts +571 -13
- package/dist/index.js +40 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -57,6 +57,144 @@ interface Site {
|
|
|
57
57
|
cbid: string;
|
|
58
58
|
orgId: string;
|
|
59
59
|
domain: string;
|
|
60
|
+
/** The business name data subjects see on the rights page, in notices and the policy. Absent: the domain is shown. */
|
|
61
|
+
name?: string;
|
|
62
|
+
/** Other hosts serving the site: accepted consent-ingest origins, never verified claims. */
|
|
63
|
+
aliases?: string[];
|
|
64
|
+
verified?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/** PATCH /v1/sites/{cbid} — rename or move a site. `name: null` clears the name; `aliases: []` clears them. */
|
|
67
|
+
interface SiteUpdate {
|
|
68
|
+
domain?: string;
|
|
69
|
+
name?: string | null;
|
|
70
|
+
aliases?: string[];
|
|
71
|
+
}
|
|
72
|
+
interface SiteUpdateResult {
|
|
73
|
+
dryRun?: true;
|
|
74
|
+
site: Site;
|
|
75
|
+
diff: Array<{
|
|
76
|
+
field: 'domain' | 'name' | 'aliases' | 'verified';
|
|
77
|
+
before: unknown;
|
|
78
|
+
after: unknown;
|
|
79
|
+
}>;
|
|
80
|
+
effects: {
|
|
81
|
+
/** `reset`: the domain moved; verify the new one. */
|
|
82
|
+
verification: 'kept' | 'reset';
|
|
83
|
+
scanTarget: string;
|
|
84
|
+
previewDefaultUrl: string;
|
|
85
|
+
displayName: string;
|
|
86
|
+
/** Custom rights-page hostnames no longer under the domain or an alias (left in place). */
|
|
87
|
+
staleRightsDomains: string[];
|
|
88
|
+
};
|
|
89
|
+
warnings?: Array<{
|
|
90
|
+
field: string;
|
|
91
|
+
reason: string;
|
|
92
|
+
}>;
|
|
93
|
+
}
|
|
94
|
+
/** One row of GET /v1/integration-health. `ok: null` = the check could not run (see `detail`). */
|
|
95
|
+
interface HealthRow {
|
|
96
|
+
check: string;
|
|
97
|
+
ok: boolean | null;
|
|
98
|
+
severity: 'error' | 'warning' | 'info';
|
|
99
|
+
subject: string;
|
|
100
|
+
fixHint?: string;
|
|
101
|
+
detail?: string;
|
|
102
|
+
lastCheckedAt: number;
|
|
103
|
+
}
|
|
104
|
+
interface IntegrationHealthReport {
|
|
105
|
+
cbid: string;
|
|
106
|
+
checkedAt: number;
|
|
107
|
+
ok: boolean;
|
|
108
|
+
counts: {
|
|
109
|
+
error: number;
|
|
110
|
+
warning: number;
|
|
111
|
+
notChecked: number;
|
|
112
|
+
};
|
|
113
|
+
checks: HealthRow[];
|
|
114
|
+
}
|
|
115
|
+
/** POST /v1/provision. Secrets are used for the request only and never returned. */
|
|
116
|
+
interface ProvisionRequest {
|
|
117
|
+
product: string;
|
|
118
|
+
domain: string;
|
|
119
|
+
name?: string;
|
|
120
|
+
aliases?: string[];
|
|
121
|
+
cbid?: string;
|
|
122
|
+
/** `frontendApiHost` (e.g. auth.example.com) lets provision declare Atlas's sign-in cookies on the site. */
|
|
123
|
+
atlas?: {
|
|
124
|
+
secretKey: string;
|
|
125
|
+
cookieConsent?: boolean;
|
|
126
|
+
dsrWebhook?: boolean;
|
|
127
|
+
frontendApiHost?: string;
|
|
128
|
+
};
|
|
129
|
+
forumulate?: {
|
|
130
|
+
token: string;
|
|
131
|
+
orgId: string;
|
|
132
|
+
consent?: boolean;
|
|
133
|
+
executorKey?: boolean;
|
|
134
|
+
label?: string;
|
|
135
|
+
};
|
|
136
|
+
rightsApi?: {
|
|
137
|
+
baseUrl: string;
|
|
138
|
+
secretKey: string;
|
|
139
|
+
profilePreset?: string;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
interface ProvisionStep {
|
|
143
|
+
step: string;
|
|
144
|
+
status: 'created' | 'updated' | 'unchanged' | 'would_create' | 'would_update' | 'skipped' | 'waiting' | 'failed' | 'passed';
|
|
145
|
+
detail?: string;
|
|
146
|
+
diff?: Array<{
|
|
147
|
+
field: string;
|
|
148
|
+
before: unknown;
|
|
149
|
+
after: unknown;
|
|
150
|
+
}>;
|
|
151
|
+
waitingOn?: string;
|
|
152
|
+
}
|
|
153
|
+
interface ProvisionResult {
|
|
154
|
+
dryRun: boolean;
|
|
155
|
+
product: string;
|
|
156
|
+
cbid: string | null;
|
|
157
|
+
steps: ProvisionStep[];
|
|
158
|
+
summary: {
|
|
159
|
+
changed: number;
|
|
160
|
+
unchanged: number;
|
|
161
|
+
waiting: number;
|
|
162
|
+
failed: number;
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
type PartnerId = 'forumulate' | 'atlas';
|
|
166
|
+
interface PartnerLinkCreate {
|
|
167
|
+
partner: PartnerId;
|
|
168
|
+
/** The partner's id for the receiving account (a Forumulate organisation id, an Atlas instance id). */
|
|
169
|
+
externalId: string;
|
|
170
|
+
label?: string;
|
|
171
|
+
events?: Array<'consent.recorded' | 'consent.withdrawn'>;
|
|
172
|
+
}
|
|
173
|
+
interface PartnerLink {
|
|
174
|
+
id: string;
|
|
175
|
+
cbid: string;
|
|
176
|
+
partner: PartnerId;
|
|
177
|
+
externalId: string;
|
|
178
|
+
label?: string;
|
|
179
|
+
events: string[];
|
|
180
|
+
status: 'active' | 'waiting_on_partner' | 'revoked';
|
|
181
|
+
/** e.g. "Forumulate (docs) — receiving consent events". */
|
|
182
|
+
summary: string;
|
|
183
|
+
waitingOn?: string;
|
|
184
|
+
createdAt: number;
|
|
185
|
+
createdBy?: string;
|
|
186
|
+
revokedAt?: number;
|
|
187
|
+
revokedBy?: string | null;
|
|
188
|
+
lastDeliveryAt: number | null;
|
|
189
|
+
lastError: string | null;
|
|
190
|
+
}
|
|
191
|
+
interface PartnerCatalogEntry {
|
|
192
|
+
id: PartnerId;
|
|
193
|
+
label: string;
|
|
194
|
+
externalIdLabel: string;
|
|
195
|
+
events: string[];
|
|
196
|
+
available: boolean;
|
|
197
|
+
waitingOn?: string;
|
|
60
198
|
}
|
|
61
199
|
interface SiteCreate {
|
|
62
200
|
domain: string;
|
|
@@ -110,7 +248,10 @@ interface DsarRequest {
|
|
|
110
248
|
dueAt: number;
|
|
111
249
|
/** Where the subject said they are, when the intake captured it. */
|
|
112
250
|
jurisdiction?: string;
|
|
251
|
+
/** INTERNAL: intake note plus the audit lines `/erase` and `/export` append. Never shown to the subject. */
|
|
113
252
|
note?: string;
|
|
253
|
+
/** The line the subject reads in the response notice. */
|
|
254
|
+
messageToSubject?: string;
|
|
114
255
|
/** A test request: off the SLA board, labelled, and deletable with `dsar.delete`. A closed request can be marked one with `dsar.markTest`. */
|
|
115
256
|
test?: boolean;
|
|
116
257
|
}
|
|
@@ -158,7 +299,10 @@ interface DsarCreate {
|
|
|
158
299
|
* shares one `regulation` for the deadline.
|
|
159
300
|
*/
|
|
160
301
|
jurisdiction?: string;
|
|
302
|
+
/** INTERNAL: kept on the request, never shown to the subject. */
|
|
161
303
|
note?: string;
|
|
304
|
+
/** The one free-text line the subject reads in the notice (≤2000 chars; an API key or key prefix is refused). */
|
|
305
|
+
messageToSubject?: string;
|
|
162
306
|
/** The property this request belongs to; decides which connected systems answer it. */
|
|
163
307
|
cbid?: string;
|
|
164
308
|
/** The subject's consent-receipt id. */
|
|
@@ -262,6 +406,11 @@ interface CookieMunchOptions {
|
|
|
262
406
|
baseUrl: string;
|
|
263
407
|
/** Injectable for tests / custom runtimes. Defaults to the global fetch. */
|
|
264
408
|
fetch?: typeof fetch;
|
|
409
|
+
/**
|
|
410
|
+
* Send `Prefer: strict-unknown-fields` on every write: a body field the operation does not
|
|
411
|
+
* declare is refused (`400 unknown_field`, with `field`) instead of ignored. Catches typos.
|
|
412
|
+
*/
|
|
413
|
+
strictUnknownFields?: boolean;
|
|
265
414
|
}
|
|
266
415
|
/**
|
|
267
416
|
* Thrown for any non-2xx response. `message` is the server's `error` field when present;
|
|
@@ -296,8 +445,48 @@ interface CategorizedCookie {
|
|
|
296
445
|
declared?: boolean;
|
|
297
446
|
/** A declared `prefix*` wildcard row that no observed cookie matched yet. */
|
|
298
447
|
pattern?: boolean;
|
|
299
|
-
/**
|
|
300
|
-
|
|
448
|
+
/**
|
|
449
|
+
* Why a person should look at it. Visitors see unclassified and category ones under
|
|
450
|
+
* "Unclassified"; `retired_but_seen` = retired, but a crawl or a visit saw it since, so the
|
|
451
|
+
* site still sets it and it is listed again.
|
|
452
|
+
*/
|
|
453
|
+
review?: 'unclassified' | 'category_disabled' | 'category_unknown' | 'retired_but_seen';
|
|
454
|
+
/** Epoch-ms a crawl or a real visit last saw it. Absent on older rows. */
|
|
455
|
+
lastSeenAt?: number;
|
|
456
|
+
/** Owner views only: the site owner retired this cookie (see `sites.retireCookie`). */
|
|
457
|
+
retired?: {
|
|
458
|
+
at: number;
|
|
459
|
+
renamedTo?: string;
|
|
460
|
+
note?: string;
|
|
461
|
+
by?: string;
|
|
462
|
+
pattern?: string;
|
|
463
|
+
};
|
|
464
|
+
/** A cookie (default, also when absent) or a key in browser storage. */
|
|
465
|
+
type?: StorageType;
|
|
466
|
+
/** Where the row came from: a real visit, a crawl, the owner (`api`) or a vendor preset (`import`). */
|
|
467
|
+
source?: 'embed' | 'scan' | 'api' | 'import';
|
|
468
|
+
/** Epoch-ms it was first stored. Absent on rows from before provenance was recorded. */
|
|
469
|
+
firstSeen?: number;
|
|
470
|
+
/** Distinct visits that reported it. */
|
|
471
|
+
visits?: number;
|
|
472
|
+
/** Owner views only: reported by a real visit, but not yet by enough distinct visits to be listed publicly. */
|
|
473
|
+
quarantined?: boolean;
|
|
474
|
+
/** "Declared by <vendor>": the vendor preset that declared it. */
|
|
475
|
+
vendor?: string;
|
|
476
|
+
}
|
|
477
|
+
/** What a declaration row describes. */
|
|
478
|
+
type StorageType = 'cookie' | 'localStorage' | 'sessionStorage' | 'indexedDB';
|
|
479
|
+
/** A cookie the site owner retired: the site renamed or stopped setting it. */
|
|
480
|
+
interface RetiredCookie {
|
|
481
|
+
/** Exact name, or a `prefix*` wildcard. */
|
|
482
|
+
name: string;
|
|
483
|
+
/** Epoch-ms it was retired; anything seen after this brings it back. */
|
|
484
|
+
at: number;
|
|
485
|
+
renamedTo?: string;
|
|
486
|
+
note?: string;
|
|
487
|
+
/** `apikey:<prefix>` or a dashboard user id. */
|
|
488
|
+
by?: string;
|
|
489
|
+
pattern?: boolean;
|
|
301
490
|
}
|
|
302
491
|
/** A site's cookie declaration: the latest scan and observed visits with the site's own
|
|
303
492
|
* declarations on top. This is what GET /v1/sites/:cbid/cookies returns. */
|
|
@@ -307,6 +496,8 @@ interface CookieDeclaration {
|
|
|
307
496
|
cookies: CategorizedCookie[];
|
|
308
497
|
/** The site owner's declarations, as stored. */
|
|
309
498
|
declared?: DeclaredCookie[];
|
|
499
|
+
/** The site's retirements, as stored (owner views only). */
|
|
500
|
+
retired?: RetiredCookie[];
|
|
310
501
|
}
|
|
311
502
|
/** What the site owner says a cookie is (PUT /v1/sites/:cbid/cookies/:name). */
|
|
312
503
|
interface DeclaredCookieInput {
|
|
@@ -325,11 +516,70 @@ interface DeclaredCookieInput {
|
|
|
325
516
|
domain?: string;
|
|
326
517
|
/** Treat the name as a prefix wildcard (a trailing `*` does the same). */
|
|
327
518
|
pattern?: boolean;
|
|
519
|
+
/** A cookie (default) or a key in localStorage, sessionStorage or IndexedDB. */
|
|
520
|
+
type?: StorageType;
|
|
328
521
|
}
|
|
329
522
|
/** A stored declaration. */
|
|
330
523
|
interface DeclaredCookie extends DeclaredCookieInput {
|
|
331
524
|
name: string;
|
|
332
525
|
updatedAt: number;
|
|
526
|
+
/** `import` when a vendor preset wrote it. */
|
|
527
|
+
source?: 'import';
|
|
528
|
+
/** The vendor whose preset declared it. */
|
|
529
|
+
vendor?: string;
|
|
530
|
+
}
|
|
531
|
+
/** A platform whose cookies and storage a preset declares. */
|
|
532
|
+
type CookiePresetVendor = 'atlas' | 'forumulate' | 'chatly' | 'cookiemunch';
|
|
533
|
+
/** Where a vendor's live manifest will come from, and whether it exists yet. */
|
|
534
|
+
interface CookiePresetManifest {
|
|
535
|
+
status: 'builtin' | 'waiting_on_vendor';
|
|
536
|
+
waitingOn?: string;
|
|
537
|
+
item?: string;
|
|
538
|
+
contract?: string;
|
|
539
|
+
}
|
|
540
|
+
/** Preset parameters: Atlas `frontendApiHost`/`crossSubdomainCookies`; Chatly `publicId`/`dragging`/`category`. */
|
|
541
|
+
interface CookiePresetParams {
|
|
542
|
+
frontendApiHost?: string;
|
|
543
|
+
crossSubdomainCookies?: boolean;
|
|
544
|
+
publicId?: string;
|
|
545
|
+
dragging?: boolean;
|
|
546
|
+
category?: string;
|
|
547
|
+
}
|
|
548
|
+
/** One preset in GET /v1/sites/:cbid/cookies/presets. */
|
|
549
|
+
interface CookiePreset {
|
|
550
|
+
vendor: CookiePresetVendor;
|
|
551
|
+
params: Array<{
|
|
552
|
+
name: string;
|
|
553
|
+
type: string;
|
|
554
|
+
required: boolean;
|
|
555
|
+
description?: string;
|
|
556
|
+
}>;
|
|
557
|
+
applied: boolean;
|
|
558
|
+
declared: string[];
|
|
559
|
+
manifest: CookiePresetManifest;
|
|
560
|
+
}
|
|
561
|
+
/** What applying a preset declared. */
|
|
562
|
+
interface CookiePresetResult {
|
|
563
|
+
vendor: CookiePresetVendor;
|
|
564
|
+
cookies: DeclaredCookie[];
|
|
565
|
+
removed: string[];
|
|
566
|
+
skipped?: Array<{
|
|
567
|
+
name: string;
|
|
568
|
+
reason: string;
|
|
569
|
+
}>;
|
|
570
|
+
note?: string;
|
|
571
|
+
manifest: CookiePresetManifest;
|
|
572
|
+
dryRun?: true;
|
|
573
|
+
declared?: DeclaredCookie[];
|
|
574
|
+
diff?: DeclarationDiff;
|
|
575
|
+
}
|
|
576
|
+
/** What removing observed rows removed (or, with `dryRun`, would). */
|
|
577
|
+
interface ObservedPurgeResult {
|
|
578
|
+
removed: string[];
|
|
579
|
+
count: number;
|
|
580
|
+
since?: number;
|
|
581
|
+
until?: number;
|
|
582
|
+
dryRun?: true;
|
|
333
583
|
}
|
|
334
584
|
/** What a declaration write would change (`dryRun`). */
|
|
335
585
|
interface DeclarationDiff {
|
|
@@ -374,11 +624,26 @@ interface SiteCookie {
|
|
|
374
624
|
}
|
|
375
625
|
/** Cookie-scan status, from GET /v1/sites/:cbid/scan. */
|
|
376
626
|
interface ScanStatus {
|
|
627
|
+
/** `scanning` while the last scan is queued or crawling. Kept for older clients; read `state`. */
|
|
377
628
|
status: 'idle' | 'scanning';
|
|
378
629
|
/** Epoch-ms of the last completed scan, or null. */
|
|
379
630
|
lastScannedAt: number | null;
|
|
380
631
|
/** What the last scan saw of the live banner's Accept all / Reject all. Absent until measured. */
|
|
381
632
|
buttonParity?: ButtonParityScan;
|
|
633
|
+
/** Where the last scan is. Absent when the site was never scanned. */
|
|
634
|
+
state?: 'queued' | 'scanning' | 'done' | 'failed';
|
|
635
|
+
scanId?: string;
|
|
636
|
+
startedAt?: number;
|
|
637
|
+
finishedAt?: number;
|
|
638
|
+
durationMs?: number;
|
|
639
|
+
/** Cookies this crawl saw (the stored list also keeps earlier finds: `keptFromEarlier`). */
|
|
640
|
+
cookieCount?: number;
|
|
641
|
+
keptFromEarlier?: number;
|
|
642
|
+
pagesVisited?: number;
|
|
643
|
+
/** Where the site's address redirected to (its canonical host), when it did. */
|
|
644
|
+
finalUrl?: string;
|
|
645
|
+
/** Why it failed. */
|
|
646
|
+
error?: string;
|
|
382
647
|
}
|
|
383
648
|
/** Consent-button parity of the banner a real browser saw on the site (see ScanStatus). */
|
|
384
649
|
interface ButtonParityScan {
|
|
@@ -539,6 +804,18 @@ interface ButtonParityLint {
|
|
|
539
804
|
score: number;
|
|
540
805
|
suggestedReject: SuggestedRejectStyle[];
|
|
541
806
|
}
|
|
807
|
+
/**
|
|
808
|
+
* Scrollbars on the surfaces Cookie Munch renders — the same shape on the banner theme (`theme.scrollbar`)
|
|
809
|
+
* and the rights-page theme. Colours are #hex, rgb() or hsl(); width is clamped to 4–16, radius to 0–999.
|
|
810
|
+
*/
|
|
811
|
+
interface ScrollbarTheme {
|
|
812
|
+
style: 'themed' | 'thin' | 'native' | 'hidden';
|
|
813
|
+
thumb?: string;
|
|
814
|
+
thumbHover?: string;
|
|
815
|
+
track?: string;
|
|
816
|
+
width?: number;
|
|
817
|
+
radius?: number;
|
|
818
|
+
}
|
|
542
819
|
/** The hosted rights page document. See docs/rights-page for each section type's props. */
|
|
543
820
|
interface RightsPageDocument {
|
|
544
821
|
v: 1;
|
|
@@ -547,6 +824,7 @@ interface RightsPageDocument {
|
|
|
547
824
|
width: 'narrow' | 'normal' | 'wide' | 'full';
|
|
548
825
|
density: 'compact' | 'comfortable' | 'spacious';
|
|
549
826
|
colorScheme: 'light' | 'dark' | 'auto';
|
|
827
|
+
scrollbar?: ScrollbarTheme;
|
|
550
828
|
[k: string]: unknown;
|
|
551
829
|
};
|
|
552
830
|
sections: Array<{
|
|
@@ -686,9 +964,12 @@ interface RightsLinkInput {
|
|
|
686
964
|
}
|
|
687
965
|
/** A signed, single-use link to the hosted rights page for one signed-in person. */
|
|
688
966
|
interface RightsLink {
|
|
967
|
+
/** `https://<customDomain>/?t=…`, or `https://cookiemunch.net/r/<cbid>?t=…` when `customDomain` is null. */
|
|
689
968
|
url: string;
|
|
690
969
|
/** Epoch milliseconds. */
|
|
691
970
|
expiresAt: number;
|
|
971
|
+
/** The site's active custom rights-page host the link opens on, or null. */
|
|
972
|
+
customDomain: string | null;
|
|
692
973
|
}
|
|
693
974
|
/** One DNS record to create, exactly as written. */
|
|
694
975
|
interface DnsRecordInstruction {
|
|
@@ -831,6 +1112,31 @@ interface Member {
|
|
|
831
1112
|
interface ApiKeyPrefix {
|
|
832
1113
|
prefix: string;
|
|
833
1114
|
createdAt?: number;
|
|
1115
|
+
/** Epoch ms the key stops working; null = never. */
|
|
1116
|
+
expiresAt?: number | null;
|
|
1117
|
+
name?: string | null;
|
|
1118
|
+
/** null = full access. */
|
|
1119
|
+
scopes?: string[] | null;
|
|
1120
|
+
cbids?: string[] | null;
|
|
1121
|
+
/** Epoch ms it last authenticated a request (recorded at most hourly); null = not since recording began. */
|
|
1122
|
+
lastUsedAt?: number | null;
|
|
1123
|
+
}
|
|
1124
|
+
/** GET /v1/keys/report — key hygiene. */
|
|
1125
|
+
interface ApiKeyReport {
|
|
1126
|
+
generatedAt: number;
|
|
1127
|
+
unusedDays: number;
|
|
1128
|
+
expiringDays: number;
|
|
1129
|
+
unused: Array<ApiKeyPrefix & {
|
|
1130
|
+
reason: string;
|
|
1131
|
+
}>;
|
|
1132
|
+
broad: Array<ApiKeyPrefix & {
|
|
1133
|
+
reason: string;
|
|
1134
|
+
}>;
|
|
1135
|
+
expiringSoon: Array<ApiKeyPrefix & {
|
|
1136
|
+
reason: string;
|
|
1137
|
+
}>;
|
|
1138
|
+
noExpiry: number;
|
|
1139
|
+
total: number;
|
|
834
1140
|
}
|
|
835
1141
|
/** A newly issued key. `key` is returned ONCE and never again. Returned by keys.issue(). */
|
|
836
1142
|
interface ApiKeyIssued {
|
|
@@ -866,6 +1172,8 @@ interface ApiKeyIssueInput {
|
|
|
866
1172
|
cbids?: string[];
|
|
867
1173
|
/** Expire the key after this many days (1–3650). */
|
|
868
1174
|
expiresInDays?: number;
|
|
1175
|
+
/** Or when it expires: epoch ms or an ISO date-time (not with expiresInDays). Omit both: never. */
|
|
1176
|
+
expiresAt?: number | string;
|
|
869
1177
|
}
|
|
870
1178
|
/** Org usage/quota summary. Matches the server's Usage schema. */
|
|
871
1179
|
interface Usage {
|
|
@@ -1114,6 +1422,8 @@ interface ApiKeyUpdate {
|
|
|
1114
1422
|
name?: string;
|
|
1115
1423
|
scopes?: string[];
|
|
1116
1424
|
cbids?: string[];
|
|
1425
|
+
/** A new expiry (epoch ms or ISO date-time), or null to remove it. */
|
|
1426
|
+
expiresAt?: number | string | null;
|
|
1117
1427
|
}
|
|
1118
1428
|
/** An image to upload: base64 (or a `data:` URL) plus its type. */
|
|
1119
1429
|
interface AssetUpload {
|
|
@@ -1413,6 +1723,11 @@ interface ExecutorProfile {
|
|
|
1413
1723
|
statusPath: string;
|
|
1414
1724
|
values: string[];
|
|
1415
1725
|
};
|
|
1726
|
+
/** How this system says the person was already removed; closes the task as `already_erased`. Checked before `noMatch`. */
|
|
1727
|
+
alreadyErased?: {
|
|
1728
|
+
statusPath: string;
|
|
1729
|
+
values: string[];
|
|
1730
|
+
};
|
|
1416
1731
|
};
|
|
1417
1732
|
/** Response header carrying the system's version, recorded in the task log. Default `X-Version`. */
|
|
1418
1733
|
versionHeader?: string;
|
|
@@ -1446,6 +1761,23 @@ interface ExecutorProfile {
|
|
|
1446
1761
|
failed: string[];
|
|
1447
1762
|
};
|
|
1448
1763
|
idempotencyHeader?: string;
|
|
1764
|
+
/**
|
|
1765
|
+
* An identity platform's app grant, revoked on erasure before anything else: look it up by
|
|
1766
|
+
* `{email}`, then end it with `{grant}`. A test looks it up but never revokes it.
|
|
1767
|
+
*/
|
|
1768
|
+
grantRevoke?: {
|
|
1769
|
+
lookup: {
|
|
1770
|
+
method: 'GET' | 'POST';
|
|
1771
|
+
path: string;
|
|
1772
|
+
body?: unknown;
|
|
1773
|
+
grantIdPath: string;
|
|
1774
|
+
};
|
|
1775
|
+
revoke: {
|
|
1776
|
+
method: 'POST' | 'DELETE';
|
|
1777
|
+
path: string;
|
|
1778
|
+
body?: unknown;
|
|
1779
|
+
};
|
|
1780
|
+
};
|
|
1449
1781
|
/** How that system signs its webhooks, if it sends any. */
|
|
1450
1782
|
webhook?: {
|
|
1451
1783
|
algorithm: 'hmac-sha256';
|
|
@@ -1473,9 +1805,80 @@ interface DsarExecutor {
|
|
|
1473
1805
|
hasWebhookSecret: boolean;
|
|
1474
1806
|
/** Open a sub-task automatically when a request reaches fulfilment. */
|
|
1475
1807
|
auto: boolean;
|
|
1808
|
+
/** What the subject reads on this system's notice line when it holds nothing about them. */
|
|
1809
|
+
subjectNote?: string;
|
|
1476
1810
|
createdAt: number;
|
|
1477
1811
|
/** Where that system should send its completion webhooks. On every connection, secret or not. */
|
|
1478
1812
|
webhookUrl: string;
|
|
1813
|
+
/**
|
|
1814
|
+
* The last canary health check (hourly, and on `testExecutor(id, { canary: true })`). null
|
|
1815
|
+
* until the first; cleared when the address, profile or key changes.
|
|
1816
|
+
*/
|
|
1817
|
+
health: ExecutorHealth | null;
|
|
1818
|
+
/** The preset it was built from; absent when hand-written. */
|
|
1819
|
+
preset?: ExecutorPresetName;
|
|
1820
|
+
presetVersion?: number;
|
|
1821
|
+
/** Newer than `presetVersion`: `upgradeExecutorPreset` applies it. */
|
|
1822
|
+
presetLatestVersion?: number;
|
|
1823
|
+
/** The non-secret params it was built with, e.g. `{ orgId }`. */
|
|
1824
|
+
presetParams?: Record<string, string>;
|
|
1825
|
+
/** How the stored address and profile differ from what its preset version builds. Empty: unmodified. */
|
|
1826
|
+
presetDiff?: ConfigChange[];
|
|
1827
|
+
}
|
|
1828
|
+
/** A connection's last canary health check. */
|
|
1829
|
+
interface ExecutorHealth {
|
|
1830
|
+
lastCheckedAt: number;
|
|
1831
|
+
ok: boolean;
|
|
1832
|
+
verdict: string;
|
|
1833
|
+
/** e.g. `base_url_redirects`, `credential_unavailable`. */
|
|
1834
|
+
code?: string;
|
|
1835
|
+
}
|
|
1836
|
+
/** A preset's name, as `executorPresets()` lists them. Not enumerated here: presets are data. */
|
|
1837
|
+
type ExecutorPresetName = string;
|
|
1838
|
+
/**
|
|
1839
|
+
* Connect a system from a versioned preset instead of a hand-written profile. Each preset
|
|
1840
|
+
* lists the params it takes (`executorPresets()`); a preset waiting on another platform is
|
|
1841
|
+
* refused with `preset_waiting_on_platform`.
|
|
1842
|
+
*/
|
|
1843
|
+
interface DsarExecutorPresetInput {
|
|
1844
|
+
preset: ExecutorPresetName;
|
|
1845
|
+
presetVersion?: number;
|
|
1846
|
+
secretKey: string;
|
|
1847
|
+
system?: string;
|
|
1848
|
+
baseUrl?: string;
|
|
1849
|
+
orgId?: string;
|
|
1850
|
+
atlasIdAppId?: string;
|
|
1851
|
+
webhookSecret?: string;
|
|
1852
|
+
auto?: boolean;
|
|
1853
|
+
cbid?: string;
|
|
1854
|
+
}
|
|
1855
|
+
/** What `upgradeExecutorPreset` takes: a version, a preset to adopt, or params to add. */
|
|
1856
|
+
interface ExecutorPresetUpgrade {
|
|
1857
|
+
preset?: ExecutorPresetName;
|
|
1858
|
+
presetVersion?: number;
|
|
1859
|
+
orgId?: string;
|
|
1860
|
+
atlasIdAppId?: string;
|
|
1861
|
+
}
|
|
1862
|
+
/** The presets, which are usable now, and this org's canary address. */
|
|
1863
|
+
interface ExecutorPresets {
|
|
1864
|
+
canaryEmail: string;
|
|
1865
|
+
presets: Array<{
|
|
1866
|
+
name: ExecutorPresetName;
|
|
1867
|
+
title: string;
|
|
1868
|
+
latestVersion: number;
|
|
1869
|
+
defaultSystem?: string;
|
|
1870
|
+
params: Array<{
|
|
1871
|
+
name: string;
|
|
1872
|
+
required: boolean;
|
|
1873
|
+
description: string;
|
|
1874
|
+
}>;
|
|
1875
|
+
available: boolean;
|
|
1876
|
+
waitingOn?: {
|
|
1877
|
+
platform: string;
|
|
1878
|
+
items: string[];
|
|
1879
|
+
operations: string[];
|
|
1880
|
+
};
|
|
1881
|
+
}>;
|
|
1479
1882
|
}
|
|
1480
1883
|
/** What a connection write would do (`?dryRun=1`). Nothing was stored. */
|
|
1481
1884
|
interface DsarExecutorDryRun {
|
|
@@ -1526,11 +1929,14 @@ interface DsarExecutorInput {
|
|
|
1526
1929
|
secretKey: string;
|
|
1527
1930
|
/**
|
|
1528
1931
|
* The signing secret of its webhook endpoint. Optional — polling closes tasks without it.
|
|
1529
|
-
* A `whsec_<base64>` secret
|
|
1530
|
-
* or the literal string; anything else only with
|
|
1932
|
+
* A `whsec_<base64>` secret (standard base64 or base64url, padded or not) verifies a delivery
|
|
1933
|
+
* signed with either the base64-decoded bytes or the literal string; anything else only with
|
|
1934
|
+
* its UTF-8 bytes.
|
|
1531
1935
|
*/
|
|
1532
1936
|
webhookSecret?: string;
|
|
1533
1937
|
auto?: boolean;
|
|
1938
|
+
/** What the subject reads when this system holds nothing about them (≤500 chars, never a key). */
|
|
1939
|
+
subjectNote?: string;
|
|
1534
1940
|
/** How to drive it. */
|
|
1535
1941
|
profile: ExecutorProfile;
|
|
1536
1942
|
}
|
|
@@ -1542,6 +1948,8 @@ interface DsarExecutorPatch {
|
|
|
1542
1948
|
secretKey?: string;
|
|
1543
1949
|
webhookSecret?: string | null;
|
|
1544
1950
|
auto?: boolean;
|
|
1951
|
+
/** null removes it. */
|
|
1952
|
+
subjectNote?: string | null;
|
|
1545
1953
|
}
|
|
1546
1954
|
/** One entry in a fulfilment task's status history. */
|
|
1547
1955
|
interface DsarTaskEvent {
|
|
@@ -1554,12 +1962,12 @@ interface DsarTaskEvent {
|
|
|
1554
1962
|
externalRef?: string;
|
|
1555
1963
|
}
|
|
1556
1964
|
/** What a task's answer means for the person. `exported` only once the export was fetched. */
|
|
1557
|
-
type DsarTaskOutcome = 'located' | 'exported' | 'erased' | 'no_record' | 'done_without_artifact' | 'not_applicable';
|
|
1965
|
+
type DsarTaskOutcome = 'located' | 'exported' | 'erased' | 'no_record' | 'done_without_artifact' | 'not_applicable' | 'already_erased' | 'external_identity';
|
|
1558
1966
|
/** One request made to a connected system on a task's behalf, credentials removed. Kept 30 days. */
|
|
1559
1967
|
interface DsarTaskLogEntry {
|
|
1560
1968
|
id?: string;
|
|
1561
1969
|
system?: string;
|
|
1562
|
-
step: 'lookup' | 'open' | 'poll' | 'export';
|
|
1970
|
+
step: 'lookup' | 'open' | 'poll' | 'export' | 'grant';
|
|
1563
1971
|
method: string;
|
|
1564
1972
|
path: string;
|
|
1565
1973
|
/** Absent when the system never answered. */
|
|
@@ -1573,6 +1981,11 @@ interface DsarTaskLogEntry {
|
|
|
1573
1981
|
error?: string;
|
|
1574
1982
|
/** The system's version header on this answer. */
|
|
1575
1983
|
version?: string;
|
|
1984
|
+
/** This answer was a redirect (origin and path; never the query). Only same-origin, method-keeping ones are followed. */
|
|
1985
|
+
redirect?: {
|
|
1986
|
+
status: number;
|
|
1987
|
+
location: string;
|
|
1988
|
+
};
|
|
1576
1989
|
at: number;
|
|
1577
1990
|
}
|
|
1578
1991
|
/** One fulfilment task with its history and its upstream request log. */
|
|
@@ -1618,11 +2031,21 @@ interface ExecutorTestResult {
|
|
|
1618
2031
|
/** One sentence: what a real request would have done. */
|
|
1619
2032
|
verdict: string;
|
|
1620
2033
|
ok: boolean;
|
|
2034
|
+
/** Why not, when there is a code: `base_url_redirects` — the baseUrl redirected; the verdict names the status and target. */
|
|
2035
|
+
code?: string;
|
|
2036
|
+
/** The subject's app grant at an identity platform, when the profile has a grant step. Never revoked by a test. */
|
|
2037
|
+
grant?: string;
|
|
2038
|
+
/** Present when the test used the org canary address, with the address in `email`. */
|
|
2039
|
+
canary?: boolean;
|
|
2040
|
+
email?: string;
|
|
1621
2041
|
/** Every upstream answer, as the system gave it (credentials removed). */
|
|
1622
2042
|
exchanges: DsarTaskLogEntry[];
|
|
1623
2043
|
}
|
|
1624
2044
|
interface ExecutorTestInput {
|
|
1625
|
-
|
|
2045
|
+
/** The address to look up. Required unless `canary` is true. */
|
|
2046
|
+
email?: string;
|
|
2047
|
+
/** Use this org's canary address — no real person. A canary `locate` also updates `health`. */
|
|
2048
|
+
canary?: boolean;
|
|
1626
2049
|
/** Default `locate`. */
|
|
1627
2050
|
operation?: 'locate' | 'export' | 'erase';
|
|
1628
2051
|
/** For `export` only: open a real export and poll it once. An erasure is never sent. */
|
|
@@ -1682,7 +2105,31 @@ interface CookieMunchClient {
|
|
|
1682
2105
|
list(): Promise<Site[]>;
|
|
1683
2106
|
create(input: SiteCreate): Promise<Site>;
|
|
1684
2107
|
get(cbid: string): Promise<Site>;
|
|
2108
|
+
/**
|
|
2109
|
+
* Rename or move a site: domain, display name, aliases. The cbid and the consent ledger stay; a domain
|
|
2110
|
+
* move clears verification. `{ dryRun: true }` answers with the diff and stores nothing.
|
|
2111
|
+
*/
|
|
2112
|
+
update(cbid: string, patch: SiteUpdate, opts?: {
|
|
2113
|
+
dryRun?: boolean;
|
|
2114
|
+
}): Promise<SiteUpdateResult>;
|
|
1685
2115
|
delete(cbid: string): Promise<void>;
|
|
2116
|
+
/** Partner platforms granted this site's consent events, and the partners on offer. */
|
|
2117
|
+
listPartners(cbid: string): Promise<{
|
|
2118
|
+
links: PartnerLink[];
|
|
2119
|
+
partners: PartnerCatalogEntry[];
|
|
2120
|
+
}>;
|
|
2121
|
+
/** Grant a partner (Forumulate, Atlas) the site's consent events — no secret is created. Idempotent. */
|
|
2122
|
+
linkPartner(cbid: string, input: PartnerLinkCreate, opts?: {
|
|
2123
|
+
dryRun?: boolean;
|
|
2124
|
+
}): Promise<{
|
|
2125
|
+
change: 'created' | 'updated' | 'unchanged';
|
|
2126
|
+
link: PartnerLink;
|
|
2127
|
+
dryRun?: true;
|
|
2128
|
+
}>;
|
|
2129
|
+
/** Revoke a partner link: deliveries stop at once. */
|
|
2130
|
+
unlinkPartner(cbid: string, linkId: string): Promise<{
|
|
2131
|
+
link: PartnerLink;
|
|
2132
|
+
}>;
|
|
1686
2133
|
getConfig(cbid: string): Promise<SiteConfig>;
|
|
1687
2134
|
/**
|
|
1688
2135
|
* Replaces the whole config — a top-level field you omit reverts to its default. With
|
|
@@ -1714,8 +2161,24 @@ interface CookieMunchClient {
|
|
|
1714
2161
|
replace?: boolean;
|
|
1715
2162
|
}): Promise<ButtonParityLint>;
|
|
1716
2163
|
cookies(cbid: string): Promise<CookieDeclaration>;
|
|
1717
|
-
|
|
1718
|
-
|
|
2164
|
+
/**
|
|
2165
|
+
* Start a cookie crawl. Answers at once with `scanId` and `state: 'queued'`; `wait`
|
|
2166
|
+
* (seconds, ≤60) holds the request until the scan is done or failed.
|
|
2167
|
+
*/
|
|
2168
|
+
scan(cbid: string, opts?: {
|
|
2169
|
+
wait?: number;
|
|
2170
|
+
}): Promise<ScanStatus>;
|
|
2171
|
+
/** The last scan's state. `wait` (seconds, ≤60) holds the request until a running scan settles. */
|
|
2172
|
+
scanStatus(cbid: string, opts?: {
|
|
2173
|
+
wait?: number;
|
|
2174
|
+
}): Promise<ScanStatus>;
|
|
2175
|
+
/**
|
|
2176
|
+
* Resolve once the site's scan is done or failed (read `state` and `error`), long-polling
|
|
2177
|
+
* the server. At `timeoutMs` (default 120 000) it resolves with the still-running state.
|
|
2178
|
+
*/
|
|
2179
|
+
waitForScan(cbid: string, opts?: {
|
|
2180
|
+
timeoutMs?: number;
|
|
2181
|
+
}): Promise<ScanStatus>;
|
|
1719
2182
|
ab(cbid: string): Promise<AbResult[]>;
|
|
1720
2183
|
/** Generate the site's privacy and cookie policy, as Markdown. */
|
|
1721
2184
|
policy(cbid: string, opts?: PolicyOptions): Promise<string>;
|
|
@@ -1761,6 +2224,69 @@ interface CookieMunchClient {
|
|
|
1761
2224
|
cookie: DeclaredCookie;
|
|
1762
2225
|
warnings?: DeclarationWarning[];
|
|
1763
2226
|
} & Partial<DeclarationDryRun>>;
|
|
2227
|
+
/**
|
|
2228
|
+
* Retire a cookie the site renamed or stopped setting: it leaves the banner's list,
|
|
2229
|
+
* `data-cc="declaration"` and the public feed, and stays listed for you with `retired`.
|
|
2230
|
+
* A name ending in `*` retires every cookie with that prefix. If a crawl or a visit sees
|
|
2231
|
+
* it again afterwards it is listed again, flagged `review: 'retired_but_seen'`.
|
|
2232
|
+
*/
|
|
2233
|
+
retireCookie(cbid: string, name: string, input?: {
|
|
2234
|
+
renamedTo?: string;
|
|
2235
|
+
note?: string;
|
|
2236
|
+
}, opts?: {
|
|
2237
|
+
dryRun?: boolean;
|
|
2238
|
+
}): Promise<{
|
|
2239
|
+
cookie: RetiredCookie;
|
|
2240
|
+
matched: string[];
|
|
2241
|
+
dryRun?: true;
|
|
2242
|
+
retired?: RetiredCookie[];
|
|
2243
|
+
}>;
|
|
2244
|
+
/** Un-retire a cookie: it is listed again everywhere. */
|
|
2245
|
+
unretireCookie(cbid: string, name: string): Promise<void>;
|
|
2246
|
+
/** What un-retiring would leave; nothing is removed. */
|
|
2247
|
+
unretireCookie(cbid: string, name: string, opts: {
|
|
2248
|
+
dryRun: true;
|
|
2249
|
+
}): Promise<{
|
|
2250
|
+
dryRun: true;
|
|
2251
|
+
retired: RetiredCookie[];
|
|
2252
|
+
}>;
|
|
2253
|
+
/** Every declaration preset (atlas, forumulate, chatly, cookiemunch): params, what it declared here, manifest status. */
|
|
2254
|
+
cookiePresets(cbid: string): Promise<{
|
|
2255
|
+
presets: CookiePreset[];
|
|
2256
|
+
}>;
|
|
2257
|
+
/**
|
|
2258
|
+
* Apply (or re-sync) a vendor preset: declares what that platform writes, marked
|
|
2259
|
+
* `vendor`. Names you declared yourself are kept (`skipped`). `dryRun` stores nothing.
|
|
2260
|
+
*/
|
|
2261
|
+
applyCookiePreset(cbid: string, vendor: CookiePresetVendor, params?: CookiePresetParams, opts?: {
|
|
2262
|
+
dryRun?: boolean;
|
|
2263
|
+
}): Promise<CookiePresetResult>;
|
|
2264
|
+
/** Remove every declaration a vendor preset made. */
|
|
2265
|
+
removeCookiePreset(cbid: string, vendor: CookiePresetVendor, opts?: {
|
|
2266
|
+
dryRun?: boolean;
|
|
2267
|
+
}): Promise<{
|
|
2268
|
+
vendor: CookiePresetVendor;
|
|
2269
|
+
removed: string[];
|
|
2270
|
+
dryRun?: true;
|
|
2271
|
+
declared?: DeclaredCookie[];
|
|
2272
|
+
diff?: DeclarationDiff;
|
|
2273
|
+
}>;
|
|
2274
|
+
/** Remove every stored (scanned or observed) row of this name. A declaration of it stays. */
|
|
2275
|
+
deleteObservedCookie(cbid: string, name: string): Promise<void>;
|
|
2276
|
+
/** What deleting it would remove; nothing is removed. */
|
|
2277
|
+
deleteObservedCookie(cbid: string, name: string, opts: {
|
|
2278
|
+
dryRun: true;
|
|
2279
|
+
}): Promise<ObservedPurgeResult>;
|
|
2280
|
+
/**
|
|
2281
|
+
* Purge observed since T: remove every row a real visit first reported at or after
|
|
2282
|
+
* `since` (and before `until`). Crawled rows and declarations stay. ISO-8601 or epoch ms.
|
|
2283
|
+
*/
|
|
2284
|
+
purgeObservedCookies(cbid: string, input: {
|
|
2285
|
+
since: string | number;
|
|
2286
|
+
until?: string | number;
|
|
2287
|
+
}, opts?: {
|
|
2288
|
+
dryRun?: boolean;
|
|
2289
|
+
}): Promise<ObservedPurgeResult>;
|
|
1764
2290
|
/** Remove a declaration; the scanned classification applies again. */
|
|
1765
2291
|
undeclareCookie(cbid: string, name: string): Promise<void>;
|
|
1766
2292
|
/** What removing a declaration would leave; nothing is removed. */
|
|
@@ -1844,7 +2370,10 @@ interface CookieMunchClient {
|
|
|
1844
2370
|
create(input: DsarCreate): Promise<{
|
|
1845
2371
|
request: DsarRequest;
|
|
1846
2372
|
}>;
|
|
1847
|
-
|
|
2373
|
+
/** `opts.messageToSubject` replaces the line the subject reads in the notice — for a rejection, why. */
|
|
2374
|
+
advance(id: string, toStatus: DsarStatus, opts?: {
|
|
2375
|
+
messageToSubject?: string;
|
|
2376
|
+
}): Promise<{
|
|
1848
2377
|
request: DsarRequest;
|
|
1849
2378
|
}>;
|
|
1850
2379
|
/** The subject-facing response notice for a request, as plain text. */
|
|
@@ -2116,7 +2645,7 @@ interface CookieMunchClient {
|
|
|
2116
2645
|
* Connect one. The secret is stored encrypted and never returned; the response carries
|
|
2117
2646
|
* the URL to point that system's webhook at.
|
|
2118
2647
|
*/
|
|
2119
|
-
connectExecutor(input: DsarExecutorInput): Promise<DsarExecutorCreated>;
|
|
2648
|
+
connectExecutor(input: DsarExecutorInput | DsarExecutorPresetInput): Promise<DsarExecutorCreated>;
|
|
2120
2649
|
/**
|
|
2121
2650
|
* Change a connection in place. Only what you send changes, and the stored credential
|
|
2122
2651
|
* is kept unless you pass a new `secretKey` — so adding a field to a profile does not
|
|
@@ -2124,7 +2653,22 @@ interface CookieMunchClient {
|
|
|
2124
2653
|
*/
|
|
2125
2654
|
updateExecutor(id: string, patch: DsarExecutorPatch): Promise<DsarExecutor>;
|
|
2126
2655
|
/** What `connectExecutor` would create, validated in full; nothing is stored (`?dryRun=1`). */
|
|
2127
|
-
dryRunConnectExecutor(input: DsarExecutorInput): Promise<DsarExecutorDryRun>;
|
|
2656
|
+
dryRunConnectExecutor(input: DsarExecutorInput | DsarExecutorPresetInput): Promise<DsarExecutorDryRun>;
|
|
2657
|
+
/** The versioned presets, whether each is usable now (or waits on another platform), and the org canary address. */
|
|
2658
|
+
executorPresets(): Promise<ExecutorPresets>;
|
|
2659
|
+
/**
|
|
2660
|
+
* Rebuild a connection from its preset's latest version (or `presetVersion`), keeping its id
|
|
2661
|
+
* and credentials; or adopt a preset on a hand-written one by naming it. Answers with `diff`.
|
|
2662
|
+
*/
|
|
2663
|
+
upgradeExecutorPreset(id: string, input?: ExecutorPresetUpgrade): Promise<DsarExecutor & {
|
|
2664
|
+
diff: ConfigChange[];
|
|
2665
|
+
warnings?: Array<{
|
|
2666
|
+
field: string;
|
|
2667
|
+
reason: string;
|
|
2668
|
+
}>;
|
|
2669
|
+
}>;
|
|
2670
|
+
/** What `upgradeExecutorPreset` would change; nothing is stored (`?dryRun=1`). */
|
|
2671
|
+
dryRunUpgradeExecutorPreset(id: string, input?: ExecutorPresetUpgrade): Promise<DsarExecutorDryRun>;
|
|
2128
2672
|
/** What `updateExecutor` would change, with a diff; the stored connection is untouched (`?dryRun=1`). */
|
|
2129
2673
|
dryRunUpdateExecutor(id: string, patch: DsarExecutorPatch): Promise<DsarExecutorDryRun>;
|
|
2130
2674
|
/**
|
|
@@ -2196,8 +2740,22 @@ interface CookieMunchClient {
|
|
|
2196
2740
|
update(prefix: string, patch: ApiKeyUpdate): Promise<{
|
|
2197
2741
|
ok: true;
|
|
2198
2742
|
}>;
|
|
2743
|
+
/** Key hygiene: keys unused for `unusedDays` (default 90), broad keys, keys expiring within `expiringDays` (default 14). */
|
|
2744
|
+
report(opts?: {
|
|
2745
|
+
unusedDays?: number;
|
|
2746
|
+
expiringDays?: number;
|
|
2747
|
+
}): Promise<ApiKeyReport>;
|
|
2199
2748
|
};
|
|
2200
2749
|
usage(): Promise<Usage>;
|
|
2750
|
+
/** Every link a site's privacy wiring depends on, one row each with `ok` and a fix hint. `cbid` may be omitted with one site. */
|
|
2751
|
+
integrationHealth(cbid?: string): Promise<IntegrationHealthReport>;
|
|
2752
|
+
/**
|
|
2753
|
+
* Wire a product's privacy in one call: the site, connected systems, Atlas and Forumulate. Idempotent;
|
|
2754
|
+
* `{ dryRun: true }` writes nothing anywhere. No secret appears in the answer.
|
|
2755
|
+
*/
|
|
2756
|
+
provision(input: ProvisionRequest, opts?: {
|
|
2757
|
+
dryRun?: boolean;
|
|
2758
|
+
}): Promise<ProvisionResult>;
|
|
2201
2759
|
/** The key's organisation. Requires an unscoped key that is not property-locked. */
|
|
2202
2760
|
org: {
|
|
2203
2761
|
get(): Promise<Org>;
|
|
@@ -2352,4 +2910,4 @@ interface CookieMunchClient {
|
|
|
2352
2910
|
}
|
|
2353
2911
|
declare function createCookieMunch(opts: CookieMunchOptions): CookieMunchClient;
|
|
2354
2912
|
|
|
2355
|
-
export { type AbResult, type AccountOrg, type AccountOrgs, type AdPersonalizationInput, type AiInspectInput, type AiInspectResult, type ApiKey, type ApiKeyIssueInput, type ApiKeyIssued, type ApiKeyPrefix, type ApiKeyUpdate, type AppliedImport, type AssetUpload, type AuditEntry, type BannerRecord, type BannerSummary, type BlockedReport, type BrandExtractionResult, type BrandKit, type BrandKitCreate, type BrandSuggestion, type BulkSiteInput, type BulkSiteResult, type ButtonParityFinding, type ButtonParityLint, type ButtonParityScan, type CategorizedCookie, type ChildKeyInput, type ConfigChange, type ConfigDryRun, type ConfigWarning, type ConsentDay, type ConsentDecisionInput, type ConsentIngestInput, type ConsentLogRow, type CookieDeclaration, CookieMunchApiError, type CookieMunchClient, type CookieMunchOptions, type CspSources, type DeclarationDiff, type DeclarationDryRun, type DeclarationWarning, type DeclaredCookie, type DeclaredCookieInput, type DnsRecordInstruction, type DsarCreate, type DsarEraseResult, type DsarExecutor, type DsarExecutorCreated, type DsarExecutorDryRun, type DsarExecutorInput, type DsarExecutorPatch, type DsarExportResult, type DsarRequest, type DsarStatus, type DsarTask, type DsarTaskEvent, type DsarTaskExport, type DsarTaskLogEntry, type DsarTaskOutcome, type DsarType, type EnforcementRuleInput, type ExecutorProfile, type ExecutorTestInput, type ExecutorTestResult, type ExecutorWebhookDelivery, type ExecutorWebhookTestResult, type FlowIssue, type FlowOp, type FlowOpResponse, type FulfillmentOp, type Identifier, type Identity, type ImportedCookie, type ImportedDeclaration, type InstallSnippet, type LegalBasis, type LogQuery, type MailProvider, type MailProviderInput, type MailProviderKind, type MailProviderTestResult, type Member, type OptInMethod, type Org, type OrgUpdate, type ParityControlSummary, type PlanSource, type PolicyOptions, type PreferenceItem, type PreferenceRecord, type PreviewToken, type PreviewTokenOptions, type ProfileAttributeInput, type PublicDsarFiled, type PublicDsarPending, type PublicVerification, type PutConfigOptions, type RangeQuery, type Regulation, type RegulationSummary, type RegulatoryFeedResult, type ResellerChild, type ResellerChildCreate, type ResellerChildList, type ResellerChildPatch, type RightKind, type RightsCaptcha, type RightsCaptchaInput, type RightsCaptchaProvider, type RightsIdentity, type RightsIdentityInput, type RightsIdentityType, type RightsLink, type RightsLinkInput, type RightsPageDocument, type RightsPageDomain, type RightsPageDomainList, type RightsPageDraft, type RightsPageDraftConflict, type RightsPageDryRun, type RightsPageIssue, type RightsPagePublishResult, type RightsPagePublished, type RightsPagePublisher, type RightsPageVersions, type RightsPageWriteOptions, type RiskScore, type RopaEntry, type RopaInput, type ScanResult, type ScanStatus, type ScoredVendor, type SessionAnalysisInput, type SignedReceipt, type Site, type SiteConfig, type SiteCookie, type SiteCreate, type SiteFlow, type SnippetOptions, type SubscriptionTopicInput, type SuggestedRejectStyle, type SupportedLanguage, type Usage, type VendorInput, type VendorRecord, type VerifyResult, type VerifyWebhookInput, type WebhookCreate, type WebhookDeadLetter, type WebhookKeyForm, type WebhookStage, type WebhookSubscription, type WebhookTestResult, type WebhookUpdate, createCookieMunch, verifyWebhookSignature };
|
|
2913
|
+
export { type AbResult, type AccountOrg, type AccountOrgs, type AdPersonalizationInput, type AiInspectInput, type AiInspectResult, type ApiKey, type ApiKeyIssueInput, type ApiKeyIssued, type ApiKeyPrefix, type ApiKeyReport, type ApiKeyUpdate, type AppliedImport, type AssetUpload, type AuditEntry, type BannerRecord, type BannerSummary, type BlockedReport, type BrandExtractionResult, type BrandKit, type BrandKitCreate, type BrandSuggestion, type BulkSiteInput, type BulkSiteResult, type ButtonParityFinding, type ButtonParityLint, type ButtonParityScan, type CategorizedCookie, type ChildKeyInput, type ConfigChange, type ConfigDryRun, type ConfigWarning, type ConsentDay, type ConsentDecisionInput, type ConsentIngestInput, type ConsentLogRow, type CookieDeclaration, CookieMunchApiError, type CookieMunchClient, type CookieMunchOptions, type CookiePreset, type CookiePresetManifest, type CookiePresetParams, type CookiePresetResult, type CookiePresetVendor, type CspSources, type DeclarationDiff, type DeclarationDryRun, type DeclarationWarning, type DeclaredCookie, type DeclaredCookieInput, type DnsRecordInstruction, type DsarCreate, type DsarEraseResult, type DsarExecutor, type DsarExecutorCreated, type DsarExecutorDryRun, type DsarExecutorInput, type DsarExecutorPatch, type DsarExecutorPresetInput, type DsarExportResult, type DsarRequest, type DsarStatus, type DsarTask, type DsarTaskEvent, type DsarTaskExport, type DsarTaskLogEntry, type DsarTaskOutcome, type DsarType, type EnforcementRuleInput, type ExecutorHealth, type ExecutorPresetName, type ExecutorPresetUpgrade, type ExecutorPresets, type ExecutorProfile, type ExecutorTestInput, type ExecutorTestResult, type ExecutorWebhookDelivery, type ExecutorWebhookTestResult, type FlowIssue, type FlowOp, type FlowOpResponse, type FulfillmentOp, type HealthRow, type Identifier, type Identity, type ImportedCookie, type ImportedDeclaration, type InstallSnippet, type IntegrationHealthReport, type LegalBasis, type LogQuery, type MailProvider, type MailProviderInput, type MailProviderKind, type MailProviderTestResult, type Member, type ObservedPurgeResult, type OptInMethod, type Org, type OrgUpdate, type ParityControlSummary, type PartnerCatalogEntry, type PartnerId, type PartnerLink, type PartnerLinkCreate, type PlanSource, type PolicyOptions, type PreferenceItem, type PreferenceRecord, type PreviewToken, type PreviewTokenOptions, type ProfileAttributeInput, type ProvisionRequest, type ProvisionResult, type ProvisionStep, type PublicDsarFiled, type PublicDsarPending, type PublicVerification, type PutConfigOptions, type RangeQuery, type Regulation, type RegulationSummary, type RegulatoryFeedResult, type ResellerChild, type ResellerChildCreate, type ResellerChildList, type ResellerChildPatch, type RetiredCookie, type RightKind, type RightsCaptcha, type RightsCaptchaInput, type RightsCaptchaProvider, type RightsIdentity, type RightsIdentityInput, type RightsIdentityType, type RightsLink, type RightsLinkInput, type RightsPageDocument, type RightsPageDomain, type RightsPageDomainList, type RightsPageDraft, type RightsPageDraftConflict, type RightsPageDryRun, type RightsPageIssue, type RightsPagePublishResult, type RightsPagePublished, type RightsPagePublisher, type RightsPageVersions, type RightsPageWriteOptions, type RiskScore, type RopaEntry, type RopaInput, type ScanResult, type ScanStatus, type ScoredVendor, type ScrollbarTheme, type SessionAnalysisInput, type SignedReceipt, type Site, type SiteConfig, type SiteCookie, type SiteCreate, type SiteFlow, type SiteUpdate, type SiteUpdateResult, type SnippetOptions, type StorageType, type SubscriptionTopicInput, type SuggestedRejectStyle, type SupportedLanguage, type Usage, type VendorInput, type VendorRecord, type VerifyResult, type VerifyWebhookInput, type WebhookCreate, type WebhookDeadLetter, type WebhookKeyForm, type WebhookStage, type WebhookSubscription, type WebhookTestResult, type WebhookUpdate, createCookieMunch, verifyWebhookSignature };
|