@shaclmate/compiler 4.0.36 → 4.0.38

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 (42) hide show
  1. package/dist/ShapesGraphToAstTransformer.js +10 -0
  2. package/dist/ast/Ast.d.ts +1 -0
  3. package/dist/generators/ts/AbstractNamedUnionType.js +6 -2
  4. package/dist/generators/ts/AbstractObjectSetType.d.ts +35 -0
  5. package/dist/generators/ts/AbstractObjectSetType.js +44 -0
  6. package/dist/generators/ts/GraphqlSchema.d.ts +22 -0
  7. package/dist/generators/ts/GraphqlSchema.js +87 -0
  8. package/dist/generators/ts/NamedObjectType.js +6 -2
  9. package/dist/generators/ts/ObjectSetType.d.ts +6 -0
  10. package/dist/generators/ts/ObjectSetType.js +36 -0
  11. package/dist/generators/ts/RdfjsDatasetObjectSetType.d.ts +6 -0
  12. package/dist/generators/ts/{rdfjsDatasetObjectSetClassDeclaration.js → RdfjsDatasetObjectSetType.js} +73 -63
  13. package/dist/generators/ts/Snippets.d.ts +1 -0
  14. package/dist/generators/ts/Snippets.js +7 -0
  15. package/dist/generators/ts/SparqlObjectSetType.d.ts +6 -0
  16. package/dist/generators/ts/{sparqlObjectSetClassDeclaration.js → SparqlObjectSetType.js} +40 -29
  17. package/dist/generators/ts/TsGenerator.d.ts +7 -8
  18. package/dist/generators/ts/TsGenerator.js +108 -77
  19. package/dist/generators/ts/ZodGenerator.d.ts +1 -2
  20. package/dist/generators/ts/ZodGenerator.js +12 -12
  21. package/dist/generators/ts/_NamedObjectType/NamedObjectType_createFunctionDeclaration.js +17 -11
  22. package/dist/generators/ts/_NamedObjectType/NamedObjectType_toJsonFunctionDeclaration.js +2 -1
  23. package/dist/generators/ts/_NamedObjectType/NamedObjectType_toStringFunctionDeclarations.js +2 -4
  24. package/dist/generators/ts/_snippets/snippets_FromRdfResourceFunction.js +2 -2
  25. package/dist/generators/ts/_snippets/snippets_FromRdfResourceValuesFunction.js +2 -2
  26. package/dist/generators/ts/_snippets/snippets__FromRdfResourceFunction.js +2 -2
  27. package/dist/generators/ts/_snippets/snippets_monkeyPatchObject.d.ts +3 -0
  28. package/dist/generators/ts/_snippets/snippets_monkeyPatchObject.js +16 -0
  29. package/dist/generators/ts/_snippets/snippets_wrap_FromRdfResourceFunction.js +3 -4
  30. package/dist/input/generated.d.ts +1 -286
  31. package/dist/input/generated.js +28 -1015
  32. package/package.json +6 -6
  33. package/dist/generators/ts/graphqlSchemaVariableStatement.d.ts +0 -10
  34. package/dist/generators/ts/graphqlSchemaVariableStatement.js +0 -84
  35. package/dist/generators/ts/objectSetDeclarations.d.ts +0 -9
  36. package/dist/generators/ts/objectSetDeclarations.js +0 -27
  37. package/dist/generators/ts/objectSetInterfaceDeclaration.d.ts +0 -9
  38. package/dist/generators/ts/objectSetInterfaceDeclaration.js +0 -26
  39. package/dist/generators/ts/objectSetMethodSignatures.d.ts +0 -18
  40. package/dist/generators/ts/objectSetMethodSignatures.js +0 -31
  41. package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.d.ts +0 -9
  42. package/dist/generators/ts/sparqlObjectSetClassDeclaration.d.ts +0 -9
@@ -102,119 +102,6 @@ export var $EqualsResult;
102
102
  }
103
103
  $EqualsResult.fromBooleanEqualsResult = fromBooleanEqualsResult;
104
104
  })($EqualsResult || ($EqualsResult = {}));
105
- function $filterArray(filterItem) {
106
- return (filter, values) => {
107
- for (const value of values) {
108
- if (!filterItem(filter, value)) {
109
- return false;
110
- }
111
- }
112
- if (filter.$maxCount !== undefined && values.length > filter.$maxCount) {
113
- return false;
114
- }
115
- if (filter.$minCount !== undefined && values.length < filter.$minCount) {
116
- return false;
117
- }
118
- return true;
119
- };
120
- }
121
- function $filterBoolean(filter, value) {
122
- if (filter.value !== undefined && value !== filter.value) {
123
- return false;
124
- }
125
- return true;
126
- }
127
- function $filterIdentifier(filter, value) {
128
- if (filter.in !== undefined &&
129
- !filter.in.some((inValue) => inValue.equals(value))) {
130
- return false;
131
- }
132
- if (filter.type !== undefined && value.termType !== filter.type) {
133
- return false;
134
- }
135
- return true;
136
- }
137
- function $filterIri(filter, value) {
138
- if (filter.in !== undefined &&
139
- !filter.in.some((inValue) => inValue.equals(value))) {
140
- return false;
141
- }
142
- return true;
143
- }
144
- function $filterLiteral(filter, value) {
145
- return $filterTerm(filter, value);
146
- }
147
- function $filterMaybe(filterItem) {
148
- return (filter, value) => {
149
- if (filter !== null) {
150
- if (value.isNothing()) {
151
- return false;
152
- }
153
- if (!filterItem(filter, value.extract())) {
154
- return false;
155
- }
156
- }
157
- else {
158
- if (value.isJust()) {
159
- return false;
160
- }
161
- }
162
- return true;
163
- };
164
- }
165
- function $filterNumeric(filter, value) {
166
- if (filter.in !== undefined &&
167
- !filter.in.some((inValue) => inValue === value)) {
168
- return false;
169
- }
170
- if (filter.maxExclusive !== undefined && value >= filter.maxExclusive) {
171
- return false;
172
- }
173
- if (filter.maxInclusive !== undefined && value > filter.maxInclusive) {
174
- return false;
175
- }
176
- if (filter.minExclusive !== undefined && value <= filter.minExclusive) {
177
- return false;
178
- }
179
- if (filter.minInclusive !== undefined && value < filter.minInclusive) {
180
- return false;
181
- }
182
- return true;
183
- }
184
- function $filterString(filter, value) {
185
- if (filter.in !== undefined &&
186
- !filter.in.some((inValue) => inValue === value)) {
187
- return false;
188
- }
189
- if (filter.maxLength !== undefined && value.length > filter.maxLength) {
190
- return false;
191
- }
192
- if (filter.minLength !== undefined && value.length < filter.minLength) {
193
- return false;
194
- }
195
- return true;
196
- }
197
- function $filterTerm(filter, value) {
198
- if (filter.datatypeIn !== undefined &&
199
- (value.termType !== "Literal" ||
200
- !filter.datatypeIn.some((inDatatype) => inDatatype.equals(value.datatype)))) {
201
- return false;
202
- }
203
- if (filter.in !== undefined &&
204
- !filter.in.some((inTerm) => inTerm.equals(value))) {
205
- return false;
206
- }
207
- if (filter.languageIn !== undefined &&
208
- (value.termType !== "Literal" ||
209
- !filter.languageIn.some((inLanguage) => inLanguage === value.language))) {
210
- return false;
211
- }
212
- if (filter.typeIn !== undefined &&
213
- !filter.typeIn.some((inType) => inType === value.termType)) {
214
- return false;
215
- }
216
- return true;
217
- }
218
105
  function $fromRdfPreferredLanguages(values, preferredLanguages) {
219
106
  if (!preferredLanguages || preferredLanguages.length === 0) {
220
107
  return Right(values);
@@ -237,28 +124,6 @@ function $fromRdfPreferredLanguages(values, preferredLanguages) {
237
124
  values: filteredValues,
238
125
  }));
