@iicp/client 0.7.63 → 0.7.65

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.
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyRelayBindTicket = verifyRelayBindTicket;
4
+ exports.fetchRelayBindTicket = fetchRelayBindTicket;
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ /** Directory-signed relay bind ticket helpers (#510 / DIR-RELAY-03). */
7
+ const node_crypto_1 = require("node:crypto");
8
+ const DOMAIN = "iicp:relay-bind-ticket:v1\n";
9
+ const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
10
+ function b64pad(s) {
11
+ const b = s.replace(/-/g, "+").replace(/_/g, "/");
12
+ return b + "=".repeat((4 - (b.length % 4)) % 4);
13
+ }
14
+ function publicKeyFromRawHex(hex) {
15
+ const raw = Buffer.from(hex, "hex");
16
+ if (raw.length !== 32)
17
+ throw new Error("relay bind ticket public key must be 32-byte hex");
18
+ return (0, node_crypto_1.createPublicKey)({ key: Buffer.concat([ED25519_SPKI_PREFIX, raw]), format: "der", type: "spki" });
19
+ }
20
+ function verifyRelayBindTicket(token, publicKeyHex, workerId, relayAudience = "*", nowSec = Math.floor(Date.now() / 1000)) {
21
+ const parts = token.split(".");
22
+ if (parts.length !== 2 || parts[1].length !== 128)
23
+ return null;
24
+ const [b64Payload, sigHex] = parts;
25
+ let payload;
26
+ try {
27
+ const sig = Buffer.from(sigHex, "hex");
28
+ const key = publicKeyFromRawHex(publicKeyHex);
29
+ if (!(0, node_crypto_1.verify)(null, Buffer.from(DOMAIN + b64Payload), key, sig))
30
+ return null;
31
+ payload = JSON.parse(Buffer.from(b64pad(b64Payload), "base64").toString());
32
+ }
33
+ catch {
34
+ return null;
35
+ }
36
+ if (payload.typ !== "relay-bind-ticket")
37
+ return null;
38
+ if (payload.sub !== workerId)
39
+ return null;
40
+ if (payload.exp <= nowSec)
41
+ return null;
42
+ if (payload.aud !== "*" && payload.aud !== relayAudience)
43
+ return null;
44
+ return payload;
45
+ }
46
+ async function fetchRelayBindTicket(opts) {
47
+ const url = `${opts.directoryUrl.replace(/\/$/, "")}/v1/relay/ticket`;
48
+ const resp = await fetch(url, {
49
+ method: "POST",
50
+ headers: {
51
+ "Content-Type": "application/json",
52
+ "Authorization": `Bearer ${opts.nodeToken}`,
53
+ "X-Node-Id": opts.workerId,
54
+ },
55
+ body: JSON.stringify(opts.relayNodeId ? { relay_node_id: opts.relayNodeId } : {}),
56
+ signal: AbortSignal.timeout(10_000),
57
+ });
58
+ if (!resp.ok)
59
+ return undefined;
60
+ const data = await resp.json();
61
+ return data.ticket;
62
+ }
63
+ //# sourceMappingURL=relay_ticket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay_ticket.js","sourceRoot":"","sources":["../src/relay_ticket.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,10 @@ export declare class RelayWorkerClient {
16
16
  private readonly _handler;
17
17
  private readonly _models;
18
18
  private readonly _onBind?;
19
+ private readonly _bindTicket?;
20
+ private readonly _directoryUrl?;
21
+ private readonly _nodeToken?;
22
+ private readonly _relayNodeId?;
19
23
  private _stopped;
