@_linked/core 2.11.1 → 2.12.0-next.20260706124103
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.
- package/CHANGELOG.md +39 -0
- package/README.md +3 -3
- package/lib/cjs/expressions/Expr.d.ts +22 -51
- package/lib/cjs/expressions/Expr.js +24 -176
- package/lib/cjs/expressions/Expr.js.map +1 -1
- package/lib/cjs/expressions/ExpressionMethods.d.ts +4 -0
- package/lib/cjs/expressions/ExpressionNode.d.ts +4 -0
- package/lib/cjs/expressions/ExpressionNode.js +13 -0
- package/lib/cjs/expressions/ExpressionNode.js.map +1 -1
- package/lib/cjs/index.d.ts +2 -2
- package/lib/cjs/index.js +6 -138
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces/ICoreIterable.d.ts +1 -1
- package/lib/cjs/package.d.ts +2 -2
- package/lib/cjs/queries/ContextRef.d.ts +15 -4
- package/lib/cjs/queries/ContextRef.js +15 -4
- package/lib/cjs/queries/ContextRef.js.map +1 -1
- package/lib/cjs/queries/CreateBuilder.d.ts +3 -5
- package/lib/cjs/queries/CreateBuilder.js +4 -16
- package/lib/cjs/queries/CreateBuilder.js.map +1 -1
- package/lib/cjs/queries/DeleteBuilder.d.ts +3 -5
- package/lib/cjs/queries/DeleteBuilder.js +8 -20
- package/lib/cjs/queries/DeleteBuilder.js.map +1 -1
- package/lib/cjs/queries/DslJsonExpression.d.ts +8 -8
- package/lib/cjs/queries/DslJsonExpression.js +84 -26
- package/lib/cjs/queries/DslJsonExpression.js.map +1 -1
- package/lib/cjs/queries/FieldSet.d.ts +43 -14
- package/lib/cjs/queries/FieldSet.js +142 -77
- package/lib/cjs/queries/FieldSet.js.map +1 -1
- package/lib/cjs/queries/IRCanonicalize.d.ts +5 -9
- package/lib/cjs/queries/IRCanonicalize.js +7 -23
- package/lib/cjs/queries/IRCanonicalize.js.map +1 -1
- package/lib/cjs/queries/IRDesugar.d.ts +2 -1
- package/lib/cjs/queries/IRDesugar.js +1 -1
- package/lib/cjs/queries/IRDesugar.js.map +1 -1
- package/lib/cjs/queries/IRLower.js +7 -7
- package/lib/cjs/queries/IRLower.js.map +1 -1
- package/lib/cjs/queries/IntermediateRepresentation.d.ts +16 -2
- package/lib/cjs/queries/MutationQuery.d.ts +18 -1
- package/lib/cjs/queries/MutationQuery.js +83 -3
- package/lib/cjs/queries/MutationQuery.js.map +1 -1
- package/lib/cjs/queries/MutationSerialization.d.ts +11 -11
- package/lib/cjs/queries/MutationSerialization.js +51 -31
- package/lib/cjs/queries/MutationSerialization.js.map +1 -1
- package/lib/cjs/queries/MutationThenable.d.ts +18 -0
- package/lib/cjs/queries/MutationThenable.js +32 -0
- package/lib/cjs/queries/MutationThenable.js.map +1 -0
- package/lib/cjs/queries/QueryBuilder.d.ts +1 -1
- package/lib/cjs/queries/QueryBuilder.js +3 -3
- package/lib/cjs/queries/QueryBuilder.js.map +1 -1
- package/lib/cjs/queries/QueryBuilderSerialization.js +3 -4
- package/lib/cjs/queries/QueryBuilderSerialization.js.map +1 -1
- package/lib/cjs/queries/QueryContext.d.ts +1 -1
- package/lib/cjs/queries/QueryContext.js +7 -5
- package/lib/cjs/queries/QueryContext.js.map +1 -1
- package/lib/cjs/queries/QueryFactory.d.ts +0 -7
- package/lib/cjs/queries/QueryFactory.js +1 -20
- package/lib/cjs/queries/QueryFactory.js.map +1 -1
- package/lib/cjs/queries/SelectQuery.d.ts +19 -41
- package/lib/cjs/queries/SelectQuery.js +69 -118
- package/lib/cjs/queries/SelectQuery.js.map +1 -1
- package/lib/cjs/queries/UpdateBuilder.d.ts +3 -5
- package/lib/cjs/queries/UpdateBuilder.js +5 -17
- package/lib/cjs/queries/UpdateBuilder.js.map +1 -1
- package/lib/cjs/queries/lower.js +3 -4
- package/lib/cjs/queries/lower.js.map +1 -1
- package/lib/cjs/queries/lowerMutationJSON.js +39 -23
- package/lib/cjs/queries/lowerMutationJSON.js.map +1 -1
- package/lib/cjs/shapes/List.js +2 -9
- package/lib/cjs/shapes/List.js.map +1 -1
- package/lib/cjs/shapes/PathNode.js +5 -18
- package/lib/cjs/shapes/PathNode.js.map +1 -1
- package/lib/cjs/shapes/SHACL.d.ts +10 -0
- package/lib/cjs/shapes/SHACL.js +41 -0
- package/lib/cjs/shapes/SHACL.js.map +1 -1
- package/lib/cjs/shapes/Shape.d.ts +1 -1
- package/lib/cjs/shapes/Shape.js.map +1 -1
- package/lib/cjs/shapes/serializePathToNodeData.js +16 -0
- package/lib/cjs/shapes/serializePathToNodeData.js.map +1 -1
- package/lib/cjs/shapes/syncShapes.js +15 -0
- package/lib/cjs/shapes/syncShapes.js.map +1 -1
- package/lib/cjs/sparql/SparqlAlgebra.d.ts +8 -1
- package/lib/cjs/sparql/algebraToString.js +57 -11
- package/lib/cjs/sparql/algebraToString.js.map +1 -1
- package/lib/cjs/sparql/irToAlgebra.js +89 -31
- package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
- package/lib/cjs/sparql/resultMapping.js +0 -11
- package/lib/cjs/sparql/resultMapping.js.map +1 -1
- package/lib/cjs/sparql/sparqlUtils.d.ts +21 -0
- package/lib/cjs/sparql/sparqlUtils.js +65 -0
- package/lib/cjs/sparql/sparqlUtils.js.map +1 -1
- package/lib/cjs/utils/LinkedStorage.d.ts +1 -2
- package/lib/cjs/utils/LinkedStorage.js +1 -2
- package/lib/cjs/utils/LinkedStorage.js.map +1 -1
- package/lib/cjs/utils/Package.js +11 -4
- package/lib/cjs/utils/Package.js.map +1 -1
- package/lib/cjs/utils/Prefix.d.ts +4 -5
- package/lib/cjs/utils/Prefix.js +13 -7
- package/lib/cjs/utils/Prefix.js.map +1 -1
- package/lib/cjs/utils/ShapeClass.d.ts +0 -11
- package/lib/cjs/utils/ShapeClass.js +0 -83
- package/lib/cjs/utils/ShapeClass.js.map +1 -1
- package/lib/cjs/utils/cached.d.ts +3 -0
- package/lib/cjs/utils/cached.js +26 -16
- package/lib/cjs/utils/cached.js.map +1 -1
- package/lib/cjs/utils/loadStores.js +4 -0
- package/lib/cjs/utils/loadStores.js.map +1 -1
- package/lib/esm/expressions/Expr.d.ts +22 -51
- package/lib/esm/expressions/Expr.js +24 -176
- package/lib/esm/expressions/Expr.js.map +1 -1
- package/lib/esm/expressions/ExpressionMethods.d.ts +4 -0
- package/lib/esm/expressions/ExpressionNode.d.ts +4 -0
- package/lib/esm/expressions/ExpressionNode.js +13 -0
- package/lib/esm/expressions/ExpressionNode.js.map +1 -1
- package/lib/esm/index.d.ts +2 -2
- package/lib/esm/index.js +3 -103
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/ICoreIterable.d.ts +1 -1
- package/lib/esm/package.d.ts +2 -2
- package/lib/esm/queries/ContextRef.d.ts +15 -4
- package/lib/esm/queries/ContextRef.js +15 -4
- package/lib/esm/queries/ContextRef.js.map +1 -1
- package/lib/esm/queries/CreateBuilder.d.ts +3 -5
- package/lib/esm/queries/CreateBuilder.js +4 -16
- package/lib/esm/queries/CreateBuilder.js.map +1 -1
- package/lib/esm/queries/DeleteBuilder.d.ts +3 -5
- package/lib/esm/queries/DeleteBuilder.js +8 -20
- package/lib/esm/queries/DeleteBuilder.js.map +1 -1
- package/lib/esm/queries/DslJsonExpression.d.ts +8 -8
- package/lib/esm/queries/DslJsonExpression.js +84 -26
- package/lib/esm/queries/DslJsonExpression.js.map +1 -1
- package/lib/esm/queries/FieldSet.d.ts +43 -14
- package/lib/esm/queries/FieldSet.js +142 -77
- package/lib/esm/queries/FieldSet.js.map +1 -1
- package/lib/esm/queries/IRCanonicalize.d.ts +5 -9
- package/lib/esm/queries/IRCanonicalize.js +6 -21
- package/lib/esm/queries/IRCanonicalize.js.map +1 -1
- package/lib/esm/queries/IRDesugar.d.ts +2 -1
- package/lib/esm/queries/IRDesugar.js +1 -1
- package/lib/esm/queries/IRDesugar.js.map +1 -1
- package/lib/esm/queries/IRLower.js +7 -7
- package/lib/esm/queries/IRLower.js.map +1 -1
- package/lib/esm/queries/IntermediateRepresentation.d.ts +16 -2
- package/lib/esm/queries/MutationQuery.d.ts +18 -1
- package/lib/esm/queries/MutationQuery.js +83 -3
- package/lib/esm/queries/MutationQuery.js.map +1 -1
- package/lib/esm/queries/MutationSerialization.d.ts +11 -11
- package/lib/esm/queries/MutationSerialization.js +51 -31
- package/lib/esm/queries/MutationSerialization.js.map +1 -1
- package/lib/esm/queries/MutationThenable.d.ts +18 -0
- package/lib/esm/queries/MutationThenable.js +28 -0
- package/lib/esm/queries/MutationThenable.js.map +1 -0
- package/lib/esm/queries/QueryBuilder.d.ts +1 -1
- package/lib/esm/queries/QueryBuilder.js +3 -3
- package/lib/esm/queries/QueryBuilder.js.map +1 -1
- package/lib/esm/queries/QueryBuilderSerialization.js +3 -4
- package/lib/esm/queries/QueryBuilderSerialization.js.map +1 -1
- package/lib/esm/queries/QueryContext.d.ts +1 -1
- package/lib/esm/queries/QueryContext.js +7 -5
- package/lib/esm/queries/QueryContext.js.map +1 -1
- package/lib/esm/queries/QueryFactory.d.ts +0 -7
- package/lib/esm/queries/QueryFactory.js +1 -19
- package/lib/esm/queries/QueryFactory.js.map +1 -1
- package/lib/esm/queries/SelectQuery.d.ts +19 -41
- package/lib/esm/queries/SelectQuery.js +69 -118
- package/lib/esm/queries/SelectQuery.js.map +1 -1
- package/lib/esm/queries/UpdateBuilder.d.ts +3 -5
- package/lib/esm/queries/UpdateBuilder.js +5 -17
- package/lib/esm/queries/UpdateBuilder.js.map +1 -1
- package/lib/esm/queries/lower.js +3 -4
- package/lib/esm/queries/lower.js.map +1 -1
- package/lib/esm/queries/lowerMutationJSON.js +39 -23
- package/lib/esm/queries/lowerMutationJSON.js.map +1 -1
- package/lib/esm/shapes/List.js +2 -9
- package/lib/esm/shapes/List.js.map +1 -1
- package/lib/esm/shapes/PathNode.js +5 -18
- package/lib/esm/shapes/PathNode.js.map +1 -1
- package/lib/esm/shapes/SHACL.d.ts +10 -0
- package/lib/esm/shapes/SHACL.js +41 -0
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/lib/esm/shapes/Shape.d.ts +1 -1
- package/lib/esm/shapes/Shape.js.map +1 -1
- package/lib/esm/shapes/serializePathToNodeData.js +16 -0
- package/lib/esm/shapes/serializePathToNodeData.js.map +1 -1
- package/lib/esm/shapes/syncShapes.js +15 -0
- package/lib/esm/shapes/syncShapes.js.map +1 -1
- package/lib/esm/sparql/SparqlAlgebra.d.ts +8 -1
- package/lib/esm/sparql/algebraToString.js +58 -12
- package/lib/esm/sparql/algebraToString.js.map +1 -1
- package/lib/esm/sparql/irToAlgebra.js +89 -31
- package/lib/esm/sparql/irToAlgebra.js.map +1 -1
- package/lib/esm/sparql/resultMapping.js +0 -11
- package/lib/esm/sparql/resultMapping.js.map +1 -1
- package/lib/esm/sparql/sparqlUtils.d.ts +21 -0
- package/lib/esm/sparql/sparqlUtils.js +62 -0
- package/lib/esm/sparql/sparqlUtils.js.map +1 -1
- package/lib/esm/utils/LinkedStorage.d.ts +1 -2
- package/lib/esm/utils/LinkedStorage.js +1 -2
- package/lib/esm/utils/LinkedStorage.js.map +1 -1
- package/lib/esm/utils/Package.js +11 -4
- package/lib/esm/utils/Package.js.map +1 -1
- package/lib/esm/utils/Prefix.d.ts +4 -5
- package/lib/esm/utils/Prefix.js +13 -7
- package/lib/esm/utils/Prefix.js.map +1 -1
- package/lib/esm/utils/ShapeClass.d.ts +0 -11
- package/lib/esm/utils/ShapeClass.js +0 -79
- package/lib/esm/utils/ShapeClass.js.map +1 -1
- package/lib/esm/utils/cached.d.ts +3 -0
- package/lib/esm/utils/cached.js +26 -16
- package/lib/esm/utils/cached.js.map +1 -1
- package/lib/esm/utils/loadStores.js +4 -0
- package/lib/esm/utils/loadStores.js.map +1 -1
- package/package.json +9 -3
- package/lib/cjs/collections/CoreMap.d.ts +0 -37
- package/lib/cjs/collections/CoreMap.js +0 -101
- package/lib/cjs/collections/CoreMap.js.map +0 -1
- package/lib/cjs/paths/serializePathToSHACL.d.ts +0 -22
- package/lib/cjs/paths/serializePathToSHACL.js +0 -126
- package/lib/cjs/paths/serializePathToSHACL.js.map +0 -1
- package/lib/cjs/queries/WhereCondition.d.ts +0 -18
- package/lib/cjs/queries/WhereCondition.js +0 -3
- package/lib/cjs/queries/WhereCondition.js.map +0 -1
- package/lib/cjs/test-helpers/FusekiStore.d.ts +0 -29
- package/lib/cjs/test-helpers/FusekiStore.js +0 -85
- package/lib/cjs/test-helpers/FusekiStore.js.map +0 -1
- package/lib/cjs/test-helpers/fuseki-test-store.d.ts +0 -46
- package/lib/cjs/test-helpers/fuseki-test-store.js +0 -244
- package/lib/cjs/test-helpers/fuseki-test-store.js.map +0 -1
- package/lib/cjs/test-helpers/query-capture-store.d.ts +0 -11
- package/lib/cjs/test-helpers/query-capture-store.js +0 -109
- package/lib/cjs/test-helpers/query-capture-store.js.map +0 -1
- package/lib/cjs/test-helpers/query-fixtures.d.ts +0 -819
- package/lib/cjs/test-helpers/query-fixtures.js +0 -605
- package/lib/cjs/test-helpers/query-fixtures.js.map +0 -1
- package/lib/cjs/test-helpers/test-utils.d.ts +0 -18
- package/lib/cjs/test-helpers/test-utils.js +0 -47
- package/lib/cjs/test-helpers/test-utils.js.map +0 -1
- package/lib/cjs/utils/Types.d.ts +0 -11
- package/lib/cjs/utils/Types.js +0 -3
- package/lib/cjs/utils/Types.js.map +0 -1
- package/lib/esm/collections/CoreMap.d.ts +0 -37
- package/lib/esm/collections/CoreMap.js +0 -97
- package/lib/esm/collections/CoreMap.js.map +0 -1
- package/lib/esm/paths/serializePathToSHACL.d.ts +0 -22
- package/lib/esm/paths/serializePathToSHACL.js +0 -122
- package/lib/esm/paths/serializePathToSHACL.js.map +0 -1
- package/lib/esm/queries/WhereCondition.d.ts +0 -18
- package/lib/esm/queries/WhereCondition.js +0 -2
- package/lib/esm/queries/WhereCondition.js.map +0 -1
- package/lib/esm/test-helpers/FusekiStore.d.ts +0 -29
- package/lib/esm/test-helpers/FusekiStore.js +0 -81
- package/lib/esm/test-helpers/FusekiStore.js.map +0 -1
- package/lib/esm/test-helpers/fuseki-test-store.d.ts +0 -46
- package/lib/esm/test-helpers/fuseki-test-store.js +0 -232
- package/lib/esm/test-helpers/fuseki-test-store.js.map +0 -1
- package/lib/esm/test-helpers/query-capture-store.d.ts +0 -11
- package/lib/esm/test-helpers/query-capture-store.js +0 -71
- package/lib/esm/test-helpers/query-capture-store.js.map +0 -1
- package/lib/esm/test-helpers/query-fixtures.d.ts +0 -819
- package/lib/esm/test-helpers/query-fixtures.js +0 -602
- package/lib/esm/test-helpers/query-fixtures.js.map +0 -1
- package/lib/esm/test-helpers/test-utils.d.ts +0 -18
- package/lib/esm/test-helpers/test-utils.js +0 -41
- package/lib/esm/test-helpers/test-utils.js.map +0 -1
- package/lib/esm/utils/Types.d.ts +0 -11
- package/lib/esm/utils/Types.js +0 -2
- package/lib/esm/utils/Types.js.map +0 -1
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CoreMap = void 0;
|
|
4
|
-
class CoreMap extends Map {
|
|
5
|
-
createNew(...args) {
|
|
6
|
-
return new this.constructor(...args);
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Determines whether all the members of an array satisfy the specified test.
|
|
10
|
-
* @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.
|
|
11
|
-
* @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
|
|
12
|
-
*/
|
|
13
|
-
every(callbackfn, thisArg) {
|
|
14
|
-
for (let [key, value] of this) {
|
|
15
|
-
if (!callbackfn.apply(thisArg, [value, key, this])) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Determines whether the specified callback function returns true for any element of an array.
|
|
23
|
-
* @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.
|
|
24
|
-
* @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
|
|
25
|
-
*/
|
|
26
|
-
some(callbackfn, thisArg) {
|
|
27
|
-
for (let [key, value] of this) {
|
|
28
|
-
if (callbackfn.apply(thisArg, [value, key, this])) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Calls a defined callback function on each element of an array, and returns an array that contains the results.
|
|
36
|
-
* @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.
|
|
37
|
-
* @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
|
|
38
|
-
*/
|
|
39
|
-
map(callbackfn, thisArg) {
|
|
40
|
-
//create the result map, whos values will be 'mapped' into new values from the current values of this map
|
|
41
|
-
//var mappedMap = new (<any> this.constructor)() as CoreMap<K,U>;
|
|
42
|
-
var mappedMap = new this.constructor(); // as CoreMap<K,U>;
|
|
43
|
-
for (let [key, value] of this) {
|
|
44
|
-
//do the mapping
|
|
45
|
-
mappedMap.set(key, callbackfn.apply(thisArg, [value, key, this]));
|
|
46
|
-
}
|
|
47
|
-
return mappedMap;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Returns the elements of an array that meet the condition specified in a callback function.
|
|
51
|
-
* @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.
|
|
52
|
-
* @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
|
|
53
|
-
*/
|
|
54
|
-
filter(callbackfn, thisArg) {
|
|
55
|
-
//create the result map, whos values will be 'mapped' into new values from the current values of this map
|
|
56
|
-
var filteredMap = new this.constructor(); //this.createNew();//new Map<K,V>();
|
|
57
|
-
for (let [key, value] of this) {
|
|
58
|
-
//do the mapping
|
|
59
|
-
if (callbackfn.apply(thisArg, [value, key, this])) {
|
|
60
|
-
filteredMap.set(key, value);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return filteredMap;
|
|
64
|
-
}
|
|
65
|
-
first() {
|
|
66
|
-
return this.values().next().value;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Returns the value of the first element in the Set where predicate is true, and undefined
|
|
70
|
-
* otherwise.
|
|
71
|
-
*/
|
|
72
|
-
find(predicate, thisArg) {
|
|
73
|
-
for (let [key, value] of this) {
|
|
74
|
-
if (predicate.apply(thisArg, [value, key, this])) {
|
|
75
|
-
return value;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return undefined;
|
|
79
|
-
}
|
|
80
|
-
merge(...maps) {
|
|
81
|
-
var res = this.createNew(this);
|
|
82
|
-
for (var map of maps) {
|
|
83
|
-
map.forEach((value, index) => {
|
|
84
|
-
res.set(index, value);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
return res;
|
|
88
|
-
}
|
|
89
|
-
toString() {
|
|
90
|
-
let res = 'Map:\n';
|
|
91
|
-
for (let [key, value] of this) {
|
|
92
|
-
res += '\t[' + key.toString() + '] => ' + value.toString() + '\n';
|
|
93
|
-
}
|
|
94
|
-
return res;
|
|
95
|
-
}
|
|
96
|
-
print() {
|
|
97
|
-
console.log(this.toString());
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
exports.CoreMap = CoreMap;
|
|
101
|
-
//# sourceMappingURL=CoreMap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CoreMap.js","sourceRoot":"","sources":["../../../src/collections/CoreMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { PathExpr } from './PropertyPathExpr.js';
|
|
2
|
-
export type SHACLTriple = {
|
|
3
|
-
subject: string;
|
|
4
|
-
predicate: string;
|
|
5
|
-
object: string;
|
|
6
|
-
};
|
|
7
|
-
export type SHACLPathResult = {
|
|
8
|
-
/** The root node of the serialized path (IRI or blank node id). */
|
|
9
|
-
root: string;
|
|
10
|
-
/** Additional triples needed to describe the path structure. */
|
|
11
|
-
triples: SHACLTriple[];
|
|
12
|
-
};
|
|
13
|
-
/** Reset blank node counter (for deterministic testing). */
|
|
14
|
-
export declare function resetBlankNodeCounter(): void;
|
|
15
|
-
/**
|
|
16
|
-
* Serialize a PathExpr to SHACL RDF triples.
|
|
17
|
-
*
|
|
18
|
-
* - Simple PathRef → direct IRI (no extra triples)
|
|
19
|
-
* - Complex paths → blank nodes with SHACL path vocabulary
|
|
20
|
-
* - negatedPropertySet → throws (not supported by SHACL)
|
|
21
|
-
*/
|
|
22
|
-
export declare function serializePathToSHACL(expr: PathExpr): SHACLPathResult;
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
-
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.resetBlankNodeCounter = resetBlankNodeCounter;
|
|
9
|
-
exports.serializePathToSHACL = serializePathToSHACL;
|
|
10
|
-
const PropertyPathExpr_js_1 = require("./PropertyPathExpr.js");
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
// Constants
|
|
13
|
-
// ---------------------------------------------------------------------------
|
|
14
|
-
const SH = 'http://www.w3.org/ns/shacl#';
|
|
15
|
-
const RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
|
|
16
|
-
const SH_ALTERNATIVE_PATH = `${SH}alternativePath`;
|
|
17
|
-
const SH_INVERSE_PATH = `${SH}inversePath`;
|
|
18
|
-
const SH_ZERO_OR_MORE_PATH = `${SH}zeroOrMorePath`;
|
|
19
|
-
const SH_ONE_OR_MORE_PATH = `${SH}oneOrMorePath`;
|
|
20
|
-
const SH_ZERO_OR_ONE_PATH = `${SH}zeroOrOnePath`;
|
|
21
|
-
const RDF_FIRST = `${RDF}first`;
|
|
22
|
-
const RDF_REST = `${RDF}rest`;
|
|
23
|
-
const RDF_NIL = `${RDF}nil`;
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
// Serializer
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
|
-
let blankNodeCounter = 0;
|
|
28
|
-
/** Reset blank node counter (for deterministic testing). */
|
|
29
|
-
function resetBlankNodeCounter() {
|
|
30
|
-
blankNodeCounter = 0;
|
|
31
|
-
}
|
|
32
|
-
function freshBlankNode() {
|
|
33
|
-
return `_:b${blankNodeCounter++}`;
|
|
34
|
-
}
|
|
35
|
-
function refToIri(ref) {
|
|
36
|
-
if (typeof ref === 'string')
|
|
37
|
-
return ref;
|
|
38
|
-
return ref.id;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Serialize a PathExpr to SHACL RDF triples.
|
|
42
|
-
*
|
|
43
|
-
* - Simple PathRef → direct IRI (no extra triples)
|
|
44
|
-
* - Complex paths → blank nodes with SHACL path vocabulary
|
|
45
|
-
* - negatedPropertySet → throws (not supported by SHACL)
|
|
46
|
-
*/
|
|
47
|
-
function serializePathToSHACL(expr) {
|
|
48
|
-
const triples = [];
|
|
49
|
-
const serialize = (e) => {
|
|
50
|
-
// Simple ref → IRI directly
|
|
51
|
-
if ((0, PropertyPathExpr_js_1.isPathRef)(e)) {
|
|
52
|
-
return refToIri(e);
|
|
53
|
-
}
|
|
54
|
-
// Sequence → RDF list
|
|
55
|
-
if ('seq' in e) {
|
|
56
|
-
return buildRdfList(e.seq, triples);
|
|
57
|
-
}
|
|
58
|
-
// Alternative → sh:alternativePath with RDF list
|
|
59
|
-
if ('alt' in e) {
|
|
60
|
-
const bnode = freshBlankNode();
|
|
61
|
-
const listRoot = buildRdfList(e.alt, triples);
|
|
62
|
-
triples.push({ subject: bnode, predicate: SH_ALTERNATIVE_PATH, object: listRoot });
|
|
63
|
-
return bnode;
|
|
64
|
-
}
|
|
65
|
-
// Inverse → sh:inversePath
|
|
66
|
-
if ('inv' in e) {
|
|
67
|
-
const bnode = freshBlankNode();
|
|
68
|
-
const inner = serialize(e.inv);
|
|
69
|
-
triples.push({ subject: bnode, predicate: SH_INVERSE_PATH, object: inner });
|
|
70
|
-
return bnode;
|
|
71
|
-
}
|
|
72
|
-
// zeroOrMore → sh:zeroOrMorePath
|
|
73
|
-
if ('zeroOrMore' in e) {
|
|
74
|
-
const bnode = freshBlankNode();
|
|
75
|
-
const inner = serialize(e.zeroOrMore);
|
|
76
|
-
triples.push({ subject: bnode, predicate: SH_ZERO_OR_MORE_PATH, object: inner });
|
|
77
|
-
return bnode;
|
|
78
|
-
}
|
|
79
|
-
// oneOrMore → sh:oneOrMorePath
|
|
80
|
-
if ('oneOrMore' in e) {
|
|
81
|
-
const bnode = freshBlankNode();
|
|
82
|
-
const inner = serialize(e.oneOrMore);
|
|
83
|
-
triples.push({ subject: bnode, predicate: SH_ONE_OR_MORE_PATH, object: inner });
|
|
84
|
-
return bnode;
|
|
85
|
-
}
|
|
86
|
-
// zeroOrOne → sh:zeroOrOnePath
|
|
87
|
-
if ('zeroOrOne' in e) {
|
|
88
|
-
const bnode = freshBlankNode();
|
|
89
|
-
const inner = serialize(e.zeroOrOne);
|
|
90
|
-
triples.push({ subject: bnode, predicate: SH_ZERO_OR_ONE_PATH, object: inner });
|
|
91
|
-
return bnode;
|
|
92
|
-
}
|
|
93
|
-
// negatedPropertySet → not supported in SHACL
|
|
94
|
-
if ('negatedPropertySet' in e) {
|
|
95
|
-
throw new Error('negatedPropertySet cannot be serialized to SHACL sh:path. ' +
|
|
96
|
-
'This path form is valid in SPARQL but has no SHACL representation.');
|
|
97
|
-
}
|
|
98
|
-
throw new Error(`Unknown PathExpr shape: ${JSON.stringify(e)}`);
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Build an RDF list from an array of PathExpr elements.
|
|
102
|
-
* Returns the root blank node of the list.
|
|
103
|
-
*/
|
|
104
|
-
function buildRdfList(items, out) {
|
|
105
|
-
if (items.length === 0)
|
|
106
|
-
return RDF_NIL;
|
|
107
|
-
let current = freshBlankNode();
|
|
108
|
-
const root = current;
|
|
109
|
-
for (let i = 0; i < items.length; i++) {
|
|
110
|
-
const itemNode = serialize(items[i]);
|
|
111
|
-
out.push({ subject: current, predicate: RDF_FIRST, object: itemNode });
|
|
112
|
-
if (i === items.length - 1) {
|
|
113
|
-
out.push({ subject: current, predicate: RDF_REST, object: RDF_NIL });
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
const next = freshBlankNode();
|
|
117
|
-
out.push({ subject: current, predicate: RDF_REST, object: next });
|
|
118
|
-
current = next;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return root;
|
|
122
|
-
}
|
|
123
|
-
const root = serialize(expr);
|
|
124
|
-
return { root, triples };
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=serializePathToSHACL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializePathToSHACL.js","sourceRoot":"","sources":["../../../src/paths/serializePathToSHACL.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { PropertyPath } from './PropertyPath.js';
|
|
2
|
-
/**
|
|
3
|
-
* Represents a filter condition attached to a property path.
|
|
4
|
-
*
|
|
5
|
-
* Used by FieldSet scoped filters and QueryBuilder .where() clauses
|
|
6
|
-
* to express conditions like `path.equals(value)` or `path.gt(value)`.
|
|
7
|
-
*
|
|
8
|
-
* This is a data-oriented representation — the actual condition objects
|
|
9
|
-
* used by the current DSL (Evaluation, WhereEvaluationPath, etc.) remain
|
|
10
|
-
* in SelectQuery.ts. This type will become the canonical representation
|
|
11
|
-
* when QueryBuilder replaces the DSL internals in Phase 2.
|
|
12
|
-
*/
|
|
13
|
-
export type WhereOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'some' | 'every';
|
|
14
|
-
export type WhereCondition = {
|
|
15
|
-
path: PropertyPath;
|
|
16
|
-
operator: WhereOperator;
|
|
17
|
-
value: unknown;
|
|
18
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WhereCondition.js","sourceRoot":"","sources":["../../../src/queries/WhereCondition.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { SparqlDataset } from '../sparql/SparqlDataset.js';
|
|
2
|
-
import type { SparqlJsonResults } from '../sparql/resultMapping.js';
|
|
3
|
-
import type { SparqlOptions } from '../sparql/sparqlUtils.js';
|
|
4
|
-
/**
|
|
5
|
-
* Concrete SparqlDataset implementation for Apache Jena Fuseki.
|
|
6
|
-
*
|
|
7
|
-
* Demonstrates how to extend SparqlDataset with a real SPARQL endpoint.
|
|
8
|
-
* Used by the integration tests to implicitly validate the base class.
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* ```ts
|
|
12
|
-
* const store = new FusekiStore('http://localhost:3030', 'my-dataset');
|
|
13
|
-
* await store.init();
|
|
14
|
-
* const result = await store.selectQuery(irSelectQuery);
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export declare class FusekiStore extends SparqlDataset {
|
|
18
|
-
private readonly queryEndpoint;
|
|
19
|
-
private readonly updateEndpoint;
|
|
20
|
-
private readonly baseUrl;
|
|
21
|
-
private readonly dataset;
|
|
22
|
-
private readonly adminAuth?;
|
|
23
|
-
constructor(baseUrl: string, dataset: string, options?: SparqlOptions & {
|
|
24
|
-
adminPassword?: string;
|
|
25
|
-
});
|
|
26
|
-
init(): Promise<void>;
|
|
27
|
-
protected executeSparqlSelect(sparql: string): Promise<SparqlJsonResults>;
|
|
28
|
-
protected executeSparqlUpdate(sparql: string): Promise<void>;
|
|
29
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.FusekiStore = void 0;
|
|
13
|
-
const SparqlDataset_js_1 = require("../sparql/SparqlDataset.js");
|
|
14
|
-
/**
|
|
15
|
-
* Concrete SparqlDataset implementation for Apache Jena Fuseki.
|
|
16
|
-
*
|
|
17
|
-
* Demonstrates how to extend SparqlDataset with a real SPARQL endpoint.
|
|
18
|
-
* Used by the integration tests to implicitly validate the base class.
|
|
19
|
-
*
|
|
20
|
-
* Usage:
|
|
21
|
-
* ```ts
|
|
22
|
-
* const store = new FusekiStore('http://localhost:3030', 'my-dataset');
|
|
23
|
-
* await store.init();
|
|
24
|
-
* const result = await store.selectQuery(irSelectQuery);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
class FusekiStore extends SparqlDataset_js_1.SparqlDataset {
|
|
28
|
-
constructor(baseUrl, dataset, options) {
|
|
29
|
-
super(options);
|
|
30
|
-
this.baseUrl = baseUrl;
|
|
31
|
-
this.dataset = dataset;
|
|
32
|
-
this.queryEndpoint = `${baseUrl}/${dataset}/sparql`;
|
|
33
|
-
this.updateEndpoint = `${baseUrl}/${dataset}/update`;
|
|
34
|
-
if (options === null || options === void 0 ? void 0 : options.adminPassword) {
|
|
35
|
-
this.adminAuth = `Basic ${Buffer.from(`admin:${options.adminPassword}`).toString('base64')}`;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
init() {
|
|
39
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
// Check availability (use AbortController for jsdom compatibility)
|
|
41
|
-
const controller = new AbortController();
|
|
42
|
-
const timer = setTimeout(() => controller.abort(), 2000);
|
|
43
|
-
const response = yield fetch(this.baseUrl, {
|
|
44
|
-
method: 'HEAD',
|
|
45
|
-
signal: controller.signal,
|
|
46
|
-
});
|
|
47
|
-
clearTimeout(timer);
|
|
48
|
-
if (response.status !== 200) {
|
|
49
|
-
throw new Error(`Fuseki not available at ${this.baseUrl}`);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
executeSparqlSelect(sparql) {
|
|
54
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const response = yield fetch(this.queryEndpoint, {
|
|
56
|
-
method: 'POST',
|
|
57
|
-
headers: {
|
|
58
|
-
'Content-Type': 'application/sparql-query',
|
|
59
|
-
Accept: 'application/sparql-results+json',
|
|
60
|
-
},
|
|
61
|
-
body: sparql,
|
|
62
|
-
});
|
|
63
|
-
if (!response.ok) {
|
|
64
|
-
const body = yield response.text();
|
|
65
|
-
throw new Error(`SPARQL query failed: ${response.status} ${response.statusText}\n${sparql}\n${body}`);
|
|
66
|
-
}
|
|
67
|
-
return response.json();
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
executeSparqlUpdate(sparql) {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const response = yield fetch(this.updateEndpoint, {
|
|
73
|
-
method: 'POST',
|
|
74
|
-
headers: { 'Content-Type': 'application/sparql-update' },
|
|
75
|
-
body: sparql,
|
|
76
|
-
});
|
|
77
|
-
if (!response.ok) {
|
|
78
|
-
const body = yield response.text();
|
|
79
|
-
throw new Error(`SPARQL update failed: ${response.status} ${response.statusText}\n${sparql}\n${body}`);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
exports.FusekiStore = FusekiStore;
|
|
85
|
-
//# sourceMappingURL=FusekiStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FusekiStore.js","sourceRoot":"","sources":["../../../src/test-helpers/FusekiStore.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAAyD;AAIzD;;;;;;;;;;;;GAYG;AACH,MAAa,WAAY,SAAQ,gCAAa;IAO5C,YACE,OAAe,EACf,OAAe,EACf,OAAkD;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,GAAG,OAAO,IAAI,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,GAAG,OAAO,IAAI,OAAO,SAAS,CAAC;QAErD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/F,CAAC;IACH,CAAC;IAEK,IAAI;;YACR,mEAAmE;YACnE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;gBACzC,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;KAAA;IAEe,mBAAmB,CACjC,MAAc;;YAEd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,0BAA0B;oBAC1C,MAAM,EAAE,iCAAiC;iBAC1C;gBACD,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACrF,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;KAAA;IAEe,mBAAmB,CAAC,MAAc;;YAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;gBAChD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAC,cAAc,EAAE,2BAA2B,EAAC;gBACtD,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF;AAzED,kCAyEC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
export declare const FUSEKI_BASE_URL: string;
|
|
2
|
-
/**
|
|
3
|
-
* Check whether a Fuseki server is reachable.
|
|
4
|
-
* Returns true if a HEAD request to the base URL succeeds with status 200.
|
|
5
|
-
*/
|
|
6
|
-
export declare function isFusekiAvailable(): Promise<boolean>;
|
|
7
|
-
/**
|
|
8
|
-
* Ensure a Fuseki instance is running.
|
|
9
|
-
* If Fuseki is already reachable, returns immediately.
|
|
10
|
-
* Otherwise, starts it via Docker Compose and waits for the healthcheck.
|
|
11
|
-
*
|
|
12
|
-
* Returns true if Fuseki is available after this call.
|
|
13
|
-
* Returns false if Docker is not installed or the compose file can't be found.
|
|
14
|
-
*/
|
|
15
|
-
export declare function ensureFuseki(): Promise<boolean>;
|
|
16
|
-
/**
|
|
17
|
-
* Stop the Fuseki container if it was started by `ensureFuseki()`.
|
|
18
|
-
* No-op if Fuseki was already running before the tests.
|
|
19
|
-
*/
|
|
20
|
-
export declare function stopFuseki(): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Create the in-memory test dataset on Fuseki.
|
|
23
|
-
* Ignores 409 Conflict (dataset already exists).
|
|
24
|
-
*/
|
|
25
|
-
export declare function createTestDataset(): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Delete the test dataset from Fuseki.
|
|
28
|
-
*/
|
|
29
|
-
export declare function deleteTestDataset(): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Load N-Triples data into the test dataset.
|
|
32
|
-
*/
|
|
33
|
-
export declare function loadTestData(ntriples: string): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Execute a SPARQL SELECT/ASK/CONSTRUCT query against the test dataset.
|
|
36
|
-
* Returns parsed SPARQL JSON results.
|
|
37
|
-
*/
|
|
38
|
-
export declare function executeSparqlQuery(sparql: string): Promise<any>;
|
|
39
|
-
/**
|
|
40
|
-
* Execute a SPARQL UPDATE against the test dataset.
|
|
41
|
-
*/
|
|
42
|
-
export declare function executeSparqlUpdate(sparql: string): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Remove all triples from the test dataset.
|
|
45
|
-
*/
|
|
46
|
-
export declare function clearAllData(): Promise<void>;
|