239
126
  }
240
- class $IdentifierSet {
241
- blankNodeValues = new Set();
242
- namedNodeValues = new Set();
243
- add(identifier) {
244
- switch (identifier.termType) {
245
- case "BlankNode":
246
- this.blankNodeValues.add(identifier.value);
247
- return this;
248
- case "NamedNode":
249
- this.namedNodeValues.add(identifier.value);
250
- return this;
251
- }
252
- }
253
- has(identifier) {
254
- switch (identifier.termType) {
255
- case "BlankNode":
256
- return this.blankNodeValues.has(identifier.value);
257
- case "NamedNode":
258
- return this.namedNodeValues.has(identifier.value);
259
- }
260
- }
261
- }
262
127
  function $identityConversionFunction(value) {
263
128
  return Either.of(value);
264
129
  }
@@ -266,13 +131,28 @@ function $identityValidationFunction(_schema, value) {
266
131
  return Either.of(value);
267
132
  }
268
133
  const $literalFactory = new LiteralFactory({ dataFactory: dataFactory });
134
+ function $monkeyPatchObject(obj, methods) {
135
+ if (methods.toJson &&
136
+ (!globalThis.Object.prototype.hasOwnProperty.call(obj, "toJSON") ||
137
+ typeof obj.toJSON === "function")) {
138
+ const toJsonMethod = methods.toJson;
139
+ obj.toJSON = function (_key) {
140
+ return toJsonMethod(this);
141
+ };
142
+ }
143
+ if (methods.$toString &&
144
+ (!globalThis.Object.prototype.hasOwnProperty.call(obj, "toString") ||
145
+ typeof obj.toJSON === "function")) {
146
+ const toStringMethod = methods.$toString;
147
+ obj.toString = function () {
148
+ return toStringMethod(this);
149
+ };
150
+ }
151
+ return obj;
152
+ }
269
153
  const $parseIdentifier = NTriplesIdentifier.parser(dataFactory);
270
154
  export var $PropertyPath;
271
155
  (function ($PropertyPath) {
272
- function filter(_filter, _value) {
273
- return true;
274
- }
275
- $PropertyPath.filter = filter;
276
156
  $PropertyPath.fromRdfResource = RdfxResourcePropertyPath.fromResource;
277
157
  $PropertyPath.fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
278
158
  .toResource()
@@ -354,15 +234,11 @@ function $validateMaybe(validateItem) {
354
234
  }
355
235
  function $wrap_FromRdfResourceFunction(_fromRdfResourceFunction) {
356
236
  return (resource, options) => {
357
- let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
358
- if (!objectSet) {
359
- objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
360
- }
237
+ const { context, graph, ignoreRdfType = false, preferredLanguages, } = options ?? {};
361
238
  return _fromRdfResourceFunction(resource, {
362
239
  context,
363
240
  graph,
364
241
  ignoreRdfType,
365
- objectSet,
366
242
  preferredLanguages,
367
243
  });
368
244
  };
@@ -428,13 +304,7 @@ export var PropertyShape;
428
304
  shaclmateName: $convertToMaybe($identityConversionFunction)(parameters.shaclmateName).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.shaclmateName.type(), value)),
429
305
  uniqueLang: $convertToMaybe($identityConversionFunction)(parameters.uniqueLang).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.uniqueLang.type(), value)),
430
306
  xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type(), value)),
431
- }).map((properties) => {
432
- const finalObject = { ...properties, $type: "PropertyShape" };
433
- if (!globalThis.Object.prototype.hasOwnProperty.call(finalObject, "toString")) {
434
- finalObject.toString = $toString;
435
- }
436
- return finalObject;
437
- });
307
+ }).map((properties) => $monkeyPatchObject({ ...properties, $type: "PropertyShape" }, { $toString }));
438
308
  }
439
309
  PropertyShape.create = create;
440
310
  function createUnsafe(parameters) {
@@ -446,158 +316,6 @@ export var PropertyShape;
446
316
  Identifier.parse = $parseIdentifier;
447
317
  Identifier.stringify = NTriplesTerm.stringify;
448
318
  })(Identifier = PropertyShape.Identifier || (PropertyShape.Identifier = {}));
