@oml/server 0.14.0 → 0.14.2

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 (48) hide show
  1. package/out/auth/feature-gate.d.ts +23 -0
  2. package/out/auth/feature-gate.js +172 -0
  3. package/out/auth/feature-gate.js.map +1 -0
  4. package/out/auth/feature-policy.d.ts +13 -0
  5. package/out/auth/feature-policy.js +38 -0
  6. package/out/auth/feature-policy.js.map +1 -0
  7. package/out/cli.d.ts +1 -0
  8. package/{src/cli.ts → out/cli.js} +45 -55
  9. package/out/cli.js.map +1 -0
  10. package/out/index.d.ts +7 -0
  11. package/{src/index.ts → out/index.js} +1 -1
  12. package/out/index.js.map +1 -0
  13. package/out/lsp/diagram-server.d.ts +6 -0
  14. package/out/lsp/diagram-server.js +36 -0
  15. package/out/lsp/diagram-server.js.map +1 -0
  16. package/out/lsp/language-server.d.ts +15 -0
  17. package/{src/lsp/language-server.ts → out/lsp/language-server.js} +95 -120
  18. package/out/lsp/language-server.js.map +1 -0
  19. package/out/lsp/protocol/browser-fs-protocol.d.ts +14 -0
  20. package/{src/lsp/protocol/browser-fs-protocol.ts → out/lsp/protocol/browser-fs-protocol.js} +2 -14
  21. package/out/lsp/protocol/browser-fs-protocol.js.map +1 -0
  22. package/{src/lsp/protocol/reasoner-protocol.ts → out/lsp/protocol/reasoner-protocol.d.ts} +10 -24
  23. package/out/lsp/protocol/reasoner-protocol.js +12 -0
  24. package/out/lsp/protocol/reasoner-protocol.js.map +1 -0
  25. package/out/lsp/providers/browser-fs-provider.d.ts +21 -0
  26. package/{src/lsp/providers/browser-fs-provider.ts → out/lsp/providers/browser-fs-provider.js} +22 -34
  27. package/out/lsp/providers/browser-fs-provider.js.map +1 -0
  28. package/out/lsp/providers/hybrid-fs-provider.d.ts +28 -0
  29. package/{src/lsp/providers/hybrid-fs-provider.ts → out/lsp/providers/hybrid-fs-provider.js} +22 -44
  30. package/out/lsp/providers/hybrid-fs-provider.js.map +1 -0
  31. package/out/rest/export.d.ts +16 -0
  32. package/{src/rest/export.ts → out/rest/export.js} +14 -35
  33. package/out/rest/export.js.map +1 -0
  34. package/out/rest/routes.d.ts +47 -0
  35. package/{src/rest/routes.ts → out/rest/routes.js} +40 -35
  36. package/out/rest/routes.js.map +1 -0
  37. package/out/rest/server.d.ts +17 -0
  38. package/{src/rest/server.ts → out/rest/server.js} +232 -485
  39. package/out/rest/server.js.map +1 -0
  40. package/out/rest/template.d.ts +18 -0
  41. package/{src/rest/template.ts → out/rest/template.js} +21 -80
  42. package/out/rest/template.js.map +1 -0
  43. package/out/rest/validation.d.ts +49 -0
  44. package/{src/rest/validation.ts → out/rest/validation.js} +59 -163
  45. package/out/rest/validation.js.map +1 -0
  46. package/package.json +9 -4
  47. package/src/lsp/diagram-server.ts +0 -48
  48. package/tsconfig.json +0 -22
@@ -1,100 +1,15 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
-
3
2
  import * as fs from 'node:fs/promises';
4
3
  import * as path from 'node:path';
5
4
  import { pathToFileURL } from 'node:url';
6
5
  import { createHash } from 'node:crypto';
7
- import { checkConsistency, type ConsistencyResult } from '@oml/reasoner';
6
+ import { checkConsistency } from '@oml/reasoner';
8
7
  import { extractLeadingFrontMatter, MarkdownHandlerRegistry, MarkdownPreviewRuntime } from '@oml/markdown';
9
8
  import { createDefaultShaclService } from '@oml/owl';
10
9
  import { getOntologyModelIndex } from '@oml/language';
