@cratis/chronicle 2.0.0 → 2.1.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.
- package/ChronicleClient.ts +69 -60
- package/connection/ChronicleConnection.ts +32 -9
- package/connection/ChronicleConnectionString.spec.ts +227 -0
- package/connection/ChronicleConnectionString.ts +290 -40
- package/connection/ChronicleServerAddressResolver.spec.ts +41 -0
- package/connection/ChronicleServerAddressResolver.ts +33 -0
- package/connection/ChronicleSrvResolutionError.ts +13 -0
- package/connection/ChronicleSrvResolver.spec.ts +103 -0
- package/connection/ChronicleSrvResolver.ts +57 -0
- package/connection/ConnectionLifecycle.spec.ts +109 -0
- package/connection/ILoadBalancerStrategy.ts +16 -0
- package/connection/KernelKeepAlive.spec.ts +175 -0
- package/connection/KernelKeepAlive.ts +161 -0
- package/connection/LeastConnectionsLoadBalancerStrategy.spec.ts +159 -0
- package/connection/LeastConnectionsLoadBalancerStrategy.ts +117 -0
- package/connection/LoadBalancerMode.ts +25 -0
- package/connection/LoadBalancerStrategyFactory.ts +28 -0
- package/connection/RandomLoadBalancerStrategy.spec.ts +50 -0
- package/connection/RandomLoadBalancerStrategy.ts +19 -0
- package/connection/RoundRobinLoadBalancerStrategy.spec.ts +61 -0
- package/connection/RoundRobinLoadBalancerStrategy.ts +29 -0
- package/connection/TokenProvider.spec.ts +159 -0
- package/connection/TokenProvider.ts +80 -68
- package/connection/fetchOAuthAccessToken.ts +86 -0
- package/connection/formatServerAddress.ts +16 -0
- package/dist/ChronicleClient.d.ts +8 -1
- package/dist/ChronicleClient.d.ts.map +1 -1
- package/dist/ChronicleClient.js +63 -56
- package/dist/ChronicleClient.js.map +1 -1
- package/dist/connection/ChronicleConnection.d.ts +4 -1
- package/dist/connection/ChronicleConnection.d.ts.map +1 -1
- package/dist/connection/ChronicleConnection.js +29 -9
- package/dist/connection/ChronicleConnection.js.map +1 -1
- package/dist/connection/ChronicleConnectionString.d.ts +77 -3
- package/dist/connection/ChronicleConnectionString.d.ts.map +1 -1
- package/dist/connection/ChronicleConnectionString.js +251 -37
- package/dist/connection/ChronicleConnectionString.js.map +1 -1
- package/dist/connection/ChronicleServerAddressResolver.d.ts +23 -0
- package/dist/connection/ChronicleServerAddressResolver.d.ts.map +1 -0
- package/dist/connection/ChronicleServerAddressResolver.js +32 -0
- package/dist/connection/ChronicleServerAddressResolver.js.map +1 -0
- package/dist/connection/ChronicleSrvResolutionError.d.ts +8 -0
- package/dist/connection/ChronicleSrvResolutionError.d.ts.map +1 -0
- package/dist/connection/ChronicleSrvResolutionError.js +13 -0
- package/dist/connection/ChronicleSrvResolutionError.js.map +1 -0
- package/dist/connection/ChronicleSrvResolver.d.ts +28 -0
- package/dist/connection/ChronicleSrvResolver.d.ts.map +1 -0
- package/dist/connection/ChronicleSrvResolver.js +51 -0
- package/dist/connection/ChronicleSrvResolver.js.map +1 -0
- package/dist/connection/ILoadBalancerStrategy.d.ts +13 -0
- package/dist/connection/ILoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/ILoadBalancerStrategy.js +4 -0
- package/dist/connection/ILoadBalancerStrategy.js.map +1 -0
- package/dist/connection/KernelKeepAlive.d.ts +73 -0
- package/dist/connection/KernelKeepAlive.d.ts.map +1 -0
- package/dist/connection/KernelKeepAlive.js +115 -0
- package/dist/connection/KernelKeepAlive.js.map +1 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.d.ts +30 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.js +95 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.js.map +1 -0
- package/dist/connection/LoadBalancerMode.d.ts +21 -0
- package/dist/connection/LoadBalancerMode.d.ts.map +1 -0
- package/dist/connection/LoadBalancerMode.js +24 -0
- package/dist/connection/LoadBalancerMode.js.map +1 -0
- package/dist/connection/LoadBalancerStrategyFactory.d.ts +11 -0
- package/dist/connection/LoadBalancerStrategyFactory.d.ts.map +1 -0
- package/dist/connection/LoadBalancerStrategyFactory.js +26 -0
- package/dist/connection/LoadBalancerStrategyFactory.js.map +1 -0
- package/dist/connection/RandomLoadBalancerStrategy.d.ts +9 -0
- package/dist/connection/RandomLoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/RandomLoadBalancerStrategy.js +15 -0
- package/dist/connection/RandomLoadBalancerStrategy.js.map +1 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.d.ts +12 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.js +22 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.js.map +1 -0
- package/dist/connection/TokenProvider.d.ts +32 -7
- package/dist/connection/TokenProvider.d.ts.map +1 -1
- package/dist/connection/TokenProvider.js +69 -61
- package/dist/connection/TokenProvider.js.map +1 -1
- package/dist/connection/fetchOAuthAccessToken.d.ts +18 -0
- package/dist/connection/fetchOAuthAccessToken.d.ts.map +1 -0
- package/dist/connection/fetchOAuthAccessToken.js +62 -0
- package/dist/connection/fetchOAuthAccessToken.js.map +1 -0
- package/dist/connection/formatServerAddress.d.ts +10 -0
- package/dist/connection/formatServerAddress.d.ts.map +1 -0
- package/dist/connection/formatServerAddress.js +14 -0
- package/dist/connection/formatServerAddress.js.map +1 -0
- package/dist/reactors/Reactors.d.ts +13 -0
- package/dist/reactors/Reactors.d.ts.map +1 -1
- package/dist/reactors/Reactors.js +42 -4
- package/dist/reactors/Reactors.js.map +1 -1
- package/dist/reducers/Reducers.d.ts +14 -0
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +43 -8
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -5
- package/reactors/Reactors.ts +53 -4
- package/reducers/Reducers.ts +55 -8
- package/vitest.config.ts +12 -0
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import { diag } from '@opentelemetry/api';
|
|
5
|
+
import { fetchOAuthAccessToken, type OAuthTokenResponse } from './fetchOAuthAccessToken';
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// Refresh once the token has less than this long left before it expires.
|
|
8
|
+
const TOKEN_REFRESH_MARGIN_MS = 60_000;
|
|
9
|
+
// Assumed lifetime when the token response carries no usable expires_in.
|
|
8
10
|
const DEFAULT_TOKEN_EXPIRY_SECONDS = 3600;
|
|
11
|
+
// Minimum pause between failed fetch attempts, so an auth outage does not turn
|
|
12
|
+
// every RPC into a token request.
|
|
13
|
+
const FAILED_FETCH_RETRY_DELAY_MS = 5_000;
|
|
9
14
|
|
|
10
15
|
/**
|
|
11
16
|
* Interface for providing authentication tokens.
|
|
@@ -13,6 +18,10 @@ const DEFAULT_TOKEN_EXPIRY_SECONDS = 3600;
|
|
|
13
18
|
export interface ITokenProvider {
|
|
14
19
|
/**
|
|
15
20
|
* Gets the current access token.
|
|
21
|
+
*
|
|
22
|
+
* Never rejects — when no token can be obtained the result is undefined, the RPC
|
|
23
|
+
* proceeds without authorization and fails with the server's rejection, which the
|
|
24
|
+
* session machinery recovers from.
|
|
16
25
|
* @returns Promise resolving to the access token or undefined if not available.
|
|
17
26
|
*/
|
|
18
27
|
getAccessToken(): Promise<string | undefined>;
|
|
@@ -37,27 +46,46 @@ export class NoOpTokenProvider implements ITokenProvider {
|
|
|
37
46
|
}
|
|
38
47
|
}
|
|
39
48
|
|
|
40
|
-
interface OAuthTokenResponse {
|
|
41
|
-
access_token: string;
|
|
42
|
-
expires_in: number;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
49
|
/**
|
|
46
|
-
* OAuth token provider using client credentials flow.
|
|
50
|
+
* OAuth token provider using the client credentials flow.
|
|
51
|
+
*
|
|
52
|
+
* Owns the access token so it can be attached to every RPC individually instead of
|
|
53
|
+
* being baked into the channel at connect time: the token is fetched lazily on first
|
|
54
|
+
* use, cached, and refreshed once it enters the refresh margin ahead of expiry, so
|
|
55
|
+
* token expiry never invalidates the channel. A failed refresh falls back to the
|
|
56
|
+
* cached token while it is still actually valid — only the refresh margin has been
|
|
57
|
+
* crossed, not the expiry — and further attempts are throttled so an unreachable
|
|
58
|
+
* auth endpoint does not turn every RPC into a fetch attempt.
|
|
47
59
|
*/
|
|
48
60
|
export class OAuthTokenProvider implements ITokenProvider {
|
|
61
|
+
private readonly _logger = diag.createComponentLogger({
|
|
62
|
+
namespace: '@cratis/chronicle/OAuthTokenProvider'
|
|
63
|
+
});
|
|
64
|
+
|
|
49
65
|
private _accessToken?: string;
|
|
50
|
-
private
|
|
66
|
+
private _expiresAt = 0;
|
|
67
|
+
private _lastFailedFetch?: number;
|
|
51
68
|
private _refreshPromise?: Promise<string | undefined>;
|
|
52
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Creates a new {@link OAuthTokenProvider}.
|
|
72
|
+
* @param tokenEndpoint - The OAuth2 token endpoint to request tokens from.
|
|
73
|
+
* @param clientId - The client identifier.
|
|
74
|
+
* @param clientSecret - The client secret.
|
|
75
|
+
* @param skipTlsValidation - Whether to skip TLS certificate chain validation.
|
|
76
|
+
* @param _fetchToken - Test-only seam replacing the OAuth2 token request.
|
|
77
|
+
*/
|
|
53
78
|
constructor(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
79
|
+
tokenEndpoint: string,
|
|
80
|
+
clientId: string,
|
|
81
|
+
clientSecret: string,
|
|
82
|
+
skipTlsValidation: boolean = true,
|
|
83
|
+
private readonly _fetchToken: () => Promise<OAuthTokenResponse> = () =>
|
|
84
|
+
fetchOAuthAccessToken(tokenEndpoint, clientId, clientSecret, skipTlsValidation)
|
|
57
85
|
) {}
|
|
58
86
|
|
|
59
87
|
async getAccessToken(): Promise<string | undefined> {
|
|
60
|
-
if (this.
|
|
88
|
+
if (this.hasFreshToken()) {
|
|
61
89
|
return this._accessToken;
|
|
62
90
|
}
|
|
63
91
|
|
|
@@ -65,7 +93,11 @@ export class OAuthTokenProvider implements ITokenProvider {
|
|
|
65
93
|
return this._refreshPromise;
|
|
66
94
|
}
|
|
67
95
|
|
|
68
|
-
|
|
96
|
+
if (this.isThrottled()) {
|
|
97
|
+
return this.cachedTokenWhileValid();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
this._refreshPromise = this.fetchAndCacheAccessToken();
|
|
69
101
|
try {
|
|
70
102
|
return await this._refreshPromise;
|
|
71
103
|
} finally {
|
|
@@ -75,65 +107,45 @@ export class OAuthTokenProvider implements ITokenProvider {
|
|
|
75
107
|
|
|
76
108
|
async refresh(): Promise<string | undefined> {
|
|
77
109
|
this._accessToken = undefined;
|
|
78
|
-
this.
|
|
110
|
+
this._expiresAt = 0;
|
|
111
|
+
this._lastFailedFetch = undefined;
|
|
79
112
|
return this.getAccessToken();
|
|
80
113
|
}
|
|
81
114
|
|
|
82
|
-
private
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
params.append('client_id', this._clientId);
|
|
86
|
-
params.append('client_secret', this._clientSecret);
|
|
87
|
-
|
|
88
|
-
const body = params.toString();
|
|
89
|
-
|
|
90
|
-
return new Promise((resolve, reject) => {
|
|
91
|
-
const url = new URL(this._tokenEndpoint);
|
|
92
|
-
const isHttps = url.protocol === 'https:';
|
|
93
|
-
const httpModule = isHttps ? https : http;
|
|
94
|
-
|
|
95
|
-
const req = httpModule.request(url, {
|
|
96
|
-
method: 'POST',
|
|
97
|
-
headers: {
|
|
98
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
99
|
-
'Content-Length': Buffer.byteLength(body)
|
|
100
|
-
},
|
|
101
|
-
// Chronicle generates a self-signed certificate in development, so chain
|
|
102
|
-
// validation is skipped, matching the gRPC channel's credentials.
|
|
103
|
-
...(isHttps ? { rejectUnauthorized: false } : {})
|
|
104
|
-
}, response => {
|
|
105
|
-
let data = '';
|
|
106
|
-
|
|
107
|
-
response.on('data', chunk => {
|
|
108
|
-
data += chunk;
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
response.on('end', () => {
|
|
112
|
-
if (response.statusCode !== 200) {
|
|
113
|
-
reject(new Error(`Token request failed with status ${response.statusCode}: ${data}`));
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
try {
|
|
118
|
-
const tokenResponse = JSON.parse(data) as OAuthTokenResponse;
|
|
119
|
-
this._accessToken = tokenResponse.access_token;
|
|
120
|
-
const expiresInSeconds = tokenResponse.expires_in || DEFAULT_TOKEN_EXPIRY_SECONDS;
|
|
121
|
-
this._tokenExpiry = new Date(Date.now() + (expiresInSeconds - TOKEN_EXPIRY_BUFFER_SECONDS) * 1000);
|
|
122
|
-
resolve(this._accessToken);
|
|
123
|
-
} catch (error) {
|
|
124
|
-
reject(new Error(`Failed to parse token response: ${error instanceof Error ? error.message : String(error)}`));
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
});
|
|
115
|
+
private hasFreshToken(): boolean {
|
|
116
|
+
return !!this._accessToken && this._expiresAt - Date.now() > TOKEN_REFRESH_MARGIN_MS;
|
|
117
|
+
}
|
|
128
118
|
|
|
129
|
-
|
|
130
|
-
|
|
119
|
+
private isThrottled(): boolean {
|
|
120
|
+
return this._lastFailedFetch !== undefined && Date.now() - this._lastFailedFetch < FAILED_FETCH_RETRY_DELAY_MS;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private cachedTokenWhileValid(): string | undefined {
|
|
124
|
+
return this._accessToken && Date.now() < this._expiresAt ? this._accessToken : undefined;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
private async fetchAndCacheAccessToken(): Promise<string | undefined> {
|
|
128
|
+
try {
|
|
129
|
+
const response = await this._fetchToken();
|
|
130
|
+
this._accessToken = response.access_token;
|
|
131
|
+
this._expiresAt = Date.now() + this.lifetimeSecondsFrom(response) * 1000;
|
|
132
|
+
this._lastFailedFetch = undefined;
|
|
133
|
+
return this._accessToken;
|
|
134
|
+
} catch (error) {
|
|
135
|
+
this._logger.warn('Failed to fetch OAuth2 token', {
|
|
136
|
+
error: error instanceof Error ? error.message : String(error)
|
|
131
137
|
});
|
|
138
|
+
this._lastFailedFetch = Date.now();
|
|
139
|
+
return this.cachedTokenWhileValid();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
132
142
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
143
|
+
// expires_in is RECOMMENDED but not required by OAuth2, and some servers send it
|
|
144
|
+
// as a string.
|
|
145
|
+
private lifetimeSecondsFrom(response: OAuthTokenResponse): number {
|
|
146
|
+
const seconds = Number(response.expires_in);
|
|
147
|
+
return Number.isFinite(seconds) && seconds > 0 ? seconds : DEFAULT_TOKEN_EXPIRY_SECONDS;
|
|
136
148
|
}
|
|
137
149
|
}
|
|
138
150
|
|
|
139
|
-
export type TokenProvider = ITokenProvider;
|
|
151
|
+
export type TokenProvider = ITokenProvider;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import * as http from 'http';
|
|
5
|
+
import * as https from 'https';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The shape of a successful OAuth2 token response.
|
|
9
|
+
*/
|
|
10
|
+
export interface OAuthTokenResponse {
|
|
11
|
+
access_token: string;
|
|
12
|
+
|
|
13
|
+
/** RECOMMENDED but not required by OAuth2, and some servers send it as a string. */
|
|
14
|
+
expires_in?: number | string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Requests an access token from an OAuth2 token endpoint using the client credentials flow.
|
|
19
|
+
* @param tokenEndpoint - The token endpoint URL.
|
|
20
|
+
* @param clientId - The client identifier.
|
|
21
|
+
* @param clientSecret - The client secret.
|
|
22
|
+
* @param skipTlsValidation - Whether to skip TLS certificate chain validation.
|
|
23
|
+
* @returns The parsed token response; rejects when the request fails or the response is not a valid token.
|
|
24
|
+
*/
|
|
25
|
+
export function fetchOAuthAccessToken(
|
|
26
|
+
tokenEndpoint: string,
|
|
27
|
+
clientId: string,
|
|
28
|
+
clientSecret: string,
|
|
29
|
+
skipTlsValidation: boolean
|
|
30
|
+
): Promise<OAuthTokenResponse> {
|
|
31
|
+
const params = new URLSearchParams();
|
|
32
|
+
params.append('grant_type', 'client_credentials');
|
|
33
|
+
params.append('client_id', clientId);
|
|
34
|
+
params.append('client_secret', clientSecret);
|
|
35
|
+
|
|
36
|
+
const body = params.toString();
|
|
37
|
+
|
|
38
|
+
return new Promise((resolve, reject) => {
|
|
39
|
+
const url = new URL(tokenEndpoint);
|
|
40
|
+
const isHttps = url.protocol === 'https:';
|
|
41
|
+
const httpModule = isHttps ? https : http;
|
|
42
|
+
|
|
43
|
+
const request = httpModule.request(url, {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: {
|
|
46
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
47
|
+
'Content-Length': Buffer.byteLength(body)
|
|
48
|
+
},
|
|
49
|
+
// Chain validation is skipped only when skipTlsValidation is explicitly set,
|
|
50
|
+
// matching the gRPC channel's credentials for the same connection string.
|
|
51
|
+
...(isHttps && skipTlsValidation ? { rejectUnauthorized: false } : {})
|
|
52
|
+
}, response => {
|
|
53
|
+
let data = '';
|
|
54
|
+
|
|
55
|
+
response.on('data', chunk => {
|
|
56
|
+
data += chunk;
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
response.on('end', () => {
|
|
60
|
+
if (response.statusCode !== 200) {
|
|
61
|
+
reject(new Error(`Token request failed with status ${response.statusCode}: ${data}`));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
try {
|
|
66
|
+
const tokenResponse = JSON.parse(data) as OAuthTokenResponse;
|
|
67
|
+
if (!tokenResponse.access_token) {
|
|
68
|
+
reject(new Error('Token response did not contain an access_token'));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
resolve(tokenResponse);
|
|
73
|
+
} catch (error) {
|
|
74
|
+
reject(new Error(`Failed to parse token response: ${error instanceof Error ? error.message : String(error)}`));
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
request.on('error', error => {
|
|
80
|
+
reject(new Error(`Token request failed: ${error.message}`));
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
request.write(body);
|
|
84
|
+
request.end();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import type { ChronicleServerAddress } from './ChronicleConnectionString';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Formats a {@link ChronicleServerAddress} as a `host:port` string, wrapping IPv6 host
|
|
8
|
+
* literals in bracket notation (e.g. `[::1]:35000`) as required by both the connection
|
|
9
|
+
* string grammar and gRPC target grammar.
|
|
10
|
+
* @param address - The address to format.
|
|
11
|
+
* @returns The formatted `host:port` string.
|
|
12
|
+
*/
|
|
13
|
+
export function formatServerAddress(address: ChronicleServerAddress): string {
|
|
14
|
+
const host = address.host.includes(':') ? `[${address.host}]` : address.host;
|
|
15
|
+
return `${host}:${address.port}`;
|
|
16
|
+
}
|
|
@@ -19,6 +19,7 @@ import { IEventStore } from './IEventStore';
|
|
|
19
19
|
export declare class ChronicleClient implements IChronicleClient {
|
|
20
20
|
readonly options: ChronicleOptions;
|
|
21
21
|
private static readonly _healthCheckIntervalMs;
|
|
22
|
+
private static readonly _maxBackoffMs;
|
|
22
23
|
private readonly _connection;
|
|
23
24
|
private readonly _stores;
|
|
24
25
|
private readonly _lifecycle;
|
|
@@ -29,6 +30,7 @@ export declare class ChronicleClient implements IChronicleClient {
|
|
|
29
30
|
private _discoveryOperation?;
|
|
30
31
|
private _isDisposed;
|
|
31
32
|
private _keepAliveAbortController?;
|
|
33
|
+
private _healthCheckInFlight;
|
|
32
34
|
/**
|
|
33
35
|
* Creates a new {@link ChronicleClient} using the provided options.
|
|
34
36
|
* @param options - The options to configure the client, including the connection string.
|
|
@@ -43,13 +45,18 @@ export declare class ChronicleClient implements IChronicleClient {
|
|
|
43
45
|
private connectWithRetry;
|
|
44
46
|
private ensureConnected;
|
|
45
47
|
private reconnect;
|
|
48
|
+
/**
|
|
49
|
+
* Waits out the exponential backoff for a failed attempt and reports why.
|
|
50
|
+
* The delay is jittered so a fleet of clients that lost the same kernel does
|
|
51
|
+
* not come back in lockstep and knock it over again.
|
|
52
|
+
*/
|
|
53
|
+
private backOff;
|
|
46
54
|
private withReconnect;
|
|
47
55
|
private shouldReconnect;
|
|
48
56
|
private toErrorMessage;
|
|
49
57
|
private startConnectionWatchdog;
|
|
50
58
|
private runHealthCheck;
|
|
51
59
|
private startKernelKeepAlive;
|
|
52
|
-
private runKeepAliveLoop;
|
|
53
60
|
private registerArtifactsForStore;
|
|
54
61
|
}
|
|
55
62
|
//# sourceMappingURL=ChronicleClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChronicleClient.d.ts","sourceRoot":"","sources":["../ChronicleClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChronicleClient.d.ts","sourceRoot":"","sources":["../ChronicleClient.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAKtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAwBxC,QAAQ,CAAC,OAAO,EAAE,gBAAgB;IAvB9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAU;IAE/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAExD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAErB;IAEH,OAAO,CAAC,eAAe,CAAC,CAAiC;IACzD,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAC1C,OAAO,CAAC,mBAAmB,CAAC,CAAgB;IAC5C,OAAO,CAAC,mBAAmB,CAAC,CAAgB;IAC5C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAkB;IACpD,OAAO,CAAC,oBAAoB,CAAS;IAErC;;;OAGG;gBACkB,OAAO,EAAE,gBAAgB;IAgD9C,kBAAkB;IACZ,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0DtH,kBAAkB;IACZ,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA0BjD,kBAAkB;IAClB,OAAO,IAAI,IAAI;YAsBD,gBAAgB;YA0ChB,eAAe;YAkBf,SAAS;IA0CvB;;;;OAIG;YACW,OAAO;YAcP,aAAa;IAa3B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,uBAAuB;YAQjB,cAAc;YAkBd,oBAAoB;YAqCpB,yBAAyB;CAmB1C"}
|
package/dist/ChronicleClient.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
import * as os from 'os';
|
|
3
4
|
import { diag } from '@opentelemetry/api';
|
|
4
5
|
import { SpanStatusCode } from '@opentelemetry/api';
|
|
5
6
|
import { ChronicleConnection } from './connection';
|
|
6
7
|
import { ConnectionLifecycle } from './connection/ConnectionLifecycle';
|
|
8
|
+
import { KernelKeepAlive } from './connection/KernelKeepAlive';
|
|
7
9
|
import { EventStore } from './EventStore';
|
|
8
10
|
import { EventStoreName } from './EventStoreName';
|
|
9
11
|
import { EventStoreNamespaceName } from './EventStoreNamespaceName';
|
|
@@ -26,6 +28,7 @@ import { TypeDiscoverer } from './types';
|
|
|
26
28
|
export class ChronicleClient {
|
|
27
29
|
options;
|
|
28
30
|
static _healthCheckIntervalMs = 5000;
|
|
31
|
+
static _maxBackoffMs = 30_000;
|
|
29
32
|
_connection;
|
|
30
33
|
_stores = new Map();
|
|
31
34
|
_lifecycle = new ConnectionLifecycle();
|
|
@@ -38,6 +41,7 @@ export class ChronicleClient {
|
|
|
38
41
|
_discoveryOperation;
|
|
39
42
|
_isDisposed = false;
|
|
40
43
|
_keepAliveAbortController;
|
|
44
|
+
_healthCheckInFlight = false;
|
|
41
45
|
/**
|
|
42
46
|
* Creates a new {@link ChronicleClient} using the provided options.
|
|
43
47
|
* @param options - The options to configure the client, including the connection string.
|
|
@@ -188,15 +192,16 @@ export class ChronicleClient {
|
|
|
188
192
|
let attempt = 0;
|
|
189
193
|
while (!this._isDisposed) {
|
|
190
194
|
try {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
195
|
+
// Resolve (DNS SRV, when applicable) and select (load balancer strategy) a
|
|
196
|
+
// server address and rebuild the gRPC channel from scratch on every attempt,
|
|
197
|
+
// including the first — not just once at startup — so membership and load
|
|
198
|
+
// changes are always picked up. This also guarantees a fresh IDLE channel: a
|
|
199
|
+
// failed probe can leave a channel in TRANSIENT_FAILURE, which gRPC won't
|
|
200
|
+
// recover from without a new channel. The contracts connect() is bypassed
|
|
201
|
+
// here — it uses watchConnectivityState and rejects as soon as the state
|
|
202
|
+
// changes to CONNECTING (not READY), making it unreliable for initial
|
|
203
|
+
// connection establishment.
|
|
204
|
+
await this._connection.resetChannel();
|
|
200
205
|
this._logger.debug('Connecting to Chronicle kernel', { attempt: attempt + 1 });
|
|
201
206
|
// Probe with a real RPC call. gRPC connects lazily on the first call,
|
|
202
207
|
// so this effectively waits until the channel reaches READY or fails.
|
|
@@ -212,13 +217,8 @@ export class ChronicleClient {
|
|
|
212
217
|
}
|
|
213
218
|
catch (error) {
|
|
214
219
|
attempt++;
|
|
215
|
-
const delayMs =
|
|
216
|
-
this._logger.
|
|
217
|
-
attempt,
|
|
218
|
-
delayMs,
|
|
219
|
-
error: this.toErrorMessage(error)
|
|
220
|
-
});
|
|
221
|
-
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
220
|
+
const delayMs = await this.backOff(attempt, 'Connection attempt failed, retrying', error);
|
|
221
|
+
this._logger.verbose('Backed off before next connection attempt', { attempt, delayMs });
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
throw new Error('ChronicleClient was disposed during connection attempt.');
|
|
@@ -254,7 +254,7 @@ export class ChronicleClient {
|
|
|
254
254
|
let attempt = 0;
|
|
255
255
|
while (!this._isDisposed) {
|
|
256
256
|
try {
|
|
257
|
-
this._connection.resetChannel();
|
|
257
|
+
await this._connection.resetChannel();
|
|
258
258
|
await this._connection.server.getVersionInfo({}, { signal: AbortSignal.timeout(10_000) });
|
|
259
259
|
this._logger.info('Reconnected to Chronicle kernel', { attempt: attempt + 1 });
|
|
260
260
|
await this.startKernelKeepAlive();
|
|
@@ -267,13 +267,7 @@ export class ChronicleClient {
|
|
|
267
267
|
}
|
|
268
268
|
catch (reconnectError) {
|
|
269
269
|
attempt++;
|
|
270
|
-
|
|
271
|
-
this._logger.warn('Reconnect attempt failed, retrying', {
|
|
272
|
-
attempt,
|
|
273
|
-
delayMs,
|
|
274
|
-
error: this.toErrorMessage(reconnectError)
|
|
275
|
-
});
|
|
276
|
-
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
270
|
+
await this.backOff(attempt, 'Reconnect attempt failed, retrying', reconnectError);
|
|
277
271
|
}
|
|
278
272
|
}
|
|
279
273
|
})().finally(() => {
|
|
@@ -282,6 +276,22 @@ export class ChronicleClient {
|
|
|
282
276
|
}
|
|
283
277
|
await this._reconnectOperation;
|
|
284
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* Waits out the exponential backoff for a failed attempt and reports why.
|
|
281
|
+
* The delay is jittered so a fleet of clients that lost the same kernel does
|
|
282
|
+
* not come back in lockstep and knock it over again.
|
|
283
|
+
*/
|
|
284
|
+
async backOff(attempt, message, error) {
|
|
285
|
+
const ceiling = Math.min(1000 * Math.pow(2, attempt - 1), ChronicleClient._maxBackoffMs);
|
|
286
|
+
const delayMs = Math.round(ceiling / 2 + Math.random() * (ceiling / 2));
|
|
287
|
+
this._logger.warn(message, {
|
|
288
|
+
attempt,
|
|
289
|
+
delayMs,
|
|
290
|
+
error: this.toErrorMessage(error)
|
|
291
|
+
});
|
|
292
|
+
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
293
|
+
return delayMs;
|
|
294
|
+
}
|
|
285
295
|
async withReconnect(operation, action) {
|
|
286
296
|
try {
|
|
287
297
|
return await action();
|
|
@@ -327,54 +337,51 @@ export class ChronicleClient {
|
|
|
327
337
|
this._watchdogHandle.unref?.();
|
|
328
338
|
}
|
|
329
339
|
async runHealthCheck() {
|
|
330
|
-
|
|
340
|
+
// A black-holed connection makes the probe itself hang, so without the
|
|
341
|
+
// in-flight guard every tick would stack another one that never returns.
|
|
342
|
+
if (this._isDisposed || !this._lifecycle.isConnected || this._healthCheckInFlight) {
|
|
331
343
|
return;
|
|
332
344
|
}
|
|
345
|
+
this._healthCheckInFlight = true;
|
|
333
346
|
try {
|
|
334
|
-
await this._connection.server.getVersionInfo({});
|
|
347
|
+
await this._connection.server.getVersionInfo({}, { signal: AbortSignal.timeout(10_000) });
|
|
335
348
|
this._logger.verbose('Connection health check passed');
|
|
336
349
|
}
|
|
337
350
|
catch (error) {
|
|
338
351
|
await this.reconnect('watchdog-health-check', error);
|
|
339
352
|
}
|
|
353
|
+
finally {
|
|
354
|
+
this._healthCheckInFlight = false;
|
|
355
|
+
}
|
|
340
356
|
}
|
|
341
357
|
async startKernelKeepAlive() {
|
|
342
358
|
this._keepAliveAbortController?.abort();
|
|
343
359
|
this._keepAliveAbortController = new AbortController();
|
|
344
360
|
const { signal } = this._keepAliveAbortController;
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
361
|
+
// Losing the keep-alive means the kernel has stopped counting us as
|
|
362
|
+
// connected, so observers are already being torn down server-side.
|
|
363
|
+
// Reconnecting is the only way back — without this the client sits on a
|
|
364
|
+
// dead session, appends keep working, and reactors never fire again.
|
|
365
|
+
const keepAlive = new KernelKeepAlive(this._connection.connections, (reason, error) => {
|
|
366
|
+
if (this._isDisposed || signal.aborted) {
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
void this.reconnect(reason, error);
|
|
370
|
+
});
|
|
371
|
+
await keepAlive.start({
|
|
372
|
+
ConnectionId: this._lifecycle.connectionId,
|
|
373
|
+
// TODO: Not derived from this package's own version anywhere yet; kept as
|
|
374
|
+
// the pre-existing hardcoded placeholder until such a mechanism exists.
|
|
375
|
+
ClientVersion: '1.0.0',
|
|
376
|
+
IsRunningWithDebugger: false,
|
|
377
|
+
ProcessId: process.pid,
|
|
378
|
+
ProcessPath: process.execPath,
|
|
379
|
+
MachineName: os.hostname(),
|
|
380
|
+
ClientType: 'TypeScript'
|
|
381
|
+
}, signal);
|
|
352
382
|
this._logger.info('Client registered with kernel keep-alive mechanism', {
|
|
353
383
|
connectionId: this._lifecycle.connectionId
|
|
354
384
|
});
|
|
355
|
-
void this.runKeepAliveLoop(iterator, signal);
|
|
356
|
-
}
|
|
357
|
-
async runKeepAliveLoop(iterator, signal) {
|
|
358
|
-
try {
|
|
359
|
-
while (!signal.aborted) {
|
|
360
|
-
const result = await iterator.next();
|
|
361
|
-
if (result.done) {
|
|
362
|
-
this._logger.info('Keep-alive stream ended');
|
|
363
|
-
break;
|
|
364
|
-
}
|
|
365
|
-
await this._connection.connections.connectionKeepAlive(result.value);
|
|
366
|
-
this._logger.verbose('Keep-alive ping responded', {
|
|
367
|
-
connectionId: this._lifecycle.connectionId
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
catch (err) {
|
|
372
|
-
if (!signal.aborted) {
|
|
373
|
-
this._logger.warn('Keep-alive loop ended with error', {
|
|
374
|
-
error: this.toErrorMessage(err)
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
385
|
}
|
|
379
386
|
async registerArtifactsForStore(store, reason) {
|
|
380
387
|
this._logger.debug('Registering artifacts for event store', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChronicleClient.js","sourceRoot":"","sources":["../ChronicleClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChronicleClient.js","sourceRoot":"","sources":["../ChronicleClient.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAwBH;IAvBb,MAAM,CAAU,sBAAsB,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC;IAE9B,WAAW,CAAsB;IACjC,OAAO,GAA4B,IAAI,GAAG,EAAE,CAAC;IAC7C,UAAU,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEvC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAClD,SAAS,EAAE,mCAAmC;KACjD,CAAC,CAAC;IAEK,eAAe,CAAkC;IACjD,iBAAiB,CAAiB;IAClC,mBAAmB,CAAiB;IACpC,mBAAmB,CAAiB;IACpC,WAAW,GAAG,KAAK,CAAC;IACpB,yBAAyB,CAAmB;IAC5C,oBAAoB,GAAG,KAAK,CAAC;IAErC;;;OAGG;IACH,YAAqB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAC1C,sEAAsE;QACtE,6EAA6E;QAC7E,yEAAyE;QACzE,8EAA8E;QAC9E,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU;YACzD,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE;YAC3G,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE9D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE;YAC1C,aAAa,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,EAAE;YAC9G,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU;SAClD,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,6EAA6E,EAAE;oBAC9F,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;iBAC7C,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+EAA+E,EAAE;gBAC/F,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;gBAC1C,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;aACrC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QACnH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBACnD,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;aAC7C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,aAAa,CAAC,IAA6B,EAAE,SAA4C;QAC3F,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,MAAM,aAAa,GAAG,SAAS,KAAK,SAAS;YACzC,CAAC,CAAC,uBAAuB,CAAC,OAAO;YACjC,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ;gBAC3B,CAAC,CAAC,IAAI,uBAAuB,CAAC,SAAS,CAAC;gBACxC,CAAC,CAAC,SAAS,CAAC;QAEpB,OAAO,eAAe,CAAC,eAAe,CAAC,kCAAkC,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACpF,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;oBACjE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAE7B,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;oBACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvC,IAAI,QAAQ,EAAE,CAAC;wBACX,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,EAAE;4BACjD,UAAU,EAAE,SAAS,CAAC,KAAK;4BAC3B,SAAS,EAAE,aAAa,CAAC,KAAK;yBACjC,CAAC,CAAC;wBACH,OAAO,QAAQ,CAAC;oBACpB,CAAC;oBAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE;wBACxD,UAAU,EAAE,SAAS,CAAC,KAAK;qBAC9B,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;oBAErE,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;oBAC5H,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAE/B,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBAC3D,OAAO,OAAO,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE;oBACzC,uBAAuB,EAAE,SAAS,CAAC,KAAK;oBACxC,qBAAqB,EAAE,aAAa,CAAC,KAAK;iBAC7C,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE;oBAC7C,UAAU,EAAE,SAAS,CAAC,KAAK;oBAC3B,SAAS,EAAE,aAAa,CAAC,KAAK;oBAC9B,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;iBACpC,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,cAAc;QAChB,OAAO,eAAe,CAAC,eAAe,CAAC,mCAAmC,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACrF,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;oBACrE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,EAAE;oBACvD,KAAK,EAAE,MAAM,CAAC,MAAM;iBACvB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE;oBACjD,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;iBACpC,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;IAClB,OAAO;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE;oBACxE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;iBACpC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,2EAA2E;gBAC3E,6EAA6E;gBAC7E,0EAA0E;gBAC1E,6EAA6E;gBAC7E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,yEAAyE;gBACzE,sEAAsE;gBACtE,4BAA4B;gBAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBAEtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE/E,sEAAsE;gBACtE,sEAAsE;gBACtE,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAE1F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBACnD,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACpC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE;wBACtD,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;qBACpC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,OAAO;YAGX,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,qCAAqC,EAAE,KAAK,CAAC,CAAC;gBAC1F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5F,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACtG,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC1D,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,KAAc;QAClD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,CAAC,KAAK,IAAI,EAAE;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE;oBAClD,MAAM;oBACN,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;iBACpC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;wBACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE;4BACzD,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;yBAC9C,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACvB,IAAI,CAAC;wBACD,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;wBACtC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC1F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC/E,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAClC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;4BAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE;gCACtE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;6BAC7C,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,OAAO;oBACX,CAAC;oBAAC,OAAO,cAAc,EAAE,CAAC;wBACtB,OAAO,EAAE,CAAC;wBACV,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,oCAAoC,EAAE,cAAc,CAAC,CAAC;oBACtF,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;YACzC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAe,EAAE,KAAc;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAExE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YACvB,OAAO;YACP,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAI,SAAiB,EAAE,MAAwB;QACtE,IAAI,CAAC;YACD,OAAO,MAAM,MAAM,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO,MAAM,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,KAAc;QAClC,MAAM,IAAI,GAAG,MAAM,CAAE,KAA2B,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,CAAE,KAA8B,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,oBAAoB,GAAG;YACzB,mBAAmB;YACnB,aAAa;YACb,YAAY;YACZ,cAAc;YACd,SAAS;YACT,QAAQ;YACR,cAAc;YACd,WAAW;SACd,CAAC;QAEF,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QACvD,OAAO,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,CAAC;IAEO,cAAc,CAAC,KAAc;QACjC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,OAAO,CAAC;QACzB,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEO,uBAAuB;QAC3B,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;QAE3C,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAChF,OAAO;QACX,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACtC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAC9B,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,yBAAyB,GAAG,IAAI,eAAe,EAAE,CAAC;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAElD,oEAAoE;QACpE,mEAAmE;QACnE,wEAAwE;QACxE,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAClF,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrC,OAAO;YACX,CAAC;YAED,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,CAAC,KAAK,CACjB;YACI,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;YAC1C,0EAA0E;YAC1E,wEAAwE;YACxE,aAAa,EAAE,OAAO;YACtB,qBAAqB,EAAE,KAAK;YAC5B,SAAS,EAAE,OAAO,CAAC,GAAG;YACtB,WAAW,EAAE,OAAO,CAAC,QAAQ;YAC7B,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE;YAC1B,UAAU,EAAE,YAAY;SAC3B,EACD,MAAM,CACT,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oDAAoD,EAAE;YACpE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;SAC7C,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,KAAiB,EAAE,MAAc;QACrE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE;YACxD,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK;YAChC,MAAM;SACT,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,mBAAmB,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE;YACtD,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK;YAChC,MAAM;SACT,CAAC,CAAC;IACP,CAAC"}
|
|
@@ -49,7 +49,10 @@ export declare class ChronicleConnection implements ChronicleServices {
|
|
|
49
49
|
private _connections;
|
|
50
50
|
private readonly _connectionString;
|
|
51
51
|
private readonly _tokenProvider;
|
|
52
|
+
private readonly _addressResolver;
|
|
53
|
+
private readonly _loadBalancerStrategy;
|
|
52
54
|
private _isConnected;
|
|
55
|
+
private _clientsReady;
|
|
53
56
|
constructor(_options: ChronicleConnectionOptions);
|
|
54
57
|
get connectionString(): ChronicleConnectionString;
|
|
55
58
|
get isConnected(): boolean;
|
|
@@ -75,7 +78,7 @@ export declare class ChronicleConnection implements ChronicleServices {
|
|
|
75
78
|
get compliance(): import("../compliance/ComplianceContracts").ComplianceClient<{}>;
|
|
76
79
|
get connections(): ConnectionServiceClient;
|
|
77
80
|
connect(): Promise<void>;
|
|
78
|
-
resetChannel(): void
|
|
81
|
+
resetChannel(): Promise<void>;
|
|
79
82
|
reconnect(): Promise<void>;
|
|
80
83
|
disconnect(): void;
|
|
81
84
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChronicleConnection.d.ts","sourceRoot":"","sources":["../../connection/ChronicleConnection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAW,kBAAkB,EAAkB,MAAM,eAAe,CAAC;AACjF,OAAO,EAoBH,KAAK,uBAAuB,EAC/B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAAsB,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ChronicleConnection.d.ts","sourceRoot":"","sources":["../../connection/ChronicleConnection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAW,kBAAkB,EAAkB,MAAM,eAAe,CAAC;AACjF,OAAO,EAoBH,KAAK,uBAAuB,EAC/B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAAsB,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMxD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAEtD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;IAW7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAVrC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAC9D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAgB;gBAER,QAAQ,EAAE,0BAA0B;IAuBjE,IAAI,gBAAgB,IAAI,yBAAyB,CAEhD;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,gEAEd;IAED,IAAI,UAAU,+DAEb;IAED,IAAI,eAAe,oEAElB;IAED,IAAI,UAAU,+DAEb;IAED,IAAI,cAAc,mEAEjB;IAED,IAAI,UAAU,+DAEb;IAED,IAAI,WAAW,gEAEd;IAED,IAAI,SAAS,8DAEZ;IAED,IAAI,uBAAuB,qFAE1B;IAED,IAAI,gBAAgB,qEAEnB;IAED,IAAI,QAAQ,6DAEX;IAED,IAAI,QAAQ,6DAEX;IAED,IAAI,WAAW,gEAEd;IAED,IAAI,UAAU,+DAEb;IAED,IAAI,sBAAsB,2EAEzB;IAED,IAAI,IAAI,yDAEP;IAED,IAAI,QAAQ,6DAEX;IAED,IAAI,YAAY,iEAEf;IAED,IAAI,MAAM,2DAET;IAED,IAAI,UAAU,qEAEb;IAED,IAAI,WAAW,IAAI,uBAAuB,CAEzC;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC,UAAU,IAAI,IAAI;IAKlB,OAAO,IAAI,IAAI;YAID,aAAa;IA+C3B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,oBAAoB;CAoB/B"}
|