@hydranium/client-browser 1.0.0-next.307 → 1.0.0-next.309

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -73,6 +73,8 @@ with `isWorkerBootstrapMessage` from `@hydranium/protocol`, posts a
73
73
  failure it catches; one under `WORKER_BOOTSTRAP_PHASE` ends the page's heads,
74
74
  any other phase only reports. Until the worker has posted its ready message,
75
75
  or anything on a head's port, the `Worker`'s `error` event ends the heads too.
76
+ `heads.ready` resolves with the ready message, which carries the workspace's
77
+ files when the worker's host passed `hostHeadsInWorker` a `rootUri`.
76
78
 
77
79
  Register the handler for the server's diagnostics in `beforeInitialized`,
78
80
  which runs once `initialize` has answered and before `initialized` goes out.
@@ -89,8 +91,7 @@ notification. Open a document on the text the worker holds, never on a copy
89
91
  in your bundle, and create editors through the client, which keeps the
90
92
  settings a server-driven language needs under your own. Save through the
91
93
  client: the server already holds every edit, so `save` and `saveAll` ask the
92
- worker's LSP head to persist them. `saveDirtyDocuments` saves through a data
93
- session instead, for a server whose LSP head does not advertise the request.
94
+ worker's LSP head to persist them.
94
95
 
95
96
  <!-- snippet-preamble
96
97
  import { connectWorkerHeads } from '@hydranium/client-browser';
@@ -6,29 +6,6 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- /**
10
- * The client half of the LSP head for a Monaco editor, over the connection the
11
- * page already holds for the head.
12
- *
13
- * Hand-written rather than `monaco-languageclient`, which drags in the
14
- * `@codingame/monaco-vscode-*` shim stack: at `platform: 'browser'` a bundler
15
- * refuses a `node:*` builtin rather than shimming it, and that refusal is what
16
- * keeps a page bundle a neutrality gate over the head composition it carries.
17
- *
18
- * A Theia or VS Code integration hands `vscode-languageclient` a document
19
- * store, a marker service and a provider registry. Here Monaco is all three,
20
- * and the three translations between it and LSP are the whole of the work:
21
- *
22
- * - **Identity.** A Monaco model URI must be string-identical to the LSP URI, or
23
- * `publishDiagnostics` addresses a document Monaco does not have and the
24
- * markers land nowhere, silently.
25
- * - **Coordinates.** LSP lines and characters are 0-based; Monaco lines and
26
- * columns are 1-based. Every range crossing this file is converted.
27
- * - **Versions.** Monaco's `versionId` is monotonic per model, which is exactly
28
- * what the server's text store wants for its stale-write gate, so it is used
29
- * directly rather than counted here in parallel.
30
- */
31
- import { type BaseVersion, type TextState } from '@hydranium/protocol';
32
9
  import * as monaco from 'monaco-editor-core';
33
10
  import { type MessageConnection } from 'vscode-jsonrpc/browser';
34
11
  import { type AnnotatedTextEdit, type ApplyWorkspaceEditResult, type ClientCapabilities, type PublishDiagnosticsParams, type ServerCapabilities, SnippetTextEdit, type TextEdit, type WorkspaceEdit } from 'vscode-languageserver-protocol';
@@ -480,47 +457,4 @@ export declare class MonacoLspClient {
480
457
  */
481
458
  protected registerDocumentHighlight(): void;
482
459
  }
