@shaclmate/compiler 4.0.14 → 4.0.16

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 (40) hide show
  1. package/dist/Compiler.d.ts +4 -1
  2. package/dist/Compiler.js +3 -1
  3. package/dist/ShapesGraphToAstTransformer.d.ts +10 -2
  4. package/dist/ShapesGraphToAstTransformer.js +72 -1
  5. package/dist/_ShapesGraphToAstTransformer/nodeShapeIdentifierMintingStrategy.js +14 -13
  6. package/dist/_ShapesGraphToAstTransformer/shapeNodeKinds.js +18 -17
  7. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.js +6 -2
  8. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.js +8 -8
  9. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstObjectType.js +10 -5
  10. package/dist/ast/ObjectCompoundType.js +1 -1
  11. package/dist/ast/ObjectType.d.ts +1 -1
  12. package/dist/ast/ObjectType.js +1 -1
  13. package/dist/generators/json/AstJsonGenerator.js +1 -1
  14. package/dist/generators/ts/AbstractCollectionType.js +1 -7
  15. package/dist/generators/ts/AbstractTermType.d.ts +1 -0
  16. package/dist/generators/ts/AbstractTermType.js +6 -0
  17. package/dist/generators/ts/AbstractUnionType.d.ts +31 -9
  18. package/dist/generators/ts/AbstractUnionType.js +252 -126
  19. package/dist/generators/ts/DefaultValueType.js +1 -1
  20. package/dist/generators/ts/NamedObjectUnionType.js +1 -1
  21. package/dist/generators/ts/SetType.d.ts +1 -0
  22. package/dist/generators/ts/SetType.js +12 -0
  23. package/dist/generators/ts/TypeFactory.js +1 -1
  24. package/dist/generators/ts/_NamedObjectType/ShaclProperty.d.ts +1 -1
  25. package/dist/generators/ts/imports.js +4 -4
  26. package/dist/input/ShapesGraph.d.ts +38 -21
  27. package/dist/input/ShapesGraph.js +56 -58
  28. package/dist/input/generated.d.ts +211 -46
  29. package/dist/input/generated.js +2283 -677
  30. package/dist/input/index.d.ts +1 -3
  31. package/dist/input/index.js +1 -3
  32. package/package.json +5 -10
  33. package/dist/input/NodeShape.d.ts +0 -11
  34. package/dist/input/NodeShape.js +0 -2
  35. package/dist/input/Shape.d.ts +0 -4
  36. package/dist/input/Shape.js +0 -2
  37. package/dist/input/ancestorClassIris.d.ts +0 -4
  38. package/dist/input/ancestorClassIris.js +0 -24
  39. package/dist/input/descendantClassIris.d.ts +0 -4
  40. package/dist/input/descendantClassIris.js +0 -27
@@ -1,7 +1,8 @@
1
1
  import dataFactory from "@rdfjs/data-model";
2
2
  import datasetFactory from "@rdfjs/dataset";
3
+ import { LiteralFactory } from "@rdfx/literal";
4
+ import { PropertyPath as RdfjsResourcePropertyPath, Resource, ResourceSet, } from "@rdfx/resource";
3
5
  import { Either, Left, Maybe, Right } from "purify-ts";