11
- import {
12
- buildTemplateCatalog,
13
- expandTemplateComposeBlocks,
14
- findFilesByExtension,
15
- frontMatterString,
16
- isTemplateMarkdownFile,
17
- normalizeContextOntologyIri,
18
- } from './template.js';
19
-
20
- export interface RestLintProblem {
21
- uri: string;
22
- line: number;
23
- column: number;
24
- kind: 'error' | 'warning' | 'information' | 'hint' | 'unknown';
25
- severity: number;
26
- message: string;
27
- source?: string;
28
- code?: string | number;
29
- }
30
-
31
- export interface RestLintResult {
32
- success: boolean;
33
- filesChecked: number;
34
- errors: number;
35
- warnings: number;
36
- elapsedMs: number;
37
- totalProblems: number;
38
- returnedProblems: number;
39
- truncated: boolean;
40
- limit?: number;
41
- problems: RestLintProblem[];
42
- problemsByModelUri: Array<{
43
- modelUri: string;
44
- errors: number;
45
- warnings: number;
46
- problems: RestLintProblem[];
47
- }>;
48
- }
49
-
50
- type RdfFormat = 'ttl' | 'trig' | 'nt' | 'nq' | 'n3';
51
-
52
- type WorkspaceOwlEntry = { modelUri: string; ontologyIri: string; owlPath: string };
53
-
54
- type ValidateBlockCachedResult = {
55
- errors: number;
56
- warnings: number;
57
- detail: Record<string, unknown>;
58
- };
59
-
60
- type ValidateBlockCacheEntry = {
61
- fingerprint: string;
62
- result: ValidateBlockCachedResult;
63
- };
64
-
65
- type ReasonModelCachedResult = {
66
- consistent: boolean;
67
- ontologyIri: string;
68
- result?: ConsistencyResult;
69
- error?: string;
70
- };
71
-
72
- type ReasonModelCacheEntry = {
73
- fingerprint: string;
74
- result: ReasonModelCachedResult;
75
- };
76
-
77
- type ValidationRuntimeCache = {
78
- validateBlockCache: Map<string, ValidateBlockCacheEntry>;
79
- reasonModelCache: Map<string, ReasonModelCacheEntry>;
80
- };
81
-
82
- const validationRuntimeCaches = new WeakMap<object, ValidationRuntimeCache>();
83
-
84
- export type RestValidationContext = {
85
- workspaceRoot: string;
86
- runtime: { shared: any; Oml: any };
87
- ensureInitialized: () => Promise<void>;
88
- ensureWorkspaceCurrent: () => Promise<void>;
89
- getWorkspaceOmlDocuments: () => any[];
90
- writeWorkspaceAssertedOwl: (
91
- outputDir: string,
92
- format: RdfFormat,
93
- pretty: boolean,
94
- ) => Promise<WorkspaceOwlEntry[]>;
95
- };
96
-
97
- function normalizeRdfFormat(value: string | undefined): RdfFormat {
10
+ import { buildTemplateCatalog, expandTemplateComposeBlocks, findFilesByExtension, frontMatterString, isTemplateMarkdownFile, normalizeContextOntologyIri, } from './template.js';
11
+ const validationRuntimeCaches = new WeakMap();
12
+ function normalizeRdfFormat(value) {
98
13
  if (!value) {
99
14
  return 'ttl';
100
15
  }
@@ -104,35 +19,35 @@ function normalizeRdfFormat(value: string | undefined): RdfFormat {
104
19
  }
105
20
  return 'ttl';
106
21
  }
107
-
108
- function diagnosticKindFromSeverity(severity: unknown): RestLintProblem['kind'] {
109
- if (severity === 1) return 'error';
110
- if (severity === 2) return 'warning';
111
- if (severity === 3) return 'information';
112
- if (severity === 4) return 'hint';
22
+ function diagnosticKindFromSeverity(severity) {
23
+ if (severity === 1)
24
+ return 'error';
25
+ if (severity === 2)
26
+ return 'warning';
27
+ if (severity === 3)
28
+ return 'information';
29
+ if (severity === 4)
30
+ return 'hint';
113
31
  return 'unknown';
114
32
  }
115
-
116
- function hashText(value: string): string {
33
+ function hashText(value) {
117
34
  return createHash('sha256').update(value, 'utf-8').digest('hex');
118
35
  }
119
-
120
- function getValidationRuntimeCache(client: RestValidationContext): ValidationRuntimeCache {
121
- const key = client.runtime.shared as object;
36
+ function getValidationRuntimeCache(client) {
37
+ const key = client.runtime.shared;
122
38
  const existing = validationRuntimeCaches.get(key);
123
39
  if (existing) {
124
40
  return existing;
125
41
  }
126
- const created: ValidationRuntimeCache = {
42
+ const created = {
127
43
  validateBlockCache: new Map(),
128
44
  reasonModelCache: new Map(),
129
45
  };
130
46
  validationRuntimeCaches.set(key, created);
131
47
  return created;
132
48
  }
133
-
134
- function getModelContentFingerprints(client: RestValidationContext): Map<string, string> {
135
- const fingerprints = new Map<string, string>();
49
+ function getModelContentFingerprints(client) {
50
+ const fingerprints = new Map();
136
51
  const docs = client.getWorkspaceOmlDocuments();
137
52
  for (const doc of docs) {
138
53
  const modelUri = String(doc?.uri ?? '').trim();
@@ -146,8 +61,7 @@ function getModelContentFingerprints(client: RestValidationContext): Map<string,
146
61
  }
147
62
  return fingerprints;
148
63
  }
149
-
150
- export async function lintWorkspace(client: RestValidationContext, params: Record<string, unknown> = {}): Promise<RestLintResult> {
64
+ export async function lintWorkspace(client, params = {}) {
151
65
  const startedAt = Date.now();
152
66
  await client.ensureInitialized();
153
67
  await client.ensureWorkspaceCurrent();
@@ -156,7 +70,7 @@ export async function lintWorkspace(client: RestValidationContext, params: Recor
156
70
  ? Math.floor(rawLimit)
157
71
  : undefined;
158
72
  const docs = client.getWorkspaceOmlDocuments();
159
- const allProblems: RestLintProblem[] = [];
73
+ const allProblems = [];
160
74
  let errors = 0;
161
75
  let warnings = 0;
162
76
  for (const doc of docs) {
@@ -167,7 +81,8 @@ export async function lintWorkspace(client: RestValidationContext, params: Recor
167
81
  const kind = diagnosticKindFromSeverity(severity);
168
82
  if (kind === 'error') {
169
83
  errors += 1;
170
- } else if (kind === 'warning') {
84
+ }
85
+ else if (kind === 'warning') {
171
86
  warnings += 1;
172
87
  }
173
88
  allProblems.push({
@@ -184,14 +99,12 @@ export async function lintWorkspace(client: RestValidationContext, params: Recor
184
99
  });
185
100
  }
186
101
  }
187
- allProblems.sort((left, right) =>
188
- left.uri.localeCompare(right.uri)
102
+ allProblems.sort((left, right) => left.uri.localeCompare(right.uri)
189
103
  || left.message.localeCompare(right.message)
190
104
  || left.line - right.line
191
- || left.column - right.column
192
- );
105
+ || left.column - right.column);
193
106
  const limitedProblems = limit === undefined ? allProblems : allProblems.slice(0, limit);
194
- const grouped = new Map<string, RestLintProblem[]>();
107
+ const grouped = new Map();
195
108
  for (const problem of limitedProblems) {
196
109
  const existing = grouped.get(problem.uri) ?? [];
197
110
  existing.push(problem);
@@ -199,15 +112,12 @@ export async function lintWorkspace(client: RestValidationContext, params: Recor
199
112
  }
200
113
  const problemsByModelUri = Array.from(grouped.entries())
201
114
  .map(([modelUri, problems]) => ({
202
- modelUri,
203
- errors: problems.filter((problem) => problem.kind === 'error').length,
204
- warnings: problems.filter((problem) => problem.kind === 'warning').length,
205
- problems: problems.sort((left, right) =>
206
- left.message.localeCompare(right.message) || left.line - right.line || left.column - right.column
207
- ),
208
- }))
115
+ modelUri,
116
+ errors: problems.filter((problem) => problem.kind === 'error').length,
117
+ warnings: problems.filter((problem) => problem.kind === 'warning').length,
118
+ problems: problems.sort((left, right) => left.message.localeCompare(right.message) || left.line - right.line || left.column - right.column),
119
+ }))
209
120
  .sort((left, right) => left.modelUri.localeCompare(right.modelUri));
210
-
211
121
  return {
212
122
  success: errors === 0 && warnings === 0,
213
123
  filesChecked: docs.length,
@@ -222,12 +132,11 @@ export async function lintWorkspace(client: RestValidationContext, params: Recor
222
132
  problemsByModelUri,
223
133
  };
224
134
  }
225
-
226
- export async function reasonWorkspace(client: RestValidationContext, params: Record<string, unknown>): Promise<Record<string, unknown>> {
135
+ export async function reasonWorkspace(client, params) {
227
136
  const startedAt = Date.now();
228
137
  await client.ensureInitialized();
229
138
  await client.ensureWorkspaceCurrent();
230
- let validateResult: Record<string, unknown> | undefined;
139
+ let validateResult;
231
140
  if (params.only !== true) {
232
141
  validateResult = await validateWorkspace(client, {
233
142
  only: false,
@@ -240,9 +149,9 @@ export async function reasonWorkspace(client: RestValidationContext, params: Rec
240
149
  elapsedMs: Math.max(0, Date.now() - startedAt),
241
150
  inconsistent: [],
242
151
  failed: [{
243
- modelUri: '',
244
- error: String(validateResult.error ?? 'validate failed'),
245
- }],
152
+ modelUri: '',
153
+ error: String(validateResult.error ?? 'validate failed'),
154
+ }],
246
155
  validate: validateResult,
247
156
  };
248
157
  }
@@ -254,26 +163,18 @@ export async function reasonWorkspace(client: RestValidationContext, params: Rec
254
163
  await fs.rm(tempRoot, { recursive: true, force: true });
255
164
  return { success: true, ontologiesReasoned: 0, inconsistent: [], failed: [] };
256
165
  }
257
-
258
166
  const explanation = params.explanation !== false;
259
167
  const uniqueNamesAssumption = params.uniqueNamesAssumption === true;
260
168
  const profile = params.profile === true;
261
169
  const timeout = typeof params.timeout === 'number' && Number.isFinite(params.timeout) && params.timeout > 0
262
170
  ? Math.floor(params.timeout)
263
- : 120_000;
264
- const inconsistent: Array<{ modelUri: string; validationWarnings: string[] }> = [];
265
- const failed: Array<{ modelUri: string; error: string }> = [];
266
- const results: Array<{
267
- modelUri: string;
268
- ontologyIri: string;
269
- consistent: boolean;
270
- result?: ConsistencyResult;
271
- error?: string;
272
- }> = [];
171
+ : 120000;
172
+ const inconsistent = [];
173
+ const failed = [];
174
+ const results = [];
273
175
  const runtimeCache = getValidationRuntimeCache(client);
274
176
  const modelFingerprints = getModelContentFingerprints(client);
275
- const seenReasonKeys = new Set<string>();
276
-
177
+ const seenReasonKeys = new Set();
277
178
  const reasonStartedAt = Date.now();
278
179
  for (const entry of entries) {
279
180
  const modelFingerprint = modelFingerprints.get(entry.modelUri) ?? '';
@@ -321,7 +222,7 @@ export async function reasonWorkspace(client: RestValidationContext, params: Rec
321
222
  timeout,
322
223
  });
323
224
  const warnings = Array.isArray(result.reports) ? result.reports : [];
324
- const modelResult: ReasonModelCachedResult = {
225
+ const modelResult = {
325
226
  consistent: result.consistent,
326
227
  ontologyIri: entry.ontologyIri,
327
228
  result,
@@ -342,7 +243,8 @@ export async function reasonWorkspace(client: RestValidationContext, params: Rec
342
243
  consistent: result.consistent,
343
244
  result,
344
245
  });
345
- } catch (error) {
246
+ }
247
+ catch (error) {
346
248
  const message = error instanceof Error ? error.message : String(error);
347
249
  const modelError = message || 'reason failed';
348
250
  runtimeCache.reasonModelCache.set(entry.modelUri, {
@@ -371,7 +273,6 @@ export async function reasonWorkspace(client: RestValidationContext, params: Rec
371
273
  }
372
274
  }
373
275
  await fs.rm(tempRoot, { recursive: true, force: true });
374
-
375
276
  return {
376
277
  success: failed.length === 0 && inconsistent.length === 0,
377
278
  ontologiesReasoned: entries.length,
@@ -383,12 +284,11 @@ export async function reasonWorkspace(client: RestValidationContext, params: Rec
383
284
  validate: validateResult,
384
285
  };
385
286
  }
386
-
387
- export async function validateWorkspace(client: RestValidationContext, params: Record<string, unknown>): Promise<Record<string, unknown>> {
287
+ export async function validateWorkspace(client, params) {
388
288
  const startedAt = Date.now();
389
289
  await client.ensureInitialized();
390
290
  await client.ensureWorkspaceCurrent();
391
- let lint: RestLintResult | undefined;
291
+ let lint;
392
292
  if (params.only !== true) {
393
293
  lint = await lintWorkspace(client, { limit: params.lintLimit });
394
294
  if (lint.errors > 0 || lint.warnings > 0) {
@@ -407,32 +307,25 @@ export async function validateWorkspace(client: RestValidationContext, params: R
407
307
  const markdownFiles = await findFilesByExtension(workspaceRoot, '.md');
408
308
  const templateCatalog = await buildTemplateCatalog(workspaceRoot);
409
309
  const runtime = new MarkdownPreviewRuntime(new MarkdownHandlerRegistry());
410
- const ontologyIndex = getOntologyModelIndex(client.runtime.shared as any);
411
- const reasoningService = client.runtime.Oml.reasoning.ReasoningService as any;
412
- const shaclService = createDefaultShaclService(
413
- reasoningService.getSparqlService(),
414
- (uri) => reasoningService.ensureQueryContext(uri),
415
- (uri) => reasoningService.getContextIri(uri),
416
- );
310
+ const ontologyIndex = getOntologyModelIndex(client.runtime.shared);
311
+ const reasoningService = client.runtime.Oml.reasoning.ReasoningService;
312
+ const shaclService = createDefaultShaclService(reasoningService.getSparqlService(), (uri) => reasoningService.ensureQueryContext(uri), (uri) => reasoningService.getContextIri(uri));
417
313
  const runtimeCache = getValidationRuntimeCache(client);
418
314
  const modelFingerprints = getModelContentFingerprints(client);
419
- const seenValidateKeys = new Set<string>();
315
+ const seenValidateKeys = new Set();
420
316
  let filesChecked = 0;
421
317
  let errors = 0;
422
318
  let warnings = 0;
423
- const details: Array<Record<string, unknown>> = [];
424
-
319
+ const details = [];
425
320
  for (const markdownPath of markdownFiles) {
426
321
  const markdown = await fs.readFile(markdownPath, 'utf-8');
427
322
  if (isTemplateMarkdownFile(markdown)) {
428
323
  continue;
429
324
  }
430
325
  const frontMatter = extractLeadingFrontMatter(markdown);
431
- const contextOntologyIri = normalizeContextOntologyIri(
432
- frontMatter?.contextOntologyIri
433
- ?? frontMatterString(frontMatter?.data, 'ontologyIri')
434
- ?? frontMatterString(frontMatter?.data, 'ontology')
435
- );
326
+ const contextOntologyIri = normalizeContextOntologyIri(frontMatter?.contextOntologyIri
327
+ ?? frontMatterString(frontMatter?.data, 'ontologyIri')
328
+ ?? frontMatterString(frontMatter?.data, 'ontology'));
436
329
  const contextMemberIri = frontMatterString(frontMatter?.data, 'memberIri')
437
330
  ?? frontMatterString(frontMatter?.data, 'contextMemberIri');
438
331
  const markdownUri = pathToFileURL(markdownPath).toString();
@@ -504,11 +397,13 @@ export async function validateWorkspace(client: RestValidationContext, params: R
504
397
  let blockWarnings = 0;
505
398
  if (result.error) {
506
399
  blockErrors += 1;
507
- } else if (!result.conforms) {
400
+ }
401
+ else if (!result.conforms) {
508
402
  for (const issue of result.issues) {
509
403
  if (String(issue.severity ?? '').toLowerCase().includes('warning')) {
510
404
  blockWarnings += 1;
511
- } else {
405
+ }
406
+ else {
512
407
  blockErrors += 1;
513
408
  }
514
409
  }
@@ -553,3 +448,4 @@ export async function validateWorkspace(client: RestValidationContext, params: R
553
448
  lint,
554
449
  };
555
450
  }
451
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/rest/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,13 @@
1
1
  {
2
2
  "name": "@oml/server",
3
3
  "description": "Standalone OML language server host",
4
- "version": "0.14.0",
4
+ "version": "0.14.2",
5
5
  "type": "module",
6
+ "files": [
7
+ "out",
8
+ "README.md",
9
+ "package.json"
10
+ ],
6
11
  "main": "./out/index.js",
7
12
  "exports": {
8
13
  ".": "./out/index.js",
@@ -22,9 +27,9 @@
22
27
  },
23
28
  "dependencies": {
24
29
  "@leeoniya/ufuzzy": "^1.0.19",
25
- "@oml/language": "0.14.0",
26
- "@oml/markdown": "0.14.0",
27
- "@oml/owl": "0.14.0",
30
+ "@oml/language": "0.14.2",
31
+ "@oml/markdown": "0.14.2",
32
+ "@oml/owl": "0.14.2",
28
33
  "@oml/platform": "^0.5.0",
29
34
  "@oml/reasoner": "^0.3.0",
30
35
  "langium": "^4.2.1",
@@ -1,48 +0,0 @@
1
- // Copyright (c) 2026 Modelware. All rights reserved.
2
-
3
- import type { SModelRoot } from 'sprotty-protocol';
4
- import {
5
- computeLaidOutSModelForUri,
6
- resolveDefinition,
7
- resolveOntologyMemberLabels,
8
- type OntologyMemberLabelEntry,
9
- type RangeResponse,
10
- } from '@oml/language';
11
- import { RequestType } from 'vscode-languageserver-protocol';
12
-
13
- type ConnectionLike = {
14
- onRequest: (type: RequestType<any, any, any>, handler: (params: any) => any | Promise<any>) => void;
15
- };
16
-
17
- const DiagramModelRequest = new RequestType<{ modelUri: string }, SModelRoot, void>('oml/diagram/model');
18
- const DefinitionRequest = new RequestType<{ elementId: string; referencingUri?: string }, RangeResponse | null, void>('oml/definition');
19
- const OntologyLabelsRequest = new RequestType<{ modelUri: string }, OntologyMemberLabelEntry[], void>('oml/labels');
20
-
21
- export function registerDiagramRequests(connection: ConnectionLike, shared: any, oml?: any): void {
22
- connection.onRequest(DiagramModelRequest, async ({ modelUri }) => {
23
- try {
24
- return await computeLaidOutSModelForUri(shared, modelUri);
25
- } catch (err) {
26
- console.error('[oml] diagram model error', err);
27
- return { id: 'root', type: 'graph', children: [] } as unknown as SModelRoot;
28
- }
29
- });
30
-
31
- connection.onRequest(DefinitionRequest, async ({ elementId, referencingUri }) => {
32
- try {
33
- return await resolveDefinition(shared, elementId, referencingUri);
34
- } catch (err) {
35
- console.error('[oml] definition error', err);
36
- return null;
37
- }
38
- });
39
-
40
- connection.onRequest(OntologyLabelsRequest, async ({ modelUri }) => {
41
- try {
42
- return await resolveOntologyMemberLabels(shared, oml, modelUri);
43
- } catch (err) {
44
- console.error('[oml] labels error', err);
45
- return [];
46
- }
47
- });
48
- }
package/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "rootDir": "src",
5
- "outDir": "out",
6
- "declarationDir": "out"
7
- },
8
- "references": [
9
- {
10
- "path": "../owl/tsconfig.json"
11
- },
12
- {
13
- "path": "../markdown/tsconfig.json"
14
- },
15
- {
16
- "path": "../language/tsconfig.src.json"
17
- }
18
- ],
19
- "include": [
20
- "src/**/*.ts"
21
- ]
22
- }