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