@onlyne/lib 3.0.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/awaited.d.ts +43 -0
- package/dist/awaited.d.ts.map +1 -0
- package/dist/awaited.js +82 -0
- package/dist/awaited.js.map +1 -0
- package/dist/client.d.ts +140 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1772 -0
- package/dist/client.js.map +1 -0
- package/dist/core.d.ts +36 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +122 -0
- package/dist/core.js.map +1 -0
- package/dist/delivery.d.ts +120 -0
- package/dist/delivery.d.ts.map +1 -0
- package/dist/delivery.js +117 -0
- package/dist/delivery.js.map +1 -0
- package/dist/discovery.d.ts +35 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +306 -0
- package/dist/discovery.js.map +1 -0
- package/dist/domains.d.ts +29 -0
- package/dist/domains.d.ts.map +1 -0
- package/dist/domains.js +267 -0
- package/dist/domains.js.map +1 -0
- package/dist/history.d.ts +13 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +143 -0
- package/dist/history.js.map +1 -0
- package/dist/http.d.ts +20 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +88 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/keys.d.ts +97 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +679 -0
- package/dist/keys.js.map +1 -0
- package/dist/memory.d.ts +9 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +35 -0
- package/dist/memory.js.map +1 -0
- package/dist/messages.d.ts +64 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +480 -0
- package/dist/messages.js.map +1 -0
- package/dist/node.d.ts +26 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +59 -0
- package/dist/node.js.map +1 -0
- package/dist/resolve.d.ts +18 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +37 -0
- package/dist/resolve.js.map +1 -0
- package/dist/resources.d.ts +25 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +782 -0
- package/dist/resources.js.map +1 -0
- package/dist/routes/domains.d.ts +4 -0
- package/dist/routes/domains.d.ts.map +1 -0
- package/dist/routes/domains.js +42 -0
- package/dist/routes/domains.js.map +1 -0
- package/dist/routes/grants.d.ts +8 -0
- package/dist/routes/grants.d.ts.map +1 -0
- package/dist/routes/grants.js +32 -0
- package/dist/routes/grants.js.map +1 -0
- package/dist/routes/public.d.ts +4 -0
- package/dist/routes/public.d.ts.map +1 -0
- package/dist/routes/public.js +62 -0
- package/dist/routes/public.js.map +1 -0
- package/dist/routes/resources.d.ts +8 -0
- package/dist/routes/resources.d.ts.map +1 -0
- package/dist/routes/resources.js +87 -0
- package/dist/routes/resources.js.map +1 -0
- package/dist/routes/shared.d.ts +77 -0
- package/dist/routes/shared.d.ts.map +1 -0
- package/dist/routes/shared.js +349 -0
- package/dist/routes/shared.js.map +1 -0
- package/dist/routes/threads.d.ts +8 -0
- package/dist/routes/threads.d.ts.map +1 -0
- package/dist/routes/threads.js +113 -0
- package/dist/routes/threads.js.map +1 -0
- package/dist/routes/trust.d.ts +4 -0
- package/dist/routes/trust.d.ts.map +1 -0
- package/dist/routes/trust.js +36 -0
- package/dist/routes/trust.js.map +1 -0
- package/dist/stream.d.ts +20 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +141 -0
- package/dist/stream.js.map +1 -0
- package/dist/threads.d.ts +79 -0
- package/dist/threads.d.ts.map +1 -0
- package/dist/threads.js +480 -0
- package/dist/threads.js.map +1 -0
- package/dist/transport.d.ts +45 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +175 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +809 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +16 -8
- package/src/client.ts +0 -1549
- package/src/core.ts +0 -114
- package/src/discovery.ts +0 -267
- package/src/domains.ts +0 -210
- package/src/history.ts +0 -129
- package/src/http.ts +0 -841
- package/src/index.ts +0 -18
- package/src/keys.ts +0 -632
- package/src/memory.ts +0 -34
- package/src/messages.ts +0 -398
- package/src/node.ts +0 -56
- package/src/resources.ts +0 -745
- package/src/threads.ts +0 -350
- package/src/transport.ts +0 -204
- package/src/types.ts +0 -383
package/dist/keys.d.ts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { Context } from './core.ts';
|
|
2
|
+
import type { Auth, KeyIdentity, KeyMaterial, KeyExchange, NodeId, TrustEntry, TrustStatement } from './types.ts';
|
|
3
|
+
export declare const SIGNATURE_HEADER = "Onlyne-Sig";
|
|
4
|
+
export declare const CLOCK_SKEW_MS = 300000;
|
|
5
|
+
/** How long a failed exchange send waits before the maintenance loop tries it again. */
|
|
6
|
+
export declare const EXCHANGE_RETRY_MS = 60000;
|
|
7
|
+
/** How long a refused statement waits before the loop tries again (unverified refusal). */
|
|
8
|
+
export declare const REFUSED_RETRY_MS = 600000;
|
|
9
|
+
export declare function keyFingerprint(raw: Uint8Array): Promise<string>;
|
|
10
|
+
export declare function generateKeyMaterial(): KeyMaterial;
|
|
11
|
+
export declare class KeyService {
|
|
12
|
+
#private;
|
|
13
|
+
constructor(ctx: Context);
|
|
14
|
+
get enabled(): boolean;
|
|
15
|
+
keyId(): NodeId;
|
|
16
|
+
freshTimestamp(): {
|
|
17
|
+
timestamp: string;
|
|
18
|
+
nonce: string;
|
|
19
|
+
};
|
|
20
|
+
material(): Promise<KeyMaterial>;
|
|
21
|
+
describe(): Promise<KeyIdentity | undefined>;
|
|
22
|
+
sign(payload: string): Promise<string>;
|
|
23
|
+
generate(auth: Auth): Promise<KeyIdentity>;
|
|
24
|
+
replace(material: KeyMaterial): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export declare function requestPayload(request: Request, target: NodeId, digest: string, timestamp: string, nonce: string): string;
|
|
27
|
+
export declare function bodyDigest(body: Uint8Array | string): string;
|
|
28
|
+
export declare class TrustService {
|
|
29
|
+
#private;
|
|
30
|
+
constructor(ctx: Context, keys: KeyService);
|
|
31
|
+
/** @internal Called by OnlyneNode so trust commits reach the maintenance loop. */
|
|
32
|
+
bindLoop(waker: {
|
|
33
|
+
wakeLoop(): void;
|
|
34
|
+
}): void;
|
|
35
|
+
private owner;
|
|
36
|
+
list(auth: Auth): Promise<TrustEntry[]>;
|
|
37
|
+
entry(node: NodeId): Promise<TrustEntry | undefined>;
|
|
38
|
+
/**
|
|
39
|
+
* RFC 0017 §3: stage one of one exchange. Reads the peer's live `/keys`, so the
|
|
40
|
+
* fingerprint the host shows is one the peer proved. Committing is a separate
|
|
41
|
+
* explicit step on the returned session; nothing is recorded or sent here.
|
|
42
|
+
*/
|
|
43
|
+
begin(auth: Auth, node: NodeId): Promise<KeyExchange>;
|
|
44
|
+
private identity;
|
|
45
|
+
private address;
|
|
46
|
+
inspect(node: NodeId): Promise<KeyIdentity>;
|
|
47
|
+
/**
|
|
48
|
+
* The peer's address. Discovery answers for every peer this node has observed; a peer that
|
|
49
|
+
* introduced itself before discovery ever saw it has no record at all, and the address its own
|
|
50
|
+
* signed statement carried is then the only one there is. Without that fallback an inbound
|
|
51
|
+
* invitation can never be accepted: the confirmation resolves the peer before it may answer,
|
|
52
|
+
* so the row would sit at `invited` forever while both holders had approved.
|
|
53
|
+
*/
|
|
54
|
+
private peerBase;
|
|
55
|
+
private statement;
|
|
56
|
+
/**
|
|
57
|
+
* Sends one statement and settles the matching obligation only on a reply that proves
|
|
58
|
+
* it answered this attempt (RFC 0017 §3.5). A missing, unsigned or mismatched reply
|
|
59
|
+
* leaves the obligation owed, so the maintenance loop re-sends with a fresh nonce.
|
|
60
|
+
*/
|
|
61
|
+
private send;
|
|
62
|
+
/** Clears the obligation an answered attempt created; a newer attempt keeps its own. */
|
|
63
|
+
private settle;
|
|
64
|
+
/** The rotation window closes when its last statement is gone. */
|
|
65
|
+
private closeWindow;
|
|
66
|
+
/**
|
|
67
|
+
* Rewrites or deletes one obligation only if the row is still the attempt this pass read.
|
|
68
|
+
* `rotate` can replace an approval obligation with a rotation one mid-pass; a whole-row
|
|
69
|
+
* write-back from the stale snapshot would drop the old-key proof it just stored.
|
|
70
|
+
*/
|
|
71
|
+
private compareObligation;
|
|
72
|
+
private rotationWindow;
|
|
73
|
+
/** Backs off an obligation after a refusal this node cannot authenticate. */
|
|
74
|
+
private park;
|
|
75
|
+
/** The swap never completed: drop the window and every statement prepared under it. */
|
|
76
|
+
private abandonRotation;
|
|
77
|
+
request(auth: Auth, node: NodeId, fingerprint: string): Promise<TrustEntry>;
|
|
78
|
+
private notify;
|
|
79
|
+
accept(auth: Auth, node: NodeId, fingerprint: string): Promise<TrustEntry>;
|
|
80
|
+
receive(value: TrustStatement): Promise<TrustEntry>;
|
|
81
|
+
introduce(value: TrustStatement): Promise<TrustStatement>;
|
|
82
|
+
revoke(auth: Auth, node: NodeId): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* RFC 0017 §3.5: re-drives every owed statement whose reply has not arrived. The stage
|
|
85
|
+
* of the row is irrelevant — an `exchanged` row still owes the delivery when its reply
|
|
86
|
+
* was lost. Each attempt uses a fresh nonce, so the peer's nonce cache cannot mistake
|
|
87
|
+
* a re-send for a replay. The maintenance loop calls this; the host never does.
|
|
88
|
+
*/
|
|
89
|
+
redrive(signal?: AbortSignal): Promise<void>;
|
|
90
|
+
rotate(auth: Auth): Promise<KeyIdentity>;
|
|
91
|
+
private consumeNonce;
|
|
92
|
+
signRequest(request: Request, target: NodeId, raw: Uint8Array | string): Promise<void>;
|
|
93
|
+
authenticate(request: Request, digest: string): Promise<Auth>;
|
|
94
|
+
signResponse(request: Request, response: Response, body: string): Promise<void>;
|
|
95
|
+
verifyResponse(target: NodeId, request: Request, response: Response, body: string): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
|