483
- /** The two calls of a data session {@link saveDirtyDocuments} makes, which `DataSession` satisfies. */
484
- export interface DocumentPersister {
485
- /** Open `args.uri`, run `fn` with the opened document, whose `text` is the server's state of it, and close it after. */
486
- withOpenDocument<T>(args: {
487
- readonly uri: string;
488
- }, fn: (document: {
489
- readonly text?: TextState;
490
- }) => Promise<T>): Promise<T>;
491
- persistDocument(args: {
492
- readonly uri: string;
493
- readonly baseVersion: BaseVersion;
494
- }): Promise<unknown>;
495
- }
496
- /**
497
- * Persist the dirty documents of `client`, or those of them `uris` names, in
498
- * the host's form or Monaco's, through `session`, one after another, and
499
- * return what was saved.
500
- *
501
- * **A save persists; it does not author.** Every keystroke already reached the
502
- * server as a `didChange`, and every server write reached the buffer as a
503
- * `workspace/applyEdit`, so the server's text is the buffer and disk is the
504
- * only thing behind. `persistDocument` at `'any'` writes that text without a
505
- * model: a write of the buffer's text would be authored against no read, so
506
- * no `ModelVersion` could gate it, and `'any'` on such a write could put an
507
- * older buffer over a server write still in flight.
508
- *
509
- * **The open's text hash is the gate.** A `didChange` travels the LSP port and
510
- * the persist the data port, and nothing orders one port's messages before
511
- * the other's, so the open can answer with text a keystroke has not reached.
512
- * The open answer's hash is `textHash` of the server's text; when it is not
513
- * the buffer's, the save throws, naming the document, and the document stays
514
- * dirty for the next save. A keystroke landing after the open persists as
515
- * newer text, which leaves the buffer dirty the same way.
516
- *
517
- * Each document's text is read just before its own open, not once for the
518
- * set: an earlier document's persist takes time, and a keystroke in a later
519
- * one during it would otherwise fail that one's hash check for nothing. Each
520
- * is marked saved at the version its text was read at, one at a time, so a
521
- * failure part-way through leaves the documents it never reached dirty and a
522
- * second call retries exactly those. Sequential, not concurrent: each persist
523
- * runs over the server's shared store.
524
- */
525
- export declare function saveDirtyDocuments(client: MonacoLspClient, session: DocumentPersister, uris?: readonly string[]): Promise<EditorDocument[]>;
526
460
  //# sourceMappingURL=monaco-lsp-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"monaco-lsp-client.d.ts","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monaco-lsp-client.d.ts","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AA0BlF,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACJ,KAAK,iBAAiB,EAGtB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EAcvB,KAAK,wBAAwB,EAkB7B,KAAK,kBAAkB,EACvB,eAAe,EAGf,KAAK,QAAQ,EACb,KAAK,aAAa,EACpB,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,sBAAsB;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC;IACxE,2HAA2H;IAC3H,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,kBAkCvC,CAAC;AAoaH,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAAE,CAAC;CAC/E;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GACrB;IAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAgB7D,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kHAAkH;IAClH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;CAC3C;AA8BD;;;;;;;;;GASG;AACH,qBAAa,eAAe;IA8BtB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB;IA7BrD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,wCAA+C;IACxE,8DAA8D;IAC9D,SAAS,CAAC,QAAQ,CAAC,aAAa,sBAA6B;IAC7D,mHAAmH;IACnH,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,CAAM;IAC5D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACjD,gHAAgH;IAChH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3C,0FAA0F;IAC1F,SAAS,CAAC,SAAS,SAAK;IACxB,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,CAAC,WAAW,sBAA6B;IAE3D,YACG,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,kBAAkB,EACb,OAAO,EAAE,sBAAsB,EAgBpD;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ3C;IAED;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAMvD;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAMlC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,wBAAwB,CAsE1E;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,mBAAmB,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,iBAAiB,GAAG,eAAe,CAAC,EAAE,GAClE,cAAc,CAmBhB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CA8ChE;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgB/B;IAED;;;;;OAKG;IACH,OAAO,IAAI,IAAI,CAUd;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CACT,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,OAAO,GAAE,MAAM,CAAC,MAAM,CAAC,oCAAyC,GAChE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAOrC;IAED;;;;;;;;;;;;;;;OAeG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAe3D;IAED;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAQzC;IAED,SAAS,CAAC,oBAAoB,IAAI,IAAI,CAIrC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,IAAI,cAAc,EAAE,CAEjC;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAQrD;IAED,6EAA6E;IAC7E,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAGnE;IAED;;;;;OAKG;IACH,UAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAM7D;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAEvD;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAIxC;IAED;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CA0BvE;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAmCnE;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI,CA0B9B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,oBAAoB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,KAAK,OAAO,GAAG,MAAM,CAAC,WAAW,CAYnG;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI,CAoBnC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,yBAAyB,IAAI,IAAI,CA6B1C;CACH"}
@@ -42,7 +42,6 @@ var __importStar = (this && this.__importStar) || (function () {
42
42
  })();
