@redsift/products 12.5.2-muiv7 → 12.5.2
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/_internal/signal-cards.js +3 -4
- package/_internal/signal-cards.js.map +1 -1
- package/bimi-checker.d.ts +94 -94
- package/index.d.ts +290 -290
- package/package.json +2 -2
- package/signal-cards.d.ts +290 -290
package/signal-cards.d.ts
CHANGED
|
@@ -1,8 +1,118 @@
|
|
|
1
1
|
import * as _redsift_design_system from '@redsift/design-system';
|
|
2
|
-
import {
|
|
2
|
+
import { RecommendationsData, JmapProps, DmarcProps, DkimProps, SpfProps, EhloProps, FcrdnsProps, EhloCheckProps, TlsProps, CardStatus, DomainAnalyzerSpfProps, DomainAnalyzerDkimProps, MtaProps, ExtsecrepProps, DnsSecurityProps, InvestigateProps } from '@redsift/signal-logic';
|
|
3
3
|
export { BIMI_CHECKER_SIGNAL_TYPES, BimiCheckerSignalType, CARD_STATUS, DOMAIN_ANALYZER_SIGNAL_TYPES, DomainAnalyzerSignalType, PUBLIC_INVESTIGATE_SIGNAL_TYPES, PublicInvestigateSignalType, RecommendationSignal, RecommendationsAnalysis, RecommendationsData, SIGNAL_TYPES, SignalType, getSignalStatus } from '@redsift/signal-logic';
|
|
4
4
|
import react, { ComponentProps, ReactNode } from 'react';
|
|
5
5
|
|
|
6
|
+
type SignalData = {
|
|
7
|
+
signalType: string;
|
|
8
|
+
jmap?: {
|
|
9
|
+
extsecrep?: Record<string, any>;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
};
|
|
12
|
+
shortDescription?: unknown;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
};
|
|
15
|
+
type ErrorLike = {
|
|
16
|
+
name?: string;
|
|
17
|
+
message?: string;
|
|
18
|
+
stack?: string;
|
|
19
|
+
};
|
|
20
|
+
type CardEnabledOverrides = Record<string, boolean | undefined>;
|
|
21
|
+
interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
22
|
+
/** Array of signal data objects containing DMARC, DKIM, SPF information */
|
|
23
|
+
signals?: SignalData[];
|
|
24
|
+
/** Error object to display if signal loading fails */
|
|
25
|
+
error?: ErrorLike | null;
|
|
26
|
+
/** Map of signal types to enabled/disabled state */
|
|
27
|
+
isCardEnabledMap?: CardEnabledOverrides;
|
|
28
|
+
/** Signal types to display in the priority section (shown first). Defaults to DMARC, DKIM, SPF */
|
|
29
|
+
prioritySignalTypes?: string[];
|
|
30
|
+
/** Initial selected signal type for external selection control */
|
|
31
|
+
initialSelectedSignalType?: string | null;
|
|
32
|
+
/** Callback when a signal card is selected */
|
|
33
|
+
onSelectSignalType?: (signalType: string) => void;
|
|
34
|
+
/** Custom header renderer for adding content at the top of each card, after the title */
|
|
35
|
+
renderCardHeader?: (signal: SignalData) => React.ReactNode;
|
|
36
|
+
/** Override the promo banner button href on all cards (e.g. to add UTM parameters). Only used when renderCardHeader is not provided. Defaults to the OnDMARC signup URL (`https://iam.redsift.cloud/signup?redirectapp=cloud&product=ondmarc`). */
|
|
37
|
+
cardPromoHref?: string;
|
|
38
|
+
/** Custom footer renderer for adding content at the bottom of each card */
|
|
39
|
+
renderCardFooter?: (signal: SignalData) => React.ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Heading text for the priority signals section.
|
|
42
|
+
* Defaults to "Required for the selected compliance profile"
|
|
43
|
+
*/
|
|
44
|
+
prioritySectionHeading?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Heading text for the remaining signals section.
|
|
47
|
+
* Defaults to "Not required for the selected compliance profile"
|
|
48
|
+
*/
|
|
49
|
+
remainingSectionHeading?: string;
|
|
50
|
+
/** Use Investigate handbook colors instead of Design System CSS variables */
|
|
51
|
+
useInvestigateColors?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Enable collapsible sections inside all child cards.
|
|
54
|
+
* @default true
|
|
55
|
+
*/
|
|
56
|
+
isCollapsible?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Controlled collapsed state for all sections in all child cards.
|
|
59
|
+
* Used with isCollapsible to manage collapsed state externally.
|
|
60
|
+
*/
|
|
61
|
+
areAllCollapsed?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Callback fired when the collapse-all toggle changes in any child card.
|
|
64
|
+
*/
|
|
65
|
+
onCollapseAll?: (areAllCollapsed: boolean) => void;
|
|
66
|
+
/**
|
|
67
|
+
* AI-powered recommendations data including analysis and per-protocol signals.
|
|
68
|
+
* When provided (and showRecommendations is not false), renders a RecommendationsSummary
|
|
69
|
+
* section above the signal cards.
|
|
70
|
+
*/
|
|
71
|
+
recommendations?: RecommendationsData | null;
|
|
72
|
+
/**
|
|
73
|
+
* Whether recommendations data is still loading.
|
|
74
|
+
* When true, shows a skeleton/shimmer placeholder for the recommendations section.
|
|
75
|
+
*/
|
|
76
|
+
recommendationsLoading?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Whether to show the recommendations section.
|
|
79
|
+
* @default true
|
|
80
|
+
*/
|
|
81
|
+
showRecommendations?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Structured data for the CTA card in the recommendations section.
|
|
84
|
+
* The DS owns the layout; the consumer provides the content and click handler.
|
|
85
|
+
*/
|
|
86
|
+
recommendationsCTA?: {
|
|
87
|
+
title: string;
|
|
88
|
+
description: string;
|
|
89
|
+
buttonLabel: string;
|
|
90
|
+
onClickCTA: () => void;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Callback when user clicks "See more details" on a status card.
|
|
94
|
+
* The consumer uses this to scroll to and expand the corresponding signal card.
|
|
95
|
+
*/
|
|
96
|
+
onExpandSignalCard?: (signalType: string) => void;
|
|
97
|
+
/**
|
|
98
|
+
* Callback for the "Check another email" button in the header.
|
|
99
|
+
* When provided, renders a styled button with a sync icon and translated label.
|
|
100
|
+
* Only rendered when a checked email is found in the signal data.
|
|
101
|
+
*/
|
|
102
|
+
onCheckAnotherEmail?: () => void;
|
|
103
|
+
/**
|
|
104
|
+
* Render prop for custom action area in the header.
|
|
105
|
+
* Overrides the default "Check another email" button when provided.
|
|
106
|
+
* Only rendered when a checked email is found in the signal data.
|
|
107
|
+
*/
|
|
108
|
+
renderHeaderAction?: () => ReactNode;
|
|
109
|
+
/**
|
|
110
|
+
* Whether to show the "Powered by OnDMARC" branding in the header.
|
|
111
|
+
* @default true
|
|
112
|
+
*/
|
|
113
|
+
showBranding?: boolean;
|
|
114
|
+
}
|
|
115
|
+
|
|
6
116
|
/**
|
|
7
117
|
* Common props shared by all signal card components. These cover layout options
|
|
8
118
|
* that ultimately map to `SignalCardNormal`.
|
|
@@ -28,148 +138,159 @@ interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' |
|
|
|
28
138
|
onCollapseAll?: (areAllCollapsed: boolean) => void;
|
|
29
139
|
}
|
|
30
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Extended JMAP props for DMARC card including required extsecrep data
|
|
143
|
+
*/
|
|
144
|
+
interface SignalCardDmarcJmapProps extends JmapProps {
|
|
145
|
+
extsecrep: {
|
|
146
|
+
dmarc?: DmarcProps;
|
|
147
|
+
dkim?: DkimProps | DkimProps[];
|
|
148
|
+
spf?: SpfProps;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
31
151
|
/**
|
|
32
152
|
* Component props.
|
|
33
153
|
*/
|
|
34
|
-
interface
|
|
35
|
-
/**
|
|
36
|
-
* Domain name (currently not used but maintained for API compatibility)
|
|
37
|
-
*/
|
|
38
|
-
domain?: string | null;
|
|
154
|
+
interface SignalCardDmarcProps extends SignalCardSharedProps {
|
|
39
155
|
/**
|
|
40
|
-
* JMAP
|
|
156
|
+
* JMAP email data containing DMARC, DKIM, SPF information
|
|
41
157
|
*/
|
|
42
|
-
jmap
|
|
158
|
+
jmap: SignalCardDmarcJmapProps;
|
|
43
159
|
/**
|
|
44
|
-
*
|
|
160
|
+
* Whether this is being used in domain analyzer mode
|
|
45
161
|
*/
|
|
46
|
-
|
|
162
|
+
isDomainAnalyzer?: boolean;
|
|
47
163
|
}
|
|
48
164
|
|
|
165
|
+
type SpfData = SpfProps;
|
|
49
166
|
/**
|
|
50
167
|
* Component props.
|
|
51
168
|
*/
|
|
52
|
-
interface
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
169
|
+
interface SignalCardSpfProps extends SignalCardSharedProps {
|
|
170
|
+
/** JMAP email data containing SPF information */
|
|
171
|
+
jmap: {
|
|
172
|
+
extsecrep: {
|
|
173
|
+
spf?: SpfData;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
57
176
|
}
|
|
58
177
|
|
|
178
|
+
type DkimResult = DkimProps;
|
|
179
|
+
type DmarcResult$1 = DmarcProps | null;
|
|
59
180
|
/**
|
|
60
|
-
*
|
|
181
|
+
* Component props.
|
|
61
182
|
*/
|
|
62
|
-
interface
|
|
63
|
-
/**
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
183
|
+
interface SignalCardDkimProps extends SignalCardSharedProps {
|
|
184
|
+
/** JMAP email data containing DKIM, DMARC information */
|
|
185
|
+
jmap: {
|
|
186
|
+
extsecrep: {
|
|
187
|
+
dkim?: DkimResult | DkimResult[] | null;
|
|
188
|
+
dmarc?: DmarcResult$1;
|
|
189
|
+
};
|
|
190
|
+
};
|
|
69
191
|
}
|
|
192
|
+
|
|
70
193
|
/**
|
|
71
194
|
* Component props.
|
|
72
195
|
*/
|
|
73
|
-
interface
|
|
74
|
-
/** JMAP data containing
|
|
196
|
+
interface SignalCardFcrdnsProps extends SignalCardSharedProps {
|
|
197
|
+
/** JMAP data containing EHLO information */
|
|
75
198
|
jmap: {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
199
|
+
extsecrep: {
|
|
200
|
+
ehlo?: EhloProps;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
/** Investigation data with FCrDNS and EHLO check results */
|
|
204
|
+
investigate?: {
|
|
205
|
+
fcrdns?: FcrdnsProps | null;
|
|
206
|
+
ehloCheck?: EhloCheckProps | null;
|
|
82
207
|
};
|
|
83
208
|
}
|
|
84
209
|
|
|
85
210
|
/**
|
|
86
211
|
* Component props.
|
|
87
212
|
*/
|
|
88
|
-
interface
|
|
89
|
-
/** JMAP data containing
|
|
90
|
-
jmap
|
|
91
|
-
extsecrep
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/** Custom short description (overrides default based on result) */
|
|
96
|
-
shortDescription?: ReactNode;
|
|
213
|
+
interface SignalCardTlsProps extends SignalCardSharedProps {
|
|
214
|
+
/** JMAP email data containing TLS information */
|
|
215
|
+
jmap: {
|
|
216
|
+
extsecrep: {
|
|
217
|
+
tls?: TlsProps;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
97
220
|
}
|
|
98
221
|
|
|
99
|
-
type
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
222
|
+
type DmarcResult = {
|
|
223
|
+
status?: CardStatus | string | null;
|
|
224
|
+
errors?: string[] | null;
|
|
225
|
+
};
|
|
226
|
+
type DmarcData$1 = {
|
|
227
|
+
raw?: string | null;
|
|
228
|
+
result?: DmarcResult | null;
|
|
229
|
+
txtExtractedFrom?: string | null;
|
|
230
|
+
policyDomain?: string | null;
|
|
231
|
+
fromDomain?: string | null;
|
|
232
|
+
domainPublished?: string | null;
|
|
233
|
+
};
|
|
234
|
+
type Originator = {
|
|
235
|
+
domain?: string | null;
|
|
236
|
+
orgDomain?: string | null;
|
|
103
237
|
} | null;
|
|
104
|
-
|
|
105
|
-
* Component props.
|
|
106
|
-
*/
|
|
107
|
-
interface SignalCardThreatInvProps extends SignalCardSharedProps {
|
|
108
|
-
/** JMAP email data containing threat intelligence information */
|
|
238
|
+
interface SignalCardDmarcDomainProps extends SignalCardSharedProps {
|
|
109
239
|
jmap: {
|
|
110
|
-
extsecrep:
|
|
111
|
-
|
|
240
|
+
extsecrep: {
|
|
241
|
+
dmarc: DmarcData$1;
|
|
242
|
+
originator?: Originator;
|
|
243
|
+
};
|
|
112
244
|
};
|
|
113
|
-
/** Whether this is being used in domain analyzer mode */
|
|
114
|
-
isDomainAnalyzer?: boolean;
|
|
115
245
|
}
|
|
116
246
|
|
|
117
|
-
|
|
247
|
+
/**
|
|
248
|
+
* SPF report item from the BIMI Checker API
|
|
249
|
+
*/
|
|
250
|
+
interface SpfReportItem {
|
|
251
|
+
status?: string;
|
|
118
252
|
message?: string;
|
|
119
253
|
spfError?: string;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
254
|
+
}
|
|
255
|
+
interface SpfDetails {
|
|
256
|
+
raw?: string | string[] | null;
|
|
257
|
+
status?: string | null;
|
|
258
|
+
txtExtractedFrom?: string | null;
|
|
259
|
+
report?: SpfReportItem[];
|
|
123
260
|
[key: string]: unknown;
|
|
124
|
-
}
|
|
261
|
+
}
|
|
125
262
|
/**
|
|
126
|
-
*
|
|
263
|
+
* Props for the SignalCardSpfDomain component.
|
|
264
|
+
*
|
|
265
|
+
* Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
|
|
127
266
|
*/
|
|
128
|
-
interface
|
|
267
|
+
interface SignalCardSpfDomainProps extends SignalCardSharedProps {
|
|
129
268
|
/**
|
|
130
|
-
* JMAP data containing SPF
|
|
269
|
+
* JMAP data containing SPF authentication results
|
|
131
270
|
*/
|
|
132
271
|
jmap?: {
|
|
133
272
|
extsecrep?: {
|
|
134
|
-
spf?:
|
|
135
|
-
domain?: string | null;
|
|
136
|
-
report?: SubdoReportEntry[] | null;
|
|
137
|
-
} | null;
|
|
138
|
-
} | null;
|
|
139
|
-
} | null;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Component props.
|
|
144
|
-
*/
|
|
145
|
-
interface SignalCardMtaStsProps extends SignalCardSharedProps {
|
|
146
|
-
/** JMAP email data containing MTA-STS information */
|
|
147
|
-
jmap?: {
|
|
148
|
-
extsecrep?: {
|
|
149
|
-
mta?: MtaProps | null;
|
|
273
|
+
spf?: SpfDetails | null;
|
|
150
274
|
} | null;
|
|
151
275
|
} | null;
|
|
152
|
-
/** Domain to analyze */
|
|
153
|
-
domain?: string;
|
|
154
276
|
}
|
|
155
277
|
|
|
156
278
|
/**
|
|
157
279
|
* Component props.
|
|
158
280
|
*/
|
|
159
|
-
interface
|
|
281
|
+
interface SignalCardSpfDomainAnalyzerProps extends SignalCardSharedProps {
|
|
160
282
|
/**
|
|
161
|
-
* JMAP data containing
|
|
283
|
+
* JMAP data containing SPF analysis results
|
|
162
284
|
*/
|
|
163
285
|
jmap: {
|
|
164
286
|
extsecrep: {
|
|
165
|
-
|
|
166
|
-
|
|
287
|
+
spf: DomainAnalyzerSpfProps;
|
|
288
|
+
originator?: {
|
|
289
|
+
domain?: string | null;
|
|
290
|
+
orgDomain?: string | null;
|
|
291
|
+
} | null;
|
|
167
292
|
};
|
|
168
293
|
};
|
|
169
|
-
/**
|
|
170
|
-
* Optional callback invoked when the component mounts.
|
|
171
|
-
*/
|
|
172
|
-
onComponentMount?: () => void;
|
|
173
294
|
}
|
|
174
295
|
|
|
175
296
|
/**
|
|
@@ -178,7 +299,7 @@ interface SignalCardBimiProps extends SignalCardSharedProps {
|
|
|
178
299
|
*/
|
|
179
300
|
type ExtractionCaptionType = 'email' | 'dns' | 'dns-details' | 'policy' | 'email-details';
|
|
180
301
|
|
|
181
|
-
type DmarcData
|
|
302
|
+
type DmarcData = {
|
|
182
303
|
domain?: string | null;
|
|
183
304
|
} | null;
|
|
184
305
|
/**
|
|
@@ -192,7 +313,7 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
|
|
|
192
313
|
*/
|
|
193
314
|
jmap: {
|
|
194
315
|
extsecrep: {
|
|
195
|
-
dmarc?: DmarcData
|
|
316
|
+
dmarc?: DmarcData;
|
|
196
317
|
dkim?: DomainAnalyzerDkimProps;
|
|
197
318
|
};
|
|
198
319
|
};
|
|
@@ -201,266 +322,145 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
|
|
|
201
322
|
/**
|
|
202
323
|
* Component props.
|
|
203
324
|
*/
|
|
204
|
-
interface
|
|
325
|
+
interface SignalCardBimiProps extends SignalCardSharedProps {
|
|
205
326
|
/**
|
|
206
|
-
* JMAP data containing
|
|
327
|
+
* JMAP data containing BIMI and DMARC information from the email security report.
|
|
207
328
|
*/
|
|
208
329
|
jmap: {
|
|
209
330
|
extsecrep: {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
domain?: string | null;
|
|
213
|
-
orgDomain?: string | null;
|
|
214
|
-
} | null;
|
|
331
|
+
bimi?: any;
|
|
332
|
+
dmarc?: any;
|
|
215
333
|
};
|
|
216
334
|
};
|
|
335
|
+
/**
|
|
336
|
+
* Optional callback invoked when the component mounts.
|
|
337
|
+
*/
|
|
338
|
+
onComponentMount?: () => void;
|
|
217
339
|
}
|
|
218
340
|
|
|
219
341
|
/**
|
|
220
|
-
*
|
|
342
|
+
* Component props.
|
|
221
343
|
*/
|
|
222
|
-
interface
|
|
223
|
-
|
|
344
|
+
interface SignalCardMtaStsProps extends SignalCardSharedProps {
|
|
345
|
+
/** JMAP email data containing MTA-STS information */
|
|
346
|
+
jmap?: {
|
|
347
|
+
extsecrep?: {
|
|
348
|
+
mta?: MtaProps | null;
|
|
349
|
+
} | null;
|
|
350
|
+
} | null;
|
|
351
|
+
/** Domain to analyze */
|
|
352
|
+
domain?: string;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
type SubdoReportEntry = {
|
|
224
356
|
message?: string;
|
|
225
357
|
spfError?: string;
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
status?: string | null;
|
|
230
|
-
txtExtractedFrom?: string | null;
|
|
231
|
-
report?: SpfReportItem[];
|
|
358
|
+
raw?: string;
|
|
359
|
+
value?: unknown;
|
|
360
|
+
details?: unknown;
|
|
232
361
|
[key: string]: unknown;
|
|
233
|
-
}
|
|
362
|
+
};
|
|
234
363
|
/**
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
|
|
364
|
+
* Component props.
|
|
238
365
|
*/
|
|
239
|
-
interface
|
|
366
|
+
interface SignalCardSubdoProps extends SignalCardSharedProps {
|
|
240
367
|
/**
|
|
241
|
-
* JMAP data containing SPF
|
|
368
|
+
* JMAP data containing SPF subdomain takeover report
|
|
242
369
|
*/
|
|
243
370
|
jmap?: {
|
|
244
371
|
extsecrep?: {
|
|
245
|
-
spf?:
|
|
372
|
+
spf?: {
|
|
373
|
+
domain?: string | null;
|
|
374
|
+
report?: SubdoReportEntry[] | null;
|
|
375
|
+
} | null;
|
|
246
376
|
} | null;
|
|
247
377
|
} | null;
|
|
248
378
|
}
|
|
249
379
|
|
|
250
|
-
type
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
type DmarcData = {
|
|
255
|
-
raw?: string | null;
|
|
256
|
-
result?: DmarcResult$1 | null;
|
|
257
|
-
txtExtractedFrom?: string | null;
|
|
258
|
-
policyDomain?: string | null;
|
|
259
|
-
fromDomain?: string | null;
|
|
260
|
-
domainPublished?: string | null;
|
|
261
|
-
};
|
|
262
|
-
type Originator = {
|
|
263
|
-
domain?: string | null;
|
|
264
|
-
orgDomain?: string | null;
|
|
380
|
+
type ExtsecrepThreatLevel = ExtsecrepProps;
|
|
381
|
+
type FromInfo = {
|
|
382
|
+
name?: string | null;
|
|
383
|
+
email?: string | null;
|
|
265
384
|
} | null;
|
|
266
|
-
interface SignalCardDmarcDomainProps extends SignalCardSharedProps {
|
|
267
|
-
jmap: {
|
|
268
|
-
extsecrep: {
|
|
269
|
-
dmarc: DmarcData;
|
|
270
|
-
originator?: Originator;
|
|
271
|
-
};
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
|
|
275
385
|
/**
|
|
276
386
|
* Component props.
|
|
277
387
|
*/
|
|
278
|
-
interface
|
|
279
|
-
/** JMAP email data containing
|
|
388
|
+
interface SignalCardThreatInvProps extends SignalCardSharedProps {
|
|
389
|
+
/** JMAP email data containing threat intelligence information */
|
|
280
390
|
jmap: {
|
|
281
|
-
extsecrep:
|
|
282
|
-
|
|
283
|
-
};
|
|
391
|
+
extsecrep: ExtsecrepThreatLevel;
|
|
392
|
+
from?: FromInfo;
|
|
284
393
|
};
|
|
394
|
+
/** Whether this is being used in domain analyzer mode */
|
|
395
|
+
isDomainAnalyzer?: boolean;
|
|
285
396
|
}
|
|
286
397
|
|
|
287
398
|
/**
|
|
288
399
|
* Component props.
|
|
289
400
|
*/
|
|
290
|
-
interface
|
|
291
|
-
/** JMAP data containing
|
|
292
|
-
jmap
|
|
293
|
-
extsecrep
|
|
294
|
-
|
|
295
|
-
};
|
|
296
|
-
};
|
|
297
|
-
/**
|
|
298
|
-
|
|
299
|
-
fcrdns?: FcrdnsProps | null;
|
|
300
|
-
ehloCheck?: EhloCheckProps | null;
|
|
301
|
-
};
|
|
401
|
+
interface SignalCardDnssecProps extends SignalCardSharedProps {
|
|
402
|
+
/** JMAP data containing DNS security information */
|
|
403
|
+
jmap?: {
|
|
404
|
+
extsecrep?: {
|
|
405
|
+
dnsSecurity?: DnsSecurityProps | null;
|
|
406
|
+
} | null;
|
|
407
|
+
} | null;
|
|
408
|
+
/** Custom short description (overrides default based on result) */
|
|
409
|
+
shortDescription?: ReactNode;
|
|
302
410
|
}
|
|
303
411
|
|
|
304
|
-
type DkimResult = DkimProps;
|
|
305
|
-
type DmarcResult = DmarcProps | null;
|
|
306
412
|
/**
|
|
307
|
-
*
|
|
413
|
+
* External security report data structure
|
|
308
414
|
*/
|
|
309
|
-
interface
|
|
310
|
-
/**
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
};
|
|
415
|
+
interface ExtsecrepData {
|
|
416
|
+
/** SPF check data */
|
|
417
|
+
spf?: SpfProps | null;
|
|
418
|
+
/** DMARC policy data */
|
|
419
|
+
dmarc?: DmarcProps | null;
|
|
420
|
+
/** DKIM signature data - can be array or object */
|
|
421
|
+
dkim?: DkimProps | DkimProps[] | null;
|
|
317
422
|
}
|
|
318
|
-
|
|
319
|
-
type SpfData = SpfProps;
|
|
320
423
|
/**
|
|
321
424
|
* Component props.
|
|
322
425
|
*/
|
|
323
|
-
interface
|
|
324
|
-
/** JMAP
|
|
426
|
+
interface SignalCardAmpProps extends SignalCardSharedProps {
|
|
427
|
+
/** JMAP data containing authentication information */
|
|
325
428
|
jmap: {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
429
|
+
/** External security report with SPF, DMARC, DKIM data */
|
|
430
|
+
extsecrep: ExtsecrepData;
|
|
431
|
+
/** From email address information */
|
|
432
|
+
from?: {
|
|
433
|
+
email?: string | null;
|
|
434
|
+
} | null;
|
|
329
435
|
};
|
|
330
436
|
}
|
|
331
437
|
|
|
332
|
-
/**
|
|
333
|
-
* Extended JMAP props for DMARC card including required extsecrep data
|
|
334
|
-
*/
|
|
335
|
-
interface SignalCardDmarcJmapProps extends JmapProps {
|
|
336
|
-
extsecrep: {
|
|
337
|
-
dmarc?: DmarcProps;
|
|
338
|
-
dkim?: DkimProps | DkimProps[];
|
|
339
|
-
spf?: SpfProps;
|
|
340
|
-
};
|
|
341
|
-
}
|
|
342
438
|
/**
|
|
343
439
|
* Component props.
|
|
344
440
|
*/
|
|
345
|
-
interface
|
|
346
|
-
/**
|
|
347
|
-
* JMAP email data containing DMARC, DKIM, SPF information
|
|
348
|
-
*/
|
|
349
|
-
jmap: SignalCardDmarcJmapProps;
|
|
441
|
+
interface SignalCardUrlsProps extends SignalCardSharedProps {
|
|
350
442
|
/**
|
|
351
|
-
*
|
|
443
|
+
* Investigate data containing extracted URLs
|
|
352
444
|
*/
|
|
353
|
-
|
|
445
|
+
investigate?: InvestigateProps | null;
|
|
354
446
|
}
|
|
355
447
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
[key: string]: unknown;
|
|
361
|
-
};
|
|
362
|
-
shortDescription?: unknown;
|
|
363
|
-
[key: string]: unknown;
|
|
364
|
-
};
|
|
365
|
-
type ErrorLike = {
|
|
366
|
-
name?: string;
|
|
367
|
-
message?: string;
|
|
368
|
-
stack?: string;
|
|
369
|
-
};
|
|
370
|
-
type CardEnabledOverrides = Record<string, boolean | undefined>;
|
|
371
|
-
interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
372
|
-
/** Array of signal data objects containing DMARC, DKIM, SPF information */
|
|
373
|
-
signals?: SignalData[];
|
|
374
|
-
/** Error object to display if signal loading fails */
|
|
375
|
-
error?: ErrorLike | null;
|
|
376
|
-
/** Map of signal types to enabled/disabled state */
|
|
377
|
-
isCardEnabledMap?: CardEnabledOverrides;
|
|
378
|
-
/** Signal types to display in the priority section (shown first). Defaults to DMARC, DKIM, SPF */
|
|
379
|
-
prioritySignalTypes?: string[];
|
|
380
|
-
/** Initial selected signal type for external selection control */
|
|
381
|
-
initialSelectedSignalType?: string | null;
|
|
382
|
-
/** Callback when a signal card is selected */
|
|
383
|
-
onSelectSignalType?: (signalType: string) => void;
|
|
384
|
-
/** Custom header renderer for adding content at the top of each card, after the title */
|
|
385
|
-
renderCardHeader?: (signal: SignalData) => React.ReactNode;
|
|
386
|
-
/** Override the promo banner button href on all cards (e.g. to add UTM parameters). Only used when renderCardHeader is not provided. Defaults to the OnDMARC signup URL (`https://iam.redsift.cloud/signup?redirectapp=cloud&product=ondmarc`). */
|
|
387
|
-
cardPromoHref?: string;
|
|
388
|
-
/** Custom footer renderer for adding content at the bottom of each card */
|
|
389
|
-
renderCardFooter?: (signal: SignalData) => React.ReactNode;
|
|
390
|
-
/**
|
|
391
|
-
* Heading text for the priority signals section.
|
|
392
|
-
* Defaults to "Required for the selected compliance profile"
|
|
393
|
-
*/
|
|
394
|
-
prioritySectionHeading?: string;
|
|
395
|
-
/**
|
|
396
|
-
* Heading text for the remaining signals section.
|
|
397
|
-
* Defaults to "Not required for the selected compliance profile"
|
|
398
|
-
*/
|
|
399
|
-
remainingSectionHeading?: string;
|
|
400
|
-
/** Use Investigate handbook colors instead of Design System CSS variables */
|
|
401
|
-
useInvestigateColors?: boolean;
|
|
402
|
-
/**
|
|
403
|
-
* Enable collapsible sections inside all child cards.
|
|
404
|
-
* @default true
|
|
405
|
-
*/
|
|
406
|
-
isCollapsible?: boolean;
|
|
407
|
-
/**
|
|
408
|
-
* Controlled collapsed state for all sections in all child cards.
|
|
409
|
-
* Used with isCollapsible to manage collapsed state externally.
|
|
410
|
-
*/
|
|
411
|
-
areAllCollapsed?: boolean;
|
|
412
|
-
/**
|
|
413
|
-
* Callback fired when the collapse-all toggle changes in any child card.
|
|
414
|
-
*/
|
|
415
|
-
onCollapseAll?: (areAllCollapsed: boolean) => void;
|
|
416
|
-
/**
|
|
417
|
-
* AI-powered recommendations data including analysis and per-protocol signals.
|
|
418
|
-
* When provided (and showRecommendations is not false), renders a RecommendationsSummary
|
|
419
|
-
* section above the signal cards.
|
|
420
|
-
*/
|
|
421
|
-
recommendations?: RecommendationsData | null;
|
|
422
|
-
/**
|
|
423
|
-
* Whether recommendations data is still loading.
|
|
424
|
-
* When true, shows a skeleton/shimmer placeholder for the recommendations section.
|
|
425
|
-
*/
|
|
426
|
-
recommendationsLoading?: boolean;
|
|
427
|
-
/**
|
|
428
|
-
* Whether to show the recommendations section.
|
|
429
|
-
* @default true
|
|
430
|
-
*/
|
|
431
|
-
showRecommendations?: boolean;
|
|
432
|
-
/**
|
|
433
|
-
* Structured data for the CTA card in the recommendations section.
|
|
434
|
-
* The DS owns the layout; the consumer provides the content and click handler.
|
|
435
|
-
*/
|
|
436
|
-
recommendationsCTA?: {
|
|
437
|
-
title: string;
|
|
438
|
-
description: string;
|
|
439
|
-
buttonLabel: string;
|
|
440
|
-
onClickCTA: () => void;
|
|
441
|
-
};
|
|
442
|
-
/**
|
|
443
|
-
* Callback when user clicks "See more details" on a status card.
|
|
444
|
-
* The consumer uses this to scroll to and expand the corresponding signal card.
|
|
445
|
-
*/
|
|
446
|
-
onExpandSignalCard?: (signalType: string) => void;
|
|
448
|
+
/**
|
|
449
|
+
* Component props.
|
|
450
|
+
*/
|
|
451
|
+
interface SignalCardGoogleYahooComplianceProps extends SignalCardSharedProps {
|
|
447
452
|
/**
|
|
448
|
-
*
|
|
449
|
-
* When provided, renders a styled button with a sync icon and translated label.
|
|
450
|
-
* Only rendered when a checked email is found in the signal data.
|
|
453
|
+
* Domain name (currently not used but maintained for API compatibility)
|
|
451
454
|
*/
|
|
452
|
-
|
|
455
|
+
domain?: string | null;
|
|
453
456
|
/**
|
|
454
|
-
*
|
|
455
|
-
* Overrides the default "Check another email" button when provided.
|
|
456
|
-
* Only rendered when a checked email is found in the signal data.
|
|
457
|
+
* JMAP extsecrep data containing authentication results
|
|
457
458
|
*/
|
|
458
|
-
|
|
459
|
+
jmap?: JmapProps | null;
|
|
459
460
|
/**
|
|
460
|
-
*
|
|
461
|
-
* @default true
|
|
461
|
+
* Investigate data with FCrDNS and EHLO check results
|
|
462
462
|
*/
|
|
463
|
-
|
|
463
|
+
investigate?: InvestigateProps | null;
|
|
464
464
|
}
|
|
465
465
|
|
|
466
466
|
/**
|