449
- function filter(filter, value) {
450
- if (filter.$identifier !== undefined &&
451
- !$filterIdentifier(filter.$identifier, value.$identifier())) {
452
- return false;
453
- }
454
- if (filter.and !== undefined &&
455
- !$filterMaybe($filterArray($filterIdentifier))(filter.and, value.and)) {
456
- return false;
457
- }
458
- if (filter.classes !== undefined &&
459
- !$filterArray($filterIri)(filter.classes, value.classes)) {
460
- return false;
461
- }
462
- if (filter.comment !== undefined &&
463
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
464
- return false;
465
- }
466
- if (filter.datatype !== undefined &&
467
- !$filterMaybe($filterIri)(filter.datatype, value.datatype)) {
468
- return false;
469
- }
470
- if (filter.deactivated !== undefined &&
471
- !$filterMaybe($filterBoolean)(filter.deactivated, value.deactivated)) {
472
- return false;
473
- }
474
- if (filter.defaultValue !== undefined &&
475
- !$filterMaybe($filterTerm)(filter.defaultValue, value.defaultValue)) {
476
- return false;
477
- }
478
- if (filter.description !== undefined &&
479
- !$filterMaybe($filterString)(filter.description, value.description)) {
480
- return false;
481
- }
482
- if (filter.display !== undefined &&
483
- !$filterBoolean(filter.display, value.display)) {
484
- return false;
485
- }
486
- if (filter.flags !== undefined &&
487
- !$filterArray($filterString)(filter.flags, value.flags)) {
488
- return false;
489
- }
490
- if (filter.groups !== undefined &&
491
- !$filterArray($filterIdentifier)(filter.groups, value.groups)) {
492
- return false;
493
- }
494
- if (filter.hasValues !== undefined &&
495
- !$filterArray($filterTerm)(filter.hasValues, value.hasValues)) {
496
- return false;
497
- }
498
- if (filter.in_ !== undefined &&
499
- !$filterMaybe($filterArray($filterTerm))(filter.in_, value.in_)) {
500
- return false;
501
- }
502
- if (filter.isDefinedBy !== undefined &&
503
- !$filterMaybe($filterIdentifier)(filter.isDefinedBy, value.isDefinedBy)) {
504
- return false;
505
- }
506
- if (filter.label !== undefined &&
507
- !$filterMaybe($filterString)(filter.label, value.label)) {
508
- return false;
509
- }
510
- if (filter.languageIn !== undefined &&
511
- !$filterMaybe($filterArray($filterString))(filter.languageIn, value.languageIn)) {
512
- return false;
513
- }
514
- if (filter.maxCount !== undefined &&
515
- !$filterMaybe(($filterNumeric))(filter.maxCount, value.maxCount)) {
516
- return false;
517
- }
518
- if (filter.maxExclusive !== undefined &&
519
- !$filterMaybe($filterLiteral)(filter.maxExclusive, value.maxExclusive)) {
520
- return false;
521
- }
522
- if (filter.maxInclusive !== undefined &&
523
- !$filterMaybe($filterLiteral)(filter.maxInclusive, value.maxInclusive)) {
524
- return false;
525
- }
526
- if (filter.maxLength !== undefined &&
527
- !$filterMaybe(($filterNumeric))(filter.maxLength, value.maxLength)) {
528
- return false;
529
- }
530
- if (filter.minCount !== undefined &&
531
- !$filterMaybe(($filterNumeric))(filter.minCount, value.minCount)) {
532
- return false;
533
- }
534
- if (filter.minExclusive !== undefined &&
535
- !$filterMaybe($filterLiteral)(filter.minExclusive, value.minExclusive)) {
536
- return false;
537
- }
538
- if (filter.minInclusive !== undefined &&
539
- !$filterMaybe($filterLiteral)(filter.minInclusive, value.minInclusive)) {
540
- return false;
541
- }
542
- if (filter.minLength !== undefined &&
543
- !$filterMaybe(($filterNumeric))(filter.minLength, value.minLength)) {
544
- return false;
545
- }
546
- if (filter.mutable !== undefined &&
547
- !$filterMaybe($filterBoolean)(filter.mutable, value.mutable)) {
548
- return false;
549
- }
550
- if (filter.name !== undefined &&
551
- !$filterMaybe($filterString)(filter.name, value.name)) {
552
- return false;
553
- }
554
- if (filter.node !== undefined &&
555
- !$filterMaybe($filterIdentifier)(filter.node, value.node)) {
556
- return false;
557
- }
558
- if (filter.nodeKind !== undefined &&
559
- !$filterMaybe($filterIri)(filter.nodeKind, value.nodeKind)) {
560
- return false;
561
- }
562
- if (filter.not !== undefined &&
563
- !$filterArray($filterIdentifier)(filter.not, value.not)) {
564
- return false;
565
- }
566
- if (filter.or !== undefined &&
567
- !$filterMaybe($filterArray($filterIdentifier))(filter.or, value.or)) {
568
- return false;
569
- }
570
- if (filter.order !== undefined &&
571
- !$filterMaybe(($filterNumeric))(filter.order, value.order)) {
572
- return false;
573
- }
574
- if (filter.path !== undefined &&
575
- !$PropertyPath.filter(filter.path, value.path)) {
576
- return false;
577
- }
578
- if (filter.patterns !== undefined &&
579
- !$filterArray($filterString)(filter.patterns, value.patterns)) {
580
- return false;
581
- }
582
- if (filter.resolve !== undefined &&
583
- !$filterMaybe($filterIdentifier)(filter.resolve, value.resolve)) {
584
- return false;
585
- }
586
- if (filter.shaclmateName !== undefined &&
587
- !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
588
- return false;
589
- }
590
- if (filter.uniqueLang !== undefined &&
591
- !$filterMaybe($filterBoolean)(filter.uniqueLang, value.uniqueLang)) {
592
- return false;
593
- }
594
- if (filter.xone !== undefined &&
595
- !$filterMaybe($filterArray($filterIdentifier))(filter.xone, value.xone)) {
596
- return false;
597
- }
598
- return true;
599
- }
600
- PropertyShape.filter = filter;
601
319
  PropertyShape._fromRdfResource = ($resource, _$options) => {
602
320
  return (!_$options.ignoreRdfType
603
321
  ? $resource
@@ -1130,7 +848,6 @@ export var PropertyShape;
1130
848
  typeFromRdf: (resourceValues) => $PropertyPath.fromRdfResourceValues(resourceValues, {
1131
849
  context: _$options.context,
1132
850
  graph: _$options.graph,
1133
- objectSet: _$options.objectSet,
1134
851
  preferredLanguages: _$options.preferredLanguages,
1135
852
  resource: $resource,
1136
853
  ignoreRdfType: true,
@@ -1770,7 +1487,7 @@ export var PropertyShape;
1770
1487
  }
1771
1488
  PropertyShape._propertiesToStrings = _propertiesToStrings;
1772
1489
  function $toString(_propertyShape) {
1773
- return `PropertyShape(${JSON.stringify(_propertiesToStrings((_propertyShape ?? this)))})`;
1490
+ return `PropertyShape(${JSON.stringify(_propertiesToStrings(_propertyShape))})`;
1774
1491
  }
1775
1492
  PropertyShape.$toString = $toString;
1776
1493
  })(PropertyShape || (PropertyShape = {}));
@@ -1781,13 +1498,7 @@ export var PropertyGroup;
1781
1498
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1782
1499
  comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1783
1500
  label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1784
- }).map((properties) => {
1785
- const finalObject = { ...properties, $type: "PropertyGroup" };
1786
- if (!globalThis.Object.prototype.hasOwnProperty.call(finalObject, "toString")) {
1787
- finalObject.toString = $toString;
1788
- }
1789
- return finalObject;
1790
- });
1501
+ }).map((properties) => $monkeyPatchObject({ ...properties, $type: "PropertyGroup" }, { $toString }));
1791
1502
  }
1792
1503
  PropertyGroup.create = create;
1793
1504
  function createUnsafe(parameters) {
@@ -1799,22 +1510,6 @@ export var PropertyGroup;
1799
1510
  Identifier.parse = $parseIdentifier;
1800
1511
  Identifier.stringify = NTriplesTerm.stringify;
1801
1512
  })(Identifier = PropertyGroup.Identifier || (PropertyGroup.Identifier = {}));
