@onlyne/lib 3.1.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 +4 -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/{src/index.ts → dist/index.d.ts} +2 -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 -1745
- package/src/core.ts +0 -114
- package/src/discovery.ts +0 -275
- package/src/domains.ts +0 -213
- package/src/history.ts +0 -139
- package/src/http.ts +0 -852
- package/src/keys.ts +0 -642
- package/src/memory.ts +0 -34
- package/src/messages.ts +0 -409
- package/src/node.ts +0 -63
- package/src/resolve.ts +0 -39
- package/src/resources.ts +0 -745
- package/src/threads.ts +0 -409
- package/src/transport.ts +0 -211
- package/src/types.ts +0 -428
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { NodeId, Target, TrustEntry } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The one place an address is composed for the wire (RFC 0011 §4, RFC 0018 §5.1).
|
|
4
|
+
* The host resolver — usually the discovery catalog — answers first. When it reports
|
|
5
|
+
* `not_found` (never observed) or `unavailable` (recorded but no address answers), a
|
|
6
|
+
* trusted row's `base_url` is the authoritative fallback: probing it succeeds writes the
|
|
7
|
+
* address back into the discovery catalog, so a peer that moved stays reachable and the
|
|
8
|
+
* new address becomes visible to the model. A trusted row whose address also fails is
|
|
9
|
+
* `unavailable` — never degraded to `not_found`, which names an unknown identity.
|
|
10
|
+
*/
|
|
11
|
+
export declare function composeResolver(deps: {
|
|
12
|
+
resolve: (node: NodeId) => Promise<Target>;
|
|
13
|
+
trust?: {
|
|
14
|
+
entry(node: NodeId): Promise<TrustEntry | undefined>;
|
|
15
|
+
};
|
|
16
|
+
observe?: (base_url: string, source: string, expectedNode?: NodeId) => Promise<unknown>;
|
|
17
|
+
}): (node: NodeId) => Promise<Target>;
|
|
18
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;KAAE,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzF,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAsBpC"}
|
package/dist/resolve.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { OnlyneError } from "./core.js";
|
|
2
|
+
/**
|
|
3
|
+
* The one place an address is composed for the wire (RFC 0011 §4, RFC 0018 §5.1).
|
|
4
|
+
* The host resolver — usually the discovery catalog — answers first. When it reports
|
|
5
|
+
* `not_found` (never observed) or `unavailable` (recorded but no address answers), a
|
|
6
|
+
* trusted row's `base_url` is the authoritative fallback: probing it succeeds writes the
|
|
7
|
+
* address back into the discovery catalog, so a peer that moved stays reachable and the
|
|
8
|
+
* new address becomes visible to the model. A trusted row whose address also fails is
|
|
9
|
+
* `unavailable` — never degraded to `not_found`, which names an unknown identity.
|
|
10
|
+
*/
|
|
11
|
+
export function composeResolver(deps) {
|
|
12
|
+
return async (node) => {
|
|
13
|
+
try {
|
|
14
|
+
return await deps.resolve(node);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
const failure = error instanceof OnlyneError
|
|
18
|
+
? error.error
|
|
19
|
+
: error?.error;
|
|
20
|
+
if (failure?.code !== 'not_found' && failure?.code !== 'unavailable')
|
|
21
|
+
throw error;
|
|
22
|
+
const entry = await deps.trust?.entry(node);
|
|
23
|
+
if (entry === undefined || entry.state !== 'trusted' || entry.base_url.length === 0)
|
|
24
|
+
throw error;
|
|
25
|
+
if (deps.observe !== undefined) {
|
|
26
|
+
try {
|
|
27
|
+
await deps.observe(entry.base_url, 'trust-row', node);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
throw new OnlyneError('unavailable', `${node} holds a trusted row whose address is ${entry.base_url}, but no recorded address answered and that address did not verify either.`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return { node_id: node, base_url: entry.base_url };
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAI/B;IACC,OAAO,KAAK,EAAC,IAAI,EAAC,EAAE;QAClB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAwB,KAAK,YAAY,WAAW;gBAC/D,CAAC,CAAC,KAAK,CAAC,KAAK;gBACb,CAAC,CAAE,KAAoC,EAAE,KAAK,CAAC;YACjD,IAAI,OAAO,EAAE,IAAI,KAAK,WAAW,IAAI,OAAO,EAAE,IAAI,KAAK,aAAa;gBAAE,MAAM,KAAK,CAAC;YAClF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACjG,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gBACxD,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,WAAW,CAAC,aAAa,EACjC,GAAG,IAAI,yCAAyC,KAAK,CAAC,QAAQ,4EAA4E,CAAC,CAAC;gBAChJ,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AckReceipt, Auth, HandoverProbe, Json, LogQuery, Mutation, OperationRecord, OperationRequest, OperationResult, Page, PageOptions, ProbeAnswer, Resource, ResourceEvent, ResourceRef, Transport } from './types.ts';
|
|
2
|
+
import type { Context } from './core.ts';
|
|
3
|
+
export interface ResourceService {
|
|
4
|
+
register(auth: Auth, resource: Resource): Promise<Resource>;
|
|
5
|
+
list(auth: Auth, options?: PageOptions): Promise<Page<Resource>>;
|
|
6
|
+
describe(auth: Auth, ref: ResourceRef): Promise<Resource>;
|
|
7
|
+
operate(auth: Auth, ref: ResourceRef, request: OperationRequest, signal?: AbortSignal): Promise<OperationResult>;
|
|
8
|
+
operation(auth: Auth, ref: ResourceRef, id: string): Promise<OperationRecord>;
|
|
9
|
+
operations(auth: Auth, ref: ResourceRef, options?: PageOptions): Promise<Page<OperationRecord>>;
|
|
10
|
+
receive(auth: Auth, ref: ResourceRef, input: {
|
|
11
|
+
source_id: string;
|
|
12
|
+
data: Json;
|
|
13
|
+
expires_at?: string;
|
|
14
|
+
}): Promise<ResourceEvent>;
|
|
15
|
+
log(auth: Auth, ref: ResourceRef, options?: LogQuery): Promise<Page<ResourceEvent>>;
|
|
16
|
+
event(auth: Auth, ref: ResourceRef, id: string): Promise<ResourceEvent>;
|
|
17
|
+
ack(auth: Auth, ref: ResourceRef, id: string, mutation: Mutation): Promise<AckReceipt>;
|
|
18
|
+
/** Target side of a handover: record and answer the probe an endpoint sent (RFC 0006 §4.3). */
|
|
19
|
+
probe(auth: Auth, probe: HandoverProbe): Promise<ProbeAnswer>;
|
|
20
|
+
/** The answer this node already recorded for a probe, read back by the initiator after a crash. */
|
|
21
|
+
probeAnswer(auth: Auth, operationId: string): Promise<ProbeAnswer>;
|
|
22
|
+
recover(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export declare function createResourceService(ctx: Context, transport: Transport): ResourceService;
|
|
25
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAAE,IAAI,EAAW,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EACrG,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAkB,aAAa,EAAE,WAAW,EACrG,SAAS,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACjH,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9E,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7H,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACpF,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvF,+FAA+F;IAC/F,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,mGAAmG;IACnG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AA6GD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,eAAe,CA+mBzF"}
|