@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.
Files changed (231) hide show
  1. package/dist/brief/address.d.ts +1 -1
  2. package/dist/brief/address.js +1 -1
  3. package/dist/brief/brief.d.ts +1 -1
  4. package/dist/brief/brief.js +1 -1
  5. package/dist/canonical/marshal.d.ts +2 -2
  6. package/dist/canonical/marshal.js +2 -2
  7. package/dist/closure/driver.d.ts +2 -2
  8. package/dist/closure/driver.js +1 -1
  9. package/dist/crypto/aead.d.ts +2 -2
  10. package/dist/crypto/aead.js +2 -2
  11. package/dist/crypto/kdf.d.ts +1 -1
  12. package/dist/crypto/kdf.js +1 -1
  13. package/dist/crypto/mac.d.ts +1 -1
  14. package/dist/crypto/mac.js +1 -1
  15. package/dist/delivery/ack.d.ts +5 -5
  16. package/dist/delivery/ack.js +6 -6
  17. package/dist/delivery/blocklist.d.ts +1 -1
  18. package/dist/delivery/blocklist.js +2 -2
  19. package/dist/delivery/device_sync.d.ts +26 -0
  20. package/dist/delivery/device_sync.d.ts.map +1 -0
  21. package/dist/delivery/device_sync.js +18 -0
  22. package/dist/delivery/device_sync.js.map +1 -0
  23. package/dist/delivery/disposition.d.ts +1 -1
  24. package/dist/delivery/fetch.d.ts +1 -1
  25. package/dist/delivery/fetch.js +1 -1
  26. package/dist/delivery/forwarder.d.ts +9 -1
  27. package/dist/delivery/forwarder.d.ts.map +1 -1
  28. package/dist/delivery/forwarder.js +1 -1
  29. package/dist/delivery/forwarder.js.map +1 -1
  30. package/dist/delivery/inbox.d.ts +2 -2
  31. package/dist/delivery/inbox.js +2 -2
  32. package/dist/delivery/index.d.ts +4 -0
  33. package/dist/delivery/index.d.ts.map +1 -1
  34. package/dist/delivery/index.js +4 -0
  35. package/dist/delivery/index.js.map +1 -1
  36. package/dist/delivery/persistent_silent.d.ts +70 -0
  37. package/dist/delivery/persistent_silent.d.ts.map +1 -0
  38. package/dist/delivery/persistent_silent.js +117 -0
  39. package/dist/delivery/persistent_silent.js.map +1 -0
  40. package/dist/delivery/pipeline.d.ts +4 -4
  41. package/dist/delivery/pipeline.d.ts.map +1 -1
  42. package/dist/delivery/pipeline.js +10 -3
  43. package/dist/delivery/pipeline.js.map +1 -1
  44. package/dist/delivery/policy_state.d.ts +2 -2
  45. package/dist/delivery/policy_state.js +4 -4
  46. package/dist/delivery/receipt.d.ts +3 -3
  47. package/dist/delivery/receipt.js +3 -3
  48. package/dist/delivery/receipt_store.d.ts +1 -1
  49. package/dist/delivery/receipt_store.js +1 -1
  50. package/dist/delivery/retry.d.ts +2 -2
  51. package/dist/delivery/retry.js +2 -2
  52. package/dist/delivery/scheduler.d.ts +1 -1
  53. package/dist/delivery/scheduler.js +1 -1
  54. package/dist/delivery/stage_partition.d.ts +1 -1
  55. package/dist/delivery/stage_partition.js +1 -1
  56. package/dist/delivery/staged_runner.d.ts +1 -1
  57. package/dist/delivery/staged_runner.js +2 -2
  58. package/dist/delivery/status_message.d.ts +75 -0
  59. package/dist/delivery/status_message.d.ts.map +1 -0
  60. package/dist/delivery/status_message.js +109 -0
  61. package/dist/delivery/status_message.js.map +1 -0
  62. package/dist/delivery/upgrade_signal.d.ts +48 -0
  63. package/dist/delivery/upgrade_signal.d.ts.map +1 -0
  64. package/dist/delivery/upgrade_signal.js +48 -0
  65. package/dist/delivery/upgrade_signal.js.map +1 -0
  66. package/dist/discovery/configuration.d.ts +20 -1
  67. package/dist/discovery/configuration.d.ts.map +1 -1
  68. package/dist/discovery/configuration.js.map +1 -1
  69. package/dist/discovery/dns.d.ts +27 -1
  70. package/dist/discovery/dns.d.ts.map +1 -1
  71. package/dist/discovery/dns.js +37 -0
  72. package/dist/discovery/dns.js.map +1 -1
  73. package/dist/discovery/index.d.ts +2 -2
  74. package/dist/discovery/index.d.ts.map +1 -1
  75. package/dist/discovery/index.js +1 -1
  76. package/dist/discovery/index.js.map +1 -1
  77. package/dist/discovery/partition.d.ts +1 -1
  78. package/dist/discovery/partition.js +1 -1
  79. package/dist/discovery/resolver.d.ts +5 -5
  80. package/dist/discovery/resolver.js +5 -5
  81. package/dist/discovery/txt.d.ts +1 -1
  82. package/dist/discovery/txt.js +1 -1
  83. package/dist/enclosure/forwarding.d.ts +1 -1
  84. package/dist/enclosure/forwarding.js +1 -1
  85. package/dist/envelope/buckets.d.ts +2 -2
  86. package/dist/envelope/buckets.js +2 -2
  87. package/dist/envelope/compose.d.ts +2 -2
  88. package/dist/envelope/compose.js +4 -4
  89. package/dist/envelope/encode.d.ts +2 -2
  90. package/dist/envelope/encode.js +3 -3
  91. package/dist/envelope/open_verified.d.ts +1 -1
  92. package/dist/envelope/open_verified.js +1 -1
  93. package/dist/envelope/padding.d.ts +2 -2
  94. package/dist/envelope/padding.js +3 -3
  95. package/dist/envelope/verify.d.ts +1 -1
  96. package/dist/envelope/verify.js +1 -1
  97. package/dist/extensions/index.d.ts +1 -0
  98. package/dist/extensions/index.d.ts.map +1 -1
  99. package/dist/extensions/index.js +1 -0
  100. package/dist/extensions/index.js.map +1 -1
  101. package/dist/extensions/limits.d.ts +2 -2
  102. package/dist/extensions/limits.js +2 -2
  103. package/dist/extensions/validation_failure.d.ts +48 -0
  104. package/dist/extensions/validation_failure.d.ts.map +1 -0
  105. package/dist/extensions/validation_failure.js +25 -0
  106. package/dist/extensions/validation_failure.js.map +1 -0
  107. package/dist/handshake/abort.d.ts +1 -1
  108. package/dist/handshake/abort.js +1 -1
  109. package/dist/handshake/client_state.d.ts +5 -5
  110. package/dist/handshake/client_state.js +5 -5
  111. package/dist/handshake/confirm.d.ts +2 -2
  112. package/dist/handshake/confirm.js +2 -2
  113. package/dist/handshake/driver.d.ts +2 -2
  114. package/dist/handshake/driver.js +1 -1
  115. package/dist/handshake/federation.d.ts +27 -9
  116. package/dist/handshake/federation.d.ts.map +1 -1
  117. package/dist/handshake/federation.js +69 -17
  118. package/dist/handshake/federation.js.map +1 -1
  119. package/dist/handshake/first_contact.d.ts +1 -1
  120. package/dist/handshake/first_contact.js +1 -1
  121. package/dist/handshake/identity.d.ts +1 -1
  122. package/dist/handshake/identity.js +1 -1
  123. package/dist/handshake/index.d.ts +1 -1
  124. package/dist/handshake/index.d.ts.map +1 -1
  125. package/dist/handshake/index.js.map +1 -1
  126. package/dist/handshake/pow.js +1 -1
  127. package/dist/handshake/server_state.d.ts +3 -3
  128. package/dist/handshake/server_state.js +3 -3
  129. package/dist/index.d.ts +1 -1
  130. package/dist/index.js +1 -1
  131. package/dist/keys/compromise.d.ts +2 -2
  132. package/dist/keys/compromise.js +1 -1
  133. package/dist/keys/device_certificate.d.ts +3 -3
  134. package/dist/keys/device_certificate.js +4 -4
  135. package/dist/keys/key_revocation.d.ts +2 -2
  136. package/dist/keys/key_revocation.js +1 -1
  137. package/dist/keys/request.d.ts +17 -3
  138. package/dist/keys/request.d.ts.map +1 -1
  139. package/dist/keys/request.js.map +1 -1
  140. package/dist/keys/sign.d.ts +7 -2
  141. package/dist/keys/sign.d.ts.map +1 -1
  142. package/dist/keys/sign.js +10 -3
  143. package/dist/keys/sign.js.map +1 -1
  144. package/dist/keys/signed.d.ts +3 -3
  145. package/dist/keys/signed.js +3 -3
  146. package/dist/keys/store.js +1 -1
  147. package/dist/largeattachment/crypto.d.ts +1 -1
  148. package/dist/largeattachment/crypto.js +2 -2
  149. package/dist/largeattachment/upload.d.ts +3 -3
  150. package/dist/largeattachment/upload.js +1 -1
  151. package/dist/migration/index.d.ts +1 -1
  152. package/dist/migration/index.d.ts.map +1 -1
  153. package/dist/migration/index.js +1 -1
  154. package/dist/migration/index.js.map +1 -1
  155. package/dist/migration/lockout.d.ts +2 -2
  156. package/dist/migration/lockout.js +2 -2
  157. package/dist/migration/migration.d.ts +6 -4
  158. package/dist/migration/migration.d.ts.map +1 -1
  159. package/dist/migration/migration.js +3 -3
  160. package/dist/migration/migration.js.map +1 -1
  161. package/dist/migration/notice.d.ts +31 -19
  162. package/dist/migration/notice.d.ts.map +1 -1
  163. package/dist/migration/notice.js +37 -71
  164. package/dist/migration/notice.js.map +1 -1
  165. package/dist/migration/orchestrate.d.ts +10 -10
  166. package/dist/migration/orchestrate.d.ts.map +1 -1
  167. package/dist/migration/orchestrate.js +23 -23
  168. package/dist/migration/orchestrate.js.map +1 -1
  169. package/dist/migration/sign.js +9 -9
  170. package/dist/migration/sign.js.map +1 -1
  171. package/dist/migration/types.d.ts +35 -29
  172. package/dist/migration/types.d.ts.map +1 -1
  173. package/dist/migration/types.js +5 -7
  174. package/dist/migration/types.js.map +1 -1
  175. package/dist/recovery/bundle_store.js +1 -1
  176. package/dist/recovery/sign.js +3 -3
  177. package/dist/recovery/types.d.ts +3 -3
  178. package/dist/reputation/abuse_report.d.ts +3 -3
  179. package/dist/reputation/abuse_report.js +2 -2
  180. package/dist/reputation/eligibility.d.ts +44 -0
  181. package/dist/reputation/eligibility.d.ts.map +1 -0
  182. package/dist/reputation/eligibility.js +58 -0
  183. package/dist/reputation/eligibility.js.map +1 -0
  184. package/dist/reputation/evidence.d.ts +47 -0
  185. package/dist/reputation/evidence.d.ts.map +1 -0
  186. package/dist/reputation/evidence.js +117 -0
  187. package/dist/reputation/evidence.js.map +1 -0
  188. package/dist/reputation/gossip_fetch.d.ts +2 -2
  189. package/dist/reputation/gossip_fetch.js +1 -1
  190. package/dist/reputation/index.d.ts +4 -1
  191. package/dist/reputation/index.d.ts.map +1 -1
  192. package/dist/reputation/index.js +4 -1
  193. package/dist/reputation/index.js.map +1 -1
  194. package/dist/reputation/pow.d.ts +1 -1
  195. package/dist/reputation/pow.js +1 -1
  196. package/dist/reputation/references.d.ts +51 -0
  197. package/dist/reputation/references.d.ts.map +1 -0
  198. package/dist/reputation/references.js +95 -0
  199. package/dist/reputation/references.js.map +1 -0
  200. package/dist/reputation/sign.d.ts +1 -1
  201. package/dist/reputation/sign.js +2 -2
  202. package/dist/reputation/types.d.ts +46 -2
  203. package/dist/reputation/types.d.ts.map +1 -1
  204. package/dist/reputation/types.js +14 -0
  205. package/dist/reputation/types.js.map +1 -1
  206. package/dist/reputation/whois.d.ts +1 -1
  207. package/dist/reputation/whois.js +1 -1
  208. package/dist/seal/wrap.d.ts +2 -2
  209. package/dist/seal/wrap.js +4 -4
  210. package/dist/session/dispatcher.d.ts +3 -3
  211. package/dist/session/dispatcher.js +1 -1
  212. package/dist/session/rekey_seal.d.ts +3 -3
  213. package/dist/session/rekey_seal.js +3 -3
  214. package/dist/session/session.d.ts +3 -3
  215. package/dist/session/session.js +3 -3
  216. package/dist/transparency/log.d.ts +1 -1
  217. package/dist/transparency/log.js +2 -2
  218. package/dist/transparency/types.d.ts +2 -2
  219. package/dist/transparency/types.js +1 -1
  220. package/dist/transport/h2.d.ts +33 -12
  221. package/dist/transport/h2.d.ts.map +1 -1
  222. package/dist/transport/h2.js +40 -13
  223. package/dist/transport/h2.js.map +1 -1
  224. package/dist/transport/index.d.ts +1 -1
  225. package/dist/transport/index.d.ts.map +1 -1
  226. package/dist/transport/index.js +1 -1
  227. package/dist/transport/index.js.map +1 -1
  228. package/dist/transport/memory.js +1 -1
  229. package/dist/transport/ws.d.ts +1 -1
  230. package/dist/transport/ws.js +1 -1
  231. package/package.json +1 -1
