@toon-protocol/connector 3.33.0 → 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.
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 +173 -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 +3 -0
  64. package/dist/http/admin-api.d.ts.map +1 -1
  65. package/dist/http/admin-api.js +24 -1
  66. package/dist/http/admin-api.js.map +1 -1
  67. package/dist/http/admin-server.d.ts +2 -0
  68. package/dist/http/admin-server.d.ts.map +1 -1
  69. package/dist/http/admin-server.js +4 -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,11 @@
1
+ import type { ChildConfig, PeerConfig, RouteConfig } from './types';
2
+ export declare class ChildConfigError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export declare function deriveApex(config: {
6
+ apex?: string;
7
+ routes: RouteConfig[];
8
+ nodeId: string;
9
+ }): string | undefined;
10
+ export declare function expandChildren(children: ChildConfig[] | undefined, apexInput: string | undefined, routes: RouteConfig[], peers: PeerConfig[], nodeId: string): RouteConfig[];
11
+ //# sourceMappingURL=child-expander.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-expander.d.ts","sourceRoot":"","sources":["../../src/config/child-expander.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAoB,MAAM,SAAS,CAAC;AAMtF,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAO5B;AA0BD,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,GAAG,SAAS,CAMrB;AAgCD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,WAAW,EAAE,GAAG,SAAS,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,WAAW,EAAE,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,MAAM,GACb,WAAW,EAAE,CAiJf"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChildConfigError = void 0;
4
+ exports.deriveApex = deriveApex;
5
+ exports.expandChildren = expandChildren;
6
+ const shared_1 = require("@toon-protocol/shared");
7
+ const types_1 = require("../settlement/types");
8
+ const ilp_peer_info_event_1 = require("../discovery/ilp-peer-info-event");
9
+ class ChildConfigError extends Error {
10
+ constructor(message) {
11
+ super(message);
12
+ this.name = 'ChildConfigError';
13
+ if (Error.captureStackTrace) {
14
+ Error.captureStackTrace(this, ChildConfigError);
15
+ }
16
+ }
17
+ }
18
+ exports.ChildConfigError = ChildConfigError;
19
+ const CHILD_NAME_PATTERN = /^[a-z0-9][a-z0-9_-]*$/;
20
+ const DEFAULT_CHILD_CHAINS = ['evm'];
21
+ function routeAddress(route) {
22
+ return route.ilpAddress ?? route.prefix;
23
+ }
24
+ function deriveApex(config) {
25
+ if (config.apex !== undefined) {
26
+ return config.apex;
27
+ }
28
+ const selfRoute = config.routes.find((r) => r.nextHop === config.nodeId || r.nextHop === 'local');
29
+ return selfRoute ? routeAddress(selfRoute) : undefined;
30
+ }
31
+ function expandChildren(children, apexInput, routes, peers, nodeId) {
32
+ if (!children || children.length === 0) {
33
+ return [];
34
+ }
35
+ const apex = deriveApex({ apex: apexInput, routes, nodeId });
36
+ if (!apex) {
37
+ throw new ChildConfigError("children require an apex: set the top-level 'apex' field or configure a self route (nextHop = nodeId or 'local') to derive it from");
38
+ }
39
+ if (!(0, shared_1.isValidILPAddress)(apex)) {
40
+ throw new ChildConfigError(`Invalid apex ILP address: '${apex}'`);
41
+ }
42
+ const apexTermination = routes.find((r) => r.upstream !== undefined && routeAddress(r) === apex) ??
43
+ routes.find((r) => r.upstream !== undefined);
44
+ const peersById = new Map(peers.map((p) => [p.id, p]));
45
+ const seenNames = new Set();
46
+ const expanded = [];
47
+ for (const child of children) {
48
+ if (!child || typeof child !== 'object') {
49
+ throw new ChildConfigError('Invalid children entry: expected an object');
50
+ }
51
+ if (typeof child.name !== 'string' || child.name.length === 0) {
52
+ throw new ChildConfigError("children entry missing required field: 'name'");
53
+ }
54
+ const where = `child '${child.name}'`;
55
+ if (!CHILD_NAME_PATTERN.test(child.name)) {
56
+ throw new ChildConfigError(`${where}: name must be a single ILP label (lowercase alphanumeric, '-', '_'), got '${child.name}'`);
57
+ }
58
+ if (seenNames.has(child.name)) {
59
+ throw new ChildConfigError(`Duplicate child name: '${child.name}'`);
60
+ }
61
+ seenNames.add(child.name);
62
+ const hasUpstream = child.upstream !== undefined;
63
+ const hasPeerId = child.peerId !== undefined;
64
+ if (hasUpstream === hasPeerId) {
65
+ throw new ChildConfigError(`${where}: exactly one of 'upstream' or 'peerId' must be set (got ${hasUpstream ? 'both' : 'neither'})`);
66
+ }
67
+ if (hasUpstream && (typeof child.upstream !== 'string' || child.upstream.length === 0)) {
68
+ throw new ChildConfigError(`${where}: upstream must be a non-empty string`);
69
+ }
70
+ if (hasPeerId && (typeof child.peerId !== 'string' || child.peerId.length === 0)) {
71
+ throw new ChildConfigError(`${where}: peerId must be a non-empty string`);
72
+ }
73
+ if (child.price !== undefined) {
74
+ if (typeof child.price !== 'string' || !(0, types_1.isValidNonNegativeIntegerString)(child.price)) {
75
+ throw new ChildConfigError(`${where}: price must be a non-negative integer string (atomic units), got ${String(child.price)}`);
76
+ }
77
+ }
78
+ if (child.capability !== undefined) {
79
+ if (typeof child.capability !== 'string' ||
80
+ (0, ilp_peer_info_event_1.normalizeCapabilityName)(child.capability) === null) {
81
+ throw new ChildConfigError(`${where}: capability must be a name like 'os.put' or 'nostr-relay' ` +
82
+ `(alphanumeric start, then alphanumerics/'.'/'_'/'-'), got ${String(child.capability)}`);
83
+ }
84
+ }
85
+ if (child.schema !== undefined) {
86
+ if (typeof child.schema !== 'string' || child.schema.length === 0) {
87
+ throw new ChildConfigError(`${where}: schema must be a non-empty string (content address / URI of the ` +
88
+ `capability's interface descriptor), got ${String(child.schema)}`);
89
+ }
90
+ }
91
+ const prefix = `${apex}.${child.name}`;
92
+ if (!(0, shared_1.isValidILPAddress)(prefix)) {
93
+ throw new ChildConfigError(`${where}: expanded address '${prefix}' is not a valid ILP address`);
94
+ }
95
+ const expectedNextHop = hasUpstream ? nodeId : child.peerId;
96
+ const existing = routes.find((r) => r.prefix === prefix);
97
+ if (existing) {
98
+ const sameBinding = existing.nextHop === expectedNextHop &&
99
+ (!hasUpstream || existing.upstream === child.upstream);
100
+ if (sameBinding) {
101
+ continue;
102
+ }
103
+ throw new ChildConfigError(`${where}: expanded prefix '${prefix}' conflicts with an existing route (nextHop '${existing.nextHop}')`);
104
+ }
105
+ if (hasUpstream) {
106
+ expanded.push({
107
+ prefix,
108
+ nextHop: nodeId,
109
+ upstream: child.upstream,
110
+ price: child.price ?? '0',
111
+ chains: apexTermination?.chains ?? DEFAULT_CHILD_CHAINS,
112
+ ilpAddress: prefix,
113
+ settlementAddresses: apexTermination?.settlementAddresses ?? {},
114
+ ...(apexTermination?.asset ? { asset: apexTermination.asset } : {}),
115
+ });
116
+ }
117
+ else {
118
+ const peerId = child.peerId;
119
+ const peer = peersById.get(peerId);
120
+ if (!peer) {
121
+ throw new ChildConfigError(`${where}: peerId '${peerId}' does not reference a configured peer`);
122
+ }
123
+ if (peer.relation !== 'child') {
124
+ throw new ChildConfigError(`${where}: peer '${peerId}' must have relation 'child' to be bound as a child prefix (got '${peer.relation ?? 'peer'}')`);
125
+ }
126
+ expanded.push({ prefix, nextHop: peerId });
127
+ }
128
+ }
129
+ return expanded;
130
+ }
131
+ //# sourceMappingURL=child-expander.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-expander.js","sourceRoot":"","sources":["../../src/config/child-expander.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,9 @@ export declare class InvalidExecutionConditionError extends Error {
11
11
  export declare class ConfigLoader {
12
12
  static loadConfig(filePath: string): ConnectorConfig;
13
13
  static validateConfig(raw: unknown): ConnectorConfig;
14
+ private static validateSelfAnnounce;
15
+ private static validatePeeringPolicy;
16
+ private static validateRouteLearning;
14
17
  private static loadEnvironment;
15
18
  private static loadBlockchainConfig;
16
19
  private static loadBaseBlockchainConfig;
@@ -19,6 +22,10 @@ export declare class ConfigLoader {
19
22
  private static validatePeers;
20
23
  private static validateRoutes;
21
24
  private static validatePorts;
25
+ private static validateApex;
26
+ private static validateChildrenShape;
27
+ private static enforceRelationRoutes;
22
28
  private static validateTransport;
29
+ private static validateBootstrap;
23
30
  }
24
31
  //# sourceMappingURL=config-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,eAAe,EAahB,MAAM,SAAS,CAAC;AAiBjB,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAQ5B;AAKD,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,GAAE,MAAsE;CAI5F;AAQD,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,OAAO,EAAE,MAAM;CAI5B;AAuBD,qBAAa,YAAY;IAiBvB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IA2DpD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe;IA2EpD,OAAO,CAAC,MAAM,CAAC,eAAe;IAuB9B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA8CnC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAqDvC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA4C3C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiErC,OAAO,CAAC,MAAM,CAAC,aAAa;IAsH5B,OAAO,CAAC,MAAM,CAAC,cAAc;IAmE7B,OAAO,CAAC,MAAM,CAAC,aAAa;IAuC5B,OAAO,CAAC,MAAM,CAAC,iBAAiB;CA8BjC"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,eAAe,EAkBhB,MAAM,SAAS,CAAC;AAqBjB,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAQ5B;AAKD,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,GAAE,MAAsE;CAI5F;AAQD,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,OAAO,EAAE,MAAM;CAI5B;AAuBD,qBAAa,YAAY;IAiBvB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IA2DpD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe;IA8HpD,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAiEnC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAgDpC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoEpC,OAAO,CAAC,MAAM,CAAC,eAAe;IAuB9B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA8CnC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAqDvC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA4C3C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiErC,OAAO,CAAC,MAAM,CAAC,aAAa;IAsH5B,OAAO,CAAC,MAAM,CAAC,cAAc;IAmE7B,OAAO,CAAC,MAAM,CAAC,aAAa;IAoC5B,OAAO,CAAC,MAAM,CAAC,YAAY;IAuB3B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAmCpC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAyCpC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA+ChC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CA0IjC"}
@@ -6,7 +6,11 @@ const fs = tslib_1.__importStar(require("fs"));
6
6
  const yaml = tslib_1.__importStar(require("js-yaml"));
7
7
  const types_1 = require("./types");
8
8
  const environment_validator_1 = require("./environment-validator");
9
+ const shared_1 = require("@toon-protocol/shared");
9
10
  const types_2 = require("../settlement/types");
11
+ const ilp_peer_info_event_1 = require("../discovery/ilp-peer-info-event");
12
+ const child_expander_1 = require("./child-expander");
13
+ const relation_route_validator_1 = require("../routing/relation-route-validator");
10
14
  class ConfigurationError extends Error {
11
15
  constructor(message) {
12
16
  super(message);
@@ -67,19 +71,42 @@ class ConfigLoader {
67
71
  const environment = this.loadEnvironment();
68
72
  this.validateRequiredFields(rawConfig);
69
73
  const transport = this.validateTransport(rawConfig.transport);
74
+ const bootstrap = this.validateBootstrap(rawConfig.bootstrap);
70
75
  this.validatePeers(rawConfig.peers);
71
76
  this.validateRoutes(rawConfig.routes, rawConfig.peers);
72
77
  this.validatePorts(rawConfig);
78
+ const apex = this.validateApex(rawConfig.apex);
79
+ const children = this.validateChildrenShape(rawConfig.children);
80
+ const nodeId = rawConfig.nodeId;
81
+ const peers = rawConfig.peers;
82
+ let routes = rawConfig.routes;
83
+ if (children && children.length > 0) {
84
+ let expandedRoutes;
85
+ try {
86
+ expandedRoutes = (0, child_expander_1.expandChildren)(children, apex, routes, peers, nodeId);
87
+ }
88
+ catch (error) {
89
+ if (error instanceof child_expander_1.ChildConfigError) {
90
+ throw new ConfigurationError(`Invalid children config: ${error.message}`);
91
+ }
92
+ throw error;
93
+ }
94
+ this.validateRoutes(expandedRoutes, peers);
95
+ routes = [...routes, ...expandedRoutes];
96
+ }
97
+ this.enforceRelationRoutes(routes, peers, nodeId, apex);
73
98
  const blockchain = this.loadBlockchainConfig(environment);
74
99
  const btpServerPort = rawConfig.btpServerPort;
75
100
  const healthCheckPort = rawConfig.healthCheckPort ?? 8080;
76
101
  const connectorConfig = {
77
- nodeId: rawConfig.nodeId,
102
+ nodeId,
78
103
  btpServerPort,
79
104
  healthCheckPort,
80
105
  logLevel: rawConfig.logLevel ?? 'info',
81
- peers: rawConfig.peers,
82
- routes: rawConfig.routes,
106
+ peers,
107
+ routes,
108
+ ...(apex !== undefined ? { apex } : {}),
109
+ ...(children !== undefined ? { children } : {}),
83
110
  environment,
84
111
  blockchain,
85
112
  settlement: rawConfig.settlement,
@@ -92,12 +119,129 @@ class ConfigLoader {
92
119
  chainProviders: rawConfig.chainProviders,
93
120
  deploymentMode: rawConfig.deploymentMode,
94
121
  nip59: rawConfig.nip59,
95
- selfAnnounce: rawConfig.selfAnnounce,
122
+ selfAnnounce: this.validateSelfAnnounce(rawConfig.selfAnnounce),
123
+ routeLearning: this.validateRouteLearning(rawConfig.routeLearning),
124
+ bootstrap,
125
+ peeringPolicy: this.validatePeeringPolicy(rawConfig.peeringPolicy),
96
126
  transport,
97
127
  };
98
128
  (0, environment_validator_1.validateEnvironment)(connectorConfig);
99
129
  return connectorConfig;
100
130
  }
131
+ static validateSelfAnnounce(raw) {
132
+ if (raw === undefined || raw === null) {
133
+ return undefined;
134
+ }
135
+ if (typeof raw !== 'object' || Array.isArray(raw)) {
136
+ throw new ConfigurationError('selfAnnounce must be an object');
137
+ }
138
+ const block = raw;
139
+ if (block.capabilities !== undefined) {
140
+ if (!Array.isArray(block.capabilities)) {
141
+ throw new ConfigurationError('selfAnnounce.capabilities must be an array');
142
+ }
143
+ for (const entry of block.capabilities) {
144
+ if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
145
+ throw new ConfigurationError('selfAnnounce.capabilities entries must be objects');
146
+ }
147
+ const { capability, address, price, schema } = entry;
148
+ if (typeof capability !== 'string' || (0, ilp_peer_info_event_1.normalizeCapabilityName)(capability) === null) {
149
+ throw new ConfigurationError(`selfAnnounce.capabilities: capability must be a name like 'os.put' ` +
150
+ `(alphanumeric start, then alphanumerics/'.'/'_'/'-'), got ${String(capability)}`);
151
+ }
152
+ if (typeof address !== 'string' || !(0, shared_1.isValidILPAddress)(address)) {
153
+ throw new ConfigurationError(`selfAnnounce.capabilities['${capability}']: address must be a valid ILP address, ` +
154
+ `got ${String(address)}`);
155
+ }
156
+ if (price !== undefined &&
157
+ (typeof price !== 'string' || !(0, types_2.isValidNonNegativeIntegerString)(price))) {
158
+ throw new ConfigurationError(`selfAnnounce.capabilities['${capability}']: price must be a non-negative decimal ` +
159
+ `string (atomic units), got ${String(price)}`);
160
+ }
161
+ if (schema !== undefined && (typeof schema !== 'string' || schema.length === 0)) {
162
+ throw new ConfigurationError(`selfAnnounce.capabilities['${capability}']: schema must be a non-empty string, ` +
163
+ `got ${String(schema)}`);
164
+ }
165
+ }
166
+ }
167
+ return raw;
168
+ }
169
+ static validatePeeringPolicy(raw) {
170
+ if (raw === undefined || raw === null) {
171
+ return undefined;
172
+ }
173
+ if (typeof raw !== 'object' || Array.isArray(raw)) {
174
+ throw new ConfigurationError('peeringPolicy must be an object');
175
+ }
176
+ const block = raw;
177
+ if (block.maxFundedChannels !== undefined) {
178
+ if (typeof block.maxFundedChannels !== 'number' ||
179
+ !Number.isInteger(block.maxFundedChannels) ||
180
+ block.maxFundedChannels <= 0) {
181
+ throw new ConfigurationError('peeringPolicy.maxFundedChannels must be a positive integer');
182
+ }
183
+ }
184
+ if (block.autoRegister !== undefined) {
185
+ if (typeof block.autoRegister !== 'boolean') {
186
+ throw new ConfigurationError('peeringPolicy.autoRegister must be a boolean');
187
+ }
188
+ if (block.autoRegister === true) {
189
+ throw new ConfigurationError('peeringPolicy.autoRegister: true is not yet supported — funding a settlement ' +
190
+ 'channel is a deliberate operator action (review GET /admin/discovered-nodes ' +
191
+ 'and promote via POST /admin/peers)');
192
+ }
193
+ }
194
+ return {
195
+ ...(block.maxFundedChannels !== undefined
196
+ ? { maxFundedChannels: block.maxFundedChannels }
197
+ : {}),
198
+ ...(block.autoRegister !== undefined ? { autoRegister: block.autoRegister } : {}),
199
+ };
200
+ }
201
+ static validateRouteLearning(raw) {
202
+ if (raw === undefined || raw === null) {
203
+ return undefined;
204
+ }
205
+ if (typeof raw !== 'object' || Array.isArray(raw)) {
206
+ throw new ConfigurationError('routeLearning must be an object');
207
+ }
208
+ const block = raw;
209
+ if (typeof block.enabled !== 'boolean') {
210
+ throw new ConfigurationError('routeLearning.enabled must be a boolean');
211
+ }
212
+ if (block.relayUrls !== undefined) {
213
+ if (!Array.isArray(block.relayUrls)) {
214
+ throw new ConfigurationError('routeLearning.relayUrls must be an array of ws:// or wss:// URLs');
215
+ }
216
+ for (const url of block.relayUrls) {
217
+ if (typeof url !== 'string' || !/^wss?:\/\/.+/.test(url)) {
218
+ throw new ConfigurationError(`routeLearning.relayUrls entries must be ws:// or wss:// URLs, got: ${String(url)}`);
219
+ }
220
+ }
221
+ }
222
+ if (block.refreshIntervalSecs !== undefined) {
223
+ if (typeof block.refreshIntervalSecs !== 'number' ||
224
+ !Number.isFinite(block.refreshIntervalSecs) ||
225
+ block.refreshIntervalSecs <= 0) {
226
+ throw new ConfigurationError('routeLearning.refreshIntervalSecs must be a positive number');
227
+ }
228
+ }
229
+ if (block.maxRoutes !== undefined) {
230
+ if (typeof block.maxRoutes !== 'number' ||
231
+ !Number.isInteger(block.maxRoutes) ||
232
+ block.maxRoutes <= 0) {
233
+ throw new ConfigurationError('routeLearning.maxRoutes must be a positive integer');
234
+ }
235
+ }
236
+ return {
237
+ enabled: block.enabled,
238
+ ...(block.relayUrls !== undefined ? { relayUrls: block.relayUrls } : {}),
239
+ ...(block.refreshIntervalSecs !== undefined
240
+ ? { refreshIntervalSecs: block.refreshIntervalSecs }
241
+ : {}),
242
+ ...(block.maxRoutes !== undefined ? { maxRoutes: block.maxRoutes } : {}),
243
+ };
244
+ }
101
245
  static loadEnvironment() {
102
246
  const env = process.env.ENVIRONMENT || 'development';
103
247
  const validEnvironments = ['development', 'staging', 'production'];
@@ -316,6 +460,49 @@ class ConfigLoader {
316
460
  }
317
461
  }
318
462
  }
463
+ static validateApex(raw) {
464
+ if (raw === undefined) {
465
+ return undefined;
466
+ }
467
+ if (typeof raw !== 'string' || raw.trim() === '') {
468
+ throw new ConfigurationError(`Invalid type for apex: expected non-empty string, got ${typeof raw}`);
469
+ }
470
+ return raw;
471
+ }
472
+ static validateChildrenShape(raw) {
473
+ if (raw === undefined) {
474
+ return undefined;
475
+ }
476
+ if (!Array.isArray(raw)) {
477
+ throw new ConfigurationError(`Invalid type for children: expected array, got ${typeof raw}`);
478
+ }
479
+ for (const entry of raw) {
480
+ if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
481
+ throw new ConfigurationError('Invalid children entry: expected an object');
482
+ }
483
+ }
484
+ return raw;
485
+ }
486
+ static enforceRelationRoutes(routes, peers, nodeId, apex) {
487
+ const peersWithRelation = peers.filter((p) => p.relation !== undefined);
488
+ if (peersWithRelation.length === 0) {
489
+ return;
490
+ }
491
+ const localPrefixes = (0, relation_route_validator_1.deriveLocalPrefixes)(routes, nodeId);
492
+ if (apex !== undefined && !localPrefixes.includes(apex)) {
493
+ localPrefixes.push(apex);
494
+ }
495
+ for (const peer of peersWithRelation) {
496
+ const routePrefixes = routes.filter((r) => r.nextHop === peer.id).map((r) => r.prefix);
497
+ if (routePrefixes.length === 0) {
498
+ continue;
499
+ }
500
+ const result = (0, relation_route_validator_1.validateRelationRoute)(peer.relation, localPrefixes, routePrefixes);
501
+ if (!result.ok) {
502
+ throw new ConfigurationError(`Relation/route mismatch for peer '${peer.id}' (relation '${peer.relation}'): ${result.error}`);
503
+ }
504
+ }
505
+ }
319
506
  static validateTransport(raw) {
320
507
  if (raw === undefined) {
321
508
  return { type: 'direct' };
@@ -333,6 +520,95 @@ class ConfigLoader {
333
520
  }
334
521
  return { type: 'direct' };
335
522
  }
523
+ static validateBootstrap(raw) {
524
+ if (raw === undefined) {
525
+ return undefined;
526
+ }
527
+ if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {
528
+ const actualType = raw === null ? 'null' : Array.isArray(raw) ? 'array' : typeof raw;
529
+ throw new ConfigurationError(`Invalid type for bootstrap: expected object, got ${actualType}`);
530
+ }
531
+ const rawBootstrap = raw;
532
+ const hex64 = /^[0-9a-f]{64}$/;
533
+ const wsUrl = /^wss?:\/\/.+/;
534
+ if (typeof rawBootstrap.enabled !== 'boolean') {
535
+ throw new ConfigurationError(`Invalid type for bootstrap.enabled: expected boolean, got ${typeof rawBootstrap.enabled}`);
536
+ }
537
+ if (rawBootstrap.registryUrl !== undefined) {
538
+ if (typeof rawBootstrap.registryUrl !== 'string' ||
539
+ !/^https:\/\/.+/.test(rawBootstrap.registryUrl)) {
540
+ throw new ConfigurationError(`Invalid bootstrap.registryUrl: must be an https:// URL, got ${String(rawBootstrap.registryUrl)}`);
541
+ }
542
+ }
543
+ if (rawBootstrap.curatorPubkey !== undefined) {
544
+ if (typeof rawBootstrap.curatorPubkey !== 'string' ||
545
+ !hex64.test(rawBootstrap.curatorPubkey)) {
546
+ throw new ConfigurationError('Invalid bootstrap.curatorPubkey: must be 64-char lowercase hex (BIP-340 x-only pubkey)');
547
+ }
548
+ }
549
+ let seeds;
550
+ if (rawBootstrap.seeds !== undefined) {
551
+ if (!Array.isArray(rawBootstrap.seeds)) {
552
+ throw new ConfigurationError(`Invalid type for bootstrap.seeds: expected array, got ${typeof rawBootstrap.seeds}`);
553
+ }
554
+ seeds = [];
555
+ for (const [index, rawSeed] of rawBootstrap.seeds.entries()) {
556
+ if (rawSeed === null || typeof rawSeed !== 'object' || Array.isArray(rawSeed)) {
557
+ throw new ConfigurationError(`Invalid bootstrap.seeds[${index}]: expected object`);
558
+ }
559
+ const seed = rawSeed;
560
+ if (typeof seed.relayUrl !== 'string' || !wsUrl.test(seed.relayUrl)) {
561
+ throw new ConfigurationError(`Invalid bootstrap.seeds[${index}].relayUrl: must be a ws:// or wss:// URL, got ${String(seed.relayUrl)}`);
562
+ }
563
+ if (seed.pubkey !== undefined &&
564
+ (typeof seed.pubkey !== 'string' || !hex64.test(seed.pubkey))) {
565
+ throw new ConfigurationError(`Invalid bootstrap.seeds[${index}].pubkey: must be 64-char lowercase hex`);
566
+ }
567
+ seeds.push(seed.pubkey !== undefined
568
+ ? { relayUrl: seed.relayUrl, pubkey: seed.pubkey }
569
+ : { relayUrl: seed.relayUrl });
570
+ }
571
+ }
572
+ if (rawBootstrap.cachePath !== undefined) {
573
+ if (typeof rawBootstrap.cachePath !== 'string' || rawBootstrap.cachePath.trim() === '') {
574
+ throw new ConfigurationError('Invalid bootstrap.cachePath: must be a non-empty file path string');
575
+ }
576
+ }
577
+ if (rawBootstrap.sampleSize !== undefined) {
578
+ if (typeof rawBootstrap.sampleSize !== 'number' ||
579
+ !Number.isInteger(rawBootstrap.sampleSize) ||
580
+ rawBootstrap.sampleSize < 1) {
581
+ throw new ConfigurationError(`Invalid bootstrap.sampleSize: must be a positive integer, got ${String(rawBootstrap.sampleSize)}`);
582
+ }
583
+ }
584
+ if (rawBootstrap.refreshIntervalSecs !== undefined) {
585
+ if (typeof rawBootstrap.refreshIntervalSecs !== 'number' ||
586
+ !Number.isInteger(rawBootstrap.refreshIntervalSecs) ||
587
+ rawBootstrap.refreshIntervalSecs < 1) {
588
+ throw new ConfigurationError(`Invalid bootstrap.refreshIntervalSecs: must be a positive integer, got ${String(rawBootstrap.refreshIntervalSecs)}`);
589
+ }
590
+ }
591
+ const bootstrap = { enabled: rawBootstrap.enabled };
592
+ if (rawBootstrap.registryUrl !== undefined) {
593
+ bootstrap.registryUrl = rawBootstrap.registryUrl;
594
+ }
595
+ if (rawBootstrap.curatorPubkey !== undefined) {
596
+ bootstrap.curatorPubkey = rawBootstrap.curatorPubkey;
597
+ }
598
+ if (seeds !== undefined) {
599
+ bootstrap.seeds = seeds;
600
+ }
601
+ if (rawBootstrap.cachePath !== undefined) {
602
+ bootstrap.cachePath = rawBootstrap.cachePath;
603
+ }
604
+ if (rawBootstrap.sampleSize !== undefined) {
605
+ bootstrap.sampleSize = rawBootstrap.sampleSize;
606
+ }
607
+ if (rawBootstrap.refreshIntervalSecs !== undefined) {
608
+ bootstrap.refreshIntervalSecs = rawBootstrap.refreshIntervalSecs;
609
+ }
610
+ return bootstrap;
611
+ }
336
612
  }
337
613
  exports.ConfigLoader = ConfigLoader;
338
614
  //# sourceMappingURL=config-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"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"}