@c7-digital/ledger 0.0.12 → 0.0.14
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/lib/src/client.d.ts +1 -1
- package/lib/src/ledger.d.ts +5 -0
- package/lib/src/ledger.js +20 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib-lite/src/client.d.ts +1 -1
- package/lib-lite/src/ledger.d.ts +5 -0
- package/lib-lite/src/ledger.js +20 -1
- package/lib-lite/tsconfig.temp.tsbuildinfo +1 -1
- package/package.json +1 -1
package/lib/src/client.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export interface TypedHttpClientConfig {
|
|
|
51
51
|
openApiSchemaPath?: string;
|
|
52
52
|
}
|
|
53
53
|
export declare class TypedHttpClient {
|
|
54
|
-
|
|
54
|
+
token: string;
|
|
55
55
|
readonly baseUrl: string;
|
|
56
56
|
private validator?;
|
|
57
57
|
constructor(config: TypedHttpClientConfig);
|
package/lib/src/ledger.d.ts
CHANGED
|
@@ -81,6 +81,11 @@ export declare class Ledger {
|
|
|
81
81
|
private httpBaseUrl;
|
|
82
82
|
private options;
|
|
83
83
|
constructor(options: LedgerOptions);
|
|
84
|
+
/**
|
|
85
|
+
* Update the authentication token used for HTTP requests.
|
|
86
|
+
* Active streams should be updated separately via stream.updateToken().
|
|
87
|
+
*/
|
|
88
|
+
setToken(newToken: string): void;
|
|
84
89
|
private generateCommandId;
|
|
85
90
|
private resolveOffset;
|
|
86
91
|
private getLedgerEnd;
|
package/lib/src/ledger.js
CHANGED
|
@@ -359,7 +359,8 @@ class LedgerStream {
|
|
|
359
359
|
// Auto-reconnect on abnormal close (1006) if stream is still active and auto-reconnect is enabled
|
|
360
360
|
if (code === 1006 && this.state_ === "live" && this.autoReconnect) {
|
|
361
361
|
logger.log(`WebSocket closed abnormally (1006), reconnecting in 3 seconds...`);
|
|
362
|
-
setTimeout(() => {
|
|
362
|
+
this.reconnectTimer = setTimeout(() => {
|
|
363
|
+
this.reconnectTimer = undefined;
|
|
363
364
|
if (this.state_ === "live") {
|
|
364
365
|
// Double-check we're still active
|
|
365
366
|
logger.log(`Attempting to reconnect stream...`);
|
|
@@ -421,6 +422,10 @@ class LedgerStream {
|
|
|
421
422
|
// Set state to stop to prevent transitions
|
|
422
423
|
this.state_ = "stop";
|
|
423
424
|
this.eventEmitter.emit("state", "stop");
|
|
425
|
+
if (this.reconnectTimer) {
|
|
426
|
+
clearTimeout(this.reconnectTimer);
|
|
427
|
+
this.reconnectTimer = undefined;
|
|
428
|
+
}
|
|
424
429
|
if (this.stopClient) {
|
|
425
430
|
this.stopClient();
|
|
426
431
|
this.stopClient = undefined;
|
|
@@ -441,6 +446,11 @@ class LedgerStream {
|
|
|
441
446
|
switch (this.state_) {
|
|
442
447
|
case "live":
|
|
443
448
|
logger.debug(`Restarting live stream with new token`);
|
|
449
|
+
// Cancel any pending reconnect timer to avoid duplicate connections
|
|
450
|
+
if (this.reconnectTimer) {
|
|
451
|
+
clearTimeout(this.reconnectTimer);
|
|
452
|
+
this.reconnectTimer = undefined;
|
|
453
|
+
}
|
|
444
454
|
// Close current connection
|
|
445
455
|
if (this.stopClient) {
|
|
446
456
|
this.stopClient();
|
|
@@ -506,6 +516,15 @@ export class Ledger {
|
|
|
506
516
|
});
|
|
507
517
|
this.options = options;
|
|
508
518
|
}
|
|
519
|
+
/**
|
|
520
|
+
* Update the authentication token used for HTTP requests.
|
|
521
|
+
* Active streams should be updated separately via stream.updateToken().
|
|
522
|
+
*/
|
|
523
|
+
setToken(newToken) {
|
|
524
|
+
logTokenExpiration(newToken, "Ledger setToken");
|
|
525
|
+
this.client.token = newToken;
|
|
526
|
+
this.options = { ...this.options, token: newToken };
|
|
527
|
+
}
|
|
509
528
|
generateCommandId() {
|
|
510
529
|
return createLedgerString(`cmd-${Date.now()}-${Math.random().toString(36).substring(2, 13)}`);
|
|
511
530
|
}
|