@sempdev/semp 0.5.2 → 0.5.6
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/dist/brief/address.d.ts +1 -1
- package/dist/brief/address.js +1 -1
- package/dist/brief/brief.d.ts +1 -1
- package/dist/brief/brief.js +1 -1
- package/dist/canonical/marshal.d.ts +2 -2
- package/dist/canonical/marshal.js +2 -2
- package/dist/closure/driver.d.ts +2 -2
- package/dist/closure/driver.js +1 -1
- package/dist/crypto/aead.d.ts +2 -2
- package/dist/crypto/aead.js +2 -2
- package/dist/crypto/kdf.d.ts +1 -1
- package/dist/crypto/kdf.js +1 -1
- package/dist/crypto/mac.d.ts +1 -1
- package/dist/crypto/mac.js +1 -1
- package/dist/delivery/ack.d.ts +5 -5
- package/dist/delivery/ack.js +6 -6
- package/dist/delivery/blocklist.d.ts +1 -1
- package/dist/delivery/blocklist.js +2 -2
- package/dist/delivery/device_sync.d.ts +26 -0
- package/dist/delivery/device_sync.d.ts.map +1 -0
- package/dist/delivery/device_sync.js +18 -0
- package/dist/delivery/device_sync.js.map +1 -0
- package/dist/delivery/disposition.d.ts +1 -1
- package/dist/delivery/fetch.d.ts +1 -1
- package/dist/delivery/fetch.js +1 -1
- package/dist/delivery/forwarder.d.ts +9 -1
- package/dist/delivery/forwarder.d.ts.map +1 -1
- package/dist/delivery/forwarder.js +1 -1
- package/dist/delivery/forwarder.js.map +1 -1
- package/dist/delivery/inbox.d.ts +2 -2
- package/dist/delivery/inbox.js +2 -2
- package/dist/delivery/index.d.ts +4 -0
- package/dist/delivery/index.d.ts.map +1 -1
- package/dist/delivery/index.js +4 -0
- package/dist/delivery/index.js.map +1 -1
- package/dist/delivery/persistent_silent.d.ts +70 -0
- package/dist/delivery/persistent_silent.d.ts.map +1 -0
- package/dist/delivery/persistent_silent.js +117 -0
- package/dist/delivery/persistent_silent.js.map +1 -0
- package/dist/delivery/pipeline.d.ts +4 -4
- package/dist/delivery/pipeline.d.ts.map +1 -1
- package/dist/delivery/pipeline.js +10 -3
- package/dist/delivery/pipeline.js.map +1 -1
- package/dist/delivery/policy_state.d.ts +2 -2
- package/dist/delivery/policy_state.js +4 -4
- package/dist/delivery/receipt.d.ts +3 -3
- package/dist/delivery/receipt.js +3 -3
- package/dist/delivery/receipt_store.d.ts +1 -1
- package/dist/delivery/receipt_store.js +1 -1
- package/dist/delivery/retry.d.ts +2 -2
- package/dist/delivery/retry.js +2 -2
- package/dist/delivery/scheduler.d.ts +1 -1
- package/dist/delivery/scheduler.js +1 -1
- package/dist/delivery/stage_partition.d.ts +1 -1
- package/dist/delivery/stage_partition.js +1 -1
- package/dist/delivery/staged_runner.d.ts +1 -1
- package/dist/delivery/staged_runner.js +2 -2
- package/dist/delivery/status_message.d.ts +75 -0
- package/dist/delivery/status_message.d.ts.map +1 -0
- package/dist/delivery/status_message.js +109 -0
- package/dist/delivery/status_message.js.map +1 -0
- package/dist/delivery/upgrade_signal.d.ts +48 -0
- package/dist/delivery/upgrade_signal.d.ts.map +1 -0
- package/dist/delivery/upgrade_signal.js +48 -0
- package/dist/delivery/upgrade_signal.js.map +1 -0
- package/dist/discovery/configuration.d.ts +20 -1
- package/dist/discovery/configuration.d.ts.map +1 -1
- package/dist/discovery/configuration.js.map +1 -1
- package/dist/discovery/dns.d.ts +27 -1
- package/dist/discovery/dns.d.ts.map +1 -1
- package/dist/discovery/dns.js +37 -0
- package/dist/discovery/dns.js.map +1 -1
- package/dist/discovery/index.d.ts +2 -2
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/partition.d.ts +1 -1
- package/dist/discovery/partition.js +1 -1
- package/dist/discovery/resolver.d.ts +5 -5
- package/dist/discovery/resolver.js +5 -5
- package/dist/discovery/txt.d.ts +1 -1
- package/dist/discovery/txt.js +1 -1
- package/dist/enclosure/forwarding.d.ts +1 -1
- package/dist/enclosure/forwarding.js +1 -1
- package/dist/envelope/buckets.d.ts +2 -2
- package/dist/envelope/buckets.js +2 -2
- package/dist/envelope/compose.d.ts +2 -2
- package/dist/envelope/compose.js +4 -4
- package/dist/envelope/encode.d.ts +2 -2
- package/dist/envelope/encode.js +3 -3
- package/dist/envelope/open_verified.d.ts +1 -1
- package/dist/envelope/open_verified.js +1 -1
- package/dist/envelope/padding.d.ts +2 -2
- package/dist/envelope/padding.js +3 -3
- package/dist/envelope/verify.d.ts +1 -1
- package/dist/envelope/verify.js +1 -1
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +1 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/limits.d.ts +2 -2
- package/dist/extensions/limits.js +2 -2
- package/dist/extensions/validation_failure.d.ts +48 -0
- package/dist/extensions/validation_failure.d.ts.map +1 -0
- package/dist/extensions/validation_failure.js +25 -0
- package/dist/extensions/validation_failure.js.map +1 -0
- package/dist/handshake/abort.d.ts +1 -1
- package/dist/handshake/abort.js +1 -1
- package/dist/handshake/client_state.d.ts +5 -5
- package/dist/handshake/client_state.js +5 -5
- package/dist/handshake/confirm.d.ts +2 -2
- package/dist/handshake/confirm.js +2 -2
- package/dist/handshake/driver.d.ts +2 -2
- package/dist/handshake/driver.js +1 -1
- package/dist/handshake/federation.d.ts +27 -9
- package/dist/handshake/federation.d.ts.map +1 -1
- package/dist/handshake/federation.js +69 -17
- package/dist/handshake/federation.js.map +1 -1
- package/dist/handshake/first_contact.d.ts +1 -1
- package/dist/handshake/first_contact.js +1 -1
- package/dist/handshake/identity.d.ts +1 -1
- package/dist/handshake/identity.js +1 -1
- package/dist/handshake/index.d.ts +1 -1
- package/dist/handshake/index.d.ts.map +1 -1
- package/dist/handshake/index.js.map +1 -1
- package/dist/handshake/pow.js +1 -1
- package/dist/handshake/server_state.d.ts +3 -3
- package/dist/handshake/server_state.js +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/keys/compromise.d.ts +2 -2
- package/dist/keys/compromise.js +1 -1
- package/dist/keys/device_certificate.d.ts +3 -3
- package/dist/keys/device_certificate.js +4 -4
- package/dist/keys/key_revocation.d.ts +2 -2
- package/dist/keys/key_revocation.js +1 -1
- package/dist/keys/request.d.ts +17 -3
- package/dist/keys/request.d.ts.map +1 -1
- package/dist/keys/request.js.map +1 -1
- package/dist/keys/sign.d.ts +7 -2
- package/dist/keys/sign.d.ts.map +1 -1
- package/dist/keys/sign.js +10 -3
- package/dist/keys/sign.js.map +1 -1
- package/dist/keys/signed.d.ts +3 -3
- package/dist/keys/signed.js +3 -3
- package/dist/keys/store.js +1 -1
- package/dist/largeattachment/crypto.d.ts +1 -1
- package/dist/largeattachment/crypto.js +2 -2
- package/dist/largeattachment/upload.d.ts +3 -3
- package/dist/largeattachment/upload.js +1 -1
- package/dist/migration/index.d.ts +1 -1
- package/dist/migration/index.d.ts.map +1 -1
- package/dist/migration/index.js +1 -1
- package/dist/migration/index.js.map +1 -1
- package/dist/migration/lockout.d.ts +2 -2
- package/dist/migration/lockout.js +2 -2
- package/dist/migration/migration.d.ts +6 -4
- package/dist/migration/migration.d.ts.map +1 -1
- package/dist/migration/migration.js +3 -3
- package/dist/migration/migration.js.map +1 -1
- package/dist/migration/notice.d.ts +31 -19
- package/dist/migration/notice.d.ts.map +1 -1
- package/dist/migration/notice.js +37 -71
- package/dist/migration/notice.js.map +1 -1
- package/dist/migration/orchestrate.d.ts +10 -10
- package/dist/migration/orchestrate.d.ts.map +1 -1
- package/dist/migration/orchestrate.js +23 -23
- package/dist/migration/orchestrate.js.map +1 -1
- package/dist/migration/sign.js +9 -9
- package/dist/migration/sign.js.map +1 -1
- package/dist/migration/types.d.ts +35 -29
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/migration/types.js +5 -7
- package/dist/migration/types.js.map +1 -1
- package/dist/recovery/bundle_store.js +1 -1
- package/dist/recovery/sign.js +3 -3
- package/dist/recovery/types.d.ts +3 -3
- package/dist/reputation/abuse_report.d.ts +3 -3
- package/dist/reputation/abuse_report.js +2 -2
- package/dist/reputation/eligibility.d.ts +44 -0
- package/dist/reputation/eligibility.d.ts.map +1 -0
- package/dist/reputation/eligibility.js +58 -0
- package/dist/reputation/eligibility.js.map +1 -0
- package/dist/reputation/evidence.d.ts +47 -0
- package/dist/reputation/evidence.d.ts.map +1 -0
- package/dist/reputation/evidence.js +117 -0
- package/dist/reputation/evidence.js.map +1 -0
- package/dist/reputation/gossip_fetch.d.ts +2 -2
- package/dist/reputation/gossip_fetch.js +1 -1
- package/dist/reputation/index.d.ts +4 -1
- package/dist/reputation/index.d.ts.map +1 -1
- package/dist/reputation/index.js +4 -1
- package/dist/reputation/index.js.map +1 -1
- package/dist/reputation/pow.d.ts +1 -1
- package/dist/reputation/pow.js +1 -1
- package/dist/reputation/references.d.ts +51 -0
- package/dist/reputation/references.d.ts.map +1 -0
- package/dist/reputation/references.js +95 -0
- package/dist/reputation/references.js.map +1 -0
- package/dist/reputation/sign.d.ts +1 -1
- package/dist/reputation/sign.js +2 -2
- package/dist/reputation/types.d.ts +46 -2
- package/dist/reputation/types.d.ts.map +1 -1
- package/dist/reputation/types.js +14 -0
- package/dist/reputation/types.js.map +1 -1
- package/dist/reputation/whois.d.ts +1 -1
- package/dist/reputation/whois.js +1 -1
- package/dist/seal/wrap.d.ts +2 -2
- package/dist/seal/wrap.js +4 -4
- package/dist/session/dispatcher.d.ts +3 -3
- package/dist/session/dispatcher.js +1 -1
- package/dist/session/rekey_seal.d.ts +3 -3
- package/dist/session/rekey_seal.js +3 -3
- package/dist/session/session.d.ts +3 -3
- package/dist/session/session.js +3 -3
- package/dist/transparency/log.d.ts +1 -1
- package/dist/transparency/log.js +2 -2
- package/dist/transparency/types.d.ts +2 -2
- package/dist/transparency/types.js +1 -1
- package/dist/transport/h2.d.ts +33 -12
- package/dist/transport/h2.d.ts.map +1 -1
- package/dist/transport/h2.js +40 -13
- package/dist/transport/h2.js.map +1 -1
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +1 -1
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/memory.js +1 -1
- package/dist/transport/ws.d.ts +1 -1
- package/dist/transport/ws.js +1 -1
- package/package.json +1 -1
package/dist/brief/address.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare function addressDomain(addr: string): string;
|
|
|
38
38
|
/**
|
|
39
39
|
* Validate `addr` against the canonical wire form per §2.3:
|
|
40
40
|
*
|
|
41
|
-
* - Non-empty, valid UTF-8 (always true for JS strings
|
|
41
|
+
* - Non-empty, valid UTF-8 (always true for JS strings - included
|
|
42
42
|
* for symmetry with semp-go).
|
|
43
43
|
* - Composed length ≤ {@link MaxAddressLength} bytes.
|
|
44
44
|
* - No control characters (C0, DEL, C1).
|
package/dist/brief/address.js
CHANGED
|
@@ -51,7 +51,7 @@ export function addressDomain(addr) {
|
|
|
51
51
|
/**
|
|
52
52
|
* Validate `addr` against the canonical wire form per §2.3:
|
|
53
53
|
*
|
|
54
|
-
* - Non-empty, valid UTF-8 (always true for JS strings
|
|
54
|
+
* - Non-empty, valid UTF-8 (always true for JS strings - included
|
|
55
55
|
* for symmetry with semp-go).
|
|
56
56
|
* - Composed length ≤ {@link MaxAddressLength} bytes.
|
|
57
57
|
* - No control characters (C0, DEL, C1).
|
package/dist/brief/brief.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export interface Brief {
|
|
|
57
57
|
*
|
|
58
58
|
* Returned copies:
|
|
59
59
|
*
|
|
60
|
-
* 1. If `b.bcc` is empty or undefined, returns `[b]`
|
|
60
|
+
* 1. If `b.bcc` is empty or undefined, returns `[b]` - a single
|
|
61
61
|
* copy, returned unchanged.
|
|
62
62
|
*
|
|
63
63
|
* 2. Otherwise, returns `b.bcc.length + 1` elements:
|
package/dist/brief/brief.js
CHANGED
|
@@ -25,11 +25,11 @@ export declare function marshal(v: unknown): Uint8Array;
|
|
|
25
25
|
/**
|
|
26
26
|
* Apply an in-place elision callback to a deep copy of `v`, then
|
|
27
27
|
* canonicalize. The elider can mutate `map[string]any` / `any[]`
|
|
28
|
-
* structures freely
|
|
28
|
+
* structures freely - the original is untouched.
|
|
29
29
|
*
|
|
30
30
|
* Use case: envelope canonicalization sets `seal.signature` and
|
|
31
31
|
* `seal.session_mac` to "", omits `postmark.hop_count`, omits
|
|
32
|
-
* `padding`
|
|
32
|
+
* `padding` - all by mutating the deep copy before serialization.
|
|
33
33
|
*/
|
|
34
34
|
export declare function marshalWithElision(v: unknown, elide: (clone: unknown) => void): Uint8Array;
|
|
35
35
|
//# sourceMappingURL=marshal.d.ts.map
|
|
@@ -35,11 +35,11 @@ export function marshal(v) {
|
|
|
35
35
|
/**
|
|
36
36
|
* Apply an in-place elision callback to a deep copy of `v`, then
|
|
37
37
|
* canonicalize. The elider can mutate `map[string]any` / `any[]`
|
|
38
|
-
* structures freely
|
|
38
|
+
* structures freely - the original is untouched.
|
|
39
39
|
*
|
|
40
40
|
* Use case: envelope canonicalization sets `seal.signature` and
|
|
41
41
|
* `seal.session_mac` to "", omits `postmark.hop_count`, omits
|
|
42
|
-
* `padding`
|
|
42
|
+
* `padding` - all by mutating the deep copy before serialization.
|
|
43
43
|
*/
|
|
44
44
|
export function marshalWithElision(v, elide) {
|
|
45
45
|
const raw = JSON.stringify(v);
|
package/dist/closure/driver.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface DriverConfig {
|
|
|
29
29
|
* - `already_pending`: a request is already pending for this
|
|
30
30
|
* user_id; the §2.4 rule rejects double-requests.
|
|
31
31
|
* - `not_pending`: a cancel arrived for an account with no
|
|
32
|
-
* pending request
|
|
32
|
+
* pending request - the spec treats this as a no-op success.
|
|
33
33
|
* - `invalid`: the record failed structural validation.
|
|
34
34
|
*/
|
|
35
35
|
export type SubmitResult = {
|
|
@@ -54,7 +54,7 @@ export declare class Driver {
|
|
|
54
54
|
constructor(cfg: DriverConfig);
|
|
55
55
|
/**
|
|
56
56
|
* Apply `record` to the store. Caller MUST verify the record's
|
|
57
|
-
* signature and authority (§2.3
|
|
57
|
+
* signature and authority (§2.3 - the issuing device must be a
|
|
58
58
|
* full-access device of the account) BEFORE calling submit.
|
|
59
59
|
*/
|
|
60
60
|
submit(record: ClosureRecord): Promise<SubmitResult>;
|
package/dist/closure/driver.js
CHANGED
|
@@ -22,7 +22,7 @@ export class Driver {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Apply `record` to the store. Caller MUST verify the record's
|
|
25
|
-
* signature and authority (§2.3
|
|
25
|
+
* signature and authority (§2.3 - the issuing device must be a
|
|
26
26
|
* full-access device of the account) BEFORE calling submit.
|
|
27
27
|
*/
|
|
28
28
|
async submit(record) {
|
package/dist/crypto/aead.d.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* The two currently defined algorithm suites use different AEAD
|
|
5
5
|
* variants:
|
|
6
6
|
*
|
|
7
|
-
* - `x25519-chacha20-poly1305`
|
|
8
|
-
* - `pq-kyber768-x25519`
|
|
7
|
+
* - `x25519-chacha20-poly1305` - ChaCha20-Poly1305, 12-byte nonce.
|
|
8
|
+
* - `pq-kyber768-x25519` - XChaCha20-Poly1305, 24-byte nonce.
|
|
9
9
|
*
|
|
10
10
|
* The sealing flow is identical in both cases: AEAD.Seal(key, nonce,
|
|
11
11
|
* plaintext, aad) -> ciphertext || tag. Returns a single byte slice
|
package/dist/crypto/aead.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* The two currently defined algorithm suites use different AEAD
|
|
5
5
|
* variants:
|
|
6
6
|
*
|
|
7
|
-
* - `x25519-chacha20-poly1305`
|
|
8
|
-
* - `pq-kyber768-x25519`
|
|
7
|
+
* - `x25519-chacha20-poly1305` - ChaCha20-Poly1305, 12-byte nonce.
|
|
8
|
+
* - `pq-kyber768-x25519` - XChaCha20-Poly1305, 24-byte nonce.
|
|
9
9
|
*
|
|
10
10
|
* The sealing flow is identical in both cases: AEAD.Seal(key, nonce,
|
|
11
11
|
* plaintext, aad) -> ciphertext || tag. Returns a single byte slice
|
package/dist/crypto/kdf.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
/**
|
|
12
12
|
* Per-key HKDF info labels for the five session keys derived from
|
|
13
13
|
* the initial-handshake PRK. Per VECTORS.md §2.2, the rekey
|
|
14
|
-
* derivation reuses these same labels
|
|
14
|
+
* derivation reuses these same labels - cross-context separation
|
|
15
15
|
* comes from the salt change (rekey nonces vs handshake nonces),
|
|
16
16
|
* not from a different label namespace.
|
|
17
17
|
*/
|
package/dist/crypto/kdf.js
CHANGED
|
@@ -13,7 +13,7 @@ import { sha512 } from "@noble/hashes/sha2.js";
|
|
|
13
13
|
/**
|
|
14
14
|
* Per-key HKDF info labels for the five session keys derived from
|
|
15
15
|
* the initial-handshake PRK. Per VECTORS.md §2.2, the rekey
|
|
16
|
-
* derivation reuses these same labels
|
|
16
|
+
* derivation reuses these same labels - cross-context separation
|
|
17
17
|
* comes from the salt change (rekey nonces vs handshake nonces),
|
|
18
18
|
* not from a different label namespace.
|
|
19
19
|
*/
|
package/dist/crypto/mac.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
/**
|
|
8
8
|
* Compute HMAC-SHA-256 over `message` keyed by `key`. The output is
|
|
9
|
-
* always 32 bytes
|
|
9
|
+
* always 32 bytes - the same width every SEMP MAC field expects.
|
|
10
10
|
*/
|
|
11
11
|
export declare function computeMAC(key: Uint8Array, message: Uint8Array): Uint8Array;
|
|
12
12
|
/**
|
package/dist/crypto/mac.js
CHANGED
|
@@ -8,7 +8,7 @@ import { hmac } from "@noble/hashes/hmac.js";
|
|
|
8
8
|
import { sha256 } from "@noble/hashes/sha2.js";
|
|
9
9
|
/**
|
|
10
10
|
* Compute HMAC-SHA-256 over `message` keyed by `key`. The output is
|
|
11
|
-
* always 32 bytes
|
|
11
|
+
* always 32 bytes - the same width every SEMP MAC field expects.
|
|
12
12
|
*/
|
|
13
13
|
export function computeMAC(key, message) {
|
|
14
14
|
return hmac(sha256, key, message);
|
package/dist/delivery/ack.d.ts
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* A recipient server returns exactly one of three acknowledgments
|
|
5
5
|
* for every envelope delivery attempt:
|
|
6
6
|
*
|
|
7
|
-
* - `delivered`
|
|
7
|
+
* - `delivered` - accepted; carries a signed
|
|
8
8
|
* {@link "./receipt".DeliveryReceipt} per §1.1.1, MAY include a
|
|
9
9
|
* {@link RecipientStatus} per §1.6 if the sender matches the
|
|
10
10
|
* recipient's visibility rules.
|
|
11
|
-
* - `rejected`
|
|
12
|
-
* - `silent`
|
|
11
|
+
* - `rejected` - explicitly refused with a reason code per §1.2.
|
|
12
|
+
* - `silent` - no response within the sender's timeout window
|
|
13
13
|
* per §1.3. The wire form for silent is "no response sent at
|
|
14
14
|
* all"; this module exposes a constant value the sending server
|
|
15
15
|
* uses internally to record the outcome on its own queue state.
|
|
@@ -66,7 +66,7 @@ export declare const MaxStatusMessageBytes = 256;
|
|
|
66
66
|
* - acknowledgment="rejected" with `reason_code` populated and an
|
|
67
67
|
* optional `reason`.
|
|
68
68
|
*
|
|
69
|
-
* The `silent` outcome is not represented on the wire
|
|
69
|
+
* The `silent` outcome is not represented on the wire - the
|
|
70
70
|
* recipient simply does not respond.
|
|
71
71
|
*/
|
|
72
72
|
export interface DeliveryAck {
|
|
@@ -105,7 +105,7 @@ export interface SenderIdentity {
|
|
|
105
105
|
* - `nobody` (default): never disclose, regardless of the allow list.
|
|
106
106
|
* - `everyone`: always disclose, regardless of the allow list.
|
|
107
107
|
* - `domains` / `servers` / `users`: walk the allow list looking for
|
|
108
|
-
* a match. The mode constrains which entry kinds are honored
|
|
108
|
+
* a match. The mode constrains which entry kinds are honored - in
|
|
109
109
|
* `domains` mode only entries with `type: "domain"`, etc.
|
|
110
110
|
* Mismatched entries in the allow list are ignored.
|
|
111
111
|
*
|
package/dist/delivery/ack.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* A recipient server returns exactly one of three acknowledgments
|
|
5
5
|
* for every envelope delivery attempt:
|
|
6
6
|
*
|
|
7
|
-
* - `delivered`
|
|
7
|
+
* - `delivered` - accepted; carries a signed
|
|
8
8
|
* {@link "./receipt".DeliveryReceipt} per §1.1.1, MAY include a
|
|
9
9
|
* {@link RecipientStatus} per §1.6 if the sender matches the
|
|
10
10
|
* recipient's visibility rules.
|
|
11
|
-
* - `rejected`
|
|
12
|
-
* - `silent`
|
|
11
|
+
* - `rejected` - explicitly refused with a reason code per §1.2.
|
|
12
|
+
* - `silent` - no response within the sender's timeout window
|
|
13
13
|
* per §1.3. The wire form for silent is "no response sent at
|
|
14
14
|
* all"; this module exposes a constant value the sending server
|
|
15
15
|
* uses internally to record the outcome on its own queue state.
|
|
@@ -55,7 +55,7 @@ export function buildRejectedAck(reasonCode, reason) {
|
|
|
55
55
|
* - `nobody` (default): never disclose, regardless of the allow list.
|
|
56
56
|
* - `everyone`: always disclose, regardless of the allow list.
|
|
57
57
|
* - `domains` / `servers` / `users`: walk the allow list looking for
|
|
58
|
-
* a match. The mode constrains which entry kinds are honored
|
|
58
|
+
* a match. The mode constrains which entry kinds are honored - in
|
|
59
59
|
* `domains` mode only entries with `type: "domain"`, etc.
|
|
60
60
|
* Mismatched entries in the allow list are ignored.
|
|
61
61
|
*
|
|
@@ -79,7 +79,7 @@ export function matchVisibility(visibility, sender) {
|
|
|
79
79
|
case "users":
|
|
80
80
|
break;
|
|
81
81
|
default:
|
|
82
|
-
// Unknown mode
|
|
82
|
+
// Unknown mode - fail closed.
|
|
83
83
|
return false;
|
|
84
84
|
}
|
|
85
85
|
const senderAddress = (sender.address ?? "").toLowerCase();
|
|
@@ -116,7 +116,7 @@ export function matchVisibility(visibility, sender) {
|
|
|
116
116
|
}
|
|
117
117
|
break;
|
|
118
118
|
default:
|
|
119
|
-
// Unknown entry type
|
|
119
|
+
// Unknown entry type - skip.
|
|
120
120
|
break;
|
|
121
121
|
}
|
|
122
122
|
}
|
|
@@ -63,7 +63,7 @@ export interface BlockListSender {
|
|
|
63
63
|
* `user > server > domain`.
|
|
64
64
|
*
|
|
65
65
|
* Entries past `expires_at` are skipped (no clock-skew tolerance
|
|
66
|
-
* applied here
|
|
66
|
+
* applied here - callers that want the §4.4 grace window evaluate
|
|
67
67
|
* expiry themselves).
|
|
68
68
|
*
|
|
69
69
|
* All comparisons are case-insensitive.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* `user > server > domain`.
|
|
15
15
|
*
|
|
16
16
|
* Entries past `expires_at` are skipped (no clock-skew tolerance
|
|
17
|
-
* applied here
|
|
17
|
+
* applied here - callers that want the §4.4 grace window evaluate
|
|
18
18
|
* expiry themselves).
|
|
19
19
|
*
|
|
20
20
|
* All comparisons are case-insensitive.
|
|
@@ -66,7 +66,7 @@ export function matchBlockList(list, sender, now = new Date()) {
|
|
|
66
66
|
rank = RANK_DOMAIN;
|
|
67
67
|
break;
|
|
68
68
|
default:
|
|
69
|
-
continue; // unknown entity type
|
|
69
|
+
continue; // unknown entity type - forward-compat ignore
|
|
70
70
|
}
|
|
71
71
|
if (rank > bestRank) {
|
|
72
72
|
bestRank = rank;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device-sync extension marker per draft-gokce-semp-client §5.6.
|
|
3
|
+
*
|
|
4
|
+
* Every sync envelope MUST carry the marker in `brief.extensions`
|
|
5
|
+
* with `required: true`. The marker's `data` object carries a
|
|
6
|
+
* single `kind` field that names the sync category; each sync
|
|
7
|
+
* kind declares the `kind` value it produces.
|
|
8
|
+
*
|
|
9
|
+
* The marker lives in the brief so the home server can apply
|
|
10
|
+
* correct policy without decrypting the enclosure. Clients
|
|
11
|
+
* receiving an envelope with this marker MUST NOT surface the
|
|
12
|
+
* envelope as ordinary correspondence in any mailbox view.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
/** Namespaced identifier of the device-sync marker extension. */
|
|
17
|
+
export declare const DeviceSyncExtensionID = "semp.dev/device-sync";
|
|
18
|
+
/** Content of the device-sync extension's `data` field per §5.6. */
|
|
19
|
+
export interface DeviceSyncMarkerData {
|
|
20
|
+
/**
|
|
21
|
+
* Identifies the sync category. Each sync extension declares
|
|
22
|
+
* the `kind` value it produces.
|
|
23
|
+
*/
|
|
24
|
+
kind: string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=device_sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device_sync.d.ts","sourceRoot":"","sources":["../../src/delivery/device_sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device-sync extension marker per draft-gokce-semp-client §5.6.
|
|
3
|
+
*
|
|
4
|
+
* Every sync envelope MUST carry the marker in `brief.extensions`
|
|
5
|
+
* with `required: true`. The marker's `data` object carries a
|
|
6
|
+
* single `kind` field that names the sync category; each sync
|
|
7
|
+
* kind declares the `kind` value it produces.
|
|
8
|
+
*
|
|
9
|
+
* The marker lives in the brief so the home server can apply
|
|
10
|
+
* correct policy without decrypting the enclosure. Clients
|
|
11
|
+
* receiving an envelope with this marker MUST NOT surface the
|
|
12
|
+
* envelope as ordinary correspondence in any mailbox view.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
/** Namespaced identifier of the device-sync marker extension. */
|
|
17
|
+
export const DeviceSyncExtensionID = "semp.dev/device-sync";
|
|
18
|
+
//# sourceMappingURL=device_sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device_sync.js","sourceRoot":"","sources":["../../src/delivery/device_sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC"}
|
|
@@ -71,7 +71,7 @@ export interface StagedHeldStage {
|
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
73
|
* One envelope held in the staged-delivery queue per §3.2.2. The
|
|
74
|
-
* envelope itself is NOT stored twice
|
|
74
|
+
* envelope itself is NOT stored twice - this record is the
|
|
75
75
|
* per-stage pointer set the server maintains.
|
|
76
76
|
*/
|
|
77
77
|
export interface StagedHeld {
|
package/dist/delivery/fetch.d.ts
CHANGED
package/dist/delivery/fetch.js
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
*/
|
|
39
39
|
import { type Envelope } from "../envelope/index.js";
|
|
40
40
|
import type { KeysRequest, KeysResponse } from "../keys/index.js";
|
|
41
|
-
import { type Capabilities, type FederationPolicy } from "../handshake/index.js";
|
|
41
|
+
import { type Capabilities, type FederationPolicy, type FederationSuite } from "../handshake/index.js";
|
|
42
42
|
import type { Transport } from "../transport/index.js";
|
|
43
43
|
import type { SubmissionResponse } from "./submission.js";
|
|
44
44
|
/**
|
|
@@ -100,6 +100,14 @@ export interface ForwarderConfig {
|
|
|
100
100
|
* Defaults to `{ encryption_algorithms: ["x25519-chacha20-poly1305"], extensions: [] }`.
|
|
101
101
|
*/
|
|
102
102
|
capabilities?: Capabilities;
|
|
103
|
+
/**
|
|
104
|
+
* Algorithm suite for outbound federation handshakes. Either
|
|
105
|
+
* `"x25519-chacha20-poly1305"` (baseline) or `"pq-kyber768-x25519"`
|
|
106
|
+
* (hybrid PQ). Should align with one of the entries in
|
|
107
|
+
* {@link capabilities}. Defaults to baseline for backwards
|
|
108
|
+
* compatibility.
|
|
109
|
+
*/
|
|
110
|
+
suite?: FederationSuite;
|
|
103
111
|
/** Policy hook. Defaults to `acceptAllPolicies`. */
|
|
104
112
|
policyAcceptor?: (policy: FederationPolicy) => string | null;
|
|
105
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../src/delivery/forwarder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"forwarder.d.ts","sourceRoot":"","sources":["../../src/delivery/forwarder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9E,yDAAyD;AACzD,MAAM,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAE9D,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,eAAe,EAAE,UAAU,CAAC;IAC5B;;;;;;;;OAQG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;;;;;;OAOG;IACH,aAAa,EAAE,mBAAmB,CAAC;IACnC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAC;CAC9D;AASD;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6C;gBAE5D,GAAG,EAAE,eAAe;IAahC;;;;;;;;;OASG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,kBAAkB,CAAC;IAU9B;;;;;;;;;;;;OAYG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC;IAUxB,wDAAwD;IAClD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,2DAA2D;IAC3D,WAAW,IAAI,MAAM,EAAE;YAMT,UAAU;YAgBV,WAAW;YAsEX,gBAAgB;YA+ChB,kBAAkB;IA+BhC,OAAO,CAAC,WAAW;CAUpB"}
|
|
@@ -154,7 +154,7 @@ export class Forwarder {
|
|
|
154
154
|
}
|
|
155
155
|
const transport = await this.cfg.dial(endpoint);
|
|
156
156
|
const initiator = new FederationInitiator({
|
|
157
|
-
suite: "x25519-chacha20-poly1305",
|
|
157
|
+
suite: this.cfg.suite ?? "x25519-chacha20-poly1305",
|
|
158
158
|
capabilities: this.cfg.capabilities ?? {
|
|
159
159
|
encryption_algorithms: ["x25519-chacha20-poly1305"],
|
|
160
160
|
extensions: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/delivery/forwarder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAEL,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,
|
|
1
|
+
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/delivery/forwarder.ts"],"names":[],"mappings":"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"}
|
package/dist/delivery/inbox.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Reference per-user envelope inbox
|
|
2
|
+
* Reference per-user envelope inbox - minimal in-memory FIFO.
|
|
3
3
|
*
|
|
4
4
|
* Intended for in-process tests, embedded servers, and the
|
|
5
5
|
* reference {@link "./fetch".FetchResponse} producer. NOT a
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Production deployments MUST back this with a durable store,
|
|
16
16
|
* retention rules, fairness controls, and per-address access
|
|
17
|
-
* control
|
|
17
|
+
* control - none of which are present here.
|
|
18
18
|
*
|
|
19
19
|
* @module
|
|
20
20
|
*/
|
package/dist/delivery/inbox.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Reference per-user envelope inbox
|
|
2
|
+
* Reference per-user envelope inbox - minimal in-memory FIFO.
|
|
3
3
|
*
|
|
4
4
|
* Intended for in-process tests, embedded servers, and the
|
|
5
5
|
* reference {@link "./fetch".FetchResponse} producer. NOT a
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Production deployments MUST back this with a durable store,
|
|
16
16
|
* retention rules, fairness controls, and per-address access
|
|
17
|
-
* control
|
|
17
|
+
* control - none of which are present here.
|
|
18
18
|
*
|
|
19
19
|
* @module
|
|
20
20
|
*/
|
package/dist/delivery/index.d.ts
CHANGED
|
@@ -28,4 +28,8 @@ export { type DecodedBrief, type DomainKeyLookup, type DomainPolicyFunc, type En
|
|
|
28
28
|
export { type StageCompleteFunc, type StageDeliverFunc, type StageSuppressFunc, type StagedRunnerConfig, EnvelopeAlreadyHeldError, EnvelopeNotHeldError, StagedRunner, } from "./staged_runner.js";
|
|
29
29
|
export { type AttemptResult, type DeliverFunc, type EventSink, type SchedulerConfig, type SchedulerStore, InMemorySchedulerStore, Scheduler, TickInProgressError, UnknownRecordError, } from "./scheduler.js";
|
|
30
30
|
export { type Dialer, type EndpointResolver, type ForwarderConfig, type PeerDomainKeyLookup, Forwarder, } from "./forwarder.js";
|
|
31
|
+
export { PersistentSilentCounter, PersistentSilentDefaults, } from "./persistent_silent.js";
|
|
32
|
+
export { type StatusMessage, type StatusMessageSignature, type StatusState, type StatusVisibility, type StatusVisibilityEntry, type StatusVisibilityMode, StatusMessagePrefix, StatusMessageType, StatusMessageVersion, signStatusMessage, validateStatusMessage, verifyStatusMessage, } from "./status_message.js";
|
|
33
|
+
export { UpgradeCapabilityPresent, UpgradeHeaderAddress, UpgradeHeaderCapability, UpgradeHeaderDomain, UpgradeHeaderIdentity, } from "./upgrade_signal.js";
|
|
34
|
+
export { type DeviceSyncMarkerData, DeviceSyncExtensionID, } from "./device_sync.js";
|
|
31
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"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"}
|
package/dist/delivery/index.js
CHANGED
|
@@ -28,4 +28,8 @@ export { Pipeline, } from "./pipeline.js";
|
|
|
28
28
|
export { EnvelopeAlreadyHeldError, EnvelopeNotHeldError, StagedRunner, } from "./staged_runner.js";
|
|
29
29
|
export { InMemorySchedulerStore, Scheduler, TickInProgressError, UnknownRecordError, } from "./scheduler.js";
|
|
30
30
|
export { Forwarder, } from "./forwarder.js";
|
|
31
|
+
export { PersistentSilentCounter, PersistentSilentDefaults, } from "./persistent_silent.js";
|
|
32
|
+
export { StatusMessagePrefix, StatusMessageType, StatusMessageVersion, signStatusMessage, validateStatusMessage, verifyStatusMessage, } from "./status_message.js";
|
|
33
|
+
export { UpgradeCapabilityPresent, UpgradeHeaderAddress, UpgradeHeaderCapability, UpgradeHeaderDomain, UpgradeHeaderIdentity, } from "./upgrade_signal.js";
|
|
34
|
+
export { DeviceSyncExtensionID, } from "./device_sync.js";
|
|
31
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAOL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EASL,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAElB,OAAO,EAGL,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAGL,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAQL,qBAAqB,EACrB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAKL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAIL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAIL,SAAS,EACT,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,KAAK,GACN,MAAM,YAAY,CAAC;AAEpB,OAAO,EAGL,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAML,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAKL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAKL,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,gBAAgB,EAChB,WAAW,EACX,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAaL,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAKL,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAML,sBAAsB,EACtB,SAAS,EACT,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAKL,SAAS,GACV,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent silent recipient state per
|
|
3
|
+
* draft-gokce-semp-delivery §4.5 / DELIVERY.md §2.5.
|
|
4
|
+
*
|
|
5
|
+
* After repeated `silent` outcomes for the same recipient the
|
|
6
|
+
* sending server tightens its retry deadline so it does not waste
|
|
7
|
+
* effort retrying a recipient that consistently fails to
|
|
8
|
+
* acknowledge.
|
|
9
|
+
*
|
|
10
|
+
* The state is purely sender-side. It MUST NOT be transmitted on
|
|
11
|
+
* the wire and MUST NOT be published as a trust-gossip observation.
|
|
12
|
+
* Two senders correctly disagree on which recipients are
|
|
13
|
+
* persistently silent because each only sees its own envelopes.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
/** §4.5 spec defaults. */
|
|
18
|
+
export declare const PersistentSilentDefaults: {
|
|
19
|
+
/** Consecutive silents required before tightening engages. */
|
|
20
|
+
readonly threshold: 5;
|
|
21
|
+
/** Minimum observation window before tightening engages. */
|
|
22
|
+
readonly observationWindowMs: number;
|
|
23
|
+
/** Tightened retry deadline once the trigger fires. */
|
|
24
|
+
readonly shortDeadlineMs: number;
|
|
25
|
+
/** Idle expiry after which the counter for a recipient is dropped. */
|
|
26
|
+
readonly idleExpiryMs: number;
|
|
27
|
+
};
|
|
28
|
+
/** Counter configuration. Zero / undefined falls back to the spec defaults. */
|
|
29
|
+
export interface PersistentSilentConfig {
|
|
30
|
+
threshold?: number;
|
|
31
|
+
observationWindowMs?: number;
|
|
32
|
+
shortDeadlineMs?: number;
|
|
33
|
+
idleExpiryMs?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Sender-side ledger of per-recipient silent-acknowledgment
|
|
37
|
+
* counters.
|
|
38
|
+
*
|
|
39
|
+
* Usage:
|
|
40
|
+
*
|
|
41
|
+
* - `inc(addr, now)` on every `silent` outcome.
|
|
42
|
+
* - `reset(addr)` on every non-silent outcome (delivered /
|
|
43
|
+
* rejected).
|
|
44
|
+
* - `effective(addr, now)` returns the tightened retry deadline
|
|
45
|
+
* (in ms) once the count + observation-window thresholds are
|
|
46
|
+
* met, or null to keep the caller's default.
|
|
47
|
+
* - `pruneExpired(now)` on a janitor cadence so the map does not
|
|
48
|
+
* grow without bound.
|
|
49
|
+
*/
|
|
50
|
+
export declare class PersistentSilentCounter {
|
|
51
|
+
private readonly cfg;
|
|
52
|
+
private readonly entries;
|
|
53
|
+
constructor(cfg?: PersistentSilentConfig);
|
|
54
|
+
/** Record one silent outcome for `recipient` at `now`. Returns the running count. */
|
|
55
|
+
inc(recipient: string, now: Date): number;
|
|
56
|
+
/** Clear the counter for `recipient`. Idempotent on missing entries. */
|
|
57
|
+
reset(recipient: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Returns the §4.5 shortened deadline (in ms) once the count and
|
|
60
|
+
* minimum-observation-window thresholds are met. Returns null
|
|
61
|
+
* when the trigger has not fired yet - caller falls back to its
|
|
62
|
+
* default per-envelope deadline.
|
|
63
|
+
*/
|
|
64
|
+
effective(recipient: string, now: Date): number | null;
|
|
65
|
+
/** Current silent count for `recipient`. */
|
|
66
|
+
count(recipient: string): number;
|
|
67
|
+
/** Drop entries whose lastSeen is older than IdleExpiry. Returns the removed count. */
|
|
68
|
+
pruneExpired(now: Date): number;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=persistent_silent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistent_silent.d.ts","sourceRoot":"","sources":["../../src/delivery/persistent_silent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,0BAA0B;AAC1B,eAAO,MAAM,wBAAwB;IACnC,8DAA8D;;IAE9D,4DAA4D;;IAE5D,uDAAuD;;IAEvD,sEAAsE;;CAE9D,CAAC;AAEX,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;gBAExD,GAAG,GAAE,sBAA2B;IAoB5C,qFAAqF;IACrF,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM;IAezC,wEAAwE;IACxE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;IActD,4CAA4C;IAC5C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIhC,uFAAuF;IACvF,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM;CAWhC"}
|