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.
Files changed (53) hide show
  1. package/esm/library/decoder.js +2 -1
  2. package/esm/library/encoder.js +7 -5
  3. package/esm/library/rdf.js +89 -11
  4. package/esm/library/resource/query_builder.js +35 -34
  5. package/esm/library/schema/data_types.js +2 -1
  6. package/esm/library/schema/utils.js +1 -1
  7. package/esm/library/sparql/escape.js +22 -0
  8. package/esm/library/sparql/mod.js +3 -0
  9. package/esm/library/sparql/sparql_query_builders.js +35 -0
  10. package/esm/library/sparql/sparql_shared_builders.js +40 -0
  11. package/esm/library/sparql/sparql_tag.js +47 -0
  12. package/esm/library/sparql/sparql_update_builders.js +15 -0
  13. package/esm/library/sparql/stringify.js +50 -0
  14. package/esm/sparql.js +1 -1
  15. package/package.json +1 -4
  16. package/script/library/decoder.js +11 -7
  17. package/script/library/encoder.js +13 -8
  18. package/script/library/rdf.js +90 -10
  19. package/script/library/resource/query_builder.js +46 -42
  20. package/script/library/schema/data_types.js +39 -35
  21. package/script/library/schema/utils.js +6 -3
  22. package/script/library/sparql/escape.js +26 -0
  23. package/script/library/sparql/mod.js +14 -0
  24. package/script/library/sparql/sparql_query_builders.js +38 -0
  25. package/script/library/sparql/sparql_shared_builders.js +47 -0
  26. package/script/library/sparql/sparql_tag.js +54 -0
  27. package/script/library/sparql/sparql_update_builders.js +18 -0
  28. package/script/library/sparql/stringify.js +61 -0
  29. package/script/sparql.js +1 -1
  30. package/types/library/namespaces/dbo.d.ts +7 -7
  31. package/types/library/namespaces/dc.d.ts +2 -2
  32. package/types/library/namespaces/dcterms.d.ts +3 -3
  33. package/types/library/namespaces/gr.d.ts +1 -1
  34. package/types/library/namespaces/rdf.d.ts +1 -1
  35. package/types/library/namespaces/rdfs.d.ts +1 -1
  36. package/types/library/namespaces/schema.d.ts +4 -4
  37. package/types/library/namespaces/sioc.d.ts +2 -2
  38. package/types/library/namespaces/xsd.d.ts +5 -5
  39. package/types/library/rdf.d.ts +32 -13
  40. package/types/library/resource/types.d.ts +2 -2
  41. package/types/library/schema/interface.d.ts +2 -2
  42. package/types/library/schema/mod.d.ts +1 -1
  43. package/types/library/sparql/escape.d.ts +1 -0
  44. package/types/library/sparql/mod.d.ts +3 -0
  45. package/types/library/sparql/sparql_query_builders.d.ts +1178 -0
  46. package/types/library/sparql/sparql_shared_builders.d.ts +13 -0
  47. package/types/library/sparql/sparql_tag.d.ts +3 -0
  48. package/types/library/sparql/sparql_update_builders.d.ts +131 -0
  49. package/types/library/sparql/stringify.d.ts +6 -0
  50. package/types/sparql.d.ts +1 -1
  51. package/esm/library/sparql.js +0 -2
  52. package/script/library/sparql.js +0 -13
  53. package/types/library/sparql.d.ts +0 -2