1802
- function filter(filter, value) {
1803
- if (filter.$identifier !== undefined &&
1804
- !$filterIdentifier(filter.$identifier, value.$identifier())) {
1805
- return false;
1806
- }
1807
- if (filter.comment !== undefined &&
1808
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
1809
- return false;
1810
- }
1811
- if (filter.label !== undefined &&
1812
- !$filterMaybe($filterString)(filter.label, value.label)) {
1813
- return false;
1814
- }
1815
- return true;
1816
- }
1817
- PropertyGroup.filter = filter;
1818
1513
  PropertyGroup._fromRdfResource = ($resource, _$options) => {
1819
1514
  return (!_$options.ignoreRdfType
1820
1515
  ? $resource
@@ -1941,7 +1636,7 @@ export var PropertyGroup;
1941
1636
  }
1942
1637
  PropertyGroup._propertiesToStrings = _propertiesToStrings;
1943
1638
  function $toString(_propertyGroup) {
1944
- return `PropertyGroup(${JSON.stringify(_propertiesToStrings((_propertyGroup ?? this)))})`;
1639
+ return `PropertyGroup(${JSON.stringify(_propertiesToStrings(_propertyGroup))})`;
1945
1640
  }
1946
1641
  PropertyGroup.$toString = $toString;
1947
1642
  })(PropertyGroup || (PropertyGroup = {}));
@@ -1952,13 +1647,7 @@ export var Ontology;
1952
1647
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1953
1648
  comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1954
1649
  label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1955
- }).map((properties) => {
1956
- const finalObject = { ...properties, $type: "Ontology" };
1957
- if (!globalThis.Object.prototype.hasOwnProperty.call(finalObject, "toString")) {
1958
- finalObject.toString = $toString;
1959
- }
1960
- return finalObject;
1961
- });
1650
+ }).map((properties) => $monkeyPatchObject({ ...properties, $type: "Ontology" }, { $toString }));
1962
1651
  }
1963
1652
  Ontology.create = create;
1964
1653
  function createUnsafe(parameters) {
@@ -1970,22 +1659,6 @@ export var Ontology;
1970
1659
  Identifier.parse = $parseIdentifier;
1971
1660
  Identifier.stringify = NTriplesTerm.stringify;
1972
1661
  })(Identifier = Ontology.Identifier || (Ontology.Identifier = {}));
1973
- function filter(filter, value) {
1974
- if (filter.$identifier !== undefined &&
1975
- !$filterIdentifier(filter.$identifier, value.$identifier())) {
1976
- return false;
1977
- }
1978
- if (filter.comment !== undefined &&
1979
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
1980
- return false;
1981
- }
1982
- if (filter.label !== undefined &&
1983
- !$filterMaybe($filterString)(filter.label, value.label)) {
1984
- return false;
1985
- }
1986
- return true;
1987
- }
1988
- Ontology.filter = filter;
1989
1662
  Ontology._fromRdfResource = ($resource, _$options) => {
1990
1663
  return (!_$options.ignoreRdfType
1991
1664
  ? $resource
@@ -2112,7 +1785,7 @@ export var Ontology;
2112
1785
  }
2113
1786
  Ontology._propertiesToStrings = _propertiesToStrings;
2114
1787
  function $toString(_ontology) {
2115
- return `Ontology(${JSON.stringify(_propertiesToStrings((_ontology ?? this)))})`;
1788
+ return `Ontology(${JSON.stringify(_propertiesToStrings(_ontology))})`;
2116
1789
  }
2117
1790
  Ontology.$toString = $toString;
2118
1791
  })(Ontology || (Ontology = {}));
@@ -2159,13 +1832,7 @@ export var NodeShape;
2159
1832
  tsImports: $convertToArray($identityConversionFunction, true)(parameters?.tsImports).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.tsImports.type(), value)),
2160
1833
  types: $convertToArray(($convertToIri), true)(parameters?.types).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.types.type(), value)),
2161
1834
  xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type(), value)),
2162
- }).map((properties) => {
2163
- const finalObject = { ...properties, $type: "NodeShape" };
2164
- if (!globalThis.Object.prototype.hasOwnProperty.call(finalObject, "toString")) {
2165
- finalObject.toString = $toString;
2166
- }
2167
- return finalObject;
2168
- });
1835
+ }).map((properties) => $monkeyPatchObject({ ...properties, $type: "NodeShape" }, { $toString }));
2169
1836
  }
2170
1837
  NodeShape.create = create;
2171
1838
  function createUnsafe(parameters) {
@@ -2177,166 +1844,6 @@ export var NodeShape;
2177
1844
  Identifier.parse = $parseIdentifier;
2178
1845
  Identifier.stringify = NTriplesTerm.stringify;
2179
1846
  })(Identifier = NodeShape.Identifier || (NodeShape.Identifier = {}));