@@ -0,0 +1,117 @@
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 const PersistentSilentDefaults = {
19
+ /** Consecutive silents required before tightening engages. */
20
+ threshold: 5,
21
+ /** Minimum observation window before tightening engages. */
22
+ observationWindowMs: 24 * 60 * 60 * 1000,
23
+ /** Tightened retry deadline once the trigger fires. */
24
+ shortDeadlineMs: 4 * 60 * 60 * 1000,
25
+ /** Idle expiry after which the counter for a recipient is dropped. */
26
+ idleExpiryMs: 30 * 24 * 60 * 60 * 1000,
27
+ };
28
+ /**
29
+ * Sender-side ledger of per-recipient silent-acknowledgment
30
+ * counters.
31
+ *
32
+ * Usage:
33
+ *
34
+ * - `inc(addr, now)` on every `silent` outcome.
35
+ * - `reset(addr)` on every non-silent outcome (delivered /
36
+ * rejected).
37
+ * - `effective(addr, now)` returns the tightened retry deadline
38
+ * (in ms) once the count + observation-window thresholds are
39
+ * met, or null to keep the caller's default.
40
+ * - `pruneExpired(now)` on a janitor cadence so the map does not
41
+ * grow without bound.
42
+ */
43
+ export class PersistentSilentCounter {
44
+ cfg;
45
+ entries = new Map();
46
+ constructor(cfg = {}) {
47
+ this.cfg = {
48
+ threshold: cfg.threshold && cfg.threshold > 0
49
+ ? cfg.threshold
50
+ : PersistentSilentDefaults.threshold,
51
+ observationWindowMs: cfg.observationWindowMs && cfg.observationWindowMs > 0
52
+ ? cfg.observationWindowMs
53
+ : PersistentSilentDefaults.observationWindowMs,
54
+ shortDeadlineMs: cfg.shortDeadlineMs && cfg.shortDeadlineMs > 0
55
+ ? cfg.shortDeadlineMs
56
+ : PersistentSilentDefaults.shortDeadlineMs,
57
+ idleExpiryMs: cfg.idleExpiryMs && cfg.idleExpiryMs > 0
58
+ ? cfg.idleExpiryMs
59
+ : PersistentSilentDefaults.idleExpiryMs,
60
+ };
61
+ }
62
+ /** Record one silent outcome for `recipient` at `now`. Returns the running count. */
63
+ inc(recipient, now) {
64
+ if (recipient === "") {
65
+ return 0;
66
+ }
67
+ const t = now.getTime();
68
+ const e = this.entries.get(recipient);
69
+ if (e === undefined) {
70
+ this.entries.set(recipient, { count: 1, firstSeenMs: t, lastSeenMs: t });
71
+ return 1;
72
+ }
73
+ e.count++;
74
+ e.lastSeenMs = t;
75
+ return e.count;
76
+ }
77
+ /** Clear the counter for `recipient`. Idempotent on missing entries. */
78
+ reset(recipient) {
79
+ this.entries.delete(recipient);
80
+ }
81
+ /**
82
+ * Returns the §4.5 shortened deadline (in ms) once the count and
83
+ * minimum-observation-window thresholds are met. Returns null
84
+ * when the trigger has not fired yet - caller falls back to its
85
+ * default per-envelope deadline.
86
+ */
87
+ effective(recipient, now) {
88
+ const e = this.entries.get(recipient);
89
+ if (e === undefined) {
90
+ return null;
91
+ }
92
+ if (e.count < this.cfg.threshold) {
93
+ return null;
94
+ }
95
+ if (now.getTime() - e.firstSeenMs < this.cfg.observationWindowMs) {
96
+ return null;
97
+ }
98
+ return this.cfg.shortDeadlineMs;
99
+ }
100
+ /** Current silent count for `recipient`. */
101
+ count(recipient) {
102
+ return this.entries.get(recipient)?.count ?? 0;
103
+ }
104
+ /** Drop entries whose lastSeen is older than IdleExpiry. Returns the removed count. */
105
+ pruneExpired(now) {
106
+ const t = now.getTime();
107
+ let removed = 0;
108
+ for (const [k, e] of this.entries) {
109
+ if (t - e.lastSeenMs >= this.cfg.idleExpiryMs) {
110
+ this.entries.delete(k);
111
+ removed++;
112
+ }
113
+ }
114
+ return removed;
115
+ }
116
+ }
117
+ //# sourceMappingURL=persistent_silent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistent_silent.js","sourceRoot":"","sources":["../../src/delivery/persistent_silent.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ export type LocalAddressFunc = (address: string) => boolean;
62
62
  export type InboxStore = Pick<Inbox, "store">;