20
24
  constructor(opts: {
21
25
  workerId: string;
@@ -24,6 +28,13 @@ export declare class RelayWorkerClient {
24
28
  relayPort: number;
25
29
  handler: RelayTaskHandler;
26
30
  models?: string[];
31
+ /** Additive #510 ticket. If omitted but directoryUrl+nodeToken are set, the
32
+ * client tries POST /v1/relay/ticket before each bind. Legacy relays ignore
33
+ * unknown RELAY_BIND field 4. */
34
+ bindTicket?: string;
35
+ directoryUrl?: string;
36
+ nodeToken?: string;
37
+ relayNodeId?: string;
27
38
  /** Called after a successful RELAY_ACK with (relayHost, relayHttpPort, workerId) —
28
39
  * the HTTP port comes from RELAY_ACK field 4 (fallback 9484). Use to re-register
29
40
  * with the directory advertising {relay}/v1/relay-for/{workerId} (#358/#450). */
@@ -1 +1 @@
1
- {"version":3,"file":"relay_worker_client.d.ts","sourceRoot":"","sources":["../src/relay_worker_client.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAqDH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA4E;IACrG,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,gBAAgB,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB;;yFAEiF;QACjF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACpF;IAUD,2DAA2D;IAC3D,KAAK,IAAI,MAAM,IAAI;YAML,IAAI;IAelB,OAAO,CAAC,QAAQ;YAkBF,UAAU;YAwFV,WAAW;CAuB1B"}
1
+ {"version":3,"file":"relay_worker_client.d.ts","sourceRoot":"","sources":["../src/relay_worker_client.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAsDH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA4E;IACrG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,gBAAgB,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB;;yCAEiC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;yFAEiF;QACjF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACpF;IAcD,2DAA2D;IAC3D,KAAK,IAAI,MAAM,IAAI;YAML,IAAI;IAelB,OAAO,CAAC,QAAQ;YAkBF,UAAU;YAuGV,WAAW;CAuB1B"}
@@ -12,6 +12,7 @@
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.RelayWorkerClient = void 0;
14
14
  const net = require("node:net");
15
+ const relay_ticket_js_1 = require("./relay_ticket.js");
15
16
  const IICP_MAGIC = Buffer.from("IICP");
16
17
  const FRAMING_VERSION = 0x01;
17
18
  const FRAME_HEADER_LEN = 12;
@@ -60,6 +61,10 @@ class RelayWorkerClient {
60
61
  _handler;
61
62
  _models;
62
63
  _onBind;
64
+ _bindTicket;
65
+ _directoryUrl;
66
+ _nodeToken;
67
+ _relayNodeId;
63
68
  _stopped = false;
64
69
  constructor(opts) {
65
70
  this._workerId = opts.workerId;
@@ -69,6 +74,10 @@ class RelayWorkerClient {
69
74
  this._handler = opts.handler;
70
75
  this._models = opts.models ?? [];
71
76
  this._onBind = opts.onBind;
77
+ this._bindTicket = opts.bindTicket;
78
+ this._directoryUrl = opts.directoryUrl;
79
+ this._nodeToken = opts.nodeToken;
80
+ this._relayNodeId = opts.relayNodeId;
72
81
  }
73
82
  /** Start the reconnect loop. Returns a stop() function. */
74
83
  start() {
@@ -157,11 +166,28 @@ class RelayWorkerClient {
157
166
  if (!ack || ack[0] !== MT_ACK)
158
167
  throw new Error(`Expected ACK, got ${ack?.[0]}`);
159
168
  // Step 2: RELAY_BIND → RELAY_ACK
160
- socket.write(makeFrame(MT_RELAY_BIND, _enc(new Map([
169
+ let bindTicket = this._bindTicket;
170
+ if (!bindTicket && this._directoryUrl && this._nodeToken) {
171
+ try {
172
+ bindTicket = await (0, relay_ticket_js_1.fetchRelayBindTicket)({
173
+ directoryUrl: this._directoryUrl,
174
+ nodeToken: this._nodeToken,
175
+ workerId: this._workerId,
176
+ relayNodeId: this._relayNodeId,
177
+ });
178
+ }
179
+ catch {
180
+ // Additive migration: lack of a ticket must not break legacy relays yet.
181
+ }
182
+ }
183
+ const bindFields = new Map([
161
184
  [1, this._workerId],
162
185
  [2, this._intent],
163
186
  [3, this._models],
164
- ]))));
187
+ ]);
188
+ if (bindTicket)
189
+ bindFields.set(4, bindTicket);
190
+ socket.write(makeFrame(MT_RELAY_BIND, _enc(bindFields)));
165
191
  const rack = await readFrame();
166
192
  if (!rack || rack[0] !== MT_RELAY_ACK)
167
193
  throw new Error(`Expected RELAY_ACK, got ${rack?.[0]}`);
@@ -1 +1 @@
1
- {"version":3,"file":"relay_worker_client.js","sourceRoot":"","sources":["../src/relay_worker_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay_worker_client.js","sourceRoot":"","sources":["../src/relay_worker_client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface ServiceUnit {
2
+ platform: "launchd" | "systemd";
3
+ name: string;
4
+ path: string;
5
+ content: string;
6
+ statusHint: string;
7
+ restartHint: string;
8
+ uninstallHint: string;
9
+ logHint: string;
10
+ }
11
+ export declare function sanitizeServiceName(value: string): string;
12
+ export declare function serviceLabel(node: string, name?: string): string;
13
+ export declare function detectPlatform(requested?: string): "launchd" | "systemd";
14
+ export declare function renderLaunchd(node: string, name?: string, executable?: string): ServiceUnit;
15
+ export declare function renderSystemd(node: string, name?: string, executable?: string): ServiceUnit;
16
+ export declare function renderServiceUnit(node: string, name?: string, platform?: string, executable?: string): ServiceUnit;
17
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAMD,wBAAgB,cAAc,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,CAIxE;AAWD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,SAAc,GAAG,WAAW,CAkDhG;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,SAAc,GAAG,WAAW,CAsChG;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAS,EAAE,UAAU,SAAc,GAAG,WAAW,CAIvH"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeServiceName = sanitizeServiceName;
4
+ exports.serviceLabel = serviceLabel;
5
+ exports.detectPlatform = detectPlatform;
6
+ exports.renderLaunchd = renderLaunchd;
7
+ exports.renderSystemd = renderSystemd;
8
+ exports.renderServiceUnit = renderServiceUnit;
9
+ // SPDX-License-Identifier: Apache-2.0
10
+ /**
11
+ * OS supervisor unit rendering for `iicp-node service` (#551).
12
+ *
13
+ * The node stays a foreground process (`iicp-node serve --node <name>`).
14
+ * launchd/systemd own restart-on-failure, logs and background resilience.
15
+ */
16
+ const os = require("node:os");
17
+ const path = require("node:path");
18
+ const SAFE_RE = /[^A-Za-z0-9_.-]+/g;
19
+ function sanitizeServiceName(value) {
20
+ const cleaned = value.trim().replace(SAFE_RE, "-").replace(/^[-.]+|[-.]+$/g, "");
21
+ if (!cleaned)
22
+ throw new Error("service/node name must contain at least one safe character");
23
+ return cleaned.slice(0, 80);
24
+ }
25
+ function serviceLabel(node, name) {
26
+ return sanitizeServiceName(name ?? `network.iicp.node.${sanitizeServiceName(node)}`);
27
+ }
28
+ function envValue(key, fallback) {
29
+ return process.env[key] ?? fallback;
30
+ }
31
+ function detectPlatform(requested = "auto") {
32
+ if (requested === "launchd" || requested === "systemd")
33
+ return requested;
34
+ if (requested !== "auto")
35
+ throw new Error("platform must be auto, launchd or systemd");
36
+ return process.platform === "darwin" ? "launchd" : "systemd";
37
+ }
38
+ function xmlEscape(value) {
39
+ return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
40
+ }
41
+ function shellQuote(value) {
42
+ if (/^[A-Za-z0-9_/:=.,@%+-]+$/.test(value))
43
+ return value;
44
+ return `'${value.replace(/'/g, `'\\''`)}'`;
45
+ }
46
+ function renderLaunchd(node, name, executable = "iicp-node") {
47
+ const label = serviceLabel(node, name);
48
+ const home = os.homedir();
49
+ const logDir = envValue("IICP_LOG_DIR", path.join(home, ".iicp", "logs"));
50
+ const plist = path.join(home, "Library", "LaunchAgents", `${label}.plist`);
51
+ const env = {
52
+ IICP_NODE_NAME: node,
53
+ IICP_AUTO_UPDATE: envValue("IICP_AUTO_UPDATE", "1"),
54
+ IICP_AUTO_UPDATE_INTERVAL_S: envValue("IICP_AUTO_UPDATE_INTERVAL_S", "3600"),
55
+ IICP_LOG_DIR: logDir,
56
+ };
57
+ const envXml = Object.entries(env)
58
+ .map(([k, v]) => ` <key>${xmlEscape(k)}</key><string>${xmlEscape(v)}</string>`)
59
+ .join("\n");
60
+ const outLog = path.join(logDir, `${label}.out.log`);
61
+ const errLog = path.join(logDir, `${label}.err.log`);
62
+ const content = `<?xml version="1.0" encoding="UTF-8"?>
63
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
64
+ <plist version="1.0">
65
+ <dict>
66
+ <key>Label</key><string>${xmlEscape(label)}</string>
67
+ <key>ProgramArguments</key>
68
+ <array>
69
+ <string>${xmlEscape(executable)}</string>
70
+ <string>serve</string>
71
+ <string>--node</string>
72
+ <string>${xmlEscape(node)}</string>
73
+ </array>
74
+ <key>EnvironmentVariables</key>
75
+ <dict>
76
+ ${envXml}
77
+ </dict>
78
+ <key>RunAtLoad</key><true/>
79
+ <key>KeepAlive</key><true/>
80
+ <key>ThrottleInterval</key><integer>30</integer>
81
+ <key>StandardOutPath</key><string>${xmlEscape(outLog)}</string>
82
+ <key>StandardErrorPath</key><string>${xmlEscape(errLog)}</string>
83
+ </dict>
84
+ </plist>
85
+ `;
86
+ return {
87
+ platform: "launchd",
88
+ name: label,
89
+ path: plist,
90
+ content,
91
+ statusHint: `launchctl print gui/$(id -u)/${label}`,
92
+ restartHint: `launchctl kickstart -k gui/$(id -u)/${label}`,
93
+ uninstallHint: `launchctl bootout gui/$(id -u) ${shellQuote(plist)}; rm -f ${shellQuote(plist)}`,
94
+ logHint: `tail -f ${shellQuote(outLog)} ${shellQuote(errLog)}`,
95
+ };
96
+ }
97
+ function renderSystemd(node, name, executable = "iicp-node") {
98
+ const label = serviceLabel(node, name);
99
+ const home = os.homedir();
100
+ const unitPath = path.join(home, ".config", "systemd", "user", `${label}.service`);
101
+ const logDir = envValue("IICP_LOG_DIR", path.join(home, ".iicp", "logs"));
102
+ const env = {
103
+ IICP_NODE_NAME: node,
104
+ IICP_AUTO_UPDATE: envValue("IICP_AUTO_UPDATE", "1"),
105
+ IICP_AUTO_UPDATE_INTERVAL_S: envValue("IICP_AUTO_UPDATE_INTERVAL_S", "3600"),
106
+ IICP_LOG_DIR: logDir,
107
+ };
108
+ const envLines = Object.entries(env).map(([k, v]) => `Environment=${k}=${shellQuote(v)}`).join("\n");
109
+ const content = `[Unit]
110
+ Description=IICP node ${node}
111
+ After=network-online.target
112
+ Wants=network-online.target
113
+
114
+ [Service]
115
+ Type=simple
116
+ ExecStart=${executable} serve --node ${shellQuote(node)}
117
+ ${envLines}
118
+ Restart=on-failure
119
+ RestartSec=30
120
+ WorkingDirectory=${shellQuote(home)}
121
+
122
+ [Install]
123
+ WantedBy=default.target
124
+ `;
125
+ return {
126
+ platform: "systemd",
127
+ name: label,
128
+ path: unitPath,
129
+ content,
130
+ statusHint: `systemctl --user status ${label}.service`,
131
+ restartHint: `systemctl --user restart ${label}.service`,
132
+ uninstallHint: `systemctl --user disable --now ${label}.service; rm -f ${shellQuote(unitPath)}; systemctl --user daemon-reload`,
133
+ logHint: `journalctl --user -u ${label}.service -f`,
134
+ };
135
+ }
136
+ function renderServiceUnit(node, name, platform = "auto", executable = "iicp-node") {
137
+ return detectPlatform(platform) === "launchd"
138
+ ? renderLaunchd(node, name, executable)
139
+ : renderSystemd(node, name, executable);
140
+ }
141
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -14,6 +14,12 @@ export interface ClientConfig {
14
14
  use_confidentiality?: boolean;
15
15
  /** ε-greedy exploration probability for provider selection (R4). Default: 0.05. Override: IICP_ROUTING_EPSILON */
16
16
  routing_epsilon?: number;
17
+ /** Selection strategy. Default: epsilon. Override: IICP_ROUTING_STRATEGY */
18
+ routing_strategy?: "deterministic" | "epsilon" | "softmax_top_k";
19
+ /** Candidate pool for softmax_top_k. Default: 3. Override: IICP_ROUTING_TOP_K */
20
+ routing_top_k?: number;
21
+ /** Softmax temperature for softmax_top_k. Default: 0.04. Override: IICP_ROUTING_SOFTMAX_TAU */
22
+ routing_softmax_tau?: number;
17
23
  /** Phase 2 (#496): caller's JWT from directory registration, used to acquire consumer tokens. */
18
24
  node_token?: string;
19
25
  }
@@ -56,6 +62,7 @@ export interface DiscoverOptions {
56
62
  }
57
63
  export interface CxPublicKey {
58
64
  algorithm: string;
65
+ encoding?: string;
59
66
  key: string;
60
67
  key_id: string;
61
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iicp/client",
3
- "version": "0.7.63",
3
+ "version": "0.7.65",
4
4
  "description": "Official TypeScript/JavaScript SDK for the IICP protocol (ADR-016)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",