2180
- function filter(filter, value) {
2181
- if (filter.$identifier !== undefined &&
2182
- !$filterIdentifier(filter.$identifier, value.$identifier())) {
2183
- return false;
2184
- }
2185
- if (filter.and !== undefined &&
2186
- !$filterMaybe($filterArray($filterIdentifier))(filter.and, value.and)) {
2187
- return false;
2188
- }
2189
- if (filter.classes !== undefined &&
2190
- !$filterArray($filterIri)(filter.classes, value.classes)) {
2191
- return false;
2192
- }
2193
- if (filter.closed !== undefined &&
2194
- !$filterMaybe($filterBoolean)(filter.closed, value.closed)) {
2195
- return false;
2196
- }
2197
- if (filter.comment !== undefined &&
2198
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
2199
- return false;
2200
- }
2201
- if (filter.datatype !== undefined &&
2202
- !$filterMaybe($filterIri)(filter.datatype, value.datatype)) {
2203
- return false;
2204
- }
2205
- if (filter.deactivated !== undefined &&
2206
- !$filterMaybe($filterBoolean)(filter.deactivated, value.deactivated)) {
2207
- return false;
2208
- }
2209
- if (filter.discriminantValue !== undefined &&
2210
- !$filterMaybe($filterString)(filter.discriminantValue, value.discriminantValue)) {
2211
- return false;
2212
- }
2213
- if (filter.extern !== undefined &&
2214
- !$filterMaybe($filterBoolean)(filter.extern, value.extern)) {
2215
- return false;
2216
- }
2217
- if (filter.flags !== undefined &&
2218
- !$filterArray($filterString)(filter.flags, value.flags)) {
2219
- return false;
2220
- }
2221
- if (filter.fromRdfType !== undefined &&
2222
- !$filterMaybe($filterIri)(filter.fromRdfType, value.fromRdfType)) {
2223
- return false;
2224
- }
2225
- if (filter.hasValues !== undefined &&
2226
- !$filterArray($filterTerm)(filter.hasValues, value.hasValues)) {
2227
- return false;
2228
- }
2229
- if (filter.ignoredProperties !== undefined &&
2230
- !$filterMaybe($filterArray($filterIri))(filter.ignoredProperties, value.ignoredProperties)) {
2231
- return false;
2232
- }
2233
- if (filter.in_ !== undefined &&
2234
- !$filterMaybe($filterArray($filterTerm))(filter.in_, value.in_)) {
2235
- return false;
2236
- }
2237
- if (filter.isDefinedBy !== undefined &&
2238
- !$filterMaybe($filterIdentifier)(filter.isDefinedBy, value.isDefinedBy)) {
2239
- return false;
2240
- }
2241
- if (filter.label !== undefined &&
2242
- !$filterMaybe($filterString)(filter.label, value.label)) {
2243
- return false;
2244
- }
2245
- if (filter.languageIn !== undefined &&
2246
- !$filterMaybe($filterArray($filterString))(filter.languageIn, value.languageIn)) {
2247
- return false;
2248
- }
2249
- if (filter.maxCount !== undefined &&
2250
- !$filterMaybe(($filterNumeric))(filter.maxCount, value.maxCount)) {
2251
- return false;
2252
- }
2253
- if (filter.maxExclusive !== undefined &&
2254
- !$filterMaybe($filterLiteral)(filter.maxExclusive, value.maxExclusive)) {
2255
- return false;
2256
- }
2257
- if (filter.maxInclusive !== undefined &&
2258
- !$filterMaybe($filterLiteral)(filter.maxInclusive, value.maxInclusive)) {
2259
- return false;
2260
- }
2261
- if (filter.maxLength !== undefined &&
2262
- !$filterMaybe(($filterNumeric))(filter.maxLength, value.maxLength)) {
2263
- return false;
2264
- }
2265
- if (filter.minCount !== undefined &&
2266
- !$filterMaybe(($filterNumeric))(filter.minCount, value.minCount)) {
2267
- return false;
2268
- }
2269
- if (filter.minExclusive !== undefined &&
2270
- !$filterMaybe($filterLiteral)(filter.minExclusive, value.minExclusive)) {
2271
- return false;
2272
- }
2273
- if (filter.minInclusive !== undefined &&
2274
- !$filterMaybe($filterLiteral)(filter.minInclusive, value.minInclusive)) {
2275
- return false;
2276
- }
2277
- if (filter.minLength !== undefined &&
2278
- !$filterMaybe(($filterNumeric))(filter.minLength, value.minLength)) {
2279
- return false;
2280
- }
2281
- if (filter.mutable !== undefined &&
2282
- !$filterMaybe($filterBoolean)(filter.mutable, value.mutable)) {
2283
- return false;
2284
- }
2285
- if (filter.node !== undefined &&
2286
- !$filterMaybe($filterIdentifier)(filter.node, value.node)) {
2287
- return false;
2288
- }
2289
- if (filter.nodeKind !== undefined &&
2290
- !$filterMaybe($filterIri)(filter.nodeKind, value.nodeKind)) {
2291
- return false;
2292
- }
2293
- if (filter.not !== undefined &&
2294
- !$filterArray($filterIdentifier)(filter.not, value.not)) {
2295
- return false;
2296
- }
2297
- if (filter.or !== undefined &&
2298
- !$filterMaybe($filterArray($filterIdentifier))(filter.or, value.or)) {
2299
- return false;
2300
- }
2301
- if (filter.patterns !== undefined &&
2302
- !$filterArray($filterString)(filter.patterns, value.patterns)) {
2303
- return false;
2304
- }
2305
- if (filter.properties !== undefined &&
2306
- !$filterArray($filterIdentifier)(filter.properties, value.properties)) {
2307
- return false;
2308
- }
2309
- if (filter.rdfType !== undefined &&
2310
- !$filterMaybe($filterIri)(filter.rdfType, value.rdfType)) {
2311
- return false;
2312
- }
2313
- if (filter.shaclmateName !== undefined &&
2314
- !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
2315
- return false;
2316
- }
2317
- if (filter.subClassOf !== undefined &&
2318
- !$filterArray($filterIri)(filter.subClassOf, value.subClassOf)) {
2319
- return false;
2320
- }
2321
- if (filter.toRdfTypes !== undefined &&
2322
- !$filterArray($filterIri)(filter.toRdfTypes, value.toRdfTypes)) {
2323
- return false;
2324
- }
2325
- if (filter.tsImports !== undefined &&
2326
- !$filterArray($filterString)(filter.tsImports, value.tsImports)) {
2327
- return false;
2328
- }
2329
- if (filter.types !== undefined &&
2330
- !$filterArray($filterIri)(filter.types, value.types)) {
2331
- return false;
2332
- }
2333
- if (filter.xone !== undefined &&
2334
- !$filterMaybe($filterArray($filterIdentifier))(filter.xone, value.xone)) {
2335
- return false;
2336
- }
2337
- return true;
2338
- }
2339
- NodeShape.filter = filter;
2340
1847
  NodeShape._fromRdfResource = ($resource, _$options) => {
2341
1848
  return (!_$options.ignoreRdfType
2342
1849
  ? $resource
@@ -3558,7 +3065,7 @@ export var NodeShape;
3558
3065
  }
3559
3066
  NodeShape._propertiesToStrings = _propertiesToStrings;
3560
3067
  function $toString(_nodeShape) {
3561
- return `NodeShape(${JSON.stringify(_propertiesToStrings((_nodeShape ?? this)))})`;
3068
+ return `NodeShape(${JSON.stringify(_propertiesToStrings(_nodeShape))})`;
3562
3069
  }
3563
3070
  NodeShape.$toString = $toString;
3564
3071
  })(NodeShape || (NodeShape = {}));
@@ -3573,25 +3080,6 @@ export var Shape;
3573
3080
  }
3574
3081
  throw new Error("unable to serialize to string");
3575
3082
  };
3576
- Shape.filter = (filter, value) => {
3577
- if (filter.$identifier !== undefined &&
3578
- !$filterIdentifier(filter.$identifier, value.$identifier())) {
3579
- return false;
3580
- }
3581
- if (filter.on?.["NodeShape"] !== undefined &&
3582
- NodeShape.isNodeShape(value)) {
3583
- if (!NodeShape.filter(filter.on["NodeShape"], value)) {
3584
- return false;
3585
- }
3586
- }
3587
- if (filter.on?.["PropertyShape"] !== undefined &&
3588
- PropertyShape.isPropertyShape(value)) {
3589
- if (!PropertyShape.filter(filter.on["PropertyShape"], value)) {
3590
- return false;
3591
- }
3592
- }
3593
- return true;
3594
- };
3595
3083
  Shape.fromRdfResource = (resource, options) => NodeShape.fromRdfResource(resource, {
3596
3084
  ...options,
3597
3085
  ignoreRdfType: false,
@@ -3605,7 +3093,6 @@ export var Shape;
3605
3093
  context: _options.context,
3606
3094
  graph: _options.graph,
3607
3095
  ignoreRdfType: false,
3608
- objectSet: _options.objectSet,
3609
3096
  preferredLanguages: _options.preferredLanguages,
3610
3097
  propertyPath: _options.propertyPath,
3611
3098
  resource: _options.resource,
@@ -3614,7 +3101,6 @@ export var Shape;
3614
3101
  context: _options.context,
3615
3102
  graph: _options.graph,
3616
3103
  ignoreRdfType: false,
3617
- objectSet: _options.objectSet,
3618
3104
  preferredLanguages: _options.preferredLanguages,
3619
3105
  propertyPath: _options.propertyPath,
3620
3106
  resource: _options.resource,
@@ -3929,36 +3415,6 @@ export var $Object;
3929
3415
  }
3930
3416
  throw new Error("unable to serialize to string");
3931
3417
  };