@@ -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
- const bindings_factory_1 = require("@comunica/bindings-factory");
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 BindingsFactory extends bindings_factory_1.BindingsFactory {
50
- constructor(dataFactory = new rdf_data_factory_1.DataFactory(), termFactory = new TermFactory()) {
51
- super(dataFactory);
52
- Object.defineProperty(this, "localDataFactory", {
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.localDataFactory = dataFactory;
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.localDataFactory.variable(varName),
150
+ this.dataFactory.variable(varName),
71
151
  this.termFactory.fromJson(jsonTerm),
72
152
  ];
73
153
  });
74
- return this.bindings(bindingsEntries);
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 sparql_js_1 = require("../sparql.js");
8
+ const mod_js_2 = require("../sparql/mod.js");
6
9
  const rdf_js_1 = require("../rdf.js");
7
- const mod_js_2 = require("../namespaces/mod.js");
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, sparql_js_1.DELETE) `
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(mod_js_2.rdf.type), this.df.namedNode(mod_js_2.ldkit.Resource));
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(mod_js_2.rdf.type), this.df.variable("iri_type"));
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(mod_js_2.rdf.type), this.df.namedNode(type)));
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, sparql_js_1.$) `\nOPTIONAL {`);
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, sparql_js_1.$) `\n}\n`);
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, sparql_js_1.SELECT) `(count(?iri) as ?count)`.WHERE `${quads}`.build();
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, sparql_js_1.SELECT) `
102
- ${this.df.variable("iri")}
103
- `.WHERE `
104
- ${this.getShape(false, true)}
105
- ${where}
106
- `.LIMIT(limit);
107
- const query = (0, sparql_js_1.CONSTRUCT) `
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, sparql_js_1.CONSTRUCT) `
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 sparql_js_1.INSERT.DATA `${quads}`.build();
143
+ return mod_js_2.INSERT.DATA `${quads}`.build();
140
144
  }
141
145
  deleteDataQuery(quads) {
142
- return (0, sparql_js_1.$) `DELETE DATA { ${quads} }`.toString();
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, sparql_js_1.DELETE) `${deleteQuads}`.INSERT `${insertQuads}`
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 mod_js_1 = require("../namespaces/mod.js");
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
- [mod_js_1.xsd.dateTime]: new Date(),
6
- [mod_js_1.xsd.date]: new Date(),
7
- [mod_js_1.xsd.gDay]: new Date(),
8
- [mod_js_1.xsd.gMonthDay]: new Date(),
9
- [mod_js_1.xsd.gYear]: new Date(),
10
- [mod_js_1.xsd.gYearMonth]: new Date(),
11
- [mod_js_1.xsd.boolean]: true,
12
- [mod_js_1.xsd.double]: 0.0,
13
- [mod_js_1.xsd.decimal]: 0.0,
14
- [mod_js_1.xsd.float]: 0.0,
15
- [mod_js_1.xsd.integer]: 0,
16
- [mod_js_1.xsd.long]: 0,
17
- [mod_js_1.xsd.int]: 0,
18
- [mod_js_1.xsd.byte]: 0,
19
- [mod_js_1.xsd.short]: 0,
20
- [mod_js_1.xsd.negativeInteger]: 0,
21
- [mod_js_1.xsd.nonNegativeInteger]: 0,
22
- [mod_js_1.xsd.nonPositiveInteger]: 0,
23
- [mod_js_1.xsd.positiveInteger]: 0,
24
- [mod_js_1.xsd.unsignedByte]: 0,
25
- [mod_js_1.xsd.unsignedInt]: 0,
26
- [mod_js_1.xsd.unsignedLong]: 0,
27
- [mod_js_1.xsd.unsignedShort]: 0,
28
- [mod_js_1.xsd.string]: "",
29
- [mod_js_1.xsd.normalizedString]: "",
30
- [mod_js_1.xsd.anyURI]: "",
31
- [mod_js_1.xsd.base64Binary]: "",
32
- [mod_js_1.xsd.language]: "",
33
- [mod_js_1.xsd.Name]: "",
34
- [mod_js_1.xsd.NCName]: "",
35
- [mod_js_1.xsd.NMTOKEN]: "",
36
- [mod_js_1.xsd.token]: "",
37
- [mod_js_1.xsd.hexBinary]: "",
38
- [mod_js_1.rdf.langString]: "",
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 mod_js_1 = require("../namespaces/mod.js");
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": mod_js_1.xsd.string,
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"] = mod_js_1.xsd.string;
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 });