4
- import { LiteralFactory, PropertyPath as RdfjsResourcePropertyPath, Resource, ResourceSet, } from "rdfjs-resource";
5
6
  function $filterArray(filterItem) {
6
7
  return (filter, values) => {
7
8
  for (const value of values) {
@@ -162,6 +163,21 @@ class $IdentifierSet {
162
163
  }
163
164
  }
164
165
  }
166
+ function $isReadonlyBigIntArray(x) {
167
+ return Array.isArray(x) && x.every((z) => typeof z === "bigint");
168
+ }
169
+ function $isReadonlyBooleanArray(x) {
170
+ return Array.isArray(x) && x.every((z) => typeof z === "boolean");
171
+ }
172
+ function $isReadonlyNumberArray(x) {
173
+ return Array.isArray(x) && x.every((z) => typeof z === "number");
174
+ }
175
+ function $isReadonlyObjectArray(x) {
176
+ return Array.isArray(x) && x.every((z) => typeof z === "object");
177
+ }
178
+ function $isReadonlyStringArray(x) {
179
+ return Array.isArray(x) && x.every((z) => typeof z === "string");
180
+ }
165
181
  const $literalFactory = new LiteralFactory({ dataFactory: dataFactory });
166
182
  export var $PropertyPath;
167
183
  (function ($PropertyPath) {
@@ -219,291 +235,924 @@ function $shaclPropertyFromRdf({ graph, propertySchema, resource, typeFromRdf, }
219
235
  }
220
236
  export var PropertyShape;
221
237
  (function (PropertyShape) {
222
- let $Identifier;
223
- (function ($Identifier) {
224
- $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
225
- $Identifier.toString = Resource.Identifier.toString;
226
- })($Identifier = PropertyShape.$Identifier || (PropertyShape.$Identifier = {}));
227
- function $filter(filter, value) {
228
- if (filter.$identifier !== undefined &&
229
- !$filterIdentifier(filter.$identifier, value.$identifier)) {
230
- return false;
238
+ function $create(parameters) {
239
+ let $identifier;
240
+ if (typeof parameters.$identifier === "object") {
241
+ $identifier = parameters.$identifier;
231
242
  }
232
- if (filter.and !== undefined &&
233
- !$filterArray($filterArray($filterIdentifier))(filter.and, value.and)) {
234
- return false;
243
+ else if (typeof parameters.$identifier === "string") {
244
+ $identifier = dataFactory.namedNode(parameters.$identifier);
235
245
  }
236
- if (filter.classes !== undefined &&
237
- !$filterArray($filterIri)(filter.classes, value.classes)) {
238
- return false;
246
+ else if (parameters.$identifier === undefined) {
247
+ $identifier = dataFactory.blankNode();
239
248
  }
240
- if (filter.comment !== undefined &&
241
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
242
- return false;
249
+ else {
250
+ $identifier = parameters.$identifier;
243
251
  }
244
- if (filter.datatype !== undefined &&
245
- !$filterMaybe($filterIri)(filter.datatype, value.datatype)) {
246
- return false;
252
+ const $type = "PropertyShape";
253
+ let and;
254
+ if (Maybe.isMaybe(parameters.and)) {
255
+ and = parameters.and;
247
256
  }
248
- if (filter.deactivated !== undefined &&
249
- !$filterMaybe($filterBoolean)(filter.deactivated, value.deactivated)) {
250
- return false;
257
+ else if ($isReadonlyObjectArray(parameters.and)) {
258
+ and = Maybe.of(parameters.and);
251
259
  }
252
- if (filter.defaultValue !== undefined &&
253
- !$filterMaybe($filterTerm)(filter.defaultValue, value.defaultValue)) {
254
- return false;
260
+ else if ($isReadonlyStringArray(parameters.and)) {
261
+ and = Maybe.of(parameters.and.map((item) => dataFactory.namedNode(item)));
255
262
  }
256
- if (filter.description !== undefined &&
257
- !$filterMaybe($filterString)(filter.description, value.description)) {
258
- return false;
263
+ else if (parameters.and === undefined) {
264
+ and = Maybe.empty();
259
265
  }
260
- if (filter.flags !== undefined &&
261
- !$filterArray($filterString)(filter.flags, value.flags)) {
262
- return false;
266
+ else {
267
+ and = parameters.and;
263
268
  }
264
- if (filter.groups !== undefined &&
265
- !$filterArray($filterIdentifier)(filter.groups, value.groups)) {
266
- return false;
269
+ let classes;
270
+ if (parameters.classes === undefined) {
271
+ classes = [];
267
272
  }
268
- if (filter.hasValues !== undefined &&
269
- !$filterArray($filterTerm)(filter.hasValues, value.hasValues)) {
270
- return false;
273
+ else if ($isReadonlyObjectArray(parameters.classes)) {
274
+ classes = parameters.classes;
271
275
  }
272
- if (filter.in_ !== undefined &&
273
- !$filterMaybe($filterArray($filterTerm))(filter.in_, value.in_)) {
274
- return false;
276
+ else if ($isReadonlyStringArray(parameters.classes)) {
277
+ classes = parameters.classes.map((item) => dataFactory.namedNode(item));
275
278
  }
276
- if (filter.isDefinedBy !== undefined &&
277
- !$filterMaybe($filterIdentifier)(filter.isDefinedBy, value.isDefinedBy)) {
278
- return false;
279
+ else {
280
+ classes = parameters.classes;
279
281
  }
280
- if (filter.label !== undefined &&
281
- !$filterMaybe($filterString)(filter.label, value.label)) {
282
- return false;
282
+ let comment;
283
+ if (Maybe.isMaybe(parameters.comment)) {
284
+ comment = parameters.comment;
283
285
  }
284
- if (filter.languageIn !== undefined &&
285
- !$filterMaybe($filterArray($filterString))(filter.languageIn, value.languageIn)) {
286
- return false;
286
+ else if (typeof parameters.comment === "string") {
287
+ comment = Maybe.of(parameters.comment);
287
288
  }
288
- if (filter.maxCount !== undefined &&
289
- !$filterMaybe(($filterNumeric))(filter.maxCount, value.maxCount)) {
290
- return false;
289
+ else if (parameters.comment === undefined) {
290
+ comment = Maybe.empty();
291
291
  }
292
- if (filter.maxExclusive !== undefined &&
293
- !$filterMaybe($filterLiteral)(filter.maxExclusive, value.maxExclusive)) {
294
- return false;
292
+ else {
293
+ comment = parameters.comment;
295
294
  }
296
- if (filter.maxInclusive !== undefined &&
297
- !$filterMaybe($filterLiteral)(filter.maxInclusive, value.maxInclusive)) {
298
- return false;
295
+ let datatype;
296
+ if (Maybe.isMaybe(parameters.datatype)) {
297
+ datatype = parameters.datatype;
299
298
  }
300
- if (filter.maxLength !== undefined &&
301
- !$filterMaybe(($filterNumeric))(filter.maxLength, value.maxLength)) {
302
- return false;
299
+ else if (typeof parameters.datatype === "object") {
300
+ datatype = Maybe.of(parameters.datatype);
303
301
  }
304
- if (filter.minCount !== undefined &&
305
- !$filterMaybe(($filterNumeric))(filter.minCount, value.minCount)) {
306
- return false;
302
+ else if (typeof parameters.datatype === "string") {
303
+ datatype = Maybe.of(dataFactory.namedNode(parameters.datatype));
307
304
  }
308
- if (filter.minExclusive !== undefined &&
309
- !$filterMaybe($filterLiteral)(filter.minExclusive, value.minExclusive)) {
310
- return false;
305
+ else if (parameters.datatype === undefined) {
306
+ datatype = Maybe.empty();
311
307
  }
312
- if (filter.minInclusive !== undefined &&
313
- !$filterMaybe($filterLiteral)(filter.minInclusive, value.minInclusive)) {
314
- return false;
308
+ else {
309
+ datatype = parameters.datatype;
315
310
  }
316
- if (filter.minLength !== undefined &&
317
- !$filterMaybe(($filterNumeric))(filter.minLength, value.minLength)) {
318
- return false;
311
+ let deactivated;
312
+ if (Maybe.isMaybe(parameters.deactivated)) {
313
+ deactivated = parameters.deactivated;
319
314
  }
320
- if (filter.mutable !== undefined &&
321
- !$filterMaybe($filterBoolean)(filter.mutable, value.mutable)) {
322
- return false;
315
+ else if (typeof parameters.deactivated === "boolean") {
316
+ deactivated = Maybe.of(parameters.deactivated);
323
317
  }
324
- if (filter.name !== undefined &&
325
- !$filterMaybe($filterString)(filter.name, value.name)) {
326
- return false;
318
+ else if (parameters.deactivated === undefined) {
319
+ deactivated = Maybe.empty();
327
320
  }
328
- if (filter.nodeKind !== undefined &&
329
- !$filterMaybe($filterIri)(filter.nodeKind, value.nodeKind)) {
330
- return false;
321
+ else {
322
+ deactivated = parameters.deactivated;
331
323
  }
332
- if (filter.nodes !== undefined &&
333
- !$filterArray($filterIdentifier)(filter.nodes, value.nodes)) {
334
- return false;
324
+ let defaultValue;
325
+ if (Maybe.isMaybe(parameters.defaultValue)) {
326
+ defaultValue = parameters.defaultValue;
335
327
  }
336
- if (filter.not !== undefined &&
337
- !$filterArray($filterIdentifier)(filter.not, value.not)) {
338
- return false;
328
+ else if (typeof parameters.defaultValue === "bigint") {
329
+ defaultValue = Maybe.of($literalFactory.bigint(parameters.defaultValue));
339
330
  }
340
- if (filter.or !== undefined &&
341
- !$filterArray($filterArray($filterIdentifier))(filter.or, value.or)) {
342
- return false;
331
+ else if (typeof parameters.defaultValue === "boolean") {
332
+ defaultValue = Maybe.of($literalFactory.boolean(parameters.defaultValue));
343
333
  }
344
- if (filter.order !== undefined &&
345
- !$filterMaybe(($filterNumeric))(filter.order, value.order)) {
346
- return false;
334
+ else if (typeof parameters.defaultValue === "object" &&
335
+ parameters.defaultValue instanceof Date) {
336
+ defaultValue = Maybe.of($literalFactory.date(parameters.defaultValue));
347
337
  }
348
- if (filter.path !== undefined &&
349
- !$PropertyPath.$filter(filter.path, value.path)) {
350
- return false;
338
+ else if (typeof parameters.defaultValue === "number") {
339
+ defaultValue = Maybe.of($literalFactory.number(parameters.defaultValue));
351
340
  }
352
- if (filter.patterns !== undefined &&
353
- !$filterArray($filterString)(filter.patterns, value.patterns)) {
354
- return false;
341
+ else if (typeof parameters.defaultValue === "string") {
342
+ defaultValue = Maybe.of($literalFactory.string(parameters.defaultValue));
355
343
  }
356
- if (filter.resolve !== undefined &&
357
- !$filterMaybe($filterIdentifier)(filter.resolve, value.resolve)) {
358
- return false;
344
+ else if (typeof parameters.defaultValue === "object") {
345
+ defaultValue = Maybe.of(parameters.defaultValue);
359
346
  }
360
- if (filter.shaclmateName !== undefined &&
361
- !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
362
- return false;
347
+ else if (parameters.defaultValue === undefined) {
348
+ defaultValue = Maybe.empty();
363
349
  }
364
- if (filter.uniqueLang !== undefined &&
365
- !$filterMaybe($filterBoolean)(filter.uniqueLang, value.uniqueLang)) {
366
- return false;
350
+ else {
351
+ defaultValue = parameters.defaultValue;
367
352
  }
368
- if (filter.visibility !== undefined &&
369
- !$filterMaybe($filterIri)(filter.visibility, value.visibility)) {
370
- return false;
353
+ let description;
354
+ if (Maybe.isMaybe(parameters.description)) {
355
+ description = parameters.description;
371
356
  }
372
- if (filter.xone !== undefined &&
373
- !$filterArray($filterArray($filterIdentifier))(filter.xone, value.xone)) {
374
- return false;
357
+ else if (typeof parameters.description === "string") {
358
+ description = Maybe.of(parameters.description);
375
359
  }
376
- return true;
377
- }
378
- PropertyShape.$filter = $filter;
379
- PropertyShape.$fromRdfResource = (resource, options) => {
380
- let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
381
- if (!objectSet) {
382
- objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
360
+ else if (parameters.description === undefined) {
361
+ description = Maybe.empty();
383
362
  }
384
- return PropertyShape.$propertiesFromRdfResource(resource, {
385
- context,
386
- graph,
387
- ignoreRdfType,
388
- objectSet,
389
- preferredLanguages,
390
- });
391
- };
392
- PropertyShape.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
393
- .toResource()
394
- .chain((resource) => PropertyShape.$fromRdfResource(resource, options))));
395
- PropertyShape.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyShape");
396
- function isPropertyShape(object) {
397
- switch (object.$type) {
398
- case "PropertyShape":
399
- return true;
400
- default:
401
- return false;
363
+ else {
364
+ description = parameters.description;
402
365
  }
403
- }
404
- PropertyShape.isPropertyShape = isPropertyShape;
405
- PropertyShape.$propertiesFromRdfResource = ($resource, _$options) => {
406
- return (!_$options.ignoreRdfType
407
- ? $resource
408
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
409
- .chain((actualRdfType) => actualRdfType.toIri())
410
- .chain((actualRdfType) => {
411
- // Check the expected type and its known subtypes
412
- switch (actualRdfType.value) {
413
- case "http://www.w3.org/ns/shacl#PropertyShape":
414
- return Right(true);
415
- }
416
- // Check arbitrary rdfs:subClassOf's of the expected type
417
- if ($resource.isInstanceOf(PropertyShape.$fromRdfType, {
418
- graph: _$options.graph,
419
- })) {
420
- return Right(true);
421
- }
422
- return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyShape)`));
423
- })
424
- : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
425
- dataFactory: dataFactory,
426
- focusResource: $resource,
427
- propertyPath: $RdfVocabularies.rdf.subject,
428
- term: $resource.identifier,
429
- }).toValues())
430
- .chain((values) => values.chainMap((value) => value.toIdentifier()))
431
- .chain((values) => values.head())
432
- .chain(($identifier) => Right("PropertyShape").chain(($type) => $shaclPropertyFromRdf({
433
- graph: _$options.graph,
434
- resource: $resource,
435
- propertySchema: PropertyShape.$schema.properties.and,
436
- typeFromRdf: (resourceValues) => resourceValues
437
- .chain((values) => values.chainMap((value) => value.toList({ graph: _$options.graph })))
438
- .chain((valueLists) => valueLists.chainMap((valueList) => Right(Resource.Values.fromArray({
439
- focusResource: $resource,
440
- propertyPath: PropertyShape.$schema.properties.and.path,
441
- values: valueList.toArray(),
442
- })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
443
- .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
444
- .map((values) => values.toArray())
445
- .map((valuesArray) => Resource.Values.fromValue({
446
- focusResource: $resource,
447
- propertyPath: PropertyShape.$schema.properties.and.path,
448
- value: valuesArray,
449
- })),
450
- }).chain((and) => $shaclPropertyFromRdf({
451
- graph: _$options.graph,
452
- resource: $resource,
453
- propertySchema: PropertyShape.$schema.properties.classes,
454
- typeFromRdf: (resourceValues) => resourceValues
455
- .chain((values) => values.chainMap((value) => value.toIri()))
456
- .map((values) => values.toArray())
457
- .map((valuesArray) => Resource.Values.fromValue({
458
- focusResource: $resource,
459
- propertyPath: PropertyShape.$schema.properties.classes.path,
460
- value: valuesArray,
461
- })),
462
- }).chain((classes) => $shaclPropertyFromRdf({
463
- graph: _$options.graph,
464
- resource: $resource,
465
- propertySchema: PropertyShape.$schema.properties.comment,
466
- typeFromRdf: (resourceValues) => resourceValues
467
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
468
- .chain((values) => values.chainMap((value) => value.toString()))
469
- .map((values) => values.length > 0
470
- ? values.map((value) => Maybe.of(value))
471
- : Resource.Values.fromValue({
472
- focusResource: $resource,
473
- propertyPath: PropertyShape.$schema.properties.comment.path,
474
- value: Maybe.empty(),
475
- })),
476
- }).chain((comment) => $shaclPropertyFromRdf({
477
- graph: _$options.graph,
478
- resource: $resource,
479
- propertySchema: PropertyShape.$schema.properties.datatype,
480
- typeFromRdf: (resourceValues) => resourceValues
481
- .chain((values) => values.chainMap((value) => value.toIri()))
482
- .map((values) => values.length > 0
483
- ? values.map((value) => Maybe.of(value))
484
- : Resource.Values.fromValue({
485
- focusResource: $resource,
486
- propertyPath: PropertyShape.$schema.properties.datatype
487
- .path,
488
- value: Maybe.empty(),
489
- })),
490
- }).chain((datatype) => $shaclPropertyFromRdf({
491
- graph: _$options.graph,
492
- resource: $resource,
493
- propertySchema: PropertyShape.$schema.properties.deactivated,
494
- typeFromRdf: (resourceValues) => resourceValues
495
- .chain((values) => values.chainMap((value) => value.toBoolean()))
496
- .map((values) => values.length > 0
497
- ? values.map((value) => Maybe.of(value))
498
- : Resource.Values.fromValue({
499
- focusResource: $resource,
500
- propertyPath: PropertyShape.$schema.properties.deactivated
501
- .path,
502
- value: Maybe.empty(),
503
- })),
504
- }).chain((deactivated) => $shaclPropertyFromRdf({
505
- graph: _$options.graph,
506
- resource: $resource,
366
+ let flags;
367
+ if (parameters.flags === undefined) {
368
+ flags = [];
369
+ }
370
+ else if (typeof parameters.flags === "object") {
371
+ flags = parameters.flags;
372
+ }
373
+ else {
374
+ flags = parameters.flags;
375
+ }
376
+ let groups;
377
+ if (parameters.groups === undefined) {
378
+ groups = [];
379
+ }
380
+ else if ($isReadonlyObjectArray(parameters.groups)) {
381
+ groups = parameters.groups;
382
+ }
383
+ else if ($isReadonlyStringArray(parameters.groups)) {
384
+ groups = parameters.groups.map((item) => dataFactory.namedNode(item));
385
+ }
386
+ else {
387
+ groups = parameters.groups;
388
+ }
389
+ let hasValues;
390
+ if (parameters.hasValues === undefined) {
391
+ hasValues = [];
392
+ }
393
+ else if ($isReadonlyObjectArray(parameters.hasValues)) {
394
+ hasValues = parameters.hasValues;
395
+ }
396
+ else if ($isReadonlyBigIntArray(parameters.hasValues)) {
397
+ hasValues = parameters.hasValues.map((item) => $literalFactory.bigint(item));
398
+ }
399
+ else if ($isReadonlyBooleanArray(parameters.hasValues)) {
400
+ hasValues = parameters.hasValues.map((item) => $literalFactory.boolean(item));
401
+ }
402
+ else if ($isReadonlyNumberArray(parameters.hasValues)) {
403
+ hasValues = parameters.hasValues.map((item) => $literalFactory.number(item));
404
+ }
405
+ else if ($isReadonlyStringArray(parameters.hasValues)) {
406
+ hasValues = parameters.hasValues.map((item) => $literalFactory.string(item));
407
+ }
408
+ else {
409
+ hasValues = parameters.hasValues;
410
+ }
411
+ let in_;
412
+ if (Maybe.isMaybe(parameters.in_)) {
413
+ in_ = parameters.in_;
414
+ }
415
+ else if ($isReadonlyObjectArray(parameters.in_)) {
416
+ in_ = Maybe.of(parameters.in_);
417
+ }
418
+ else if ($isReadonlyBigIntArray(parameters.in_)) {
419
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.bigint(item)));
420
+ }
421
+ else if ($isReadonlyBooleanArray(parameters.in_)) {
422
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.boolean(item)));
423
+ }
424
+ else if ($isReadonlyNumberArray(parameters.in_)) {
425
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.number(item)));
426
+ }
427
+ else if ($isReadonlyStringArray(parameters.in_)) {
428
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.string(item)));
429
+ }
430
+ else if (parameters.in_ === undefined) {
431
+ in_ = Maybe.empty();
432
+ }
433
+ else {
434
+ in_ = parameters.in_;
435
+ }
436
+ let isDefinedBy;
437
+ if (Maybe.isMaybe(parameters.isDefinedBy)) {
438
+ isDefinedBy = parameters.isDefinedBy;
439
+ }
440
+ else if (typeof parameters.isDefinedBy === "object") {
441
+ isDefinedBy = Maybe.of(parameters.isDefinedBy);
442
+ }
443
+ else if (typeof parameters.isDefinedBy === "string") {
444
+ isDefinedBy = Maybe.of(dataFactory.namedNode(parameters.isDefinedBy));
445
+ }
446
+ else if (parameters.isDefinedBy === undefined) {
447
+ isDefinedBy = Maybe.empty();
448
+ }
449
+ else {
450
+ isDefinedBy = parameters.isDefinedBy;
451
+ }
452
+ let label;
453
+ if (Maybe.isMaybe(parameters.label)) {
454
+ label = parameters.label;
455
+ }
456
+ else if (typeof parameters.label === "string") {
457
+ label = Maybe.of(parameters.label);
458
+ }
459
+ else if (parameters.label === undefined) {
460
+ label = Maybe.empty();
461
+ }
462
+ else {
463
+ label = parameters.label;
464
+ }
465
+ let languageIn;
466
+ if (Maybe.isMaybe(parameters.languageIn)) {
467
+ languageIn = parameters.languageIn;
468
+ }
469
+ else if (typeof parameters.languageIn === "object") {
470
+ languageIn = Maybe.of(parameters.languageIn);
471
+ }
472
+ else if (parameters.languageIn === undefined) {
473
+ languageIn = Maybe.empty();
474
+ }
475
+ else {
476
+ languageIn = parameters.languageIn;
477
+ }
478
+ let maxCount;
479
+ if (Maybe.isMaybe(parameters.maxCount)) {
480
+ maxCount = parameters.maxCount;
481
+ }
482
+ else if (typeof parameters.maxCount === "number") {
483
+ maxCount = Maybe.of(parameters.maxCount);
484
+ }
485
+ else if (parameters.maxCount === undefined) {
486
+ maxCount = Maybe.empty();
487
+ }
488
+ else {
489
+ maxCount = parameters.maxCount;
490
+ }
491
+ let maxExclusive;
492
+ if (Maybe.isMaybe(parameters.maxExclusive)) {
493
+ maxExclusive = parameters.maxExclusive;
494
+ }
495
+ else if (typeof parameters.maxExclusive === "bigint") {
496
+ maxExclusive = Maybe.of($literalFactory.bigint(parameters.maxExclusive));
497
+ }
498
+ else if (typeof parameters.maxExclusive === "boolean") {
499
+ maxExclusive = Maybe.of($literalFactory.boolean(parameters.maxExclusive));
500
+ }
501
+ else if (typeof parameters.maxExclusive === "object" &&
502
+ parameters.maxExclusive instanceof Date) {
503
+ maxExclusive = Maybe.of($literalFactory.date(parameters.maxExclusive));
504
+ }
505
+ else if (typeof parameters.maxExclusive === "number") {
506
+ maxExclusive = Maybe.of($literalFactory.number(parameters.maxExclusive));
507
+ }
508
+ else if (typeof parameters.maxExclusive === "string") {
509
+ maxExclusive = Maybe.of($literalFactory.string(parameters.maxExclusive));
510
+ }
511
+ else if (typeof parameters.maxExclusive === "object") {
512
+ maxExclusive = Maybe.of(parameters.maxExclusive);
513
+ }
514
+ else if (parameters.maxExclusive === undefined) {
515
+ maxExclusive = Maybe.empty();
516
+ }
517
+ else {
518
+ maxExclusive = parameters.maxExclusive;
519
+ }
520
+ let maxInclusive;
521
+ if (Maybe.isMaybe(parameters.maxInclusive)) {
522
+ maxInclusive = parameters.maxInclusive;
523
+ }
524
+ else if (typeof parameters.maxInclusive === "bigint") {
525
+ maxInclusive = Maybe.of($literalFactory.bigint(parameters.maxInclusive));
526
+ }
527
+ else if (typeof parameters.maxInclusive === "boolean") {
528
+ maxInclusive = Maybe.of($literalFactory.boolean(parameters.maxInclusive));
529
+ }
530
+ else if (typeof parameters.maxInclusive === "object" &&
531
+ parameters.maxInclusive instanceof Date) {
532
+ maxInclusive = Maybe.of($literalFactory.date(parameters.maxInclusive));
533
+ }
534
+ else if (typeof parameters.maxInclusive === "number") {
535
+ maxInclusive = Maybe.of($literalFactory.number(parameters.maxInclusive));
536
+ }
537
+ else if (typeof parameters.maxInclusive === "string") {
538
+ maxInclusive = Maybe.of($literalFactory.string(parameters.maxInclusive));
539
+ }
540
+ else if (typeof parameters.maxInclusive === "object") {
541
+ maxInclusive = Maybe.of(parameters.maxInclusive);
542
+ }
543
+ else if (parameters.maxInclusive === undefined) {
544
+ maxInclusive = Maybe.empty();
545
+ }
546
+ else {
547
+ maxInclusive = parameters.maxInclusive;
548
+ }
549
+ let maxLength;
550
+ if (Maybe.isMaybe(parameters.maxLength)) {
551
+ maxLength = parameters.maxLength;
552
+ }
553
+ else if (typeof parameters.maxLength === "number") {
554
+ maxLength = Maybe.of(parameters.maxLength);
555
+ }
556
+ else if (parameters.maxLength === undefined) {
557
+ maxLength = Maybe.empty();
558
+ }
559
+ else {
560
+ maxLength = parameters.maxLength;
561
+ }
562
+ let minCount;
563
+ if (Maybe.isMaybe(parameters.minCount)) {
564
+ minCount = parameters.minCount;
565
+ }
566
+ else if (typeof parameters.minCount === "number") {
567
+ minCount = Maybe.of(parameters.minCount);
568
+ }
569
+ else if (parameters.minCount === undefined) {
570
+ minCount = Maybe.empty();
571
+ }
572
+ else {
573
+ minCount = parameters.minCount;
574
+ }
575
+ let minExclusive;
576
+ if (Maybe.isMaybe(parameters.minExclusive)) {
577
+ minExclusive = parameters.minExclusive;
578
+ }
579
+ else if (typeof parameters.minExclusive === "bigint") {
580
+ minExclusive = Maybe.of($literalFactory.bigint(parameters.minExclusive));
581
+ }
582
+ else if (typeof parameters.minExclusive === "boolean") {
583
+ minExclusive = Maybe.of($literalFactory.boolean(parameters.minExclusive));
584
+ }
585
+ else if (typeof parameters.minExclusive === "object" &&
586
+ parameters.minExclusive instanceof Date) {
587
+ minExclusive = Maybe.of($literalFactory.date(parameters.minExclusive));
588
+ }
589
+ else if (typeof parameters.minExclusive === "number") {
590
+ minExclusive = Maybe.of($literalFactory.number(parameters.minExclusive));
591
+ }
592
+ else if (typeof parameters.minExclusive === "string") {
593
+ minExclusive = Maybe.of($literalFactory.string(parameters.minExclusive));
594
+ }
595
+ else if (typeof parameters.minExclusive === "object") {
596
+ minExclusive = Maybe.of(parameters.minExclusive);
597
+ }
598
+ else if (parameters.minExclusive === undefined) {
599
+ minExclusive = Maybe.empty();
600
+ }
601
+ else {
602
+ minExclusive = parameters.minExclusive;
603
+ }
604
+ let minInclusive;
605
+ if (Maybe.isMaybe(parameters.minInclusive)) {
606
+ minInclusive = parameters.minInclusive;
607
+ }
608
+ else if (typeof parameters.minInclusive === "bigint") {
609
+ minInclusive = Maybe.of($literalFactory.bigint(parameters.minInclusive));
610
+ }
611
+ else if (typeof parameters.minInclusive === "boolean") {
612
+ minInclusive = Maybe.of($literalFactory.boolean(parameters.minInclusive));
613
+ }
614
+ else if (typeof parameters.minInclusive === "object" &&
615
+ parameters.minInclusive instanceof Date) {
616
+ minInclusive = Maybe.of($literalFactory.date(parameters.minInclusive));
617
+ }
618
+ else if (typeof parameters.minInclusive === "number") {
619
+ minInclusive = Maybe.of($literalFactory.number(parameters.minInclusive));
620
+ }
621
+ else if (typeof parameters.minInclusive === "string") {
622
+ minInclusive = Maybe.of($literalFactory.string(parameters.minInclusive));
623
+ }
624
+ else if (typeof parameters.minInclusive === "object") {
625
+ minInclusive = Maybe.of(parameters.minInclusive);
626
+ }
627
+ else if (parameters.minInclusive === undefined) {
628
+ minInclusive = Maybe.empty();
629
+ }
630
+ else {
631
+ minInclusive = parameters.minInclusive;
632
+ }
633
+ let minLength;
634
+ if (Maybe.isMaybe(parameters.minLength)) {
635
+ minLength = parameters.minLength;
636
+ }
637
+ else if (typeof parameters.minLength === "number") {
638
+ minLength = Maybe.of(parameters.minLength);
639
+ }
640
+ else if (parameters.minLength === undefined) {
641
+ minLength = Maybe.empty();
642
+ }
643
+ else {
644
+ minLength = parameters.minLength;
645
+ }
646
+ let mutable;
647
+ if (Maybe.isMaybe(parameters.mutable)) {
648
+ mutable = parameters.mutable;
649
+ }
650
+ else if (typeof parameters.mutable === "boolean") {
651
+ mutable = Maybe.of(parameters.mutable);
652
+ }
653
+ else if (parameters.mutable === undefined) {
654
+ mutable = Maybe.empty();
655
+ }
656
+ else {
657
+ mutable = parameters.mutable;
658
+ }
659
+ let name;
660
+ if (Maybe.isMaybe(parameters.name)) {
661
+ name = parameters.name;
662
+ }
663
+ else if (typeof parameters.name === "string") {
664
+ name = Maybe.of(parameters.name);
665
+ }
666
+ else if (parameters.name === undefined) {
667
+ name = Maybe.empty();
668
+ }
669
+ else {
670
+ name = parameters.name;
671
+ }
672
+ let nodeKind;
673
+ if (Maybe.isMaybe(parameters.nodeKind)) {
674
+ nodeKind = parameters.nodeKind;
675
+ }
676
+ else if (typeof parameters.nodeKind === "object") {
677
+ nodeKind = Maybe.of(parameters.nodeKind);
678
+ }
679
+ else if (typeof parameters.nodeKind === "string") {
680
+ nodeKind = Maybe.of(dataFactory.namedNode(parameters.nodeKind));
681
+ }
682
+ else if (parameters.nodeKind === undefined) {
683
+ nodeKind = Maybe.empty();
684
+ }
685
+ else {
686
+ nodeKind = parameters.nodeKind;
687
+ }
688
+ let nodes;
689
+ if (parameters.nodes === undefined) {
690
+ nodes = [];
691
+ }
692
+ else if ($isReadonlyObjectArray(parameters.nodes)) {
693
+ nodes = parameters.nodes;
694
+ }
695
+ else if ($isReadonlyStringArray(parameters.nodes)) {
696
+ nodes = parameters.nodes.map((item) => dataFactory.namedNode(item));
697
+ }
698
+ else {
699
+ nodes = parameters.nodes;
700
+ }
701
+ let not;
702
+ if (parameters.not === undefined) {
703
+ not = [];
704
+ }
705
+ else if ($isReadonlyObjectArray(parameters.not)) {
706
+ not = parameters.not;
707
+ }
708
+ else if ($isReadonlyStringArray(parameters.not)) {
709
+ not = parameters.not.map((item) => dataFactory.namedNode(item));
710
+ }
711
+ else {
712
+ not = parameters.not;
713
+ }
714
+ let or;
715
+ if (Maybe.isMaybe(parameters.or)) {
716
+ or = parameters.or;
717
+ }
718
+ else if ($isReadonlyObjectArray(parameters.or)) {
719
+ or = Maybe.of(parameters.or);
720
+ }
721
+ else if ($isReadonlyStringArray(parameters.or)) {
722
+ or = Maybe.of(parameters.or.map((item) => dataFactory.namedNode(item)));
723
+ }
724
+ else if (parameters.or === undefined) {
725
+ or = Maybe.empty();
726
+ }
727
+ else {
728
+ or = parameters.or;
729
+ }
730
+ let order;
731
+ if (Maybe.isMaybe(parameters.order)) {
732
+ order = parameters.order;
733
+ }
734
+ else if (typeof parameters.order === "number") {
735
+ order = Maybe.of(parameters.order);
736
+ }
737
+ else if (parameters.order === undefined) {
738
+ order = Maybe.empty();
739
+ }
740
+ else {
741
+ order = parameters.order;
742
+ }
743
+ const path = parameters.path;
744
+ let patterns;
745
+ if (parameters.patterns === undefined) {
746
+ patterns = [];
747
+ }
748
+ else if (typeof parameters.patterns === "object") {
749
+ patterns = parameters.patterns;
750
+ }
751
+ else {
752
+ patterns = parameters.patterns;
753
+ }
754
+ let resolve;
755
+ if (Maybe.isMaybe(parameters.resolve)) {
756
+ resolve = parameters.resolve;
757
+ }
758
+ else if (typeof parameters.resolve === "object") {
759
+ resolve = Maybe.of(parameters.resolve);
760
+ }
761
+ else if (typeof parameters.resolve === "string") {
762
+ resolve = Maybe.of(dataFactory.namedNode(parameters.resolve));
763
+ }
764
+ else if (parameters.resolve === undefined) {
765
+ resolve = Maybe.empty();
766
+ }
767
+ else {
768
+ resolve = parameters.resolve;
769
+ }
770
+ let shaclmateName;
771
+ if (Maybe.isMaybe(parameters.shaclmateName)) {
772
+ shaclmateName = parameters.shaclmateName;
773
+ }
774
+ else if (typeof parameters.shaclmateName === "string") {
775
+ shaclmateName = Maybe.of(parameters.shaclmateName);
776
+ }
777
+ else if (parameters.shaclmateName === undefined) {
778
+ shaclmateName = Maybe.empty();
779
+ }
780
+ else {
781
+ shaclmateName = parameters.shaclmateName;
782
+ }
783
+ let uniqueLang;
784
+ if (Maybe.isMaybe(parameters.uniqueLang)) {
785
+ uniqueLang = parameters.uniqueLang;
786
+ }
787
+ else if (typeof parameters.uniqueLang === "boolean") {
788
+ uniqueLang = Maybe.of(parameters.uniqueLang);
789
+ }
790
+ else if (parameters.uniqueLang === undefined) {
791
+ uniqueLang = Maybe.empty();
792
+ }
793
+ else {
794
+ uniqueLang = parameters.uniqueLang;
795
+ }
796
+ let visibility;
797
+ if (Maybe.isMaybe(parameters.visibility)) {
798
+ visibility = parameters.visibility;
799
+ }
800
+ else if (typeof parameters.visibility === "object") {
801
+ visibility = Maybe.of(parameters.visibility);
802
+ }
803
+ else if (typeof parameters.visibility === "string") {
804
+ visibility = Maybe.of(dataFactory.namedNode(parameters.visibility));
805
+ }
806
+ else if (parameters.visibility === undefined) {
807
+ visibility = Maybe.empty();
808
+ }
809
+ else {
810
+ visibility = parameters.visibility;
811
+ }
812
+ let xone;
813
+ if (Maybe.isMaybe(parameters.xone)) {
814
+ xone = parameters.xone;
815
+ }
816
+ else if ($isReadonlyObjectArray(parameters.xone)) {
817
+ xone = Maybe.of(parameters.xone);
818
+ }
819
+ else if ($isReadonlyStringArray(parameters.xone)) {
820
+ xone = Maybe.of(parameters.xone.map((item) => dataFactory.namedNode(item)));
821
+ }
822
+ else if (parameters.xone === undefined) {
823
+ xone = Maybe.empty();
824
+ }
825
+ else {
826
+ xone = parameters.xone;
827
+ }
828
+ return {
829
+ $identifier,
830
+ $type,
831
+ and,
832
+ classes,
833
+ comment,
834
+ datatype,
835
+ deactivated,
836
+ defaultValue,
837
+ description,
838
+ flags,
839
+ groups,
840
+ hasValues,
841
+ in_,
842
+ isDefinedBy,
843
+ label,
844
+ languageIn,
845
+ maxCount,
846
+ maxExclusive,
847
+ maxInclusive,
848
+ maxLength,
849
+ minCount,
850
+ minExclusive,
851
+ minInclusive,
852
+ minLength,
853
+ mutable,
854
+ name,
855
+ nodeKind,
856
+ nodes,
857
+ not,
858
+ or,
859
+ order,
860
+ path,
861
+ patterns,
862
+ resolve,
863
+ shaclmateName,
864
+ uniqueLang,
865
+ visibility,
866
+ xone,
867
+ };
868
+ }
869
+ PropertyShape.$create = $create;
870
+ let $Identifier;
871
+ (function ($Identifier) {
872
+ $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
873
+ $Identifier.toString = Resource.Identifier.toString;
874
+ })($Identifier = PropertyShape.$Identifier || (PropertyShape.$Identifier = {}));
875
+ function $filter(filter, value) {
876
+ if (filter.$identifier !== undefined &&
877
+ !$filterIdentifier(filter.$identifier, value.$identifier)) {
878
+ return false;
879
+ }
880
+ if (filter.and !== undefined &&
881
+ !$filterMaybe($filterArray($filterIdentifier))(filter.and, value.and)) {
882
+ return false;
883
+ }
884
+ if (filter.classes !== undefined &&
885
+ !$filterArray($filterIri)(filter.classes, value.classes)) {
886
+ return false;
887
+ }
888
+ if (filter.comment !== undefined &&
889
+ !$filterMaybe($filterString)(filter.comment, value.comment)) {
890
+ return false;
891
+ }
892
+ if (filter.datatype !== undefined &&
893
+ !$filterMaybe($filterIri)(filter.datatype, value.datatype)) {
894
+ return false;
895
+ }
896
+ if (filter.deactivated !== undefined &&
897
+ !$filterMaybe($filterBoolean)(filter.deactivated, value.deactivated)) {
898
+ return false;
899
+ }
900
+ if (filter.defaultValue !== undefined &&
901
+ !$filterMaybe($filterTerm)(filter.defaultValue, value.defaultValue)) {
902
+ return false;
903
+ }
904
+ if (filter.description !== undefined &&
905
+ !$filterMaybe($filterString)(filter.description, value.description)) {
906
+ return false;
907
+ }
908
+ if (filter.flags !== undefined &&
909
+ !$filterArray($filterString)(filter.flags, value.flags)) {
910
+ return false;
911
+ }
912
+ if (filter.groups !== undefined &&
913
+ !$filterArray($filterIdentifier)(filter.groups, value.groups)) {
914
+ return false;
915
+ }
916
+ if (filter.hasValues !== undefined &&
917
+ !$filterArray($filterTerm)(filter.hasValues, value.hasValues)) {
918
+ return false;
919
+ }
920
+ if (filter.in_ !== undefined &&
921
+ !$filterMaybe($filterArray($filterTerm))(filter.in_, value.in_)) {
922
+ return false;
923
+ }
924
+ if (filter.isDefinedBy !== undefined &&
925
+ !$filterMaybe($filterIdentifier)(filter.isDefinedBy, value.isDefinedBy)) {
926
+ return false;
927
+ }
928
+ if (filter.label !== undefined &&
929
+ !$filterMaybe($filterString)(filter.label, value.label)) {
930
+ return false;
931
+ }
932
+ if (filter.languageIn !== undefined &&
933
+ !$filterMaybe($filterArray($filterString))(filter.languageIn, value.languageIn)) {
934
+ return false;
935
+ }
936
+ if (filter.maxCount !== undefined &&
937
+ !$filterMaybe(($filterNumeric))(filter.maxCount, value.maxCount)) {
938
+ return false;
939
+ }
940
+ if (filter.maxExclusive !== undefined &&
941
+ !$filterMaybe($filterLiteral)(filter.maxExclusive, value.maxExclusive)) {
942
+ return false;
943
+ }
944
+ if (filter.maxInclusive !== undefined &&
945
+ !$filterMaybe($filterLiteral)(filter.maxInclusive, value.maxInclusive)) {
946
+ return false;
947
+ }
948
+ if (filter.maxLength !== undefined &&
949
+ !$filterMaybe(($filterNumeric))(filter.maxLength, value.maxLength)) {
950
+ return false;
951
+ }
952
+ if (filter.minCount !== undefined &&
953
+ !$filterMaybe(($filterNumeric))(filter.minCount, value.minCount)) {
954
+ return false;
955
+ }
956
+ if (filter.minExclusive !== undefined &&
957
+ !$filterMaybe($filterLiteral)(filter.minExclusive, value.minExclusive)) {
958
+ return false;
959
+ }
960
+ if (filter.minInclusive !== undefined &&
961
+ !$filterMaybe($filterLiteral)(filter.minInclusive, value.minInclusive)) {
962
+ return false;
963
+ }
964
+ if (filter.minLength !== undefined &&
965
+ !$filterMaybe(($filterNumeric))(filter.minLength, value.minLength)) {
966
+ return false;
967
+ }
968
+ if (filter.mutable !== undefined &&
969
+ !$filterMaybe($filterBoolean)(filter.mutable, value.mutable)) {
970
+ return false;
971
+ }
972
+ if (filter.name !== undefined &&
973
+ !$filterMaybe($filterString)(filter.name, value.name)) {
974
+ return false;
975
+ }
976
+ if (filter.nodeKind !== undefined &&
977
+ !$filterMaybe($filterIri)(filter.nodeKind, value.nodeKind)) {
978
+ return false;
979
+ }
980
+ if (filter.nodes !== undefined &&
981
+ !$filterArray($filterIdentifier)(filter.nodes, value.nodes)) {
982
+ return false;
983
+ }
984
+ if (filter.not !== undefined &&
985
+ !$filterArray($filterIdentifier)(filter.not, value.not)) {
986
+ return false;
987
+ }
988
+ if (filter.or !== undefined &&
989
+ !$filterMaybe($filterArray($filterIdentifier))(filter.or, value.or)) {
990
+ return false;
991
+ }
992
+ if (filter.order !== undefined &&
993
+ !$filterMaybe(($filterNumeric))(filter.order, value.order)) {
994
+ return false;
995
+ }
996
+ if (filter.path !== undefined &&
997
+ !$PropertyPath.$filter(filter.path, value.path)) {
998
+ return false;
999
+ }
1000
+ if (filter.patterns !== undefined &&
1001
+ !$filterArray($filterString)(filter.patterns, value.patterns)) {
1002
+ return false;
1003
+ }
1004
+ if (filter.resolve !== undefined &&
1005
+ !$filterMaybe($filterIdentifier)(filter.resolve, value.resolve)) {
1006
+ return false;
1007
+ }
1008
+ if (filter.shaclmateName !== undefined &&
1009
+ !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
1010
+ return false;
1011
+ }
1012
+ if (filter.uniqueLang !== undefined &&
1013
+ !$filterMaybe($filterBoolean)(filter.uniqueLang, value.uniqueLang)) {
1014
+ return false;
1015
+ }
1016
+ if (filter.visibility !== undefined &&
1017
+ !$filterMaybe($filterIri)(filter.visibility, value.visibility)) {
1018
+ return false;
1019
+ }
1020
+ if (filter.xone !== undefined &&
1021
+ !$filterMaybe($filterArray($filterIdentifier))(filter.xone, value.xone)) {
1022
+ return false;
1023
+ }
1024
+ return true;
1025
+ }
1026
+ PropertyShape.$filter = $filter;
1027
+ PropertyShape.$fromRdfResource = (resource, options) => {
1028
+ let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
1029
+ if (!objectSet) {
1030
+ objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
1031
+ }
1032
+ return PropertyShape.$propertiesFromRdfResource(resource, {
1033
+ context,
1034
+ graph,
1035
+ ignoreRdfType,
1036
+ objectSet,
1037
+ preferredLanguages,
1038
+ });
1039
+ };
1040
+ PropertyShape.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
1041
+ .toResource()
1042
+ .chain((resource) => PropertyShape.$fromRdfResource(resource, options))));
1043
+ PropertyShape.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyShape");
1044
+ function isPropertyShape(object) {
1045
+ switch (object.$type) {
1046
+ case "PropertyShape":
1047
+ return true;
1048
+ default:
1049
+ return false;
1050
+ }
1051
+ }
1052
+ PropertyShape.isPropertyShape = isPropertyShape;
1053
+ PropertyShape.$propertiesFromRdfResource = ($resource, _$options) => {
1054
+ return (!_$options.ignoreRdfType
1055
+ ? $resource
1056
+ .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1057
+ .chain((actualRdfType) => actualRdfType.toIri())
1058
+ .chain((actualRdfType) => {
1059
+ // Check the expected type and its known subtypes
1060
+ switch (actualRdfType.value) {
1061
+ case "http://www.w3.org/ns/shacl#PropertyShape":
1062
+ return Right(true);
1063
+ }
1064
+ // Check arbitrary rdfs:subClassOf's of the expected type
1065
+ if ($resource.isInstanceOf(PropertyShape.$fromRdfType, {
1066
+ graph: _$options.graph,
1067
+ })) {
1068
+ return Right(true);
1069
+ }
1070
+ return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyShape)`));
1071
+ })
1072
+ : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
1073
+ dataFactory: dataFactory,
1074
+ focusResource: $resource,
1075
+ propertyPath: $RdfVocabularies.rdf.subject,
1076
+ term: $resource.identifier,
1077
+ }).toValues())
1078
+ .chain((values) => values.chainMap((value) => value.toIdentifier()))
1079
+ .chain((values) => values.head())
1080
+ .chain(($identifier) => Right("PropertyShape").chain(($type) => $shaclPropertyFromRdf({
1081
+ graph: _$options.graph,
1082
+ resource: $resource,
1083
+ propertySchema: PropertyShape.$schema.properties.and,
1084
+ typeFromRdf: (resourceValues) => resourceValues
1085
+ .chain((values) => values.chainMap((value) => value.toList({ graph: _$options.graph })))
1086
+ .chain((valueLists) => valueLists.chainMap((valueList) => Right(Resource.Values.fromArray({
1087
+ focusResource: $resource,
1088
+ propertyPath: PropertyShape.$schema.properties.and.path,
1089
+ values: valueList.toArray(),
1090
+ })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
1091
+ .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
1092
+ .map((values) => values.length > 0
1093
+ ? values.map((value) => Maybe.of(value))
1094
+ : Resource.Values.fromValue({
1095
+ focusResource: $resource,
1096
+ propertyPath: PropertyShape.$schema.properties.and.path,
1097
+ value: Maybe.empty(),
1098
+ })),
1099
+ }).chain((and) => $shaclPropertyFromRdf({
1100
+ graph: _$options.graph,
1101
+ resource: $resource,
1102
+ propertySchema: PropertyShape.$schema.properties.classes,
1103
+ typeFromRdf: (resourceValues) => resourceValues
1104
+ .chain((values) => values.chainMap((value) => value.toIri()))
1105
+ .map((values) => values.toArray())
1106
+ .map((valuesArray) => Resource.Values.fromValue({
1107
+ focusResource: $resource,
1108
+ propertyPath: PropertyShape.$schema.properties.classes.path,
1109
+ value: valuesArray,
1110
+ })),
1111
+ }).chain((classes) => $shaclPropertyFromRdf({
1112
+ graph: _$options.graph,
1113
+ resource: $resource,
1114
+ propertySchema: PropertyShape.$schema.properties.comment,
1115
+ typeFromRdf: (resourceValues) => resourceValues
1116
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1117
+ .chain((values) => values.chainMap((value) => value.toString()))
1118
+ .map((values) => values.length > 0
1119
+ ? values.map((value) => Maybe.of(value))
1120
+ : Resource.Values.fromValue({
1121
+ focusResource: $resource,
1122
+ propertyPath: PropertyShape.$schema.properties.comment.path,
1123
+ value: Maybe.empty(),
1124
+ })),
1125
+ }).chain((comment) => $shaclPropertyFromRdf({
1126
+ graph: _$options.graph,
1127
+ resource: $resource,
1128
+ propertySchema: PropertyShape.$schema.properties.datatype,
1129
+ typeFromRdf: (resourceValues) => resourceValues
1130
+ .chain((values) => values.chainMap((value) => value.toIri()))
1131
+ .map((values) => values.length > 0
1132
+ ? values.map((value) => Maybe.of(value))
1133
+ : Resource.Values.fromValue({
1134
+ focusResource: $resource,
1135
+ propertyPath: PropertyShape.$schema.properties.datatype
1136
+ .path,
1137
+ value: Maybe.empty(),
1138
+ })),
1139
+ }).chain((datatype) => $shaclPropertyFromRdf({
1140
+ graph: _$options.graph,
1141
+ resource: $resource,
1142
+ propertySchema: PropertyShape.$schema.properties.deactivated,
1143
+ typeFromRdf: (resourceValues) => resourceValues
1144
+ .chain((values) => values.chainMap((value) => value.toBoolean()))
1145
+ .map((values) => values.length > 0
1146
+ ? values.map((value) => Maybe.of(value))
1147
+ : Resource.Values.fromValue({
1148
+ focusResource: $resource,
1149
+ propertyPath: PropertyShape.$schema.properties.deactivated
1150
+ .path,
1151
+ value: Maybe.empty(),
1152
+ })),
1153
+ }).chain((deactivated) => $shaclPropertyFromRdf({
1154
+ graph: _$options.graph,
1155
+ resource: $resource,
507
1156
  propertySchema: PropertyShape.$schema.properties.defaultValue,
508
1157
  typeFromRdf: (resourceValues) => resourceValues
509
1158
  .chain((values) => values.chainMap((value) => value.toTerm().chain((term) => {
@@ -956,16 +1605,18 @@ export var PropertyShape;
956
1605
  values: valueList.toArray(),
957
1606
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
958
1607
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
959
- .map((values) => values.toArray())
960
- .map((valuesArray) => Resource.Values.fromValue({
961
- focusResource: $resource,
962
- propertyPath: PropertyShape
963
- .$schema
964
- .properties
965
- .or
966
- .path,
967
- value: valuesArray,
968
- })),
1608
+ .map((values) => values.length >
1609
+ 0
1610
+ ? values.map((value) => Maybe.of(value))
1611
+ : Resource.Values.fromValue({
1612
+ focusResource: $resource,
1613
+ propertyPath: PropertyShape
1614
+ .$schema
1615
+ .properties
1616
+ .or
1617
+ .path,
1618
+ value: Maybe.empty(),
1619
+ })),
969
1620
  }).chain((or) => $shaclPropertyFromRdf({
970
1621
  graph: _$options.graph,
971
1622
  resource: $resource,
@@ -1129,16 +1780,18 @@ export var PropertyShape;
1129
1780
  values: valueList.toArray(),
1130
1781
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
1131
1782
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
1132
- .map((values) => values.toArray())
1133
- .map((valuesArray) => Resource.Values.fromValue({
1134
- focusResource: $resource,
1135
- propertyPath: PropertyShape
1136
- .$schema
1137
- .properties
1138
- .xone
1139
- .path,
1140
- value: valuesArray,
1141
- })),
1783
+ .map((values) => values.length >
1784
+ 0
1785
+ ? values.map((value) => Maybe.of(value))
1786
+ : Resource.Values.fromValue({
1787
+ focusResource: $resource,
1788
+ propertyPath: PropertyShape
1789
+ .$schema
1790
+ .properties
1791
+ .xone
1792
+ .path,
1793
+ value: Maybe.empty(),
1794
+ })),
1142
1795
  }).map((xone) => ({
1143
1796
  $identifier,
1144
1797
  $type,
@@ -1196,7 +1849,7 @@ export var PropertyShape;
1196
1849
  and: {
1197
1850
  kind: "Shacl",
1198
1851
  type: () => ({
1199
- kind: "Set",
1852
+ kind: "Maybe",
1200
1853
  item: () => ({
1201
1854
  kind: "List",
1202
1855
  item: () => ({ kind: "Identifier" }),
@@ -1431,7 +2084,7 @@ export var PropertyShape;
1431
2084
  or: {
1432
2085
  kind: "Shacl",
1433
2086
  type: () => ({
1434
- kind: "Set",
2087
+ kind: "Maybe",
1435
2088
  item: () => ({
1436
2089
  kind: "List",
1437
2090
  item: () => ({ kind: "Identifier" }),
@@ -1502,7 +2155,7 @@ export var PropertyShape;
1502
2155
  xone: {
1503
2156
  kind: "Shacl",
1504
2157
  type: () => ({
1505
- kind: "Set",
2158
+ kind: "Maybe",
1506
2159
  item: () => ({
1507
2160
  kind: "List",
1508
2161
  item: () => ({ kind: "Identifier" }),
@@ -1519,9 +2172,9 @@ export var PropertyShape;
1519
2172
  if (!options?.ignoreRdfType) {
1520
2173
  resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyShape"), options?.graph);
1521
2174
  }
1522
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _propertyShape.and.flatMap((item) => [
1523
- item.length > 0
1524
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
2175
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _propertyShape.and.toList().flatMap((value) => [
2176
+ value.length > 0
2177
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
1525
2178
  if (itemIndex === 0) {
1526
2179
  currentSubListResource = listResource;
1527
2180
  }
@@ -1641,9 +2294,9 @@ export var PropertyShape;
1641
2294
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"), _propertyShape.nodeKind.toList(), options?.graph);
1642
2295
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#node"), _propertyShape.nodes.flatMap((item) => [item]), options?.graph);
1643
2296
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#not"), _propertyShape.not.flatMap((item) => [item]), options?.graph);
1644
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _propertyShape.or.flatMap((item) => [
1645
- item.length > 0
1646
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
2297
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _propertyShape.or.toList().flatMap((value) => [
2298
+ value.length > 0
2299
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
1647
2300
  if (itemIndex === 0) {
1648
2301
  currentSubListResource = listResource;
1649
2302
  }
@@ -1685,9 +2338,9 @@ export var PropertyShape;
1685
2338
  $literalFactory.boolean(value, $RdfVocabularies.xsd.boolean),
1686
2339
  ]), options?.graph);
1687
2340
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#visibility"), _propertyShape.visibility.toList(), options?.graph);
1688
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _propertyShape.xone.flatMap((item) => [
1689
- item.length > 0
1690
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
2341
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _propertyShape.xone.toList().flatMap((value) => [
2342
+ value.length > 0
2343
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
1691
2344
  if (itemIndex === 0) {
1692
2345
  currentSubListResource = listResource;
1693
2346
  }
@@ -1709,15 +2362,319 @@ export var PropertyShape;
1709
2362
  ]), options?.graph);
1710
2363
  return resource;
1711
2364
  }
1712
- PropertyShape.$toRdfResource = $toRdfResource;
1713
- })(PropertyShape || (PropertyShape = {}));
1714
- export var PropertyGroup;
1715
- (function (PropertyGroup) {
2365
+ PropertyShape.$toRdfResource = $toRdfResource;
2366
+ })(PropertyShape || (PropertyShape = {}));
2367
+ export var PropertyGroup;
2368
+ (function (PropertyGroup) {
2369
+ function $create(parameters) {
2370
+ let $identifier;
2371
+ if (typeof parameters?.$identifier === "object") {
2372
+ $identifier = parameters?.$identifier;
2373
+ }
2374
+ else if (typeof parameters?.$identifier === "string") {
2375
+ $identifier = dataFactory.namedNode(parameters?.$identifier);
2376
+ }
2377
+ else if (parameters?.$identifier === undefined) {
2378
+ $identifier = dataFactory.blankNode();
2379
+ }
2380
+ else {
2381
+ $identifier = parameters?.$identifier;
2382
+ }
2383
+ const $type = "PropertyGroup";
2384
+ let comment;
2385
+ if (Maybe.isMaybe(parameters?.comment)) {
2386
+ comment = parameters?.comment;
2387
+ }
2388
+ else if (typeof parameters?.comment === "string") {
2389
+ comment = Maybe.of(parameters?.comment);
2390
+ }
2391
+ else if (parameters?.comment === undefined) {
2392
+ comment = Maybe.empty();
2393
+ }
2394
+ else {
2395
+ comment = parameters?.comment;
2396
+ }
2397
+ let label;
2398
+ if (Maybe.isMaybe(parameters?.label)) {
2399
+ label = parameters?.label;
2400
+ }
2401
+ else if (typeof parameters?.label === "string") {
2402
+ label = Maybe.of(parameters?.label);
2403
+ }
2404
+ else if (parameters?.label === undefined) {
2405
+ label = Maybe.empty();
2406
+ }
2407
+ else {
2408
+ label = parameters?.label;
2409
+ }
2410
+ return { $identifier, $type, comment, label };
2411
+ }
2412
+ PropertyGroup.$create = $create;
2413
+ let $Identifier;
2414
+ (function ($Identifier) {
2415
+ $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
2416
+ $Identifier.toString = Resource.Identifier.toString;
2417
+ })($Identifier = PropertyGroup.$Identifier || (PropertyGroup.$Identifier = {}));
2418
+ function $filter(filter, value) {
2419
+ if (filter.$identifier !== undefined &&
2420
+ !$filterIdentifier(filter.$identifier, value.$identifier)) {
2421
+ return false;
2422
+ }
2423
+ if (filter.comment !== undefined &&
2424
+ !$filterMaybe($filterString)(filter.comment, value.comment)) {
2425
+ return false;
2426
+ }
2427
+ if (filter.label !== undefined &&
2428
+ !$filterMaybe($filterString)(filter.label, value.label)) {
2429
+ return false;
2430
+ }
2431
+ return true;
2432
+ }
2433
+ PropertyGroup.$filter = $filter;
2434
+ PropertyGroup.$fromRdfResource = (resource, options) => {
2435
+ let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
2436
+ if (!objectSet) {
2437
+ objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
2438
+ }
2439
+ return PropertyGroup.$propertiesFromRdfResource(resource, {
2440
+ context,
2441
+ graph,
2442
+ ignoreRdfType,
2443
+ objectSet,
2444
+ preferredLanguages,
2445
+ });
2446
+ };
2447
+ PropertyGroup.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
2448
+ .toResource()
2449
+ .chain((resource) => PropertyGroup.$fromRdfResource(resource, options))));
2450
+ PropertyGroup.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup");
2451
+ function isPropertyGroup(object) {
2452
+ switch (object.$type) {
2453
+ case "PropertyGroup":
2454
+ return true;
2455
+ default:
2456
+ return false;
2457
+ }
2458
+ }
2459
+ PropertyGroup.isPropertyGroup = isPropertyGroup;
2460
+ PropertyGroup.$propertiesFromRdfResource = ($resource, _$options) => {
2461
+ return (!_$options.ignoreRdfType
2462
+ ? $resource
2463
+ .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
2464
+ .chain((actualRdfType) => actualRdfType.toIri())
2465
+ .chain((actualRdfType) => {
2466
+ // Check the expected type and its known subtypes
2467
+ switch (actualRdfType.value) {
2468
+ case "http://www.w3.org/ns/shacl#PropertyGroup":
2469
+ return Right(true);
2470
+ }
2471
+ // Check arbitrary rdfs:subClassOf's of the expected type
2472
+ if ($resource.isInstanceOf(PropertyGroup.$fromRdfType, {
2473
+ graph: _$options.graph,
2474
+ })) {
2475
+ return Right(true);
2476
+ }
2477
+ return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyGroup)`));
2478
+ })
2479
+ : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
2480
+ dataFactory: dataFactory,
2481
+ focusResource: $resource,
2482
+ propertyPath: $RdfVocabularies.rdf.subject,
2483
+ term: $resource.identifier,
2484
+ }).toValues())
2485
+ .chain((values) => values.chainMap((value) => value.toIdentifier()))
2486
+ .chain((values) => values.head())
2487
+ .chain(($identifier) => Right("PropertyGroup").chain(($type) => $shaclPropertyFromRdf({
2488
+ graph: _$options.graph,
2489
+ resource: $resource,
2490
+ propertySchema: PropertyGroup.$schema.properties.comment,
2491
+ typeFromRdf: (resourceValues) => resourceValues
2492
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2493
+ .chain((values) => values.chainMap((value) => value.toString()))
2494
+ .map((values) => values.length > 0
2495
+ ? values.map((value) => Maybe.of(value))
2496
+ : Resource.Values.fromValue({
2497
+ focusResource: $resource,
2498
+ propertyPath: PropertyShape.$schema.properties.comment.path,
2499
+ value: Maybe.empty(),
2500
+ })),
2501
+ }).chain((comment) => $shaclPropertyFromRdf({
2502
+ graph: _$options.graph,
2503
+ resource: $resource,
2504
+ propertySchema: PropertyGroup.$schema.properties.label,
2505
+ typeFromRdf: (resourceValues) => resourceValues
2506
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2507
+ .chain((values) => values.chainMap((value) => value.toString()))
2508
+ .map((values) => values.length > 0
2509
+ ? values.map((value) => Maybe.of(value))
2510
+ : Resource.Values.fromValue({
2511
+ focusResource: $resource,
2512
+ propertyPath: PropertyShape.$schema.properties.label.path,
2513
+ value: Maybe.empty(),
2514
+ })),
2515
+ }).map((label) => ({ $identifier, $type, comment, label }))))));
2516
+ };
2517
+ PropertyGroup.$schema = {
2518
+ properties: {
2519
+ $identifier: {
2520
+ kind: "Identifier",
2521
+ type: () => ({ kind: "Identifier" }),
2522
+ },
2523
+ $type: {
2524
+ kind: "Discriminant",
2525
+ type: () => ({
2526
+ kind: "TypeDiscriminant",
2527
+ ownValues: ["PropertyGroup"],
2528
+ }),
2529
+ },
2530
+ comment: {
2531
+ kind: "Shacl",
2532
+ type: () => ({
2533
+ kind: "Maybe",
2534
+ item: () => ({ kind: "String" }),
2535
+ }),
2536
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2537
+ },
2538
+ label: {
2539
+ kind: "Shacl",
2540
+ type: () => ({
2541
+ kind: "Maybe",
2542
+ item: () => ({ kind: "String" }),
2543
+ }),
2544
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2545
+ },
2546
+ },
2547
+ };
2548
+ function $toRdfResource(_propertyGroup, options) {
2549
+ const resourceSet = options?.resourceSet ??
2550
+ new ResourceSet(datasetFactory.dataset(), { dataFactory: dataFactory });
2551
+ const resource = resourceSet.resource(_propertyGroup.$identifier);
2552
+ if (!options?.ignoreRdfType) {
2553
+ resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup"), options?.graph);
2554
+ }
2555
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _propertyGroup.comment
2556
+ .toList()
2557
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2558
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _propertyGroup.label
2559
+ .toList()
2560
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2561
+ return resource;
2562
+ }
2563
+ PropertyGroup.$toRdfResource = $toRdfResource;
2564
+ })(PropertyGroup || (PropertyGroup = {}));
2565
+ export var Ontology;
2566
+ (function (Ontology) {
2567
+ function $create(parameters) {
2568
+ let $identifier;
2569
+ if (typeof parameters?.$identifier === "object") {
2570
+ $identifier = parameters?.$identifier;
2571
+ }
2572
+ else if (typeof parameters?.$identifier === "string") {
2573
+ $identifier = dataFactory.namedNode(parameters?.$identifier);
2574
+ }
2575
+ else if (parameters?.$identifier === undefined) {
2576
+ $identifier = dataFactory.blankNode();
2577
+ }
2578
+ else {
2579
+ $identifier = parameters?.$identifier;
2580
+ }
2581
+ const $type = "Ontology";
2582
+ let comment;
2583
+ if (Maybe.isMaybe(parameters?.comment)) {
2584
+ comment = parameters?.comment;
2585
+ }
2586
+ else if (typeof parameters?.comment === "string") {
2587
+ comment = Maybe.of(parameters?.comment);
2588
+ }
2589
+ else if (parameters?.comment === undefined) {
2590
+ comment = Maybe.empty();
2591
+ }
2592
+ else {
2593
+ comment = parameters?.comment;
2594
+ }
2595
+ let label;
2596
+ if (Maybe.isMaybe(parameters?.label)) {
2597
+ label = parameters?.label;
2598
+ }
2599
+ else if (typeof parameters?.label === "string") {
2600
+ label = Maybe.of(parameters?.label);
2601
+ }
2602
+ else if (parameters?.label === undefined) {
2603
+ label = Maybe.empty();
2604
+ }
2605
+ else {
2606
+ label = parameters?.label;
2607
+ }
2608
+ let tsFeatureExcludes;
2609
+ if (parameters?.tsFeatureExcludes === undefined) {
2610
+ tsFeatureExcludes = [];
2611
+ }
2612
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureExcludes)) {
2613
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
2614
+ }
2615
+ else if ($isReadonlyStringArray(parameters?.tsFeatureExcludes)) {
2616
+ tsFeatureExcludes = parameters?.tsFeatureExcludes.map((item) => dataFactory.namedNode(item));
2617
+ }
2618
+ else {
2619
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
2620
+ }
2621
+ let tsFeatureIncludes;
2622
+ if (parameters?.tsFeatureIncludes === undefined) {
2623
+ tsFeatureIncludes = [];
2624
+ }
2625
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureIncludes)) {
2626
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
2627
+ }
2628
+ else if ($isReadonlyStringArray(parameters?.tsFeatureIncludes)) {
2629
+ tsFeatureIncludes = parameters?.tsFeatureIncludes.map((item) => dataFactory.namedNode(item));
2630
+ }
2631
+ else {
2632
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
2633
+ }
2634
+ let tsImports;
2635
+ if (parameters?.tsImports === undefined) {
2636
+ tsImports = [];
2637
+ }
2638
+ else if (typeof parameters?.tsImports === "object") {
2639
+ tsImports = parameters?.tsImports;
2640
+ }
2641
+ else {
2642
+ tsImports = parameters?.tsImports;
2643
+ }
2644
+ let tsObjectDeclarationType;
2645
+ if (Maybe.isMaybe(parameters?.tsObjectDeclarationType)) {
2646
+ tsObjectDeclarationType = parameters?.tsObjectDeclarationType;
2647
+ }
2648
+ else if (typeof parameters?.tsObjectDeclarationType === "object") {
2649
+ tsObjectDeclarationType = Maybe.of(parameters?.tsObjectDeclarationType);
2650
+ }
2651
+ else if (typeof parameters?.tsObjectDeclarationType === "string") {
2652
+ tsObjectDeclarationType = Maybe.of(dataFactory.namedNode(parameters?.tsObjectDeclarationType));
2653
+ }
2654
+ else if (parameters?.tsObjectDeclarationType === undefined) {
2655
+ tsObjectDeclarationType = Maybe.empty();
2656
+ }
2657
+ else {
2658
+ tsObjectDeclarationType =
2659
+ parameters?.tsObjectDeclarationType;
2660
+ }
2661
+ return {
2662
+ $identifier,
2663
+ $type,
2664
+ comment,
2665
+ label,
2666
+ tsFeatureExcludes,
2667
+ tsFeatureIncludes,
2668
+ tsImports,
2669
+ tsObjectDeclarationType,
2670
+ };
2671
+ }
2672
+ Ontology.$create = $create;
1716
2673
  let $Identifier;
1717
2674
  (function ($Identifier) {
1718
2675
  $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
1719
2676
  $Identifier.toString = Resource.Identifier.toString;
1720
- })($Identifier = PropertyGroup.$Identifier || (PropertyGroup.$Identifier = {}));
2677
+ })($Identifier = Ontology.$Identifier || (Ontology.$Identifier = {}));
1721
2678
  function $filter(filter, value) {
1722
2679
  if (filter.$identifier !== undefined &&
1723
2680
  !$filterIdentifier(filter.$identifier, value.$identifier)) {
@@ -1731,15 +2688,31 @@ export var PropertyGroup;
1731
2688
  !$filterMaybe($filterString)(filter.label, value.label)) {
1732
2689
  return false;
1733
2690
  }
2691
+ if (filter.tsFeatureExcludes !== undefined &&
2692
+ !$filterArray($filterIri)(filter.tsFeatureExcludes, value.tsFeatureExcludes)) {
2693
+ return false;
2694
+ }
2695
+ if (filter.tsFeatureIncludes !== undefined &&
2696
+ !$filterArray($filterIri)(filter.tsFeatureIncludes, value.tsFeatureIncludes)) {
2697
+ return false;
2698
+ }
2699
+ if (filter.tsImports !== undefined &&
2700
+ !$filterArray($filterString)(filter.tsImports, value.tsImports)) {
2701
+ return false;
2702
+ }
2703
+ if (filter.tsObjectDeclarationType !== undefined &&
2704
+ !$filterMaybe($filterIri)(filter.tsObjectDeclarationType, value.tsObjectDeclarationType)) {
2705
+ return false;
2706
+ }
1734
2707
  return true;
1735
2708
  }
1736
- PropertyGroup.$filter = $filter;
1737
- PropertyGroup.$fromRdfResource = (resource, options) => {
2709
+ Ontology.$filter = $filter;
2710
+ Ontology.$fromRdfResource = (resource, options) => {
1738
2711
  let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
1739
2712
  if (!objectSet) {
1740
2713
  objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
1741
2714
  }
1742
- return PropertyGroup.$propertiesFromRdfResource(resource, {
2715
+ return Ontology.$propertiesFromRdfResource(resource, {
1743
2716
  context,
1744
2717
  graph,
1745
2718
  ignoreRdfType,
@@ -1747,20 +2720,20 @@ export var PropertyGroup;
1747
2720
  preferredLanguages,
1748
2721
  });
1749
2722
  };
1750
- PropertyGroup.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
2723
+ Ontology.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
1751
2724
  .toResource()
1752
- .chain((resource) => PropertyGroup.$fromRdfResource(resource, options))));
1753
- PropertyGroup.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup");
1754
- function isPropertyGroup(object) {
2725
+ .chain((resource) => Ontology.$fromRdfResource(resource, options))));
2726
+ Ontology.$fromRdfType = dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology");
2727
+ function isOntology(object) {
1755
2728
  switch (object.$type) {
1756
- case "PropertyGroup":
2729
+ case "Ontology":
1757
2730
  return true;
1758
2731
  default:
1759
2732
  return false;
1760
2733
  }
1761
2734
  }
1762
- PropertyGroup.isPropertyGroup = isPropertyGroup;
1763
- PropertyGroup.$propertiesFromRdfResource = ($resource, _$options) => {
2735
+ Ontology.isOntology = isOntology;
2736
+ Ontology.$propertiesFromRdfResource = ($resource, _$options) => {
1764
2737
  return (!_$options.ignoreRdfType
1765
2738
  ? $resource
1766
2739
  .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
@@ -1768,16 +2741,16 @@ export var PropertyGroup;
1768
2741
  .chain((actualRdfType) => {
1769
2742
  // Check the expected type and its known subtypes
1770
2743
  switch (actualRdfType.value) {
1771
- case "http://www.w3.org/ns/shacl#PropertyGroup":
2744
+ case "http://www.w3.org/2002/07/owl#Ontology":
1772
2745
  return Right(true);
1773
2746
  }
1774
2747
  // Check arbitrary rdfs:subClassOf's of the expected type
1775
- if ($resource.isInstanceOf(PropertyGroup.$fromRdfType, {
2748
+ if ($resource.isInstanceOf(Ontology.$fromRdfType, {
1776
2749
  graph: _$options.graph,
1777
2750
  })) {
1778
2751
  return Right(true);
1779
2752
  }
1780
- return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyGroup)`));
2753
+ return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/2002/07/owl#Ontology)`));
1781
2754
  })
1782
2755
  : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
1783
2756
  dataFactory: dataFactory,
@@ -1787,10 +2760,10 @@ export var PropertyGroup;
1787
2760
  }).toValues())
1788
2761
  .chain((values) => values.chainMap((value) => value.toIdentifier()))
1789
2762
  .chain((values) => values.head())
1790
- .chain(($identifier) => Right("PropertyGroup").chain(($type) => $shaclPropertyFromRdf({
2763
+ .chain(($identifier) => Right("Ontology").chain(($type) => $shaclPropertyFromRdf({
1791
2764
  graph: _$options.graph,
1792
2765
  resource: $resource,
1793
- propertySchema: PropertyGroup.$schema.properties.comment,
2766
+ propertySchema: Ontology.$schema.properties.comment,
1794
2767
  typeFromRdf: (resourceValues) => resourceValues
1795
2768
  .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1796
2769
  .chain((values) => values.chainMap((value) => value.toString()))
@@ -1804,7 +2777,7 @@ export var PropertyGroup;
1804
2777
  }).chain((comment) => $shaclPropertyFromRdf({
1805
2778
  graph: _$options.graph,
1806
2779
  resource: $resource,
1807
- propertySchema: PropertyGroup.$schema.properties.label,
2780
+ propertySchema: Ontology.$schema.properties.label,
1808
2781
  typeFromRdf: (resourceValues) => resourceValues
1809
2782
  .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1810
2783
  .chain((values) => values.chainMap((value) => value.toString()))
@@ -1815,9 +2788,95 @@ export var PropertyGroup;
1815
2788
  propertyPath: PropertyShape.$schema.properties.label.path,
1816
2789
  value: Maybe.empty(),
1817
2790
  })),
1818
- }).map((label) => ({ $identifier, $type, comment, label }))))));
2791
+ }).chain((label) => $shaclPropertyFromRdf({
2792
+ graph: _$options.graph,
2793
+ resource: $resource,
2794
+ propertySchema: Ontology.$schema.properties.tsFeatureExcludes,
2795
+ typeFromRdf: (resourceValues) => resourceValues
2796
+ .chain((values) => values.chainMap((value) => value.toIri([
2797
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2798
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2799
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2800
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2801
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2802
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2803
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2804
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2805
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2806
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2807
+ ])))
2808
+ .map((values) => values.toArray())
2809
+ .map((valuesArray) => Resource.Values.fromValue({
2810
+ focusResource: $resource,
2811
+ propertyPath: Ontology.$schema.properties.tsFeatureExcludes.path,
2812
+ value: valuesArray,
2813
+ })),
2814
+ }).chain((tsFeatureExcludes) => $shaclPropertyFromRdf({
2815
+ graph: _$options.graph,
2816
+ resource: $resource,
2817
+ propertySchema: Ontology.$schema.properties.tsFeatureIncludes,
2818
+ typeFromRdf: (resourceValues) => resourceValues
2819
+ .chain((values) => values.chainMap((value) => value.toIri([
2820
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2821
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2822
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2823
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2824
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2825
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2826
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2827
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2828
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2829
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2830
+ ])))
2831
+ .map((values) => values.toArray())
2832
+ .map((valuesArray) => Resource.Values.fromValue({
2833
+ focusResource: $resource,
2834
+ propertyPath: Ontology.$schema.properties.tsFeatureIncludes
2835
+ .path,
2836
+ value: valuesArray,
2837
+ })),
2838
+ }).chain((tsFeatureIncludes) => $shaclPropertyFromRdf({
2839
+ graph: _$options.graph,
2840
+ resource: $resource,
2841
+ propertySchema: Ontology.$schema.properties.tsImports,
2842
+ typeFromRdf: (resourceValues) => resourceValues
2843
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2844
+ .chain((values) => values.chainMap((value) => value.toString()))
2845
+ .map((values) => values.toArray())
2846
+ .map((valuesArray) => Resource.Values.fromValue({
2847
+ focusResource: $resource,
2848
+ propertyPath: Ontology.$schema.properties.tsImports.path,
2849
+ value: valuesArray,
2850
+ })),
2851
+ }).chain((tsImports) => $shaclPropertyFromRdf({
2852
+ graph: _$options.graph,
2853
+ resource: $resource,
2854
+ propertySchema: Ontology.$schema.properties.tsObjectDeclarationType,
2855
+ typeFromRdf: (resourceValues) => resourceValues
2856
+ .chain((values) => values.chainMap((value) => value.toIri([
2857
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2858
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2859
+ ])))
2860
+ .map((values) => values.length > 0
2861
+ ? values.map((value) => Maybe.of(value))
2862
+ : Resource.Values.fromValue({
2863
+ focusResource: $resource,
2864
+ propertyPath: Ontology.$schema.properties
2865
+ .tsObjectDeclarationType.path,
2866
+ value: Maybe.empty(),
2867
+ })),
2868
+ }).map((tsObjectDeclarationType) => ({
2869
+ $identifier,
2870
+ $type,
2871
+ comment,
2872
+ label,
2873
+ tsFeatureExcludes,
2874
+ tsFeatureIncludes,
2875
+ tsImports,
2876
+ tsObjectDeclarationType,
2877
+ }))))))))));
1819
2878
  };
1820
- PropertyGroup.$schema = {
2879
+ Ontology.$schema = {
1821
2880
  properties: {
1822
2881
  $identifier: {
1823
2882
  kind: "Identifier",
@@ -1827,372 +2886,850 @@ export var PropertyGroup;
1827
2886
  kind: "Discriminant",
1828
2887
  type: () => ({
1829
2888
  kind: "TypeDiscriminant",
1830
- ownValues: ["PropertyGroup"],
2889
+ ownValues: ["Ontology"],
2890
+ }),
2891
+ },
2892
+ comment: {
2893
+ kind: "Shacl",
2894
+ type: () => ({
2895
+ kind: "Maybe",
2896
+ item: () => ({ kind: "String" }),
2897
+ }),
2898
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2899
+ },
2900
+ label: {
2901
+ kind: "Shacl",
2902
+ type: () => ({
2903
+ kind: "Maybe",
2904
+ item: () => ({ kind: "String" }),
2905
+ }),
2906
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2907
+ },
2908
+ tsFeatureExcludes: {
2909
+ kind: "Shacl",
2910
+ type: () => ({
2911
+ kind: "Set",
2912
+ item: () => ({
2913
+ kind: "Iri",
2914
+ in: [
2915
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2916
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2917
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2918
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2919
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2920
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2921
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2922
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2923
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2924
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2925
+ ],
2926
+ }),
2927
+ }),
2928
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"),
2929
+ },
2930
+ tsFeatureIncludes: {
2931
+ kind: "Shacl",
2932
+ type: () => ({
2933
+ kind: "Set",
2934
+ item: () => ({
2935
+ kind: "Iri",
2936
+ in: [
2937
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2938
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2939
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2940
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2941
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2942
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2943
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2944
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2945
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2946
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2947
+ ],
2948
+ }),
1831
2949
  }),
2950
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"),
1832
2951
  },
1833
- comment: {
2952
+ tsImports: {
1834
2953
  kind: "Shacl",
1835
2954
  type: () => ({
1836
- kind: "Maybe",
2955
+ kind: "Set",
1837
2956
  item: () => ({ kind: "String" }),
1838
2957
  }),
1839
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2958
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"),
1840
2959
  },
1841
- label: {
2960
+ tsObjectDeclarationType: {
1842
2961
  kind: "Shacl",
1843
2962
  type: () => ({
1844
2963
  kind: "Maybe",
1845
- item: () => ({ kind: "String" }),
2964
+ item: () => ({
2965
+ kind: "Iri",
2966
+ in: [
2967
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2968
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2969
+ ],
2970
+ }),
1846
2971
  }),
1847
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2972
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"),
1848
2973
  },
1849
2974
  },
1850
2975
  };
1851
- function $toRdfResource(_propertyGroup, options) {
2976
+ function $toRdfResource(_ontology, options) {
1852
2977
  const resourceSet = options?.resourceSet ??
1853
2978
  new ResourceSet(datasetFactory.dataset(), { dataFactory: dataFactory });
1854
- const resource = resourceSet.resource(_propertyGroup.$identifier);
2979
+ const resource = resourceSet.resource(_ontology.$identifier);
1855
2980
  if (!options?.ignoreRdfType) {
1856
- resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup"), options?.graph);
2981
+ resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology"), options?.graph);
2982
+ }
2983
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _ontology.comment
2984
+ .toList()
2985
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2986
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _ontology.label
2987
+ .toList()
2988
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2989
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"), _ontology.tsFeatureExcludes.flatMap((item) => [item]), options?.graph);
2990
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"), _ontology.tsFeatureIncludes.flatMap((item) => [item]), options?.graph);
2991
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"), _ontology.tsImports.flatMap((item) => [$literalFactory.string(item)]), options?.graph);
2992
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"), _ontology.tsObjectDeclarationType.toList(), options?.graph);
2993
+ return resource;
2994
+ }
2995
+ Ontology.$toRdfResource = $toRdfResource;
2996
+ })(Ontology || (Ontology = {}));
2997
+ export var NodeShape;
2998
+ (function (NodeShape) {
2999
+ function $create(parameters) {
3000
+ let $identifier;
3001
+ if (typeof parameters?.$identifier === "object") {
3002
+ $identifier = parameters?.$identifier;
3003
+ }
3004
+ else if (typeof parameters?.$identifier === "string") {
3005
+ $identifier = dataFactory.namedNode(parameters?.$identifier);
3006
+ }
3007
+ else if (parameters?.$identifier === undefined) {
3008
+ $identifier = dataFactory.blankNode();
3009
+ }
3010
+ else {
3011
+ $identifier = parameters?.$identifier;
3012
+ }
3013
+ const $type = "NodeShape";
3014
+ let abstract;
3015
+ if (Maybe.isMaybe(parameters?.abstract)) {
3016
+ abstract = parameters?.abstract;
3017
+ }
3018
+ else if (typeof parameters?.abstract === "boolean") {
3019
+ abstract = Maybe.of(parameters?.abstract);
3020
+ }
3021
+ else if (parameters?.abstract === undefined) {
3022
+ abstract = Maybe.empty();
3023
+ }
3024
+ else {
3025
+ abstract = parameters?.abstract;
3026
+ }
3027
+ let and;
3028
+ if (Maybe.isMaybe(parameters?.and)) {
3029
+ and = parameters?.and;
3030
+ }
3031
+ else if ($isReadonlyObjectArray(parameters?.and)) {
3032
+ and = Maybe.of(parameters?.and);
3033
+ }
3034
+ else if ($isReadonlyStringArray(parameters?.and)) {
3035
+ and = Maybe.of(parameters?.and.map((item) => dataFactory.namedNode(item)));
3036
+ }
3037
+ else if (parameters?.and === undefined) {
3038
+ and = Maybe.empty();
3039
+ }
3040
+ else {
3041
+ and = parameters?.and;
3042
+ }
3043
+ let classes;
3044
+ if (parameters?.classes === undefined) {
3045
+ classes = [];
3046
+ }
3047
+ else if ($isReadonlyObjectArray(parameters?.classes)) {
3048
+ classes = parameters?.classes;
3049
+ }
3050
+ else if ($isReadonlyStringArray(parameters?.classes)) {
3051
+ classes = parameters?.classes.map((item) => dataFactory.namedNode(item));
3052
+ }
3053
+ else {
3054
+ classes = parameters?.classes;
3055
+ }
3056
+ let closed;
3057
+ if (Maybe.isMaybe(parameters?.closed)) {
3058
+ closed = parameters?.closed;
3059
+ }
3060
+ else if (typeof parameters?.closed === "boolean") {
3061
+ closed = Maybe.of(parameters?.closed);
3062
+ }
3063
+ else if (parameters?.closed === undefined) {
3064
+ closed = Maybe.empty();
3065
+ }
3066
+ else {
3067
+ closed = parameters?.closed;
3068
+ }
3069
+ let comment;
3070
+ if (Maybe.isMaybe(parameters?.comment)) {
3071
+ comment = parameters?.comment;
3072
+ }
3073
+ else if (typeof parameters?.comment === "string") {
3074
+ comment = Maybe.of(parameters?.comment);
3075
+ }
3076
+ else if (parameters?.comment === undefined) {
3077
+ comment = Maybe.empty();
3078
+ }
3079
+ else {
3080
+ comment = parameters?.comment;
3081
+ }
3082
+ let datatype;
3083
+ if (Maybe.isMaybe(parameters?.datatype)) {
3084
+ datatype = parameters?.datatype;
3085
+ }
3086
+ else if (typeof parameters?.datatype === "object") {
3087
+ datatype = Maybe.of(parameters?.datatype);
3088
+ }
3089
+ else if (typeof parameters?.datatype === "string") {
3090
+ datatype = Maybe.of(dataFactory.namedNode(parameters?.datatype));
3091
+ }
3092
+ else if (parameters?.datatype === undefined) {
3093
+ datatype = Maybe.empty();
3094
+ }
3095
+ else {
3096
+ datatype = parameters?.datatype;
3097
+ }
3098
+ let deactivated;
3099
+ if (Maybe.isMaybe(parameters?.deactivated)) {
3100
+ deactivated = parameters?.deactivated;
3101
+ }
3102
+ else if (typeof parameters?.deactivated === "boolean") {
3103
+ deactivated = Maybe.of(parameters?.deactivated);
3104
+ }
3105
+ else if (parameters?.deactivated === undefined) {
3106
+ deactivated = Maybe.empty();
3107
+ }
3108
+ else {
3109
+ deactivated = parameters?.deactivated;
3110
+ }
3111
+ let discriminantValue;
3112
+ if (Maybe.isMaybe(parameters?.discriminantValue)) {
3113
+ discriminantValue = parameters?.discriminantValue;
3114
+ }
3115
+ else if (typeof parameters?.discriminantValue === "string") {
3116
+ discriminantValue = Maybe.of(parameters?.discriminantValue);
3117
+ }
3118
+ else if (parameters?.discriminantValue === undefined) {
3119
+ discriminantValue = Maybe.empty();
3120
+ }
3121
+ else {
3122
+ discriminantValue = parameters?.discriminantValue;
3123
+ }
3124
+ let extern;
3125
+ if (Maybe.isMaybe(parameters?.extern)) {
3126
+ extern = parameters?.extern;
3127
+ }
3128
+ else if (typeof parameters?.extern === "boolean") {
3129
+ extern = Maybe.of(parameters?.extern);
3130
+ }
3131
+ else if (parameters?.extern === undefined) {
3132
+ extern = Maybe.empty();
3133
+ }
3134
+ else {
3135
+ extern = parameters?.extern;
3136
+ }
3137
+ let flags;
3138
+ if (parameters?.flags === undefined) {
3139
+ flags = [];
3140
+ }
3141
+ else if (typeof parameters?.flags === "object") {
3142
+ flags = parameters?.flags;
3143
+ }
3144
+ else {
3145
+ flags = parameters?.flags;
3146
+ }
3147
+ let fromRdfType;
3148
+ if (Maybe.isMaybe(parameters?.fromRdfType)) {
3149
+ fromRdfType = parameters?.fromRdfType;
3150
+ }
3151
+ else if (typeof parameters?.fromRdfType === "object") {
3152
+ fromRdfType = Maybe.of(parameters?.fromRdfType);
3153
+ }
3154
+ else if (typeof parameters?.fromRdfType === "string") {
3155
+ fromRdfType = Maybe.of(dataFactory.namedNode(parameters?.fromRdfType));
3156
+ }
3157
+ else if (parameters?.fromRdfType === undefined) {
3158
+ fromRdfType = Maybe.empty();
3159
+ }
3160
+ else {
3161
+ fromRdfType = parameters?.fromRdfType;
3162
+ }
3163
+ let hasValues;
3164
+ if (parameters?.hasValues === undefined) {
3165
+ hasValues = [];
3166
+ }
3167
+ else if ($isReadonlyObjectArray(parameters?.hasValues)) {
3168
+ hasValues = parameters?.hasValues;
3169
+ }
3170
+ else if ($isReadonlyBigIntArray(parameters?.hasValues)) {
3171
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.bigint(item));
3172
+ }
3173
+ else if ($isReadonlyBooleanArray(parameters?.hasValues)) {
3174
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.boolean(item));
3175
+ }
3176
+ else if ($isReadonlyNumberArray(parameters?.hasValues)) {
3177
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.number(item));
3178
+ }
3179
+ else if ($isReadonlyStringArray(parameters?.hasValues)) {
3180
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.string(item));
3181
+ }
3182
+ else {
3183
+ hasValues = parameters?.hasValues;
3184
+ }
3185
+ let identifierMintingStrategy;
3186
+ if (Maybe.isMaybe(parameters?.identifierMintingStrategy)) {
3187
+ identifierMintingStrategy = parameters?.identifierMintingStrategy;
3188
+ }
3189
+ else if (typeof parameters?.identifierMintingStrategy === "object") {
3190
+ identifierMintingStrategy = Maybe.of(parameters?.identifierMintingStrategy);
3191
+ }
3192
+ else if (typeof parameters?.identifierMintingStrategy === "string") {
3193
+ identifierMintingStrategy = Maybe.of(dataFactory.namedNode(parameters?.identifierMintingStrategy));
3194
+ }
3195
+ else if (parameters?.identifierMintingStrategy === undefined) {
3196
+ identifierMintingStrategy = Maybe.empty();
3197
+ }
3198
+ else {
3199
+ identifierMintingStrategy =
3200
+ parameters?.identifierMintingStrategy;
3201
+ }
3202
+ let ignoredProperties;
3203
+ if (Maybe.isMaybe(parameters?.ignoredProperties)) {
3204
+ ignoredProperties = parameters?.ignoredProperties;
3205
+ }
3206
+ else if ($isReadonlyObjectArray(parameters?.ignoredProperties)) {
3207
+ ignoredProperties = Maybe.of(parameters?.ignoredProperties);
3208
+ }
3209
+ else if ($isReadonlyStringArray(parameters?.ignoredProperties)) {
3210
+ ignoredProperties = Maybe.of(parameters?.ignoredProperties.map((item) => dataFactory.namedNode(item)));
3211
+ }
3212
+ else if (parameters?.ignoredProperties === undefined) {
3213
+ ignoredProperties = Maybe.empty();
3214
+ }
3215
+ else {
3216
+ ignoredProperties = parameters?.ignoredProperties;
3217
+ }
3218
+ let in_;
3219
+ if (Maybe.isMaybe(parameters?.in_)) {
3220
+ in_ = parameters?.in_;
3221
+ }
3222
+ else if ($isReadonlyObjectArray(parameters?.in_)) {
3223
+ in_ = Maybe.of(parameters?.in_);
3224
+ }
3225
+ else if ($isReadonlyBigIntArray(parameters?.in_)) {
3226
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.bigint(item)));
3227
+ }
3228
+ else if ($isReadonlyBooleanArray(parameters?.in_)) {
3229
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.boolean(item)));
3230
+ }
3231
+ else if ($isReadonlyNumberArray(parameters?.in_)) {
3232
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.number(item)));
3233
+ }
3234
+ else if ($isReadonlyStringArray(parameters?.in_)) {
3235
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.string(item)));
3236
+ }
3237
+ else if (parameters?.in_ === undefined) {
3238
+ in_ = Maybe.empty();
3239
+ }
3240
+ else {
3241
+ in_ = parameters?.in_;
3242
+ }
3243
+ let isDefinedBy;
3244
+ if (Maybe.isMaybe(parameters?.isDefinedBy)) {
3245
+ isDefinedBy = parameters?.isDefinedBy;
3246
+ }
3247
+ else if (typeof parameters?.isDefinedBy === "object") {
3248
+ isDefinedBy = Maybe.of(parameters?.isDefinedBy);
3249
+ }
3250
+ else if (typeof parameters?.isDefinedBy === "string") {
3251
+ isDefinedBy = Maybe.of(dataFactory.namedNode(parameters?.isDefinedBy));
3252
+ }
3253
+ else if (parameters?.isDefinedBy === undefined) {
3254
+ isDefinedBy = Maybe.empty();
3255
+ }
3256
+ else {
3257
+ isDefinedBy = parameters?.isDefinedBy;
3258
+ }
3259
+ let label;
3260
+ if (Maybe.isMaybe(parameters?.label)) {
3261
+ label = parameters?.label;
3262
+ }
3263
+ else if (typeof parameters?.label === "string") {
3264
+ label = Maybe.of(parameters?.label);
3265
+ }
3266
+ else if (parameters?.label === undefined) {
3267
+ label = Maybe.empty();
3268
+ }
3269
+ else {
3270
+ label = parameters?.label;
3271
+ }
3272
+ let languageIn;
3273
+ if (Maybe.isMaybe(parameters?.languageIn)) {
3274
+ languageIn = parameters?.languageIn;
3275
+ }
3276
+ else if (typeof parameters?.languageIn === "object") {
3277
+ languageIn = Maybe.of(parameters?.languageIn);
3278
+ }
3279
+ else if (parameters?.languageIn === undefined) {
3280
+ languageIn = Maybe.empty();
3281
+ }
3282
+ else {
3283
+ languageIn = parameters?.languageIn;
3284
+ }
3285
+ let maxCount;
3286
+ if (Maybe.isMaybe(parameters?.maxCount)) {
3287
+ maxCount = parameters?.maxCount;
3288
+ }
3289
+ else if (typeof parameters?.maxCount === "number") {
3290
+ maxCount = Maybe.of(parameters?.maxCount);
3291
+ }
3292
+ else if (parameters?.maxCount === undefined) {
3293
+ maxCount = Maybe.empty();
3294
+ }
3295
+ else {
3296
+ maxCount = parameters?.maxCount;
3297
+ }
3298
+ let maxExclusive;
3299
+ if (Maybe.isMaybe(parameters?.maxExclusive)) {
3300
+ maxExclusive = parameters?.maxExclusive;
3301
+ }
3302
+ else if (typeof parameters?.maxExclusive === "bigint") {
3303
+ maxExclusive = Maybe.of($literalFactory.bigint(parameters?.maxExclusive));
3304
+ }
3305
+ else if (typeof parameters?.maxExclusive === "boolean") {
3306
+ maxExclusive = Maybe.of($literalFactory.boolean(parameters?.maxExclusive));
3307
+ }
3308
+ else if (typeof parameters?.maxExclusive === "object" &&
3309
+ parameters?.maxExclusive instanceof Date) {
3310
+ maxExclusive = Maybe.of($literalFactory.date(parameters?.maxExclusive));
3311
+ }
3312
+ else if (typeof parameters?.maxExclusive === "number") {
3313
+ maxExclusive = Maybe.of($literalFactory.number(parameters?.maxExclusive));
3314
+ }
3315
+ else if (typeof parameters?.maxExclusive === "string") {
3316
+ maxExclusive = Maybe.of($literalFactory.string(parameters?.maxExclusive));
3317
+ }
3318
+ else if (typeof parameters?.maxExclusive === "object") {
3319
+ maxExclusive = Maybe.of(parameters?.maxExclusive);
3320
+ }
3321
+ else if (parameters?.maxExclusive === undefined) {
3322
+ maxExclusive = Maybe.empty();
3323
+ }
3324
+ else {
3325
+ maxExclusive = parameters?.maxExclusive;
3326
+ }
3327
+ let maxInclusive;
3328
+ if (Maybe.isMaybe(parameters?.maxInclusive)) {
3329
+ maxInclusive = parameters?.maxInclusive;
3330
+ }
3331
+ else if (typeof parameters?.maxInclusive === "bigint") {
3332
+ maxInclusive = Maybe.of($literalFactory.bigint(parameters?.maxInclusive));
3333
+ }
3334
+ else if (typeof parameters?.maxInclusive === "boolean") {
3335
+ maxInclusive = Maybe.of($literalFactory.boolean(parameters?.maxInclusive));
3336
+ }
3337
+ else if (typeof parameters?.maxInclusive === "object" &&
3338
+ parameters?.maxInclusive instanceof Date) {
3339
+ maxInclusive = Maybe.of($literalFactory.date(parameters?.maxInclusive));
3340
+ }
3341
+ else if (typeof parameters?.maxInclusive === "number") {
3342
+ maxInclusive = Maybe.of($literalFactory.number(parameters?.maxInclusive));
3343
+ }
3344
+ else if (typeof parameters?.maxInclusive === "string") {
3345
+ maxInclusive = Maybe.of($literalFactory.string(parameters?.maxInclusive));
3346
+ }
3347
+ else if (typeof parameters?.maxInclusive === "object") {
3348
+ maxInclusive = Maybe.of(parameters?.maxInclusive);
3349
+ }
3350
+ else if (parameters?.maxInclusive === undefined) {
3351
+ maxInclusive = Maybe.empty();
3352
+ }
3353
+ else {
3354
+ maxInclusive = parameters?.maxInclusive;
3355
+ }
3356
+ let maxLength;
3357
+ if (Maybe.isMaybe(parameters?.maxLength)) {
3358
+ maxLength = parameters?.maxLength;
3359
+ }
3360
+ else if (typeof parameters?.maxLength === "number") {
3361
+ maxLength = Maybe.of(parameters?.maxLength);
3362
+ }
3363
+ else if (parameters?.maxLength === undefined) {
3364
+ maxLength = Maybe.empty();
3365
+ }
3366
+ else {
3367
+ maxLength = parameters?.maxLength;
3368
+ }
3369
+ let minCount;
3370
+ if (Maybe.isMaybe(parameters?.minCount)) {
3371
+ minCount = parameters?.minCount;
3372
+ }
3373
+ else if (typeof parameters?.minCount === "number") {
3374
+ minCount = Maybe.of(parameters?.minCount);
3375
+ }
3376
+ else if (parameters?.minCount === undefined) {
3377
+ minCount = Maybe.empty();
3378
+ }
3379
+ else {
3380
+ minCount = parameters?.minCount;
3381
+ }
3382
+ let minExclusive;
3383
+ if (Maybe.isMaybe(parameters?.minExclusive)) {
3384
+ minExclusive = parameters?.minExclusive;
3385
+ }
3386
+ else if (typeof parameters?.minExclusive === "bigint") {
3387
+ minExclusive = Maybe.of($literalFactory.bigint(parameters?.minExclusive));
3388
+ }
3389
+ else if (typeof parameters?.minExclusive === "boolean") {
3390
+ minExclusive = Maybe.of($literalFactory.boolean(parameters?.minExclusive));
3391
+ }
3392
+ else if (typeof parameters?.minExclusive === "object" &&
3393
+ parameters?.minExclusive instanceof Date) {
3394
+ minExclusive = Maybe.of($literalFactory.date(parameters?.minExclusive));
3395
+ }
3396
+ else if (typeof parameters?.minExclusive === "number") {
3397
+ minExclusive = Maybe.of($literalFactory.number(parameters?.minExclusive));
3398
+ }
3399
+ else if (typeof parameters?.minExclusive === "string") {
3400
+ minExclusive = Maybe.of($literalFactory.string(parameters?.minExclusive));
3401
+ }
3402
+ else if (typeof parameters?.minExclusive === "object") {
3403
+ minExclusive = Maybe.of(parameters?.minExclusive);
3404
+ }
3405
+ else if (parameters?.minExclusive === undefined) {
3406
+ minExclusive = Maybe.empty();
3407
+ }
3408
+ else {
3409
+ minExclusive = parameters?.minExclusive;
3410
+ }
3411
+ let minInclusive;
3412
+ if (Maybe.isMaybe(parameters?.minInclusive)) {
3413
+ minInclusive = parameters?.minInclusive;
3414
+ }
3415
+ else if (typeof parameters?.minInclusive === "bigint") {
3416
+ minInclusive = Maybe.of($literalFactory.bigint(parameters?.minInclusive));
3417
+ }
3418
+ else if (typeof parameters?.minInclusive === "boolean") {
3419
+ minInclusive = Maybe.of($literalFactory.boolean(parameters?.minInclusive));
3420
+ }
3421
+ else if (typeof parameters?.minInclusive === "object" &&
3422
+ parameters?.minInclusive instanceof Date) {
3423
+ minInclusive = Maybe.of($literalFactory.date(parameters?.minInclusive));
3424
+ }
3425
+ else if (typeof parameters?.minInclusive === "number") {
3426
+ minInclusive = Maybe.of($literalFactory.number(parameters?.minInclusive));
3427
+ }
3428
+ else if (typeof parameters?.minInclusive === "string") {
3429
+ minInclusive = Maybe.of($literalFactory.string(parameters?.minInclusive));
3430
+ }
3431
+ else if (typeof parameters?.minInclusive === "object") {
3432
+ minInclusive = Maybe.of(parameters?.minInclusive);
3433
+ }
3434
+ else if (parameters?.minInclusive === undefined) {
3435
+ minInclusive = Maybe.empty();
3436
+ }
3437
+ else {
3438
+ minInclusive = parameters?.minInclusive;
3439
+ }
3440
+ let minLength;
3441
+ if (Maybe.isMaybe(parameters?.minLength)) {
3442
+ minLength = parameters?.minLength;
3443
+ }
3444
+ else if (typeof parameters?.minLength === "number") {
3445
+ minLength = Maybe.of(parameters?.minLength);
3446
+ }
3447
+ else if (parameters?.minLength === undefined) {
3448
+ minLength = Maybe.empty();
3449
+ }
3450
+ else {
3451
+ minLength = parameters?.minLength;
3452
+ }
3453
+ let mutable;
3454
+ if (Maybe.isMaybe(parameters?.mutable)) {
3455
+ mutable = parameters?.mutable;
3456
+ }
3457
+ else if (typeof parameters?.mutable === "boolean") {
3458
+ mutable = Maybe.of(parameters?.mutable);
3459
+ }
3460
+ else if (parameters?.mutable === undefined) {
3461
+ mutable = Maybe.empty();
3462
+ }
3463
+ else {
3464
+ mutable = parameters?.mutable;
3465
+ }
3466
+ let nodeKind;
3467
+ if (Maybe.isMaybe(parameters?.nodeKind)) {
3468
+ nodeKind = parameters?.nodeKind;
3469
+ }
3470
+ else if (typeof parameters?.nodeKind === "object") {
3471
+ nodeKind = Maybe.of(parameters?.nodeKind);
3472
+ }
3473
+ else if (typeof parameters?.nodeKind === "string") {
3474
+ nodeKind = Maybe.of(dataFactory.namedNode(parameters?.nodeKind));
3475
+ }
3476
+ else if (parameters?.nodeKind === undefined) {
3477
+ nodeKind = Maybe.empty();
3478
+ }
3479
+ else {
3480
+ nodeKind = parameters?.nodeKind;
3481
+ }
3482
+ let nodes;
3483
+ if (parameters?.nodes === undefined) {
3484
+ nodes = [];
3485
+ }
3486
+ else if ($isReadonlyObjectArray(parameters?.nodes)) {
3487
+ nodes = parameters?.nodes;
3488
+ }
3489
+ else if ($isReadonlyStringArray(parameters?.nodes)) {
3490
+ nodes = parameters?.nodes.map((item) => dataFactory.namedNode(item));
3491
+ }
3492
+ else {
3493
+ nodes = parameters?.nodes;
3494
+ }
3495
+ let not;
3496
+ if (parameters?.not === undefined) {
3497
+ not = [];
3498
+ }
3499
+ else if ($isReadonlyObjectArray(parameters?.not)) {
3500
+ not = parameters?.not;
3501
+ }
3502
+ else if ($isReadonlyStringArray(parameters?.not)) {
3503
+ not = parameters?.not.map((item) => dataFactory.namedNode(item));
3504
+ }
3505
+ else {
3506
+ not = parameters?.not;
3507
+ }
3508
+ let or;
3509
+ if (Maybe.isMaybe(parameters?.or)) {
3510
+ or = parameters?.or;
3511
+ }
3512
+ else if ($isReadonlyObjectArray(parameters?.or)) {
3513
+ or = Maybe.of(parameters?.or);
3514
+ }
3515
+ else if ($isReadonlyStringArray(parameters?.or)) {
3516
+ or = Maybe.of(parameters?.or.map((item) => dataFactory.namedNode(item)));
3517
+ }
3518
+ else if (parameters?.or === undefined) {
3519
+ or = Maybe.empty();
3520
+ }
3521
+ else {
3522
+ or = parameters?.or;
3523
+ }
3524
+ let patterns;
3525
+ if (parameters?.patterns === undefined) {
3526
+ patterns = [];
3527
+ }
3528
+ else if (typeof parameters?.patterns === "object") {
3529
+ patterns = parameters?.patterns;
3530
+ }
3531
+ else {
3532
+ patterns = parameters?.patterns;
3533
+ }
3534
+ let properties;
3535
+ if (parameters?.properties === undefined) {
3536
+ properties = [];
3537
+ }
3538
+ else if ($isReadonlyObjectArray(parameters?.properties)) {
3539
+ properties = parameters?.properties;
3540
+ }
3541
+ else if ($isReadonlyStringArray(parameters?.properties)) {
3542
+ properties = parameters?.properties.map((item) => dataFactory.namedNode(item));
3543
+ }
3544
+ else {
3545
+ properties = parameters?.properties;
3546
+ }
3547
+ let rdfType;
3548
+ if (Maybe.isMaybe(parameters?.rdfType)) {
3549
+ rdfType = parameters?.rdfType;
3550
+ }
3551
+ else if (typeof parameters?.rdfType === "object") {
3552
+ rdfType = Maybe.of(parameters?.rdfType);
3553
+ }
3554
+ else if (typeof parameters?.rdfType === "string") {
3555
+ rdfType = Maybe.of(dataFactory.namedNode(parameters?.rdfType));
3556
+ }
3557
+ else if (parameters?.rdfType === undefined) {
3558
+ rdfType = Maybe.empty();
3559
+ }
3560
+ else {
3561
+ rdfType = parameters?.rdfType;
1857
3562
  }
1858
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _propertyGroup.comment
1859
- .toList()
1860
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
1861
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _propertyGroup.label
1862
- .toList()
1863
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
1864
- return resource;
1865
- }
1866
- PropertyGroup.$toRdfResource = $toRdfResource;
1867
- })(PropertyGroup || (PropertyGroup = {}));
1868
- export var Ontology;
1869
- (function (Ontology) {
1870
- let $Identifier;
1871
- (function ($Identifier) {
1872
- $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
1873
- $Identifier.toString = Resource.Identifier.toString;
1874
- })($Identifier = Ontology.$Identifier || (Ontology.$Identifier = {}));
1875
- function $filter(filter, value) {
1876
- if (filter.$identifier !== undefined &&
1877
- !$filterIdentifier(filter.$identifier, value.$identifier)) {
1878
- return false;
3563
+ let shaclmateName;
3564
+ if (Maybe.isMaybe(parameters?.shaclmateName)) {
3565
+ shaclmateName = parameters?.shaclmateName;
1879
3566
  }
1880
- if (filter.comment !== undefined &&
1881
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
1882
- return false;
3567
+ else if (typeof parameters?.shaclmateName === "string") {
3568
+ shaclmateName = Maybe.of(parameters?.shaclmateName);
1883
3569
  }
1884
- if (filter.label !== undefined &&
1885
- !$filterMaybe($filterString)(filter.label, value.label)) {
1886
- return false;
3570
+ else if (parameters?.shaclmateName === undefined) {
3571
+ shaclmateName = Maybe.empty();
1887
3572
  }
1888
- if (filter.tsFeatureExcludes !== undefined &&
1889
- !$filterArray($filterIri)(filter.tsFeatureExcludes, value.tsFeatureExcludes)) {
1890
- return false;
3573
+ else {
3574
+ shaclmateName = parameters?.shaclmateName;
1891
3575
  }
1892
- if (filter.tsFeatureIncludes !== undefined &&
1893
- !$filterArray($filterIri)(filter.tsFeatureIncludes, value.tsFeatureIncludes)) {
1894
- return false;
3576
+ let subClassOf;
3577
+ if (parameters?.subClassOf === undefined) {
3578
+ subClassOf = [];
1895
3579
  }
1896
- if (filter.tsImports !== undefined &&
1897
- !$filterArray($filterString)(filter.tsImports, value.tsImports)) {
1898
- return false;
3580
+ else if ($isReadonlyObjectArray(parameters?.subClassOf)) {
3581
+ subClassOf = parameters?.subClassOf;
1899
3582
  }
1900
- if (filter.tsObjectDeclarationType !== undefined &&
1901
- !$filterMaybe($filterIri)(filter.tsObjectDeclarationType, value.tsObjectDeclarationType)) {
1902
- return false;
3583
+ else if ($isReadonlyStringArray(parameters?.subClassOf)) {
3584
+ subClassOf = parameters?.subClassOf.map((item) => dataFactory.namedNode(item));
1903
3585
  }
1904
- return true;
1905
- }
1906
- Ontology.$filter = $filter;
1907
- Ontology.$fromRdfResource = (resource, options) => {
1908
- let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
1909
- if (!objectSet) {
1910
- objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
3586
+ else {
3587
+ subClassOf = parameters?.subClassOf;
1911
3588
  }
1912
- return Ontology.$propertiesFromRdfResource(resource, {
1913
- context,
1914
- graph,
1915
- ignoreRdfType,
1916
- objectSet,
1917
- preferredLanguages,
1918
- });
1919
- };
1920
- Ontology.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
1921
- .toResource()
1922
- .chain((resource) => Ontology.$fromRdfResource(resource, options))));
1923
- Ontology.$fromRdfType = dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology");
1924
- function isOntology(object) {
1925
- switch (object.$type) {
1926
- case "Ontology":
1927
- return true;
1928
- default:
1929
- return false;
3589
+ let toRdfTypes;
3590
+ if (parameters?.toRdfTypes === undefined) {
3591
+ toRdfTypes = [];
1930
3592
  }
1931
- }
1932
- Ontology.isOntology = isOntology;
1933
- Ontology.$propertiesFromRdfResource = ($resource, _$options) => {
1934
- return (!_$options.ignoreRdfType
1935
- ? $resource
1936
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1937
- .chain((actualRdfType) => actualRdfType.toIri())
1938
- .chain((actualRdfType) => {
1939
- // Check the expected type and its known subtypes
1940
- switch (actualRdfType.value) {
1941
- case "http://www.w3.org/2002/07/owl#Ontology":
1942
- return Right(true);
1943
- }
1944
- // Check arbitrary rdfs:subClassOf's of the expected type
1945
- if ($resource.isInstanceOf(Ontology.$fromRdfType, {
1946
- graph: _$options.graph,
1947
- })) {
1948
- return Right(true);
1949
- }
1950
- return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/2002/07/owl#Ontology)`));
1951
- })
1952
- : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
1953
- dataFactory: dataFactory,
1954
- focusResource: $resource,
1955
- propertyPath: $RdfVocabularies.rdf.subject,
1956
- term: $resource.identifier,
1957
- }).toValues())
1958
- .chain((values) => values.chainMap((value) => value.toIdentifier()))
1959
- .chain((values) => values.head())
1960
- .chain(($identifier) => Right("Ontology").chain(($type) => $shaclPropertyFromRdf({
1961
- graph: _$options.graph,
1962
- resource: $resource,
1963
- propertySchema: Ontology.$schema.properties.comment,
1964
- typeFromRdf: (resourceValues) => resourceValues
1965
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1966
- .chain((values) => values.chainMap((value) => value.toString()))
1967
- .map((values) => values.length > 0
1968
- ? values.map((value) => Maybe.of(value))
1969
- : Resource.Values.fromValue({
1970
- focusResource: $resource,
1971
- propertyPath: PropertyShape.$schema.properties.comment.path,
1972
- value: Maybe.empty(),
1973
- })),
1974
- }).chain((comment) => $shaclPropertyFromRdf({
1975
- graph: _$options.graph,
1976
- resource: $resource,
1977
- propertySchema: Ontology.$schema.properties.label,
1978
- typeFromRdf: (resourceValues) => resourceValues
1979
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1980
- .chain((values) => values.chainMap((value) => value.toString()))
1981
- .map((values) => values.length > 0
1982
- ? values.map((value) => Maybe.of(value))
1983
- : Resource.Values.fromValue({
1984
- focusResource: $resource,
1985
- propertyPath: PropertyShape.$schema.properties.label.path,
1986
- value: Maybe.empty(),
1987
- })),
1988
- }).chain((label) => $shaclPropertyFromRdf({
1989
- graph: _$options.graph,
1990
- resource: $resource,
1991
- propertySchema: Ontology.$schema.properties.tsFeatureExcludes,
1992
- typeFromRdf: (resourceValues) => resourceValues
1993
- .chain((values) => values.chainMap((value) => value.toIri([
1994
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
1995
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
1996
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
1997
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
1998
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
1999
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2000
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2001
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2002
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2003
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2004
- ])))
2005
- .map((values) => values.toArray())
2006
- .map((valuesArray) => Resource.Values.fromValue({
2007
- focusResource: $resource,
2008
- propertyPath: Ontology.$schema.properties.tsFeatureExcludes.path,
2009
- value: valuesArray,
2010
- })),
2011
- }).chain((tsFeatureExcludes) => $shaclPropertyFromRdf({
2012
- graph: _$options.graph,
2013
- resource: $resource,
2014
- propertySchema: Ontology.$schema.properties.tsFeatureIncludes,
2015
- typeFromRdf: (resourceValues) => resourceValues
2016
- .chain((values) => values.chainMap((value) => value.toIri([
2017
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2018
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2019
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2020
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2021
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2022
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2023
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2024
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2025
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2026
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2027
- ])))
2028
- .map((values) => values.toArray())
2029
- .map((valuesArray) => Resource.Values.fromValue({
2030
- focusResource: $resource,
2031
- propertyPath: Ontology.$schema.properties.tsFeatureIncludes
2032
- .path,
2033
- value: valuesArray,
2034
- })),
2035
- }).chain((tsFeatureIncludes) => $shaclPropertyFromRdf({
2036
- graph: _$options.graph,
2037
- resource: $resource,
2038
- propertySchema: Ontology.$schema.properties.tsImports,
2039
- typeFromRdf: (resourceValues) => resourceValues
2040
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2041
- .chain((values) => values.chainMap((value) => value.toString()))
2042
- .map((values) => values.toArray())
2043
- .map((valuesArray) => Resource.Values.fromValue({
2044
- focusResource: $resource,
2045
- propertyPath: Ontology.$schema.properties.tsImports.path,
2046
- value: valuesArray,
2047
- })),
2048
- }).chain((tsImports) => $shaclPropertyFromRdf({
2049
- graph: _$options.graph,
2050
- resource: $resource,
2051
- propertySchema: Ontology.$schema.properties.tsObjectDeclarationType,
2052
- typeFromRdf: (resourceValues) => resourceValues
2053
- .chain((values) => values.chainMap((value) => value.toIri([
2054
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2055
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2056
- ])))
2057
- .map((values) => values.length > 0
2058
- ? values.map((value) => Maybe.of(value))
2059
- : Resource.Values.fromValue({
2060
- focusResource: $resource,
2061
- propertyPath: Ontology.$schema.properties
2062
- .tsObjectDeclarationType.path,
2063
- value: Maybe.empty(),
2064
- })),
2065
- }).map((tsObjectDeclarationType) => ({
3593
+ else if ($isReadonlyObjectArray(parameters?.toRdfTypes)) {
3594
+ toRdfTypes = parameters?.toRdfTypes;
3595
+ }
3596
+ else if ($isReadonlyStringArray(parameters?.toRdfTypes)) {
3597
+ toRdfTypes = parameters?.toRdfTypes.map((item) => dataFactory.namedNode(item));
3598
+ }
3599
+ else {
3600
+ toRdfTypes = parameters?.toRdfTypes;
3601
+ }
3602
+ let tsFeatureExcludes;
3603
+ if (parameters?.tsFeatureExcludes === undefined) {
3604
+ tsFeatureExcludes = [];
3605
+ }
3606
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureExcludes)) {
3607
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
3608
+ }
3609
+ else if ($isReadonlyStringArray(parameters?.tsFeatureExcludes)) {
3610
+ tsFeatureExcludes = parameters?.tsFeatureExcludes.map((item) => dataFactory.namedNode(item));
3611
+ }
3612
+ else {
3613
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
3614
+ }
3615
+ let tsFeatureIncludes;
3616
+ if (parameters?.tsFeatureIncludes === undefined) {
3617
+ tsFeatureIncludes = [];
3618
+ }
3619
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureIncludes)) {
3620
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
3621
+ }
3622
+ else if ($isReadonlyStringArray(parameters?.tsFeatureIncludes)) {
3623
+ tsFeatureIncludes = parameters?.tsFeatureIncludes.map((item) => dataFactory.namedNode(item));
3624
+ }
3625
+ else {
3626
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
3627
+ }
3628
+ let tsImports;
3629
+ if (parameters?.tsImports === undefined) {
3630
+ tsImports = [];
3631
+ }
3632
+ else if (typeof parameters?.tsImports === "object") {
3633
+ tsImports = parameters?.tsImports;
3634
+ }
3635
+ else {
3636
+ tsImports = parameters?.tsImports;
3637
+ }
3638
+ let tsObjectDeclarationType;
3639
+ if (Maybe.isMaybe(parameters?.tsObjectDeclarationType)) {
3640
+ tsObjectDeclarationType = parameters?.tsObjectDeclarationType;
3641
+ }
3642
+ else if (typeof parameters?.tsObjectDeclarationType === "object") {
3643
+ tsObjectDeclarationType = Maybe.of(parameters?.tsObjectDeclarationType);
3644
+ }
3645
+ else if (typeof parameters?.tsObjectDeclarationType === "string") {
3646
+ tsObjectDeclarationType = Maybe.of(dataFactory.namedNode(parameters?.tsObjectDeclarationType));
3647
+ }
3648
+ else if (parameters?.tsObjectDeclarationType === undefined) {
3649
+ tsObjectDeclarationType = Maybe.empty();
3650
+ }
3651
+ else {
3652
+ tsObjectDeclarationType =
3653
+ parameters?.tsObjectDeclarationType;
3654
+ }
3655
+ let types;
3656
+ if (parameters?.types === undefined) {
3657
+ types = [];
3658
+ }
3659
+ else if ($isReadonlyObjectArray(parameters?.types)) {
3660
+ types = parameters?.types;
3661
+ }
3662
+ else if ($isReadonlyStringArray(parameters?.types)) {
3663
+ types = parameters?.types.map((item) => dataFactory.namedNode(item));
3664
+ }
3665
+ else {
3666
+ types = parameters?.types;
3667
+ }
3668
+ let xone;
3669
+ if (Maybe.isMaybe(parameters?.xone)) {
3670
+ xone = parameters?.xone;
3671
+ }
3672
+ else if ($isReadonlyObjectArray(parameters?.xone)) {
3673
+ xone = Maybe.of(parameters?.xone);
3674
+ }
3675
+ else if ($isReadonlyStringArray(parameters?.xone)) {
3676
+ xone = Maybe.of(parameters?.xone.map((item) => dataFactory.namedNode(item)));
3677
+ }
3678
+ else if (parameters?.xone === undefined) {
3679
+ xone = Maybe.empty();
3680
+ }
3681
+ else {
3682
+ xone = parameters?.xone;
3683
+ }
3684
+ return {
2066
3685
  $identifier,
2067
3686
  $type,
3687
+ abstract,
3688
+ and,
3689
+ classes,
3690
+ closed,
2068
3691
  comment,
3692
+ datatype,
3693
+ deactivated,
3694
+ discriminantValue,
3695
+ extern,
3696
+ flags,
3697
+ fromRdfType,
3698
+ hasValues,
3699
+ identifierMintingStrategy,
3700
+ ignoredProperties,
3701
+ in_,
3702
+ isDefinedBy,
2069
3703
  label,
3704
+ languageIn,
3705
+ maxCount,
3706
+ maxExclusive,
3707
+ maxInclusive,
3708
+ maxLength,
3709
+ minCount,
3710
+ minExclusive,
3711
+ minInclusive,
3712
+ minLength,
3713
+ mutable,
3714
+ nodeKind,
3715
+ nodes,
3716
+ not,
3717
+ or,
3718
+ patterns,
3719
+ properties,
3720
+ rdfType,
3721
+ shaclmateName,
3722
+ subClassOf,
3723
+ toRdfTypes,
2070
3724
  tsFeatureExcludes,
2071
3725
  tsFeatureIncludes,
2072
3726
  tsImports,
2073
3727
  tsObjectDeclarationType,
2074
- }))))))))));
2075
- };
2076
- Ontology.$schema = {
2077
- properties: {
2078
- $identifier: {
2079
- kind: "Identifier",
2080
- type: () => ({ kind: "Identifier" }),
2081
- },
2082
- $type: {
2083
- kind: "Discriminant",
2084
- type: () => ({
2085
- kind: "TypeDiscriminant",
2086
- ownValues: ["Ontology"],
2087
- }),
2088
- },
2089
- comment: {
2090
- kind: "Shacl",
2091
- type: () => ({
2092
- kind: "Maybe",
2093
- item: () => ({ kind: "String" }),
2094
- }),
2095
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2096
- },
2097
- label: {
2098
- kind: "Shacl",
2099
- type: () => ({
2100
- kind: "Maybe",
2101
- item: () => ({ kind: "String" }),
2102
- }),
2103
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2104
- },
2105
- tsFeatureExcludes: {
2106
- kind: "Shacl",
2107
- type: () => ({
2108
- kind: "Set",
2109
- item: () => ({
2110
- kind: "Iri",
2111
- in: [
2112
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2113
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2114
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2115
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2116
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2117
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2118
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2119
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2120
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2121
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2122
- ],
2123
- }),
2124
- }),
2125
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"),
2126
- },
2127
- tsFeatureIncludes: {
2128
- kind: "Shacl",
2129
- type: () => ({
2130
- kind: "Set",
2131
- item: () => ({
2132
- kind: "Iri",
2133
- in: [
2134
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2135
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2136
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2137
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2138
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2139
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2140
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2141
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2142
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2143
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2144
- ],
2145
- }),
2146
- }),
2147
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"),
2148
- },
2149
- tsImports: {
2150
- kind: "Shacl",
2151
- type: () => ({
2152
- kind: "Set",
2153
- item: () => ({ kind: "String" }),
2154
- }),
2155
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"),
2156
- },
2157
- tsObjectDeclarationType: {
2158
- kind: "Shacl",
2159
- type: () => ({
2160
- kind: "Maybe",
2161
- item: () => ({
2162
- kind: "Iri",
2163
- in: [
2164
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2165
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2166
- ],
2167
- }),
2168
- }),
2169
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"),
2170
- },
2171
- },
2172
- };
2173
- function $toRdfResource(_ontology, options) {
2174
- const resourceSet = options?.resourceSet ??
2175
- new ResourceSet(datasetFactory.dataset(), { dataFactory: dataFactory });
2176
- const resource = resourceSet.resource(_ontology.$identifier);
2177
- if (!options?.ignoreRdfType) {
2178
- resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology"), options?.graph);
2179
- }
2180
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _ontology.comment
2181
- .toList()
2182
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2183
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _ontology.label
2184
- .toList()
2185
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2186
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"), _ontology.tsFeatureExcludes.flatMap((item) => [item]), options?.graph);
2187
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"), _ontology.tsFeatureIncludes.flatMap((item) => [item]), options?.graph);
2188
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"), _ontology.tsImports.flatMap((item) => [$literalFactory.string(item)]), options?.graph);
2189
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"), _ontology.tsObjectDeclarationType.toList(), options?.graph);
2190
- return resource;
3728
+ types,
3729
+ xone,
3730
+ };
2191
3731
  }
2192
- Ontology.$toRdfResource = $toRdfResource;
2193
- })(Ontology || (Ontology = {}));
2194
- export var NodeShape;
2195
- (function (NodeShape) {
3732
+ NodeShape.$create = $create;
2196
3733
  let $Identifier;
2197
3734
  (function ($Identifier) {
2198
3735
  $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
@@ -2208,7 +3745,7 @@ export var NodeShape;
2208
3745
  return false;
2209
3746
  }
2210
3747
  if (filter.and !== undefined &&
2211
- !$filterArray($filterArray($filterIdentifier))(filter.and, value.and)) {
3748
+ !$filterMaybe($filterArray($filterIdentifier))(filter.and, value.and)) {
2212
3749
  return false;
2213
3750
  }
2214
3751
  if (filter.classes !== undefined &&
@@ -2324,7 +3861,7 @@ export var NodeShape;
2324
3861
  return false;
2325
3862
  }
2326
3863
  if (filter.or !== undefined &&
2327
- !$filterArray($filterArray($filterIdentifier))(filter.or, value.or)) {
3864
+ !$filterMaybe($filterArray($filterIdentifier))(filter.or, value.or)) {
2328
3865
  return false;
2329
3866
  }
2330
3867
  if (filter.patterns !== undefined &&
@@ -2343,6 +3880,10 @@ export var NodeShape;
2343
3880
  !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
2344
3881
  return false;
2345
3882
  }
3883
+ if (filter.subClassOf !== undefined &&
3884
+ !$filterArray($filterIri)(filter.subClassOf, value.subClassOf)) {
3885
+ return false;
3886
+ }
2346
3887
  if (filter.toRdfTypes !== undefined &&
2347
3888
  !$filterArray($filterIri)(filter.toRdfTypes, value.toRdfTypes)) {
2348
3889
  return false;
@@ -2363,8 +3904,12 @@ export var NodeShape;
2363
3904
  !$filterMaybe($filterIri)(filter.tsObjectDeclarationType, value.tsObjectDeclarationType)) {
2364
3905
  return false;
2365
3906
  }
3907
+ if (filter.types !== undefined &&
3908
+ !$filterArray($filterIri)(filter.types, value.types)) {
3909
+ return false;
3910
+ }
2366
3911
  if (filter.xone !== undefined &&
2367
- !$filterArray($filterArray($filterIdentifier))(filter.xone, value.xone)) {
3912
+ !$filterMaybe($filterArray($filterIdentifier))(filter.xone, value.xone)) {
2368
3913
  return false;
2369
3914
  }
2370
3915
  return true;
@@ -2448,12 +3993,13 @@ export var NodeShape;
2448
3993
  values: valueList.toArray(),
2449
3994
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
2450
3995
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
2451
- .map((values) => values.toArray())
2452
- .map((valuesArray) => Resource.Values.fromValue({
2453
- focusResource: $resource,
2454
- propertyPath: PropertyShape.$schema.properties.and.path,
2455
- value: valuesArray,
2456
- })),
3996
+ .map((values) => values.length > 0
3997
+ ? values.map((value) => Maybe.of(value))
3998
+ : Resource.Values.fromValue({
3999
+ focusResource: $resource,
4000
+ propertyPath: PropertyShape.$schema.properties.and.path,
4001
+ value: Maybe.empty(),
4002
+ })),
2457
4003
  }).chain((and) => $shaclPropertyFromRdf({
2458
4004
  graph: _$options.graph,
2459
4005
  resource: $resource,
@@ -3016,16 +4562,18 @@ export var NodeShape;
3016
4562
  values: valueList.toArray(),
3017
4563
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
3018
4564
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
3019
- .map((values) => values.toArray())
3020
- .map((valuesArray) => Resource.Values.fromValue({
3021
- focusResource: $resource,
3022
- propertyPath: PropertyShape
3023
- .$schema
3024
- .properties
3025
- .or
3026
- .path,
3027
- value: valuesArray,
3028
- })),
4565
+ .map((values) => values.length >
4566
+ 0
4567
+ ? values.map((value) => Maybe.of(value))
4568
+ : Resource.Values.fromValue({
4569
+ focusResource: $resource,
4570
+ propertyPath: PropertyShape
4571
+ .$schema
4572
+ .properties
4573
+ .or
4574
+ .path,
4575
+ value: Maybe.empty(),
4576
+ })),
3029
4577
  }).chain((or) => $shaclPropertyFromRdf({
3030
4578
  graph: _$options.graph,
3031
4579
  resource: $resource,
@@ -3105,6 +4653,24 @@ export var NodeShape;
3105
4653
  value: Maybe.empty(),
3106
4654
  })),
3107
4655
  }).chain((shaclmateName) => $shaclPropertyFromRdf({
4656
+ graph: _$options.graph,
4657
+ resource: $resource,
4658
+ propertySchema: NodeShape.$schema
4659
+ .properties
4660
+ .subClassOf,
4661
+ typeFromRdf: (resourceValues) => resourceValues
4662
+ .chain((values) => values.chainMap((value) => value.toIri()))
4663
+ .map((values) => values.toArray())
4664
+ .map((valuesArray) => Resource.Values.fromValue({
4665
+ focusResource: $resource,
4666
+ propertyPath: NodeShape
4667
+ .$schema
4668
+ .properties
4669
+ .subClassOf
4670
+ .path,
4671
+ value: valuesArray,
4672
+ })),
4673
+ }).chain((subClassOf) => $shaclPropertyFromRdf({
3108
4674
  graph: _$options.graph,
3109
4675
  resource: $resource,
3110
4676
  propertySchema: NodeShape.$schema
@@ -3223,6 +4789,24 @@ export var NodeShape;
3223
4789
  value: Maybe.empty(),
3224
4790
  })),
3225
4791
  }).chain((tsObjectDeclarationType) => $shaclPropertyFromRdf({
4792
+ graph: _$options.graph,
4793
+ resource: $resource,
4794
+ propertySchema: NodeShape.$schema
4795
+ .properties
4796
+ .types,
4797
+ typeFromRdf: (resourceValues) => resourceValues
4798
+ .chain((values) => values.chainMap((value) => value.toIri()))
4799
+ .map((values) => values.toArray())
4800
+ .map((valuesArray) => Resource.Values.fromValue({
4801
+ focusResource: $resource,
4802
+ propertyPath: NodeShape
4803
+ .$schema
4804
+ .properties
4805
+ .types
4806
+ .path,
4807
+ value: valuesArray,
4808
+ })),
4809
+ }).chain((types) => $shaclPropertyFromRdf({
3226
4810
  graph: _$options.graph,
3227
4811
  resource: $resource,
3228
4812
  propertySchema: NodeShape.$schema
@@ -3242,16 +4826,18 @@ export var NodeShape;
3242
4826
  values: valueList.toArray(),
3243
4827
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
3244
4828
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
3245
- .map((values) => values.toArray())
3246
- .map((valuesArray) => Resource.Values.fromValue({
3247
- focusResource: $resource,
3248
- propertyPath: PropertyShape
3249
- .$schema
3250
- .properties
3251
- .xone
3252
- .path,
3253
- value: valuesArray,
3254
- })),
4829
+ .map((values) => values.length >
4830
+ 0
4831
+ ? values.map((value) => Maybe.of(value))
4832
+ : Resource.Values.fromValue({
4833
+ focusResource: $resource,
4834
+ propertyPath: PropertyShape
4835
+ .$schema
4836
+ .properties
4837
+ .xone
4838
+ .path,
4839
+ value: Maybe.empty(),
4840
+ })),
3255
4841
  }).map((xone) => ({
3256
4842
  $identifier,
3257
4843
  $type,
@@ -3290,13 +4876,15 @@ export var NodeShape;
3290
4876
  properties,
3291
4877
  rdfType,
3292
4878
  shaclmateName,
4879
+ subClassOf,
3293
4880
  toRdfTypes,
3294
4881
  tsFeatureExcludes,
3295
4882
  tsFeatureIncludes,
3296
4883
  tsImports,
3297
4884
  tsObjectDeclarationType,
4885
+ types,
3298
4886
  xone,
3299
- })))))))))))))))))))))))))))))))))))))))))))));
4887
+ })))))))))))))))))))))))))))))))))))))))))))))));
3300
4888
  };