3932
- $Object.filter = (filter, value) => {
3933
- if (filter.$identifier !== undefined &&
3934
- !$filterIdentifier(filter.$identifier, value.$identifier())) {
3935
- return false;
3936
- }
3937
- if (filter.on?.["NodeShape"] !== undefined &&
3938
- NodeShape.isNodeShape(value)) {
3939
- if (!NodeShape.filter(filter.on["NodeShape"], value)) {
3940
- return false;
3941
- }
3942
- }
3943
- if (filter.on?.["Ontology"] !== undefined && Ontology.isOntology(value)) {
3944
- if (!Ontology.filter(filter.on["Ontology"], value)) {
3945
- return false;
3946
- }
3947
- }
3948
- if (filter.on?.["PropertyGroup"] !== undefined &&
3949
- PropertyGroup.isPropertyGroup(value)) {
3950
- if (!PropertyGroup.filter(filter.on["PropertyGroup"], value)) {
3951
- return false;
3952
- }
3953
- }
3954
- if (filter.on?.["PropertyShape"] !== undefined &&
3955
- PropertyShape.isPropertyShape(value)) {
3956
- if (!PropertyShape.filter(filter.on["PropertyShape"], value)) {
3957
- return false;
3958
- }
3959
- }
3960
- return true;
3961
- };
3962
3418
  $Object.fromRdfResource = (resource, options) => NodeShape.fromRdfResource(resource, {
3963
3419
  ...options,
3964
3420
  ignoreRdfType: false,
@@ -3981,7 +3437,6 @@ export var $Object;
3981
3437
  context: _options.context,
3982
3438
  graph: _options.graph,
3983
3439
  ignoreRdfType: false,
3984
- objectSet: _options.objectSet,
3985
3440
  preferredLanguages: _options.preferredLanguages,
3986
3441
  propertyPath: _options.propertyPath,
3987
3442
  resource: _options.resource,
@@ -3990,7 +3445,6 @@ export var $Object;
3990
3445
  context: _options.context,
3991
3446
  graph: _options.graph,
3992
3447
  ignoreRdfType: false,
3993
- objectSet: _options.objectSet,
3994
3448
  preferredLanguages: _options.preferredLanguages,
3995
3449
  propertyPath: _options.propertyPath,
3996
3450
  resource: _options.resource,
@@ -3999,7 +3453,6 @@ export var $Object;
3999
3453
  context: _options.context,
4000
3454
  graph: _options.graph,
4001
3455
  ignoreRdfType: false,
4002
- objectSet: _options.objectSet,
4003
3456
  preferredLanguages: _options.preferredLanguages,
4004
3457
  propertyPath: _options.propertyPath,
4005
3458
  resource: _options.resource,
@@ -4008,7 +3461,6 @@ export var $Object;
4008
3461
  context: _options.context,
4009
3462
  graph: _options.graph,
4010
3463
  ignoreRdfType: false,
4011
- objectSet: _options.objectSet,
4012
3464
  preferredLanguages: _options.preferredLanguages,
4013
3465
  propertyPath: _options.propertyPath,
4014
3466
  resource: _options.resource,
@@ -4104,443 +3556,4 @@ export var $Object;
4104
3556
  throw new Error("unable to serialize to RDF");
4105
3557
  });
4106
3558
  })($Object || ($Object = {}));
