@hydranium/data-client-theia 1.0.0-next.4 → 1.0.0-next.42

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
@@ -67,10 +67,10 @@ running hydranium data server to connect to. The declared peer dependencies are:
67
67
  | `@hydranium/client-theia` | `^1.0.0-next` |
68
68
  | `@hydranium/core` | `^1.0.0-next` |
69
69
  | `@hydranium/protocol` | `^1.0.0-next` |
70
- | `@theia/core` | `^1.71.0` |
71
- | `@theia/workspace` | `^1.71.0` |
70
+ | `@theia/core` | `^1.70.0` |
71
+ | `@theia/workspace` | `^1.70.0` |
72
72
  | `inversify` | `^6.0.0` |
73
- | `vscode-jsonrpc` | `^8.0.0 \|\| ^9.0.0` |
73
+ | `vscode-jsonrpc` | `9.0.1` |
74
74
 
75
75
  `@hydranium/core` is reached only from the `./node` tier (the host-diagnostics
76
76
  service), so a frontend-only consumer never loads it.
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import type { DataClientProtocol, Project, ProjectsChangedEvent, TransferDiagnostic, TransferDocumentSavedEvent, TransferDocumentUpdatedEvent, TransferElement } from '@hydranium/protocol';
9
+ import type { DataClientProtocol, Project, ProjectsChangedEvent, TransferDiagnostic, TransferDocumentDeletedEvent, TransferDocumentSavedEvent, TransferDocumentsBuiltEvent, TransferDocumentUpdatedEvent, TransferElement } from '@hydranium/protocol';
10
10
  import { Emitter, type Event } from '@theia/core';
11
11
  /**
12
12
  * Default {@link DataClientProtocol} implementation for a Theia frontend:
@@ -30,11 +30,19 @@ export declare class EmitterDataClient<TTransfer extends TransferElement, TDiagn
30
30
  protected readonly onDocumentSavedEmitter: Emitter<TransferDocumentSavedEvent<TTransfer, TDiagnostic>>;
31
31
  /** Fires for each inbound {@link onDocumentSaved} notification. */
32
32
  readonly onDidSaveDocument: Event<TransferDocumentSavedEvent<TTransfer, TDiagnostic>>;
33
+ protected readonly onDocumentDeletedEmitter: Emitter<TransferDocumentDeletedEvent>;
34
+ /** Fires for each inbound {@link onDocumentDeleted} notification. */
35
+ readonly onDidDeleteDocument: Event<TransferDocumentDeletedEvent>;
36
+ protected readonly onDocumentsBuiltEmitter: Emitter<TransferDocumentsBuiltEvent>;
37
+ /** Fires for each inbound {@link onDocumentsBuilt} notification. */
38
+ readonly onDidBuildDocuments: Event<TransferDocumentsBuiltEvent>;
33
39
  protected readonly onProjectsChangedEmitter: Emitter<ProjectsChangedEvent<TProject>>;
34
40
  /** Fires for each inbound {@link onProjectsChanged} notification. */
35
41
  readonly onDidChangeProjects: Event<ProjectsChangedEvent<TProject>>;
36
42
  onDocumentUpdated(event: TransferDocumentUpdatedEvent<TTransfer, TDiagnostic>): void;
37
43
  onDocumentSaved(event: TransferDocumentSavedEvent<TTransfer, TDiagnostic>): void;
44
+ onDocumentDeleted(event: TransferDocumentDeletedEvent): void;
45
+ onDocumentsBuilt(event: TransferDocumentsBuiltEvent): void;
38
46
  onProjectsChanged(event: ProjectsChangedEvent<TProject>): void;
39
47
  }
40
48
  //# sourceMappingURL=emitter-data-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emitter-data-client.d.ts","sourceRoot":"","sources":["../../src/common/emitter-data-client.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EACT,kBAAkB,EAClB,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,eAAe,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB,CAC3B,SAAS,SAAS,eAAe,EACjC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,QAAQ,SAAS,OAAO,GAAG,OAAO,CACnC,YAAW,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,wBAAwB,gEAAuE;IAClH,qEAAqE;IACrE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAuC;IAEhI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,8DAAqE;IAC9G,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAqC;IAE1H,SAAS,CAAC,QAAQ,CAAC,wBAAwB,0CAAiD;IAC5F,qEAAqE;IACrE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAuC;IAE1G,iBAAiB,CAAC,KAAK,EAAE,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI;IAIpF,eAAe,CAAC,KAAK,EAAE,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI;IAIhF,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;CAGhE"}
