@oml/server 0.14.2 → 0.14.4

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.
@@ -1,8 +1,4 @@
1
1
  export declare const REST_ROUTES: readonly [{
2
- readonly method: "POST";
3
- readonly path: "/v0/query";
4
- readonly operationId: "query";
5
- }, {
6
2
  readonly method: "POST";
7
3
  readonly path: "/v0/update";
8
4
  readonly operationId: "update";
@@ -33,7 +29,6 @@ export declare const REST_ROUTES: readonly [{
33
29
  }];
34
30
  export type RestRoute = (typeof REST_ROUTES)[number];
35
31
  export type RestRouteClient = {
36
- queryWorkspace: (body: Record<string, unknown>) => Promise<Record<string, unknown>>;
37
32
  updateWorkspace: (body: Record<string, unknown>) => Promise<unknown>;
38
33
  fuzzySearchWorkspace: (body: Record<string, unknown>) => Promise<Record<string, unknown>>;
39
34
  lintWorkspace: (body: Record<string, unknown>) => Promise<unknown>;
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
2
  export const REST_ROUTES = [
3
- { method: 'POST', path: '/v0/query', operationId: 'query' },
4
3
  { method: 'POST', path: '/v0/update', operationId: 'update' },
5
4
  { method: 'POST', path: '/v0/fuzzysearch', operationId: 'fuzzysearch' },
6
5
  { method: 'POST', path: '/v0/lint', operationId: 'lint' },
@@ -9,13 +8,285 @@ export const REST_ROUTES = [
9
8
  { method: 'POST', path: '/v0/render', operationId: 'render' },
10
9
  { method: 'POST', path: '/v0/export', operationId: 'export' },
11
10
  ];
11
+ const SPARQL_TERM_SCHEMA = {
12
+ type: 'object',
13
+ required: ['termType', 'value'],
14
+ additionalProperties: false,
15
+ properties: {
16
+ termType: { type: 'string', enum: ['NamedNode', 'Literal', 'BlankNode'] },
17
+ value: { type: 'string' },
18
+ datatype: { type: 'string' },
19
+ language: { type: 'string' },
20
+ },
21
+ };
22
+ const SPARQL_RESULT_SCHEMA = {
23
+ type: 'object',
24
+ required: ['success', 'kind', 'warnings'],
25
+ additionalProperties: true,
26
+ properties: {
27
+ success: { type: 'boolean' },
28
+ kind: { type: 'string', enum: ['select', 'ask', 'construct', 'describe', 'unknown'] },
29
+ warnings: { type: 'array', items: { type: 'string' } },
30
+ rows: {
31
+ type: 'array',
32
+ items: {
33
+ type: 'object',
34
+ additionalProperties: SPARQL_TERM_SCHEMA,
35
+ },
36
+ },
37
+ result: { type: 'boolean' },
38
+ quads: {
39
+ type: 'array',
40
+ items: {
41
+ type: 'object',
42
+ required: ['subject', 'predicate', 'object', 'graph'],
43
+ additionalProperties: false,
44
+ properties: {
45
+ subject: { type: 'string' },
46
+ predicate: { type: 'string' },
47
+ object: { type: 'string' },
48
+ graph: { type: 'string' },
49
+ },
50
+ },
51
+ },
52
+ error: { type: 'string' },
53
+ },
54
+ };
55
+ const OPERATION_SCHEMAS = {
56
+ query: {
57
+ request: {
58
+ type: 'object',
59
+ required: ['modelUri', 'sparql'],
60
+ additionalProperties: false,
61
+ properties: {
62
+ modelUri: { type: 'string', description: 'URI of the OML model document to query.' },
63
+ sparql: { type: 'string', description: 'SPARQL SELECT/ASK/CONSTRUCT/DESCRIBE query string.' },
64
+ },
65
+ },
66
+ result: SPARQL_RESULT_SCHEMA,
67
+ },
68
+ update: {
69
+ request: {
70
+ type: 'object',
71
+ required: ['operations'],
72
+ additionalProperties: false,
73
+ properties: {
74
+ operations: {
75
+ type: 'array',
76
+ minItems: 1,
77
+ items: {
78
+ type: 'object',
79
+ required: ['kind', 'ontologyIri'],
80
+ additionalProperties: true,
81
+ properties: {
82
+ kind: {
83
+ type: 'string',
84
+ enum: [
85
+ 'createInstance',
86
+ 'createRelationInstance',
87
+ 'createInstanceRef',
88
+ 'createRelationInstanceRef',
89
+ 'addAssertion',
90
+ 'updateAssertion',
91
+ 'removeAssertion',
92
+ 'addAnnotation',
93
+ 'updateAnnotation',
94
+ 'removeAnnotation',
95
+ 'deleteMemberCascade',
96
+ 'deleteMemberRef',
97
+ ],
98
+ },
99
+ ontologyIri: { type: 'string' },
100
+ },
101
+ },
102
+ },
103
+ referencingUri: { type: 'string' },
104
+ },
105
+ },
106
+ result: {
107
+ type: 'object',
108
+ additionalProperties: true,
109
+ properties: {
110
+ edit: { type: 'object', additionalProperties: true },
111
+ errors: {
112
+ type: 'array',
113
+ items: {
114
+ type: 'object',
115
+ required: ['operationIndex', 'message'],
116
+ additionalProperties: false,
117
+ properties: {
118
+ operationIndex: { type: 'integer' },
119
+ message: { type: 'string' },
120
+ },
121
+ },
122
+ },
123
+ },
124
+ },
125
+ },
126
+ fuzzysearch: {
127
+ request: {
128
+ type: 'object',
129
+ required: ['text'],
130
+ additionalProperties: false,
131
+ properties: {
132
+ text: { type: 'string' },
133
+ limit: { type: 'integer', minimum: 1, maximum: 50, default: 12 },
134
+ },
135
+ },
136
+ result: {
137
+ type: 'object',
138
+ required: ['success', 'candidates'],
139
+ additionalProperties: true,
140
+ properties: {
141
+ success: { type: 'boolean' },
142
+ candidates: {
143
+ type: 'array',
144
+ items: {
145
+ type: 'object',
146
+ required: ['iri', 'score'],
147
+ additionalProperties: true,
148
+ properties: {
149
+ iri: { type: 'string' },
150
+ label: { type: 'string' },
151
+ score: { type: 'number' },
152
+ },
153
+ },
154
+ },
155
+ error: { type: 'string' },
156
+ },
157
+ },
158
+ },
159
+ lint: {
160
+ request: {
161
+ type: 'object',
162
+ additionalProperties: false,
163
+ properties: {
164
+ limit: { type: 'integer', minimum: 1 },
165
+ },
166
+ },
167
+ result: {
168
+ type: 'object',
169
+ required: ['success', 'filesChecked', 'errors', 'warnings', 'problems'],
170
+ additionalProperties: true,
171
+ properties: {
172
+ success: { type: 'boolean' },
173
+ filesChecked: { type: 'integer' },
174
+ errors: { type: 'integer' },
175
+ warnings: { type: 'integer' },
176
+ elapsedMs: { type: 'integer' },
177
+ problems: { type: 'array', items: { type: 'object', additionalProperties: true } },
178
+ },
179
+ },
180
+ },
181
+ reason: {
182
+ request: {
183
+ type: 'object',
184
+ additionalProperties: false,
185
+ properties: {
186
+ only: { type: 'boolean', description: 'Skip validate/lint and run reason directly.' },
187
+ lintLimit: { type: 'integer', minimum: 1 },
188
+ format: { type: 'string', enum: ['ttl', 'trig', 'nt', 'nq', 'n3'] },
189
+ explanation: { type: 'boolean' },
190
+ uniqueNamesAssumption: { type: 'boolean' },
191
+ profile: { type: 'boolean' },
192
+ timeout: { type: 'integer', minimum: 1 },
193
+ },
194
+ },
195
+ result: {
196
+ type: 'object',
197
+ required: ['success', 'ontologiesReasoned', 'inconsistent', 'failed'],
198
+ additionalProperties: true,
199
+ properties: {
200
+ success: { type: 'boolean' },
201
+ ontologiesReasoned: { type: 'integer' },
202
+ inconsistent: { type: 'array', items: { type: 'object', additionalProperties: true } },
203
+ failed: { type: 'array', items: { type: 'object', additionalProperties: true } },
204
+ },
205
+ },
206
+ },
207
+ validate: {
208
+ request: {
209
+ type: 'object',
210
+ additionalProperties: false,
211
+ properties: {
212
+ only: { type: 'boolean', description: 'Skip lint and validate directly.' },
213
+ lintLimit: { type: 'integer', minimum: 1 },
214
+ },
215
+ },
216
+ result: {
217
+ type: 'object',
218
+ required: ['success', 'filesChecked', 'errors', 'warnings'],
219
+ additionalProperties: true,
220
+ properties: {
221
+ success: { type: 'boolean' },
222
+ filesChecked: { type: 'integer' },
223
+ errors: { type: 'integer' },
224
+ warnings: { type: 'integer' },
225
+ elapsedMs: { type: 'integer' },
226
+ error: { type: 'string' },
227
+ },
228
+ },
229
+ },
230
+ render: {
231
+ request: {
232
+ type: 'object',
233
+ additionalProperties: false,
234
+ properties: {
235
+ only: { type: 'boolean', description: 'Skip lint gate before render.' },
236
+ inputDir: { type: 'string' },
237
+ outputDir: { type: 'string' },
238
+ md: { type: 'string', description: 'Alias for inputDir.' },
239
+ web: { type: 'string', description: 'Alias for outputDir.' },
240
+ contextOntologyIri: { type: 'string' },
241
+ context: { type: 'string', description: 'Alias for contextOntologyIri.' },
242
+ },
243
+ },
244
+ result: {
245
+ type: 'object',
246
+ required: ['success', 'filesRendered', 'outputDir'],
247
+ additionalProperties: true,
248
+ properties: {
249
+ success: { type: 'boolean' },
250
+ filesRendered: { type: 'integer' },
251
+ outputDir: { type: 'string' },
252
+ blockArtifactFiles: { type: 'integer' },
253
+ error: { type: 'string' },
254
+ },
255
+ },
256
+ },
257
+ export: {
258
+ request: {
259
+ type: 'object',
260
+ additionalProperties: false,
261
+ properties: {
262
+ outputDir: { type: 'string' },
263
+ owl: { type: 'string', description: 'Alias for outputDir.' },
264
+ format: { type: 'string', enum: ['ttl', 'trig', 'nt', 'nq', 'n3'] },
265
+ pretty: { type: 'boolean' },
266
+ clean: { type: 'boolean' },
267
+ explanation: { type: 'boolean' },
268
+ uniqueNamesAssumption: { type: 'boolean' },
269
+ profile: { type: 'boolean' },
270
+ timeout: { type: 'integer', minimum: 1 },
271
+ },
272
+ },
273
+ result: {
274
+ type: 'object',
275
+ required: ['success'],
276
+ additionalProperties: true,
277
+ properties: {
278
+ success: { type: 'boolean' },
279
+ assertedExport: { type: 'object', additionalProperties: true },
280
+ reason: { type: 'object', additionalProperties: true },
281
+ error: { type: 'string' },
282
+ },
283
+ },
284
+ },
285
+ };
12
286
  export function resolveRestOperationId(method, pathname) {
13
287
  if (method !== 'POST') {
14
288
  return undefined;
15
289
  }
16
- if (pathname === '/v0/query') {
17
- return 'query';
18
- }
19
290
  if (pathname === '/v0/update') {
20
291
  return 'update';
21
292
  }
@@ -40,9 +311,6 @@ export function resolveRestOperationId(method, pathname) {
40
311
  return undefined;
41
312
  }
42
313
  export async function dispatchRestOperation(operationId, body, client) {
43
- if (operationId === 'query') {
44
- return await client.queryWorkspace(body);
45
- }
46
314
  if (operationId === 'update') {
47
315
  return await client.updateWorkspace(body);
48
316
  }
@@ -78,6 +346,14 @@ export function createOpenApiSpec(httpHost, httpPort) {
78
346
  },
79
347
  },
80
348
  },
349
+ '/docs': {
350
+ get: {
351
+ summary: 'Swagger UI for OML REST API',
352
+ responses: {
353
+ '200': { description: 'Swagger UI HTML page' },
354
+ },
355
+ },
356
+ },
81
357
  '/v0/models': {
82
358
  get: {
83
359
  summary: 'List OML model files under the configured workspace root',
@@ -86,8 +362,77 @@ export function createOpenApiSpec(httpHost, httpPort) {
86
362
  },
87
363
  },
88
364
  },
365
+ '/v0/sparql/{modelId}': {
366
+ get: {
367
+ summary: 'Run a SPARQL query against one workspace model',
368
+ parameters: [
369
+ {
370
+ name: 'modelId',
371
+ in: 'path',
372
+ required: true,
373
+ schema: { type: 'string' },
374
+ description: 'Workspace-relative OML path without the .oml extension.',
375
+ },
376
+ {
377
+ name: 'query',
378
+ in: 'query',
379
+ required: true,
380
+ schema: { type: 'string' },
381
+ description: 'SPARQL query text.',
382
+ },
383
+ ],
384
+ responses: {
385
+ '200': { description: 'SPARQL response body' },
386
+ '400': { description: 'Invalid SPARQL request' },
387
+ '401': { description: 'Authentication required' },
388
+ '403': { description: 'Entitlement denied or unavailable' },
389
+ '404': { description: 'Model not found' },
390
+ '406': { description: 'Requested media type is not supported' },
391
+ '500': { description: 'Server error' },
392
+ },
393
+ },
394
+ post: {
395
+ summary: 'Run a SPARQL query against one workspace model',
396
+ parameters: [
397
+ {
398
+ name: 'modelId',
399
+ in: 'path',
400
+ required: true,
401
+ schema: { type: 'string' },
402
+ description: 'Workspace-relative OML path without the .oml extension.',
403
+ },
404
+ ],
405
+ requestBody: {
406
+ required: true,
407
+ content: {
408
+ 'application/sparql-query': {
409
+ schema: { type: 'string' },
410
+ },
411
+ 'application/x-www-form-urlencoded': {
412
+ schema: {
413
+ type: 'object',
414
+ properties: {
415
+ query: { type: 'string' },
416
+ },
417
+ required: ['query'],
418
+ },
419
+ },
420
+ },
421
+ },
422
+ responses: {
423
+ '200': { description: 'SPARQL response body' },
424
+ '400': { description: 'Invalid SPARQL request' },
425
+ '401': { description: 'Authentication required' },
426
+ '403': { description: 'Entitlement denied or unavailable' },
427
+ '404': { description: 'Model not found' },
428
+ '406': { description: 'Requested media type is not supported' },
429
+ '500': { description: 'Server error' },
430
+ },
431
+ },
432
+ },
89
433
  };
90
434
  for (const route of REST_ROUTES) {
435
+ const schema = OPERATION_SCHEMAS[route.operationId];
91
436
  paths[route.path] = {
92
437
  post: {
93
438
  summary: `Invoke ${route.operationId}`,
@@ -96,13 +441,32 @@ export function createOpenApiSpec(httpHost, httpPort) {
96
441
  required: false,
97
442
  content: {
98
443
  'application/json': {
99
- schema: { type: 'object', additionalProperties: true },
444
+ schema: schema?.request ?? { type: 'object', additionalProperties: true },
100
445
  },
101
446
  },
102
447
  },
103
448
  responses: {
104
- '200': { description: 'Successful OML response' },
449
+ '200': {
450
+ description: 'Successful OML response',
451
+ content: {
452
+ 'application/json': {
453
+ schema: {
454
+ type: 'object',
455
+ required: ['ok', 'method', 'result', 'requestId'],
456
+ additionalProperties: false,
457
+ properties: {
458
+ ok: { type: 'boolean' },
459
+ method: { type: 'string' },
460
+ result: schema?.result ?? { type: 'object', additionalProperties: true },
461
+ requestId: { type: 'string' },
462
+ },
463
+ },
464
+ },
465
+ },
466
+ },
105
467
  '400': { description: 'Invalid request' },
468
+ '401': { description: 'Authentication required' },
469
+ '403': { description: 'Entitlement denied or unavailable' },
106
470
  '500': { description: 'Server error' },
107
471
  },
108
472
  },
@@ -111,7 +475,7 @@ export function createOpenApiSpec(httpHost, httpPort) {
111
475
  return {
112
476
  openapi: '3.0.3',
113
477
  info: {
114
- title: 'OML REST Server',
478
+ title: 'OML Server',
115
479
  version: '1.0.0',
116
480
  description: 'HTTP/JSON interface for OML server operations.',
117
481
  },
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/rest/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/rest/routes.ts"],"names":[],"mappings":"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"}