@pidgeon-ai/sdk 1.28.0 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/index.d.cts +25 -5
- package/dist/index.d.ts +25 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,21 @@ the two would publish a release for every unrelated product deploy.
|
|
|
7
7
|
Semver applies to **this package's own surface** — the exported names, the
|
|
8
8
|
call shapes, the result shape — not to the API behind it.
|
|
9
9
|
|
|
10
|
+
## 1.30.0 — `authentication.signature`
|
|
11
|
+
|
|
12
|
+
A message carries `authentication.signature`: `pass` when it came from
|
|
13
|
+
another Pidgeon address directly and its signed sender verified against the
|
|
14
|
+
sending domain's key, null otherwise. Additive.
|
|
15
|
+
|
|
16
|
+
## 1.29.0 — The signed-sender records
|
|
17
|
+
|
|
18
|
+
Every domain's DNS records (`domainsGet`, `domainsCreate`, `domainsVerify`)
|
|
19
|
+
gain two optional ones: `signing`, a TXT at `_post`, and `signing_host`, a
|
|
20
|
+
CNAME at `post`. With both connected, mail from the domain carries a
|
|
21
|
+
signature receivers can check against the domain's published keys. Every
|
|
22
|
+
record gains `optional`, true for these two; they have their own `status`
|
|
23
|
+
and never count towards whether the domain is configured. Additive.
|
|
24
|
+
|
|
10
25
|
## 1.28.0 — DNS hosts for subdomains, and why a record is waiting
|
|
11
26
|
|
|
12
27
|
Every DNS record (`domainsGet`, `domainsCreate`, `domainsVerify`) gains
|
package/dist/index.d.cts
CHANGED
|
@@ -489,12 +489,16 @@ type Message = {
|
|
|
489
489
|
[key: string]: string;
|
|
490
490
|
};
|
|
491
491
|
/**
|
|
492
|
-
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged.
|
|
492
|
+
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged. A `From:` is the sending domain's own word when `dmarc` or `signature` is `pass`.
|
|
493
493
|
*/
|
|
494
494
|
authentication: {
|
|
495
495
|
spf: string | null;
|
|
496
496
|
dkim: string | null;
|
|
497
497
|
dmarc: string | null;
|
|
498
|
+
/**
|
|
499
|
+
* `pass` when the message came from another Pidgeon address directly, and its signed sender verified against the sending domain's published key. Null on mail that came through SMTP, which DMARC speaks for instead.
|
|
500
|
+
*/
|
|
501
|
+
signature: string | null;
|
|
498
502
|
};
|
|
499
503
|
/**
|
|
500
504
|
* Who this message says it is from. A Pidgeon sender declares it on every message it sends; mail from ordinary email has only the address.
|
|
@@ -705,12 +709,16 @@ type AwaitedMessage = {
|
|
|
705
709
|
[key: string]: string;
|
|
706
710
|
};
|
|
707
711
|
/**
|
|
708
|
-
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged.
|
|
712
|
+
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged. A `From:` is the sending domain's own word when `dmarc` or `signature` is `pass`.
|
|
709
713
|
*/
|
|
710
714
|
authentication: {
|
|
711
715
|
spf: string | null;
|
|
712
716
|
dkim: string | null;
|
|
713
717
|
dmarc: string | null;
|
|
718
|
+
/**
|
|
719
|
+
* `pass` when the message came from another Pidgeon address directly, and its signed sender verified against the sending domain's published key. Null on mail that came through SMTP, which DMARC speaks for instead.
|
|
720
|
+
*/
|
|
721
|
+
signature: string | null;
|
|
714
722
|
};
|
|
715
723
|
/**
|
|
716
724
|
* Who this message says it is from. A Pidgeon sender declares it on every message it sends; mail from ordinary email has only the address.
|
|
@@ -1302,7 +1310,7 @@ type DomainDetail = {
|
|
|
1302
1310
|
priority: number | null;
|
|
1303
1311
|
status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
|
|
1304
1312
|
/**
|
|
1305
|
-
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1313
|
+
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1306
1314
|
*/
|
|
1307
1315
|
state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
|
|
1308
1316
|
found: string | null;
|
|
@@ -1310,6 +1318,10 @@ type DomainDetail = {
|
|
|
1310
1318
|
* Where `found` was read, when that was not `fqdn`.
|
|
1311
1319
|
*/
|
|
1312
1320
|
found_at: string | null;
|
|
1321
|
+
/**
|
|
1322
|
+
* Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
|
|
1323
|
+
*/
|
|
1324
|
+
optional: boolean;
|
|
1313
1325
|
description: string;
|
|
1314
1326
|
checked_at: string | null;
|
|
1315
1327
|
}>;
|
|
@@ -1338,7 +1350,7 @@ type DnsRecord = {
|
|
|
1338
1350
|
priority: number | null;
|
|
1339
1351
|
status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
|
|
1340
1352
|
/**
|
|
1341
|
-
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1353
|
+
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1342
1354
|
*/
|
|
1343
1355
|
state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
|
|
1344
1356
|
found: string | null;
|
|
@@ -1346,6 +1358,10 @@ type DnsRecord = {
|
|
|
1346
1358
|
* Where `found` was read, when that was not `fqdn`.
|
|
1347
1359
|
*/
|
|
1348
1360
|
found_at: string | null;
|
|
1361
|
+
/**
|
|
1362
|
+
* Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
|
|
1363
|
+
*/
|
|
1364
|
+
optional: boolean;
|
|
1349
1365
|
description: string;
|
|
1350
1366
|
checked_at: string | null;
|
|
1351
1367
|
};
|
|
@@ -1376,7 +1392,7 @@ type Verification = {
|
|
|
1376
1392
|
priority: number | null;
|
|
1377
1393
|
status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
|
|
1378
1394
|
/**
|
|
1379
|
-
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1395
|
+
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1380
1396
|
*/
|
|
1381
1397
|
state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
|
|
1382
1398
|
found: string | null;
|
|
@@ -1384,6 +1400,10 @@ type Verification = {
|
|
|
1384
1400
|
* Where `found` was read, when that was not `fqdn`.
|
|
1385
1401
|
*/
|
|
1386
1402
|
found_at: string | null;
|
|
1403
|
+
/**
|
|
1404
|
+
* Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
|
|
1405
|
+
*/
|
|
1406
|
+
optional: boolean;
|
|
1387
1407
|
description: string;
|
|
1388
1408
|
checked_at: string | null;
|
|
1389
1409
|
}>;
|
package/dist/index.d.ts
CHANGED
|
@@ -489,12 +489,16 @@ type Message = {
|
|
|
489
489
|
[key: string]: string;
|
|
490
490
|
};
|
|
491
491
|
/**
|
|
492
|
-
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged.
|
|
492
|
+
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged. A `From:` is the sending domain's own word when `dmarc` or `signature` is `pass`.
|
|
493
493
|
*/
|
|
494
494
|
authentication: {
|
|
495
495
|
spf: string | null;
|
|
496
496
|
dkim: string | null;
|
|
497
497
|
dmarc: string | null;
|
|
498
|
+
/**
|
|
499
|
+
* `pass` when the message came from another Pidgeon address directly, and its signed sender verified against the sending domain's published key. Null on mail that came through SMTP, which DMARC speaks for instead.
|
|
500
|
+
*/
|
|
501
|
+
signature: string | null;
|
|
498
502
|
};
|
|
499
503
|
/**
|
|
500
504
|
* Who this message says it is from. A Pidgeon sender declares it on every message it sends; mail from ordinary email has only the address.
|
|
@@ -705,12 +709,16 @@ type AwaitedMessage = {
|
|
|
705
709
|
[key: string]: string;
|
|
706
710
|
};
|
|
707
711
|
/**
|
|
708
|
-
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged.
|
|
712
|
+
* What the receiving transport said about the sending domain. Null means it did not report, not that the check failed — normal on outbound, and on inbound it is the difference between unknown and forged. A `From:` is the sending domain's own word when `dmarc` or `signature` is `pass`.
|
|
709
713
|
*/
|
|
710
714
|
authentication: {
|
|
711
715
|
spf: string | null;
|
|
712
716
|
dkim: string | null;
|
|
713
717
|
dmarc: string | null;
|
|
718
|
+
/**
|
|
719
|
+
* `pass` when the message came from another Pidgeon address directly, and its signed sender verified against the sending domain's published key. Null on mail that came through SMTP, which DMARC speaks for instead.
|
|
720
|
+
*/
|
|
721
|
+
signature: string | null;
|
|
714
722
|
};
|
|
715
723
|
/**
|
|
716
724
|
* Who this message says it is from. A Pidgeon sender declares it on every message it sends; mail from ordinary email has only the address.
|
|
@@ -1302,7 +1310,7 @@ type DomainDetail = {
|
|
|
1302
1310
|
priority: number | null;
|
|
1303
1311
|
status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
|
|
1304
1312
|
/**
|
|
1305
|
-
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1313
|
+
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1306
1314
|
*/
|
|
1307
1315
|
state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
|
|
1308
1316
|
found: string | null;
|
|
@@ -1310,6 +1318,10 @@ type DomainDetail = {
|
|
|
1310
1318
|
* Where `found` was read, when that was not `fqdn`.
|
|
1311
1319
|
*/
|
|
1312
1320
|
found_at: string | null;
|
|
1321
|
+
/**
|
|
1322
|
+
* Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
|
|
1323
|
+
*/
|
|
1324
|
+
optional: boolean;
|
|
1313
1325
|
description: string;
|
|
1314
1326
|
checked_at: string | null;
|
|
1315
1327
|
}>;
|
|
@@ -1338,7 +1350,7 @@ type DnsRecord = {
|
|
|
1338
1350
|
priority: number | null;
|
|
1339
1351
|
status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
|
|
1340
1352
|
/**
|
|
1341
|
-
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1353
|
+
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1342
1354
|
*/
|
|
1343
1355
|
state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
|
|
1344
1356
|
found: string | null;
|
|
@@ -1346,6 +1358,10 @@ type DnsRecord = {
|
|
|
1346
1358
|
* Where `found` was read, when that was not `fqdn`.
|
|
1347
1359
|
*/
|
|
1348
1360
|
found_at: string | null;
|
|
1361
|
+
/**
|
|
1362
|
+
* Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
|
|
1363
|
+
*/
|
|
1364
|
+
optional: boolean;
|
|
1349
1365
|
description: string;
|
|
1350
1366
|
checked_at: string | null;
|
|
1351
1367
|
};
|
|
@@ -1376,7 +1392,7 @@ type Verification = {
|
|
|
1376
1392
|
priority: number | null;
|
|
1377
1393
|
status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
|
|
1378
1394
|
/**
|
|
1379
|
-
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1395
|
+
* Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
|
|
1380
1396
|
*/
|
|
1381
1397
|
state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
|
|
1382
1398
|
found: string | null;
|
|
@@ -1384,6 +1400,10 @@ type Verification = {
|
|
|
1384
1400
|
* Where `found` was read, when that was not `fqdn`.
|
|
1385
1401
|
*/
|
|
1386
1402
|
found_at: string | null;
|
|
1403
|
+
/**
|
|
1404
|
+
* Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
|
|
1405
|
+
*/
|
|
1406
|
+
optional: boolean;
|
|
1387
1407
|
description: string;
|
|
1388
1408
|
checked_at: string | null;
|
|
1389
1409
|
}>;
|