@redsift/products 12.5.8 → 12.5.9-muiv7
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/CONTRIBUTING.md +10 -14
- package/bimi-checker.d.ts +94 -94
- package/index.d.ts +306 -306
- package/package.json +5 -5
- package/signal-cards.d.ts +306 -306
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 { JmapProps, InvestigateProps, SpfProps, DmarcProps, DkimProps, DnsSecurityProps, ExtsecrepProps, MtaProps, DomainAnalyzerDkimProps, DomainAnalyzerSpfProps, CardStatus, TlsProps, EhloProps, FcrdnsProps, EhloCheckProps, RecommendationsData } 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,132 +220,6 @@ 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
|
-
|
|
349
223
|
/**
|
|
350
224
|
* Common props shared by all signal card components. These cover layout options
|
|
351
225
|
* that ultimately map to `SignalCardNormal`.
|
|
@@ -377,139 +251,113 @@ interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' |
|
|
|
377
251
|
onCollapseAll?: (areAllCollapsed: boolean) => void;
|
|
378
252
|
}
|
|
379
253
|
|
|
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
|
-
}
|
|
390
254
|
/**
|
|
391
255
|
* Component props.
|
|
392
256
|
*/
|
|
393
|
-
interface
|
|
257
|
+
interface SignalCardGoogleYahooComplianceProps extends SignalCardSharedProps {
|
|
394
258
|
/**
|
|
395
|
-
*
|
|
259
|
+
* Domain name (currently not used but maintained for API compatibility)
|
|
396
260
|
*/
|
|
397
|
-
|
|
261
|
+
domain?: string | null;
|
|
398
262
|
/**
|
|
399
|
-
*
|
|
263
|
+
* JMAP extsecrep data containing authentication results
|
|
400
264
|
*/
|
|
401
|
-
|
|
265
|
+
jmap?: JmapProps | null;
|
|
266
|
+
/**
|
|
267
|
+
* Investigate data with FCrDNS and EHLO check results
|
|
268
|
+
*/
|
|
269
|
+
investigate?: InvestigateProps | null;
|
|
402
270
|
}
|
|
403
271
|
|
|
404
|
-
type SpfData = SpfProps;
|
|
405
272
|
/**
|
|
406
273
|
* Component props.
|
|
407
274
|
*/
|
|
408
|
-
interface
|
|
409
|
-
/**
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
};
|
|
414
|
-
};
|
|
275
|
+
interface SignalCardUrlsProps extends SignalCardSharedProps {
|
|
276
|
+
/**
|
|
277
|
+
* Investigate data containing extracted URLs
|
|
278
|
+
*/
|
|
279
|
+
investigate?: InvestigateProps | null;
|
|
415
280
|
}
|
|
416
281
|
|
|
417
|
-
type DkimResult = DkimProps;
|
|
418
|
-
type DmarcResult$1 = DmarcProps | null;
|
|
419
282
|
/**
|
|
420
|
-
*
|
|
283
|
+
* External security report data structure
|
|
421
284
|
*/
|
|
422
|
-
interface
|
|
423
|
-
/**
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
};
|
|
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;
|
|
430
292
|
}
|
|
431
|
-
|
|
432
293
|
/**
|
|
433
294
|
* Component props.
|
|
434
295
|
*/
|
|
435
|
-
interface
|
|
436
|
-
/** JMAP data containing
|
|
296
|
+
interface SignalCardAmpProps extends SignalCardSharedProps {
|
|
297
|
+
/** JMAP data containing authentication information */
|
|
437
298
|
jmap: {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
fcrdns?: FcrdnsProps | null;
|
|
445
|
-
ehloCheck?: EhloCheckProps | null;
|
|
299
|
+
/** External security report with SPF, DMARC, DKIM data */
|
|
300
|
+
extsecrep: ExtsecrepData;
|
|
301
|
+
/** From email address information */
|
|
302
|
+
from?: {
|
|
303
|
+
email?: string | null;
|
|
304
|
+
} | null;
|
|
446
305
|
};
|
|
447
306
|
}
|
|
448
307
|
|
|
449
308
|
/**
|
|
450
309
|
* Component props.
|
|
451
310
|
*/
|
|
452
|
-
interface
|
|
453
|
-
/** JMAP
|
|
454
|
-
jmap
|
|
455
|
-
extsecrep
|
|
456
|
-
|
|
457
|
-
};
|
|
458
|
-
};
|
|
311
|
+
interface SignalCardDnssecProps extends SignalCardSharedProps {
|
|
312
|
+
/** JMAP data containing DNS security information */
|
|
313
|
+
jmap?: {
|
|
314
|
+
extsecrep?: {
|
|
315
|
+
dnsSecurity?: DnsSecurityProps | null;
|
|
316
|
+
} | null;
|
|
317
|
+
} | null;
|
|
318
|
+
/** Custom short description (overrides default based on result) */
|
|
319
|
+
shortDescription?: ReactNode;
|
|
459
320
|
}
|
|
460
321
|
|
|
461
|
-
type
|
|
462
|
-
|
|
463
|
-
|
|
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;
|
|
472
|
-
};
|
|
473
|
-
type Originator = {
|
|
474
|
-
domain?: string | null;
|
|
475
|
-
orgDomain?: string | null;
|
|
322
|
+
type ExtsecrepThreatLevel = ExtsecrepProps;
|
|
323
|
+
type FromInfo = {
|
|
324
|
+
name?: string | null;
|
|
325
|
+
email?: string | null;
|
|
476
326
|
} | null;
|
|
477
|
-
|
|
327
|
+
/**
|
|
328
|
+
* Component props.
|
|
329
|
+
*/
|
|
330
|
+
interface SignalCardThreatInvProps extends SignalCardSharedProps {
|
|
331
|
+
/** JMAP email data containing threat intelligence information */
|
|
478
332
|
jmap: {
|
|
479
|
-
extsecrep:
|
|
480
|
-
|
|
481
|
-
originator?: Originator;
|
|
482
|
-
};
|
|
333
|
+
extsecrep: ExtsecrepThreatLevel;
|
|
334
|
+
from?: FromInfo;
|
|
483
335
|
};
|
|
336
|
+
/** Whether this is being used in domain analyzer mode */
|
|
337
|
+
isDomainAnalyzer?: boolean;
|
|
484
338
|
}
|
|
485
339
|
|
|
486
|
-
|
|
487
|
-
* SPF report item from the BIMI Checker API
|
|
488
|
-
*/
|
|
489
|
-
interface SpfReportItem {
|
|
490
|
-
status?: string;
|
|
340
|
+
type SubdoReportEntry = {
|
|
491
341
|
message?: string;
|
|
492
342
|
spfError?: string;
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
status?: string | null;
|
|
497
|
-
txtExtractedFrom?: string | null;
|
|
498
|
-
report?: SpfReportItem[];
|
|
343
|
+
raw?: string;
|
|
344
|
+
value?: unknown;
|
|
345
|
+
details?: unknown;
|
|
499
346
|
[key: string]: unknown;
|
|
500
|
-
}
|
|
347
|
+
};
|
|
501
348
|
/**
|
|
502
|
-
*
|
|
503
|
-
*
|
|
504
|
-
* Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
|
|
349
|
+
* Component props.
|
|
505
350
|
*/
|
|
506
|
-
interface
|
|
351
|
+
interface SignalCardSubdoProps extends SignalCardSharedProps {
|
|
507
352
|
/**
|
|
508
|
-
* JMAP data containing SPF
|
|
353
|
+
* JMAP data containing SPF subdomain takeover report
|
|
509
354
|
*/
|
|
510
355
|
jmap?: {
|
|
511
356
|
extsecrep?: {
|
|
512
|
-
spf?:
|
|
357
|
+
spf?: {
|
|
358
|
+
domain?: string | null;
|
|
359
|
+
report?: SubdoReportEntry[] | null;
|
|
360
|
+
} | null;
|
|
513
361
|
} | null;
|
|
514
362
|
} | null;
|
|
515
363
|
}
|
|
@@ -517,19 +365,34 @@ interface SignalCardSpfDomainProps extends SignalCardSharedProps {
|
|
|
517
365
|
/**
|
|
518
366
|
* Component props.
|
|
519
367
|
*/
|
|
520
|
-
interface
|
|
368
|
+
interface SignalCardMtaStsProps extends SignalCardSharedProps {
|
|
369
|
+
/** JMAP email data containing MTA-STS information */
|
|
370
|
+
jmap?: {
|
|
371
|
+
extsecrep?: {
|
|
372
|
+
mta?: MtaProps | null;
|
|
373
|
+
} | null;
|
|
374
|
+
} | null;
|
|
375
|
+
/** Domain to analyze */
|
|
376
|
+
domain?: string;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Component props.
|
|
381
|
+
*/
|
|
382
|
+
interface SignalCardBimiProps extends SignalCardSharedProps {
|
|
521
383
|
/**
|
|
522
|
-
* JMAP data containing
|
|
384
|
+
* JMAP data containing BIMI and DMARC information from the email security report.
|
|
523
385
|
*/
|
|
524
386
|
jmap: {
|
|
525
387
|
extsecrep: {
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
domain?: string | null;
|
|
529
|
-
orgDomain?: string | null;
|
|
530
|
-
} | null;
|
|
388
|
+
bimi?: any;
|
|
389
|
+
dmarc?: any;
|
|
531
390
|
};
|
|
532
391
|
};
|
|
392
|
+
/**
|
|
393
|
+
* Optional callback invoked when the component mounts.
|
|
394
|
+
*/
|
|
395
|
+
onComponentMount?: () => void;
|
|
533
396
|
}
|
|
534
397
|
|
|
535
398
|
/**
|
|
@@ -538,7 +401,7 @@ interface SignalCardSpfDomainAnalyzerProps extends SignalCardSharedProps {
|
|
|
538
401
|
*/
|
|
539
402
|
type ExtractionCaptionType = 'email' | 'dns' | 'dns-details' | 'policy' | 'email-details';
|
|
540
403
|
|
|
541
|
-
type DmarcData = {
|
|
404
|
+
type DmarcData$1 = {
|
|
542
405
|
domain?: string | null;
|
|
543
406
|
} | null;
|
|
544
407
|
/**
|
|
@@ -552,7 +415,7 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
|
|
|
552
415
|
*/
|
|
553
416
|
jmap: {
|
|
554
417
|
extsecrep: {
|
|
555
|
-
dmarc?: DmarcData;
|
|
418
|
+
dmarc?: DmarcData$1;
|
|
556
419
|
dkim?: DomainAnalyzerDkimProps;
|
|
557
420
|
};
|
|
558
421
|
};
|
|
@@ -561,145 +424,282 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
|
|
|
561
424
|
/**
|
|
562
425
|
* Component props.
|
|
563
426
|
*/
|
|
564
|
-
interface
|
|
427
|
+
interface SignalCardSpfDomainAnalyzerProps extends SignalCardSharedProps {
|
|
565
428
|
/**
|
|
566
|
-
* JMAP data containing
|
|
429
|
+
* JMAP data containing SPF analysis results
|
|
567
430
|
*/
|
|
568
431
|
jmap: {
|
|
569
432
|
extsecrep: {
|
|
570
|
-
|
|
571
|
-
|
|
433
|
+
spf: DomainAnalyzerSpfProps;
|
|
434
|
+
originator?: {
|
|
435
|
+
domain?: string | null;
|
|
436
|
+
orgDomain?: string | null;
|
|
437
|
+
} | null;
|
|
572
438
|
};
|
|
573
439
|
};
|
|
574
|
-
/**
|
|
575
|
-
* Optional callback invoked when the component mounts.
|
|
576
|
-
*/
|
|
577
|
-
onComponentMount?: () => void;
|
|
578
440
|
}
|
|
579
441
|
|
|
580
442
|
/**
|
|
581
|
-
*
|
|
443
|
+
* SPF report item from the BIMI Checker API
|
|
582
444
|
*/
|
|
583
|
-
interface
|
|
584
|
-
|
|
585
|
-
jmap?: {
|
|
586
|
-
extsecrep?: {
|
|
587
|
-
mta?: MtaProps | null;
|
|
588
|
-
} | null;
|
|
589
|
-
} | null;
|
|
590
|
-
/** Domain to analyze */
|
|
591
|
-
domain?: string;
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
type SubdoReportEntry = {
|
|
445
|
+
interface SpfReportItem {
|
|
446
|
+
status?: string;
|
|
595
447
|
message?: string;
|
|
596
448
|
spfError?: string;
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
449
|
+
}
|
|
450
|
+
interface SpfDetails {
|
|
451
|
+
raw?: string | string[] | null;
|
|
452
|
+
status?: string | null;
|
|
453
|
+
txtExtractedFrom?: string | null;
|
|
454
|
+
report?: SpfReportItem[];
|
|
600
455
|
[key: string]: unknown;
|
|
601
|
-
}
|
|
456
|
+
}
|
|
602
457
|
/**
|
|
603
|
-
*
|
|
458
|
+
* Props for the SignalCardSpfDomain component.
|
|
459
|
+
*
|
|
460
|
+
* Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
|
|
604
461
|
*/
|
|
605
|
-
interface
|
|
462
|
+
interface SignalCardSpfDomainProps extends SignalCardSharedProps {
|
|
606
463
|
/**
|
|
607
|
-
* JMAP data containing SPF
|
|
464
|
+
* JMAP data containing SPF authentication results
|
|
608
465
|
*/
|
|
609
466
|
jmap?: {
|
|
610
467
|
extsecrep?: {
|
|
611
|
-
spf?:
|
|
612
|
-
domain?: string | null;
|
|
613
|
-
report?: SubdoReportEntry[] | null;
|
|
614
|
-
} | null;
|
|
468
|
+
spf?: SpfDetails | null;
|
|
615
469
|
} | null;
|
|
616
470
|
} | null;
|
|
617
471
|
}
|
|
618
472
|
|
|
619
|
-
type
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
473
|
+
type DmarcResult$1 = {
|
|
474
|
+
status?: CardStatus | string | null;
|
|
475
|
+
errors?: string[] | null;
|
|
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;
|
|
623
488
|
} | null;
|
|
489
|
+
interface SignalCardDmarcDomainProps extends SignalCardSharedProps {
|
|
490
|
+
jmap: {
|
|
491
|
+
extsecrep: {
|
|
492
|
+
dmarc: DmarcData;
|
|
493
|
+
originator?: Originator;
|
|
494
|
+
};
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
|
|
624
498
|
/**
|
|
625
499
|
* Component props.
|
|
626
500
|
*/
|
|
627
|
-
interface
|
|
628
|
-
/** JMAP email data containing
|
|
501
|
+
interface SignalCardTlsProps extends SignalCardSharedProps {
|
|
502
|
+
/** JMAP email data containing TLS information */
|
|
629
503
|
jmap: {
|
|
630
|
-
extsecrep:
|
|
631
|
-
|
|
504
|
+
extsecrep: {
|
|
505
|
+
tls?: TlsProps;
|
|
506
|
+
};
|
|
632
507
|
};
|
|
633
|
-
/** Whether this is being used in domain analyzer mode */
|
|
634
|
-
isDomainAnalyzer?: boolean;
|
|
635
508
|
}
|
|
636
509
|
|
|
637
510
|
/**
|
|
638
511
|
* Component props.
|
|
639
512
|
*/
|
|
640
|
-
interface
|
|
641
|
-
/** JMAP data containing
|
|
642
|
-
jmap
|
|
643
|
-
extsecrep
|
|
644
|
-
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
/**
|
|
648
|
-
|
|
513
|
+
interface SignalCardFcrdnsProps extends SignalCardSharedProps {
|
|
514
|
+
/** JMAP data containing EHLO information */
|
|
515
|
+
jmap: {
|
|
516
|
+
extsecrep: {
|
|
517
|
+
ehlo?: EhloProps;
|
|
518
|
+
};
|
|
519
|
+
};
|
|
520
|
+
/** Investigation data with FCrDNS and EHLO check results */
|
|
521
|
+
investigate?: {
|
|
522
|
+
fcrdns?: FcrdnsProps | null;
|
|
523
|
+
ehloCheck?: EhloCheckProps | null;
|
|
524
|
+
};
|
|
649
525
|
}
|
|
650
526
|
|
|
527
|
+
type DkimResult = DkimProps;
|
|
528
|
+
type DmarcResult = DmarcProps | null;
|
|
651
529
|
/**
|
|
652
|
-
*
|
|
530
|
+
* Component props.
|
|
653
531
|
*/
|
|
654
|
-
interface
|
|
655
|
-
/**
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
532
|
+
interface SignalCardDkimProps extends SignalCardSharedProps {
|
|
533
|
+
/** JMAP email data containing DKIM, DMARC information */
|
|
534
|
+
jmap: {
|
|
535
|
+
extsecrep: {
|
|
536
|
+
dkim?: DkimResult | DkimResult[] | null;
|
|
537
|
+
dmarc?: DmarcResult;
|
|
538
|
+
};
|
|
539
|
+
};
|
|
661
540
|
}
|
|
541
|
+
|
|
542
|
+
type SpfData = SpfProps;
|
|
662
543
|
/**
|
|
663
544
|
* Component props.
|
|
664
545
|
*/
|
|
665
|
-
interface
|
|
666
|
-
/** JMAP data containing
|
|
546
|
+
interface SignalCardSpfProps extends SignalCardSharedProps {
|
|
547
|
+
/** JMAP email data containing SPF information */
|
|
667
548
|
jmap: {
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
from?: {
|
|
672
|
-
email?: string | null;
|
|
673
|
-
} | null;
|
|
549
|
+
extsecrep: {
|
|
550
|
+
spf?: SpfData;
|
|
551
|
+
};
|
|
674
552
|
};
|
|
675
553
|
}
|
|
676
554
|
|
|
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
|
+
}
|
|
677
565
|
/**
|
|
678
566
|
* Component props.
|
|
679
567
|
*/
|
|
680
|
-
interface
|
|
568
|
+
interface SignalCardDmarcProps extends SignalCardSharedProps {
|
|
681
569
|
/**
|
|
682
|
-
*
|
|
570
|
+
* JMAP email data containing DMARC, DKIM, SPF information
|
|
683
571
|
*/
|
|
684
|
-
|
|
572
|
+
jmap: SignalCardDmarcJmapProps;
|
|
573
|
+
/**
|
|
574
|
+
* Whether this is being used in domain analyzer mode
|
|
575
|
+
*/
|
|
576
|
+
isDomainAnalyzer?: boolean;
|
|
685
577
|
}
|
|
686
578
|
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
579
|
+
type SignalData = {
|
|
580
|
+
signalType: string;
|
|
581
|
+
jmap?: {
|
|
582
|
+
extsecrep?: Record<string, any>;
|
|
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;
|
|
691
611
|
/**
|
|
692
|
-
*
|
|
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).
|
|
693
621
|
*/
|
|
694
|
-
|
|
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;
|
|
695
629
|
/**
|
|
696
|
-
*
|
|
630
|
+
* Heading text for the priority signals section.
|
|
631
|
+
* Defaults to "Required for the selected compliance profile"
|
|
697
632
|
*/
|
|
698
|
-
|
|
633
|
+
prioritySectionHeading?: string;
|
|
699
634
|
/**
|
|
700
|
-
*
|
|
635
|
+
* Heading text for the remaining signals section.
|
|
636
|
+
* Defaults to "Not required for the selected compliance profile"
|
|
701
637
|
*/
|
|
702
|
-
|
|
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;
|
|
686
|
+
/**
|
|
687
|
+
* Callback for the "Check another email" button in the header.
|
|
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.
|
|
690
|
+
*/
|
|
691
|
+
onCheckAnotherEmail?: () => void;
|
|
692
|
+
/**
|
|
693
|
+
* Render prop for custom action area in the header.
|
|
694
|
+
* Overrides the default "Check another email" button when provided.
|
|
695
|
+
* Only rendered when a checked email is found in the signal data.
|
|
696
|
+
*/
|
|
697
|
+
renderHeaderAction?: () => ReactNode;
|
|
698
|
+
/**
|
|
699
|
+
* Whether to show the "Powered by OnDMARC" branding in the header.
|
|
700
|
+
* @default true
|
|
701
|
+
*/
|
|
702
|
+
showBranding?: boolean;
|
|
703
703
|
}
|
|
704
704
|
|
|
705
705
|
/**
|