ldkit 0.6.4 → 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/encoder.js +5 -4
- package/esm/library/rdf.js +2 -2
- package/esm/library/resource/query_builder.js +33 -33
- 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 -3
- package/script/library/encoder.js +5 -4
- package/script/library/rdf.js +2 -1
- package/script/library/resource/query_builder.js +38 -38
- 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/rdf.d.ts +2 -2
- 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
|
@@ -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 });
|
|
@@ -0,0 +1,61 @@
|
|
|
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.stringify = exports.literal = exports.variable = exports.namedNode = exports.blankNode = void 0;
|
|
7
|
+
const rdf_js_1 = require("../rdf.js");
|
|
8
|
+
const xsd_js_1 = __importDefault(require("../namespaces/xsd.js"));
|
|
9
|
+
const escape_js_1 = require("./escape.js");
|
|
10
|
+
const blankNode = (term) => {
|
|
11
|
+
return `_:${term.value}`;
|
|
12
|
+
};
|
|
13
|
+
exports.blankNode = blankNode;
|
|
14
|
+
const namedNode = (term) => {
|
|
15
|
+
return `<${term.value}>`;
|
|
16
|
+
};
|
|
17
|
+
exports.namedNode = namedNode;
|
|
18
|
+
const variable = (term) => {
|
|
19
|
+
return `?${term.value}`;
|
|
20
|
+
};
|
|
21
|
+
exports.variable = variable;
|
|
22
|
+
const literal = (term) => {
|
|
23
|
+
const datatype = term.datatype.value;
|
|
24
|
+
if (datatype === xsd_js_1.default.integer || datatype === xsd_js_1.default.boolean ||
|
|
25
|
+
datatype === xsd_js_1.default.decimal) {
|
|
26
|
+
return term.value;
|
|
27
|
+
}
|
|
28
|
+
const value = `"${(0, escape_js_1.escape)(term.value)}"`;
|
|
29
|
+
if (term.language) {
|
|
30
|
+
return `${value}@${term.language}`;
|
|
31
|
+
}
|
|
32
|
+
if (datatype !== xsd_js_1.default.string) {
|
|
33
|
+
return `${value}^^${(0, exports.namedNode)(term.datatype)}`;
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
};
|
|
37
|
+
exports.literal = literal;
|
|
38
|
+
const quad = (term) => {
|
|
39
|
+
const triple = `${(0, exports.stringify)(term.subject)} ${(0, exports.stringify)(term.predicate)} ${(0, exports.stringify)(term.object)} .`;
|
|
40
|
+
if (term.graph.equals(rdf_js_1.DefaultGraph.INSTANCE)) {
|
|
41
|
+
return triple;
|
|
42
|
+
}
|
|
43
|
+
return `GRAPH ${(0, exports.stringify)(term.graph)} { ${triple} }`;
|
|
44
|
+
};
|
|
45
|
+
const stringify = (term) => {
|
|
46
|
+
switch (term.termType) {
|
|
47
|
+
case "BlankNode":
|
|
48
|
+
return (0, exports.blankNode)(term);
|
|
49
|
+
case "NamedNode":
|
|
50
|
+
return (0, exports.namedNode)(term);
|
|
51
|
+
case "Variable":
|
|
52
|
+
return (0, exports.variable)(term);
|
|
53
|
+
case "Literal":
|
|
54
|
+
return (0, exports.literal)(term);
|
|
55
|
+
case "Quad":
|
|
56
|
+
return quad(term);
|
|
57
|
+
default:
|
|
58
|
+
throw new Error("Unknown RDF type found.");
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
exports.stringify = stringify;
|
package/script/sparql.js
CHANGED
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./library/sparql.js"), exports);
|
|
17
|
+
__exportStar(require("./library/sparql/mod.js"), exports);
|
package/types/library/rdf.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type * as RDF from "rdf-js";
|
|
2
2
|
export type { RDF };
|
|
3
3
|
export { fromRdf, toRdf } from "rdf-literal";
|
|
4
|
-
import { DataFactory } from "rdf-data-factory";
|
|
5
|
-
export { DataFactory };
|
|
4
|
+
import { DataFactory, DefaultGraph } from "rdf-data-factory";
|
|
5
|
+
export { DataFactory, DefaultGraph };
|
|
6
6
|
import type { IDataSource, IQueryContextCommon } from "@comunica/types";
|
|
7
7
|
export declare type LDkitContext = {
|
|
8
8
|
graph?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SchemaInterfaceIdentity } from "../schema/mod.js";
|
|
2
|
-
export declare type Entity<T extends
|
|
3
|
-
export declare type DeepPartial<T> = T extends
|
|
2
|
+
export declare type Entity<T extends unknown = Record<string, unknown>> = DeepPartial<T> & SchemaInterfaceIdentity;
|
|
3
|
+
export declare type DeepPartial<T> = T extends Record<string, unknown> ? {
|
|
4
4
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
5
5
|
} : T;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SupportedDataTypes } from "./data_types.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { PropertyPrototype, SchemaPrototype } from "./schema.js";
|
|
3
3
|
declare type IsOptional<Property extends PropertyPrototype> = Property extends {
|
|
4
4
|
"@optional": true;
|
|
5
5
|
} ? true : false;
|
|
@@ -13,7 +13,7 @@ declare type ValidPropertyDefinition = PropertyPrototype | string;
|
|
|
13
13
|
declare type ConvertPropertyType<T extends PropertyPrototype> = T extends {
|
|
14
14
|
"@context": SchemaPrototype;
|
|
15
15
|
} ? SchemaInterface<T["@context"]> : T extends {
|
|
16
|
-
"@type":
|
|
16
|
+
"@type": unknown;
|
|
17
17
|
} ? T["@type"] extends keyof SupportedDataTypes ? SupportedDataTypes[T["@type"]] : never : string;
|
|
18
18
|
declare type ConvertPropertyOptional<T extends PropertyPrototype> = IsOptional<T> extends true ? ConvertPropertyType<T> | undefined : ConvertPropertyType<T>;
|
|
19
19
|
declare type ConvertPropertyArray<T extends PropertyPrototype> = IsArray<T> extends true ? ConvertPropertyType<T>[] : ConvertPropertyOptional<T>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export type { SchemaInterface, SchemaInterfaceIdentity, SchemaInterfaceType, } from "./interface.js";
|
|
2
|
-
export type {
|
|
2
|
+
export type { Property, PropertyPrototype, Schema, SchemaPrototype, } from "./schema.js";
|
|
3
3
|
export { expandSchema, getSchemaProperties } from "./utils.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const escape: (value: string) => string;
|