@lspeasy/client 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +46 -0
  2. package/dist/capability-proxy.d.ts.map +1 -1
  3. package/dist/capability-proxy.js +9 -2
  4. package/dist/capability-proxy.js.map +1 -1
  5. package/dist/client.d.ts +21 -2
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +199 -6
  8. package/dist/client.js.map +1 -1
  9. package/dist/connection/health.d.ts +31 -2
  10. package/dist/connection/health.d.ts.map +1 -1
  11. package/dist/connection/health.js +35 -12
  12. package/dist/connection/health.js.map +1 -1
  13. package/dist/connection/heartbeat.d.ts +18 -0
  14. package/dist/connection/heartbeat.d.ts.map +1 -1
  15. package/dist/connection/heartbeat.js +15 -0
  16. package/dist/connection/heartbeat.js.map +1 -1
  17. package/dist/connection/partial-result-collector.d.ts +11 -0
  18. package/dist/connection/partial-result-collector.d.ts.map +1 -0
  19. package/dist/connection/partial-result-collector.js +34 -0
  20. package/dist/connection/partial-result-collector.js.map +1 -0
  21. package/dist/connection/registration-store.d.ts +11 -0
  22. package/dist/connection/registration-store.d.ts.map +1 -0
  23. package/dist/connection/registration-store.js +22 -0
  24. package/dist/connection/registration-store.js.map +1 -0
  25. package/dist/connection/types.d.ts +15 -0
  26. package/dist/connection/types.d.ts.map +1 -1
  27. package/dist/connection/types.js +3 -0
  28. package/dist/connection/types.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/notifications/wait.d.ts +21 -0
  33. package/dist/notifications/wait.d.ts.map +1 -1
  34. package/dist/notifications/wait.js +18 -0
  35. package/dist/notifications/wait.js.map +1 -1
  36. package/dist/types.d.ts +22 -1
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +9 -9
  39. package/LICENSE +0 -21