43
43
  Object.defineProperty(exports, "__esModule", { value: true });
44
44
  exports.MonacoLspClient = exports.MONACO_CLIENT_CAPABILITIES = exports.DEFAULT_MARKER_OWNER = void 0;
45
- exports.saveDirtyDocuments = saveDirtyDocuments;
46
45
  /**
47
46
  * The client half of the LSP head for a Monaco editor, over the connection the
48
47
  * page already holds for the head.
@@ -1284,54 +1283,4 @@ class MonacoLspClient {
1284
1283
  }
1285
1284
  }
1286
1285
  exports.MonacoLspClient = MonacoLspClient;
1287
- /**
1288
- * Persist the dirty documents of `client`, or those of them `uris` names, in
1289
- * the host's form or Monaco's, through `session`, one after another, and
1290
- * return what was saved.
1291
- *
1292
- * **A save persists; it does not author.** Every keystroke already reached the
1293
- * server as a `didChange`, and every server write reached the buffer as a
1294
- * `workspace/applyEdit`, so the server's text is the buffer and disk is the
1295
- * only thing behind. `persistDocument` at `'any'` writes that text without a
1296
- * model: a write of the buffer's text would be authored against no read, so
1297
- * no `ModelVersion` could gate it, and `'any'` on such a write could put an
1298
- * older buffer over a server write still in flight.
1299
- *
1300
- * **The open's text hash is the gate.** A `didChange` travels the LSP port and
1301
- * the persist the data port, and nothing orders one port's messages before
1302
- * the other's, so the open can answer with text a keystroke has not reached.
1303
- * The open answer's hash is `textHash` of the server's text; when it is not
1304
- * the buffer's, the save throws, naming the document, and the document stays
1305
- * dirty for the next save. A keystroke landing after the open persists as
1306
- * newer text, which leaves the buffer dirty the same way.
1307
- *
1308
- * Each document's text is read just before its own open, not once for the
1309
- * set: an earlier document's persist takes time, and a keystroke in a later
1310
- * one during it would otherwise fail that one's hash check for nothing. Each
1311
- * is marked saved at the version its text was read at, one at a time, so a
1312
- * failure part-way through leaves the documents it never reached dirty and a
1313
- * second call retries exactly those. Sequential, not concurrent: each persist
1314
- * runs over the server's shared store.
1315
- */
1316
- async function saveDirtyDocuments(client, session, uris) {
1317
- const wanted = uris?.map(uri => monaco.Uri.parse(uri).toString());
1318
- const dirty = client.dirtyDocuments().filter(document => wanted === undefined || wanted.includes(document.uri));
1319
- const saved = [];
1320
- for (const { uri } of dirty) {
1321
- // Read again now: an undo during an earlier save may have cleaned it.
1322
- const document = client.dirtyDocument(uri);
1323
- if (document === undefined) {
1324
- continue;
1325
- }
1326
- await session.withOpenDocument({ uri }, opened => {
1327
- if (opened.text?.hash !== (0, protocol_1.textHash)(document.text)) {
1328
- throw new Error(`The server's text for ${uri} differs from the buffer this save read; the document stays unsaved`);
1329
- }
1330
- return session.persistDocument({ uri, baseVersion: 'any' });
1331
- });
1332
- client.markSaved(document);
1333
- saved.push(document);
1334
- }
1335
- return saved;
1336
- }
1337
1286
  //# sourceMappingURL=monaco-lsp-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monaco-lsp-client.js","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monaco-lsp-client.js","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { type DataPort, type Logger, type TransferredMessagePort, type WorkerErrorMessage } from '@hydranium/protocol';
9
+ import { type DataPort, type Logger, type TransferredMessagePort, type WorkerErrorMessage, type WorkerReadyMessage } from '@hydranium/protocol';
10
10
  import { type Disposable, type Event, type MessageConnection } from 'vscode-jsonrpc/browser';
11
11
  /** The phase a report synthesised from the `Worker`'s `error` event carries. */
12
12
  export declare const WORKER_ERROR_EVENT_PHASE = "worker";
