@fairmint/canton-node-sdk 0.0.250 → 0.0.252
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -7
- package/build/src/Canton.d.ts +3 -1
- package/build/src/Canton.d.ts.map +1 -1
- package/build/src/Canton.js +2 -0
- package/build/src/Canton.js.map +1 -1
- package/build/src/clients/ledger-json-api/operations/v2/state/get-active-contracts.d.ts +1 -0
- package/build/src/clients/ledger-json-api/operations/v2/state/get-active-contracts.d.ts.map +1 -1
- package/build/src/clients/ledger-json-api/operations/v2/state/get-active-contracts.js +14 -1
- package/build/src/clients/ledger-json-api/operations/v2/state/get-active-contracts.js.map +1 -1
- package/build/src/core/BaseClient.d.ts +6 -1
- package/build/src/core/BaseClient.d.ts.map +1 -1
- package/build/src/core/BaseClient.js +11 -3
- package/build/src/core/BaseClient.js.map +1 -1
- package/build/src/core/auth/AuthenticationManager.d.ts +21 -2
- package/build/src/core/auth/AuthenticationManager.d.ts.map +1 -1
- package/build/src/core/auth/AuthenticationManager.js +57 -6
- package/build/src/core/auth/AuthenticationManager.js.map +1 -1
- package/build/src/core/errors.d.ts +13 -0
- package/build/src/core/errors.d.ts.map +1 -1
- package/build/src/core/errors.js +18 -1
- package/build/src/core/errors.js.map +1 -1
- package/build/src/core/http/HttpClient.d.ts +49 -1
- package/build/src/core/http/HttpClient.d.ts.map +1 -1
- package/build/src/core/http/HttpClient.js +111 -7
- package/build/src/core/http/HttpClient.js.map +1 -1
- package/build/src/core/types.d.ts +11 -0
- package/build/src/core/types.d.ts.map +1 -1
- package/build/src/core/ws/WebSocketClient.d.ts +6 -9
- package/build/src/core/ws/WebSocketClient.d.ts.map +1 -1
- package/build/src/core/ws/WebSocketClient.js +40 -0
- package/build/src/core/ws/WebSocketClient.js.map +1 -1
- package/package.json +14 -15
- package/bin/canton-localnet +0 -213
- package/scripts/localnet-cloud.sh +0 -1178
|
@@ -7,18 +7,46 @@ export interface HttpClientRetryConfig {
|
|
|
7
7
|
/** Delay between read-only retries in milliseconds. */
|
|
8
8
|
readonly delayMs: number;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Socket-inactivity timeout applied to every request unless a caller overrides it.
|
|
12
|
+
*
|
|
13
|
+
* Axios disables the socket timer entirely when no timeout is set, so a Canton endpoint that accepts the TCP connection
|
|
14
|
+
* and then stops responding suspends the awaiting caller forever. This value is a hang detector, not a latency budget:
|
|
15
|
+
* the timer resets on every received byte, and it is deliberately larger than any documented Canton blocking wait.
|
|
16
|
+
*
|
|
17
|
+
* The longest legitimate silence comes from the Ledger API command service, which holds a `submit-and-wait` response
|
|
18
|
+
* open until the command completes or its tracking timeout fires (`CommandServiceConfig.DefaultDefaultTrackingTimeout`,
|
|
19
|
+
* 5 minutes). Every other observed Canton/Splice server bound is shorter: the JSON API's own request timeout defaults
|
|
20
|
+
* to 20 seconds, Splice apps run a 38-second pekko request timeout, and Canton's console request timeout is 40 seconds.
|
|
21
|
+
* Ten minutes therefore leaves 2x headroom over the slowest legitimate operation.
|
|
22
|
+
*
|
|
23
|
+
* Use {@link RequestConfig.timeoutMs} for a different per-request floor, or an `AbortSignal` (for example
|
|
24
|
+
* `AbortSignal.timeout(ms)`) when a total deadline rather than an inactivity timer is needed.
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_HTTP_TIMEOUT_MS = 600000;
|
|
27
|
+
/** Construction-time transport options for {@link HttpClient}. */
|
|
28
|
+
export interface HttpClientOptions {
|
|
29
|
+
/**
|
|
30
|
+
* Socket-inactivity timeout in milliseconds applied to every request from this client. Defaults to
|
|
31
|
+
* {@link DEFAULT_HTTP_TIMEOUT_MS}. `0` disables the timer and restores the unbounded-wait behavior; never use it for
|
|
32
|
+
* production workloads.
|
|
33
|
+
*/
|
|
34
|
+
readonly timeoutMs?: number;
|
|
35
|
+
}
|
|
10
36
|
/** Handles HTTP requests with authentication, logging, cancellation, and explicit retry safety. */
|
|
11
37
|
export declare class HttpClient {
|
|
12
38
|
private readonly axiosInstance;
|
|
13
39
|
private readonly bearerTokenProvider;
|
|
14
40
|
private readonly logger;
|
|
41
|
+
private readonly defaultTimeoutMs;
|
|
15
42
|
private retryConfig;
|
|
16
43
|
private static readonly CAUSE_TRUNCATE_LENGTH;
|
|
17
44
|
private static readonly CONTEXT_VALUE_TRUNCATE_LENGTH;
|
|
18
45
|
private static readonly RESPONSE_BODY_TRUNCATE_LENGTH;
|
|
19
46
|
private static readonly MAX_CONTEXT_KEYS;
|
|
20
47
|
private static readonly MAX_ATTEMPT_IDENTIFIER_LENGTH;
|
|
21
|
-
|
|
48
|
+
private static readonly MAX_TIMEOUT_MS;
|
|
49
|
+
constructor(logger?: Logger, bearerTokenProvider?: (signal?: AbortSignal) => Promise<string>, options?: HttpClientOptions);
|
|
22
50
|
/** Configure the default retry policy used only by requests classified as semantic reads. */
|
|
23
51
|
setRetryConfig(config: HttpClientRetryConfig): void;
|
|
24
52
|
makeGetRequest<T>(url: string, config?: RequestConfig, options?: HttpReadRequestOptions<undefined>): Promise<T>;
|
|
@@ -37,6 +65,16 @@ export declare class HttpClient {
|
|
|
37
65
|
private cloneDerivedBody;
|
|
38
66
|
private dispatchRequest;
|
|
39
67
|
private buildHeaders;
|
|
68
|
+
/**
|
|
69
|
+
* Bound the token fetch too: a silent auth endpoint would otherwise suspend the request before it is dispatched.
|
|
70
|
+
* Rejects immediately, before ever invoking `provider`, when `signal` is already aborted. Clears its own timer as
|
|
71
|
+
* soon as `signal` aborts so a caller-driven cancellation never leaves a live timer handle behind for the
|
|
72
|
+
* remainder of `timeoutMs`, mirroring {@link abortableSleep}. `timeoutMs === 0` only skips the timer — a `signal`
|
|
73
|
+
* is still wired up and honored, since cancellation and the timeout budget are independent concerns. The `finally`
|
|
74
|
+
* removes the abort listener on every outcome (success, timeout, or abort) so a long-lived, reused `signal` never
|
|
75
|
+
* accumulates listeners across repeated calls.
|
|
76
|
+
*/
|
|
77
|
+
private fetchBearerToken;
|
|
40
78
|
/** Invoke logging as a detached observer. Logger behavior can never affect request control flow. */
|
|
41
79
|
private observeLog;
|
|
42
80
|
/** Isolate logger-owned values so a custom logger cannot mutate request or response control-flow state. */
|
|
@@ -47,6 +85,8 @@ export declare class HttpClient {
|
|
|
47
85
|
private redactSensitiveLogHeaders;
|
|
48
86
|
private logFailedRequest;
|
|
49
87
|
private logRetry;
|
|
88
|
+
/** Reject non-numeric or negative timeouts up front rather than letting axios silently disable the socket timer. */
|
|
89
|
+
private static validateTimeoutMs;
|
|
50
90
|
private handleRequestError;
|
|
51
91
|
/** Preserve structured Canton errors and wrap every other response shape in a type-safe object context. */
|
|
52
92
|
private normalizeErrorResponseData;
|
|
@@ -67,6 +107,14 @@ export declare class HttpClient {
|
|
|
67
107
|
private redactEndpoint;
|
|
68
108
|
private redactAttemptIdentifier;
|
|
69
109
|
private isCanceledError;
|
|
110
|
+
/**
|
|
111
|
+
* A socket-inactivity timeout never reaches the server response, so it must not be reported as an API error.
|
|
112
|
+
* Axios's own configured `timeout` always surfaces as `ECONNABORTED` (its Node adapter never sets
|
|
113
|
+
* `transitional.clarifyTimeoutError`, so it never uses `ETIMEDOUT` for this). A raw `ETIMEDOUT` is Node's
|
|
114
|
+
* connect-phase failure code for a different, genuinely transient condition, so it is excluded here and stays
|
|
115
|
+
* retryable.
|
|
116
|
+
*/
|
|
117
|
+
private isTimeoutError;
|
|
70
118
|
private abortableSleep;
|
|
71
119
|
}
|
|
72
120
|
//# sourceMappingURL=HttpClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/http/HttpClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/http/HttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.HttpClient = void 0;
|
|
6
|
+
exports.HttpClient = exports.DEFAULT_HTTP_TIMEOUT_MS = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const errors_1 = require("../errors");
|
|
9
9
|
const abort_1 = require("./abort");
|
|
10
10
|
const request_retry_1 = require("./request-retry");
|
|
11
11
|
const request_value_1 = require("./request-value");
|
|
12
|
+
/**
|
|
13
|
+
* Socket-inactivity timeout applied to every request unless a caller overrides it.
|
|
14
|
+
*
|
|
15
|
+
* Axios disables the socket timer entirely when no timeout is set, so a Canton endpoint that accepts the TCP connection
|
|
16
|
+
* and then stops responding suspends the awaiting caller forever. This value is a hang detector, not a latency budget:
|
|
17
|
+
* the timer resets on every received byte, and it is deliberately larger than any documented Canton blocking wait.
|
|
18
|
+
*
|
|
19
|
+
* The longest legitimate silence comes from the Ledger API command service, which holds a `submit-and-wait` response
|
|
20
|
+
* open until the command completes or its tracking timeout fires (`CommandServiceConfig.DefaultDefaultTrackingTimeout`,
|
|
21
|
+
* 5 minutes). Every other observed Canton/Splice server bound is shorter: the JSON API's own request timeout defaults
|
|
22
|
+
* to 20 seconds, Splice apps run a 38-second pekko request timeout, and Canton's console request timeout is 40 seconds.
|
|
23
|
+
* Ten minutes therefore leaves 2x headroom over the slowest legitimate operation.
|
|
24
|
+
*
|
|
25
|
+
* Use {@link RequestConfig.timeoutMs} for a different per-request floor, or an `AbortSignal` (for example
|
|
26
|
+
* `AbortSignal.timeout(ms)`) when a total deadline rather than an inactivity timer is needed.
|
|
27
|
+
*/
|
|
28
|
+
exports.DEFAULT_HTTP_TIMEOUT_MS = 600000;
|
|
12
29
|
/** Handles HTTP requests with authentication, logging, cancellation, and explicit retry safety. */
|
|
13
30
|
class HttpClient {
|
|
14
|
-
constructor(logger, bearerTokenProvider) {
|
|
31
|
+
constructor(logger, bearerTokenProvider, options = {}) {
|
|
15
32
|
this.retryConfig = { maxRetries: 3, delayMs: 6000 };
|
|
33
|
+
this.defaultTimeoutMs = HttpClient.validateTimeoutMs(options.timeoutMs, 'HTTP client') ?? exports.DEFAULT_HTTP_TIMEOUT_MS;
|
|
34
|
+
// Every dispatched request always passes an explicit resolved `timeout` (see `makeRequest`/`dispatchRequest`), so
|
|
35
|
+
// an instance-level default here would never be read; the per-request value is the single source of truth.
|
|
16
36
|
this.axiosInstance = axios_1.default.create();
|
|
17
37
|
this.bearerTokenProvider = bearerTokenProvider;
|
|
18
38
|
this.logger = logger;
|
|
@@ -44,6 +64,7 @@ class HttpClient {
|
|
|
44
64
|
// options signal or retry object while a token/hook is pending change the in-flight request contract.
|
|
45
65
|
const requestOptions = (0, request_retry_1.snapshotHttpRequestOptions)(options);
|
|
46
66
|
const requestConfig = Object.freeze({ ...config });
|
|
67
|
+
const timeoutMs = HttpClient.validateTimeoutMs(requestConfig.timeoutMs, 'HTTP request') ?? this.defaultTimeoutMs;
|
|
47
68
|
const { signal, retry: requestedRetry, requestSemantics: requestedSemantics, resolveReadAttemptUrl, } = requestOptions;
|
|
48
69
|
const requestSemantics = requestedSemantics ?? (method === 'GET' ? 'read' : 'mutation');
|
|
49
70
|
if (method === 'GET' && requestSemantics !== 'read') {
|
|
@@ -109,13 +130,13 @@ class HttpClient {
|
|
|
109
130
|
let dispatched = false;
|
|
110
131
|
try {
|
|
111
132
|
const headers = await (0, abort_1.awaitWithAbort)(async () => {
|
|
112
|
-
const builtHeaders = await this.buildHeaders(requestConfig);
|
|
133
|
+
const builtHeaders = await this.buildHeaders(requestConfig, timeoutMs, signal);
|
|
113
134
|
return builtHeaders;
|
|
114
135
|
}, signal);
|
|
115
136
|
(0, abort_1.throwIfAborted)(signal);
|
|
116
137
|
const requestBody = this.cloneBody(currentBody);
|
|
117
138
|
dispatched = true;
|
|
118
|
-
const response = await this.dispatchRequest(method, attemptUrl, requestBody, headers, signal);
|
|
139
|
+
const response = await this.dispatchRequest(method, attemptUrl, requestBody, headers, signal, timeoutMs);
|
|
119
140
|
this.observeLog(attemptUrl, method === 'GET' || method === 'DELETE' ? { method, headers } : { method, headers, data: requestBody }, response);
|
|
120
141
|
return response;
|
|
121
142
|
}
|
|
@@ -283,9 +304,10 @@ class HttpClient {
|
|
|
283
304
|
});
|
|
284
305
|
}
|
|
285
306
|
}
|
|
286
|
-
async dispatchRequest(method, url, body, headers, signal) {
|
|
307
|
+
async dispatchRequest(method, url, body, headers, signal, timeoutMs) {
|
|
287
308
|
const axiosConfig = {
|
|
288
309
|
headers,
|
|
310
|
+
timeout: timeoutMs,
|
|
289
311
|
...(signal !== undefined ? { signal } : {}),
|
|
290
312
|
};
|
|
291
313
|
switch (method) {
|
|
@@ -299,7 +321,7 @@ class HttpClient {
|
|
|
299
321
|
return (await this.axiosInstance.patch(url, body, axiosConfig)).data;
|
|
300
322
|
}
|
|
301
323
|
}
|
|
302
|
-
async buildHeaders(config) {
|
|
324
|
+
async buildHeaders(config, timeoutMs, signal) {
|
|
303
325
|
const headers = {};
|
|
304
326
|
if (config.contentType) {
|
|
305
327
|
headers['Content-Type'] = config.contentType;
|
|
@@ -311,13 +333,52 @@ class HttpClient {
|
|
|
311
333
|
if (!this.bearerTokenProvider) {
|
|
312
334
|
throw new errors_1.AuthenticationError('Bearer token requested but no token provider is configured');
|
|
313
335
|
}
|
|
314
|
-
const token = await this.bearerTokenProvider
|
|
336
|
+
const token = await this.fetchBearerToken(this.bearerTokenProvider, timeoutMs, signal);
|
|
315
337
|
if (token) {
|
|
316
338
|
headers['Authorization'] = `Bearer ${token}`;
|
|
317
339
|
}
|
|
318
340
|
}
|
|
319
341
|
return headers;
|
|
320
342
|
}
|
|
343
|
+
/**
|
|
344
|
+
* Bound the token fetch too: a silent auth endpoint would otherwise suspend the request before it is dispatched.
|
|
345
|
+
* Rejects immediately, before ever invoking `provider`, when `signal` is already aborted. Clears its own timer as
|
|
346
|
+
* soon as `signal` aborts so a caller-driven cancellation never leaves a live timer handle behind for the
|
|
347
|
+
* remainder of `timeoutMs`, mirroring {@link abortableSleep}. `timeoutMs === 0` only skips the timer — a `signal`
|
|
348
|
+
* is still wired up and honored, since cancellation and the timeout budget are independent concerns. The `finally`
|
|
349
|
+
* removes the abort listener on every outcome (success, timeout, or abort) so a long-lived, reused `signal` never
|
|
350
|
+
* accumulates listeners across repeated calls.
|
|
351
|
+
*/
|
|
352
|
+
async fetchBearerToken(provider, timeoutMs, signal) {
|
|
353
|
+
(0, abort_1.throwIfAborted)(signal);
|
|
354
|
+
if (timeoutMs === 0 && signal === undefined)
|
|
355
|
+
return provider(signal);
|
|
356
|
+
let timer;
|
|
357
|
+
let onAbort;
|
|
358
|
+
// The abort listener must be attached before `provider` is invoked: a provider that synchronously aborts
|
|
359
|
+
// `signal` before returning its (still-pending) promise must not be missed.
|
|
360
|
+
const timeoutPromise = new Promise((_resolve, reject) => {
|
|
361
|
+
onAbort = () => {
|
|
362
|
+
clearTimeout(timer);
|
|
363
|
+
reject((0, abort_1.createAbortError)(signal));
|
|
364
|
+
};
|
|
365
|
+
if (timeoutMs !== 0) {
|
|
366
|
+
timer = setTimeout(() => {
|
|
367
|
+
reject(new errors_1.TimeoutError(`Bearer token request timed out after ${timeoutMs}ms`));
|
|
368
|
+
}, timeoutMs);
|
|
369
|
+
}
|
|
370
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
371
|
+
});
|
|
372
|
+
const tokenPromise = provider(signal);
|
|
373
|
+
try {
|
|
374
|
+
return await Promise.race([tokenPromise, timeoutPromise]);
|
|
375
|
+
}
|
|
376
|
+
finally {
|
|
377
|
+
clearTimeout(timer);
|
|
378
|
+
if (onAbort)
|
|
379
|
+
signal?.removeEventListener('abort', onAbort);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
321
382
|
/** Invoke logging as a detached observer. Logger behavior can never affect request control flow. */
|
|
322
383
|
observeLog(url, request, response) {
|
|
323
384
|
if (!this.logger)
|
|
@@ -408,9 +469,26 @@ class HttpClient {
|
|
|
408
469
|
...(summary.identifier !== undefined ? { attemptIdentifier: summary.identifier } : {}),
|
|
409
470
|
}, `Retrying after ${summary.errorClassification} (next attempt ${attempt + 1}/${maxAttempts}): ${axios_1.default.isAxiosError(error) ? (error.response?.status ?? 'network error') : 'request error'}`);
|
|
410
471
|
}
|
|
472
|
+
/** Reject non-numeric or negative timeouts up front rather than letting axios silently disable the socket timer. */
|
|
473
|
+
static validateTimeoutMs(timeoutMs, label) {
|
|
474
|
+
if (timeoutMs === undefined)
|
|
475
|
+
return undefined;
|
|
476
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs < 0) {
|
|
477
|
+
throw new errors_1.ConfigurationError(`${label} timeoutMs must be a non-negative finite number`);
|
|
478
|
+
}
|
|
479
|
+
if (timeoutMs > HttpClient.MAX_TIMEOUT_MS) {
|
|
480
|
+
throw new errors_1.ConfigurationError(`${label} timeoutMs must not exceed ${HttpClient.MAX_TIMEOUT_MS}`);
|
|
481
|
+
}
|
|
482
|
+
return timeoutMs;
|
|
483
|
+
}
|
|
411
484
|
handleRequestError(error) {
|
|
412
485
|
if (error instanceof errors_1.CantonError)
|
|
413
486
|
return error;
|
|
487
|
+
if (this.isTimeoutError(error)) {
|
|
488
|
+
const method = error.config?.method?.toUpperCase() ?? 'GET';
|
|
489
|
+
return new errors_1.NetworkError(`Request timed out after ${error.config?.timeout ?? 'unknown'}ms without response data ` +
|
|
490
|
+
`[request: ${method} ${this.redactEndpoint(error.config?.url ?? 'unknown')}]`);
|
|
491
|
+
}
|
|
414
492
|
if (axios_1.default.isAxiosError(error)) {
|
|
415
493
|
const status = error.response?.status;
|
|
416
494
|
const { data, responseBody } = this.normalizeErrorResponseData(error.response?.data);
|
|
@@ -528,6 +606,18 @@ class HttpClient {
|
|
|
528
606
|
}
|
|
529
607
|
/** Return true for transport failures that the SDK has historically classified as transient. */
|
|
530
608
|
isRetryableError(error) {
|
|
609
|
+
// A socket-inactivity timeout means the endpoint was already silent for the full configured `timeoutMs`.
|
|
610
|
+
// Retrying wouldn't plausibly get a response inside the same short window, and doing so up to `maxAttempts`
|
|
611
|
+
// times would let a consistently silent endpoint hang the caller for `maxAttempts * timeoutMs` instead of
|
|
612
|
+
// roughly `timeoutMs`. Fail fast instead: the caller already gets a clear timeout error and can decide to
|
|
613
|
+
// retry themselves with full visibility into total elapsed time.
|
|
614
|
+
if (this.isTimeoutError(error))
|
|
615
|
+
return false;
|
|
616
|
+
// Our own timeout enforcement (fetchBearerToken's token-fetch timer, AuthenticationManager's auth-request
|
|
617
|
+
// timer) never goes through axios, so isTimeoutError() above doesn't see it; it rejects with a TimeoutError
|
|
618
|
+
// instead. The same "already waited the full window" reasoning applies, so treat it identically.
|
|
619
|
+
if (error instanceof errors_1.TimeoutError)
|
|
620
|
+
return false;
|
|
531
621
|
if (axios_1.default.isAxiosError(error)) {
|
|
532
622
|
const status = error.response?.status;
|
|
533
623
|
const data = (error.response?.data ?? {});
|
|
@@ -596,6 +686,18 @@ class HttpClient {
|
|
|
596
686
|
isCanceledError(error) {
|
|
597
687
|
return axios_1.default.isCancel(error) || (axios_1.default.isAxiosError(error) && error.code === 'ERR_CANCELED');
|
|
598
688
|
}
|
|
689
|
+
/**
|
|
690
|
+
* A socket-inactivity timeout never reaches the server response, so it must not be reported as an API error.
|
|
691
|
+
* Axios's own configured `timeout` always surfaces as `ECONNABORTED` (its Node adapter never sets
|
|
692
|
+
* `transitional.clarifyTimeoutError`, so it never uses `ETIMEDOUT` for this). A raw `ETIMEDOUT` is Node's
|
|
693
|
+
* connect-phase failure code for a different, genuinely transient condition, so it is excluded here and stays
|
|
694
|
+
* retryable.
|
|
695
|
+
*/
|
|
696
|
+
isTimeoutError(error) {
|
|
697
|
+
if (!axios_1.default.isAxiosError(error) || error.response !== undefined)
|
|
698
|
+
return false;
|
|
699
|
+
return error.code === 'ECONNABORTED';
|
|
700
|
+
}
|
|
599
701
|
async abortableSleep(ms, signal) {
|
|
600
702
|
(0, abort_1.throwIfAborted)(signal);
|
|
601
703
|
await new Promise((resolve, reject) => {
|
|
@@ -619,4 +721,6 @@ HttpClient.CONTEXT_VALUE_TRUNCATE_LENGTH = 50;
|
|
|
619
721
|
HttpClient.RESPONSE_BODY_TRUNCATE_LENGTH = 200;
|
|
620
722
|
HttpClient.MAX_CONTEXT_KEYS = 3;
|
|
621
723
|
HttpClient.MAX_ATTEMPT_IDENTIFIER_LENGTH = 200;
|
|
724
|
+
// Node's setTimeout silently clamps larger delays to 1ms, which would fire our timers almost immediately.
|
|
725
|
+
HttpClient.MAX_TIMEOUT_MS = 2147483647;
|
|
622
726
|
//# sourceMappingURL=HttpClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../../src/core/http/HttpClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../../src/core/http/HttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,12 @@ export interface PartialProviderConfig {
|
|
|
74
74
|
export interface RequestConfig {
|
|
75
75
|
readonly contentType?: 'application/json' | 'application/octet-stream';
|
|
76
76
|
readonly includeBearerToken?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Socket-inactivity timeout in milliseconds for this request, overriding the client default. The timer resets on
|
|
79
|
+
* every received byte, so it bounds silence rather than total duration; pass an `AbortSignal` (for example
|
|
80
|
+
* `AbortSignal.timeout(ms)`) for a hard deadline. `0` disables the timer.
|
|
81
|
+
*/
|
|
82
|
+
readonly timeoutMs?: number;
|
|
77
83
|
}
|
|
78
84
|
/**
|
|
79
85
|
* Top-level configuration for creating API clients.
|
|
@@ -91,6 +97,11 @@ export interface ClientConfig {
|
|
|
91
97
|
*/
|
|
92
98
|
debug?: boolean;
|
|
93
99
|
authUrl?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Socket-inactivity timeout in milliseconds applied to every HTTP request made by clients created from this config.
|
|
102
|
+
* Defaults to `DEFAULT_HTTP_TIMEOUT_MS`. Use {@link RequestConfig.timeoutMs} to override it for a single request.
|
|
103
|
+
*/
|
|
104
|
+
timeoutMs?: number;
|
|
94
105
|
/** Party ID. Mutable so it can be set at runtime after client initialization (e.g., LocalNet discovery). */
|
|
95
106
|
partyId?: string;
|
|
96
107
|
userId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,eAAO,MAAM,QAAQ;aACnB,MAAM,EAAE,QAAQ;aAChB,OAAO,EAAE,SAAS;aAClB,OAAO,EAAE,SAAS;aAClB,OAAO,EAAE,SAAS;aAClB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEX,mCAAmC;AACnC,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEnE,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,2BAA2B;AAC3B,eAAO,MAAM,QAAQ;aACnB,eAAe,EAAE,iBAAiB;aAClC,aAAa,EAAE,eAAe;aAC9B,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAE/D,6BAA6B;AAC7B,eAAO,MAAM,UAAU;aACrB,kBAAkB,EAAE,oBAAoB;aACxC,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEX,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE,wDAAwD;AACxD,UAAU,cAAc;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oGAAoG;IACpG,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD;AAED,qDAAqD;AACrD,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IACjE,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,2BAA2B,GAAG,kBAAkB,CAAC;AAE1E,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;CAC3C;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;CACpD;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,GAAG,0BAA0B,CAAC;IACvE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,12 @@ export interface WebSocketHandlers<Message> {
|
|
|
17
17
|
}
|
|
18
18
|
/** Options for WebSocket token refresh lifecycle. */
|
|
19
19
|
export interface WebSocketOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Close the socket when no message arrives for this many milliseconds. The timer starts when the socket opens and
|
|
22
|
+
* resets on every inbound message, so it detects a peer that completed the handshake and then went silent. Omit it,
|
|
23
|
+
* or pass `0`, to wait indefinitely (the default for long-lived subscriptions).
|
|
24
|
+
*/
|
|
25
|
+
readonly idleTimeoutMs?: number;
|
|
20
26
|
/**
|
|
21
27
|
* Called when the token is about to expire and refresh is scheduled. Use this to prepare for reconnection (e.g.,
|
|
22
28
|
* track current offset for resumption).
|
|
@@ -35,15 +41,6 @@ export interface WebSocketOptions {
|
|
|
35
41
|
} | void>;
|
|
36
42
|
}
|
|
37
43
|
export { calculateTokenRefreshTime } from '@hardlydifficult/websocket';
|
|
38
|
-
/**
|
|
39
|
-
* Minimal WebSocket helper that:
|
|
40
|
-
*
|
|
41
|
-
* - Upgrades http(s) URL to ws(s)
|
|
42
|
-
* - Auth via Authorization header (standard approach)
|
|
43
|
-
* - Uses 'daml-ledger-api' subprotocol
|
|
44
|
-
* - Sends an initial request message
|
|
45
|
-
* - Dispatches parsed messages to user handlers
|
|
46
|
-
*/
|
|
47
44
|
export declare class WebSocketClient {
|
|
48
45
|
private readonly client;
|
|
49
46
|
constructor(client: BaseClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketClient.d.ts","sourceRoot":"","sources":["../../../../src/core/ws/WebSocketClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"WebSocketClient.d.ts","sourceRoot":"","sources":["../../../../src/core/ws/WebSocketClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,MAAM,CAAC;CAC3C;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB,CAAC,OAAO;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAUD,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAC5B;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,IAAI,GACJ,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACxD;AAGD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAcvE,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,UAAU,EAAI;IAEtC,OAAO,CAAC,cAAc,EAAE,cAAc,EACjD,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC3C,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CA0ShC;IAED,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.WebSocketClient = exports.calculateTokenRefreshTime = void 0;
|
|
7
7
|
const websocket_1 = require("@hardlydifficult/websocket");
|
|
8
8
|
const ws_1 = __importDefault(require("ws"));
|
|
9
|
+
const errors_1 = require("../errors");
|
|
9
10
|
const WebSocketErrorUtils_1 = require("./WebSocketErrorUtils");
|
|
10
11
|
/** Converts an unknown error to an Error instance */
|
|
11
12
|
function toError(value) {
|
|
@@ -26,11 +27,20 @@ Object.defineProperty(exports, "calculateTokenRefreshTime", { enumerable: true,
|
|
|
26
27
|
* - Sends an initial request message
|
|
27
28
|
* - Dispatches parsed messages to user handlers
|
|
28
29
|
*/
|
|
30
|
+
// Node's setTimeout silently clamps larger delays to 1ms, which would fire the idle timer almost immediately.
|
|
31
|
+
const MAX_IDLE_TIMEOUT_MS = 2147483647;
|
|
29
32
|
class WebSocketClient {
|
|
30
33
|
constructor(client) {
|
|
31
34
|
this.client = client;
|
|
32
35
|
}
|
|
33
36
|
async connect(path, requestMessage, handlers, options) {
|
|
37
|
+
const idleTimeoutMs = options?.idleTimeoutMs ?? 0;
|
|
38
|
+
if (!Number.isFinite(idleTimeoutMs) || idleTimeoutMs < 0) {
|
|
39
|
+
throw new errors_1.ConfigurationError('WebSocket idleTimeoutMs must be a non-negative finite number');
|
|
40
|
+
}
|
|
41
|
+
if (idleTimeoutMs > MAX_IDLE_TIMEOUT_MS) {
|
|
42
|
+
throw new errors_1.ConfigurationError(`WebSocket idleTimeoutMs must not exceed ${MAX_IDLE_TIMEOUT_MS}`);
|
|
43
|
+
}
|
|
34
44
|
const baseUrl = this.client.getApiUrl();
|
|
35
45
|
const wsUrl = this.buildWsUrl(baseUrl, path);
|
|
36
46
|
const token = await this.client.authenticate();
|
|
@@ -118,6 +128,32 @@ class WebSocketClient {
|
|
|
118
128
|
resolveMessageCallbacksDrained = undefined;
|
|
119
129
|
}
|
|
120
130
|
};
|
|
131
|
+
// Idle watchdog for a peer that completes the handshake and then stops sending. Without it, a caller awaiting a
|
|
132
|
+
// terminal message (such as the active-contracts snapshot) waits forever.
|
|
133
|
+
let idleTimer = null;
|
|
134
|
+
const clearIdleTimer = () => {
|
|
135
|
+
if (idleTimer !== null) {
|
|
136
|
+
clearTimeout(idleTimer);
|
|
137
|
+
idleTimer = null;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
const restartIdleTimer = () => {
|
|
141
|
+
if (idleTimeoutMs === 0)
|
|
142
|
+
return;
|
|
143
|
+
clearIdleTimer();
|
|
144
|
+
idleTimer = setTimeout(() => {
|
|
145
|
+
idleTimer = null;
|
|
146
|
+
const error = new Error(`WebSocket idle timeout: no message received for ${idleTimeoutMs}ms`);
|
|
147
|
+
log('idle_timeout', { idleTimeoutMs });
|
|
148
|
+
notifyError(error);
|
|
149
|
+
try {
|
|
150
|
+
socket.close(4008, 'WebSocket idle timeout');
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
reportAuxiliaryFailure('WebSocket idle timeout close failed', { error: toError(err).message });
|
|
154
|
+
}
|
|
155
|
+
}, idleTimeoutMs);
|
|
156
|
+
};
|
|
121
157
|
log('connect', { headers: token ? { Authorization: '[REDACTED]' } : undefined, protocols });
|
|
122
158
|
// Schedule proactive token refresh if we have token timing and callbacks
|
|
123
159
|
if (tokenIssuedAt !== null && tokenExpiresAt !== null && options?.onTokenRefreshNeeded) {
|
|
@@ -173,6 +209,7 @@ class WebSocketClient {
|
|
|
173
209
|
}, delayMs);
|
|
174
210
|
}
|
|
175
211
|
socket.on('open', () => {
|
|
212
|
+
restartIdleTimer();
|
|
176
213
|
try {
|
|
177
214
|
socket.send(JSON.stringify(requestMessage));
|
|
178
215
|
log('send', requestMessage);
|
|
@@ -193,6 +230,7 @@ class WebSocketClient {
|
|
|
193
230
|
}
|
|
194
231
|
});
|
|
195
232
|
socket.on('message', (rawData) => {
|
|
233
|
+
restartIdleTimer();
|
|
196
234
|
// Convert RawData to string safely
|
|
197
235
|
let dataString;
|
|
198
236
|
if (Buffer.isBuffer(rawData)) {
|
|
@@ -233,6 +271,7 @@ class WebSocketClient {
|
|
|
233
271
|
notifyError(err);
|
|
234
272
|
});
|
|
235
273
|
socket.on('close', (code, reason) => {
|
|
274
|
+
clearIdleTimer();
|
|
236
275
|
// Clear token refresh timer on close
|
|
237
276
|
if (tokenRefreshTimer !== null) {
|
|
238
277
|
clearTimeout(tokenRefreshTimer);
|
|
@@ -251,6 +290,7 @@ class WebSocketClient {
|
|
|
251
290
|
});
|
|
252
291
|
return {
|
|
253
292
|
close: () => {
|
|
293
|
+
clearIdleTimer();
|
|
254
294
|
// Clear token refresh timer
|
|
255
295
|
if (tokenRefreshTimer !== null) {
|
|
256
296
|
clearTimeout(tokenRefreshTimer);
|