@hydranium/core 1.0.0-next.79 → 1.0.0-next.85

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 (57) hide show
  1. package/lib/documents/ast-document-manager.d.ts +19 -13
  2. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  3. package/lib/documents/ast-document-manager.js +7 -1
  4. package/lib/documents/ast-document-manager.js.map +1 -1
  5. package/lib/documents/hydranium-text-documents.d.ts +4 -4
  6. package/lib/documents/hydranium-text-documents.js +6 -6
  7. package/lib/documents/hydranium-text-documents.js.map +1 -1
  8. package/lib/langium/integrity/integrity-service.js +1 -1
  9. package/lib/langium/integrity/integrity-service.js.map +1 -1
  10. package/lib/langium/model-service/model-service.d.ts +58 -15
  11. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  12. package/lib/langium/model-service/model-service.js +65 -19
  13. package/lib/langium/model-service/model-service.js.map +1 -1
  14. package/lib/langium/module.d.ts +2 -2
  15. package/lib/langium/module.d.ts.map +1 -1
  16. package/lib/langium/naming/name-provider.d.ts +15 -4
  17. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  18. package/lib/langium/naming/name-provider.js +2 -1
  19. package/lib/langium/naming/name-provider.js.map +1 -1
  20. package/lib/langium/transfer/transfer-encoder.d.ts +9 -9
  21. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  22. package/lib/langium/transfer/transfer-encoder.js +5 -10
  23. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  24. package/lib/langium/validation/document-validator.d.ts +12 -6
  25. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  26. package/lib/langium/validation/document-validator.js +1 -1
  27. package/lib/langium/validation/document-validator.js.map +1 -1
  28. package/lib/testing/fake-document.d.ts +2 -1
  29. package/lib/testing/fake-document.d.ts.map +1 -1
  30. package/lib/testing/fake-document.js.map +1 -1
  31. package/lib/testing/make-test-services.d.ts +16 -7
  32. package/lib/testing/make-test-services.d.ts.map +1 -1
  33. package/lib/testing/make-test-services.js.map +1 -1
  34. package/lib/testing/stub-ast-document-manager.d.ts +3 -2
  35. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  36. package/lib/testing/stub-ast-document-manager.js +2 -1
  37. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  38. package/lib/testing/stub-langium-documents.d.ts +3 -2
  39. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  40. package/lib/testing/stub-langium-documents.js.map +1 -1
  41. package/lib/testing/stub-model-service.d.ts +4 -3
  42. package/lib/testing/stub-model-service.d.ts.map +1 -1
  43. package/lib/testing/stub-model-service.js.map +1 -1
  44. package/package.json +5 -5
  45. package/src/documents/ast-document-manager.ts +32 -15
  46. package/src/documents/hydranium-text-documents.ts +6 -6
  47. package/src/langium/integrity/integrity-service.ts +1 -1
  48. package/src/langium/model-service/model-service.ts +81 -23
  49. package/src/langium/module.ts +2 -2
  50. package/src/langium/naming/name-provider.ts +17 -5
  51. package/src/langium/transfer/transfer-encoder.ts +14 -14
  52. package/src/langium/validation/document-validator.ts +12 -6
  53. package/src/testing/fake-document.ts +2 -1
  54. package/src/testing/make-test-services.ts +30 -17
  55. package/src/testing/stub-ast-document-manager.ts +5 -4
  56. package/src/testing/stub-langium-documents.ts +3 -2
  57. package/src/testing/stub-model-service.ts +5 -4
@@ -9,8 +9,9 @@
9
9
 
10
10
  import { type AstNode, type LangiumDocument, UriUtils } from '@hydranium/langium';
11
11
  import { Disposable } from 'vscode-languageserver';
12
+ import { type AstDiagnostic } from '../langium/validation/document-validator.js';
12
13
  import {
13
- type AstDocument,
14
+ AstDocument,
14
15
  type AstDocumentManager,
15
16
  type AstDocumentUpdatedEvent,
16
17
  type WritableFileSystemProvider
@@ -44,7 +45,7 @@ import type { StubLangiumDocuments } from './stub-langium-documents.js';
44
45
  * are still picked so signature drift on them produces a compile
45
46
  * error rather than silent divergence.
46
47
  */
47
- export interface StubAstDocumentManager<TAst extends AstNode, TDiagnostic = unknown> extends Pick<
48
+ export interface StubAstDocumentManager<TAst extends AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic> extends Pick<
48
49
  AstDocumentManager<TAst, TDiagnostic>,
49
50
  | 'open'
50
51
  | 'close'
@@ -102,7 +103,7 @@ export interface StubAstDocumentManager<TAst extends AstNode, TDiagnostic = unkn
102
103
  updateSubscriptions(uri?: string): number;
103
104
  }
104
105
 
