@sempdev/semp 0.5.2 → 0.5.5
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/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.js +2 -2
- 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 +6 -6
- package/dist/handshake/federation.js +5 -5
- 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/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 +1 -1
- package/dist/keys/sign.js +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
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The new provider builds a 3-signature submission record and POSTs
|
|
6
6
|
* it to the old provider's migration endpoint. The old provider
|
|
7
|
-
* verifies the three submitted signatures, applies its
|
|
7
|
+
* verifies the three submitted signatures, applies its notice
|
|
8
8
|
* policy, registers the §6 lockout, countersigns, persists, and
|
|
9
9
|
* returns the final 4-signature record.
|
|
10
10
|
*
|
|
11
|
-
* Unilateral mode skips the countersign step
|
|
11
|
+
* Unilateral mode skips the countersign step - the new provider's
|
|
12
12
|
* 3-signature record is the final published form.
|
|
13
13
|
*
|
|
14
14
|
* @module
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
import {} from "./lockout.js";
|
|
17
17
|
import {} from "./publication_store.js";
|
|
18
18
|
import { checkMigratedAtBound, prepareSignatures, signNewDomain, signNewIdentity, signOldDomain, signOldIdentity, validateMigrationRecord, verifyMigrationPass, } from "./sign.js";
|
|
19
|
-
import {
|
|
19
|
+
import { MaxNoticeWindowMs, MigrationRecordType, MigrationRecordVersion, MinNoticeWindowMs, } from "./types.js";
|
|
20
20
|
/**
|
|
21
|
-
* Construct and apply the new-provider signatures (passes 1
|
|
21
|
+
* Construct and apply the new-provider signatures (passes 1-3). In
|
|
22
22
|
* cooperative mode the returned record's `old_domain_signature`
|
|
23
|
-
* slot is prepared but empty
|
|
23
|
+
* slot is prepared but empty - the new provider POSTs the record
|
|
24
24
|
* to the old provider, who runs {@link acceptSubmission} to verify
|
|
25
25
|
* and countersign.
|
|
26
26
|
*/
|
|
@@ -43,14 +43,14 @@ export function buildSubmission(input) {
|
|
|
43
43
|
if (input.mode !== "cooperative" && input.mode !== "unilateral") {
|
|
44
44
|
throw new Error(`migration: unknown mode ${JSON.stringify(input.mode)}`);
|
|
45
45
|
}
|
|
46
|
-
let
|
|
46
|
+
let noticeUntil = null;
|
|
47
47
|
if (input.mode === "cooperative") {
|
|
48
|
-
const windowMs = input.
|
|
49
|
-
if (windowMs <
|
|
50
|
-
throw new Error(`migration:
|
|
48
|
+
const windowMs = input.noticeWindowMs ?? 0;
|
|
49
|
+
if (windowMs < MinNoticeWindowMs) {
|
|
50
|
+
throw new Error(`migration: notice window ${windowMs} below minimum ${MinNoticeWindowMs}`);
|
|
51
51
|
}
|
|
52
|
-
if (windowMs >
|
|
53
|
-
throw new Error(`migration:
|
|
52
|
+
if (windowMs > MaxNoticeWindowMs) {
|
|
53
|
+
throw new Error(`migration: notice window ${windowMs} exceeds maximum ${MaxNoticeWindowMs}`);
|
|
54
54
|
}
|
|
55
55
|
if (input.oldDomainKeyId === undefined || input.oldDomainKeyId === "") {
|
|
56
56
|
throw new Error("migration: cooperative mode requires oldDomainKeyId (looked up from the old provider's discovery configuration)");
|
|
@@ -59,7 +59,7 @@ export function buildSubmission(input) {
|
|
|
59
59
|
if (Number.isNaN(migratedMs)) {
|
|
60
60
|
throw new Error("migration: migrated_at is not ISO 8601");
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
noticeUntil = new Date(migratedMs + windowMs).toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
63
63
|
}
|
|
64
64
|
const recordId = input.recordId ?? newRecordID(input.rand);
|
|
65
65
|
const record = {
|
|
@@ -72,7 +72,7 @@ export function buildSubmission(input) {
|
|
|
72
72
|
new_identity_key_id: input.newIdentityKeyId,
|
|
73
73
|
new_identity_public_key: input.newIdentityPublicKey,
|
|
74
74
|
migrated_at: input.migratedAt,
|
|
75
|
-
|
|
75
|
+
notice_window_until: noticeUntil,
|
|
76
76
|
mode: input.mode,
|
|
77
77
|
old_identity_signature: { algorithm: "", key_id: "", value: "" },
|
|
78
78
|
new_identity_signature: { algorithm: "", key_id: "", value: "" },
|
|
@@ -87,11 +87,11 @@ export function buildSubmission(input) {
|
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* Old-provider side of cooperative migration: verify the 3
|
|
90
|
-
* submitted signatures, apply optional
|
|
90
|
+
* submitted signatures, apply optional notice policy, register
|
|
91
91
|
* the §6 lockout, countersign with `old_domain_priv`, persist via
|
|
92
92
|
* the store, and return the 4-sig record.
|
|
93
93
|
*
|
|
94
|
-
* In unilateral mode this throws
|
|
94
|
+
* In unilateral mode this throws - there is no countersignature
|
|
95
95
|
* step in the unilateral flow.
|
|
96
96
|
*/
|
|
97
97
|
export async function acceptSubmission(input) {
|
|
@@ -101,7 +101,7 @@ export async function acceptSubmission(input) {
|
|
|
101
101
|
}
|
|
102
102
|
validateMigrationRecord(r);
|
|
103
103
|
// Verify the three submitted signatures (the §3.3 chain is not
|
|
104
|
-
// yet complete
|
|
104
|
+
// yet complete - the old domain signature has not been added -
|
|
105
105
|
// so verify each prior pass individually rather than calling the
|
|
106
106
|
// full verifyMigrationRecord.)
|
|
107
107
|
const newIdentityPub = base64Decode(r.new_identity_public_key);
|
|
@@ -116,13 +116,13 @@ export async function acceptSubmission(input) {
|
|
|
116
116
|
}
|
|
117
117
|
// §3.3 migrated_at bound.
|
|
118
118
|
checkMigratedAtBound(r, input.oldIdentityCreated ?? null, input.now, input.clockSkewMs);
|
|
119
|
-
// Optional
|
|
120
|
-
if (input.
|
|
121
|
-
await input.
|
|
119
|
+
// Optional notice-policy hook.
|
|
120
|
+
if (input.noticePolicy !== undefined) {
|
|
121
|
+
await input.noticePolicy(r);
|
|
122
122
|
}
|
|
123
|
-
// Register lockout for the duration of the
|
|
124
|
-
if (input.lockout !== undefined && r.
|
|
125
|
-
const untilMs = Date.parse(r.
|
|
123
|
+
// Register lockout for the duration of the notice window.
|
|
124
|
+
if (input.lockout !== undefined && r.notice_window_until !== null) {
|
|
125
|
+
const untilMs = Date.parse(r.notice_window_until);
|
|
126
126
|
if (!Number.isNaN(untilMs)) {
|
|
127
127
|
const localpart = r.old_address.includes("@")
|
|
128
128
|
? r.old_address.split("@")[0] ?? r.old_address
|
|
@@ -158,7 +158,7 @@ export async function applyThirdPartyPolicy(record, policy) {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
// ---------------------------------------------------------------------------
|
|
161
|
-
// Helpers (inline ULID minter
|
|
161
|
+
// Helpers (inline ULID minter - same shape as elsewhere)
|
|
162
162
|
const ULID_ALPHABET = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
|
|
163
163
|
function newRecordID(rand) {
|
|
164
164
|
const r = rand ?? defaultRand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/migration/orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEN,MAAM,cAAc,CAAC;AACtB,OAAO,EAEN,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAGL,
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/migration/orchestrate.ts"],"names":[],"mappings":"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"}
|
package/dist/migration/sign.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { marshal as canonicalMarshal } from "../canonical/index.js";
|
|
18
18
|
import { sign as ed25519Sign, verify as ed25519Verify, } from "../keys/index.js";
|
|
19
|
-
import {
|
|
19
|
+
import { MaxNoticeWindowMs, MigrationPrefix, MigrationRecordType, MinNoticeWindowMs, SignatureAlgorithmEd25519, } from "./types.js";
|
|
20
20
|
/** Order of signature slots per §3.3. */
|
|
21
21
|
const SIGNATURE_FIELDS = [
|
|
22
22
|
"old_identity_signature",
|
|
@@ -173,19 +173,19 @@ export function validateMigrationRecord(r) {
|
|
|
173
173
|
throw new Error(`migration: mode ${JSON.stringify(r.mode)} is invalid`);
|
|
174
174
|
}
|
|
175
175
|
if (r.mode === "cooperative") {
|
|
176
|
-
if (typeof r.
|
|
177
|
-
throw new Error("migration: cooperative mode MUST set
|
|
176
|
+
if (typeof r.notice_window_until !== "string" || r.notice_window_until === "") {
|
|
177
|
+
throw new Error("migration: cooperative mode MUST set notice_window_until");
|
|
178
178
|
}
|
|
179
|
-
const untilMs = Date.parse(r.
|
|
179
|
+
const untilMs = Date.parse(r.notice_window_until);
|
|
180
180
|
if (Number.isNaN(untilMs)) {
|
|
181
|
-
throw new Error("migration:
|
|
181
|
+
throw new Error("migration: notice_window_until is not ISO 8601");
|
|
182
182
|
}
|
|
183
183
|
const window = untilMs - migratedMs;
|
|
184
|
-
if (window <
|
|
185
|
-
throw new Error(`migration: cooperative
|
|
184
|
+
if (window < MinNoticeWindowMs) {
|
|
185
|
+
throw new Error(`migration: cooperative notice window ${window} below minimum ${MinNoticeWindowMs}`);
|
|
186
186
|
}
|
|
187
|
-
if (window >
|
|
188
|
-
throw new Error(`migration: cooperative
|
|
187
|
+
if (window > MaxNoticeWindowMs) {
|
|
188
|
+
throw new Error(`migration: cooperative notice window ${window} exceeds maximum ${MaxNoticeWindowMs}`);
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
for (const f of [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/migration/sign.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/migration/sign.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Wire-record types and constants for SEMP_MIGRATION per
|
|
3
|
-
* MIGRATION.md §3.
|
|
3
|
+
* MIGRATION.md §3 and §5.
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
@@ -9,20 +9,18 @@ export declare const MigrationRecordType = "SEMP_MIGRATION";
|
|
|
9
9
|
export declare const MigrationRecordVersion = "1.0.0";
|
|
10
10
|
/** Domain-separation prefix per ENVELOPE.md §4.3. */
|
|
11
11
|
export declare const MigrationPrefix = "SEMP-MIGRATION-RECORD:";
|
|
12
|
-
/** Notice message type per §4. */
|
|
13
|
-
export declare const MigrationNoticeType = "SEMP_MIGRATION_NOTICE";
|
|
14
12
|
/** Migration mode per §2. */
|
|
15
13
|
export type MigrationMode = "cooperative" | "unilateral";
|
|
16
14
|
/**
|
|
17
|
-
*
|
|
15
|
+
* Notice window bounds per §5.1, in milliseconds.
|
|
18
16
|
*
|
|
19
17
|
* - Min: 30 days (cooperative servers MUST NOT accept below this)
|
|
20
18
|
* - Recommended: 180 days
|
|
21
19
|
* - Max: 730 days (~2 years; servers MAY decline above this)
|
|
22
20
|
*/
|
|
23
|
-
export declare const
|
|
24
|
-
export declare const
|
|
25
|
-
export declare const
|
|
21
|
+
export declare const MinNoticeWindowMs: number;
|
|
22
|
+
export declare const RecommendedNoticeWindowMs: number;
|
|
23
|
+
export declare const MaxNoticeWindowMs: number;
|
|
26
24
|
/** Only signature algorithm currently defined for migration records. */
|
|
27
25
|
export declare const SignatureAlgorithmEd25519 = "ed25519";
|
|
28
26
|
/** Reusable signature block. */
|
|
@@ -45,10 +43,16 @@ export interface MigrationRecord {
|
|
|
45
43
|
/** ISO 8601 UTC. */
|
|
46
44
|
migrated_at: string;
|
|
47
45
|
/**
|
|
48
|
-
* ISO 8601 UTC
|
|
49
|
-
*
|
|
46
|
+
* ISO 8601 UTC end of the migration notice window. During this
|
|
47
|
+
* window the old provider returns policy_forbidden with a
|
|
48
|
+
* migration_notice body and key fetches carry a migration_to
|
|
49
|
+
* field. After the window the old provider stops returning the
|
|
50
|
+
* notice and handles the old address the same way it handles
|
|
51
|
+
* non-existent addresses. Null when no notice window is offered
|
|
52
|
+
* (typical for unilateral mode where the old provider is
|
|
53
|
+
* non-cooperative).
|
|
50
54
|
*/
|
|
51
|
-
|
|
55
|
+
notice_window_until: string | null;
|
|
52
56
|
mode: MigrationMode;
|
|
53
57
|
old_identity_signature: MigrationSignatureBlock;
|
|
54
58
|
new_identity_signature: MigrationSignatureBlock;
|
|
@@ -63,30 +67,32 @@ export interface MigrationRecord {
|
|
|
63
67
|
extensions?: Record<string, unknown>;
|
|
64
68
|
}
|
|
65
69
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
70
|
+
* Migration notice body field attached to a policy_forbidden
|
|
71
|
+
* envelope rejection emitted by the old provider during the
|
|
72
|
+
* migration notice window per §5.3. The sender's client surfaces
|
|
73
|
+
* the new_address to the user and offers an address-book update;
|
|
74
|
+
* the client MUST NOT auto-redirect correspondence.
|
|
68
75
|
*/
|
|
69
76
|
export interface MigrationNotice {
|
|
70
|
-
|
|
71
|
-
version: string;
|
|
72
|
-
/** ULID for the notice. */
|
|
73
|
-
notice_id: string;
|
|
74
|
-
/** Reference to the published migration record. */
|
|
75
|
-
record_id: string;
|
|
76
|
-
/** URL where the migration record can be fetched. */
|
|
77
|
-
record_url: string;
|
|
78
|
-
/** Old address (the one the sender attempted to deliver to). */
|
|
79
|
-
old_address: string;
|
|
80
|
-
/** New address the sender SHOULD redirect to. */
|
|
77
|
+
/** Address the sender SHOULD redirect to after user confirmation. */
|
|
81
78
|
new_address: string;
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
|
|
79
|
+
/** ULID of the published migration record. */
|
|
80
|
+
migration_record_id: string;
|
|
81
|
+
/** Optional URL where the migration record can be fetched. */
|
|
82
|
+
migration_record_url?: string;
|
|
86
83
|
}
|
|
87
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* Envelope-rejection wire shape carrying a {@link MigrationNotice}
|
|
86
|
+
* body. The old provider's HTTP layer emits this as the
|
|
87
|
+
* SEMP_ENVELOPE step=rejected response for envelopes addressed to
|
|
88
|
+
* a migrated address during the notice window per §5.3.
|
|
89
|
+
*/
|
|
88
90
|
export interface MigrationNoticeRejection {
|
|
89
|
-
|
|
91
|
+
type: "SEMP_ENVELOPE";
|
|
92
|
+
step: "rejected";
|
|
93
|
+
version: string;
|
|
94
|
+
reason_code: "policy_forbidden";
|
|
90
95
|
reason: string;
|
|
96
|
+
migration_notice: MigrationNotice;
|
|
91
97
|
}
|
|
92
98
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sCAAsC;AACtC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,qDAAqD;AACrD,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sCAAsC;AACtC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,qDAAqD;AACrD,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,6BAA6B;AAC7B,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAA2B,CAAC;AAC1D,eAAO,MAAM,yBAAyB,QAA4B,CAAC;AACnE,eAAO,MAAM,iBAAiB,QAA4B,CAAC;AAE3D,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,YAAY,CAAC;AAEnD,gCAAgC;AAChC,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,mBAAmB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,aAAa,CAAC;IAEpB,sBAAsB,EAAE,uBAAuB,CAAC;IAChD,sBAAsB,EAAE,uBAAuB,CAAC;IAChD,oBAAoB,EAAE,uBAAuB,CAAC;IAC9C,qEAAqE;IACrE,oBAAoB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,kBAAkB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,eAAe,CAAC;CACnC"}
|
package/dist/migration/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Wire-record types and constants for SEMP_MIGRATION per
|
|
3
|
-
* MIGRATION.md §3.
|
|
3
|
+
* MIGRATION.md §3 and §5.
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
@@ -9,18 +9,16 @@ export const MigrationRecordType = "SEMP_MIGRATION";
|
|
|
9
9
|
export const MigrationRecordVersion = "1.0.0";
|
|
10
10
|
/** Domain-separation prefix per ENVELOPE.md §4.3. */
|
|
11
11
|
export const MigrationPrefix = "SEMP-MIGRATION-RECORD:";
|
|
12
|
-
/** Notice message type per §4. */
|
|
13
|
-
export const MigrationNoticeType = "SEMP_MIGRATION_NOTICE";
|
|
14
12
|
/**
|
|
15
|
-
*
|
|
13
|
+
* Notice window bounds per §5.1, in milliseconds.
|
|
16
14
|
*
|
|
17
15
|
* - Min: 30 days (cooperative servers MUST NOT accept below this)
|
|
18
16
|
* - Recommended: 180 days
|
|
19
17
|
* - Max: 730 days (~2 years; servers MAY decline above this)
|
|
20
18
|
*/
|
|
21
|
-
export const
|
|
22
|
-
export const
|
|
23
|
-
export const
|
|
19
|
+
export const MinNoticeWindowMs = 30 * 24 * 60 * 60 * 1000;
|
|
20
|
+
export const RecommendedNoticeWindowMs = 180 * 24 * 60 * 60 * 1000;
|
|
21
|
+
export const MaxNoticeWindowMs = 730 * 24 * 60 * 60 * 1000;
|
|
24
22
|
/** Only signature algorithm currently defined for migration records. */
|
|
25
23
|
export const SignatureAlgorithmEd25519 = "ed25519";
|
|
26
24
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sCAAsC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAE9C,qDAAqD;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sCAAsC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAE9C,qDAAqD;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAKxD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3D,wEAAwE;AACxE,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC"}
|
package/dist/recovery/sign.js
CHANGED
|
@@ -9,7 +9,7 @@ import { sign as ed25519Sign, verify as ed25519Verify } from "../keys/index.js";
|
|
|
9
9
|
import { signSignedDoc, verifySignedDoc } from "../keys/index.js";
|
|
10
10
|
import { RecoveryManifestPrefix, RecoveryShareSignaturePrefix, SignatureAlgorithmEd25519, SuccessorRecordPrefix, } from "./types.js";
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
12
|
-
// SuccessorRecord
|
|
12
|
+
// SuccessorRecord - three-signature record per §7.3
|
|
13
13
|
/**
|
|
14
14
|
* Pre-populate the algorithm + key_id fields on all three signature
|
|
15
15
|
* blocks so the canonical bytes are stable across the three signing
|
|
@@ -148,7 +148,7 @@ function canonicalSuccessorBytesElidingThreeSignatures(r) {
|
|
|
148
148
|
return canonicalMarshal(clone);
|
|
149
149
|
}
|
|
150
150
|
// ---------------------------------------------------------------------------
|
|
151
|
-
// RecoverySetManifest
|
|
151
|
+
// RecoverySetManifest - single user-identity signature per §5.2
|
|
152
152
|
/**
|
|
153
153
|
* Sign `m.signature` with the user's identity private key per §5.2.
|
|
154
154
|
* Pre-populates algorithm + key_id so the canonical bytes cover them.
|
|
@@ -240,7 +240,7 @@ export function validateManifest(m, opts = {}) {
|
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
242
|
// ---------------------------------------------------------------------------
|
|
243
|
-
// RecoveryShareRecord
|
|
243
|
+
// RecoveryShareRecord - single device-identity signature per §5.3
|
|
244
244
|
/** Sign `s.device_signature` with the device's identity private key per §5.3. */
|
|
245
245
|
export function signShareRecord(s, devicePriv, deviceKeyId) {
|
|
246
246
|
if (deviceKeyId === "") {
|
package/dist/recovery/types.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export interface RecoverySignatureBlock {
|
|
|
35
35
|
value: string;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
* SEMP_SUCCESSOR per §7.2
|
|
38
|
+
* SEMP_SUCCESSOR per §7.2 - links a prior identity key to a new one
|
|
39
39
|
* after recovery or rotation. Carries three independent signatures
|
|
40
40
|
* so third-party domains can verify continuity without needing the
|
|
41
41
|
* prior identity private key.
|
|
@@ -68,7 +68,7 @@ export interface RecoveryContributor {
|
|
|
68
68
|
device_identity_pubkey: DeviceIdentityPubkey;
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
|
-
* SEMP_RECOVERY_SET_MANIFEST per §5.2
|
|
71
|
+
* SEMP_RECOVERY_SET_MANIFEST per §5.2 - binds each Shamir share
|
|
72
72
|
* index to a specific device's identity public key.
|
|
73
73
|
*/
|
|
74
74
|
export interface RecoverySetManifest {
|
|
@@ -83,7 +83,7 @@ export interface RecoverySetManifest {
|
|
|
83
83
|
signature: RecoverySignatureBlock;
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
|
-
* SEMP_RECOVERY_SHARE per §5.3
|
|
86
|
+
* SEMP_RECOVERY_SHARE per §5.3 - one device's holding of a Shamir
|
|
87
87
|
* share, authenticated by the device's identity-key signature.
|
|
88
88
|
*/
|
|
89
89
|
export interface RecoveryShareRecord {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* §3.7.
|
|
4
4
|
*
|
|
5
5
|
* Abuse reports flow user → home-server over an authenticated
|
|
6
|
-
* session
|
|
6
|
+
* session - the handshake identifies the reporting user so the
|
|
7
7
|
* report itself does NOT carry its own signature. The report's
|
|
8
8
|
* evidence MAY include decrypted envelope fragments, in which case
|
|
9
9
|
* an embedded {@link DisclosureAuthorization} signed by the
|
|
@@ -35,7 +35,7 @@ export interface AbuseReportInput {
|
|
|
35
35
|
export declare function newAbuseReport(input: AbuseReportInput): AbuseReport;
|
|
36
36
|
/**
|
|
37
37
|
* Lookup hook used by {@link validateEvidence} to resolve a user's
|
|
38
|
-
* identity public key. Returning `null` means "unknown user"
|
|
38
|
+
* identity public key. Returning `null` means "unknown user" -
|
|
39
39
|
* callers MUST treat that as a §3.7 verification failure.
|
|
40
40
|
*/
|
|
41
41
|
export type UserKeyLookup = (user: string) => Promise<Uint8Array | null>;
|
|
@@ -44,7 +44,7 @@ export type UserKeyLookup = (user: string) => Promise<Uint8Array | null>;
|
|
|
44
44
|
* content requires a valid {@link DisclosureAuthorization} signed
|
|
45
45
|
* by the affected user.
|
|
46
46
|
*
|
|
47
|
-
* Metadata-only evidence is always acceptable
|
|
47
|
+
* Metadata-only evidence is always acceptable - postmark + seal
|
|
48
48
|
* data is verifiable from the sender's published domain key without
|
|
49
49
|
* disclosing user content.
|
|
50
50
|
*
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* §3.7.
|
|
4
4
|
*
|
|
5
5
|
* Abuse reports flow user → home-server over an authenticated
|
|
6
|
-
* session
|
|
6
|
+
* session - the handshake identifies the reporting user so the
|
|
7
7
|
* report itself does NOT carry its own signature. The report's
|
|
8
8
|
* evidence MAY include decrypted envelope fragments, in which case
|
|
9
9
|
* an embedded {@link DisclosureAuthorization} signed by the
|
|
@@ -56,7 +56,7 @@ export function newAbuseReport(input) {
|
|
|
56
56
|
* content requires a valid {@link DisclosureAuthorization} signed
|
|
57
57
|
* by the affected user.
|
|
58
58
|
*
|
|
59
|
-
* Metadata-only evidence is always acceptable
|
|
59
|
+
* Metadata-only evidence is always acceptable - postmark + seal
|
|
60
60
|
* data is verifiable from the sender's published domain key without
|
|
61
61
|
* disclosing user content.
|
|
62
62
|
*
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publication eligibility helpers per REPUTATION.md §4.6.2 /
|
|
3
|
+
* draft-gokce-semp-delivery §11.7.
|
|
4
|
+
*
|
|
5
|
+
* A server SHOULD NOT publish an observation about a subject
|
|
6
|
+
* domain unless it has directly observed enough interaction with
|
|
7
|
+
* the subject to back the metrics. The two publisher-side gates:
|
|
8
|
+
*
|
|
9
|
+
* - At least {@link MinPublishVolumeEnvelopes} envelopes (or
|
|
10
|
+
* equivalent handshake attempts) observed during the window.
|
|
11
|
+
* - At least one metrics field non-zero. Records with uniformly
|
|
12
|
+
* zero metrics MUST NOT be published.
|
|
13
|
+
*
|
|
14
|
+
* A consumer that receives an observation violating either rule
|
|
15
|
+
* SHOULD treat the publishing observer as a candidate for
|
|
16
|
+
* `observation_record_abuse` reporting per §3.4.
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
import type { Metrics } from "./types.js";
|
|
21
|
+
/**
|
|
22
|
+
* §4.6.2 RECOMMENDED minimum number of envelopes (or handshake
|
|
23
|
+
* attempts) the observer should have observed during the window
|
|
24
|
+
* before publishing an observation about a subject domain.
|
|
25
|
+
*/
|
|
26
|
+
export declare const MinPublishVolumeEnvelopes = 16;
|
|
27
|
+
/**
|
|
28
|
+
* Reports whether the metrics carry at least
|
|
29
|
+
* {@link MinPublishVolumeEnvelopes} envelopes or handshake
|
|
30
|
+
* attempts (post-bucketing).
|
|
31
|
+
*/
|
|
32
|
+
export declare function meetsPublishVolume(m: Metrics): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Reports whether every metric field is zero and
|
|
35
|
+
* `abuse_categories` is empty.
|
|
36
|
+
*/
|
|
37
|
+
export declare function allMetricsZero(m: Metrics): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Convenience predicate: true when the metrics satisfy both the
|
|
40
|
+
* volume threshold and the non-all-zero rule. Publishers SHOULD
|
|
41
|
+
* gate every outgoing observation on this check.
|
|
42
|
+
*/
|
|
43
|
+
export declare function eligibleForPublication(m: Metrics): boolean;
|
|
44
|
+
//# sourceMappingURL=eligibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../src/reputation/eligibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAMtD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAUlD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publication eligibility helpers per REPUTATION.md §4.6.2 /
|
|
3
|
+
* draft-gokce-semp-delivery §11.7.
|
|
4
|
+
*
|
|
5
|
+
* A server SHOULD NOT publish an observation about a subject
|
|
6
|
+
* domain unless it has directly observed enough interaction with
|
|
7
|
+
* the subject to back the metrics. The two publisher-side gates:
|
|
8
|
+
*
|
|
9
|
+
* - At least {@link MinPublishVolumeEnvelopes} envelopes (or
|
|
10
|
+
* equivalent handshake attempts) observed during the window.
|
|
11
|
+
* - At least one metrics field non-zero. Records with uniformly
|
|
12
|
+
* zero metrics MUST NOT be published.
|
|
13
|
+
*
|
|
14
|
+
* A consumer that receives an observation violating either rule
|
|
15
|
+
* SHOULD treat the publishing observer as a candidate for
|
|
16
|
+
* `observation_record_abuse` reporting per §3.4.
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* §4.6.2 RECOMMENDED minimum number of envelopes (or handshake
|
|
22
|
+
* attempts) the observer should have observed during the window
|
|
23
|
+
* before publishing an observation about a subject domain.
|
|
24
|
+
*/
|
|
25
|
+
export const MinPublishVolumeEnvelopes = 16;
|
|
26
|
+
/**
|
|
27
|
+
* Reports whether the metrics carry at least
|
|
28
|
+
* {@link MinPublishVolumeEnvelopes} envelopes or handshake
|
|
29
|
+
* attempts (post-bucketing).
|
|
30
|
+
*/
|
|
31
|
+
export function meetsPublishVolume(m) {
|
|
32
|
+
const total = (m.envelopes_received ?? 0) +
|
|
33
|
+
(m.handshakes_completed ?? 0) +
|
|
34
|
+
(m.handshakes_rejected ?? 0);
|
|
35
|
+
return total >= MinPublishVolumeEnvelopes;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Reports whether every metric field is zero and
|
|
39
|
+
* `abuse_categories` is empty.
|
|
40
|
+
*/
|
|
41
|
+
export function allMetricsZero(m) {
|
|
42
|
+
return ((m.envelopes_received ?? 0) === 0 &&
|
|
43
|
+
(m.envelopes_rejected ?? 0) === 0 &&
|
|
44
|
+
(m.abuse_reports ?? 0) === 0 &&
|
|
45
|
+
(m.unique_senders_observed ?? 0) === 0 &&
|
|
46
|
+
(m.handshakes_completed ?? 0) === 0 &&
|
|
47
|
+
(m.handshakes_rejected ?? 0) === 0 &&
|
|
48
|
+
(m.abuse_categories === undefined || m.abuse_categories.length === 0));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Convenience predicate: true when the metrics satisfy both the
|
|
52
|
+
* volume threshold and the non-all-zero rule. Publishers SHOULD
|
|
53
|
+
* gate every outgoing observation on this check.
|
|
54
|
+
*/
|
|
55
|
+
export function eligibleForPublication(m) {
|
|
56
|
+
return meetsPublishVolume(m) && !allMetricsZero(m);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=eligibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../src/reputation/eligibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAU;IAC3C,MAAM,KAAK,GACT,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC;IAC/B,OAAO,KAAK,IAAI,yBAAyB,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,OAAO,CACL,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC;QAC5B,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,KAAK,CAAC;QACtC,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,CAAC;QAClC,CAAC,CAAC,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAU;IAC/C,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
|