@@ -40,6 +40,12 @@ export interface WorkerHeads {
40
40
  * this connection's copy rejects them unless they go by method name.
41
41
  */
42
42
  readonly glsp: MessageConnection;
43
+ /**
44
+ * The worker's ready message, once every head is up, with the files the
45
+ * worker holds when its host named a root for them. Rejects when the heads
46
+ * end first; stays pending for a worker that posts no ready message.
47
+ */
48
+ readonly ready: Promise<WorkerReadyMessage>;
43
49
  /**
44
50
  * Every failure the worker reports on its global, and its `error` event
45
51
  * under {@link WORKER_ERROR_EVENT_PHASE}, before and after the heads have
@@ -1 +1 @@
1
- {"version":3,"file":"worker-heads.d.ts","sourceRoot":"","sources":["../src/worker-heads.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAOJ,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,sBAAsB,EAE3B,KAAK,kBAAkB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAoC,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG/H,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IAChC,mHAAmH;IACnH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ,GAAG,UAAU,CAAC;CACrG;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IACzB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClD;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,iHAAiH;IACjH,OAAO,IAAI,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,WAAW,CA8EhG"}
1
+ {"version":3,"file":"worker-heads.d.ts","sourceRoot":"","sources":["../src/worker-heads.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAQJ,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,sBAAsB,EAE3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAoC,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG/H,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IAChC,mHAAmH;IACnH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ,GAAG,UAAU,CAAC;CACrG;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IACzB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClD;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,iHAAiH;IACjH,OAAO,IAAI,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,WAAW,CAoFhG"}
@@ -49,6 +49,9 @@ function connectWorkerHeads(worker, options = {}) {
49
49
  const glspConnection = (0, browser_1.createMessageConnection)(glspTransport.reader, glspTransport.writer, options.logger?.with('GLSP head'));
50
50
  const errorEmitter = new browser_1.Emitter();
51
51
  const disposeEmitter = new browser_1.Emitter();
52
+ const ready = new protocol_1.Deferred();
53
+ // A page that never reads it must not see the rejection as unhandled.
54
+ ready.promise.catch(() => undefined);
52
55
  // Whether the worker is past its bootstrap: it says so with its ready
53
56
  // message, and a worker that posts none shows it by posting on a head's
54
57
  // port, which only a running head does. An `error` event before that is a
@@ -67,6 +70,7 @@ function connectWorkerHeads(worker, options = {}) {
67
70
  lspConnection.dispose();
68
71
  dataPort.dispose();
69
72
  glspConnection.dispose();
73
+ ready.reject(new Error('The worker heads ended before the worker was ready'));
70
74
  disposeEmitter.fire();
71
75
  disposeEmitter.dispose();
72
76
  };
@@ -86,6 +90,7 @@ function connectWorkerHeads(worker, options = {}) {
86
90
  worker.addEventListener('message', event => {
87
91
  if ((0, protocol_1.isWorkerReadyMessage)(event.data)) {
88
92
  workerUp = true;
93
+ ready.resolve(event.data);
89
94
  return;
90
95
  }
91
96
  if (!(0, protocol_1.isWorkerErrorMessage)(event.data)) {
@@ -100,6 +105,7 @@ function connectWorkerHeads(worker, options = {}) {
100
105
  lsp: lspConnection,
101
106
  data: dataPort,
102
107
  glsp: glspConnection,
108
+ ready: ready.promise,
103
109
  onWorkerError: errorEmitter.event,
104
110
  onDispose: disposeEmitter.event,
105
111
  dispose
@@ -1 +1 @@
1
- {"version":3,"file":"worker-heads.js","sourceRoot":"","sources":["../src/worker-heads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-heads.js","sourceRoot":"","sources":["../src/worker-heads.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/client-browser",
3
- "version": "1.0.0-next.307",
3
+ "version": "1.0.0-next.309",
4
4
  "description": "The page side of a hydranium host that runs its heads in a web worker: the worker bootstrap that hands each head its own MessagePort, the page's LSP handshake, a Monaco LSP client, the data head's port, and the rejection of what is pending when the worker dies.",
5
5
  "keywords": [
6
6
  "browser",
@@ -55,7 +55,7 @@
55
55
  "watch": "tsc -b -w --preserveWatchOutput"
56
56
  },
57
57
  "devDependencies": {
58
- "@hydranium/protocol": "1.0.0-next.307",
58
+ "@hydranium/protocol": "1.0.0-next.309",
59
59
  "@types/node": "^22.0.0",
60
60
  "monaco-editor-core": "0.56.0",
61
61
  "rimraf": "^5.0.0",
@@ -64,7 +64,7 @@
64
64
  "vscode-languageserver-protocol": "3.18.1"
65
65
  },
66
66
  "peerDependencies": {
67
- "@hydranium/protocol": "1.0.0-next.307",
67
+ "@hydranium/protocol": "1.0.0-next.309",
68
68
  "monaco-editor-core": ">=0.56.0 <1.0.0",
69
69
  "vscode-jsonrpc": "^9.0.0",
70
70
  "vscode-languageserver-protocol": "~3.18.1"
@@ -30,14 +30,7 @@
30
30
  * directly rather than counted here in parallel.
31
31
  */
32
32
 
33
- import {
34
- type BaseVersion,
35
- isResponseError,
36
- SaveTextDocumentRequest,
37
- sendByMethodName,
38
- type TextState,
39
- textHash
40
- } from '@hydranium/protocol';
33
+ import { isResponseError, SaveTextDocumentRequest, sendByMethodName } from '@hydranium/protocol';
41
34
  import * as monaco from 'monaco-editor-core';
42
35
  import { ConnectionErrors, type MessageConnection } from 'vscode-jsonrpc/browser';
43
36
  import {
@@ -1468,65 +1461,3 @@ export class MonacoLspClient {
1468
1461
  }
1469
1462
  }
1470
1463
  }