1
+ {"version":3,"file":"emitter-data-client.d.ts","sourceRoot":"","sources":["../../src/common/emitter-data-client.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EACT,kBAAkB,EAClB,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,eAAe,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB,CAC3B,SAAS,SAAS,eAAe,EACjC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,QAAQ,SAAS,OAAO,GAAG,OAAO,CACnC,YAAW,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,wBAAwB,gEAAuE;IAClH,qEAAqE;IACrE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAuC;IAEhI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,8DAAqE;IAC9G,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAqC;IAE1H,SAAS,CAAC,QAAQ,CAAC,wBAAwB,wCAA+C;IAC1F,qEAAqE;IACrE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,4BAA4B,CAAC,CAAuC;IAExG,SAAS,CAAC,QAAQ,CAAC,uBAAuB,uCAA8C;IACxF,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAsC;IAEtG,SAAS,CAAC,QAAQ,CAAC,wBAAwB,0CAAiD;IAC5F,qEAAqE;IACrE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAuC;IAE1G,iBAAiB,CAAC,KAAK,EAAE,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI;IAIpF,eAAe,CAAC,KAAK,EAAE,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI;IAIhF,iBAAiB,CAAC,KAAK,EAAE,4BAA4B,GAAG,IAAI;IAI5D,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI;IAI1D,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;CAGhE"}
@@ -32,6 +32,12 @@ class EmitterDataClient {
32
32
  onDocumentSavedEmitter = new core_1.Emitter();
33
33
  /** Fires for each inbound {@link onDocumentSaved} notification. */
34
34
  onDidSaveDocument = this.onDocumentSavedEmitter.event;
35
+ onDocumentDeletedEmitter = new core_1.Emitter();
36
+ /** Fires for each inbound {@link onDocumentDeleted} notification. */
37
+ onDidDeleteDocument = this.onDocumentDeletedEmitter.event;
38
+ onDocumentsBuiltEmitter = new core_1.Emitter();
39
+ /** Fires for each inbound {@link onDocumentsBuilt} notification. */
40
+ onDidBuildDocuments = this.onDocumentsBuiltEmitter.event;
35
41
  onProjectsChangedEmitter = new core_1.Emitter();
36
42
  /** Fires for each inbound {@link onProjectsChanged} notification. */
37
43
  onDidChangeProjects = this.onProjectsChangedEmitter.event;
@@ -41,6 +47,12 @@ class EmitterDataClient {
41
47
  onDocumentSaved(event) {
42
48
  this.onDocumentSavedEmitter.fire(event);
43
49
  }
50
+ onDocumentDeleted(event) {
51
+ this.onDocumentDeletedEmitter.fire(event);
52
+ }
53
+ onDocumentsBuilt(event) {
54
+ this.onDocumentsBuiltEmitter.fire(event);
55
+ }
44
56
  onProjectsChanged(event) {
45
57
  this.onProjectsChangedEmitter.fire(event);
46
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emitter-data-client.js","sourceRoot":"","sources":["../../src/common/emitter-data-client.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAWlF,sCAAkD;AAElD;;;;;;;;;;;;;;GAcG;AACH,MAAa,iBAAiB;IAKR,wBAAwB,GAAG,IAAI,cAAO,EAAwD,CAAC;IAClH,qEAAqE;IAC5D,mBAAmB,GAAgE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAE7G,sBAAsB,GAAG,IAAI,cAAO,EAAsD,CAAC;IAC9G,mEAAmE;IAC1D,iBAAiB,GAA8D,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;IAEvG,wBAAwB,GAAG,IAAI,cAAO,EAAkC,CAAC;IAC5F,qEAAqE;IAC5D,mBAAmB,GAA0C,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAE1G,iBAAiB,CAAC,KAA2D;QAC1E,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,KAAyD;QACtE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAAC,KAAqC;QACpD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACH;AA5BD,8CA4BC"}
1
+ {"version":3,"file":"emitter-data-client.js","sourceRoot":"","sources":["../../src/common/emitter-data-client.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAalF,sCAAkD;AAElD;;;;;;;;;;;;;;GAcG;AACH,MAAa,iBAAiB;IAKR,wBAAwB,GAAG,IAAI,cAAO,EAAwD,CAAC;IAClH,qEAAqE;IAC5D,mBAAmB,GAAgE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAE7G,sBAAsB,GAAG,IAAI,cAAO,EAAsD,CAAC;IAC9G,mEAAmE;IAC1D,iBAAiB,GAA8D,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;IAEvG,wBAAwB,GAAG,IAAI,cAAO,EAAgC,CAAC;IAC1F,qEAAqE;IAC5D,mBAAmB,GAAwC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAErF,uBAAuB,GAAG,IAAI,cAAO,EAA+B,CAAC;IACxF,oEAAoE;IAC3D,mBAAmB,GAAuC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;IAEnF,wBAAwB,GAAG,IAAI,cAAO,EAAkC,CAAC;IAC5F,qEAAqE;IAC5D,mBAAmB,GAA0C,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAE1G,iBAAiB,CAAC,KAA2D;QAC1E,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,KAAyD;QACtE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAAC,KAAmC;QAClD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,CAAC,KAAkC;QAChD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,KAAqC;QACpD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACH;AA5CD,8CA4CC"}
@@ -25,6 +25,16 @@ export interface DataServerConnectionHandlerOptions {
25
25
  * Defaults to the framework `DATA_SERVER_PORT_COMMAND`; override to match
26
26
  * an adopter's established id. */
27
27
  readonly portCommand?: string;
28
+ /**
29
+ * Product name for the connect-failure dialog this handler raises.
30
+ *
31
+ * It reaches the adopter's UI verbatim, so the framework default leaks a
32
+ * framework noun into a product that is not ours. Not a translation concern —
33
+ * routing it through a catalogue would ask an adopter to "translate" English
34
+ * into their own product name, and would make their branding
35
+ * locale-dependent.
36
+ */
37
+ readonly serverName?: string;
28
38
  readonly findPortTimeout?: number;
29
39
  readonly findPortAttempts?: number;
30
40
  readonly connectTimeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"data-server-connection-handler.d.ts","sourceRoot":"","sources":["../../src/node/data-server-connection-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,yCAAyC,EAAE,MAAM,kCAAkC,CAAC;AAE7F,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AAGrC;;;;kBAIkB;AAClB,MAAM,WAAW,kCAAkC;IAChD;;;;yDAIqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;uCAEmC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC;CAC1D;AAED;;;;;;;;;;;GAWG;AACH,qBACa,2BAA4B,SAAQ,yCAAyC;gBAC9D,OAAO,GAAE,kCAAuC;IAazE,SAAS,CAAC,yBAAyB,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU;CAG7F"}
1
+ {"version":3,"file":"data-server-connection-handler.d.ts","sourceRoot":"","sources":["../../src/node/data-server-connection-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,yCAAyC,EAAE,MAAM,kCAAkC,CAAC;AAE7F,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AAGrC;;;;kBAIkB;AAClB,MAAM,WAAW,kCAAkC;IAChD;;;;yDAIqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;uCAEmC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC;CAC1D;AAED;;;;;;;;;;;GAWG;AACH,qBACa,2BAA4B,SAAQ,yCAAyC;gBAC9D,OAAO,GAAE,kCAAuC;IAazE,SAAS,CAAC,yBAAyB,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU;CAG7F"}
@@ -43,7 +43,7 @@ let DataServerConnectionHandler = class DataServerConnectionHandler extends node
43
43
  path: options.servicePath ?? protocol_1.DATA_SERVER_PATH,
44
44
  portCommand: options.portCommand ?? protocol_1.DATA_SERVER_PORT_COMMAND,
45
45
  logComponent: 'DataServer',
46
- serverName: 'Model Server',
46
+ serverName: options.serverName ?? 'Model Server',
47
47
  findPortTimeout: options.findPortTimeout,
48
48
  findPortAttempts: options.findPortAttempts,
49
49
  connectTimeoutMs: options.connectTimeoutMs,
@@ -1 +1 @@
1
- {"version":3,"file":"data-server-connection-handler.js","sourceRoot":"","sources":["../../src/node/data-server-connection-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;AAElF,2DAA6F;AAC7F,kDAAiF;AAEjF,4DAAqE;AAErE,yEAAoE;AA+BpE;;;;;;;;;;;GAWG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,gDAAyC;IACvF,YAAyB,UAA8C,EAAE;QACtE,KAAK,CAAC;YACH,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,2BAAgB;YAC7C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,mCAAwB;YAC5D,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,cAAc;YAC1B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,eAAe,EAAE,OAAO,CAAC,eAAe;SAC1C,CAAC,CAAC;IACN,CAAC;IAES,yBAAyB,CAAC,aAAsB,EAAE,MAAkB;QAC3E,OAAO,IAAI,iDAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;CACH,CAAA;AAjBY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,sBAAU,GAAE;IAEG,WAAA,IAAA,qBAAS,GAAE,CAAA;;GADd,2BAA2B,CAiBvC"}
1
+ {"version":3,"file":"data-server-connection-handler.js","sourceRoot":"","sources":["../../src/node/data-server-connection-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;AAElF,2DAA6F;AAC7F,kDAAiF;AAEjF,4DAAqE;AAErE,yEAAoE;AAyCpE;;;;;;;;;;;GAWG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,gDAAyC;IACvF,YAAyB,UAA8C,EAAE;QACtE,KAAK,CAAC;YACH,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,2BAAgB;YAC7C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,mCAAwB;YAC5D,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,cAAc;YAChD,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,eAAe,EAAE,OAAO,CAAC,eAAe;SAC1C,CAAC,CAAC;IACN,CAAC;IAES,yBAAyB,CAAC,aAAsB,EAAE,MAAkB;QAC3E,OAAO,IAAI,iDAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;CACH,CAAA;AAjBY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,sBAAU,GAAE;IAEG,WAAA,IAAA,qBAAS,GAAE,CAAA;;GADd,2BAA2B,CAiBvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"socket-channel-forwarder.d.ts","sourceRoot":"","sources":["../../src/node/socket-channel-forwarder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AACrC,OAAO,EAA2B,KAAK,OAAO,EAA4C,MAAM,qBAAqB,CAAC;AAEtH;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,YAAW,UAAU;IAInD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM;IAJxC,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;gBAGpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,GAAG,CAAC,MAAM;IAkBxC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAKlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMhD,OAAO,IAAI,IAAI;CAGjB"}
1
+ {"version":3,"file":"socket-channel-forwarder.d.ts","sourceRoot":"","sources":["../../src/node/socket-channel-forwarder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AACrC,OAAO,EAA2B,KAAK,OAAO,EAA4C,MAAM,qBAAqB,CAAC;AAEtH;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,YAAW,UAAU;IAInD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM;IAJxC,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;gBAGpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,GAAG,CAAC,MAAM;IAuBxC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAKlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMhD,OAAO,IAAI,IAAI;CAGjB"}
@@ -34,8 +34,13 @@ class SocketChannelForwarder {
34
34
  const reader = new node_1.SocketMessageReader(socket);
35
35
  const writer = new node_1.SocketMessageWriter(socket);
36
36
  const connection = (0, node_1.createMessageConnection)(reader, writer);
37
+ // Nothing here destroys the socket, and adding it back would be dead
38
+ // code in both directions. `SocketMessageWriter.dispose()` destroys it
39
+ // itself, which covers the dispose path; and `connection.onClose` fires
40
+ // only from the reader's or writer's own close, which for a socket means
41
+ // the socket has already gone — so a destroy handler there is downstream
42
+ // of the effect it would be trying to cause.
37
43
  this.toDispose.pushAll([
38
- connection.onClose(() => socket.destroy()),
39
44
  reader.listen(message => this.writeToChannel(message)),
40
45
  channel.onMessage(provider => void writer.write(this.decodeChannelMessage(provider))),
41
46
  channel.onClose(() => connection.dispose()),
@@ -1 +1 @@
1
- {"version":3,"file":"socket-channel-forwarder.js","sourceRoot":"","sources":["../../src/node/socket-channel-forwarder.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAElF,sCAAmG;AAEnG,8CAAsH;AAEtH;;;;;;;;;;;;GAYG;AACH,MAAa,sBAAsB;IAIV;IACA;IAJH,SAAS,GAAG,IAAI,2BAAoB,EAAE,CAAC;IAE1D,YACsB,OAAgB,EAChB,MAAkB;QADlB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAY;QAErC,MAAM,MAAM,GAAG,IAAI,0BAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,0BAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAA,8BAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACpB,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzC,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;gBACpB,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC,CAAC;SACJ,CAAC,CAAC;IACN,CAAC;IAES,oBAAoB,CAAC,QAAyB;QACrD,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAY,CAAC;IAClE,CAAC;IAES,cAAc,CAAC,OAAgB;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAClD,WAAW,CAAC,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,WAAW,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACJ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;CACH;AArCD,wDAqCC"}
1
+ {"version":3,"file":"socket-channel-forwarder.js","sourceRoot":"","sources":["../../src/node/socket-channel-forwarder.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAElF,sCAAmG;AAEnG,8CAAsH;AAEtH;;;;;;;;;;;;GAYG;AACH,MAAa,sBAAsB;IAIV;IACA;IAJH,SAAS,GAAG,IAAI,2BAAoB,EAAE,CAAC;IAE1D,YACsB,OAAgB,EAChB,MAAkB;QADlB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAY;QAErC,MAAM,MAAM,GAAG,IAAI,0BAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,0BAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAA,8BAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,qEAAqE;QACrE,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,6CAA6C;QAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzC,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;gBACpB,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC,CAAC;SACJ,CAAC,CAAC;IACN,CAAC;IAES,oBAAoB,CAAC,QAAyB;QACrD,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAY,CAAC;IAClE,CAAC;IAES,cAAc,CAAC,OAAgB;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAClD,WAAW,CAAC,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,WAAW,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACJ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;CACH;AA1CD,wDA0CC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/data-client-theia",
3
- "version": "1.0.0-next.4",
3
+ "version": "1.0.0-next.42",
4
4
  "description": "Theia-coupled client primitives for the hydranium data-server protocol head; companion of @hydranium/data-server. Bridges framework typed errors (e.g. ConflictError) across Theia's RPC boundary so their code + data survive the wire.",
5
5
  "keywords": [
6
6
  "hydranium",
@@ -70,11 +70,11 @@
70
70
  "watch": "tsc -b -w --preserveWatchOutput"
71
71
  },
72
72
  "devDependencies": {
73
- "@hydranium/client-theia": "1.0.0-next.4",
74
- "@hydranium/core": "1.0.0-next.4",
75
- "@hydranium/protocol": "1.0.0-next.4",
76
- "@theia/core": "^1.71.0",
77
- "@theia/workspace": "^1.71.0",
73
+ "@hydranium/client-theia": "1.0.0-next.42",
74
+ "@hydranium/core": "1.0.0-next.42",
75
+ "@hydranium/protocol": "1.0.0-next.42",
76
+ "@theia/core": "^1.70.0",
77
+ "@theia/workspace": "^1.70.0",
78
78
  "@types/node": "^22.0.0",
79
79
  "inversify": "6.2.2",
80
80
  "reflect-metadata": "0.2.2",
@@ -83,13 +83,13 @@
83
83
  "vscode-jsonrpc": "9.0.1"
84
84
  },
85
85
  "peerDependencies": {
86
- "@hydranium/client-theia": "1.0.0-next.4",
87
- "@hydranium/core": "1.0.0-next.4",
88
- "@hydranium/protocol": "1.0.0-next.4",
89
- "@theia/core": "^1.71.0",
90
- "@theia/workspace": "^1.71.0",
86
+ "@hydranium/client-theia": "1.0.0-next.42",
87
+ "@hydranium/core": "1.0.0-next.42",
88
+ "@hydranium/protocol": "1.0.0-next.42",
89
+ "@theia/core": "^1.70.0",
90
+ "@theia/workspace": "^1.70.0",
91
91
  "inversify": "^6.0.0",
92
- "vscode-jsonrpc": "^8.0.0 || ^9.0.0"
92
+ "vscode-jsonrpc": "9.0.1"
93
93
  },
94
94
  "engines": {
95
95
  "node": ">=22.13"
@@ -97,5 +97,6 @@
97
97
  "publishConfig": {
98
98
  "access": "public"
99
99
  },
100
+ "//peerDependencies": "`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest.",
100
101
  "//prepack": "The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `prepack` runs only when a tarball is made (`npm pack`, `npm publish`) and never on install, so it cannot break the install it has no business touching. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. What it defends against: `files` lists `lib`, `lib` is gitignored, and a `files` entry matching nothing is skipped SILENTLY — so `npm publish` from an unbuilt tree emits a tarball of `src` and nothing else, with no error."
101
102
  }
@@ -12,7 +12,9 @@ import type {
12
12
  Project,
13
13
  ProjectsChangedEvent,
14
14
  TransferDiagnostic,
15
+ TransferDocumentDeletedEvent,
15
16
  TransferDocumentSavedEvent,
17
+ TransferDocumentsBuiltEvent,
16
18
  TransferDocumentUpdatedEvent,
17
19
  TransferElement
18
20
  } from '@hydranium/protocol';
@@ -46,6 +48,14 @@ export class EmitterDataClient<
46
48
  /** Fires for each inbound {@link onDocumentSaved} notification. */
47
49
  readonly onDidSaveDocument: Event<TransferDocumentSavedEvent<TTransfer, TDiagnostic>> = this.onDocumentSavedEmitter.event;
48
50
 
51
+ protected readonly onDocumentDeletedEmitter = new Emitter<TransferDocumentDeletedEvent>();
52
+ /** Fires for each inbound {@link onDocumentDeleted} notification. */
53
+ readonly onDidDeleteDocument: Event<TransferDocumentDeletedEvent> = this.onDocumentDeletedEmitter.event;
54
+
55
+ protected readonly onDocumentsBuiltEmitter = new Emitter<TransferDocumentsBuiltEvent>();
56
+ /** Fires for each inbound {@link onDocumentsBuilt} notification. */
57
+ readonly onDidBuildDocuments: Event<TransferDocumentsBuiltEvent> = this.onDocumentsBuiltEmitter.event;
58
+
49
59
  protected readonly onProjectsChangedEmitter = new Emitter<ProjectsChangedEvent<TProject>>();
50
60
  /** Fires for each inbound {@link onProjectsChanged} notification. */
51
61
  readonly onDidChangeProjects: Event<ProjectsChangedEvent<TProject>> = this.onProjectsChangedEmitter.event;
@@ -58,6 +68,14 @@ export class EmitterDataClient<
58
68
  this.onDocumentSavedEmitter.fire(event);
59
69
  }
60
70
 
71
+ onDocumentDeleted(event: TransferDocumentDeletedEvent): void {
72
+ this.onDocumentDeletedEmitter.fire(event);
73
+ }
74
+
75
+ onDocumentsBuilt(event: TransferDocumentsBuiltEvent): void {
76
+ this.onDocumentsBuiltEmitter.fire(event);
77
+ }
78
+
61
79
  onProjectsChanged(event: ProjectsChangedEvent<TProject>): void {
62
80
  this.onProjectsChangedEmitter.fire(event);
63
81
  }
@@ -30,6 +30,16 @@ export interface DataServerConnectionHandlerOptions {
30
30
  * Defaults to the framework `DATA_SERVER_PORT_COMMAND`; override to match
31
31
  * an adopter's established id. */
32
32
  readonly portCommand?: string;
33
+ /**
34
+ * Product name for the connect-failure dialog this handler raises.
35
+ *
36
+ * It reaches the adopter's UI verbatim, so the framework default leaks a
37
+ * framework noun into a product that is not ours. Not a translation concern —
38
+ * routing it through a catalogue would ask an adopter to "translate" English
39
+ * into their own product name, and would make their branding
40
+ * locale-dependent.
41
+ */
42
+ readonly serverName?: string;
33
43
  readonly findPortTimeout?: number;
34
44
  readonly findPortAttempts?: number;
35
45
  readonly connectTimeoutMs?: number;
@@ -62,7 +72,7 @@ export class DataServerConnectionHandler extends AbstractSocketForwardingConnect
62
72
  path: options.servicePath ?? DATA_SERVER_PATH,
63
73
  portCommand: options.portCommand ?? DATA_SERVER_PORT_COMMAND,
64
74
  logComponent: 'DataServer',
65
- serverName: 'Model Server',
75
+ serverName: options.serverName ?? 'Model Server',
66
76
  findPortTimeout: options.findPortTimeout,
67
77
  findPortAttempts: options.findPortAttempts,
68
78
  connectTimeoutMs: options.connectTimeoutMs,
@@ -34,8 +34,13 @@ export class SocketChannelForwarder implements Disposable {
34
34
  const reader = new SocketMessageReader(socket);
35
35
  const writer = new SocketMessageWriter(socket);
36
36
  const connection = createMessageConnection(reader, writer);
37
+ // Nothing here destroys the socket, and adding it back would be dead
38
+ // code in both directions. `SocketMessageWriter.dispose()` destroys it
39
+ // itself, which covers the dispose path; and `connection.onClose` fires
40
+ // only from the reader's or writer's own close, which for a socket means
41
+ // the socket has already gone — so a destroy handler there is downstream
42
+ // of the effect it would be trying to cause.
37
43
  this.toDispose.pushAll([
38
- connection.onClose(() => socket.destroy()),
39
44
  reader.listen(message => this.writeToChannel(message)),
40
45
  channel.onMessage(provider => void writer.write(this.decodeChannelMessage(provider))),
41
46
  channel.onClose(() => connection.dispose()),