@hydranium/data-server 1.0.0-next.201 → 1.0.0-next.202
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/data-server.d.ts +42 -102
- package/lib/data-server.d.ts.map +1 -1
- package/lib/data-server.js +89 -193
- package/lib/data-server.js.map +1 -1
- package/package.json +7 -7
- package/src/data-server.ts +102 -220
package/lib/data-server.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { DisposableCollection, ReferenceSource, type CloseModelArgs, type HydraniumMessageData, type HydraniumResponseError, type Disposable, type ElementSource, type FindNextNameArgs, type LatencyCollector, type LatencyReport, type OpenModelArgs, type Project, type ReferenceCandidate, type ReferenceContext, type ReferenceRequest, type ReferenceTarget, type ModelVersion, type TextState, type Tracer, type TransferDiagnostic, TransferDocument, type TransferSavedDocument, type TransferElement } from '@hydranium/protocol';
|
|
9
|
+
import { DisposableCollection, ReferenceSource, type CloseModelArgs, type HydraniumMessageData, type HydraniumResponseError, type CanonicalUri, type Disposable, type ElementSource, type FindNextNameArgs, type LatencyCollector, type LatencyReport, type OpenModelArgs, type Project, type ReferenceCandidate, type ReferenceContext, type ReferenceRequest, type ReferenceTarget, type ModelVersion, type TextState, type Tracer, type TransferDiagnostic, TransferDocument, type TransferSavedDocument, type TransferElement } from '@hydranium/protocol';
|
|
10
10
|
import { type DataClientProtocol, type DataServerDiagnosticsProtocol, type DataServerProtocol, type DumpServerStateArgs, type StartProfilingArgs, type StopProfilingArgs, type WriteServerHeapSnapshotArgs, type CloseSessionArgs, type CreateModelDocumentArgs, type CreateSessionArgs, type GetModelDocumentArgs, type GetProjectForUriArgs, type TransferPersistDocumentArgs, type TransferSaveDocumentArgs, type WatchModelDocumentArgs, type TransferUpdateDocumentArgs, type TransferUpdateDocumentsArgs } from '@hydranium/protocol/data';
|
|
11
11
|
/**
|
|
12
12
|
* Raised when a profiling command arrives with no capture running.
|
|
@@ -39,19 +39,9 @@ export declare const referenceSettleTimeoutError: (elapsedMs: number) => Respons
|
|
|
39
39
|
readonly elapsedMs: number;
|
|
40
40
|
}>;
|
|
41
41
|
import type { DataServerDiagnosticsProvider, DataServerProfileCapture } from './diagnostics-provider.js';
|
|
42
|
-
import type { ClientSession, ClientSessionWriteArgs,
|
|
43
|
-
import type
|
|
44
|
-
import { type
|
|
45
|
-
import { type CancellationToken, type MessageConnection, ResponseError } from 'vscode-jsonrpc';
|
|
46
|
-
/**
|
|
47
|
-
* A session a data connection registered with a resume token, and how to end
|
|
48
|
-
* it from another connection. See {@link DataServer.resumableSessions}.
|
|
49
|
-
*/
|
|
50
|
-
export interface ResumableSession {
|
|
51
|
-
readonly token: string;
|
|
52
|
-
/** End the session as its connection closing would. */
|
|
53
|
-
readonly end: () => void;
|
|
54
|
-
}
|
|
42
|
+
import type { ClientSession, ClientSessionWriteArgs, HydraniumLanguageServices, LogNameOptions, AstDiagnostic, AstDocument, AstDocumentSavedEvent, EncodedTransferDocument, ModelDeletedEvent, ModelDirtyChangedEvent, ModelService, ModelUpdatedEvent, ProjectChangeEvent, ServerSharedServices, SessionEndCause, TransferEncoder } from '@hydranium/core';
|
|
43
|
+
import { type AstNode, DocumentState, type URI } from '@hydranium/langium';
|
|
44
|
+
import { type MessageConnection, ResponseError } from 'vscode-jsonrpc';
|
|
55
45
|
/**
|
|
56
46
|
* Which observable state {@link DataServer.computeDocumentFingerprint} hashes to
|
|
57
47
|
* de-dup `onDocumentUpdated` emissions.
|
|
@@ -275,11 +265,11 @@ export interface DataServerUriWatchRecord {
|
|
|
275
265
|
* any names supplied via {@link DataServerOptions.additionalMethods}) and
|
|
276
266
|
* builds the {@link DataClientProtocol} notification proxy on the same
|
|
277
267
|
* connection in one {@link createRpcProxy} call (binding `this` as its
|
|
278
|
-
* `localTarget`) under the configured namespace, and
|
|
279
|
-
* at the configured phase
|
|
280
|
-
* per-document `clientProxy.onDocumentUpdated` for watched URIs
|
|
281
|
-
* `
|
|
282
|
-
*
|
|
268
|
+
* `localTarget`) under the configured namespace, and follows documents
|
|
269
|
+
* through `ModelService`'s events: at the configured phase, `onModelUpdated`
|
|
270
|
+
* dispatches per-document `clientProxy.onDocumentUpdated` for watched URIs and
|
|
271
|
+
* `onModelsBuilt` a single `clientProxy.onDocumentsBuilt` naming the batch's
|
|
272
|
+
* unwatched documents.
|
|
283
273
|
*
|
|
284
274
|
* The data-server requires the full {@link ServerSharedServices}
|
|
285
275
|
* shape — `HydraniumTextDocuments` for client-attributed updates,
|
|
@@ -362,19 +352,7 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
362
352
|
closeSession(args: CloseSessionArgs): Promise<void>;
|
|
363
353
|
/** End `session`, registered here under `clientId`, with `cause`, and drop its watches on this connection. */
|
|
364
354
|
protected endSession(clientId: string, session: ClientSession<AstNode, AstDiagnostic, TTransfer>, cause?: SessionEndCause): void;
|
|
365
|
-
|
|
366
|
-
* The resumable sessions of this services tree, by client id, across all of
|
|
367
|
-
* its data connections: a client resumes on another connection than the one
|
|
368
|
-
* that registered it. An entry leaves when its session ends, by any path, so
|
|
369
|
-
* it keeps no ended connection alive.
|
|
370
|
-
*
|
|
371
|
-
* A takeover by resume token ends the old session even when its connection
|
|
372
|
-
* is still alive, so two clients that shared an id and its token would end
|
|
373
|
-
* each other's sessions. And the token is a guard against colliding with a
|
|
374
|
-
* session the server has not yet seen end, not a secret: the wire carries no
|
|
375
|
-
* authentication, and a peer that learns the token can end the session.
|
|
376
|
-
*/
|
|
377
|
-
protected resumableSessions(): Map<string, ResumableSession>;
|
|
355
|
+
protected dropWatches(clientId: string): void;
|
|
378
356
|
createModelDocument(args: CreateModelDocumentArgs): Promise<TransferDocument<TTransfer, TDiagnostic>>;
|
|
379
357
|
updateModelDocuments(args: TransferUpdateDocumentsArgs<TTransfer>): Promise<TransferDocument<TTransfer, TDiagnostic>[]>;
|
|
380
358
|
/**
|
|
@@ -447,6 +425,7 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
447
425
|
* LSP head resolves.
|
|
448
426
|
*
|
|
449
427
|
* Adopters can still override for head-specific URI policy by subclassing.
|
|
428
|
+
* The result keys watches only; a document is looked up by its own URI.
|
|
450
429
|
*/
|
|
451
430
|
protected canonicalKey(uri: string): string;
|
|
452
431
|
getProjects(): Promise<readonly TProject[]>;
|
|
@@ -488,41 +467,17 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
488
467
|
*/
|
|
489
468
|
protected resolveReferenceServices(source: ReferenceSource): HydraniumLanguageServices['references'];
|
|
490
469
|
/**
|
|
491
|
-
* Pick the language that owns a reference source
|
|
492
|
-
*
|
|
493
|
-
*
|
|
494
|
-
*
|
|
495
|
-
*
|
|
496
|
-
* 1. A URI-bearing source ({@link isDocumentSource}/{@link isSyntheticSource})
|
|
497
|
-
* whose URI resolves to a registered language routes by URI.
|
|
498
|
-
* 2. A single-language workspace always routes to that one language — so
|
|
499
|
-
* single-language adopters never reach the steps below, and never pay
|
|
500
|
-
* for them.
|
|
501
|
-
* 3. An {@link isElementSource} source carries no URI, so in a
|
|
502
|
-
* multi-language workspace it is routed via the document that holds the
|
|
503
|
-
* element (see {@link findElementDocumentUri}).
|
|
504
|
-
* 4. A source carrying an AST type is routed by that type when exactly one
|
|
505
|
-
* registered grammar can produce it (see
|
|
506
|
-
* {@link resolveReferenceLanguageByType}, over the registry's own type
|
|
507
|
-
* index). This is what resolves a create-element flow's synthetic source
|
|
508
|
-
* on a bare directory URI without asking the adopter.
|
|
509
|
-
* 5. Anything still unresolved falls to {@link fallbackReferenceLanguage},
|
|
510
|
-
* which is adopter policy.
|
|
511
|
-
*/
|
|
512
|
-
protected resolveReferenceLanguage(source: ReferenceSource): HydraniumLanguageServices | undefined;
|
|
513
|
-
/**
|
|
514
|
-
* Route a reference source by the AST type it carries — a
|
|
515
|
-
* {@link isSyntheticSource}'s `type` (the transient node being created) or an
|
|
516
|
-
* {@link isElementSource}'s optional narrowing `type`.
|
|
470
|
+
* Pick the language that owns a reference source: the registry's
|
|
471
|
+
* `getLanguageFor` over the source's declared language, URI and AST type,
|
|
472
|
+
* with an {@link isElementSource} routed by the document that holds the
|
|
473
|
+
* element (see {@link findElementDocumentUri}) before its type, and
|
|
474
|
+
* {@link fallbackReferenceLanguage}, adopter policy, last.
|
|
517
475
|
*
|
|
518
|
-
*
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
* adopter policy, not a coin toss. Note this asks which grammar can *produce*
|
|
522
|
-
* the type, not which mentions it: a grammar that merely cross-references a
|
|
523
|
-
* type can never hold a node of it.
|
|
476
|
+
* An unregistered declared language falls through rather than failing: the
|
|
477
|
+
* id crosses the wire, so a client built against a head with one more
|
|
478
|
+
* grammar would otherwise lose queries the other signals answer.
|
|
524
479
|
*/
|
|
525
|
-
protected
|
|
480
|
+
protected resolveReferenceLanguage(source: ReferenceSource): HydraniumLanguageServices | undefined;
|
|
526
481
|
/**
|
|
527
482
|
* Locate the document that holds the element an {@link ElementSource}
|
|
528
483
|
* addresses, via the index's O(1) name lookup — `name` is the qualified
|
|
@@ -530,15 +485,14 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
530
485
|
* disambiguates names that repeat across types (honouring grammar
|
|
531
486
|
* subtyping through `AstReflection.isSubtype`).
|
|
532
487
|
*
|
|
533
|
-
* Only reached
|
|
534
|
-
*
|
|
535
|
-
* step 2.
|
|
488
|
+
* Only reached in a multi-language workspace, once the declared language
|
|
489
|
+
* and the URI have abstained.
|
|
536
490
|
*
|
|
537
491
|
* Abstains when the name matches elements in more than one DOCUMENT — the
|
|
538
492
|
* index spans every language and is filled in build order, so "the
|
|
539
|
-
* first match" would be file-watch order rather than an answer.
|
|
540
|
-
* then falls through to the type
|
|
541
|
-
*
|
|
493
|
+
* first match" would be file-watch order rather than an answer. Routing
|
|
494
|
+
* then falls through to the element's type, which abstains on ties in the
|
|
495
|
+
* same way, and finally to adopter policy.
|
|
542
496
|
*/
|
|
543
497
|
protected findElementDocumentUri(source: ElementSource): URI | undefined;
|
|
544
498
|
/**
|
|
@@ -591,12 +545,11 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
591
545
|
*/
|
|
592
546
|
protected builtTextState(uri: string): TextState | undefined;
|
|
593
547
|
/**
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
-
* regardless of subscriber count.
|
|
548
|
+
* Follow every document at the configured
|
|
549
|
+
* {@link DataServerOptions.subscriptionPhase}, once per connection rather
|
|
550
|
+
* than once per watch, so the cost stays flat in the number of watches.
|
|
598
551
|
*/
|
|
599
|
-
protected
|
|
552
|
+
protected subscribeToModelUpdates(): void;
|
|
600
553
|
/**
|
|
601
554
|
* Report the documents that reached {@link DataServerOptions.subscriptionPhase}
|
|
602
555
|
* and that NOBODY on this
|
|
@@ -625,22 +578,15 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
625
578
|
* dependents produces nothing at all, and workspace initialisation produces
|
|
626
579
|
* nothing because it does not build to this phase. The ceiling is a
|
|
627
580
|
* whole-workspace rebuild at the subscription phase: one message, URIs only.
|
|
628
|
-
*
|
|
629
|
-
* The URI is canonicalised for the same reason {@link uriWatchRecords} is keyed
|
|
630
|
-
* that way, and is untested for the same reason as its twin in
|
|
631
|
-
* {@link dispatchDeleteEvents}: the builder reports URIs out of its own
|
|
632
|
-
* store, so a non-canonical one cannot be produced without a fixture
|
|
633
|
-
* asserting a shape the real system never emits.
|
|
634
581
|
*/
|
|
635
|
-
protected dispatchBuiltEvent(built: readonly
|
|
582
|
+
protected dispatchBuiltEvent(built: readonly CanonicalUri[]): void;
|
|
636
583
|
/**
|
|
637
|
-
*
|
|
638
|
-
*
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
* or any other client writing through `notifyDidSaveTextDocument`.
|
|
584
|
+
* Follow every save so a single `onDocumentSaved` wire notification fires
|
|
585
|
+
* for ANY save of a subscribed URI — regardless of whether the save
|
|
586
|
+
* originated from the data-server's RPC `saveModelDocument`, the LSP head's
|
|
587
|
+
* text-editor save, or any other client.
|
|
642
588
|
*
|
|
643
|
-
* Architectural symmetry with {@link
|
|
589
|
+
* Architectural symmetry with {@link subscribeToModelUpdates}: every
|
|
644
590
|
* subscribed client sees every state change to documents they care about,
|
|
645
591
|
* regardless of which client triggered it. Firing `onDocumentSaved` only
|
|
646
592
|
* from the data-server's own RPC path is a bug, not an optimisation: an
|
|
@@ -655,7 +601,7 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
655
601
|
* {@link dispatchSaveEvent} is: the answer at any one moment travels on
|
|
656
602
|
* every document sent, so a client that watches nothing reads it there.
|
|
657
603
|
*/
|
|
658
|
-
protected dispatchDirtyEvent(event:
|
|
604
|
+
protected dispatchDirtyEvent(event: ModelDirtyChangedEvent): void;
|
|
659
605
|
/**
|
|
660
606
|
* Mark each document the store releases after its last close, so
|
|
661
607
|
* {@link dispatchPhaseEvent} broadcasts the following rebuild even without
|
|
@@ -694,15 +640,9 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
694
640
|
* in the other direction: a transition that matters enough is delivered
|
|
695
641
|
* without a subscription.
|
|
696
642
|
*
|
|
697
|
-
*
|
|
698
|
-
*
|
|
699
|
-
*
|
|
700
|
-
* That ordering also puts this notification ahead of the `'rebuilt'` events
|
|
701
|
-
* for the dependents whose references the deletion just broke.
|
|
702
|
-
*
|
|
703
|
-
* The `deleted` list arrives already expanded to concrete document URIs —
|
|
704
|
-
* `deleteDocuments` resolves a directory URI to the documents beneath it — so
|
|
705
|
-
* no caller has to handle a directory here.
|
|
643
|
+
* A deletion is announced before the build that follows it, so this goes
|
|
644
|
+
* out ahead of the `'rebuilt'` events for the dependents whose references
|
|
645
|
+
* the deletion just broke.
|
|
706
646
|
*
|
|
707
647
|
* The URI's fingerprint and revert mark are dropped: they describe a
|
|
708
648
|
* document that no longer exists. A kept fingerprint is adopted as the
|
|
@@ -713,9 +653,9 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
713
653
|
* re-subscription, and a client that answers the deletion by closing
|
|
714
654
|
* releases the watch through `closeModelDocument` anyway.
|
|
715
655
|
*/
|
|
716
|
-
protected
|
|
656
|
+
protected dispatchDeleteEvent(event: ModelDeletedEvent): void;
|
|
717
657
|
/** Fan out a save event for the document's URI, gated on the URI's watchers. */
|
|
718
|
-
protected dispatchSaveEvent(event:
|
|
658
|
+
protected dispatchSaveEvent(event: AstDocumentSavedEvent<AstNode>): void;
|
|
719
659
|
/**
|
|
720
660
|
* Fan out a phase event for the document's URI by calling
|
|
721
661
|
* `clientProxy.onDocumentUpdated`. The proxy lowers the call to a
|
|
@@ -747,7 +687,7 @@ export declare class DataServer<TTransfer extends TransferElement, TDiagnostic e
|
|
|
747
687
|
* digest keeps its memory constant in document size; see
|
|
748
688
|
* {@link computeDocumentFingerprint} for the inputs.
|
|
749
689
|
*/
|
|
750
|
-
protected dispatchPhaseEvent(
|
|
690
|
+
protected dispatchPhaseEvent(event: ModelUpdatedEvent<AstNode>): void;
|
|
751
691
|
/**
|
|
752
692
|
* Fingerprint of the snapshot `root` and its encoding `encoded`, used to
|
|
753
693
|
* de-dup `onDocumentUpdated` emissions and sent as every document's
|
package/lib/data-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-server.d.ts","sourceRoot":"","sources":["../src/data-server.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAGJ,oBAAoB,EAOpB,eAAe,EAGf,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAEpB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EAGtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIJ,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAG3B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAClC,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,+GAG7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAwC,CAAC;AAE5E,eAAO,MAAM,oBAAoB,QAAO,sBAAiF,CAAC;AAE1H;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,+GAGpC,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,6BAA6B,OAA+C,CAAC;AAE1F,yGAAyG;AACzG,eAAO,MAAM,2BAA2B,cAAe,MAAM,KAAG,aAAa,CAAC,oBAAoB,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAI9H,CAAC;AAEN,OAAO,KAAK,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EACT,aAAa,EACb,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"data-server.d.ts","sourceRoot":"","sources":["../src/data-server.ts"],"names":[],"mappings":"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"}
|