package/README.md CHANGED
@@ -255,6 +255,52 @@ try {
255
255
 
256
256
  ## Event Subscriptions
257
257
 
258
+ ## Dynamic Capability Registration
259
+
260
+ ```typescript
261
+ const client = new LSPClient({
262
+ capabilities: {
263
+ workspace: {
264
+ didChangeWatchedFiles: { dynamicRegistration: true }
265
+ }
266
+ },
267
+ dynamicRegistration: {
268
+ allowUndeclaredDynamicRegistration: false
269
+ }
270
+ });
271
+
272
+ const runtime = client.getRuntimeCapabilities();
273
+ console.log(runtime.dynamicRegistrations);
274
+ ```
275
+
276
+ - `client/registerCapability` and `client/unregisterCapability` are handled automatically.
277
+ - Unknown unregister ids return JSON-RPC `-32602`.
278
+ - Set `allowUndeclaredDynamicRegistration: true` for compatibility-mode acceptance.
279
+
280
+ ## Partial Result Streaming
281
+
282
+ ```typescript
283
+ const result = await client.sendRequestWithPartialResults('workspace/symbol', { query: 'My' }, {
284
+ token: 'symbols-1',
285
+ onPartial: (batch) => console.log('partial batch', batch)
286
+ });
287
+
288
+ if (result.cancelled) {
289
+ console.log(result.partialResults);
290
+ } else {
291
+ console.log(result.finalResult);
292
+ }
293
+ ```
294
+
295
+ ## Notebook Namespace
296
+
297
+ ```typescript
298
+ await client.notebookDocument.didOpen(params);
299
+ await client.notebookDocument.didChange(params);
300
+ await client.notebookDocument.didSave(params);
301
+ await client.notebookDocument.didClose(params);
302
+ ```
303
+
258
304
  ### Connection Events
259
305
 
260
306
  ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"capability-proxy.d.ts","sourceRoot":"","sources":["../src/capability-proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAU7C;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,SAAS,OAAO,CAAC,OAAO,eAAe,EAAE,kBAAkB,CAAC,EACtE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAoDrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,SAAS,OAAO,CAAC,OAAO,eAAe,EAAE,kBAAkB,CAAC,EACtE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAGrC"}
1
+ {"version":3,"file":"capability-proxy.d.ts","sourceRoot":"","sources":["../src/capability-proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiB7C;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,SAAS,OAAO,CAAC,OAAO,eAAe,EAAE,kBAAkB,CAAC,EACtE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAwDrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,SAAS,OAAO,CAAC,OAAO,eAAe,EAAE,kBAAkB,CAAC,EACtE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAGrC"}
@@ -11,10 +11,15 @@ function deriveNotificationMethodKey(namespaceName, notificationKey) {
11
11
  }
12
12
  return notificationKey;
13
13
  }
14
+ function getRuntimeRegisteredMethods(client) {
15
+ const runtime = client.getRuntimeCapabilities();
16
+ return new Set(runtime.dynamicRegistrations.map((registration) => registration.method));
17
+ }
14
18
  /**
15
19
  * Initializes capability-aware methods on the client object based on LSPRequest definitions
16
20
  */
17
21
  export function initializeCapabilityMethods(client) {
22
+ const runtimeRegisteredMethods = getRuntimeRegisteredMethods(client);
18
23
  if (!client.serverCapabilities) {
19
24
  // Server capabilities not yet known; cannot initialize methods
20
25
  return;
@@ -31,7 +36,8 @@ export function initializeCapabilityMethods(client) {
31
36
  // 1. No capability required (ServerCapability is undefined/null), OR
32
37
  // 2. Server has the required capability
33
38
  if (!d.ServerCapability ||
34
- hasServerCapability(client.serverCapabilities, d.ServerCapability)) {
39
+ hasServerCapability(client.serverCapabilities, d.ServerCapability) ||
40
+ runtimeRegisteredMethods.has(d.Method)) {
35
41
  namespace[camelCase(request)] = (a, b) => client.sendRequest(d.Method, a, b);
36
42
  }
37
43
  // If capability is missing, don't add the method at all (runtime matches types)
@@ -51,7 +57,8 @@ export function initializeCapabilityMethods(client) {
51
57
  const d = getDefinitionForNotification(namespaceName, notification);
52
58
  // Notifications typically don't require capabilities, but check anyway
53
59
  if (!d.ServerCapability ||
54
- hasServerCapability(client.serverCapabilities, d.ServerCapability)) {
60
+ hasServerCapability(client.serverCapabilities, d.ServerCapability) ||
61
+ runtimeRegisteredMethods.has(d.Method)) {
55
62
  const methodKey = deriveNotificationMethodKey(namespaceName, notification);
56
63
  client[clientPropertyName][camelCase(methodKey)] = (a) => client.sendNotification(d.Method, a);
57
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"capability-proxy.js","sourceRoot":"","sources":["../src/capability-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-proxy.js","sourceRoot":"","sources":["../src/capability-proxy.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * LSP Client implementation
3
3
  */
4
- import type { Transport, Disposable, CancellationToken, LSPRequestMethod, ParamsForRequest, ResultForRequest, LSPNotificationMethod, ParamsForNotification, ServerCapabilities, ClientCapabilities, Client } from '@lspeasy/core';
5
- import type { ClientOptions, InitializeResult, CancellableRequest } from './types.js';
4
+ import type { Transport, Disposable, CancellationToken, DynamicRegistration, LSPRequestMethod, ParamsForRequest, ResultForRequest, LSPNotificationMethod, ParamsForNotification, ServerCapabilities, ClientCapabilities, Client } from '@lspeasy/core';
5
+ import type { ClientOptions, InitializeResult, CancellableRequest, NotebookDocumentNamespace, PartialRequestOptions, PartialRequestResult } from './types.js';
6
6
  import type { ConnectionHealth, StateChangeEvent } from './connection/index.js';
7
7
  /**
8
8
  * Interface for dynamically added namespace methods
@@ -47,7 +47,10 @@ declare class BaseLSPClient<ClientCaps extends Partial<ClientCapabilities> = Cli
47
47
  private clientCapabilityGuard?;
48
48
  private readonly healthTracker;
49
49
  private heartbeatMonitor;
50
+ private readonly registrationStore;
50
51
  private notificationWaiters;
52
+ private readonly partialCollector;
53
+ readonly notebookDocument: NotebookDocumentNamespace;
51
54
  constructor(options?: ClientOptions<ClientCaps>);
52
55
  /**
53
56
  * Connect to server and complete initialization
@@ -73,6 +76,17 @@ declare class BaseLSPClient<ClientCaps extends Partial<ClientCapabilities> = Cli
73
76
  * Send a cancellable request
74
77
  */
75
78
  sendCancellableRequest<M extends LSPRequestMethod<'clientToServer'>>(method: M, params?: ParamsForRequest<M>): CancellableRequest<ResultForRequest<M>>;
79
+ /**
80
+ * Send a request with partial-result streaming support.
81
+ */
82
+ sendRequestWithPartialResults<M extends LSPRequestMethod<'clientToServer'>, TPartial = unknown>(method: M, params: ParamsForRequest<M>, options: PartialRequestOptions<TPartial>, token?: CancellationToken): Promise<PartialRequestResult<TPartial, ResultForRequest<M>>>;
83
+ /**
84
+ * Return static server capabilities plus dynamic registrations seen at runtime.
85
+ */
86
+ getRuntimeCapabilities(): {
87
+ staticCapabilities: ServerCapabilities | undefined;
88
+ dynamicRegistrations: DynamicRegistration[];
89
+ };
76
90
  /**
77
91
  * Register handler for server-to-client requests
78
92
  */
@@ -164,10 +178,15 @@ declare class BaseLSPClient<ClientCaps extends Partial<ClientCapabilities> = Cli
164
178
  private buildMiddlewareContext;
165
179
  private sendWithMiddleware;
166
180
  private handleRequest;
181
+ private supportsDynamicRegistration;
182
+ private sendResponseMessage;
183
+ private handleDynamicRegister;
184
+ private handleDynamicUnregister;
167
185
  /**
168
186
  * Handle notification message from server
169
187
  */
170
188
  private handleNotification;
189
+ private handleProgressNotification;
171
190
  /**
172
191
  * Handle transport error
173
192
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * LSP Client implementation
3
3
  */
4
- import { CancellationTokenSource, ConsoleLogger, executeMiddlewarePipeline, LogLevel } from '@lspeasy/core';
4
+ import { CancellationTokenSource, ConsoleLogger, executeMiddlewarePipeline, isRegisterCapabilityParams, isUnregisterCapabilityParams, LogLevel } from '@lspeasy/core';
5
5
  import { DisposableEventEmitter, HandlerRegistry } from '@lspeasy/core/utils';
6
6
  import { PendingRequestTracker, TransportAttachment } from '@lspeasy/core/utils/internal';
7
7
  import { initializeCapabilityMethods, updateCapabilityMethods } from './capability-proxy.js';
8
8
  import { CapabilityGuard, ClientCapabilityGuard } from './capability-guard.js';
9
9
  import { ConnectionHealthTracker, ConnectionState, HeartbeatMonitor } from './connection/index.js';
10
+ import { RegistrationStore } from './connection/registration-store.js';
11
+ import { PartialResultCollector } from './connection/partial-result-collector.js';
10
12
  /**
11
13
  * Interface for dynamically added namespace methods
12
14
  */
@@ -50,7 +52,10 @@ class BaseLSPClient {
50
52
  clientCapabilityGuard;
51
53
  healthTracker;
52
54
  heartbeatMonitor;
55
+ registrationStore;
53
56
  notificationWaiters;
57
+ partialCollector;
58
+ notebookDocument;
54
59
  constructor(options = {}) {
55
60
  this.connected = false;
56
61
  this.initialized = false;
@@ -62,7 +67,10 @@ class BaseLSPClient {
62
67
  logLevel: options.logLevel ?? LogLevel.Info,
63
68
  requestTimeout: options.requestTimeout,
64
69
  strictCapabilities: options.strictCapabilities ?? false,
65
- heartbeat: options.heartbeat
70
+ heartbeat: options.heartbeat,
71
+ dynamicRegistration: options.dynamicRegistration ?? {
72
+ allowUndeclaredDynamicRegistration: false
73
+ }
66
74
  };
67
75
  this.logger = this.options.logger;
68
76
  this.middlewareRegistrations = options.middleware ?? [];
@@ -72,6 +80,14 @@ class BaseLSPClient {
72
80
  this.events = new DisposableEventEmitter();
73
81
  this.transportAttachment = new TransportAttachment();
74
82
  this.notificationWaiters = new Set();
83
+ this.registrationStore = new RegistrationStore();
84
+ this.partialCollector = new PartialResultCollector();
85
+ this.notebookDocument = {
86
+ didOpen: async (params) => this.sendNotification('notebookDocument/didOpen', params),
87
+ didChange: async (params) => this.sendNotification('notebookDocument/didChange', params),
88
+ didSave: async (params) => this.sendNotification('notebookDocument/didSave', params),
89
+ didClose: async (params) => this.sendNotification('notebookDocument/didClose', params)
90
+ };
75
91
  this.healthTracker = new ConnectionHealthTracker();
76
92
  if (options.capabilities) {
77
93
  this.capabilities = options.capabilities;
@@ -196,7 +212,10 @@ class BaseLSPClient {
196
212
  }
197
213
  // Check if already cancelled before doing anything
198
214
  if (token?.isCancellationRequested) {
199
- return Promise.reject(new Error('Request was cancelled'));
215
+ // Return a promise that rejects asynchronously to allow handlers to attach
216
+ return Promise.resolve().then(() => {
217
+ throw new Error('Request was cancelled');
218
+ });
200
219
  }
201
220
  const { id, promise } = this.pendingRequests.create(this.options.requestTimeout, method);
202
221
  const request = {
@@ -212,9 +231,8 @@ class BaseLSPClient {
212
231
  this.sendNotification('$/cancelRequest', { id }).catch((err) => {
213
232
  this.logger.error('Failed to send cancellation', err);
214
233
  });
215
- // Use process.nextTick to defer rejection slightly
216
- // This gives the caller a chance to attach rejection handlers before the rejection occurs
217
- process.nextTick(() => {
234
+ // Defer rejection asynchronously to allow handlers to attach
235
+ Promise.resolve().then(() => {
218
236
  this.pendingRequests.reject(id, new Error('Request was cancelled'));
219
237
  });
220
238
  });
@@ -281,6 +299,52 @@ class BaseLSPClient {
281
299
  cancel: () => cancelSource.cancel()
282
300
  };
283
301
  }
302
+ /**
303
+ * Send a request with partial-result streaming support.
304
+ */
305
+ async sendRequestWithPartialResults(method, params, options, token) {
306
+ const partialToken = options.token ?? `${Date.now()}-${Math.random()}`;
307
+ this.partialCollector.start(partialToken, (value) => {
308
+ options.onPartial(value);
309
+ });
310
+ try {
311
+ const requestParams = params && typeof params === 'object'
312
+ ? {
313
+ ...params,
314
+ partialResultToken: partialToken
315
+ }
316
+ : params;
317
+ const finalResult = await this.sendRequest(method, requestParams, token);
318
+ const partialResults = this.partialCollector.finish(partialToken);
319
+ return {
320
+ cancelled: false,
321
+ partialResults,
322
+ finalResult
323
+ };
324
+ }
325
+ catch (error) {
326
+ const isCancelled = error instanceof Error && error.message.includes('cancel');
327
+ if (isCancelled) {
328
+ const partialResults = this.partialCollector.finish(partialToken);
329
+ return {
330
+ cancelled: true,
331
+ partialResults,
332
+ finalResult: undefined
333
+ };
334
+ }
335
+ this.partialCollector.abort(partialToken);
336
+ throw error;
337
+ }
338
+ }
339
+ /**
340
+ * Return static server capabilities plus dynamic registrations seen at runtime.
341
+ */
342
+ getRuntimeCapabilities() {
343
+ return {
344
+ staticCapabilities: this.serverCapabilities,
345
+ dynamicRegistrations: this.registrationStore.getAll()
346
+ };
347
+ }
284
348
  /**
285
349
  * Register handler for server-to-client requests
286
350
  */
@@ -545,6 +609,14 @@ class BaseLSPClient {
545
609
  */
546
610
  async handleRequest(request) {
547
611
  const { id, method, params } = request;
612
+ if (method === 'client/registerCapability') {
613
+ await this.handleDynamicRegister(id, params);
614
+ return;
615
+ }
616
+ if (method === 'client/unregisterCapability') {
617
+ await this.handleDynamicUnregister(id, params);
618
+ return;
619
+ }
548
620
  const handler = this.requestHandlers.get(method);
549
621
  if (!handler) {
550
622
  this.logger.warn(`No handler for server request ${method}`);
@@ -603,11 +675,120 @@ class BaseLSPClient {
603
675
  }
604
676
  }
605
677
  }
678
+ supportsDynamicRegistration(method) {
679
+ const capabilities = this.capabilities;
680
+ if (!capabilities) {
681
+ return false;
682
+ }
683
+ // Methods are of the form "<root>/<subKey>", e.g. "textDocument/hover".
684
+ const separatorIndex = method.indexOf('/');
685
+ if (separatorIndex === -1) {
686
+ return false;
687
+ }
688
+ const root = method.slice(0, separatorIndex);
689
+ const subKey = method.slice(separatorIndex + 1);
690
+ if (!root || !subKey) {
691
+ return false;
692
+ }
693
+ const rootCapabilities = capabilities[root];
694
+ if (!rootCapabilities || typeof rootCapabilities !== 'object') {
695
+ return false;
696
+ }
697
+ // Map method names to capability keys when they differ or need special handling.
698
+ const methodToCapabilityKey = {};
699
+ const capabilityKey = methodToCapabilityKey[method] ?? subKey;
700
+ const capability = rootCapabilities[capabilityKey];
701
+ if (!capability || typeof capability !== 'object') {
702
+ return false;
703
+ }
704
+ return capability['dynamicRegistration'] === true;
705
+ }
706
+ async sendResponseMessage(response) {
707
+ if (!this.transport) {
708
+ return;
709
+ }
710
+ await this.transport.send(response);
711
+ }
712
+ async handleDynamicRegister(id, params) {
713
+ if (!isRegisterCapabilityParams(params)) {
714
+ await this.sendResponseMessage({
715
+ jsonrpc: '2.0',
716
+ id,
717
+ error: {
718
+ code: -32602,
719
+ message: 'Invalid params for client/registerCapability'
720
+ }
721
+ });
722
+ return;
723
+ }
724
+ const unsupported = params.registrations.find((registration) => !this.supportsDynamicRegistration(registration.method) &&
725
+ !this.options.dynamicRegistration.allowUndeclaredDynamicRegistration);
726
+ if (unsupported) {
727
+ await this.sendResponseMessage({
728
+ jsonrpc: '2.0',
729
+ id,
730
+ error: {
731
+ code: -32602,
732
+ message: `Dynamic registration not declared for ${unsupported.method}`
733
+ }
734
+ });
735
+ return;
736
+ }
737
+ for (const registration of params.registrations) {
738
+ this.registrationStore.upsert(registration);
739
+ }
740
+ updateCapabilityMethods(this);
741
+ await this.sendResponseMessage({
742
+ jsonrpc: '2.0',
743
+ id,
744
+ result: null
745
+ });
746
+ }
747
+ async handleDynamicUnregister(id, params) {
748
+ if (!isUnregisterCapabilityParams(params)) {
749
+ await this.sendResponseMessage({
750
+ jsonrpc: '2.0',
751
+ id,
752
+ error: {
753
+ code: -32602,
754
+ message: 'Invalid params for client/unregisterCapability'
755
+ }
756
+ });
757
+ return;
758
+ }
759
+ const unknownIds = [];
760
+ for (const unregister of params.unregisterations) {
761
+ const removed = this.registrationStore.remove(unregister.id);
762
+ if (!removed) {
763
+ unknownIds.push(unregister.id);
764
+ }
765
+ }
766
+ if (unknownIds.length > 0) {
767
+ await this.sendResponseMessage({
768
+ jsonrpc: '2.0',
769
+ id,
770
+ error: {
771
+ code: -32602,
772
+ message: `Unknown registration id(s): ${unknownIds.join(', ')}`
773
+ }
774
+ });
775
+ return;
776
+ }
777
+ updateCapabilityMethods(this);
778
+ await this.sendResponseMessage({
779
+ jsonrpc: '2.0',
780
+ id,
781
+ result: null
782
+ });
783
+ }
606
784
  /**
607
785
  * Handle notification message from server
608
786
  */
609
787
  handleNotification(notification) {
610
788
  const { method, params } = notification;
789
+ if (method === '$/progress') {
790
+ this.handleProgressNotification(params);
791
+ }
611
792
  for (const waiter of Array.from(this.notificationWaiters)) {
612
793
  if (waiter.method !== method) {
613
794
  continue;
@@ -637,6 +818,17 @@ class BaseLSPClient {
637
818
  this.logger.error(`Handler for ${method} threw error`, error);
638
819
  }
639
820
  }
821
+ handleProgressNotification(params) {
822
+ if (typeof params !== 'object' || params === null) {
823
+ return;
824
+ }
825
+ const candidate = params;
826
+ const token = candidate['token'];
827
+ if (typeof token !== 'string' && typeof token !== 'number') {
828
+ return;
829
+ }
830
+ this.partialCollector.push(token, candidate['value']);
831
+ }
640
832
  /**
641
833
  * Handle transport error
642
834
  */
@@ -660,6 +852,7 @@ class BaseLSPClient {
660
852
  this.healthTracker.setState(ConnectionState.Disconnected);
661
853
  this.transportAttachment.detach();
662
854
  this.pendingRequests.clear(new Error('Connection closed'));
855
+ this.partialCollector.clear();
663
856
  for (const waiter of Array.from(this.notificationWaiters)) {
664
857
  waiter.cleanup();
665
858
  waiter.reject(new Error('Connection closed before notification was received'));
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,QAAQ,EACT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGnG;;GAEG;AAEH;;;GAGG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,aAAa;IACT,SAAS,CAAa;IACtB,SAAS,CAAU;IACnB,WAAW,CAAU;IACrB,eAAe,CAAyC;IACxD,eAAe,CAAoC;IACnD,oBAAoB,CAAiC;IACrD,MAAM,CAIX;IACK,mBAAmB,CAAsB;IAChC,MAAM,CAAS;IACf,uBAAuB,CAAuC;IAC9D,OAAO,CAQtB;IACM,YAAY,CAAc;IAC3B,kBAAkB,CAAsB;IACvC,UAAU,CAAsC;IACvC,iBAAiB,CAAkD;IAC5E,eAAe,CAAmB;IAClC,qBAAqB,CAAyB;IACrC,aAAa,CAA0B;IAChD,gBAAgB,CAA+B;IAC/C,mBAAmB,CAMxB;IAEH,YAAY,OAAO,GAA8B,EAAE,EAAE;QACnD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,+BAA+B;QAC/B,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,gBAAgB;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC;YAC9E,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI;YAC3C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,KAAK;YACvD,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9E,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAuB,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACrD,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CACpD,IAAI,CAAC,YAAY,IAAI,EAAE,EACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;QAEF,2DAA2D;QAC3D,qFAAqF;QACrF,2BAA2B,CAAC,IAAwC,CAAC,CAAC;IAAA,CACvE;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,SAAoB,EAA6B;QAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE;YACzC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACnD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,0BAA0B;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAEhD,MAAM,gBAAgB,GAAqB;gBACzC,SAAS,EAAE,OAAO,CAAC,GAAG;gBACtB,UAAU,EAAE;oBACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;iBAC9B;gBACD,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;gBACrC,OAAO,EAAE,IAAI;aACd,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAEtE,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC;YAC9C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAExB,wDAAwD;YACxD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CACxC,MAAM,CAAC,YAAY,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;YAEF,+DAA+D;YAC/D,uBAAuB,CAAC,IAAwC,CAAC,CAAC;YAElE,gCAAgC;YAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAE/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAExD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI;gBACjC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO;aACxC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mEAAmE;YACnE,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC/B,CAAC;YACH,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,UAAmB,CAAC,CAAC;YAC5F,CAAC;YACD,mEAAmE;YACnE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;QACd,CAAC;IAAA,CACF;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,GAAkB;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,wBAAwB;YACxB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEnC,yBAAyB;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC/C,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACT,kBAAkB;YAClB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IAAA,CACF;IAED;;OAEG;IACH,WAAW,GAAY;QACrB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC;IAAA,CAC3C;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,MAAS,EACT,MAA4B,EAC5B,KAAyB,EACK;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,mDAAmD;QACnD,IAAI,KAAK,EAAE,uBAAuB,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAEzF,MAAM,OAAO,GAAmB;YAC9B,OAAO,EAAE,KAAK;YACd,EAAE;YACF,MAAM;YACN,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/D,IAAI,sBAA8C,CAAC;QAEnD,IAAI,KAAK,EAAE,CAAC;YACV,sBAAsB,GAAG,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC;gBAC3D,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;gBAAA,CACvD,CAAC,CAAC;gBAEH,mDAAmD;gBACnD,0FAA0F;gBAC1F,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAAA,CACrE,CAAC,CAAC;YAAA,CACJ,CAAC,CAAC;QACL,CAAC;QAED,KAAK,OAAO,CAAC,IAAI,CACf,GAAG,EAAE,CAAC;YACJ,sBAAsB,EAAE,OAAO,EAAE,CAAC;QAAA,CACnC,EACD,GAAG,EAAE,CAAC;YACJ,sBAAsB,EAAE,OAAO,EAAE,CAAC;QAAA,CACnC,CACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC;YACtB,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,SAAS;YACtB,MAAM;YACN,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAAA,CACrC;YACD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAAA,CAC7C;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAAA,CACxC;SACF,CAAC,CAAC;QAEH,OAAO,OAAuC,CAAC;IAAA,CAChD;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAS,EACT,MAAiC,EAClB;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,YAAY,GAAwB;YACxC,OAAO,EAAE,KAAK;YACd,MAAM;YACN,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEhE,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC5B,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,cAAc;YAC3B,MAAM;YACN,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAA,CAC1C;SACF,CAAC,CAAC;IAAA,CACJ;IAED;;OAEG;IACH,sBAAsB,CACpB,MAAS,EACT,MAA4B,EACa;QACzC,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAErE,OAAO;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE;SACpC,CAAC;IAAA,CACH;IAED;;OAEG;IACH,SAAS,CACP,MAAS,EACT,OAA4F,EAChF;QACZ,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAuC,CAAC,CAAC;IAAA,CACvF;IAED;;OAEG;IACH,cAAc,CACZ,MAAS,EACT,OAAmD,EACvC;QACZ,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAoC,CAAC,CAAC;IAAA,CACzF;IAED;;OAEG;IACH,mBAAmB,CACjB,MAAS,EACT,OAGC,EACkC;QACnC,OAAO,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;YAChE,IAAI,aAAyC,CAAC;YAE9C,MAAM,MAAM,GAMR;gBACF,MAAM;gBACN,OAAO,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAkC,CAAC,CAAC;gBAAA,CAC7C;gBACD,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,CAAC;gBAAA,CACf;gBACD,OAAO,EAAE,GAAG,EAAE,CAAC;oBACb,IAAI,aAAa,EAAE,CAAC;wBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;wBAC5B,aAAa,GAAG,SAAS,CAAC;oBAC5B,CAAC;oBACD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAAA,CACzC;aACF,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAsC,CAAC;YACjE,CAAC;YAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAErC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CACJ,IAAI,KAAK,CAAC,uCAAuC,MAAM,WAAW,OAAO,CAAC,OAAO,IAAI,CAAC,CACvF,CAAC;YAAA,CACH,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAAA,CACrB,CAAC,CAAC;IAAA,CACJ;IAED;;OAEG;IACH,WAAW,CAAC,OAAmB,EAAc;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAAA,CAC7C;IAED;;OAEG;IACH,cAAc,CAAC,OAAmB,EAAc;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAAA,CAChD;IAED;;OAEG;IACH,OAAO,CAAC,OAA+B,EAAc;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAAA,CACzC;IAED,uBAAuB,CAAC,OAA0C,EAAc;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,CAAC;IAAA,CACpB;IAED,wBAAwB,CAAC,OAA2C,EAAc;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,CAAC;IAAA,CACpB;IAED,mBAAmB,GAAqB;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;IAAA,CACvC;IAED;;OAEG;IACH,qBAAqB,GAAmC;QACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAAA,CAChC;IAED;;OAEG;IACH,aAAa,GAAmD;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC;IAAA,CACxB;IAED;;OAEG;IACH,eAAe,CAAC,YAAwB,EAAQ;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CACpD,YAAY,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;QACF,6EAA6E;QAC7E,4FAA4F;IAF1F,CAGH;IAED;;OAEG;IACH,qBAAqB,GAA2B;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC;IAAA,CAC1B;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,CAChB,GAAM,EACN,KAA4B,EACyB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAK,EAAiB,CAAC;QACxD,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAA8C,CAAC;QACzF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAsE,CAAC;IAAA,CAC/E;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,GAAwE;QAC5E,OAAO,IAAoC,CAAC;IAAA,CAC7C;IAED;;OAEG;IACK,aAAa,CAAC,OAAgB,EAAQ;QAC5C,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;YACnE,KAAK,IAAI,CAAC,cAAc,CAAC,OAA0B,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAAA,CACrD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC3C,sCAAsC;YACtC,KAAK,IAAI,CAAC,aAAa,CAAC,OAAyB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YAAA,CAC3D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,OAA8B,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;IAAA,CAC5D;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,QAAyB,EAAiB;QACrE,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC5B,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;YACvD,MAAM;YACN,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBAClB,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC9D,IAAI,CAAC,eAAe,CAAC,MAAM,CACzB,MAAM,CAAC,EAAE,CAAC,EACV,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,WAAW,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CACtE,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1D,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAAA,CAChF;YACD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAAA,CACrD;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAAA,CAChD;SACF,CAAC,CAAC;IAAA,CACJ;IAEO,0BAA0B,CAAC,EAAU,EAAE,MAAwB,EAAQ;QAC7E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,eAAe,CAAC,MAAM,CACzB,EAAE,EACF,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,WAAW,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAC9E,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,IAAI,OAAO,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC3E,IAAI,CAAC,eAAe,CAAC,MAAM,CACzB,EAAE,EACF,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,WAAW,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CACpF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAAA,CACjG;IAEO,sBAAsB,CAC5B,SAA8C,EAC9C,WAA8D,EAC9D,MAAc,EACd,OAAqC,EAClB;QACnB,OAAO;YACL,SAAS;YACT,WAAW;YACX,MAAM;YACN,OAAO;YACP,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,IAAI,SAAS;SACzD,CAAC;IAAA,CACH;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAQhC,EAAiB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CACzC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,IAAI,CAAC,uBAAuB,EAC5B,OAAO,EACP,KAAK,IAAI,EAAE,CAAC;gBACV,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,SAAS,CAAC;YAAA,CAClB,CACF,CAAC;YAEF,IAAI,MAAM,EAAE,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBACnD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC7B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,UAAU,CAAC;QACnB,CAAC;IAAA,CACF;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,OAAuB,EAAiB;QAClE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;YAE5D,8BAA8B;YAC9B,MAAM,QAAQ,GAAoB;gBAChC,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,qBAAqB,MAAM,EAAE;iBACvC;aACF,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAoB;gBAChC,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,MAAM;aACP,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC;YAE9D,MAAM,QAAQ,GAAoB;gBAChC,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;iBACnE;aACF,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IAAA,CACF;IAED;;OAEG;IACK,kBAAkB,CAAC,YAAiC,EAAQ;QAClE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAExC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;IAAA,CACF;IAED;;OAEG;IACK,WAAW,CAAC,KAAY,EAAQ;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAAA,CAClC;IAED;;OAEG;IACK,WAAW,GAAS;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAE1D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE3D,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAAA,CAClC;IAEO,0BAA0B,CAAC,MAAmC,EAAQ;QAC5E,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAE9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;YAC3C,MAAM;YACN,MAAM,EAAE,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;YAAA,CACrE;YACD,cAAc,EAAE,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;YAAA,CACrE;YACD,YAAY,EAAE,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;YAAA,CACrE;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAAA,CAC/B;CACF;AAKD,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAEO,aAAoB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,43 @@
1
+ import { DisposableEventEmitter } from '@lspeasy/core';
1
2
  import type { ConnectionHealth, HeartbeatStatus, StateChangeEvent } from './types.js';
2
3
  import { ConnectionState } from './types.js';
3
- export declare class ConnectionHealthTracker {
4
- private readonly events;
4
+ type HealthEventMap = {
5
+ stateChanged: [StateChangeEvent];
6
+ healthChanged: [ConnectionHealth];
7
+ };
8
+ /**
9
+ * Tracks connection state transitions and message activity timestamps.
10
+ */
11
+ export declare class ConnectionHealthTracker extends DisposableEventEmitter<HealthEventMap> {
5
12
  private health;
13
+ /**
14
+ * Returns a defensive copy of the current health snapshot.
15
+ */
6
16
  getHealth(): ConnectionHealth;
17
+ /**
18
+ * Updates connection state and emits state/health change events.
19
+ */
7
20
  setState(next: ConnectionState, reason?: string): void;
21
+ /**
22
+ * Records outbound message activity.
23
+ */
8
24
  markMessageSent(): void;
25
+ /**
26
+ * Records inbound message activity.
27
+ */
9
28
  markMessageReceived(): void;
29
+ /**
30
+ * Updates the heartbeat subsection of the current health snapshot.
31
+ */
10
32
  setHeartbeat(status: HeartbeatStatus): void;
33
+ /**
34
+ * Subscribes to connection state transitions.
35
+ */
11
36
  onStateChange(handler: (event: StateChangeEvent) => void): () => void;
37
+ /**
38
+ * Subscribes to health snapshot updates.
39
+ */
12
40
  onHealthChange(handler: (health: ConnectionHealth) => void): () => void;
13
41
  }
42
+ export {};
14
43
  //# sourceMappingURL=health.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/connection/health.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAIZ;IAEF,SAAS,IAAI,gBAAgB,CAa5B;IAED,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBrD;IAED,eAAe,IAAI,IAAI,CAMtB;IAED,mBAAmB,IAAI,IAAI,CAkB1B;IAED,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAM1C;IAED,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGpE;IAED,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGtE;CACF"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/connection/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACjC,aAAa,EAAE,CAAC,gBAAgB,CAAC,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,cAAc,CAAC;IACjF,OAAO,CAAC,MAAM,CAIZ;IAEF;;OAEG;IACH,SAAS,IAAI,gBAAgB,CAa5B;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBrD;IAED;;OAEG;IACH,eAAe,IAAI,IAAI,CAMtB;IAED;;OAEG;IACH,mBAAmB,IAAI,IAAI,CAkB1B;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAM1C;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGpE;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGtE;CACF"}