@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/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as _redsift_design_system from '@redsift/design-system';
|
|
|
4
4
|
import { ButtonColor, Theme, ValueOf, ContainerProps, HeadingProps, IconProps, StylingProps, Comp, ButtonProps } from '@redsift/design-system';
|
|
5
5
|
import * as _redsift_pickers from '@redsift/pickers';
|
|
6
6
|
import { ItemProps, MenuButtonProps, MenuButtonContentProps, MenuButtonContentHeaderProps, MenuButtonContentMenuProps } from '@redsift/pickers';
|
|
7
|
-
import {
|
|
7
|
+
import { RecommendationsData, JmapProps, DmarcProps, DkimProps, SpfProps, EhloProps, FcrdnsProps, EhloCheckProps, TlsProps, CardStatus, DomainAnalyzerSpfProps, DomainAnalyzerDkimProps, MtaProps, ExtsecrepProps, DnsSecurityProps, InvestigateProps } from '@redsift/signal-logic';
|
|
8
8
|
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';
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -220,6 +220,116 @@ declare const RadarSimpleMenuButton: Comp<Omit<MenuButtonProps, 'children'> & {
|
|
|
220
220
|
icon?: Omit<IconProps, 'ref'>;
|
|
221
221
|
} & Pick<MenuButtonContentMenuProps, 'children'>, HTMLDivElement>;
|
|
222
222
|
|
|
223
|
+
type SignalData = {
|
|
224
|
+
signalType: string;
|
|
225
|
+
jmap?: {
|
|
226
|
+
extsecrep?: Record<string, any>;
|
|
227
|
+
[key: string]: unknown;
|
|
228
|
+
};
|
|
229
|
+
shortDescription?: unknown;
|
|
230
|
+
[key: string]: unknown;
|
|
231
|
+
};
|
|
232
|
+
type ErrorLike = {
|
|
233
|
+
name?: string;
|
|
234
|
+
message?: string;
|
|
235
|
+
stack?: string;
|
|
236
|
+
};
|
|
237
|
+
type CardEnabledOverrides = Record<string, boolean | undefined>;
|
|
238
|
+
interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
239
|
+
/** Array of signal data objects containing DMARC, DKIM, SPF information */
|
|
240
|
+
signals?: SignalData[];
|
|
241
|
+
/** Error object to display if signal loading fails */
|
|
242
|
+
error?: ErrorLike | null;
|
|
243
|
+
/** Map of signal types to enabled/disabled state */
|
|
244
|
+
isCardEnabledMap?: CardEnabledOverrides;
|
|
245
|
+
/** Signal types to display in the priority section (shown first). Defaults to DMARC, DKIM, SPF */
|
|
246
|
+
prioritySignalTypes?: string[];
|
|
247
|
+
/** Initial selected signal type for external selection control */
|
|
248
|
+
initialSelectedSignalType?: string | null;
|
|
249
|
+
/** Callback when a signal card is selected */
|
|
250
|
+
onSelectSignalType?: (signalType: string) => void;
|
|
251
|
+
/** Custom header renderer for adding content at the top of each card, after the title */
|
|
252
|
+
renderCardHeader?: (signal: SignalData) => React.ReactNode;
|
|
253
|
+
/** 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`). */
|
|
254
|
+
cardPromoHref?: string;
|
|
255
|
+
/** Custom footer renderer for adding content at the bottom of each card */
|
|
256
|
+
renderCardFooter?: (signal: SignalData) => React.ReactNode;
|
|
257
|
+
/**
|
|
258
|
+
* Heading text for the priority signals section.
|
|
259
|
+
* Defaults to "Required for the selected compliance profile"
|
|
260
|
+
*/
|
|
261
|
+
prioritySectionHeading?: string;
|
|
262
|
+
/**
|
|
263
|
+
* Heading text for the remaining signals section.
|
|
264
|
+
* Defaults to "Not required for the selected compliance profile"
|
|
265
|
+
*/
|
|
266
|
+
remainingSectionHeading?: string;
|
|
267
|
+
/** Use Investigate handbook colors instead of Design System CSS variables */
|
|
268
|
+
useInvestigateColors?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* Enable collapsible sections inside all child cards.
|
|
271
|
+
* @default true
|
|
272
|
+
*/
|
|
273
|
+
isCollapsible?: boolean;
|
|
274
|
+
/**
|
|
275
|
+
* Controlled collapsed state for all sections in all child cards.
|
|
276
|
+
* Used with isCollapsible to manage collapsed state externally.
|
|
277
|
+
*/
|
|
278
|
+
areAllCollapsed?: boolean;
|
|
279
|
+
/**
|
|
280
|
+
* Callback fired when the collapse-all toggle changes in any child card.
|
|
281
|
+
*/
|
|
282
|
+
onCollapseAll?: (areAllCollapsed: boolean) => void;
|
|
283
|
+
/**
|
|
284
|
+
* AI-powered recommendations data including analysis and per-protocol signals.
|
|
285
|
+
* When provided (and showRecommendations is not false), renders a RecommendationsSummary
|
|
286
|
+
* section above the signal cards.
|
|
287
|
+
*/
|
|
288
|
+
recommendations?: RecommendationsData | null;
|
|
289
|
+
/**
|
|
290
|
+
* Whether recommendations data is still loading.
|
|
291
|
+
* When true, shows a skeleton/shimmer placeholder for the recommendations section.
|
|
292
|
+
*/
|
|
293
|
+
recommendationsLoading?: boolean;
|
|
294
|
+
/**
|
|
295
|
+
* Whether to show the recommendations section.
|
|
296
|
+
* @default true
|
|
297
|
+
*/
|
|
298
|
+
showRecommendations?: boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Structured data for the CTA card in the recommendations section.
|
|
301
|
+
* The DS owns the layout; the consumer provides the content and click handler.
|
|
302
|
+
*/
|
|
303
|
+
recommendationsCTA?: {
|
|
304
|
+
title: string;
|
|
305
|
+
description: string;
|
|
306
|
+
buttonLabel: string;
|
|
307
|
+
onClickCTA: () => void;
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Callback when user clicks "See more details" on a status card.
|
|
311
|
+
* The consumer uses this to scroll to and expand the corresponding signal card.
|
|
312
|
+
*/
|
|
313
|
+
onExpandSignalCard?: (signalType: string) => void;
|
|
314
|
+
/**
|
|
315
|
+
* Callback for the "Check another email" button in the header.
|
|
316
|
+
* When provided, renders a styled button with a sync icon and translated label.
|
|
317
|
+
* Only rendered when a checked email is found in the signal data.
|
|
318
|
+
*/
|
|
319
|
+
onCheckAnotherEmail?: () => void;
|
|
320
|
+
/**
|
|
321
|
+
* Render prop for custom action area in the header.
|
|
322
|
+
* Overrides the default "Check another email" button when provided.
|
|
323
|
+
* Only rendered when a checked email is found in the signal data.
|
|
324
|
+
*/
|
|
325
|
+
renderHeaderAction?: () => ReactNode;
|
|
326
|
+
/**
|
|
327
|
+
* Whether to show the "Powered by OnDMARC" branding in the header.
|
|
328
|
+
* @default true
|
|
329
|
+
*/
|
|
330
|
+
showBranding?: boolean;
|
|
331
|
+
}
|
|
332
|
+
|
|
223
333
|
/**
|
|
224
334
|
* Common props shared by all signal card components. These cover layout options
|
|
225
335
|
* that ultimately map to `SignalCardNormal`.
|
|
@@ -245,148 +355,159 @@ interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' |
|
|
|
245
355
|
onCollapseAll?: (areAllCollapsed: boolean) => void;
|
|
246
356
|
}
|
|
247
357
|
|
|
358
|
+
/**
|
|
359
|
+
* Extended JMAP props for DMARC card including required extsecrep data
|
|
360
|
+
*/
|
|
361
|
+
interface SignalCardDmarcJmapProps extends JmapProps {
|
|
362
|
+
extsecrep: {
|
|
363
|
+
dmarc?: DmarcProps;
|
|
364
|
+
dkim?: DkimProps | DkimProps[];
|
|
365
|
+
spf?: SpfProps;
|
|
366
|
+
};
|
|
367
|
+
}
|
|
248
368
|
/**
|
|
249
369
|
* Component props.
|
|
250
370
|
*/
|
|
251
|
-
interface
|
|
252
|
-
/**
|
|
253
|
-
* Domain name (currently not used but maintained for API compatibility)
|
|
254
|
-
*/
|
|
255
|
-
domain?: string | null;
|
|
371
|
+
interface SignalCardDmarcProps extends SignalCardSharedProps {
|
|
256
372
|
/**
|
|
257
|
-
* JMAP
|
|
373
|
+
* JMAP email data containing DMARC, DKIM, SPF information
|
|
258
374
|
*/
|
|
259
|
-
jmap
|
|
375
|
+
jmap: SignalCardDmarcJmapProps;
|
|
260
376
|
/**
|
|
261
|
-
*
|
|
377
|
+
* Whether this is being used in domain analyzer mode
|
|
262
378
|
*/
|
|
263
|
-
|
|
379
|
+
isDomainAnalyzer?: boolean;
|
|
264
380
|
}
|
|
265
381
|
|
|
382
|
+
type SpfData = SpfProps;
|
|
266
383
|
/**
|
|
267
384
|
* Component props.
|
|
268
385
|
*/
|
|
269
|
-
interface
|
|
270
|
-
/**
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
386
|
+
interface SignalCardSpfProps extends SignalCardSharedProps {
|
|
387
|
+
/** JMAP email data containing SPF information */
|
|
388
|
+
jmap: {
|
|
389
|
+
extsecrep: {
|
|
390
|
+
spf?: SpfData;
|
|
391
|
+
};
|
|
392
|
+
};
|
|
274
393
|
}
|
|
275
394
|
|
|
395
|
+
type DkimResult = DkimProps;
|
|
396
|
+
type DmarcResult$1 = DmarcProps | null;
|
|
276
397
|
/**
|
|
277
|
-
*
|
|
398
|
+
* Component props.
|
|
278
399
|
*/
|
|
279
|
-
interface
|
|
280
|
-
/**
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
400
|
+
interface SignalCardDkimProps extends SignalCardSharedProps {
|
|
401
|
+
/** JMAP email data containing DKIM, DMARC information */
|
|
402
|
+
jmap: {
|
|
403
|
+
extsecrep: {
|
|
404
|
+
dkim?: DkimResult | DkimResult[] | null;
|
|
405
|
+
dmarc?: DmarcResult$1;
|
|
406
|
+
};
|
|
407
|
+
};
|
|
286
408
|
}
|
|
409
|
+
|
|
287
410
|
/**
|
|
288
411
|
* Component props.
|
|
289
412
|
*/
|
|
290
|
-
interface
|
|
291
|
-
/** JMAP data containing
|
|
413
|
+
interface SignalCardFcrdnsProps extends SignalCardSharedProps {
|
|
414
|
+
/** JMAP data containing EHLO information */
|
|
292
415
|
jmap: {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
416
|
+
extsecrep: {
|
|
417
|
+
ehlo?: EhloProps;
|
|
418
|
+
};
|
|
419
|
+
};
|
|
420
|
+
/** Investigation data with FCrDNS and EHLO check results */
|
|
421
|
+
investigate?: {
|
|
422
|
+
fcrdns?: FcrdnsProps | null;
|
|
423
|
+
ehloCheck?: EhloCheckProps | null;
|
|
299
424
|
};
|
|
300
425
|
}
|
|
301
426
|
|
|
302
427
|
/**
|
|
303
428
|
* Component props.
|
|
304
429
|
*/
|
|
305
|
-
interface
|
|
306
|
-
/** JMAP data containing
|
|
307
|
-
jmap
|
|
308
|
-
extsecrep
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
/** Custom short description (overrides default based on result) */
|
|
313
|
-
shortDescription?: ReactNode;
|
|
430
|
+
interface SignalCardTlsProps extends SignalCardSharedProps {
|
|
431
|
+
/** JMAP email data containing TLS information */
|
|
432
|
+
jmap: {
|
|
433
|
+
extsecrep: {
|
|
434
|
+
tls?: TlsProps;
|
|
435
|
+
};
|
|
436
|
+
};
|
|
314
437
|
}
|
|
315
438
|
|
|
316
|
-
type
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
439
|
+
type DmarcResult = {
|
|
440
|
+
status?: CardStatus | string | null;
|
|
441
|
+
errors?: string[] | null;
|
|
442
|
+
};
|
|
443
|
+
type DmarcData$1 = {
|
|
444
|
+
raw?: string | null;
|
|
445
|
+
result?: DmarcResult | null;
|
|
446
|
+
txtExtractedFrom?: string | null;
|
|
447
|
+
policyDomain?: string | null;
|
|
448
|
+
fromDomain?: string | null;
|
|
449
|
+
domainPublished?: string | null;
|
|
450
|
+
};
|
|
451
|
+
type Originator = {
|
|
452
|
+
domain?: string | null;
|
|
453
|
+
orgDomain?: string | null;
|
|
320
454
|
} | null;
|
|
321
|
-
|
|
322
|
-
* Component props.
|
|
323
|
-
*/
|
|
324
|
-
interface SignalCardThreatInvProps extends SignalCardSharedProps {
|
|
325
|
-
/** JMAP email data containing threat intelligence information */
|
|
455
|
+
interface SignalCardDmarcDomainProps extends SignalCardSharedProps {
|
|
326
456
|
jmap: {
|
|
327
|
-
extsecrep:
|
|
328
|
-
|
|
457
|
+
extsecrep: {
|
|
458
|
+
dmarc: DmarcData$1;
|
|
459
|
+
originator?: Originator;
|
|
460
|
+
};
|
|
329
461
|
};
|
|
330
|
-
/** Whether this is being used in domain analyzer mode */
|
|
331
|
-
isDomainAnalyzer?: boolean;
|
|
332
462
|
}
|
|
333
463
|
|
|
334
|
-
|
|
464
|
+
/**
|
|
465
|
+
* SPF report item from the BIMI Checker API
|
|
466
|
+
*/
|
|
467
|
+
interface SpfReportItem {
|
|
468
|
+
status?: string;
|
|
335
469
|
message?: string;
|
|
336
470
|
spfError?: string;
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
471
|
+
}
|
|
472
|
+
interface SpfDetails {
|
|
473
|
+
raw?: string | string[] | null;
|
|
474
|
+
status?: string | null;
|
|
475
|
+
txtExtractedFrom?: string | null;
|
|
476
|
+
report?: SpfReportItem[];
|
|
340
477
|
[key: string]: unknown;
|
|
341
|
-
}
|
|
478
|
+
}
|
|
342
479
|
/**
|
|
343
|
-
*
|
|
480
|
+
* Props for the SignalCardSpfDomain component.
|
|
481
|
+
*
|
|
482
|
+
* Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
|
|
344
483
|
*/
|
|
345
|
-
interface
|
|
484
|
+
interface SignalCardSpfDomainProps extends SignalCardSharedProps {
|
|
346
485
|
/**
|
|
347
|
-
* JMAP data containing SPF
|
|
486
|
+
* JMAP data containing SPF authentication results
|
|
348
487
|
*/
|
|
349
488
|
jmap?: {
|
|
350
489
|
extsecrep?: {
|
|
351
|
-
spf?:
|
|
352
|
-
domain?: string | null;
|
|
353
|
-
report?: SubdoReportEntry[] | null;
|
|
354
|
-
} | null;
|
|
355
|
-
} | null;
|
|
356
|
-
} | null;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
/**
|
|
360
|
-
* Component props.
|
|
361
|
-
*/
|
|
362
|
-
interface SignalCardMtaStsProps extends SignalCardSharedProps {
|
|
363
|
-
/** JMAP email data containing MTA-STS information */
|
|
364
|
-
jmap?: {
|
|
365
|
-
extsecrep?: {
|
|
366
|
-
mta?: MtaProps | null;
|
|
490
|
+
spf?: SpfDetails | null;
|
|
367
491
|
} | null;
|
|
368
492
|
} | null;
|
|
369
|
-
/** Domain to analyze */
|
|
370
|
-
domain?: string;
|
|
371
493
|
}
|
|
372
494
|
|
|
373
495
|
/**
|
|
374
496
|
* Component props.
|
|
375
497
|
*/
|
|
376
|
-
interface
|
|
498
|
+
interface SignalCardSpfDomainAnalyzerProps extends SignalCardSharedProps {
|
|
377
499
|
/**
|
|
378
|
-
* JMAP data containing
|
|
500
|
+
* JMAP data containing SPF analysis results
|
|
379
501
|
*/
|
|
380
502
|
jmap: {
|
|
381
503
|
extsecrep: {
|
|
382
|
-
|
|
383
|
-
|
|
504
|
+
spf: DomainAnalyzerSpfProps;
|
|
505
|
+
originator?: {
|
|
506
|
+
domain?: string | null;
|
|
507
|
+
orgDomain?: string | null;
|
|
508
|
+
} | null;
|
|
384
509
|
};
|
|
385
510
|
};
|
|
386
|
-
/**
|
|
387
|
-
* Optional callback invoked when the component mounts.
|
|
388
|
-
*/
|
|
389
|
-
onComponentMount?: () => void;
|
|
390
511
|
}
|
|
391
512
|
|
|
392
513
|
/**
|
|
@@ -395,7 +516,7 @@ interface SignalCardBimiProps extends SignalCardSharedProps {
|
|
|
395
516
|
*/
|
|
396
517
|
type ExtractionCaptionType = 'email' | 'dns' | 'dns-details' | 'policy' | 'email-details';
|
|
397
518
|
|
|
398
|
-
type DmarcData
|
|
519
|
+
type DmarcData = {
|
|
399
520
|
domain?: string | null;
|
|
400
521
|
} | null;
|
|
401
522
|
/**
|
|
@@ -409,7 +530,7 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
|
|
|
409
530
|
*/
|
|
410
531
|
jmap: {
|
|
411
532
|
extsecrep: {
|
|
412
|
-
dmarc?: DmarcData
|
|
533
|
+
dmarc?: DmarcData;
|
|
413
534
|
dkim?: DomainAnalyzerDkimProps;
|
|
414
535
|
};
|
|
415
536
|
};
|
|
@@ -418,266 +539,145 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
|
|
|
418
539
|
/**
|
|
419
540
|
* Component props.
|
|
420
541
|
*/
|
|
421
|
-
interface
|
|
542
|
+
interface SignalCardBimiProps extends SignalCardSharedProps {
|
|
422
543
|
/**
|
|
423
|
-
* JMAP data containing
|
|
544
|
+
* JMAP data containing BIMI and DMARC information from the email security report.
|
|
424
545
|
*/
|
|
425
546
|
jmap: {
|
|
426
547
|
extsecrep: {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
domain?: string | null;
|
|
430
|
-
orgDomain?: string | null;
|
|
431
|
-
} | null;
|
|
548
|
+
bimi?: any;
|
|
549
|
+
dmarc?: any;
|
|
432
550
|
};
|
|
433
551
|
};
|
|
552
|
+
/**
|
|
553
|
+
* Optional callback invoked when the component mounts.
|
|
554
|
+
*/
|
|
555
|
+
onComponentMount?: () => void;
|
|
434
556
|
}
|
|
435
557
|
|
|
436
558
|
/**
|
|
437
|
-
*
|
|
559
|
+
* Component props.
|
|
438
560
|
*/
|
|
439
|
-
interface
|
|
440
|
-
|
|
561
|
+
interface SignalCardMtaStsProps extends SignalCardSharedProps {
|
|
562
|
+
/** JMAP email data containing MTA-STS information */
|
|
563
|
+
jmap?: {
|
|
564
|
+
extsecrep?: {
|
|
565
|
+
mta?: MtaProps | null;
|
|
566
|
+
} | null;
|
|
567
|
+
} | null;
|
|
568
|
+
/** Domain to analyze */
|
|
569
|
+
domain?: string;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
type SubdoReportEntry = {
|
|
441
573
|
message?: string;
|
|
442
574
|
spfError?: string;
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
status?: string | null;
|
|
447
|
-
txtExtractedFrom?: string | null;
|
|
448
|
-
report?: SpfReportItem[];
|
|
575
|
+
raw?: string;
|
|
576
|
+
value?: unknown;
|
|
577
|
+
details?: unknown;
|
|
449
578
|
[key: string]: unknown;
|
|
450
|
-
}
|
|
579
|
+
};
|
|
451
580
|
/**
|
|
452
|
-
*
|
|
453
|
-
*
|
|
454
|
-
* Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
|
|
581
|
+
* Component props.
|
|
455
582
|
*/
|
|
456
|
-
interface
|
|
583
|
+
interface SignalCardSubdoProps extends SignalCardSharedProps {
|
|
457
584
|
/**
|
|
458
|
-
* JMAP data containing SPF
|
|
585
|
+
* JMAP data containing SPF subdomain takeover report
|
|
459
586
|
*/
|
|
460
587
|
jmap?: {
|
|
461
588
|
extsecrep?: {
|
|
462
|
-
spf?:
|
|
589
|
+
spf?: {
|
|
590
|
+
domain?: string | null;
|
|
591
|
+
report?: SubdoReportEntry[] | null;
|
|
592
|
+
} | null;
|
|
463
593
|
} | null;
|
|
464
594
|
} | null;
|
|
465
595
|
}
|
|
466
596
|
|
|
467
|
-
type
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
type DmarcData = {
|
|
472
|
-
raw?: string | null;
|
|
473
|
-
result?: DmarcResult$1 | null;
|
|
474
|
-
txtExtractedFrom?: string | null;
|
|
475
|
-
policyDomain?: string | null;
|
|
476
|
-
fromDomain?: string | null;
|
|
477
|
-
domainPublished?: string | null;
|
|
478
|
-
};
|
|
479
|
-
type Originator = {
|
|
480
|
-
domain?: string | null;
|
|
481
|
-
orgDomain?: string | null;
|
|
597
|
+
type ExtsecrepThreatLevel = ExtsecrepProps;
|
|
598
|
+
type FromInfo = {
|
|
599
|
+
name?: string | null;
|
|
600
|
+
email?: string | null;
|
|
482
601
|
} | null;
|
|
483
|
-
interface SignalCardDmarcDomainProps extends SignalCardSharedProps {
|
|
484
|
-
jmap: {
|
|
485
|
-
extsecrep: {
|
|
486
|
-
dmarc: DmarcData;
|
|
487
|
-
originator?: Originator;
|
|
488
|
-
};
|
|
489
|
-
};
|
|
490
|
-
}
|
|
491
|
-
|
|
492
602
|
/**
|
|
493
603
|
* Component props.
|
|
494
604
|
*/
|
|
495
|
-
interface
|
|
496
|
-
/** JMAP email data containing
|
|
605
|
+
interface SignalCardThreatInvProps extends SignalCardSharedProps {
|
|
606
|
+
/** JMAP email data containing threat intelligence information */
|
|
497
607
|
jmap: {
|
|
498
|
-
extsecrep:
|
|
499
|
-
|
|
500
|
-
};
|
|
608
|
+
extsecrep: ExtsecrepThreatLevel;
|
|
609
|
+
from?: FromInfo;
|
|
501
610
|
};
|
|
611
|
+
/** Whether this is being used in domain analyzer mode */
|
|
612
|
+
isDomainAnalyzer?: boolean;
|
|
502
613
|
}
|
|
503
614
|
|
|
504
615
|
/**
|
|
505
616
|
* Component props.
|
|
506
617
|
*/
|
|
507
|
-
interface
|
|
508
|
-
/** JMAP data containing
|
|
509
|
-
jmap
|
|
510
|
-
extsecrep
|
|
511
|
-
|
|
512
|
-
};
|
|
513
|
-
};
|
|
514
|
-
/**
|
|
515
|
-
|
|
516
|
-
fcrdns?: FcrdnsProps | null;
|
|
517
|
-
ehloCheck?: EhloCheckProps | null;
|
|
518
|
-
};
|
|
618
|
+
interface SignalCardDnssecProps extends SignalCardSharedProps {
|
|
619
|
+
/** JMAP data containing DNS security information */
|
|
620
|
+
jmap?: {
|
|
621
|
+
extsecrep?: {
|
|
622
|
+
dnsSecurity?: DnsSecurityProps | null;
|
|
623
|
+
} | null;
|
|
624
|
+
} | null;
|
|
625
|
+
/** Custom short description (overrides default based on result) */
|
|
626
|
+
shortDescription?: ReactNode;
|
|
519
627
|
}
|
|
520
628
|
|
|
521
|
-
type DkimResult = DkimProps;
|
|
522
|
-
type DmarcResult = DmarcProps | null;
|
|
523
629
|
/**
|
|
524
|
-
*
|
|
630
|
+
* External security report data structure
|
|
525
631
|
*/
|
|
526
|
-
interface
|
|
527
|
-
/**
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
};
|
|
632
|
+
interface ExtsecrepData {
|
|
633
|
+
/** SPF check data */
|
|
634
|
+
spf?: SpfProps | null;
|
|
635
|
+
/** DMARC policy data */
|
|
636
|
+
dmarc?: DmarcProps | null;
|
|
637
|
+
/** DKIM signature data - can be array or object */
|
|
638
|
+
dkim?: DkimProps | DkimProps[] | null;
|
|
534
639
|
}
|
|
535
|
-
|
|
536
|
-
type SpfData = SpfProps;
|
|
537
640
|
/**
|
|
538
641
|
* Component props.
|
|
539
642
|
*/
|
|
540
|
-
interface
|
|
541
|
-
/** JMAP
|
|
643
|
+
interface SignalCardAmpProps extends SignalCardSharedProps {
|
|
644
|
+
/** JMAP data containing authentication information */
|
|
542
645
|
jmap: {
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
646
|
+
/** External security report with SPF, DMARC, DKIM data */
|
|
647
|
+
extsecrep: ExtsecrepData;
|
|
648
|
+
/** From email address information */
|
|
649
|
+
from?: {
|
|
650
|
+
email?: string | null;
|
|
651
|
+
} | null;
|
|
546
652
|
};
|
|
547
653
|
}
|
|
548
654
|
|
|
549
|
-
/**
|
|
550
|
-
* Extended JMAP props for DMARC card including required extsecrep data
|
|
551
|
-
*/
|
|
552
|
-
interface SignalCardDmarcJmapProps extends JmapProps {
|
|
553
|
-
extsecrep: {
|
|
554
|
-
dmarc?: DmarcProps;
|
|
555
|
-
dkim?: DkimProps | DkimProps[];
|
|
556
|
-
spf?: SpfProps;
|
|
557
|
-
};
|
|
558
|
-
}
|
|
559
655
|
/**
|
|
560
656
|
* Component props.
|
|
561
657
|
*/
|
|
562
|
-
interface
|
|
563
|
-
/**
|
|
564
|
-
* JMAP email data containing DMARC, DKIM, SPF information
|
|
565
|
-
*/
|
|
566
|
-
jmap: SignalCardDmarcJmapProps;
|
|
658
|
+
interface SignalCardUrlsProps extends SignalCardSharedProps {
|
|
567
659
|
/**
|
|
568
|
-
*
|
|
660
|
+
* Investigate data containing extracted URLs
|
|
569
661
|
*/
|
|
570
|
-
|
|
662
|
+
investigate?: InvestigateProps | null;
|
|
571
663
|
}
|
|
572
664
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
[key: string]: unknown;
|
|
578
|
-
};
|
|
579
|
-
shortDescription?: unknown;
|
|
580
|
-
[key: string]: unknown;
|
|
581
|
-
};
|
|
582
|
-
type ErrorLike = {
|
|
583
|
-
name?: string;
|
|
584
|
-
message?: string;
|
|
585
|
-
stack?: string;
|
|
586
|
-
};
|
|
587
|
-
type CardEnabledOverrides = Record<string, boolean | undefined>;
|
|
588
|
-
interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
589
|
-
/** Array of signal data objects containing DMARC, DKIM, SPF information */
|
|
590
|
-
signals?: SignalData[];
|
|
591
|
-
/** Error object to display if signal loading fails */
|
|
592
|
-
error?: ErrorLike | null;
|
|
593
|
-
/** Map of signal types to enabled/disabled state */
|
|
594
|
-
isCardEnabledMap?: CardEnabledOverrides;
|
|
595
|
-
/** Signal types to display in the priority section (shown first). Defaults to DMARC, DKIM, SPF */
|
|
596
|
-
prioritySignalTypes?: string[];
|
|
597
|
-
/** Initial selected signal type for external selection control */
|
|
598
|
-
initialSelectedSignalType?: string | null;
|
|
599
|
-
/** Callback when a signal card is selected */
|
|
600
|
-
onSelectSignalType?: (signalType: string) => void;
|
|
601
|
-
/** Custom header renderer for adding content at the top of each card, after the title */
|
|
602
|
-
renderCardHeader?: (signal: SignalData) => React.ReactNode;
|
|
603
|
-
/** 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`). */
|
|
604
|
-
cardPromoHref?: string;
|
|
605
|
-
/** Custom footer renderer for adding content at the bottom of each card */
|
|
606
|
-
renderCardFooter?: (signal: SignalData) => React.ReactNode;
|
|
607
|
-
/**
|
|
608
|
-
* Heading text for the priority signals section.
|
|
609
|
-
* Defaults to "Required for the selected compliance profile"
|
|
610
|
-
*/
|
|
611
|
-
prioritySectionHeading?: string;
|
|
612
|
-
/**
|
|
613
|
-
* Heading text for the remaining signals section.
|
|
614
|
-
* Defaults to "Not required for the selected compliance profile"
|
|
615
|
-
*/
|
|
616
|
-
remainingSectionHeading?: string;
|
|
617
|
-
/** Use Investigate handbook colors instead of Design System CSS variables */
|
|
618
|
-
useInvestigateColors?: boolean;
|
|
619
|
-
/**
|
|
620
|
-
* Enable collapsible sections inside all child cards.
|
|
621
|
-
* @default true
|
|
622
|
-
*/
|
|
623
|
-
isCollapsible?: boolean;
|
|
624
|
-
/**
|
|
625
|
-
* Controlled collapsed state for all sections in all child cards.
|
|
626
|
-
* Used with isCollapsible to manage collapsed state externally.
|
|
627
|
-
*/
|
|
628
|
-
areAllCollapsed?: boolean;
|
|
629
|
-
/**
|
|
630
|
-
* Callback fired when the collapse-all toggle changes in any child card.
|
|
631
|
-
*/
|
|
632
|
-
onCollapseAll?: (areAllCollapsed: boolean) => void;
|
|
633
|
-
/**
|
|
634
|
-
* AI-powered recommendations data including analysis and per-protocol signals.
|
|
635
|
-
* When provided (and showRecommendations is not false), renders a RecommendationsSummary
|
|
636
|
-
* section above the signal cards.
|
|
637
|
-
*/
|
|
638
|
-
recommendations?: RecommendationsData | null;
|
|
639
|
-
/**
|
|
640
|
-
* Whether recommendations data is still loading.
|
|
641
|
-
* When true, shows a skeleton/shimmer placeholder for the recommendations section.
|
|
642
|
-
*/
|
|
643
|
-
recommendationsLoading?: boolean;
|
|
644
|
-
/**
|
|
645
|
-
* Whether to show the recommendations section.
|
|
646
|
-
* @default true
|
|
647
|
-
*/
|
|
648
|
-
showRecommendations?: boolean;
|
|
649
|
-
/**
|
|
650
|
-
* Structured data for the CTA card in the recommendations section.
|
|
651
|
-
* The DS owns the layout; the consumer provides the content and click handler.
|
|
652
|
-
*/
|
|
653
|
-
recommendationsCTA?: {
|
|
654
|
-
title: string;
|
|
655
|
-
description: string;
|
|
656
|
-
buttonLabel: string;
|
|
657
|
-
onClickCTA: () => void;
|
|
658
|
-
};
|
|
659
|
-
/**
|
|
660
|
-
* Callback when user clicks "See more details" on a status card.
|
|
661
|
-
* The consumer uses this to scroll to and expand the corresponding signal card.
|
|
662
|
-
*/
|
|
663
|
-
onExpandSignalCard?: (signalType: string) => void;
|
|
665
|
+
/**
|
|
666
|
+
* Component props.
|
|
667
|
+
*/
|
|
668
|
+
interface SignalCardGoogleYahooComplianceProps extends SignalCardSharedProps {
|
|
664
669
|
/**
|
|
665
|
-
*
|
|
666
|
-
* When provided, renders a styled button with a sync icon and translated label.
|
|
667
|
-
* Only rendered when a checked email is found in the signal data.
|
|
670
|
+
* Domain name (currently not used but maintained for API compatibility)
|
|
668
671
|
*/
|
|
669
|
-
|
|
672
|
+
domain?: string | null;
|
|
670
673
|
/**
|
|
671
|
-
*
|
|
672
|
-
* Overrides the default "Check another email" button when provided.
|
|
673
|
-
* Only rendered when a checked email is found in the signal data.
|
|
674
|
+
* JMAP extsecrep data containing authentication results
|
|
674
675
|
*/
|
|
675
|
-
|
|
676
|
+
jmap?: JmapProps | null;
|
|
676
677
|
/**
|
|
677
|
-
*
|
|
678
|
-
* @default true
|
|
678
|
+
* Investigate data with FCrDNS and EHLO check results
|
|
679
679
|
*/
|
|
680
|
-
|
|
680
|
+
investigate?: InvestigateProps | null;
|
|
681
681
|
}
|
|
682
682
|
|
|
683
683
|
/**
|