1471
-
1472
- /** The two calls of a data session {@link saveDirtyDocuments} makes, which `DataSession` satisfies. */
1473
- export interface DocumentPersister {
1474
- /** Open `args.uri`, run `fn` with the opened document, whose `text` is the server's state of it, and close it after. */
1475
- withOpenDocument<T>(args: { readonly uri: string }, fn: (document: { readonly text?: TextState }) => Promise<T>): Promise<T>;
1476
- persistDocument(args: { readonly uri: string; readonly baseVersion: BaseVersion }): Promise<unknown>;
1477
- }
1478
-
1479
- /**
1480
- * Persist the dirty documents of `client`, or those of them `uris` names, in
1481
- * the host's form or Monaco's, through `session`, one after another, and
1482
- * return what was saved.
1483
- *
1484
- * **A save persists; it does not author.** Every keystroke already reached the
1485
- * server as a `didChange`, and every server write reached the buffer as a
1486
- * `workspace/applyEdit`, so the server's text is the buffer and disk is the
1487
- * only thing behind. `persistDocument` at `'any'` writes that text without a
1488
- * model: a write of the buffer's text would be authored against no read, so
1489
- * no `ModelVersion` could gate it, and `'any'` on such a write could put an
1490
- * older buffer over a server write still in flight.
1491
- *
1492
- * **The open's text hash is the gate.** A `didChange` travels the LSP port and
1493
- * the persist the data port, and nothing orders one port's messages before
1494
- * the other's, so the open can answer with text a keystroke has not reached.
1495
- * The open answer's hash is `textHash` of the server's text; when it is not
1496
- * the buffer's, the save throws, naming the document, and the document stays
1497
- * dirty for the next save. A keystroke landing after the open persists as
1498
- * newer text, which leaves the buffer dirty the same way.
1499
- *
1500
- * Each document's text is read just before its own open, not once for the
1501
- * set: an earlier document's persist takes time, and a keystroke in a later
1502
- * one during it would otherwise fail that one's hash check for nothing. Each
1503
- * is marked saved at the version its text was read at, one at a time, so a
1504
- * failure part-way through leaves the documents it never reached dirty and a
1505
- * second call retries exactly those. Sequential, not concurrent: each persist
1506
- * runs over the server's shared store.
1507
- */
1508
- export async function saveDirtyDocuments(
1509
- client: MonacoLspClient,
1510
- session: DocumentPersister,
1511
- uris?: readonly string[]
1512
- ): Promise<EditorDocument[]> {
1513
- const wanted = uris?.map(uri => monaco.Uri.parse(uri).toString());
1514
- const dirty = client.dirtyDocuments().filter(document => wanted === undefined || wanted.includes(document.uri));
1515
- const saved: EditorDocument[] = [];
1516
- for (const { uri } of dirty) {
1517
- // Read again now: an undo during an earlier save may have cleaned it.
1518
- const document = client.dirtyDocument(uri);
1519
- if (document === undefined) {
1520
- continue;
1521
- }
1522
- await session.withOpenDocument({ uri }, opened => {
1523
- if (opened.text?.hash !== textHash(document.text)) {
1524
- throw new Error(`The server's text for ${uri} differs from the buffer this save read; the document stays unsaved`);
1525
- }
1526
- return session.persistDocument({ uri, baseVersion: 'any' });
1527
- });
1528
- client.markSaved(document);
1529
- saved.push(document);
1530
- }
1531
- return saved;
1532
- }
@@ -9,6 +9,7 @@
9
9
 
