ldkit 0.6.3 → 0.6.5
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/esm/library/decoder.js +2 -1
- package/esm/library/encoder.js +7 -5
- package/esm/library/rdf.js +89 -11
- package/esm/library/resource/query_builder.js +35 -34
- package/esm/library/schema/data_types.js +2 -1
- package/esm/library/schema/utils.js +1 -1
- package/esm/library/sparql/escape.js +22 -0
- package/esm/library/sparql/mod.js +3 -0
- package/esm/library/sparql/sparql_query_builders.js +35 -0
- package/esm/library/sparql/sparql_shared_builders.js +40 -0
- package/esm/library/sparql/sparql_tag.js +47 -0
- package/esm/library/sparql/sparql_update_builders.js +15 -0
- package/esm/library/sparql/stringify.js +50 -0
- package/esm/sparql.js +1 -1
- package/package.json +1 -4
- package/script/library/decoder.js +11 -7
- package/script/library/encoder.js +13 -8
- package/script/library/rdf.js +90 -10
- package/script/library/resource/query_builder.js +46 -42
- package/script/library/schema/data_types.js +39 -35
- package/script/library/schema/utils.js +6 -3
- package/script/library/sparql/escape.js +26 -0
- package/script/library/sparql/mod.js +14 -0
- package/script/library/sparql/sparql_query_builders.js +38 -0
- package/script/library/sparql/sparql_shared_builders.js +47 -0
- package/script/library/sparql/sparql_tag.js +54 -0
- package/script/library/sparql/sparql_update_builders.js +18 -0
- package/script/library/sparql/stringify.js +61 -0
- package/script/sparql.js +1 -1
- package/types/library/namespaces/dbo.d.ts +7 -7
- package/types/library/namespaces/dc.d.ts +2 -2
- package/types/library/namespaces/dcterms.d.ts +3 -3
- package/types/library/namespaces/gr.d.ts +1 -1
- package/types/library/namespaces/rdf.d.ts +1 -1
- package/types/library/namespaces/rdfs.d.ts +1 -1
- package/types/library/namespaces/schema.d.ts +4 -4
- package/types/library/namespaces/sioc.d.ts +2 -2
- package/types/library/namespaces/xsd.d.ts +5 -5
- package/types/library/rdf.d.ts +32 -13
- package/types/library/resource/types.d.ts +2 -2
- package/types/library/schema/interface.d.ts +2 -2
- package/types/library/schema/mod.d.ts +1 -1
- package/types/library/sparql/escape.d.ts +1 -0
- package/types/library/sparql/mod.d.ts +3 -0
- package/types/library/sparql/sparql_query_builders.d.ts +1178 -0
- package/types/library/sparql/sparql_shared_builders.d.ts +13 -0
- package/types/library/sparql/sparql_tag.d.ts +3 -0
- package/types/library/sparql/sparql_update_builders.d.ts +131 -0
- package/types/library/sparql/stringify.d.ts +6 -0
- package/types/sparql.d.ts +1 -1
- package/esm/library/sparql.js +0 -2
- package/script/library/sparql.js +0 -13
- package/types/library/sparql.d.ts +0 -2
package/script/library/rdf.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QuadFactory = exports.BindingsFactory = exports.TermFactory = exports.quadsToGraph = exports.DataFactory = exports.toRdf = exports.fromRdf = void 0;
|
|
3
|
+
exports.QuadFactory = exports.BindingsFactory = exports.ReadOnlyBindings = exports.TermFactory = exports.quadsToGraph = exports.DefaultGraph = exports.DataFactory = exports.toRdf = exports.fromRdf = void 0;
|
|
4
4
|
var rdf_literal_1 = require("rdf-literal");
|
|
5
5
|
Object.defineProperty(exports, "fromRdf", { enumerable: true, get: function () { return rdf_literal_1.fromRdf; } });
|
|
6
6
|
Object.defineProperty(exports, "toRdf", { enumerable: true, get: function () { return rdf_literal_1.toRdf; } });
|
|
7
7
|
const rdf_data_factory_1 = require("rdf-data-factory");
|
|
8
8
|
Object.defineProperty(exports, "DataFactory", { enumerable: true, get: function () { return rdf_data_factory_1.DataFactory; } });
|
|
9
|
-
|
|
9
|
+
Object.defineProperty(exports, "DefaultGraph", { enumerable: true, get: function () { return rdf_data_factory_1.DefaultGraph; } });
|
|
10
10
|
const quadsToGraph = (quads) => {
|
|
11
11
|
const graph = new Map();
|
|
12
12
|
for (const quad of quads) {
|
|
@@ -46,10 +46,90 @@ class TermFactory {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
exports.TermFactory = TermFactory;
|
|
49
|
-
class
|
|
50
|
-
constructor(dataFactory = new rdf_data_factory_1.DataFactory()
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
class ReadOnlyBindings {
|
|
50
|
+
constructor(bindings, dataFactory = new rdf_data_factory_1.DataFactory()) {
|
|
51
|
+
Object.defineProperty(this, "type", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
configurable: true,
|
|
54
|
+
writable: true,
|
|
55
|
+
value: "bindings"
|
|
56
|
+
});
|
|
57
|
+
Object.defineProperty(this, "dataFactory", {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
configurable: true,
|
|
60
|
+
writable: true,
|
|
61
|
+
value: void 0
|
|
62
|
+
});
|
|
63
|
+
Object.defineProperty(this, "entries", {
|
|
64
|
+
enumerable: true,
|
|
65
|
+
configurable: true,
|
|
66
|
+
writable: true,
|
|
67
|
+
value: void 0
|
|
68
|
+
});
|
|
69
|
+
Object.defineProperty(this, "variables", {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
configurable: true,
|
|
72
|
+
writable: true,
|
|
73
|
+
value: void 0
|
|
74
|
+
});
|
|
75
|
+
this.entries = bindings;
|
|
76
|
+
this.dataFactory = dataFactory;
|
|
77
|
+
this.variables = new Map();
|
|
78
|
+
for (const variable of bindings.keys()) {
|
|
79
|
+
this.variables.set(variable.value, variable);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
has(key) {
|
|
83
|
+
const stringKey = typeof key === "string" ? key : key.value;
|
|
84
|
+
const variableKey = this.variables.get(stringKey);
|
|
85
|
+
return this.entries.has(variableKey);
|
|
86
|
+
}
|
|
87
|
+
get(key) {
|
|
88
|
+
const stringKey = typeof key === "string" ? key : key.value;
|
|
89
|
+
const variableKey = this.variables.get(stringKey);
|
|
90
|
+
return this.entries.get(variableKey);
|
|
91
|
+
}
|
|
92
|
+
set(_key, _value) {
|
|
93
|
+
throw new Error("Method not implemented.");
|
|
94
|
+
}
|
|
95
|
+
delete(_key) {
|
|
96
|
+
throw new Error("Method not implemented.");
|
|
97
|
+
}
|
|
98
|
+
keys() {
|
|
99
|
+
return this.entries.keys();
|
|
100
|
+
}
|
|
101
|
+
values() {
|
|
102
|
+
return this.entries.values();
|
|
103
|
+
}
|
|
104
|
+
forEach(fn) {
|
|
105
|
+
return this.entries.forEach(fn);
|
|
106
|
+
}
|
|
107
|
+
get size() {
|
|
108
|
+
return this.entries.size;
|
|
109
|
+
}
|
|
110
|
+
[Symbol.iterator]() {
|
|
111
|
+
return this.entries.entries();
|
|
112
|
+
}
|
|
113
|
+
equals(_other) {
|
|
114
|
+
throw new Error("Method not implemented.");
|
|
115
|
+
}
|
|
116
|
+
filter(_fn) {
|
|
117
|
+
throw new Error("Method not implemented.");
|
|
118
|
+
}
|
|
119
|
+
map(_fn) {
|
|
120
|
+
throw new Error("Method not implemented.");
|
|
121
|
+
}
|
|
122
|
+
merge(_other) {
|
|
123
|
+
throw new Error("Method not implemented.");
|
|
124
|
+
}
|
|
125
|
+
mergeWith(_merger, _other) {
|
|
126
|
+
throw new Error("Method not implemented.");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.ReadOnlyBindings = ReadOnlyBindings;
|
|
130
|
+
class BindingsFactory {
|
|
131
|
+
constructor(dataFactory = new rdf_data_factory_1.DataFactory(), termFactory = new TermFactory(dataFactory)) {
|
|
132
|
+
Object.defineProperty(this, "dataFactory", {
|
|
53
133
|
enumerable: true,
|
|
54
134
|
configurable: true,
|
|
55
135
|
writable: true,
|
|
@@ -61,22 +141,22 @@ class BindingsFactory extends bindings_factory_1.BindingsFactory {
|
|
|
61
141
|
writable: true,
|
|
62
142
|
value: void 0
|
|
63
143
|
});
|
|
64
|
-
this.
|
|
144
|
+
this.dataFactory = dataFactory;
|
|
65
145
|
this.termFactory = termFactory;
|
|
66
146
|
}
|
|
67
147
|
fromJson(jsonBindings) {
|
|
68
148
|
const bindingsEntries = Object.entries(jsonBindings).map(([varName, jsonTerm]) => {
|
|
69
149
|
return [
|
|
70
|
-
this.
|
|
150
|
+
this.dataFactory.variable(varName),
|
|
71
151
|
this.termFactory.fromJson(jsonTerm),
|
|
72
152
|
];
|
|
73
153
|
});
|
|
74
|
-
return
|
|
154
|
+
return new ReadOnlyBindings(new Map(bindingsEntries), this.dataFactory);
|
|
75
155
|
}
|
|
76
156
|
}
|
|
77
157
|
exports.BindingsFactory = BindingsFactory;
|
|
78
158
|
class QuadFactory {
|
|
79
|
-
constructor(dataFactory = new rdf_data_factory_1.DataFactory(), termFactory = new TermFactory()) {
|
|
159
|
+
constructor(dataFactory = new rdf_data_factory_1.DataFactory(), termFactory = new TermFactory(dataFactory)) {
|
|
80
160
|
Object.defineProperty(this, "dataFactory", {
|
|
81
161
|
enumerable: true,
|
|
82
162
|
configurable: true,
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.QueryBuilder = void 0;
|
|
4
7
|
const mod_js_1 = require("../schema/mod.js");
|
|
5
|
-
const
|
|
8
|
+
const mod_js_2 = require("../sparql/mod.js");
|
|
6
9
|
const rdf_js_1 = require("../rdf.js");
|
|
7
|
-
const
|
|
10
|
+
const ldkit_js_1 = __importDefault(require("../namespaces/ldkit.js"));
|
|
11
|
+
const rdf_js_2 = __importDefault(require("../namespaces/rdf.js"));
|
|
8
12
|
const encoder_js_1 = require("../encoder.js");
|
|
9
13
|
const query_helper_js_1 = require("./query_helper.js");
|
|
10
14
|
class QueryBuilder {
|
|
@@ -38,11 +42,11 @@ class QueryBuilder {
|
|
|
38
42
|
configurable: true,
|
|
39
43
|
writable: true,
|
|
40
44
|
value: (iris) => {
|
|
41
|
-
return (0,
|
|
42
|
-
?s ?p ?o
|
|
43
|
-
`.WHERE `
|
|
44
|
-
?s ?p ?o .
|
|
45
|
-
VALUES ?s { ${iris.map(this.df.namedNode)} }
|
|
45
|
+
return (0, mod_js_2.DELETE) `
|
|
46
|
+
?s ?p ?o
|
|
47
|
+
`.WHERE `
|
|
48
|
+
?s ?p ?o .
|
|
49
|
+
VALUES ?s { ${iris.map(this.df.namedNode)} }
|
|
46
50
|
`.build();
|
|
47
51
|
}
|
|
48
52
|
});
|
|
@@ -52,10 +56,10 @@ class QueryBuilder {
|
|
|
52
56
|
this.df = new rdf_js_1.DataFactory();
|
|
53
57
|
}
|
|
54
58
|
getResourceSignature() {
|
|
55
|
-
return this.df.quad(this.df.variable("iri"), this.df.namedNode(
|
|
59
|
+
return this.df.quad(this.df.variable("iri"), this.df.namedNode(rdf_js_2.default.type), this.df.namedNode(ldkit_js_1.default.Resource));
|
|
56
60
|
}
|
|
57
61
|
getTypesSignature() {
|
|
58
|
-
return this.df.quad(this.df.variable("iri"), this.df.namedNode(
|
|
62
|
+
return this.df.quad(this.df.variable("iri"), this.df.namedNode(rdf_js_2.default.type), this.df.variable("iri_type"));
|
|
59
63
|
}
|
|
60
64
|
entitiesToQuads(entities) {
|
|
61
65
|
const quadArrays = entities.map((entity) => (0, encoder_js_1.encode)(entity, this.schema, this.context));
|
|
@@ -69,7 +73,7 @@ class QueryBuilder {
|
|
|
69
73
|
const properties = (0, mod_js_1.getSchemaProperties)(s);
|
|
70
74
|
if (varPrefix !== "iri" || !omitRootTypes) {
|
|
71
75
|
rdfType.forEach((type) => {
|
|
72
|
-
conditions.push(this.df.quad(this.df.variable(varPrefix), this.df.namedNode(
|
|
76
|
+
conditions.push(this.df.quad(this.df.variable(varPrefix), this.df.namedNode(rdf_js_2.default.type), this.df.namedNode(type)));
|
|
73
77
|
});
|
|
74
78
|
}
|
|
75
79
|
Object.keys(properties).forEach((prop, index) => {
|
|
@@ -79,14 +83,14 @@ class QueryBuilder {
|
|
|
79
83
|
return;
|
|
80
84
|
}
|
|
81
85
|
if (wrapOptional && isOptional) {
|
|
82
|
-
conditions.push((0,
|
|
86
|
+
conditions.push((0, mod_js_2.sparql) `\nOPTIONAL {`);
|
|
83
87
|
}
|
|
84
88
|
conditions.push(this.df.quad(this.df.variable(varPrefix), this.df.namedNode(property["@id"]), this.df.variable(`${varPrefix}_${index}`)));
|
|
85
89
|
if (typeof property["@context"] === "object") {
|
|
86
90
|
populateConditionsRecursive(property["@context"], `${varPrefix}_${index}`);
|
|
87
91
|
}
|
|
88
92
|
if (wrapOptional && isOptional) {
|
|
89
|
-
conditions.push((0,
|
|
93
|
+
conditions.push((0, mod_js_2.sparql) `\n}\n`);
|
|
90
94
|
}
|
|
91
95
|
});
|
|
92
96
|
};
|
|
@@ -95,39 +99,39 @@ class QueryBuilder {
|
|
|
95
99
|
}
|
|
96
100
|
countQuery() {
|
|
97
101
|
const quads = this.getShape();
|
|
98
|
-
return (0,
|
|
102
|
+
return (0, mod_js_2.SELECT) `(count(?iri) as ?count)`.WHERE `${quads}`.build();
|
|
99
103
|
}
|
|
100
104
|
getQuery(where, limit = 1000) {
|
|
101
|
-
const selectSubQuery = (0,
|
|
102
|
-
${this.df.variable("iri")}
|
|
103
|
-
`.WHERE `
|
|
104
|
-
${this.getShape(false, true)}
|
|
105
|
-
${where}
|
|
106
|
-
`.LIMIT(limit);
|
|
107
|
-
const query = (0,
|
|
108
|
-
${this.getResourceSignature()}
|
|
109
|
-
${this.getTypesSignature()}
|
|
110
|
-
${this.getShape(true, false, true)}
|
|
111
|
-
`.WHERE `
|
|
112
|
-
${this.getTypesSignature()}
|
|
113
|
-
${this.getShape(true, true, true)}
|
|
114
|
-
{
|
|
115
|
-
${selectSubQuery}
|
|
116
|
-
}
|
|
105
|
+
const selectSubQuery = (0, mod_js_2.SELECT) `
|
|
106
|
+
${this.df.variable("iri")}
|
|
107
|
+
`.WHERE `
|
|
108
|
+
${this.getShape(false, true)}
|
|
109
|
+
${where}
|
|
110
|
+
`.LIMIT(limit).build();
|
|
111
|
+
const query = (0, mod_js_2.CONSTRUCT) `
|
|
112
|
+
${this.getResourceSignature()}
|
|
113
|
+
${this.getTypesSignature()}
|
|
114
|
+
${this.getShape(true, false, true)}
|
|
115
|
+
`.WHERE `
|
|
116
|
+
${this.getTypesSignature()}
|
|
117
|
+
${this.getShape(true, true, true)}
|
|
118
|
+
{
|
|
119
|
+
${selectSubQuery}
|
|
120
|
+
}
|
|
117
121
|
`.build();
|
|
118
122
|
return query;
|
|
119
123
|
}
|
|
120
124
|
getByIrisQuery(iris) {
|
|
121
|
-
const query = (0,
|
|
122
|
-
${this.getResourceSignature()}
|
|
123
|
-
${this.getTypesSignature()}
|
|
124
|
-
${this.getShape(true, false, true)}
|
|
125
|
-
`.WHERE `
|
|
126
|
-
${this.getTypesSignature()}
|
|
127
|
-
${this.getShape(true, true, true)}
|
|
128
|
-
VALUES ?iri {
|
|
129
|
-
${iris.map(this.df.namedNode)}
|
|
130
|
-
}
|
|
125
|
+
const query = (0, mod_js_2.CONSTRUCT) `
|
|
126
|
+
${this.getResourceSignature()}
|
|
127
|
+
${this.getTypesSignature()}
|
|
128
|
+
${this.getShape(true, false, true)}
|
|
129
|
+
`.WHERE `
|
|
130
|
+
${this.getTypesSignature()}
|
|
131
|
+
${this.getShape(true, true, true)}
|
|
132
|
+
VALUES ?iri {
|
|
133
|
+
${iris.map(this.df.namedNode)}
|
|
134
|
+
}
|
|
131
135
|
`.build();
|
|
132
136
|
return query;
|
|
133
137
|
}
|
|
@@ -136,10 +140,10 @@ class QueryBuilder {
|
|
|
136
140
|
return this.insertDataQuery(quads);
|
|
137
141
|
}
|
|
138
142
|
insertDataQuery(quads) {
|
|
139
|
-
return
|
|
143
|
+
return mod_js_2.INSERT.DATA `${quads}`.build();
|
|
140
144
|
}
|
|
141
145
|
deleteDataQuery(quads) {
|
|
142
|
-
return
|
|
146
|
+
return mod_js_2.DELETE.DATA `${quads}`.build();
|
|
143
147
|
}
|
|
144
148
|
updateQuery(entities) {
|
|
145
149
|
const deleteQuads = [];
|
|
@@ -151,7 +155,7 @@ class QueryBuilder {
|
|
|
151
155
|
insertQuads.push(...helper.getInsertQuads());
|
|
152
156
|
whereQuads.push(...helper.getWhereQuads());
|
|
153
157
|
});
|
|
154
|
-
return (0,
|
|
158
|
+
return (0, mod_js_2.DELETE) `${deleteQuads}`.INSERT `${insertQuads}`
|
|
155
159
|
.WHERE `${deleteQuads}`.build();
|
|
156
160
|
}
|
|
157
161
|
}
|
|
@@ -1,39 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
6
|
+
const xsd_js_1 = __importDefault(require("../namespaces/xsd.js"));
|
|
7
|
+
const rdf_js_1 = __importDefault(require("../namespaces/rdf.js"));
|
|
4
8
|
const SupportedDataTypesPrototype = {
|
|
5
|
-
[
|
|
6
|
-
[
|
|
7
|
-
[
|
|
8
|
-
[
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
21
|
-
[
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
-
[
|
|
30
|
-
[
|
|
31
|
-
[
|
|
32
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
35
|
-
[
|
|
36
|
-
[
|
|
37
|
-
[
|
|
38
|
-
[
|
|
9
|
+
[xsd_js_1.default.dateTime]: new Date(),
|
|
10
|
+
[xsd_js_1.default.date]: new Date(),
|
|
11
|
+
[xsd_js_1.default.gDay]: new Date(),
|
|
12
|
+
[xsd_js_1.default.gMonthDay]: new Date(),
|
|
13
|
+
[xsd_js_1.default.gYear]: new Date(),
|
|
14
|
+
[xsd_js_1.default.gYearMonth]: new Date(),
|
|
15
|
+
[xsd_js_1.default.boolean]: true,
|
|
16
|
+
[xsd_js_1.default.double]: 0.0,
|
|
17
|
+
[xsd_js_1.default.decimal]: 0.0,
|
|
18
|
+
[xsd_js_1.default.float]: 0.0,
|
|
19
|
+
[xsd_js_1.default.integer]: 0,
|
|
20
|
+
[xsd_js_1.default.long]: 0,
|
|
21
|
+
[xsd_js_1.default.int]: 0,
|
|
22
|
+
[xsd_js_1.default.byte]: 0,
|
|
23
|
+
[xsd_js_1.default.short]: 0,
|
|
24
|
+
[xsd_js_1.default.negativeInteger]: 0,
|
|
25
|
+
[xsd_js_1.default.nonNegativeInteger]: 0,
|
|
26
|
+
[xsd_js_1.default.nonPositiveInteger]: 0,
|
|
27
|
+
[xsd_js_1.default.positiveInteger]: 0,
|
|
28
|
+
[xsd_js_1.default.unsignedByte]: 0,
|
|
29
|
+
[xsd_js_1.default.unsignedInt]: 0,
|
|
30
|
+
[xsd_js_1.default.unsignedLong]: 0,
|
|
31
|
+
[xsd_js_1.default.unsignedShort]: 0,
|
|
32
|
+
[xsd_js_1.default.string]: "",
|
|
33
|
+
[xsd_js_1.default.normalizedString]: "",
|
|
34
|
+
[xsd_js_1.default.anyURI]: "",
|
|
35
|
+
[xsd_js_1.default.base64Binary]: "",
|
|
36
|
+
[xsd_js_1.default.language]: "",
|
|
37
|
+
[xsd_js_1.default.Name]: "",
|
|
38
|
+
[xsd_js_1.default.NCName]: "",
|
|
39
|
+
[xsd_js_1.default.NMTOKEN]: "",
|
|
40
|
+
[xsd_js_1.default.token]: "",
|
|
41
|
+
[xsd_js_1.default.hexBinary]: "",
|
|
42
|
+
[rdf_js_1.default.langString]: "",
|
|
39
43
|
};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.getSchemaProperties = exports.expandSchema = void 0;
|
|
4
|
-
const
|
|
7
|
+
const xsd_js_1 = __importDefault(require("../namespaces/xsd.js"));
|
|
5
8
|
const expandSchema = (schemaPrototype) => {
|
|
6
9
|
const expandArray = (stringOrStrings) => {
|
|
7
10
|
return Array.isArray(stringOrStrings) ? stringOrStrings : [stringOrStrings];
|
|
@@ -10,7 +13,7 @@ const expandSchema = (schemaPrototype) => {
|
|
|
10
13
|
if (typeof stringOrProperty === "string") {
|
|
11
14
|
return {
|
|
12
15
|
"@id": stringOrProperty,
|
|
13
|
-
"@type":
|
|
16
|
+
"@type": xsd_js_1.default.string,
|
|
14
17
|
};
|
|
15
18
|
}
|
|
16
19
|
const property = stringOrProperty;
|
|
@@ -38,7 +41,7 @@ const expandSchema = (schemaPrototype) => {
|
|
|
38
41
|
return acc;
|
|
39
42
|
}, baseProperty);
|
|
40
43
|
if (!baseProperty["@type"] && !baseProperty["@context"]) {
|
|
41
|
-
baseProperty["@type"] =
|
|
44
|
+
baseProperty["@type"] = xsd_js_1.default.string;
|
|
42
45
|
}
|
|
43
46
|
return expandedProperty;
|
|
44
47
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.escape = void 0;
|
|
4
|
+
const escapeCharRegEx = /["\\\n\r]/;
|
|
5
|
+
const escapeCharRegExAll = /["\\\n\r]/g;
|
|
6
|
+
const replacer = (char) => {
|
|
7
|
+
switch (char) {
|
|
8
|
+
case `"`:
|
|
9
|
+
return `\\"`;
|
|
10
|
+
case `\\`:
|
|
11
|
+
return `\\\\`;
|
|
12
|
+
case `\n`:
|
|
13
|
+
return `\\n`;
|
|
14
|
+
case `\r`:
|
|
15
|
+
return `\\r`;
|
|
16
|
+
default:
|
|
17
|
+
return char; // this should never happen
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const escape = (value) => {
|
|
21
|
+
if (escapeCharRegEx.test(value)) {
|
|
22
|
+
return value.replace(escapeCharRegExAll, replacer);
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
};
|
|
26
|
+
exports.escape = escape;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WITH = exports.INSERT = exports.DELETE = exports.SELECT = exports.DESCRIBE = exports.CONSTRUCT = exports.ASK = exports.sparql = void 0;
|
|
4
|
+
var sparql_tag_js_1 = require("./sparql_tag.js");
|
|
5
|
+
Object.defineProperty(exports, "sparql", { enumerable: true, get: function () { return sparql_tag_js_1.sparql; } });
|
|
6
|
+
var sparql_query_builders_js_1 = require("./sparql_query_builders.js");
|
|
7
|
+
Object.defineProperty(exports, "ASK", { enumerable: true, get: function () { return sparql_query_builders_js_1.ASK; } });
|
|
8
|
+
Object.defineProperty(exports, "CONSTRUCT", { enumerable: true, get: function () { return sparql_query_builders_js_1.CONSTRUCT; } });
|
|
9
|
+
Object.defineProperty(exports, "DESCRIBE", { enumerable: true, get: function () { return sparql_query_builders_js_1.DESCRIBE; } });
|
|
10
|
+
Object.defineProperty(exports, "SELECT", { enumerable: true, get: function () { return sparql_query_builders_js_1.SELECT; } });
|
|
11
|
+
var sparql_update_builders_js_1 = require("./sparql_update_builders.js");
|
|
12
|
+
Object.defineProperty(exports, "DELETE", { enumerable: true, get: function () { return sparql_update_builders_js_1.DELETE; } });
|
|
13
|
+
Object.defineProperty(exports, "INSERT", { enumerable: true, get: function () { return sparql_update_builders_js_1.INSERT; } });
|
|
14
|
+
Object.defineProperty(exports, "WITH", { enumerable: true, get: function () { return sparql_update_builders_js_1.WITH; } });
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DESCRIBE = exports.ASK = exports.CONSTRUCT = exports.SELECT = void 0;
|
|
4
|
+
const sparql_shared_builders_js_1 = require("./sparql_shared_builders.js");
|
|
5
|
+
const OFFSET = (0, sparql_shared_builders_js_1.createNumericBuilder)((value) => `OFFSET ${value}\n`, { build: sparql_shared_builders_js_1.build });
|
|
6
|
+
const LIMIT = (0, sparql_shared_builders_js_1.createNumericBuilder)((value) => `LIMIT ${value}\n`, { build: sparql_shared_builders_js_1.build, OFFSET });
|
|
7
|
+
const ORDER_BY = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `ORDER BY ${value}\n`, { build: sparql_shared_builders_js_1.build, LIMIT });
|
|
8
|
+
const HAVING = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `HAVING(${value})\n`, { build: sparql_shared_builders_js_1.build, LIMIT });
|
|
9
|
+
const GROUP_BY = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `GROUP BY ${value}\n`, { build: sparql_shared_builders_js_1.build, HAVING, ORDER_BY, LIMIT });
|
|
10
|
+
const WHERE = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `WHERE {\n${value}\n}\n`, { build: sparql_shared_builders_js_1.build, GROUP_BY, ORDER_BY, LIMIT });
|
|
11
|
+
const FROM_NAMED = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `FROM NAMED ${value}\n`, { WHERE });
|
|
12
|
+
const FROM = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `FROM ${value}\n`, { FROM_NAMED, WHERE });
|
|
13
|
+
const _SELECT = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `SELECT ${value}\n`, { FROM, FROM_NAMED, WHERE });
|
|
14
|
+
const DISTINCT = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `SELECT DISTINCT ${value}\n`, { FROM, WHERE });
|
|
15
|
+
const REDUCED = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `SELECT REDUCED ${value}\n`, {
|
|
16
|
+
FROM,
|
|
17
|
+
WHERE,
|
|
18
|
+
});
|
|
19
|
+
exports.SELECT = Object.assign(_SELECT, {
|
|
20
|
+
DISTINCT,
|
|
21
|
+
REDUCED,
|
|
22
|
+
ALL: _SELECT `*`,
|
|
23
|
+
});
|
|
24
|
+
const _CONSTRUCT = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `CONSTRUCT {\n${value}\n}\n`, { WHERE });
|
|
25
|
+
const _CONSTRUCT_WHERE = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `CONSTRUCT WHERE {\n${value}\n}\n`, { build: sparql_shared_builders_js_1.build, GROUP_BY, ORDER_BY, LIMIT });
|
|
26
|
+
exports.CONSTRUCT = Object.assign(_CONSTRUCT, {
|
|
27
|
+
WHERE: _CONSTRUCT_WHERE,
|
|
28
|
+
});
|
|
29
|
+
const _ASK = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `ASK {\n${value}\n}\n`, { build: sparql_shared_builders_js_1.build });
|
|
30
|
+
const _ASK_FROM = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `ASK\nFROM ${value}\n`, { FROM_NAMED, WHERE });
|
|
31
|
+
const _ASK_FROM_NAMED = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `ASK\nFROM NAMED ${value}\n`, { FROM_NAMED, WHERE });
|
|
32
|
+
const _ASK_WHERE = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `ASK\nWHERE {\n${value}\n}\n`, { build: sparql_shared_builders_js_1.build, GROUP_BY, ORDER_BY, LIMIT });
|
|
33
|
+
exports.ASK = Object.assign(_ASK, {
|
|
34
|
+
FROM: _ASK_FROM,
|
|
35
|
+
FROM_NAMED: _ASK_FROM_NAMED,
|
|
36
|
+
WHERE: _ASK_WHERE,
|
|
37
|
+
});
|
|
38
|
+
exports.DESCRIBE = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `DESCRIBE ${value}\n`, { build: sparql_shared_builders_js_1.build, FROM, FROM_NAMED, WHERE });
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.build = exports.createNamedNodeBuilder = exports.createNumericBuilder = exports.createTemplateBuilder = void 0;
|
|
4
|
+
const rdf_js_1 = require("../rdf.js");
|
|
5
|
+
const sparql_tag_js_1 = require("./sparql_tag.js");
|
|
6
|
+
const createContext = (self, current, builders) => {
|
|
7
|
+
const previousQuery = self?.$partialQuery || "";
|
|
8
|
+
const context = { $partialQuery: previousQuery + current };
|
|
9
|
+
return Object.keys(builders).reduce((acc, key) => {
|
|
10
|
+
acc[key] = builders[key].bind(context);
|
|
11
|
+
return acc;
|
|
12
|
+
}, {});
|
|
13
|
+
};
|
|
14
|
+
const createTemplateBuilder = (wrap, builders) => {
|
|
15
|
+
return function (strings, ...values) {
|
|
16
|
+
const self = this;
|
|
17
|
+
const inner = (0, sparql_tag_js_1.sparql)(strings, ...values);
|
|
18
|
+
const current = wrap(inner);
|
|
19
|
+
return createContext(self, current, builders);
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports.createTemplateBuilder = createTemplateBuilder;
|
|
23
|
+
const createNumericBuilder = (wrap, builders) => {
|
|
24
|
+
return function (number) {
|
|
25
|
+
const self = this;
|
|
26
|
+
const current = wrap(number);
|
|
27
|
+
return createContext(self, current, builders);
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.createNumericBuilder = createNumericBuilder;
|
|
31
|
+
const df = new rdf_js_1.DataFactory();
|
|
32
|
+
const createNamedNodeBuilder = (wrap, builders) => {
|
|
33
|
+
return function (stringOrNamedNode) {
|
|
34
|
+
const self = this;
|
|
35
|
+
const namedNode = typeof stringOrNamedNode === "string"
|
|
36
|
+
? df.namedNode(stringOrNamedNode)
|
|
37
|
+
: stringOrNamedNode;
|
|
38
|
+
const inner = (0, sparql_tag_js_1.sparql) `${namedNode}`;
|
|
39
|
+
const current = wrap(inner);
|
|
40
|
+
return createContext(self, current, builders);
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
exports.createNamedNodeBuilder = createNamedNodeBuilder;
|
|
44
|
+
const build = function () {
|
|
45
|
+
return this?.$partialQuery || "";
|
|
46
|
+
};
|
|
47
|
+
exports.build = build;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.sparql = void 0;
|
|
7
|
+
const rdf_js_1 = require("../rdf.js");
|
|
8
|
+
const xsd_js_1 = __importDefault(require("../namespaces/xsd.js"));
|
|
9
|
+
const stringify_js_1 = require("./stringify.js");
|
|
10
|
+
const sparql = (strings, ...values) => {
|
|
11
|
+
let counter = 0;
|
|
12
|
+
let result = "";
|
|
13
|
+
for (const value of values) {
|
|
14
|
+
result += strings[counter++];
|
|
15
|
+
result += valueToString(value);
|
|
16
|
+
}
|
|
17
|
+
result += strings[counter];
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
exports.sparql = sparql;
|
|
21
|
+
const isIterable = (obj) => {
|
|
22
|
+
return Symbol.iterator in Object(obj);
|
|
23
|
+
};
|
|
24
|
+
const df = new rdf_js_1.DataFactory();
|
|
25
|
+
const valueToString = (value) => {
|
|
26
|
+
if (typeof value === "undefined" || value === null) {
|
|
27
|
+
return "";
|
|
28
|
+
}
|
|
29
|
+
if (typeof value === "string") {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
if (typeof value === "number") {
|
|
33
|
+
const numberDataType = Number.isInteger(value) ? xsd_js_1.default.integer : xsd_js_1.default.decimal;
|
|
34
|
+
return (0, stringify_js_1.stringify)(df.literal(value.toString(), df.namedNode(numberDataType)));
|
|
35
|
+
}
|
|
36
|
+
if (typeof value === "boolean") {
|
|
37
|
+
return (0, stringify_js_1.stringify)(df.literal(value.toString(), df.namedNode(xsd_js_1.default.boolean)));
|
|
38
|
+
}
|
|
39
|
+
if (value instanceof Date) {
|
|
40
|
+
return (0, stringify_js_1.stringify)(df.literal(value.toISOString(), df.namedNode(xsd_js_1.default.dateTime)));
|
|
41
|
+
}
|
|
42
|
+
if (isIterable(value)) {
|
|
43
|
+
const [first, ...rest] = value;
|
|
44
|
+
let result = valueToString(first);
|
|
45
|
+
for (const part of rest) {
|
|
46
|
+
result += `\n${valueToString(part)}`;
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
if (value.termType) {
|
|
51
|
+
return (0, stringify_js_1.stringify)(value);
|
|
52
|
+
}
|
|
53
|
+
throw new Error("Not supported input type detected.");
|
|
54
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WITH = exports.DELETE = exports.INSERT = void 0;
|
|
4
|
+
const sparql_shared_builders_js_1 = require("./sparql_shared_builders.js");
|
|
5
|
+
const WHERE = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `WHERE {\n${value}\n}\n`, { build: sparql_shared_builders_js_1.build });
|
|
6
|
+
const USING_NAMED = (0, sparql_shared_builders_js_1.createNamedNodeBuilder)((value) => `USING NAMED ${value}\n`, { WHERE });
|
|
7
|
+
const USING = (0, sparql_shared_builders_js_1.createNamedNodeBuilder)((value) => `USING ${value}\n`, { USING_NAMED, WHERE });
|
|
8
|
+
const _INSERT = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `INSERT {\n${value}\n}\n`, { USING, USING_NAMED, WHERE });
|
|
9
|
+
const _INSERT_DATA = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `INSERT DATA {\n${value}\n}\n`, { build: sparql_shared_builders_js_1.build });
|
|
10
|
+
exports.INSERT = Object.assign(_INSERT, {
|
|
11
|
+
DATA: _INSERT_DATA,
|
|
12
|
+
});
|
|
13
|
+
const _DELETE = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `DELETE {\n${value}\n}\n`, { INSERT: _INSERT, USING, USING_NAMED, WHERE });
|
|
14
|
+
const _DELETE_DATA = (0, sparql_shared_builders_js_1.createTemplateBuilder)((value) => `DELETE DATA {\n${value}\n}\n`, { build: sparql_shared_builders_js_1.build });
|
|
15
|
+
exports.DELETE = Object.assign(_DELETE, {
|
|
16
|
+
DATA: _DELETE_DATA,
|
|
17
|
+
});
|
|
18
|
+
exports.WITH = (0, sparql_shared_builders_js_1.createNamedNodeBuilder)((value) => `WITH ${value}\n`, { build: sparql_shared_builders_js_1.build, INSERT: _INSERT, DELETE: _DELETE });
|