3301
4889
  NodeShape.$schema = {
3302
4890
  properties: {
@@ -3322,7 +4910,7 @@ export var NodeShape;
3322
4910
  and: {
3323
4911
  kind: "Shacl",
3324
4912
  type: () => ({
3325
- kind: "Set",
4913
+ kind: "Maybe",
3326
4914
  item: () => ({
3327
4915
  kind: "List",
3328
4916
  item: () => ({ kind: "Identifier" }),
@@ -3583,7 +5171,7 @@ export var NodeShape;
3583
5171
  or: {
3584
5172
  kind: "Shacl",
3585
5173
  type: () => ({
3586
- kind: "Set",
5174
+ kind: "Maybe",
3587
5175
  item: () => ({
3588
5176
  kind: "List",
3589
5177
  item: () => ({ kind: "Identifier" }),
@@ -3623,6 +5211,14 @@ export var NodeShape;
3623
5211
  }),
3624
5212
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#name"),
3625
5213
  },
5214
+ subClassOf: {
5215
+ kind: "Shacl",
5216
+ type: () => ({
5217
+ kind: "Set",
5218
+ item: () => ({ kind: "Iri" }),
5219
+ }),
5220
+ path: $RdfVocabularies.rdfs.subClassOf,
5221
+ },
3626
5222
  toRdfTypes: {
3627
5223
  kind: "Shacl",
3628
5224
  type: () => ({
@@ -3697,10 +5293,18 @@ export var NodeShape;
3697
5293
  }),
3698
5294
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"),
3699
5295
  },
3700
- xone: {
5296
+ types: {
3701
5297
  kind: "Shacl",
3702
5298
  type: () => ({
3703
5299
  kind: "Set",
5300
+ item: () => ({ kind: "Iri" }),
5301
+ }),
5302
+ path: $RdfVocabularies.rdf.type,
5303
+ },
5304
+ xone: {
5305
+ kind: "Shacl",
5306
+ type: () => ({
5307
+ kind: "Maybe",
3704
5308
  item: () => ({
3705
5309
  kind: "List",
3706
5310
  item: () => ({ kind: "Identifier" }),
@@ -3722,9 +5326,9 @@ export var NodeShape;
3722
5326
  .flatMap((value) => [
3723
5327
  $literalFactory.boolean(value, $RdfVocabularies.xsd.boolean),
3724
5328
  ]), options?.graph);
3725
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _nodeShape.and.flatMap((item) => [
3726
- item.length > 0
3727
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
5329
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _nodeShape.and.toList().flatMap((value) => [
5330
+ value.length > 0
5331
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
3728
5332
  if (itemIndex === 0) {
3729
5333
  currentSubListResource = listResource;
3730
5334
  }
@@ -3873,9 +5477,9 @@ export var NodeShape;
3873
5477
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"), _nodeShape.nodeKind.toList(), options?.graph);
3874
5478
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#node"), _nodeShape.nodes.flatMap((item) => [item]), options?.graph);
3875
5479
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#not"), _nodeShape.not.flatMap((item) => [item]), options?.graph);
3876
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _nodeShape.or.flatMap((item) => [
3877
- item.length > 0
3878
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
5480
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _nodeShape.or.toList().flatMap((value) => [
5481
+ value.length > 0
5482
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
3879
5483
  if (itemIndex === 0) {
3880
5484
  currentSubListResource = listResource;
3881
5485
  }
@@ -3901,14 +5505,16 @@ export var NodeShape;
3901
5505
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#name"), _nodeShape.shaclmateName
3902
5506
  .toList()
3903
5507
  .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
5508
+ resource.add($RdfVocabularies.rdfs.subClassOf, _nodeShape.subClassOf.flatMap((item) => [item]), options?.graph);
3904
5509
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#toRdfType"), _nodeShape.toRdfTypes.flatMap((item) => [item]), options?.graph);
3905
5510
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"), _nodeShape.tsFeatureExcludes.flatMap((item) => [item]), options?.graph);
3906
5511
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"), _nodeShape.tsFeatureIncludes.flatMap((item) => [item]), options?.graph);
3907
5512
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"), _nodeShape.tsImports.flatMap((item) => [$literalFactory.string(item)]), options?.graph);
3908
5513
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"), _nodeShape.tsObjectDeclarationType.toList(), options?.graph);
3909
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _nodeShape.xone.flatMap((item) => [
3910
- item.length > 0
3911
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
5514
+ resource.add($RdfVocabularies.rdf.type, _nodeShape.types.flatMap((item) => [item]), options?.graph);
5515
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _nodeShape.xone.toList().flatMap((value) => [
5516
+ value.length > 0
5517
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
3912
5518
  if (itemIndex === 0) {
3913
5519
  currentSubListResource = listResource;
3914
5520
  }
@@ -4000,7 +5606,7 @@ export var Shape;
4000
5606
  and: {
4001
5607
  kind: "Shacl",
4002
5608
  type: () => ({
4003
- kind: "Set",
5609
+ kind: "Maybe",
4004
5610
  item: () => ({
4005
5611
  kind: "List",
4006
5612
  item: () => ({ kind: "Identifier" }),
@@ -4203,7 +5809,7 @@ export var Shape;
4203
5809
  or: {
4204
5810
  kind: "Shacl",
4205
5811
  type: () => ({
4206
- kind: "Set",
5812
+ kind: "Maybe",
4207
5813
  item: () => ({
4208
5814
  kind: "List",
4209
5815
  item: () => ({ kind: "Identifier" }),
@@ -4230,7 +5836,7 @@ export var Shape;
4230
5836
  xone: {
4231
5837
  kind: "Shacl",
4232
5838
  type: () => ({
4233
- kind: "Set",
5839
+ kind: "Maybe",
4234
5840
  item: () => ({
4235
5841
  kind: "List",
4236
5842
  item: () => ({ kind: "Identifier" }),