10
10
  import {
11
11
  createMessagePortTransport,
12
+ Deferred,
12
13
  isWorkerErrorMessage,
13
14
  isWorkerReadyMessage,
14
15
  WORKER_BOOTSTRAP_MESSAGE_TYPE,
@@ -18,7 +19,8 @@ import {
18
19
  type Logger,
19
20
  type TransferredMessagePort,
20
21
  type WorkerBootstrapMessage,
21
- type WorkerErrorMessage
22
+ type WorkerErrorMessage,
23
+ type WorkerReadyMessage
22
24
  } from '@hydranium/protocol';
23
25
  import { createMessageConnection, Emitter, type Disposable, type Event, type MessageConnection } from 'vscode-jsonrpc/browser';
24
26
  import { WorkerDataPort } from './worker-data-port';
@@ -57,6 +59,12 @@ export interface WorkerHeads {
57
59
  * this connection's copy rejects them unless they go by method name.
58
60
  */
59
61
  readonly glsp: MessageConnection;
62
+ /**
63
+ * The worker's ready message, once every head is up, with the files the
64
+ * worker holds when its host named a root for them. Rejects when the heads
65
+ * end first; stays pending for a worker that posts no ready message.
66
+ */
67
+ readonly ready: Promise<WorkerReadyMessage>;
60
68
  /**
61
69
  * Every failure the worker reports on its global, and its `error` event
62
70
  * under {@link WORKER_ERROR_EVENT_PHASE}, before and after the heads have
@@ -113,6 +121,9 @@ export function connectWorkerHeads(worker: Worker, options: WorkerHeadsOptions =
113
121
  const glspConnection = createMessageConnection(glspTransport.reader, glspTransport.writer, options.logger?.with('GLSP head'));
114
122
  const errorEmitter = new Emitter<WorkerErrorMessage>();
115
123
  const disposeEmitter = new Emitter<void>();
124
+ const ready = new Deferred<WorkerReadyMessage>();
125
+ // A page that never reads it must not see the rejection as unhandled.
126
+ ready.promise.catch(() => undefined);
116
127
 
117
128
  // Whether the worker is past its bootstrap: it says so with its ready
118
129
  // message, and a worker that posts none shows it by posting on a head's
@@ -133,6 +144,7 @@ export function connectWorkerHeads(worker: Worker, options: WorkerHeadsOptions =
133
144
  lspConnection.dispose();
134
145
  dataPort.dispose();
135
146
  glspConnection.dispose();
147
+ ready.reject(new Error('The worker heads ended before the worker was ready'));
136
148
  disposeEmitter.fire();
137
149
  disposeEmitter.dispose();
138
150
  };
@@ -153,6 +165,7 @@ export function connectWorkerHeads(worker: Worker, options: WorkerHeadsOptions =
153
165
  worker.addEventListener('message', event => {
154
166
  if (isWorkerReadyMessage(event.data)) {
155
167
  workerUp = true;
168
+ ready.resolve(event.data);
156
169
  return;
157
170
  }
158
171
  if (!isWorkerErrorMessage(event.data)) {
@@ -168,6 +181,7 @@ export function connectWorkerHeads(worker: Worker, options: WorkerHeadsOptions =
168
181
  lsp: lspConnection,
169
182
  data: dataPort,
170
183
  glsp: glspConnection,
184
+ ready: ready.promise,
171
185
  onWorkerError: errorEmitter.event,
172
186
  onDispose: disposeEmitter.event,
173
187
  dispose