@toon-protocol/connector 3.33.1 → 3.34.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/dist/config/child-expander.d.ts +11 -0
- package/dist/config/child-expander.d.ts.map +1 -0
- package/dist/config/child-expander.js +131 -0
- package/dist/config/child-expander.js.map +1 -0
- package/dist/config/config-loader.d.ts +7 -0
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +280 -4
- package/dist/config/config-loader.js.map +1 -1
- package/dist/config/types.d.ts +39 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/core/connector-node.d.ts +14 -0
- package/dist/core/connector-node.d.ts.map +1 -1
- package/dist/core/connector-node.js +173 -3
- package/dist/core/connector-node.js.map +1 -1
- package/dist/discovery/bootstrap-cache.d.ts +20 -0
- package/dist/discovery/bootstrap-cache.d.ts.map +1 -0
- package/dist/discovery/bootstrap-cache.js +69 -0
- package/dist/discovery/bootstrap-cache.js.map +1 -0
- package/dist/discovery/bootstrap-manifest.d.ts +23 -0
- package/dist/discovery/bootstrap-manifest.d.ts.map +1 -0
- package/dist/discovery/bootstrap-manifest.js +119 -0
- package/dist/discovery/bootstrap-manifest.js.map +1 -0
- package/dist/discovery/bootstrap-seeds.d.ts +7 -0
- package/dist/discovery/bootstrap-seeds.d.ts.map +1 -0
- package/dist/discovery/bootstrap-seeds.js +10 -0
- package/dist/discovery/bootstrap-seeds.js.map +1 -0
- package/dist/discovery/bootstrap-service.d.ts +64 -0
- package/dist/discovery/bootstrap-service.d.ts.map +1 -0
- package/dist/discovery/bootstrap-service.js +320 -0
- package/dist/discovery/bootstrap-service.js.map +1 -0
- package/dist/discovery/discovered-node-registry.d.ts +46 -0
- package/dist/discovery/discovered-node-registry.d.ts.map +1 -0
- package/dist/discovery/discovered-node-registry.js +185 -0
- package/dist/discovery/discovered-node-registry.js.map +1 -0
- package/dist/discovery/ilp-peer-info-event.d.ts +20 -0
- package/dist/discovery/ilp-peer-info-event.d.ts.map +1 -1
- package/dist/discovery/ilp-peer-info-event.js +76 -1
- package/dist/discovery/ilp-peer-info-event.js.map +1 -1
- package/dist/discovery/index.d.ts +18 -3
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +39 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/nostr-relay-client.d.ts +13 -0
- package/dist/discovery/nostr-relay-client.d.ts.map +1 -0
- package/dist/discovery/nostr-relay-client.js +17 -0
- package/dist/discovery/nostr-relay-client.js.map +1 -0
- package/dist/discovery/relay-probe.d.ts +5 -0
- package/dist/discovery/relay-probe.d.ts.map +1 -0
- package/dist/discovery/relay-probe.js +85 -0
- package/dist/discovery/relay-probe.js.map +1 -0
- package/dist/discovery/route-learning-service.d.ts +55 -0
- package/dist/discovery/route-learning-service.d.ts.map +1 -0
- package/dist/discovery/route-learning-service.js +238 -0
- package/dist/discovery/route-learning-service.js.map +1 -0
- package/dist/discovery/self-announce-builder.d.ts +8 -3
- package/dist/discovery/self-announce-builder.d.ts.map +1 -1
- package/dist/discovery/self-announce-builder.js +124 -5
- package/dist/discovery/self-announce-builder.js.map +1 -1
- package/dist/http/admin-api-inventory.d.ts.map +1 -1
- package/dist/http/admin-api-inventory.js +22 -0
- package/dist/http/admin-api-inventory.js.map +1 -1
- package/dist/http/admin-api.d.ts +3 -0
- package/dist/http/admin-api.d.ts.map +1 -1
- package/dist/http/admin-api.js +24 -1
- package/dist/http/admin-api.js.map +1 -1
- package/dist/http/admin-server.d.ts +2 -0
- package/dist/http/admin-server.d.ts.map +1 -1
- package/dist/http/admin-server.js +4 -1
- package/dist/http/admin-server.js.map +1 -1
- package/dist/lib.d.ts +25 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +46 -2
- package/dist/lib.js.map +1 -1
- package/dist/observability/metrics-registry.d.ts +7 -0
- package/dist/observability/metrics-registry.d.ts.map +1 -1
- package/dist/observability/metrics-registry.js +24 -0
- package/dist/observability/metrics-registry.js.map +1 -1
- package/dist/routing/link-state-db.d.ts +27 -0
- package/dist/routing/link-state-db.d.ts.map +1 -0
- package/dist/routing/link-state-db.js +81 -0
- package/dist/routing/link-state-db.js.map +1 -0
- package/dist/routing/path-computation.d.ts +13 -0
- package/dist/routing/path-computation.d.ts.map +1 -0
- package/dist/routing/path-computation.js +97 -0
- package/dist/routing/path-computation.js.map +1 -0
- package/dist/routing/routing-table.d.ts +5 -0
- package/dist/routing/routing-table.d.ts.map +1 -1
- package/dist/routing/routing-table.js +35 -0
- package/dist/routing/routing-table.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovered-node-registry.js","sourceRoot":"","sources":["../../src/discovery/discovered-node-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { type NostrEvent } from 'nostr-tools';
|
|
2
2
|
export declare const ILP_PEER_INFO_KIND = 10032;
|
|
3
3
|
export declare const EXPIRATION_TAG = "expiration";
|
|
4
|
+
export interface IlpRoutingPrefix {
|
|
5
|
+
prefix: string;
|
|
6
|
+
cost?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IlpRoutingInfo {
|
|
9
|
+
prefixes: IlpRoutingPrefix[];
|
|
10
|
+
adjacency: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function parseRoutingInfo(content: unknown): IlpRoutingInfo | null;
|
|
13
|
+
export interface IlpCapabilityEntry {
|
|
14
|
+
capability: string;
|
|
15
|
+
address: string;
|
|
16
|
+
price?: string;
|
|
17
|
+
schema?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const CAPABILITY_NAME_PATTERN: RegExp;
|
|
20
|
+
export declare function normalizeCapabilityName(name: string): string | null;
|
|
21
|
+
export declare function parseCapabilityDirectory(content: unknown): IlpCapabilityEntry[];
|
|
4
22
|
export interface IlpPeerInfo {
|
|
5
23
|
pubkey?: string;
|
|
6
24
|
ilpAddress: string;
|
|
@@ -14,6 +32,8 @@ export interface IlpPeerInfo {
|
|
|
14
32
|
settlementAddresses?: Record<string, string>;
|
|
15
33
|
tokenNetworks?: Record<string, string>;
|
|
16
34
|
preferredTokens?: Record<string, string>;
|
|
35
|
+
routing?: IlpRoutingInfo;
|
|
36
|
+
capabilities?: IlpCapabilityEntry[];
|
|
17
37
|
[key: string]: unknown;
|
|
18
38
|
}
|
|
19
39
|
export interface BuildIlpPeerInfoOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ilp-peer-info-event.d.ts","sourceRoot":"","sources":["../../src/discovery/ilp-peer-info-event.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ilp-peer-info-event.d.ts","sourceRoot":"","sources":["../../src/discovery/ilp-peer-info-event.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAI7D,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAGxC,eAAO,MAAM,cAAc,eAAe,CAAC;AAK3C,MAAM,WAAW,gBAAgB;IAE/B,MAAM,EAAE,MAAM,CAAC;IAMf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AASD,MAAM,WAAW,cAAc;IAE7B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAK7B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAkBD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CA6BxE;AAaD,MAAM,WAAW,kBAAkB;IASjC,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,eAAO,MAAM,uBAAuB,QAA4B,CAAC;AAajE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAqBD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CA+B/E;AAUD,MAAM,WAAW,WAAW;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,WAAW,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAO3B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAS7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAOzC,OAAO,CAAC,EAAE,cAAc,CAAC;IASzB,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAEpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,uBAAuB;IAOtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,UAAU,EACrB,OAAO,GAAE,uBAA4B,GACpC,UAAU,CAgBZ"}
|
|
@@ -1,10 +1,85 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EXPIRATION_TAG = exports.ILP_PEER_INFO_KIND = void 0;
|
|
3
|
+
exports.CAPABILITY_NAME_PATTERN = exports.EXPIRATION_TAG = exports.ILP_PEER_INFO_KIND = void 0;
|
|
4
|
+
exports.parseRoutingInfo = parseRoutingInfo;
|
|
5
|
+
exports.normalizeCapabilityName = normalizeCapabilityName;
|
|
6
|
+
exports.parseCapabilityDirectory = parseCapabilityDirectory;
|
|
4
7
|
exports.buildIlpPeerInfoEvent = buildIlpPeerInfoEvent;
|
|
5
8
|
const nostr_tools_1 = require("nostr-tools");
|
|
9
|
+
const shared_1 = require("@toon-protocol/shared");
|
|
6
10
|
exports.ILP_PEER_INFO_KIND = 10032;
|
|
7
11
|
exports.EXPIRATION_TAG = 'expiration';
|
|
12
|
+
const NOSTR_PUBKEY_RE = /^[0-9a-f]{64}$/;
|
|
13
|
+
function parseRoutingInfo(content) {
|
|
14
|
+
if (!content || typeof content !== 'object')
|
|
15
|
+
return null;
|
|
16
|
+
const routing = content.routing;
|
|
17
|
+
if (!routing || typeof routing !== 'object' || Array.isArray(routing))
|
|
18
|
+
return null;
|
|
19
|
+
const raw = routing;
|
|
20
|
+
if (!Array.isArray(raw.prefixes) || !Array.isArray(raw.adjacency))
|
|
21
|
+
return null;
|
|
22
|
+
const prefixes = [];
|
|
23
|
+
for (const entry of raw.prefixes) {
|
|
24
|
+
if (!entry || typeof entry !== 'object' || Array.isArray(entry))
|
|
25
|
+
continue;
|
|
26
|
+
const { prefix, cost } = entry;
|
|
27
|
+
if (typeof prefix !== 'string' || prefix.length === 0)
|
|
28
|
+
continue;
|
|
29
|
+
if (cost === undefined) {
|
|
30
|
+
prefixes.push({ prefix });
|
|
31
|
+
}
|
|
32
|
+
else if (typeof cost === 'number' && Number.isFinite(cost) && cost >= 0) {
|
|
33
|
+
prefixes.push({ prefix, cost });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const adjacency = [];
|
|
37
|
+
for (const entry of raw.adjacency) {
|
|
38
|
+
if (typeof entry === 'string' && NOSTR_PUBKEY_RE.test(entry)) {
|
|
39
|
+
adjacency.push(entry);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { prefixes, adjacency };
|
|
43
|
+
}
|
|
44
|
+
exports.CAPABILITY_NAME_PATTERN = /^[a-z0-9][a-z0-9._-]*$/i;
|
|
45
|
+
const CAPABILITY_PRICE_RE = /^\d+$/;
|
|
46
|
+
function normalizeCapabilityName(name) {
|
|
47
|
+
const normalized = name.trim().toLowerCase();
|
|
48
|
+
return exports.CAPABILITY_NAME_PATTERN.test(normalized) ? normalized : null;
|
|
49
|
+
}
|
|
50
|
+
function parseCapabilityDirectory(content) {
|
|
51
|
+
if (!content || typeof content !== 'object')
|
|
52
|
+
return [];
|
|
53
|
+
const capabilities = content.capabilities;
|
|
54
|
+
if (!Array.isArray(capabilities))
|
|
55
|
+
return [];
|
|
56
|
+
const entries = [];
|
|
57
|
+
for (const entry of capabilities) {
|
|
58
|
+
if (!entry || typeof entry !== 'object' || Array.isArray(entry))
|
|
59
|
+
continue;
|
|
60
|
+
const { capability, address, price, schema } = entry;
|
|
61
|
+
if (typeof capability !== 'string')
|
|
62
|
+
continue;
|
|
63
|
+
const name = normalizeCapabilityName(capability);
|
|
64
|
+
if (name === null)
|
|
65
|
+
continue;
|
|
66
|
+
if (typeof address !== 'string' || !(0, shared_1.isValidILPAddress)(address))
|
|
67
|
+
continue;
|
|
68
|
+
if (price !== undefined && (typeof price !== 'string' || !CAPABILITY_PRICE_RE.test(price))) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (schema !== undefined && (typeof schema !== 'string' || schema.length === 0)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
entries.push({
|
|
75
|
+
capability: name,
|
|
76
|
+
address,
|
|
77
|
+
...(price !== undefined ? { price } : {}),
|
|
78
|
+
...(schema !== undefined ? { schema } : {}),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return entries;
|
|
82
|
+
}
|
|
8
83
|
function buildIlpPeerInfoEvent(info, secretKey, options = {}) {
|
|
9
84
|
const createdAt = Math.floor(Date.now() / 1000);
|
|
10
85
|
const tags = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ilp-peer-info-event.js","sourceRoot":"","sources":["../../src/discovery/ilp-peer-info-event.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ilp-peer-info-event.js","sourceRoot":"","sources":["../../src/discovery/ilp-peer-info-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,25 @@ export { PeerDiscoveryService } from './peer-discovery-service';
|
|
|
2
2
|
export type { PeerDiscoveryConfig, PeerInfo, AnnounceResponse, PeerListResponse, DiscoveryStatus, PeerDiscoveryEvents, } from './types';
|
|
3
3
|
export { SelfAnnounceService, DEFAULT_REFRESH_INTERVAL_SECS } from './self-announce-service';
|
|
4
4
|
export type { SelfAnnounceServiceDeps, PublishFn, PublishOutcome, ResolveTokenNetworksFn, } from './self-announce-service';
|
|
5
|
-
export { buildSelfAnnouncementInfo, deriveChainSettlementParams, normalizeSettlementAddressKeys, resolveRouteHints, } from './self-announce-builder';
|
|
5
|
+
export { buildCapabilityDirectory, buildSelfAnnouncementInfo, buildRoutingInfo, deriveChainSettlementParams, nip59KeyToNostrPubkey, normalizeSettlementAddressKeys, resolveRouteHints, PUBLISH_HINT_CAPABILITY, STORE_HINT_CAPABILITY, } from './self-announce-builder';
|
|
6
6
|
export type { AnnounceWarnFn, ChainSettlementParams, IlpRouteHints, SelfAnnouncementInfo, } from './self-announce-builder';
|
|
7
7
|
export { planAnnouncePublish, encodeWriteEnvelope, DEFAULT_ANNOUNCE_PRICE, } from './self-announce-publish';
|
|
8
8
|
export type { AnnouncePublishPlan, AnnouncePublishMode } from './self-announce-publish';
|
|
9
|
-
export { buildIlpPeerInfoEvent, ILP_PEER_INFO_KIND, EXPIRATION_TAG } from './ilp-peer-info-event';
|
|
10
|
-
export type { IlpPeerInfo, BuildIlpPeerInfoOptions } from './ilp-peer-info-event';
|
|
9
|
+
export { buildIlpPeerInfoEvent, parseRoutingInfo, parseCapabilityDirectory, normalizeCapabilityName, ILP_PEER_INFO_KIND, EXPIRATION_TAG, CAPABILITY_NAME_PATTERN, } from './ilp-peer-info-event';
|
|
10
|
+
export type { IlpPeerInfo, IlpRoutingInfo, IlpRoutingPrefix, IlpCapabilityEntry, BuildIlpPeerInfoOptions, } from './ilp-peer-info-event';
|
|
11
|
+
export { RouteLearningService, DEFAULT_ROUTE_LEARNING_REFRESH_SECS, DEFAULT_MAX_LEARNED_ROUTES, LEARNED_ROUTE_PRIORITY, } from './route-learning-service';
|
|
12
|
+
export type { RouteLearningServiceDeps, DiscoveredNodeSink } from './route-learning-service';
|
|
13
|
+
export { createNostrRelayClient } from './nostr-relay-client';
|
|
14
|
+
export { DiscoveredNodeRegistry } from './discovered-node-registry';
|
|
15
|
+
export type { DiscoveredNode, DiscoveredNodeIngestResult, DiscoveredNodeRegistryDeps, FundedPeerRef, } from './discovered-node-registry';
|
|
16
|
+
export type { RouteLearningRelayClient, RelaySubscriptionHandle, RelayEventFilter, } from './nostr-relay-client';
|
|
17
|
+
export { BootstrapService, DEFAULT_SAMPLE_SIZE, DEFAULT_BOOTSTRAP_REFRESH_INTERVAL_SECS, DEFAULT_PROBE_TIMEOUT_MS, DEFAULT_CACHE_MAX_AGE_MS, } from './bootstrap-service';
|
|
18
|
+
export type { BootstrapServiceDeps, ResolvedRelaySeed, RelayProbeFn, RelayProbeResult, FetchFn, FetchResponseLike, RelaysResolvedListener, } from './bootstrap-service';
|
|
19
|
+
export { FALLBACK_RELAY_SEEDS, FALLBACK_CURATOR_PUBKEY } from './bootstrap-seeds';
|
|
20
|
+
export type { RelaySeed } from './bootstrap-seeds';
|
|
21
|
+
export { canonicalJson, manifestDigest, signSeedManifest, parseSeedManifest, verifySeedManifest, } from './bootstrap-manifest';
|
|
22
|
+
export type { SeedManifest, SeedManifestPayload, SeedManifestParseResult, } from './bootstrap-manifest';
|
|
23
|
+
export { FileBootstrapCacheStore } from './bootstrap-cache';
|
|
24
|
+
export type { BootstrapCacheStore, CachedRelaySeed, RelaySeedSource } from './bootstrap-cache';
|
|
25
|
+
export { createKind10032RelayProbe, BOOTSTRAP_PROBE_SUB_ID } from './relay-probe';
|
|
11
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7F,YAAY,EACV,uBAAuB,EACvB,SAAS,EACT,cAAc,EACd,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7F,YAAY,EACV,uBAAuB,EACvB,SAAS,EACT,cAAc,EACd,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,8BAA8B,EAC9B,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,oBAAoB,EACpB,mCAAmC,EACnC,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAM9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EACV,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uCAAuC,EACvC,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/discovery/index.js
CHANGED
|
@@ -1,22 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EXPIRATION_TAG = exports.ILP_PEER_INFO_KIND = exports.buildIlpPeerInfoEvent = exports.DEFAULT_ANNOUNCE_PRICE = exports.encodeWriteEnvelope = exports.planAnnouncePublish = exports.resolveRouteHints = exports.normalizeSettlementAddressKeys = exports.deriveChainSettlementParams = exports.buildSelfAnnouncementInfo = exports.DEFAULT_REFRESH_INTERVAL_SECS = exports.SelfAnnounceService = exports.PeerDiscoveryService = void 0;
|
|
3
|
+
exports.BOOTSTRAP_PROBE_SUB_ID = exports.createKind10032RelayProbe = exports.FileBootstrapCacheStore = exports.verifySeedManifest = exports.parseSeedManifest = exports.signSeedManifest = exports.manifestDigest = exports.canonicalJson = exports.FALLBACK_CURATOR_PUBKEY = exports.FALLBACK_RELAY_SEEDS = exports.DEFAULT_CACHE_MAX_AGE_MS = exports.DEFAULT_PROBE_TIMEOUT_MS = exports.DEFAULT_BOOTSTRAP_REFRESH_INTERVAL_SECS = exports.DEFAULT_SAMPLE_SIZE = exports.BootstrapService = exports.DiscoveredNodeRegistry = exports.createNostrRelayClient = exports.LEARNED_ROUTE_PRIORITY = exports.DEFAULT_MAX_LEARNED_ROUTES = exports.DEFAULT_ROUTE_LEARNING_REFRESH_SECS = exports.RouteLearningService = exports.CAPABILITY_NAME_PATTERN = exports.EXPIRATION_TAG = exports.ILP_PEER_INFO_KIND = exports.normalizeCapabilityName = exports.parseCapabilityDirectory = exports.parseRoutingInfo = exports.buildIlpPeerInfoEvent = exports.DEFAULT_ANNOUNCE_PRICE = exports.encodeWriteEnvelope = exports.planAnnouncePublish = exports.STORE_HINT_CAPABILITY = exports.PUBLISH_HINT_CAPABILITY = exports.resolveRouteHints = exports.normalizeSettlementAddressKeys = exports.nip59KeyToNostrPubkey = exports.deriveChainSettlementParams = exports.buildRoutingInfo = exports.buildSelfAnnouncementInfo = exports.buildCapabilityDirectory = exports.DEFAULT_REFRESH_INTERVAL_SECS = exports.SelfAnnounceService = exports.PeerDiscoveryService = void 0;
|
|
4
4
|
var peer_discovery_service_1 = require("./peer-discovery-service");
|
|
5
5
|
Object.defineProperty(exports, "PeerDiscoveryService", { enumerable: true, get: function () { return peer_discovery_service_1.PeerDiscoveryService; } });
|
|
6
6
|
var self_announce_service_1 = require("./self-announce-service");
|
|
7
7
|
Object.defineProperty(exports, "SelfAnnounceService", { enumerable: true, get: function () { return self_announce_service_1.SelfAnnounceService; } });
|
|
8
8
|
Object.defineProperty(exports, "DEFAULT_REFRESH_INTERVAL_SECS", { enumerable: true, get: function () { return self_announce_service_1.DEFAULT_REFRESH_INTERVAL_SECS; } });
|
|
9
9
|
var self_announce_builder_1 = require("./self-announce-builder");
|
|
10
|
+
Object.defineProperty(exports, "buildCapabilityDirectory", { enumerable: true, get: function () { return self_announce_builder_1.buildCapabilityDirectory; } });
|
|
10
11
|
Object.defineProperty(exports, "buildSelfAnnouncementInfo", { enumerable: true, get: function () { return self_announce_builder_1.buildSelfAnnouncementInfo; } });
|
|
12
|
+
Object.defineProperty(exports, "buildRoutingInfo", { enumerable: true, get: function () { return self_announce_builder_1.buildRoutingInfo; } });
|
|
11
13
|
Object.defineProperty(exports, "deriveChainSettlementParams", { enumerable: true, get: function () { return self_announce_builder_1.deriveChainSettlementParams; } });
|
|
14
|
+
Object.defineProperty(exports, "nip59KeyToNostrPubkey", { enumerable: true, get: function () { return self_announce_builder_1.nip59KeyToNostrPubkey; } });
|
|
12
15
|
Object.defineProperty(exports, "normalizeSettlementAddressKeys", { enumerable: true, get: function () { return self_announce_builder_1.normalizeSettlementAddressKeys; } });
|
|
13
16
|
Object.defineProperty(exports, "resolveRouteHints", { enumerable: true, get: function () { return self_announce_builder_1.resolveRouteHints; } });
|
|
17
|
+
Object.defineProperty(exports, "PUBLISH_HINT_CAPABILITY", { enumerable: true, get: function () { return self_announce_builder_1.PUBLISH_HINT_CAPABILITY; } });
|
|
18
|
+
Object.defineProperty(exports, "STORE_HINT_CAPABILITY", { enumerable: true, get: function () { return self_announce_builder_1.STORE_HINT_CAPABILITY; } });
|
|
14
19
|
var self_announce_publish_1 = require("./self-announce-publish");
|
|
15
20
|
Object.defineProperty(exports, "planAnnouncePublish", { enumerable: true, get: function () { return self_announce_publish_1.planAnnouncePublish; } });
|
|
16
21
|
Object.defineProperty(exports, "encodeWriteEnvelope", { enumerable: true, get: function () { return self_announce_publish_1.encodeWriteEnvelope; } });
|
|
17
22
|
Object.defineProperty(exports, "DEFAULT_ANNOUNCE_PRICE", { enumerable: true, get: function () { return self_announce_publish_1.DEFAULT_ANNOUNCE_PRICE; } });
|
|
18
23
|
var ilp_peer_info_event_1 = require("./ilp-peer-info-event");
|
|
19
24
|
Object.defineProperty(exports, "buildIlpPeerInfoEvent", { enumerable: true, get: function () { return ilp_peer_info_event_1.buildIlpPeerInfoEvent; } });
|
|
25
|
+
Object.defineProperty(exports, "parseRoutingInfo", { enumerable: true, get: function () { return ilp_peer_info_event_1.parseRoutingInfo; } });
|
|
26
|
+
Object.defineProperty(exports, "parseCapabilityDirectory", { enumerable: true, get: function () { return ilp_peer_info_event_1.parseCapabilityDirectory; } });
|
|
27
|
+
Object.defineProperty(exports, "normalizeCapabilityName", { enumerable: true, get: function () { return ilp_peer_info_event_1.normalizeCapabilityName; } });
|
|
20
28
|
Object.defineProperty(exports, "ILP_PEER_INFO_KIND", { enumerable: true, get: function () { return ilp_peer_info_event_1.ILP_PEER_INFO_KIND; } });
|
|
21
29
|
Object.defineProperty(exports, "EXPIRATION_TAG", { enumerable: true, get: function () { return ilp_peer_info_event_1.EXPIRATION_TAG; } });
|
|
30
|
+
Object.defineProperty(exports, "CAPABILITY_NAME_PATTERN", { enumerable: true, get: function () { return ilp_peer_info_event_1.CAPABILITY_NAME_PATTERN; } });
|
|
31
|
+
var route_learning_service_1 = require("./route-learning-service");
|
|
32
|
+
Object.defineProperty(exports, "RouteLearningService", { enumerable: true, get: function () { return route_learning_service_1.RouteLearningService; } });
|
|
33
|
+
Object.defineProperty(exports, "DEFAULT_ROUTE_LEARNING_REFRESH_SECS", { enumerable: true, get: function () { return route_learning_service_1.DEFAULT_ROUTE_LEARNING_REFRESH_SECS; } });
|
|
34
|
+
Object.defineProperty(exports, "DEFAULT_MAX_LEARNED_ROUTES", { enumerable: true, get: function () { return route_learning_service_1.DEFAULT_MAX_LEARNED_ROUTES; } });
|
|
35
|
+
Object.defineProperty(exports, "LEARNED_ROUTE_PRIORITY", { enumerable: true, get: function () { return route_learning_service_1.LEARNED_ROUTE_PRIORITY; } });
|
|
36
|
+
var nostr_relay_client_1 = require("./nostr-relay-client");
|
|
37
|
+
Object.defineProperty(exports, "createNostrRelayClient", { enumerable: true, get: function () { return nostr_relay_client_1.createNostrRelayClient; } });
|
|
38
|
+
var discovered_node_registry_1 = require("./discovered-node-registry");
|
|
39
|
+
Object.defineProperty(exports, "DiscoveredNodeRegistry", { enumerable: true, get: function () { return discovered_node_registry_1.DiscoveredNodeRegistry; } });
|
|
40
|
+
var bootstrap_service_1 = require("./bootstrap-service");
|
|
41
|
+
Object.defineProperty(exports, "BootstrapService", { enumerable: true, get: function () { return bootstrap_service_1.BootstrapService; } });
|
|
42
|
+
Object.defineProperty(exports, "DEFAULT_SAMPLE_SIZE", { enumerable: true, get: function () { return bootstrap_service_1.DEFAULT_SAMPLE_SIZE; } });
|
|
43
|
+
Object.defineProperty(exports, "DEFAULT_BOOTSTRAP_REFRESH_INTERVAL_SECS", { enumerable: true, get: function () { return bootstrap_service_1.DEFAULT_BOOTSTRAP_REFRESH_INTERVAL_SECS; } });
|
|
44
|
+
Object.defineProperty(exports, "DEFAULT_PROBE_TIMEOUT_MS", { enumerable: true, get: function () { return bootstrap_service_1.DEFAULT_PROBE_TIMEOUT_MS; } });
|
|
45
|
+
Object.defineProperty(exports, "DEFAULT_CACHE_MAX_AGE_MS", { enumerable: true, get: function () { return bootstrap_service_1.DEFAULT_CACHE_MAX_AGE_MS; } });
|
|
46
|
+
var bootstrap_seeds_1 = require("./bootstrap-seeds");
|
|
47
|
+
Object.defineProperty(exports, "FALLBACK_RELAY_SEEDS", { enumerable: true, get: function () { return bootstrap_seeds_1.FALLBACK_RELAY_SEEDS; } });
|
|
48
|
+
Object.defineProperty(exports, "FALLBACK_CURATOR_PUBKEY", { enumerable: true, get: function () { return bootstrap_seeds_1.FALLBACK_CURATOR_PUBKEY; } });
|
|
49
|
+
var bootstrap_manifest_1 = require("./bootstrap-manifest");
|
|
50
|
+
Object.defineProperty(exports, "canonicalJson", { enumerable: true, get: function () { return bootstrap_manifest_1.canonicalJson; } });
|
|
51
|
+
Object.defineProperty(exports, "manifestDigest", { enumerable: true, get: function () { return bootstrap_manifest_1.manifestDigest; } });
|
|
52
|
+
Object.defineProperty(exports, "signSeedManifest", { enumerable: true, get: function () { return bootstrap_manifest_1.signSeedManifest; } });
|
|
53
|
+
Object.defineProperty(exports, "parseSeedManifest", { enumerable: true, get: function () { return bootstrap_manifest_1.parseSeedManifest; } });
|
|
54
|
+
Object.defineProperty(exports, "verifySeedManifest", { enumerable: true, get: function () { return bootstrap_manifest_1.verifySeedManifest; } });
|
|
55
|
+
var bootstrap_cache_1 = require("./bootstrap-cache");
|
|
56
|
+
Object.defineProperty(exports, "FileBootstrapCacheStore", { enumerable: true, get: function () { return bootstrap_cache_1.FileBootstrapCacheStore; } });
|
|
57
|
+
var relay_probe_1 = require("./relay-probe");
|
|
58
|
+
Object.defineProperty(exports, "createKind10032RelayProbe", { enumerable: true, get: function () { return relay_probe_1.createKind10032RelayProbe; } });
|
|
59
|
+
Object.defineProperty(exports, "BOOTSTRAP_PROBE_SUB_ID", { enumerable: true, get: function () { return relay_probe_1.BOOTSTRAP_PROBE_SUB_ID; } });
|
|
22
60
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":";;;AAMA,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAa7B,iEAA6F;AAApF,4HAAA,mBAAmB,OAAA;AAAE,sIAAA,6BAA6B,OAAA;AAO3D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":";;;AAMA,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAa7B,iEAA6F;AAApF,4HAAA,mBAAmB,OAAA;AAAE,sIAAA,6BAA6B,OAAA;AAO3D,iEAUiC;AAT/B,iIAAA,wBAAwB,OAAA;AACxB,kIAAA,yBAAyB,OAAA;AACzB,yHAAA,gBAAgB,OAAA;AAChB,oIAAA,2BAA2B,OAAA;AAC3B,8HAAA,qBAAqB,OAAA;AACrB,uIAAA,8BAA8B,OAAA;AAC9B,0HAAA,iBAAiB,OAAA;AACjB,gIAAA,uBAAuB,OAAA;AACvB,8HAAA,qBAAqB,OAAA;AAQvB,iEAIiC;AAH/B,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AACnB,+HAAA,sBAAsB,OAAA;AAGxB,6DAQ+B;AAP7B,4HAAA,qBAAqB,OAAA;AACrB,uHAAA,gBAAgB,OAAA;AAChB,+HAAA,wBAAwB,OAAA;AACxB,8HAAA,uBAAuB,OAAA;AACvB,yHAAA,kBAAkB,OAAA;AAClB,qHAAA,cAAc,OAAA;AACd,8HAAA,uBAAuB,OAAA;AAazB,mEAKkC;AAJhC,8HAAA,oBAAoB,OAAA;AACpB,6IAAA,mCAAmC,OAAA;AACnC,oIAAA,0BAA0B,OAAA;AAC1B,gIAAA,sBAAsB,OAAA;AAGxB,2DAA8D;AAArD,4HAAA,sBAAsB,OAAA;AAM/B,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAgB/B,yDAM6B;AAL3B,qHAAA,gBAAgB,OAAA;AAChB,wHAAA,mBAAmB,OAAA;AACnB,4IAAA,uCAAuC,OAAA;AACvC,6HAAA,wBAAwB,OAAA;AACxB,6HAAA,wBAAwB,OAAA;AAW1B,qDAAkF;AAAzE,uHAAA,oBAAoB,OAAA;AAAE,0HAAA,uBAAuB,OAAA;AAEtD,2DAM8B;AAL5B,mHAAA,aAAa,OAAA;AACb,oHAAA,cAAc,OAAA;AACd,sHAAA,gBAAgB,OAAA;AAChB,uHAAA,iBAAiB,OAAA;AACjB,wHAAA,kBAAkB,OAAA;AAOpB,qDAA4D;AAAnD,0HAAA,uBAAuB,OAAA;AAEhC,6CAAkF;AAAzE,wHAAA,yBAAyB,OAAA;AAAE,qHAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type NostrEvent } from 'nostr-tools';
|
|
2
|
+
export interface RelaySubscriptionHandle {
|
|
3
|
+
close(): void;
|
|
4
|
+
}
|
|
5
|
+
export interface RelayEventFilter {
|
|
6
|
+
kinds: number[];
|
|
7
|
+
}
|
|
8
|
+
export interface RouteLearningRelayClient {
|
|
9
|
+
subscribe(relayUrls: string[], filter: RelayEventFilter, onEvent: (event: NostrEvent) => void): RelaySubscriptionHandle;
|
|
10
|
+
destroy(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createNostrRelayClient(): RouteLearningRelayClient;
|
|
13
|
+
//# sourceMappingURL=nostr-relay-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nostr-relay-client.d.ts","sourceRoot":"","sources":["../../src/discovery/nostr-relay-client.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,WAAW,uBAAuB;IAEtC,KAAK,IAAI,IAAI,CAAC;CACf;AAGD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAOD,MAAM,WAAW,wBAAwB;IAMvC,SAAS,CACP,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GACnC,uBAAuB,CAAC;IAG3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,wBAAgB,sBAAsB,IAAI,wBAAwB,CAWjE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNostrRelayClient = createNostrRelayClient;
|
|
4
|
+
const nostr_tools_1 = require("nostr-tools");
|
|
5
|
+
function createNostrRelayClient() {
|
|
6
|
+
const pool = new nostr_tools_1.SimplePool({ enableReconnect: true });
|
|
7
|
+
return {
|
|
8
|
+
subscribe(relayUrls, filter, onEvent) {
|
|
9
|
+
const sub = pool.subscribe(relayUrls, { kinds: filter.kinds }, { onevent: onEvent });
|
|
10
|
+
return { close: () => sub.close() };
|
|
11
|
+
},
|
|
12
|
+
destroy() {
|
|
13
|
+
pool.destroy();
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=nostr-relay-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nostr-relay-client.js","sourceRoot":"","sources":["../../src/discovery/nostr-relay-client.ts"],"names":[],"mappings":";;AA0DA,wDAWC;AAjDD,6CAA0D;AAsC1D,SAAgB,sBAAsB;IACpC,MAAM,IAAI,GAAG,IAAI,wBAAU,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,OAAO;QACL,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACrF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;QACtC,CAAC;QACD,OAAO;YACL,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import type { RelayProbeFn } from './bootstrap-service';
|
|
3
|
+
export declare const BOOTSTRAP_PROBE_SUB_ID = "toon-bootstrap-probe";
|
|
4
|
+
export declare function createKind10032RelayProbe(logger: Logger): RelayProbeFn;
|
|
5
|
+
//# sourceMappingURL=relay-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-probe.d.ts","sourceRoot":"","sources":["../../src/discovery/relay-probe.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAG1E,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAO7D,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAgEtE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BOOTSTRAP_PROBE_SUB_ID = void 0;
|
|
4
|
+
exports.createKind10032RelayProbe = createKind10032RelayProbe;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const ws_1 = tslib_1.__importDefault(require("ws"));
|
|
7
|
+
const nostr_tools_1 = require("nostr-tools");
|
|
8
|
+
const ilp_peer_info_event_1 = require("./ilp-peer-info-event");
|
|
9
|
+
exports.BOOTSTRAP_PROBE_SUB_ID = 'toon-bootstrap-probe';
|
|
10
|
+
function createKind10032RelayProbe(logger) {
|
|
11
|
+
const probeLogger = logger.child({ component: 'Kind10032RelayProbe' });
|
|
12
|
+
return (relayUrl, timeoutMs) => new Promise((resolve) => {
|
|
13
|
+
let socket;
|
|
14
|
+
try {
|
|
15
|
+
socket = new ws_1.default(relayUrl, { handshakeTimeout: timeoutMs });
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
resolve({ ok: false, detail: errMsg(err) });
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
let settled = false;
|
|
22
|
+
const settle = (result) => {
|
|
23
|
+
if (settled) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
settled = true;
|
|
27
|
+
clearTimeout(timer);
|
|
28
|
+
try {
|
|
29
|
+
socket.close();
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
}
|
|
33
|
+
resolve(result);
|
|
34
|
+
};
|
|
35
|
+
const timer = setTimeout(() => settle({ ok: false, detail: 'timeout' }), timeoutMs);
|
|
36
|
+
timer.unref?.();
|
|
37
|
+
socket.on('open', () => {
|
|
38
|
+
socket.send(JSON.stringify(['REQ', exports.BOOTSTRAP_PROBE_SUB_ID, { kinds: [ilp_peer_info_event_1.ILP_PEER_INFO_KIND], limit: 1 }]));
|
|
39
|
+
});
|
|
40
|
+
socket.on('message', (data) => {
|
|
41
|
+
let message;
|
|
42
|
+
try {
|
|
43
|
+
message = JSON.parse(String(data));
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (!Array.isArray(message) || message[1] !== exports.BOOTSTRAP_PROBE_SUB_ID) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (message[0] === 'EVENT') {
|
|
52
|
+
if (isValidPeerInfoEvent(message[2])) {
|
|
53
|
+
settle({ ok: true, detail: 'event' });
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
probeLogger.debug({ event: 'bootstrap_probe_invalid_event', relayUrl }, 'Relay probe received an invalid kind:10032 event; waiting for EOSE');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (message[0] === 'EOSE') {
|
|
60
|
+
settle({ ok: true, detail: 'eose' });
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
socket.on('error', (err) => settle({ ok: false, detail: err.message }));
|
|
64
|
+
socket.on('close', () => settle({ ok: false, detail: 'closed' }));
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function isValidPeerInfoEvent(raw) {
|
|
68
|
+
if (raw === null || typeof raw !== 'object') {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
const event = raw;
|
|
72
|
+
if (event.kind !== ilp_peer_info_event_1.ILP_PEER_INFO_KIND) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
return (0, nostr_tools_1.verifyEvent)(event);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function errMsg(err) {
|
|
83
|
+
return err instanceof Error ? err.message : String(err);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=relay-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-probe.js","sourceRoot":"","sources":["../../src/discovery/relay-probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import { type NostrEvent } from 'nostr-tools';
|
|
3
|
+
import type { ConnectorConfig, RouteLearningConfig } from '../config/types';
|
|
4
|
+
import type { RoutingTable } from '../routing/routing-table';
|
|
5
|
+
import type { RouteLearningRelayClient } from './nostr-relay-client';
|
|
6
|
+
import type { LinkStateEventInput } from '../routing/link-state-db';
|
|
7
|
+
export interface DiscoveredNodeSink {
|
|
8
|
+
ingest(event: LinkStateEventInput, nowSecs?: number): unknown;
|
|
9
|
+
sweepExpired(nowSecs?: number): unknown;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare const DEFAULT_ROUTE_LEARNING_REFRESH_SECS = 60;
|
|
13
|
+
export declare const DEFAULT_MAX_LEARNED_ROUTES = 1000;
|
|
14
|
+
export declare const LEARNED_ROUTE_PRIORITY = -100;
|
|
15
|
+
export interface RouteLearningServiceDeps {
|
|
16
|
+
config: ConnectorConfig;
|
|
17
|
+
routeLearning: RouteLearningConfig;
|
|
18
|
+
routingTable: RoutingTable;
|
|
19
|
+
relayClient: RouteLearningRelayClient;
|
|
20
|
+
getDirectPeerIds: () => string[];
|
|
21
|
+
ownPubkey?: string;
|
|
22
|
+
verifyEvent?: (event: NostrEvent) => boolean;
|
|
23
|
+
discoveredNodes?: DiscoveredNodeSink;
|
|
24
|
+
logger: Logger;
|
|
25
|
+
}
|
|
26
|
+
export declare class RouteLearningService {
|
|
27
|
+
private readonly _config;
|
|
28
|
+
private readonly _routeLearning;
|
|
29
|
+
private readonly _routingTable;
|
|
30
|
+
private readonly _relayClient;
|
|
31
|
+
private readonly _getDirectPeerIds;
|
|
32
|
+
private readonly _ownPubkey;
|
|
33
|
+
private readonly _verifyEvent;
|
|
34
|
+
private readonly _discoveredNodes;
|
|
35
|
+
private readonly _logger;
|
|
36
|
+
private readonly _refreshIntervalSecs;
|
|
37
|
+
private readonly _maxRoutes;
|
|
38
|
+
private readonly _db;
|
|
39
|
+
private readonly _installed;
|
|
40
|
+
private _subscription;
|
|
41
|
+
private _timer;
|
|
42
|
+
private _running;
|
|
43
|
+
constructor(deps: RouteLearningServiceDeps);
|
|
44
|
+
get running(): boolean;
|
|
45
|
+
get linkStateSize(): number;
|
|
46
|
+
getInstalledRoutes(): ReadonlyMap<string, string>;
|
|
47
|
+
resolveRelayUrls(): string[];
|
|
48
|
+
start(): void;
|
|
49
|
+
stop(): void;
|
|
50
|
+
handleEvent(event: NostrEvent): void;
|
|
51
|
+
sweep(nowSecs?: number): void;
|
|
52
|
+
private _buildPubkeyToPeerId;
|
|
53
|
+
recompute(): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=route-learning-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-learning-service.d.ts","sourceRoot":"","sources":["../../src/discovery/route-learning-service.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAS7D,OAAO,KAAK,EAA2B,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAcpE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAGD,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAGtD,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAS/C,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,MAAM,WAAW,wBAAwB;IAEvC,MAAM,EAAE,eAAe,CAAC;IAExB,aAAa,EAAE,mBAAmB,CAAC;IAEnC,YAAY,EAAE,YAAY,CAAC;IAE3B,WAAW,EAAE,wBAAwB,CAAC;IAKtC,gBAAgB,EAAE,MAAM,MAAM,EAAE,CAAC;IAMjC,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IAM7C,eAAe,CAAC,EAAE,kBAAkB,CAAC;IAErC,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAE/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAExD,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,wBAAwB;IAoB1C,IAAI,OAAO,IAAI,OAAO,CAErB;IAGD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAGD,kBAAkB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAQjD,gBAAgB,IAAI,MAAM,EAAE;IAc5B,KAAK,IAAI,IAAI;IA6Cb,IAAI,IAAI,IAAI;IAoCZ,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA6CpC,KAAK,CAAC,OAAO,GAAE,MAAsC,GAAG,IAAI;IAsB5D,OAAO,CAAC,oBAAoB;IA8B5B,SAAS,IAAI,IAAI;CAyElB"}
|