105
- export function makeStubAstDocumentManager<TAst extends AstNode, TDiagnostic = unknown>(
106
+ export function makeStubAstDocumentManager<TAst extends AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic>(
106
107
  textDocuments: StubHydraniumTextDocuments,
107
108
  fileSystem: Pick<WritableFileSystemProvider, 'writeFile'>,
108
109
  documents?: StubLangiumDocuments<TAst, TDiagnostic>
@@ -191,7 +192,7 @@ export function makeStubAstDocumentManager<TAst extends AstNode, TDiagnostic = u
191
192
  return;
192
193
  }
193
194
  listener({
194
- document: { uri, version: textDocuments.version(uri), root: undefined as unknown as TAst, diagnostics: [] as TDiagnostic[] },
195
+ document: AstDocument.create<TAst, TDiagnostic>(uri, textDocuments.version(uri), undefined as unknown as TAst),
195
196
  sourceClientId: event.clientId
196
197
  });
197
198
  });
@@ -9,6 +9,7 @@
9
9
 
10
10
  import { type AstNode, type LangiumDocument, type LangiumDocuments, stream, type URI } from '@hydranium/langium';
11
11
  import { makeFakeAstNode, makeFakeDocument, type FakeDocumentOptions } from './fake-document.js';
12
+ import { type AstDiagnostic } from '../langium/validation/document-validator.js';
12
13
 
13
14
  /**
14
15
  * Map-backed stub for Langium's {@link LangiumDocuments} registry. Implements
@@ -31,7 +32,7 @@ import { makeFakeAstNode, makeFakeDocument, type FakeDocumentOptions } from './f
31
32
  * production code reads the slot value through the `LangiumDocuments`
32
33
  * interface and a narrowing cast bridges the stub at the binding site.
33
34
  */
34
- export interface StubLangiumDocuments<TAst extends AstNode = AstNode, TDiagnostic = unknown> extends Pick<
35
+ export interface StubLangiumDocuments<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic> extends Pick<
35
36
  LangiumDocuments,
36
37
  'getDocument' | 'hasDocument' | 'getOrCreateDocument' | 'all'
37
38
  > {
@@ -51,7 +52,7 @@ export interface StubLangiumDocuments<TAst extends AstNode = AstNode, TDiagnosti
51
52
  * Build a {@link StubLangiumDocuments}. Seed entries via the optional
52
53
  * `seeds` parameter so simple tests don't need a separate `set` call.
53
54
  */
54
- export function makeStubLangiumDocuments<TAst extends AstNode = AstNode, TDiagnostic = unknown>(
55
+ export function makeStubLangiumDocuments<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic>(
55
56
  seeds: ReadonlyArray<{ uri: string | URI; root: TAst; options?: FakeDocumentOptions<TAst, TDiagnostic> }> = []
56
57
  ): StubLangiumDocuments<TAst, TDiagnostic> {
57
58
  const docs = new Map<string, LangiumDocument<TAst>>();
@@ -7,7 +7,8 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
 
10
- import type { TransferDiagnostic, TransferElement } from '@hydranium/protocol';
10
+ import type { TransferElement } from '@hydranium/protocol';
11
+ import type { AstDiagnostic } from '../langium/validation/document-validator.js';
11
12
  import type { AstNode } from '@hydranium/langium';
12
13
  import { DefaultModelService, type ModelService, type ModelServiceOptions } from '../langium/model-service/model-service.js';
13
14
  import type { ServerSharedServices } from '../langium/module.js';
@@ -21,7 +22,7 @@ import type { ServerSharedServices } from '../langium/module.js';
21
22
  */
22
23
  class StubModelServiceImpl<
23
24
  TAst extends AstNode,
24
- TDiagnostic extends TransferDiagnostic = TransferDiagnostic,
25
+ TDiagnostic extends AstDiagnostic = AstDiagnostic,
25
26
  TTransfer extends TransferElement = TransferElement
26
27
  > extends DefaultModelService<TAst, TDiagnostic, TTransfer> {
27
28
  constructor(
@@ -40,7 +41,7 @@ class StubModelServiceImpl<
40
41
  /** The type of the model-service test double produced by {@link makeStubModelService}. */
41
42
  export type StubModelService<
42
43
  TAst extends AstNode,
43
- TDiagnostic extends TransferDiagnostic = TransferDiagnostic,
44
+ TDiagnostic extends AstDiagnostic = AstDiagnostic,
44
45
  TTransfer extends TransferElement = TransferElement
45
46
  > = ModelService<TAst, TDiagnostic, TTransfer>;
46
47
 
@@ -61,7 +62,7 @@ export type StubModelService<
61
62
  */
62
63
  export function makeStubModelService<
63
64
  TAst extends AstNode,
64
- TDiagnostic extends TransferDiagnostic = TransferDiagnostic,
65
+ TDiagnostic extends AstDiagnostic = AstDiagnostic,
65
66
  TTransfer extends TransferElement = TransferElement
66
67
  >(
67
68
  services: ServerSharedServices,