@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
@@ -20,7 +20,7 @@ export const DefaultMaxEnvelopeSize = 25 * 1024 * 1024;
20
20
  * Select the size bucket for an unpadded envelope of the given byte
21
21
  * size per the default power-of-two curve (4096, 8192, 16384, ...).
22
22
  *
23
- * Throws on negative input or input that exceeds the ceiling over-
23
+ * Throws on negative input or input that exceeds the ceiling - over-
24
24
  * limit envelopes MUST be recomposed; padding is not a remedy for
25
25
  * over-limit content.
26
26
  */
@@ -51,7 +51,7 @@ export function selectSizeBucket(unpaddedSize, maxEnvelopeSize) {
51
51
  * in which case the floor relaxes to 1 (a single-domain non-group
52
52
  * send reveals only the obvious cardinality and gains no
53
53
  * obfuscation from padding to 2). Real counts above 1024 force
54
- * recomposition into multiple envelopes the runner returns a
54
+ * recomposition into multiple envelopes - the runner returns a
55
55
  * sentinel of -1 in that case so callers can detect it.
56
56
  */
57
57
  export function selectRecipientCountBucket(realRecipients, singleDomainNotGroup) {
@@ -130,7 +130,7 @@ export interface Envelope {
130
130
  */
131
131
  export declare function compose(input: ComposeInput): Envelope;
132
132
  /**
133
- * Compute the §4.3 canonical envelope bytes signature and
133
+ * Compute the §4.3 canonical envelope bytes - signature and
134
134
  * session_mac blanked, hop_count and padding omitted.
135
135
  */
136
136
  export declare function canonicalEnvelopeFor(envelope: unknown): Uint8Array;
@@ -162,7 +162,7 @@ export interface OpenedEnvelope {
162
162
  * returns the parsed plaintexts. Throws if the recipient slot is
163
163
  * absent or the AEAD tag does not verify.
164
164
  *
165
- * Does NOT verify seal.signature or seal.session_mac those are
165
+ * Does NOT verify seal.signature or seal.session_mac - those are
166
166
  * the routing-server / receiving-server checks per §7.2 and live
167
167
  * on the server side. {@link verifySealSignature} and
168
168
  * {@link verifySessionMAC} are the corresponding verifier helpers.
@@ -89,10 +89,10 @@ export function compose(input) {
89
89
  //
90
90
  // Wire-shape rules:
91
91
  // postmark.extensions and seal.extensions DEFAULT to {} when
92
- // the caller doesn't pass them these slots are always
92
+ // the caller doesn't pass them - these slots are always
93
93
  // present on the wire (some routers depend on the keys
94
94
  // existing as a marker even when empty).
95
- // Top-level extensions DEFAULTS to absent the spec treats
95
+ // Top-level extensions DEFAULTS to absent - the spec treats
96
96
  // it as truly optional.
97
97
  const postmark = {
98
98
  ...input.postmark,
@@ -131,7 +131,7 @@ export function compose(input) {
131
131
  return env;
132
132
  }
133
133
  /**
134
- * Compute the §4.3 canonical envelope bytes signature and
134
+ * Compute the §4.3 canonical envelope bytes - signature and
135
135
  * session_mac blanked, hop_count and padding omitted.
136
136
  */
137
137
  export function canonicalEnvelopeFor(envelope) {
@@ -161,7 +161,7 @@ export function canonicalEnvelopeFor(envelope) {
161
161
  * returns the parsed plaintexts. Throws if the recipient slot is
162
162
  * absent or the AEAD tag does not verify.
163
163
  *
164
- * Does NOT verify seal.signature or seal.session_mac those are
164
+ * Does NOT verify seal.signature or seal.session_mac - those are
165
165
  * the routing-server / receiving-server checks per §7.2 and live
166
166
  * on the server side. {@link verifySealSignature} and
167
167
  * {@link verifySessionMAC} are the corresponding verifier helpers.
@@ -6,7 +6,7 @@
6
6
  * (`Content-Type: application/semp-envelope`) and for storage as a
7
7
  * `.semp` file.
8
8
  *
9
- * `encodeEnvelope` does NOT produce the canonical form use
9
+ * `encodeEnvelope` does NOT produce the canonical form - use
10
10
  * {@link "./canonical".canonicalEnvelopeBytes} for the byte stream
11
11
  * consumed by signature and MAC computation.
12
12
  *
@@ -19,7 +19,7 @@ export declare const EnvelopeMIMEType = "application/semp-envelope";
19
19
  export declare const EnvelopeFileExtension = ".semp";
20
20
  /**
21
21
  * Wire JSON serialization of `env`. UTF-8, no BOM, no trailing
22
- * newline the byte sequence is suitable for transport bodies and
22
+ * newline - the byte sequence is suitable for transport bodies and
23
23
  * for direct `.semp` file content.
24
24
  */
25
25
  export declare function encodeEnvelope(env: Envelope): Uint8Array;
@@ -6,7 +6,7 @@
6
6
  * (`Content-Type: application/semp-envelope`) and for storage as a
7
7
  * `.semp` file.
8
8
  *
9
- * `encodeEnvelope` does NOT produce the canonical form use
9
+ * `encodeEnvelope` does NOT produce the canonical form - use
10
10
  * {@link "./canonical".canonicalEnvelopeBytes} for the byte stream
11
11
  * consumed by signature and MAC computation.
12
12
  *
@@ -18,11 +18,11 @@ export const EnvelopeMIMEType = "application/semp-envelope";
18
18
  export const EnvelopeFileExtension = ".semp";
19
19
  /**
20
20
  * Wire JSON serialization of `env`. UTF-8, no BOM, no trailing
21
- * newline the byte sequence is suitable for transport bodies and
21
+ * newline - the byte sequence is suitable for transport bodies and
22
22
  * for direct `.semp` file content.
23
23
  */
24
24
  export function encodeEnvelope(env) {
25
- // Plain JSON NOT canonical. Used for transport, not signing.
25
+ // Plain JSON - NOT canonical. Used for transport, not signing.
26
26
  return new TextEncoder().encode(JSON.stringify(env));
27
27
  }
28
28
  /**
@@ -10,7 +10,7 @@
10
10
  * 3. Walk the supplied recipient candidates and open the brief +
11
11
  * enclosure for the first matching device key.
12
12
  *
13
- * `openAndVerify` does NOT run `seal.session_mac` that is the
13
+ * `openAndVerify` does NOT run `seal.session_mac` - that is the
14
14
  * routing-server / receiving-server check between adjacent SEMP
15
15
  * peers; the recipient client uses {@link "./verify".verifySessionMAC}
16
16
  * separately when it has access to the K_env_mac.
@@ -10,7 +10,7 @@
10
10
  * 3. Walk the supplied recipient candidates and open the brief +
11
11
  * enclosure for the first matching device key.
12
12
  *
13
- * `openAndVerify` does NOT run `seal.session_mac` that is the
13
+ * `openAndVerify` does NOT run `seal.session_mac` - that is the
14
14
  * routing-server / receiving-server check between adjacent SEMP
15
15
  * peers; the recipient client uses {@link "./verify".verifySessionMAC}
16
16
  * separately when it has access to the K_env_mac.
@@ -35,7 +35,7 @@ export interface PadConfig {
35
35
  /**
36
36
  * Populate `env.padding` so that `JSON.stringify(env)` lands on
37
37
  * exactly the size of the chosen bucket. Safe to call before OR
38
- * after `compose` populates `seal.signature` / `seal.session_mac`
38
+ * after `compose` populates `seal.signature` / `seal.session_mac` -
39
39
  * if either is empty, fillPadding temporarily substitutes a
40
40
  * fixed-length placeholder for measurement so the post-sign size
41
41
  * is correct either way.
@@ -47,7 +47,7 @@ export declare function fillPadding(env: Envelope, cfg?: PadConfig): number;
47
47
  /**
48
48
  * Build a string of exactly `targetLen` base64-alphabet characters,
49
49
  * drawn from a CSPRNG. The bulk is a base64 encoding of CSPRNG
50
- * bytes; the final 13 characters (when targetLen is not reachable
50
+ * bytes; the final 1-3 characters (when targetLen is not reachable
51
51
  * by `btoa` 4-character chunks) are CSPRNG-seeded alphabet
52
52
  * characters appended for length alignment per §2.4.2.
53
53
  */
@@ -28,7 +28,7 @@ const Base64AlphabetFillers = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw
28
28
  /**
29
29
  * Populate `env.padding` so that `JSON.stringify(env)` lands on
30
30
  * exactly the size of the chosen bucket. Safe to call before OR
31
- * after `compose` populates `seal.signature` / `seal.session_mac`
31
+ * after `compose` populates `seal.signature` / `seal.session_mac` -
32
32
  * if either is empty, fillPadding temporarily substitutes a
33
33
  * fixed-length placeholder for measurement so the post-sign size
34
34
  * is correct either way.
@@ -83,7 +83,7 @@ export function fillPadding(env, cfg = {}) {
83
83
  /**
84
84
  * Build a string of exactly `targetLen` base64-alphabet characters,
85
85
  * drawn from a CSPRNG. The bulk is a base64 encoding of CSPRNG
86
- * bytes; the final 13 characters (when targetLen is not reachable
86
+ * bytes; the final 1-3 characters (when targetLen is not reachable
87
87
  * by `btoa` 4-character chunks) are CSPRNG-seeded alphabet
88
88
  * characters appended for length alignment per §2.4.2.
89
89
  */
@@ -96,7 +96,7 @@ export function buildPaddingValue(targetLen, rand = defaultRand) {
96
96
  }
97
97
  // base64 emits 4 chars per 3 input bytes. Pick the largest
98
98
  // multiple of 4 ≤ targetLen as the base64-encoded portion; the
99
- // remainder (03 chars) is filled from the alphabet pool.
99
+ // remainder (0-3 chars) is filled from the alphabet pool.
100
100
  const baseChars = targetLen - (targetLen % 4);
101
101
  const inputBytes = (baseChars / 4) * 3;
102
102
  const out = [];
@@ -15,7 +15,7 @@ import { type Envelope } from "./compose.js";
15
15
  * true when the Ed25519 signature over the canonical envelope bytes
16
16
  * (prefixed with `SEMP-ENVELOPE:`) verifies. Does NOT cross-check
17
17
  * that the supplied public key actually belongs to the
18
- * `postmark.from_domain` that lookup is the caller's responsibility.
18
+ * `postmark.from_domain` - that lookup is the caller's responsibility.
19
19
  */
20
20
  export declare function verifySealSignature(env: Envelope, senderDomainPub: Uint8Array): boolean;
21
21
  /**
@@ -19,7 +19,7 @@ const EnvelopePrefix = "SEMP-ENVELOPE:";
19
19
  * true when the Ed25519 signature over the canonical envelope bytes
20
20
  * (prefixed with `SEMP-ENVELOPE:`) verifies. Does NOT cross-check
21
21
  * that the supplied public key actually belongs to the
22
- * `postmark.from_domain` that lookup is the caller's responsibility.
22
+ * `postmark.from_domain` - that lookup is the caller's responsibility.
23
23
  */
24
24
  export function verifySealSignature(env, senderDomainPub) {
25
25
  if (env.seal?.signature === undefined || env.seal.signature === "") {
@@ -4,4 +4,5 @@
4
4
  * @module
5
5
  */
6
6
  export { type Entry, type Layer, type Map, type RegistryEntry, KeyError, MaxKeyLength, NamespacePrefixCore, Registry, SizeError, UnsupportedError, maxBytesFor, validate, validateKey, validateSize, } from "./limits.js";
7
+ export { type ValidationFailureCode, type ValidationFailureItem, type ValidationFailureRejection, DefinitionPathPrefix, newValidationFailureRejection, } from "./validation_failure.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC"}
@@ -4,4 +4,5 @@
4
4
  * @module
5
5
  */
6
6
  export { KeyError, MaxKeyLength, NamespacePrefixCore, Registry, SizeError, UnsupportedError, maxBytesFor, validate, validateKey, validateSize, } from "./limits.js";
7
+ export { DefinitionPathPrefix, newValidationFailureRejection, } from "./validation_failure.js";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKL,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKL,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAIL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * ```
9
9
  *
10
10
  * Per-layer byte-size ceilings (§4) are enforced before signature
11
- * verification an over-large `extensions` map MUST be rejected
11
+ * verification - an over-large `extensions` map MUST be rejected
12
12
  * outright, regardless of any signature it might carry.
13
13
  *
14
14
  * Required extensions a recipient does not understand MUST be
@@ -90,7 +90,7 @@ export declare function validateKey(key: string): Error | null;
90
90
  * ({@link SizeError})
91
91
  *
92
92
  * Non-required (`required: false`) extensions are passed through
93
- * unconditionally the receiver is free to ignore them.
93
+ * unconditionally - the receiver is free to ignore them.
94
94
  */
95
95
  export declare function validate(registry: Registry | null, layer: Layer, m: Map | null | undefined): Error | null;
96
96
  /**
@@ -8,7 +8,7 @@
8
8
  * ```
9
9
  *
10
10
  * Per-layer byte-size ceilings (§4) are enforced before signature
11
- * verification an over-large `extensions` map MUST be rejected
11
+ * verification - an over-large `extensions` map MUST be rejected
12
12
  * outright, regardless of any signature it might carry.
13
13
  *
14
14
  * Required extensions a recipient does not understand MUST be
@@ -121,7 +121,7 @@ export function validateKey(key) {
121
121
  * ({@link SizeError})
122
122
  *
123
123
  * Non-required (`required: false`) extensions are passed through
124
- * unconditionally the receiver is free to ignore them.
124
+ * unconditionally - the receiver is free to ignore them.
125
125
  */
126
126
  export function validate(registry, layer, m) {
127
127
  if (m === null || m === undefined || Object.keys(m).length === 0) {
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Canonical URL path prefix at which an extension's definition
3
+ * document is published per EXTENSIONS.md §3.5 and RFC 8615. The
4
+ * full URL is
5
+ * "https://<host>" + DefinitionPathPrefix + "<name>.json"
6
+ * where <name> is the namespace-prefixed identifier such as
7
+ * "semp.dev/foo" or "vendor.example.com/feature1".
8
+ */
9
+ export declare const DefinitionPathPrefix = "/.well-known/semp-extensions/";
10
+ /**
11
+ * Extension validation failure reporting per EXTENSIONS.md §3.9.3.
12
+ *
13
+ * Runtime validation failures across one or more extensions in an
14
+ * envelope are reported with the `extension_unsupported` reason
15
+ * code and an `errors` array carrying per-extension diagnostics.
16
+ * Implementations MAY stop at the first failure and report a
17
+ * single-entry array or continue and report all failures.
18
+ *
19
+ * @module
20
+ */
21
+ /** Defined validation_failure diagnostics per §3.9.3 table. */
22
+ export type ValidationFailureCode = "definition_unfetchable" | "definition_signature_invalid" | "data_schema_mismatch" | "placement_violation" | "authority_violation" | "dependency_unsatisfied" | "conflict_present";
23
+ /** Single entry in the §3.9.3 `errors` array. */
24
+ export interface ValidationFailureItem {
25
+ extension: string;
26
+ validation_failure: ValidationFailureCode;
27
+ }
28
+ /**
29
+ * Envelope-rejection wire shape carrying one or more extension
30
+ * validation failures. The reason_code is always
31
+ * `extension_unsupported`; per-rule diagnostics live in
32
+ * `errors[i].validation_failure`.
33
+ */
34
+ export interface ValidationFailureRejection {
35
+ type: "SEMP_ENVELOPE";
36
+ step: "rejected";
37
+ version: string;
38
+ reason_code: "extension_unsupported";
39
+ reason: string;
40
+ errors: ValidationFailureItem[];
41
+ }
42
+ /**
43
+ * Wrap one or more validation failures in the §3.9.3 envelope
44
+ * rejection. The reason defaults to "Extension validation failed"
45
+ * when omitted.
46
+ */
47
+ export declare function newValidationFailureRejection(items: ValidationFailureItem[], reason?: string): ValidationFailureRejection;
48
+ //# sourceMappingURL=validation_failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation_failure.d.ts","sourceRoot":"","sources":["../../src/extensions/validation_failure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,kCAAkC,CAAC;AAEpE;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAC7B,wBAAwB,GACxB,8BAA8B,GAC9B,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,wBAAwB,GACxB,kBAAkB,CAAC;AAEvB,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,qBAAqB,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,uBAAuB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,qBAAqB,EAAE,EAC9B,MAAM,SAAgC,GACrC,0BAA0B,CAS5B"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Canonical URL path prefix at which an extension's definition
3
+ * document is published per EXTENSIONS.md §3.5 and RFC 8615. The
4
+ * full URL is
5
+ * "https://<host>" + DefinitionPathPrefix + "<name>.json"
6
+ * where <name> is the namespace-prefixed identifier such as
7
+ * "semp.dev/foo" or "vendor.example.com/feature1".
8
+ */
9
+ export const DefinitionPathPrefix = "/.well-known/semp-extensions/";
10
+ /**
11
+ * Wrap one or more validation failures in the §3.9.3 envelope
12
+ * rejection. The reason defaults to "Extension validation failed"
13
+ * when omitted.
14
+ */
15
+ export function newValidationFailureRejection(items, reason = "Extension validation failed") {
16
+ return {
17
+ type: "SEMP_ENVELOPE",
18
+ step: "rejected",
19
+ version: "1.0.0",
20
+ reason_code: "extension_unsupported",
21
+ reason,
22
+ errors: items,
23
+ };
24
+ }
25
+ //# sourceMappingURL=validation_failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation_failure.js","sourceRoot":"","sources":["../../src/extensions/validation_failure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,+BAA+B,CAAC;AA6CpE;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAA8B,EAC9B,MAAM,GAAG,6BAA6B;IAEtC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,uBAAuB;QACpC,MAAM;QACN,MAAM,EAAE,KAAK;KACd,CAAC;AACJ,CAAC"}
@@ -30,7 +30,7 @@ export declare function isChallengeInvalid(err: unknown): err is ChallengeInvali
30
30
  /**
31
31
  * Build an unsigned client-initiator abort message per §2.2a.6.
32
32
  *
33
- * The wire shape is `party: "client"` with no `server_signature`
33
+ * The wire shape is `party: "client"` with no `server_signature` -
34
34
  * the initiator has not authenticated to the server at this point
35
35
  * and MUST NOT do so as part of an abort.
36
36
  *
@@ -38,7 +38,7 @@ export function isChallengeInvalid(err) {
38
38
  /**
39
39
  * Build an unsigned client-initiator abort message per §2.2a.6.
40
40
  *
41
- * The wire shape is `party: "client"` with no `server_signature`
41
+ * The wire shape is `party: "client"` with no `server_signature` -
42
42
  * the initiator has not authenticated to the server at this point
43
43
  * and MUST NOT do so as part of an abort.
44
44
  *
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Mirror of `semp-go/handshake.Client`: a state machine the caller
5
5
  * drives over a transport. The class never performs network I/O
6
- * directly the caller moves bytes between this object and the
6
+ * directly - the caller moves bytes between this object and the
7
7
  * underlying transport.
8
8
  *
9
9
  * Lifecycle:
@@ -90,7 +90,7 @@ export interface HandshakeClientSession {
90
90
  export { HandshakeRejectedError };
91
91
  /**
92
92
  * Stateful handshake client. One instance handles exactly one
93
- * handshake discard after success or error. Re-using an instance
93
+ * handshake - discard after success or error. Re-using an instance
94
94
  * is a programming error (the state machine is single-shot).
95
95
  */
96
96
  export declare class HandshakeClient {
@@ -109,7 +109,7 @@ export declare class HandshakeClient {
109
109
  private serverIdProofSignature;
110
110
  private resumptionSecret;
111
111
  private resumeNonce;
112
- /** Final session populated by {@link onAccepted}. */
112
+ /** Final session - populated by {@link onAccepted}. */
113
113
  private finalSession;
114
114
  constructor(cfg: HandshakeClientConfig);
115
115
  /**
@@ -124,12 +124,12 @@ export declare class HandshakeClient {
124
124
  *
125
125
  * Throws {@link ChallengeInvalidError} when the difficulty
126
126
  * exceeds the protocol cap or the challenge has already
127
- * expired the caller follows up with a §2.2a.6 client abort.
127
+ * expired - the caller follows up with a §2.2a.6 client abort.
128
128
  */
129
129
  onChallenge(data: Uint8Array): Promise<Uint8Array>;
130
130
  /**
131
131
  * Process the server's RESPONSE, derive session keys, and produce
132
- * CONFIRM bytes per §2.3 §2.5. The ephemeral private key is
132
+ * CONFIRM bytes per §2.3 - §2.5. The ephemeral private key is
133
133
  * zeroed before return.
134
134
  */
135
135
  onResponse(data: Uint8Array): Uint8Array;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Mirror of `semp-go/handshake.Client`: a state machine the caller
5
5
  * drives over a transport. The class never performs network I/O
6
- * directly the caller moves bytes between this object and the
6
+ * directly - the caller moves bytes between this object and the
7
7
  * underlying transport.
8
8
  *
9
9
  * Lifecycle:
@@ -55,7 +55,7 @@ const POW_HARDCAP = MaxPoWDifficulty;
55
55
  export { HandshakeRejectedError };
56
56
  /**
57
57
  * Stateful handshake client. One instance handles exactly one
58
- * handshake discard after success or error. Re-using an instance
58
+ * handshake - discard after success or error. Re-using an instance
59
59
  * is a programming error (the state machine is single-shot).
60
60
  */
61
61
  export class HandshakeClient {
@@ -78,7 +78,7 @@ export class HandshakeClient {
78
78
  // Resume state (HANDSHAKE.md §2.8).
79
79
  resumptionSecret = null;
80
80
  resumeNonce = null;
81
- /** Final session populated by {@link onAccepted}. */
81
+ /** Final session - populated by {@link onAccepted}. */
82
82
  finalSession = null;
83
83
  constructor(cfg) {
84
84
  if (cfg.suite !== "x25519-chacha20-poly1305" &&
@@ -151,7 +151,7 @@ export class HandshakeClient {
151
151
  *
152
152
  * Throws {@link ChallengeInvalidError} when the difficulty
153
153
  * exceeds the protocol cap or the challenge has already
154
- * expired the caller follows up with a §2.2a.6 client abort.
154
+ * expired - the caller follows up with a §2.2a.6 client abort.
155
155
  */
156
156
  async onChallenge(data) {
157
157
  if (this.initCanonical === null) {
@@ -206,7 +206,7 @@ export class HandshakeClient {
206
206
  }
207
207
  /**
208
208
  * Process the server's RESPONSE, derive session keys, and produce
209
- * CONFIRM bytes per §2.3 §2.5. The ephemeral private key is
209
+ * CONFIRM bytes per §2.3 - §2.5. The ephemeral private key is
210
210
  * zeroed before return.
211
211
  */
212
212
  onResponse(data) {
@@ -11,8 +11,8 @@
11
11
  /**
12
12
  * Compute SHA-256 over the concatenation of canonical(message_1)
13
13
  * and canonical(message_2). The caller MUST pass the canonical
14
- * bytes sorted keys, no insignificant whitespace, as defined in
15
- * ENVELOPE.md §4.3 not the wire-format bytes.
14
+ * bytes - sorted keys, no insignificant whitespace, as defined in
15
+ * ENVELOPE.md §4.3 - not the wire-format bytes.
16
16
  *
17
17
  * The output is the 32-byte digest the client signs as part of its
18
18
  * identity proof.
@@ -12,8 +12,8 @@ import { sha256 } from "@noble/hashes/sha2.js";
12
12
  /**
13
13
  * Compute SHA-256 over the concatenation of canonical(message_1)
14
14
  * and canonical(message_2). The caller MUST pass the canonical
15
- * bytes sorted keys, no insignificant whitespace, as defined in
16
- * ENVELOPE.md §4.3 not the wire-format bytes.
15
+ * bytes - sorted keys, no insignificant whitespace, as defined in
16
+ * ENVELOPE.md §4.3 - not the wire-format bytes.
17
17
  *
18
18
  * The output is the 32-byte digest the client signs as part of its
19
19
  * identity proof.
@@ -76,7 +76,7 @@ export interface ClientConfig {
76
76
  * AEAD-Seal under K_enc_c2s with AAD = session_id.
77
77
  *
78
78
  * When omitted (the default), the driver leaves identity_proof
79
- * empty the higher-level client wraps runClient with its
79
+ * empty - the higher-level client wraps runClient with its
80
80
  * own auth supply.
81
81
  */
82
82
  identity?: {
@@ -131,7 +131,7 @@ export declare class HandshakeRejectedError extends Error {
131
131
  *
132
132
  * On error the transport is closed so the peer's pending `receive`
133
133
  * unblocks. Successful completion leaves the transport owned by
134
- * the returned Session closing the Session closes the transport.
134
+ * the returned Session - closing the Session closes the transport.
135
135
  */
136
136
  export declare function runClient(transport: Transport, config: ClientConfig): Promise<Session>;
137
137
  //# sourceMappingURL=driver.d.ts.map
@@ -59,7 +59,7 @@ export class HandshakeRejectedError extends Error {
59
59
  *
60
60
  * On error the transport is closed so the peer's pending `receive`
61
61
  * unblocks. Successful completion leaves the transport owned by
62
- * the returned Session closing the Session closes the transport.
62
+ * the returned Session - closing the Session closes the transport.
63
63
  */
64
64
  export async function runClient(transport, config) {
65
65
  if (config.suite !== "x25519-chacha20-poly1305" &&
@@ -2,7 +2,7 @@
2
2
  * Federation handshake (server ↔ server) per HANDSHAKE.md §5.
3
3
  *
4
4
  * Two servers establish a federation session by exchanging four
5
- * messages symmetric in shape to the client handshake but with
5
+ * messages - symmetric in shape to the client handshake but with
6
6
  * domain identity in plaintext on both sides plus a domain-proof
7
7
  * verification step:
8
8
  *
@@ -23,6 +23,11 @@
23
23
  */
24
24
  import { type SessionKeys } from "../crypto/index.js";
25
25
  import { type Capabilities, type Negotiated, type ResumptionTicket } from "./messages.js";
26
+ /**
27
+ * Algorithm suites the federation handshake supports. Mirrors the
28
+ * client handshake's {@link "./driver".HandshakeSuite}.
29
+ */
30
+ export type FederationSuite = "x25519-chacha20-poly1305" | "pq-kyber768-x25519";
26
31
  /** Wire-level discriminators (shared with the client handshake). */
27
32
  export declare const FederationMessageType = "SEMP_HANDSHAKE";
28
33
  /**
@@ -181,7 +186,7 @@ export interface FederationResume {
181
186
  /**
182
187
  * Domain-ownership verifier invoked by the responder during the
183
188
  * handshake. `verify` resolves on success; rejects (or throws) on
184
- * failure the rejection reason is surfaced in
189
+ * failure - the rejection reason is surfaced in
185
190
  * {@link DomainVerificationResult.detail}.
186
191
  */
187
192
  export interface DomainVerifier {
@@ -189,7 +194,7 @@ export interface DomainVerifier {
189
194
  }
190
195
  /**
191
196
  * Permissive verifier that accepts every proof. Tests / single-
192
- * process deployments only production MUST NOT use it.
197
+ * process deployments only - production MUST NOT use it.
193
198
  */
194
199
  export declare class TrustingDomainVerifier implements DomainVerifier {
195
200
  verify(): Promise<void>;
@@ -197,7 +202,7 @@ export declare class TrustingDomainVerifier implements DomainVerifier {
197
202
  /**
198
203
  * Decide which of two simultaneously-initiated federation handshakes
199
204
  * proceeds per SESSION.md §2.5.2. Both peers agree on the winner
200
- * without external coordination lexicographic compare provides
205
+ * without external coordination - lexicographic compare provides
201
206
  * exactly this property.
202
207
  *
203
208
  * Returns the winning `session_id` (the one that proceeds).
@@ -209,8 +214,15 @@ export type PolicyAcceptor = (policy: FederationPolicy) => string | null;
209
214
  export declare const acceptAllPolicies: PolicyAcceptor;
210
215
  /** Configuration for {@link FederationInitiator}. */
211
216
  export interface FederationInitiatorConfig {
212
- /** Algorithm suite. v1: `"x25519-chacha20-poly1305"`. */
213
- suite: "x25519-chacha20-poly1305";
217
+ /**
218
+ * Algorithm suite. Either `"x25519-chacha20-poly1305"` (baseline)
219
+ * or `"pq-kyber768-x25519"` (hybrid post-quantum); the latter
220
+ * generates a 1216-byte hybrid ephemeral pub and decapsulates the
221
+ * responder's 1120-byte hybrid KEM ciphertext per ENVELOPE.md
222
+ * §4.4.1. The negotiated suite recorded on the wire is taken from
223
+ * this field; for multi-suite operators, run multiple initiators.
224
+ */
225
+ suite: FederationSuite;
214
226
  /** Capability set to advertise. */
215
227
  capabilities: Capabilities;
216
228
  /** Initiator's own domain. */
@@ -246,7 +258,7 @@ export interface FederationInitiatorSession {
246
258
  }
247
259
  /**
248
260
  * Stateful federation initiator. Mirror of `semp-go/handshake.Initiator`.
249
- * Single-shot discard after success or error.
261
+ * Single-shot - discard after success or error.
250
262
  */
251
263
  export declare class FederationInitiator {
252
264
  private readonly cfg;
@@ -293,7 +305,13 @@ export declare class FederationInitiator {
293
305
  }
294
306
  /** Configuration for {@link FederationResponder}. */
295
307
  export interface FederationResponderConfig {
296
- suite: "x25519-chacha20-poly1305";
308
+ /**
309
+ * Algorithm suite. Either `"x25519-chacha20-poly1305"` (baseline)
310
+ * or `"pq-kyber768-x25519"` (hybrid post-quantum). The responder
311
+ * accepts only this suite during negotiation; multi-suite support
312
+ * requires running multiple responders.
313
+ */
314
+ suite: FederationSuite;
297
315
  capabilities: Capabilities;
298
316
  /** Responder's own domain. */
299
317
  localDomain: string;
@@ -325,7 +343,7 @@ export interface FederationResponderSession {
325
343
  }
326
344
  /**
327
345
  * Stateful federation responder. Mirror of `semp-go/handshake.Responder`.
328
- * Single-shot discard after success or error.
346
+ * Single-shot - discard after success or error.
329
347
  */
330
348
  export declare class FederationResponder {
331
349
  private readonly cfg;
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/handshake/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/handshake/federation.ts"],"names":[],"mappings":"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"}