63
63
  /** Hook returning the current session-id retired status. */
64
64
  export type SessionRetiredFunc = (sessionId: string) => Promise<boolean>;
65
- /** Decoded brief shape minimal fields the pipeline needs. */
65
+ /** Decoded brief shape - minimal fields the pipeline needs. */
66
66
  export interface DecodedBrief {
67
67
  to: string[];
68
68
  cc?: string[];
@@ -108,7 +108,7 @@ export interface PipelineConfig {
108
108
  /** Default clock-skew tolerance for step 2; defaults to 15 minutes. */
109
109
  clockSkewMs?: number;
110
110
  }
111
- /** Envelope-wide rejection produced by steps 17. */
111
+ /** Envelope-wide rejection produced by steps 1-7. */
112
112
  export interface PipelineRejection {
113
113
  reasonCode: string;
114
114
  reason: string;
@@ -125,14 +125,14 @@ export interface PipelineResult {
125
125
  */
126
126
  results: SubmissionResult[];
127
127
  /**
128
- * Envelope-wide rejection (steps 17). Implies {@link results} is
128
+ * Envelope-wide rejection (steps 1-7). Implies {@link results} is
129
129
  * empty.
130
130
  */
131
131
  rejection?: PipelineRejection;
132
132
  }
133
133
  /**
134
134
  * Receive-side delivery pipeline. Single-process, callable across
135
- * many envelopes. Concurrency is the caller's responsibility each
135
+ * many envelopes. Concurrency is the caller's responsibility - each
136
136
  * `process()` call is independent and stateless beyond the
137
137
  * configured hooks.
138
138
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/delivery/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/delivery/pipeline.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ import { unwrap as sealUnwrap } from "../seal/index.js";
27
27
  import { matchBlockList } from "./blocklist.js";
28
28
  /**
29
29
  * Receive-side delivery pipeline. Single-process, callable across
30
- * many envelopes. Concurrency is the caller's responsibility each
30
+ * many envelopes. Concurrency is the caller's responsibility - each
31
31
  * `process()` call is independent and stateless beyond the
32
32
  * configured hooks.
33
33
  */
@@ -92,7 +92,7 @@ export class Pipeline {
92
92
  return result;
93
93
  }
94
94
  // Steps 6 + 7: home-server brief-only open. We don't need
95
- // K_enclosure here only the recipient client does. Walk the
95
+ // K_enclosure here - only the recipient client does. Walk the
96
96
  // configured candidates and try each against
97
97
  // env.seal.brief_recipients.
98
98
  let brief;
@@ -315,6 +315,13 @@ function openBriefOnly(env, candidates) {
315
315
  if (candidates.length === 0) {
316
316
  throw new Error("envelope: openBriefOnly: empty candidate list");
317
317
  }
318
+ // Suite is pinned in seal.algorithm at compose time; the home
319
+ // server unwraps under the same suite. Without this we always
320
+ // use baseline X25519 and reject every PQ envelope at step 6/7.
321
+ const suite = env.seal.algorithm;
322
+ if (suite !== "x25519-chacha20-poly1305" && suite !== "pq-kyber768-x25519") {
323
+ throw new Error(`envelope: openBriefOnly: unknown seal.algorithm ${suite}`);
324
+ }
318
325
  const errors = [];
319
326
  for (const c of candidates) {
320
327
  const wrapped = env.seal.brief_recipients[c.keyId];
@@ -322,7 +329,7 @@ function openBriefOnly(env, candidates) {
322
329
  continue;
323
330
  }
324
331
  try {
325
- const kBrief = sealUnwrap("x25519-chacha20-poly1305", c.privateKey, c.publicKey, wrapped);
332
+ const kBrief = sealUnwrap(suite, c.privateKey, c.publicKey, wrapped);
326
333
  const briefBlob = base64Decode(env.brief);
327
334
  if (briefBlob.length < 12) {
328
335
  throw new Error("brief blob too short");
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/delivery/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/delivery/pipeline.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * rejects the whole message; unrelated operations in the same
9
9
  * message MUST NOT be applied.
10
10
  *
11
- * Apply does NOT verify the signature on the message callers MUST
11
+ * Apply does NOT verify the signature on the message - callers MUST
12
12
  * run {@link verifyUserPolicyMessage} before invoking
13
13
  * {@link PolicyState.apply}.
14
14
  *
@@ -57,7 +57,7 @@ export interface PolicySnapshot {
57
57
  * Per-user policy state. Concurrency-safe within a single JS event
58
58
  * loop (no async mutation between read-modify-write).
59
59
  *
60
- * Does NOT enforce DELIVERY.md §7.5 encrypted-at-rest storage
60
+ * Does NOT enforce DELIVERY.md §7.5 encrypted-at-rest storage -
61
61
  * that is the persistence layer's responsibility.
62
62
  */
63
63
  export declare class PolicyState {
@@ -8,7 +8,7 @@
8
8
  * rejects the whole message; unrelated operations in the same
9
9
  * message MUST NOT be applied.
10
10
  *
11
- * Apply does NOT verify the signature on the message callers MUST
11
+ * Apply does NOT verify the signature on the message - callers MUST
12
12
  * run {@link verifyUserPolicyMessage} before invoking
13
13
  * {@link PolicyState.apply}.
14
14
  *
@@ -46,7 +46,7 @@ function messageFor(code, d) {
46
46
  * Per-user policy state. Concurrency-safe within a single JS event
47
47
  * loop (no async mutation between read-modify-write).
48
48
  *
49
- * Does NOT enforce DELIVERY.md §7.5 encrypted-at-rest storage
49
+ * Does NOT enforce DELIVERY.md §7.5 encrypted-at-rest storage -
50
50
  * that is the persistence layer's responsibility.
51
51
  */
52
52
  export class PolicyState {
@@ -138,7 +138,7 @@ export class PolicyState {
138
138
  currentVersion: this.policyVersionValue,
139
139
  });
140
140
  }
141
- // Pre-flight every op for unsupported-kind before mutating
141
+ // Pre-flight every op for unsupported-kind before mutating -
142
142
  // §7.2 atomicity.
143
143
  for (let i = 0; i < m.operations.length; i++) {
144
144
  const op = m.operations[i];
@@ -257,7 +257,7 @@ function entryIdFor(op) {
257
257
  * not specific op-kind violations.
258
258
  *
259
259
  * The mapping leans on the validator's stable error-string format
260
- * (`delivery: user policy operations[N] ...`) same approach as
260
+ * (`delivery: user policy operations[N] ...`) - same approach as
261
261
  * the semp-go reference.
262
262
  */
263
263
  function classifyOpInvalid(msg, m) {
@@ -11,7 +11,7 @@
11
11
  * This module provides:
12
12
  *
13
13
  * - {@link computeEnvelopeHash}: SHA-256 over canonical envelope bytes
14
- * (the same canonical form `seal.signature` is computed over
14
+ * (the same canonical form `seal.signature` is computed over -
15
15
  * `signature` and `session_mac` blanked, `hop_count` and `padding`
16
16
  * omitted).
17
17
  * - {@link signDeliveryReceipt}: build + sign a receipt from
@@ -95,7 +95,7 @@ export interface SignDeliveryReceiptResult {
95
95
  /**
96
96
  * SHA-256 of canonical envelope bytes, base64-encoded, per
97
97
  * §1.1.1.3. The caller is responsible for producing the canonical
98
- * bytes typically via `envelope.canonicalEnvelopeFor(env)` which
98
+ * bytes - typically via `envelope.canonicalEnvelopeFor(env)` which
99
99
  * applies §4.3 elision (signature, session_mac, hop_count, padding).
100
100
  */
101
101
  export declare function computeEnvelopeHash(canonicalEnvelopeBytes: Uint8Array): string;
@@ -117,7 +117,7 @@ export interface VerifyDeliveryReceiptInput {
117
117
  * structural validation failure (use {@link validateReceipt} ahead
118
118
  * of time to surface those as boolean false instead).
119
119
  *
120
- * Does NOT cross-check `accepted_at` against the verifier's clock
120
+ * Does NOT cross-check `accepted_at` against the verifier's clock -
121
121
  * that is a §1.1.1.5 caller-side decision and MUST be applied with
122
122
  * the {@link ReceiptClockSkewToleranceSeconds} tolerance.
123
123
  */
@@ -11,7 +11,7 @@
11
11
  * This module provides:
12
12
  *
13
13
  * - {@link computeEnvelopeHash}: SHA-256 over canonical envelope bytes
14
- * (the same canonical form `seal.signature` is computed over
14
+ * (the same canonical form `seal.signature` is computed over -
15
15
  * `signature` and `session_mac` blanked, `hop_count` and `padding`
16
16
  * omitted).
17
17
  * - {@link signDeliveryReceipt}: build + sign a receipt from
@@ -49,7 +49,7 @@ export const ReceiptClockSkewToleranceSeconds = 120;
49
49
  /**
50
50
  * SHA-256 of canonical envelope bytes, base64-encoded, per
51
51
  * §1.1.1.3. The caller is responsible for producing the canonical
52
- * bytes typically via `envelope.canonicalEnvelopeFor(env)` which
52
+ * bytes - typically via `envelope.canonicalEnvelopeFor(env)` which
53
53
  * applies §4.3 elision (signature, session_mac, hop_count, padding).
54
54
  */
55
55
  export function computeEnvelopeHash(canonicalEnvelopeBytes) {
@@ -105,7 +105,7 @@ export function signDeliveryReceipt(input) {
105
105
  * structural validation failure (use {@link validateReceipt} ahead
106
106
  * of time to surface those as boolean false instead).
107
107
  *
108
- * Does NOT cross-check `accepted_at` against the verifier's clock
108
+ * Does NOT cross-check `accepted_at` against the verifier's clock -
109
109
  * that is a §1.1.1.5 caller-side decision and MUST be applied with
110
110
  * the {@link ReceiptClockSkewToleranceSeconds} tolerance.
111
111
  */
@@ -68,7 +68,7 @@ export declare const DefaultReceiptRetentionMs: number;
68
68
  * Reference {@link ReceiptStore} backed by a Map. Acknowledge drops
69
69
  * the receipt immediately so no plaintext archive accumulates.
70
70
  *
71
- * Single-process only production deployments replace this with a
71
+ * Single-process only - production deployments replace this with a
72
72
  * durable backend.
73
73
  */
74
74
  export declare class InMemoryReceiptStore implements ReceiptStore {
@@ -28,7 +28,7 @@ export const DefaultReceiptRetentionMs = 72 * 60 * 60 * 1000;
28
28
  * Reference {@link ReceiptStore} backed by a Map. Acknowledge drops
29
29
  * the receipt immediately so no plaintext archive accumulates.
30
30
  *
31
- * Single-process only production deployments replace this with a
31
+ * Single-process only - production deployments replace this with a
32
32
  * durable backend.
33
33
  */
34
34
  export class InMemoryReceiptStore {
@@ -14,7 +14,7 @@ export declare const MinRetryInitialIntervalMs = 60000;
14
14
  export declare const MinRetryMultiplier = 2;
15
15
  /** Cap on individual inter-attempt intervals per §2.3 (6 hours). */
16
16
  export declare const MaxRetryIntervalMs: number;
17
- /** Minimum jitter half-width per §2.3 (10% RECOMMENDED 25%). */
17
+ /** Minimum jitter half-width per §2.3 (10% - RECOMMENDED 25%). */
18
18
  export declare const MinRetryJitterFraction = 0.1;
19
19
  /**
20
20
  * Lower bound on the realized jittered interval per §2.3:
@@ -69,7 +69,7 @@ export declare function nextAttemptAt(cfg: RetryConfig, previous: Date, attempt:
69
69
  */
70
70
  export declare function isRecoverableReason(reasonCode: string): boolean;
71
71
  /**
72
- * Effective delivery deadline per §2.4 the earlier of
72
+ * Effective delivery deadline per §2.4 - the earlier of
73
73
  * `postmark.expires` and `queuedAt + horizon`. `horizon <= 0`
74
74
  * defaults to {@link DefaultMaxRetryHorizonMs}; values larger than
75
75
  * {@link MaxRetryHorizonCapMs} clamp down.
@@ -14,7 +14,7 @@ export const MinRetryInitialIntervalMs = 60_000;
14
14
  export const MinRetryMultiplier = 2.0;
15
15
  /** Cap on individual inter-attempt intervals per §2.3 (6 hours). */
16
16
  export const MaxRetryIntervalMs = 6 * 60 * 60 * 1000;
17
- /** Minimum jitter half-width per §2.3 (10% RECOMMENDED 25%). */
17
+ /** Minimum jitter half-width per §2.3 (10% - RECOMMENDED 25%). */
18
18
  export const MinRetryJitterFraction = 0.10;
19
19
  /**
20
20
  * Lower bound on the realized jittered interval per §2.3:
@@ -103,7 +103,7 @@ export function isRecoverableReason(reasonCode) {
103
103
  }
104
104
  }
105
105
  /**
106
- * Effective delivery deadline per §2.4 the earlier of
106
+ * Effective delivery deadline per §2.4 - the earlier of
107
107
  * `postmark.expires` and `queuedAt + horizon`. `horizon <= 0`
108
108
  * defaults to {@link DefaultMaxRetryHorizonMs}; values larger than
109
109
  * {@link MaxRetryHorizonCapMs} clamp down.
@@ -141,7 +141,7 @@ export declare class Scheduler {
141
141
  }
142
142
  /**
143
143
  * Reference in-memory {@link SchedulerStore}. Tests / single-process
144
- * demos only production deployments back the queue with durable
144
+ * demos only - production deployments back the queue with durable
145
145
  * storage per DELIVERY.md §2.1.
146
146
  */
147
147
  export declare class InMemorySchedulerStore implements SchedulerStore {
@@ -288,7 +288,7 @@ export class Scheduler {
288
288
  }
289
289
  /**
290
290
  * Reference in-memory {@link SchedulerStore}. Tests / single-process
291
- * demos only production deployments back the queue with durable
291
+ * demos only - production deployments back the queue with durable
292
292
  * storage per DELIVERY.md §2.1.
293
293
  */
294
294
  export class InMemorySchedulerStore {
@@ -66,7 +66,7 @@ export interface PartitionInput {
66
66
  * excluded from the partition entirely.
67
67
  * 2. Compute the implicit full-access stage as
68
68
  * `max(delegated_stages_with_mode_not_none) + 1`, taken across
69
- * ALL delegates with `receive.mode !== "none"` not just those
69
+ * ALL delegates with `receive.mode !== "none"` - not just those
70
70
  * that allowed THIS envelope. Matches §10.3.3.1's "the maximum
71
71
  * is taken over all delegated devices of the account that have
72
72
  * a receive matcher whose mode is not none". When no such
@@ -26,7 +26,7 @@ import { scopeAllowsSender } from "../keys/device_certificate.js";
26
26
  * excluded from the partition entirely.
27
27
  * 2. Compute the implicit full-access stage as
28
28
  * `max(delegated_stages_with_mode_not_none) + 1`, taken across
29
- * ALL delegates with `receive.mode !== "none"` not just those
29
+ * ALL delegates with `receive.mode !== "none"` - not just those
30
30
  * that allowed THIS envelope. Matches §10.3.3.1's "the maximum
31
31
  * is taken over all delegated devices of the account that have
32
32
  * a receive matcher whose mode is not none". When no such
@@ -66,7 +66,7 @@ export declare class StagedRunner {
66
66
  * `submitterDeviceId` is the device_id bound to the session that
67
67
  * delivered the disposition; it MUST equal `d.device_id`.
68
68
  *
69
- * Idempotent on repeats from the same device keeps the FIRST
69
+ * Idempotent on repeats from the same device - keeps the FIRST
70
70
  * disposition (conservative aggregation).
71
71
  */
72
72
  ingestDisposition(envelopeId: string, submitterDeviceId: string, d: Disposition): void;
@@ -114,7 +114,7 @@ export class StagedRunner {
114
114
  * `submitterDeviceId` is the device_id bound to the session that
115
115
  * delivered the disposition; it MUST equal `d.device_id`.
116
116
  *
117
- * Idempotent on repeats from the same device keeps the FIRST
117
+ * Idempotent on repeats from the same device - keeps the FIRST
118
118
  * disposition (conservative aggregation).
119
119
  */
120
120
  ingestDisposition(envelopeId, submitterDeviceId, d) {
@@ -256,7 +256,7 @@ export class StagedRunner {
256
256
  });
257
257
  }
258
258
  if (rebuilt.length === 0) {
259
- // No stages remain let the next tick detect completion.
259
+ // No stages remain - let the next tick detect completion.
260
260
  rec.stages = [];
261
261
  return;
262
262
  }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * SEMP_STATUS recipient-status configuration message per
3
+ * draft-gokce-semp-delivery §1.6.5.
4
+ *
5
+ * The client composes a signed StatusMessage carrying the user's
6
+ * state, optional message and until, plus the visibility rule
7
+ * that determines which senders may receive the status in
8
+ * acknowledgments. The client transmits the record to the home
9
+ * server as a signed message under the originating device's key;
10
+ * the home server verifies, checks device_id against the
11
+ * registered device set, and applies the latest update by
12
+ * updated_at.
13
+ *
14
+ * This is distinct from the runtime recipient-status surface in
15
+ * `./status.ts` (the value attached to delivery acknowledgments).
16
+ *
17
+ * @module
18
+ */
19
+ /** Wire-level type discriminator. */
20
+ export declare const StatusMessageType = "SEMP_STATUS";
21
+ /** Wire-level version. */
22
+ export declare const StatusMessageVersion = "1.0.0";
23
+ /** Domain-separation prefix for SEMP_STATUS signatures. */
24
+ export declare const StatusMessagePrefix = "SEMP-STATUS:";
25
+ /** Recipient state value pinned by §1.6.3. */
26
+ export type StatusState = "available" | "away" | "do_not_disturb";
27
+ /** Visibility mode for the SEMP_STATUS record per §1.6.5. */
28
+ export type StatusVisibilityMode = "nobody" | "everyone" | "users";
29
+ /** Single entry in StatusVisibility.allow. */
30
+ export type StatusVisibilityEntry = {
31
+ type: "domain";
32
+ domain: string;
33
+ } | {
34
+ type: "user";
35
+ address: string;
36
+ };
37
+ /** Visibility configuration per §1.6.5. */
38
+ export interface StatusVisibility {
39
+ mode: StatusVisibilityMode;
40
+ allow?: StatusVisibilityEntry[];
41
+ }
42
+ /** Signature block on a SEMP_STATUS message. */
43
+ export interface StatusMessageSignature {
44
+ algorithm: string;
45
+ key_id: string;
46
+ value: string;
47
+ }
48
+ /** SEMP_STATUS configuration record per §1.6.5. */
49
+ export interface StatusMessage {
50
+ type: typeof StatusMessageType;
51
+ version: string;
52
+ user_id: string;
53
+ state: StatusState | string;
54
+ message?: string;
55
+ /** ISO 8601 UTC. */
56
+ until?: string;
57
+ visibility: StatusVisibility;
58
+ /** ISO 8601 UTC. */
59
+ updated_at: string;
60
+ device_id: string;
61
+ signature: StatusMessageSignature;
62
+ }
63
+ /**
64
+ * Sign `m.signature` with the originating device's identity
65
+ * private key under the SEMP-STATUS: prefix. Mutates m in place
66
+ * and returns the base64 signature value.
67
+ */
68
+ export declare function signStatusMessage(m: StatusMessage, devicePriv: Uint8Array, deviceKeyId: string): string;
69
+ /** Verify `m.signature` against the originating device's public key. */
70
+ export declare function verifyStatusMessage(m: StatusMessage, devicePub: Uint8Array): boolean;
71
+ /** Structural validation per §1.6.5. */
72
+ export declare function validateStatusMessage(m: StatusMessage, opts?: {
73
+ skipSignatureCheck?: boolean;
74
+ }): void;
75
+ //# sourceMappingURL=status_message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status_message.d.ts","sourceRoot":"","sources":["../../src/delivery/status_message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,0BAA0B;AAC1B,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAElE,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnE,8CAA8C;AAC9C,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,iBAAiB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,oBAAoB;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,aAAa,EAChB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,GAClB,MAAM,CAsBR;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,aAAa,EAChB,SAAS,EAAE,UAAU,GACpB,OAAO,CAYT;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,aAAa,EAChB,IAAI,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,IAAI,CA6CN"}