@toon-protocol/connector 3.33.1 → 3.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/config/child-expander.d.ts +11 -0
  2. package/dist/config/child-expander.d.ts.map +1 -0
  3. package/dist/config/child-expander.js +131 -0
  4. package/dist/config/child-expander.js.map +1 -0
  5. package/dist/config/config-loader.d.ts +7 -0
  6. package/dist/config/config-loader.d.ts.map +1 -1
  7. package/dist/config/config-loader.js +280 -4
  8. package/dist/config/config-loader.js.map +1 -1
  9. package/dist/config/types.d.ts +39 -0
  10. package/dist/config/types.d.ts.map +1 -1
  11. package/dist/config/types.js.map +1 -1
  12. package/dist/core/connector-node.d.ts +14 -0
  13. package/dist/core/connector-node.d.ts.map +1 -1
  14. package/dist/core/connector-node.js +175 -3
  15. package/dist/core/connector-node.js.map +1 -1
  16. package/dist/discovery/bootstrap-cache.d.ts +20 -0
  17. package/dist/discovery/bootstrap-cache.d.ts.map +1 -0
  18. package/dist/discovery/bootstrap-cache.js +69 -0
  19. package/dist/discovery/bootstrap-cache.js.map +1 -0
  20. package/dist/discovery/bootstrap-manifest.d.ts +23 -0
  21. package/dist/discovery/bootstrap-manifest.d.ts.map +1 -0
  22. package/dist/discovery/bootstrap-manifest.js +119 -0
  23. package/dist/discovery/bootstrap-manifest.js.map +1 -0
  24. package/dist/discovery/bootstrap-seeds.d.ts +7 -0
  25. package/dist/discovery/bootstrap-seeds.d.ts.map +1 -0
  26. package/dist/discovery/bootstrap-seeds.js +10 -0
  27. package/dist/discovery/bootstrap-seeds.js.map +1 -0
  28. package/dist/discovery/bootstrap-service.d.ts +64 -0
  29. package/dist/discovery/bootstrap-service.d.ts.map +1 -0
  30. package/dist/discovery/bootstrap-service.js +320 -0
  31. package/dist/discovery/bootstrap-service.js.map +1 -0
  32. package/dist/discovery/discovered-node-registry.d.ts +46 -0
  33. package/dist/discovery/discovered-node-registry.d.ts.map +1 -0
  34. package/dist/discovery/discovered-node-registry.js +185 -0
  35. package/dist/discovery/discovered-node-registry.js.map +1 -0
  36. package/dist/discovery/ilp-peer-info-event.d.ts +20 -0
  37. package/dist/discovery/ilp-peer-info-event.d.ts.map +1 -1
  38. package/dist/discovery/ilp-peer-info-event.js +76 -1
  39. package/dist/discovery/ilp-peer-info-event.js.map +1 -1
  40. package/dist/discovery/index.d.ts +18 -3
  41. package/dist/discovery/index.d.ts.map +1 -1
  42. package/dist/discovery/index.js +39 -1
  43. package/dist/discovery/index.js.map +1 -1
  44. package/dist/discovery/nostr-relay-client.d.ts +13 -0
  45. package/dist/discovery/nostr-relay-client.d.ts.map +1 -0
  46. package/dist/discovery/nostr-relay-client.js +17 -0
  47. package/dist/discovery/nostr-relay-client.js.map +1 -0
  48. package/dist/discovery/relay-probe.d.ts +5 -0
  49. package/dist/discovery/relay-probe.d.ts.map +1 -0
  50. package/dist/discovery/relay-probe.js +85 -0
  51. package/dist/discovery/relay-probe.js.map +1 -0
  52. package/dist/discovery/route-learning-service.d.ts +55 -0
  53. package/dist/discovery/route-learning-service.d.ts.map +1 -0
  54. package/dist/discovery/route-learning-service.js +238 -0
  55. package/dist/discovery/route-learning-service.js.map +1 -0
  56. package/dist/discovery/self-announce-builder.d.ts +8 -3
  57. package/dist/discovery/self-announce-builder.d.ts.map +1 -1
  58. package/dist/discovery/self-announce-builder.js +124 -5
  59. package/dist/discovery/self-announce-builder.js.map +1 -1
  60. package/dist/http/admin-api-inventory.d.ts.map +1 -1
  61. package/dist/http/admin-api-inventory.js +22 -0
  62. package/dist/http/admin-api-inventory.js.map +1 -1
  63. package/dist/http/admin-api.d.ts +5 -0
  64. package/dist/http/admin-api.d.ts.map +1 -1
  65. package/dist/http/admin-api.js +26 -1
  66. package/dist/http/admin-api.js.map +1 -1
  67. package/dist/http/admin-server.d.ts +4 -0
  68. package/dist/http/admin-server.d.ts.map +1 -1
  69. package/dist/http/admin-server.js +6 -1
  70. package/dist/http/admin-server.js.map +1 -1
  71. package/dist/lib.d.ts +25 -1
  72. package/dist/lib.d.ts.map +1 -1
  73. package/dist/lib.js +46 -2
  74. package/dist/lib.js.map +1 -1
  75. package/dist/observability/metrics-registry.d.ts +7 -0
  76. package/dist/observability/metrics-registry.d.ts.map +1 -1
  77. package/dist/observability/metrics-registry.js +24 -0
  78. package/dist/observability/metrics-registry.js.map +1 -1
  79. package/dist/routing/link-state-db.d.ts +27 -0
  80. package/dist/routing/link-state-db.d.ts.map +1 -0
  81. package/dist/routing/link-state-db.js +81 -0
  82. package/dist/routing/link-state-db.js.map +1 -0
  83. package/dist/routing/path-computation.d.ts +13 -0
  84. package/dist/routing/path-computation.d.ts.map +1 -0
  85. package/dist/routing/path-computation.js +97 -0
  86. package/dist/routing/path-computation.js.map +1 -0
  87. package/dist/routing/routing-table.d.ts +5 -0
  88. package/dist/routing/routing-table.d.ts.map +1 -1
  89. package/dist/routing/routing-table.js +35 -0
  90. package/dist/routing/routing-table.js.map +1 -1
  91. 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;AAG7D,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAGxC,eAAO,MAAM,cAAc,eAAe,CAAC;AAU3C,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;IAEzC,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
+ {"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":";;;AAkHA,sDAoBC;AAzGD,6CAA6D;AAGhD,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAG3B,QAAA,cAAc,GAAG,YAAY,CAAC;AA+E3C,SAAgB,qBAAqB,CACnC,IAAiB,EACjB,SAAqB,EACrB,UAAmC,EAAE;IAErC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,sBAAc,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,IAAA,2BAAa,EAClB;QACE,IAAI,EAAE,0BAAkB;QACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7B,IAAI;QACJ,UAAU,EAAE,SAAS;KACtB,EACD,SAAS,CACV,CAAC;AACJ,CAAC"}
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,GAClB,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,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClG,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
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"}
@@ -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,iEAKiC;AAJ/B,kIAAA,yBAAyB,OAAA;AACzB,oIAAA,2BAA2B,OAAA;AAC3B,uIAAA,8BAA8B,OAAA;AAC9B,0HAAA,iBAAiB,OAAA;AAQnB,iEAIiC;AAH/B,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AACnB,+HAAA,sBAAsB,OAAA;AAGxB,6DAAkG;AAAzF,4HAAA,qBAAqB,OAAA;AAAE,yHAAA,kBAAkB,OAAA;AAAE,qHAAA,cAAc,OAAA"}
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"}