4107
- export class $RdfjsDatasetObjectSet {
4108
- #dataset;
4109
- #graph;
4110
- constructor(dataset, options) {
4111
- this.#dataset = dataset;
4112
- this.#graph = options?.graph;
4113
- }
4114
- $dataset() {
4115
- if (typeof this.#dataset === "object") {
4116
- return this.#dataset;
4117
- }
4118
- return this.#dataset();
4119
- }
4120
- $resourceSet() {
4121
- return new ResourceSet({
4122
- dataFactory: dataFactory,
4123
- dataset: this.$dataset(),
4124
- });
4125
- }
4126
- async nodeShape(identifier, options) {
4127
- return this.nodeShapeSync(identifier, options);
4128
- }
4129
- nodeShapeSync(identifier, options) {
4130
- return this.nodeShapesSync({
4131
- identifiers: [identifier],
4132
- preferredLanguages: options?.preferredLanguages,
4133
- }).map((objects) => objects[0]);
4134
- }
4135
- async nodeShapeCount(query) {
4136
- return this.nodeShapeCountSync(query);
4137
- }
4138
- nodeShapeCountSync(query) {
4139
- return this.nodeShapesSync(query).map((objects) => objects.length);
4140
- }
4141
- async nodeShapeIdentifiers(query) {
4142
- return this.nodeShapeIdentifiersSync(query);
4143
- }
4144
- nodeShapeIdentifiersSync(query) {
4145
- return this.nodeShapesSync(query).map((objects) => objects.map((object) => object.$identifier()));
4146
- }
4147
- async nodeShapes(query) {
4148
- return this.nodeShapesSync(query);
4149
- }
4150
- nodeShapesSync(query) {
4151
- return this.#objectsSync({
4152
- filter: NodeShape.filter,
4153
- fromRdfResource: NodeShape.fromRdfResource,
4154
- fromRdfTypes: [NodeShape.fromRdfType],
4155
- }, query);
4156
- }
4157
- async ontology(identifier, options) {
4158
- return this.ontologySync(identifier, options);
4159
- }
4160
- ontologySync(identifier, options) {
4161
- return this.ontologiesSync({
4162
- identifiers: [identifier],
4163
- preferredLanguages: options?.preferredLanguages,
4164
- }).map((objects) => objects[0]);
4165
- }
4166
- async ontologyCount(query) {
4167
- return this.ontologyCountSync(query);
4168
- }
4169
- ontologyCountSync(query) {
4170
- return this.ontologiesSync(query).map((objects) => objects.length);
4171
- }
4172
- async ontologyIdentifiers(query) {
4173
- return this.ontologyIdentifiersSync(query);
4174
- }
4175
- ontologyIdentifiersSync(query) {
4176
- return this.ontologiesSync(query).map((objects) => objects.map((object) => object.$identifier()));
4177
- }
4178
- async ontologies(query) {
4179
- return this.ontologiesSync(query);
4180
- }
4181
- ontologiesSync(query) {
4182
- return this.#objectsSync({
4183
- filter: Ontology.filter,
4184
- fromRdfResource: Ontology.fromRdfResource,
4185
- fromRdfTypes: [Ontology.fromRdfType],
4186
- }, query);
4187
- }
4188
- async propertyGroup(identifier, options) {
4189
- return this.propertyGroupSync(identifier, options);
4190
- }
4191
- propertyGroupSync(identifier, options) {
4192
- return this.propertyGroupsSync({
4193
- identifiers: [identifier],
4194
- preferredLanguages: options?.preferredLanguages,
4195
- }).map((objects) => objects[0]);
4196
- }
4197
- async propertyGroupCount(query) {
4198
- return this.propertyGroupCountSync(query);
4199
- }
4200
- propertyGroupCountSync(query) {
4201
- return this.propertyGroupsSync(query).map((objects) => objects.length);
4202
- }
4203
- async propertyGroupIdentifiers(query) {
4204
- return this.propertyGroupIdentifiersSync(query);
4205
- }
4206
- propertyGroupIdentifiersSync(query) {
4207
- return this.propertyGroupsSync(query).map((objects) => objects.map((object) => object.$identifier()));
4208
- }
4209
- async propertyGroups(query) {
4210
- return this.propertyGroupsSync(query);
4211
- }
4212
- propertyGroupsSync(query) {
4213
- return this.#objectsSync({
4214
- filter: PropertyGroup.filter,
4215
- fromRdfResource: PropertyGroup.fromRdfResource,
4216
- fromRdfTypes: [PropertyGroup.fromRdfType],
4217
- }, query);
4218
- }
4219
- async propertyShape(identifier, options) {
4220
- return this.propertyShapeSync(identifier, options);
4221
- }
4222
- propertyShapeSync(identifier, options) {
4223
- return this.propertyShapesSync({
4224
- identifiers: [identifier],
4225
- preferredLanguages: options?.preferredLanguages,
4226
- }).map((objects) => objects[0]);
4227
- }
4228
- async propertyShapeCount(query) {
4229
- return this.propertyShapeCountSync(query);
4230
- }
4231
- propertyShapeCountSync(query) {
4232
- return this.propertyShapesSync(query).map((objects) => objects.length);
4233
- }
4234
- async propertyShapeIdentifiers(query) {
4235
- return this.propertyShapeIdentifiersSync(query);
4236
- }
4237
- propertyShapeIdentifiersSync(query) {
4238
- return this.propertyShapesSync(query).map((objects) => objects.map((object) => object.$identifier()));
4239
- }
4240
- async propertyShapes(query) {
4241
- return this.propertyShapesSync(query);
4242
- }
4243
- propertyShapesSync(query) {
4244
- return this.#objectsSync({
4245
- filter: PropertyShape.filter,
4246
- fromRdfResource: PropertyShape.fromRdfResource,
4247
- fromRdfTypes: [PropertyShape.fromRdfType],
4248
- }, query);
4249
- }
4250
- async shape(identifier, options) {
4251
- return this.shapeSync(identifier, options);
4252
- }
4253
- shapeSync(identifier, options) {
4254
- return this.shapesSync({
4255
- identifiers: [identifier],
4256
- preferredLanguages: options?.preferredLanguages,
4257
- }).map((objects) => objects[0]);
4258
- }
4259
- async shapeCount(query) {
4260
- return this.shapeCountSync(query);
4261
- }
4262
- shapeCountSync(query) {
4263
- return this.shapesSync(query).map((objects) => objects.length);
4264
- }
4265
- async shapeIdentifiers(query) {
4266
- return this.shapeIdentifiersSync(query);
4267
- }
4268
- shapeIdentifiersSync(query) {
4269
- return this.shapesSync(query).map((objects) => objects.map((object) => object.$identifier()));
4270
- }
4271
- async shapes(query) {
4272
- return this.shapesSync(query);
4273
- }
4274
- shapesSync(query) {
4275
- return this.#objectUnionsSync([
4276
- {
4277
- filter: Shape.filter,
4278
- fromRdfResource: NodeShape.fromRdfResource,
4279
- fromRdfTypes: [NodeShape.fromRdfType],
4280
- },
4281
- {
4282
- filter: Shape.filter,
4283
- fromRdfResource: PropertyShape.fromRdfResource,
4284
- fromRdfTypes: [PropertyShape.fromRdfType],
4285
- },
4286
- ], query);
4287
- }
4288
- async $object(identifier, options) {
4289
- return this.$objectSync(identifier, options);
4290
- }
4291
- $objectSync(identifier, options) {
4292
- return this.$objectsSync({
4293
- identifiers: [identifier],
4294
- preferredLanguages: options?.preferredLanguages,
4295
- }).map((objects) => objects[0]);
4296
- }
4297
- async $objectCount(query) {
4298
- return this.$objectCountSync(query);
4299
- }
4300
- $objectCountSync(query) {
4301
- return this.$objectsSync(query).map((objects) => objects.length);
4302
- }
4303
- async $objectIdentifiers(query) {
4304
- return this.$objectIdentifiersSync(query);
4305
- }
4306
- $objectIdentifiersSync(query) {
4307
- return this.$objectsSync(query).map((objects) => objects.map((object) => object.$identifier()));
4308
- }
4309
- async $objects(query) {
4310
- return this.$objectsSync(query);
4311
- }
4312
- $objectsSync(query) {
4313
- return this.#objectUnionsSync([
4314
- {
4315
- filter: $Object.filter,
4316
- fromRdfResource: NodeShape.fromRdfResource,
4317
- fromRdfTypes: [NodeShape.fromRdfType],
4318
- },
4319
- {
4320
- filter: $Object.filter,
4321
- fromRdfResource: Ontology.fromRdfResource,
4322
- fromRdfTypes: [Ontology.fromRdfType],
4323
- },
4324
- {
4325
- filter: $Object.filter,
4326
- fromRdfResource: PropertyGroup.fromRdfResource,
4327
- fromRdfTypes: [PropertyGroup.fromRdfType],
4328
- },
4329
- {
4330
- filter: $Object.filter,
4331
- fromRdfResource: PropertyShape.fromRdfResource,
4332
- fromRdfTypes: [PropertyShape.fromRdfType],
4333
- },
4334
- ], query);
4335
- }
4336
- #objectsSync(namedObjectType, query) {
4337
- const graph = query?.graph ?? this.#graph;
4338
- const limit = query?.limit ?? Number.MAX_SAFE_INTEGER;
4339
- if (limit <= 0) {
4340
- return Right([]);
4341
- }
4342
- let offset = query?.offset ?? 0;
4343
- if (offset < 0) {
4344
- offset = 0;
4345
- }
4346
- const fromRdfResourceOptions = {
4347
- graph,
4348
- objectSet: this,
4349
- preferredLanguages: query?.preferredLanguages,
4350
- };
4351
- let resources;
4352
- const resourceSet = this.$resourceSet(); // Access once, in case it's instantiated lazily
4353
- let sortResources;
4354
- if (query?.identifiers) {
4355
- resources = query.identifiers.map((identifier) => ({
4356
- resource: resourceSet.resource(identifier),
4357
- }));
4358
- sortResources = false;
4359
- }
4360
- else if (namedObjectType.fromRdfTypes.length > 0) {
4361
- const identifierSet = new $IdentifierSet();
4362
- resources = [];
4363
- sortResources = true;
4364
- for (const fromRdfType of namedObjectType.fromRdfTypes) {
4365
- for (const resource of resourceSet.instancesOf(fromRdfType, {
4366
- graph,
4367
- })) {
4368
- if (!identifierSet.has(resource.identifier)) {
4369
- identifierSet.add(resource.identifier);
4370
- resources.push({ resource });
4371
- }
4372
- }
4373
- }
4374
- }
4375
- else {
4376
- const identifierSet = new $IdentifierSet();
4377
- resources = [];
4378
- sortResources = true;
4379
- for (const quad of resourceSet.dataset) {
4380
- if (graph && !quad.graph.equals(graph)) {
4381
- continue;
4382
- }
4383
- switch (quad.subject.termType) {
4384
- case "BlankNode":
4385
- case "NamedNode":
4386
- break;
4387
- default:
4388
- continue;
4389
- }
4390
- if (identifierSet.has(quad.subject)) {
4391
- continue;
4392
- }
4393
- identifierSet.add(quad.subject);
4394
- const resource = resourceSet.resource(quad.subject);
4395
- // Eagerly eliminate the majority of resources that won't match the object type
4396
- namedObjectType
4397
- .fromRdfResource(resource, fromRdfResourceOptions)
4398
- .ifRight((object) => {
4399
- resources.push({ object, resource });
4400
- });
4401
- }
4402
- }
4403
- if (sortResources) {
4404
- // Sort resources by identifier so limit and offset are deterministic
4405
- resources.sort((left, right) => left.resource.identifier.value.localeCompare(right.resource.identifier.value));
4406
- }
4407
- let objectI = 0;
4408
- const objects = [];
4409
- for (let { object, resource } of resources) {
4410
- if (!object) {
4411
- const objectEither = namedObjectType.fromRdfResource(resource, fromRdfResourceOptions);
4412
- if (objectEither.isLeft()) {
4413
- return objectEither;
4414
- }
4415
- object = objectEither.unsafeCoerce();
4416
- }
4417
- if (query?.filter && !namedObjectType.filter(query.filter, object)) {
4418
- continue;
4419
- }
4420
- if (objectI++ >= offset) {
4421
- objects.push(object);
4422
- if (objects.length === limit) {
4423
- return Right(objects);
4424
- }
4425
- }
4426
- }
4427
- return Right(objects);
4428
- }
4429
- #objectUnionsSync(namedObjectTypes, query) {
4430
- const graph = query?.graph ?? this.#graph;
4431
- const limit = query?.limit ?? Number.MAX_SAFE_INTEGER;
4432
- if (limit <= 0) {
4433
- return Right([]);
4434
- }
4435
- let offset = query?.offset ?? 0;
4436
- if (offset < 0) {
4437
- offset = 0;
4438
- }
4439
- const fromRdfResourceOptions = {
4440
- graph,
4441
- objectSet: this,
4442
- preferredLanguages: query?.preferredLanguages,
4443
- };
4444
- let resources;
4445
- const resourceSet = this.$resourceSet(); // Access once, in case it's instantiated lazily
4446
- let sortResources;
4447
- if (query?.identifiers) {
4448
- resources = query.identifiers.map((identifier) => ({
4449
- resource: resourceSet.resource(identifier),
4450
- }));
4451
- sortResources = false;
4452
- }
4453
- else if (namedObjectTypes.every((namedObjectType) => namedObjectType.fromRdfTypes.length > 0)) {
4454
- const identifierSet = new $IdentifierSet();
4455
- resources = [];
4456
- sortResources = true;
4457
- for (const namedObjectType of namedObjectTypes) {
4458
- for (const fromRdfType of namedObjectType.fromRdfTypes) {
4459
- for (const resource of resourceSet.instancesOf(fromRdfType, {
4460
- graph,
4461
- })) {
4462
- if (!identifierSet.has(resource.identifier)) {
4463
- identifierSet.add(resource.identifier);
4464
- resources.push({ namedObjectType, resource });
4465
- }
4466
- }
4467
- }
4468
- }
4469
- }
4470
- else {
4471
- const identifierSet = new $IdentifierSet();
4472
- resources = [];
4473
- sortResources = true;
4474
- for (const quad of resourceSet.dataset) {
4475
- if (graph && !quad.graph.equals(graph)) {
4476
- continue;
4477
- }
4478
- switch (quad.subject.termType) {
4479
- case "BlankNode":
4480
- case "NamedNode":
4481
- break;
4482
- default:
4483
- continue;
4484
- }
4485
- if (identifierSet.has(quad.subject)) {
4486
- continue;
4487
- }
4488
- identifierSet.add(quad.subject);
4489
- // Eagerly eliminate the majority of resources that won't match the object types
4490
- const resource = resourceSet.resource(quad.subject);
4491
- for (const namedObjectType of namedObjectTypes) {
4492
- if (namedObjectType
4493
- .fromRdfResource(resource, fromRdfResourceOptions)
4494
- .ifRight((object) => {
4495
- resources.push({ object, namedObjectType, resource });
4496
- })
4497
- .isRight()) {
4498
- break;
4499
- }
4500
- }
4501
- }
4502
- }
4503
- if (sortResources) {
4504
- // Sort resources by identifier so limit and offset are deterministic
4505
- resources.sort((left, right) => left.resource.identifier.value.localeCompare(right.resource.identifier.value));
4506
- }
4507
- let objectI = 0;
4508
- const objects = [];
4509
- for (let { object, namedObjectType, resource } of resources) {
4510
- if (!object) {
4511
- let objectEither;
4512
- if (namedObjectType) {
4513
- objectEither = namedObjectType.fromRdfResource(resource, fromRdfResourceOptions);
4514
- }
4515
- else {
4516
- objectEither = Left(new Error("no object types"));
4517
- for (const tryObjectType of namedObjectTypes) {
4518
- objectEither = tryObjectType.fromRdfResource(resource, fromRdfResourceOptions);
4519
- if (objectEither.isRight()) {
4520
- namedObjectType = tryObjectType;
4521
- break;
4522
- }
4523
- }
4524
- }
4525
- if (objectEither.isLeft()) {
4526
- return objectEither;
4527
- }
4528
- object = objectEither.unsafeCoerce();
4529
- }
4530
- if (!namedObjectType) {
4531
- throw new Error("namedObjectType should be set here");
4532
- }
4533
- if (query?.filter && !namedObjectType.filter(query.filter, object)) {
4534
- continue;
4535
- }
4536
- if (objectI++ >= offset) {
4537
- objects.push(object);
4538
- if (objects.length === limit) {
4539
- return Right(objects);
4540
- }
4541
- }
4542
- }
4543
- return Right(objects);
4544
- }
4545
- }
4546
3559
  //# sourceMappingURL=generated.js.map