@undefineds.co/xpod 0.2.42 → 0.2.44
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/dist/api/handlers/WebIdProfileHandler.js +9 -1
- package/dist/api/handlers/WebIdProfileHandler.js.map +1 -1
- package/dist/components/context.jsonld +45 -0
- package/dist/storage/quint/BaseQuintStore.jsonld +82 -0
- package/dist/storage/quint/PgQuintStore.d.ts +43 -3
- package/dist/storage/quint/PgQuintStore.js +596 -28
- package/dist/storage/quint/PgQuintStore.js.map +1 -1
- package/dist/storage/quint/PgQuintStore.jsonld +202 -0
- package/dist/storage/quint/SqliteQuintStore.jsonld +82 -0
- package/dist/storage/quint/index.d.ts +1 -0
- package/dist/storage/quint/index.js +1 -0
- package/dist/storage/quint/index.js.map +1 -1
- package/dist/storage/quint/types.d.ts +13 -0
- package/dist/storage/quint/types.js.map +1 -1
- package/dist/storage/quint/value-types.d.ts +32 -0
- package/dist/storage/quint/value-types.js +100 -0
- package/dist/storage/quint/value-types.js.map +1 -0
- package/package.json +1 -1
- package/static/app/assets/main.js +22 -22
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Term } from '@rdfjs/types';
|
|
2
|
+
/**
|
|
3
|
+
* Declares what kind of RDF object value a predicate stores.
|
|
4
|
+
*
|
|
5
|
+
* This is schema data, not a query policy. Query capabilities are derived
|
|
6
|
+
* from the declared data type:
|
|
7
|
+
* - text/numeric/dateTime/iri/blankNode/literal with objectKey support
|
|
8
|
+
* can use exact/prefix/range/order.
|
|
9
|
+
* - longText is stored for DB-side text search/contains and must not fall
|
|
10
|
+
* back to in-memory scans for range/order semantics.
|
|
11
|
+
*/
|
|
12
|
+
export type PredicateObjectDataType = 'iri' | 'blankNode' | 'text' | 'longText' | 'numeric' | 'dateTime' | 'literal';
|
|
13
|
+
export interface PredicateObjectDataTypes {
|
|
14
|
+
[predicate: string]: PredicateObjectDataType;
|
|
15
|
+
}
|
|
16
|
+
export interface ObjectIndexFields {
|
|
17
|
+
objectKind: PredicateObjectDataType;
|
|
18
|
+
objectKey: string | null;
|
|
19
|
+
objectText: string | null;
|
|
20
|
+
}
|
|
21
|
+
export interface ObjectIndexOptions {
|
|
22
|
+
predicate?: string;
|
|
23
|
+
predicateObjectDataTypes?: PredicateObjectDataTypes;
|
|
24
|
+
textMaxBytes?: number;
|
|
25
|
+
}
|
|
26
|
+
export declare const DEFAULT_TEXT_MAX_BYTES = 2048;
|
|
27
|
+
export declare function getPredicateObjectDataType(predicate: string | undefined, predicateObjectDataTypes: PredicateObjectDataTypes | undefined): PredicateObjectDataType | undefined;
|
|
28
|
+
export declare function objectIndexFieldsFromTerm(term: Term, options?: ObjectIndexOptions): ObjectIndexFields;
|
|
29
|
+
export declare function objectIndexFieldsFromSerialized(serialized: string, options?: ObjectIndexOptions): ObjectIndexFields;
|
|
30
|
+
export declare function objectIndexFieldsFromOperatorValue(value: unknown, serialized: string, options?: ObjectIndexOptions): ObjectIndexFields;
|
|
31
|
+
export declare function isObjectValueComparable(fields: ObjectIndexFields): boolean;
|
|
32
|
+
export declare function literalFromPlainText(value: string): Term;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_TEXT_MAX_BYTES = void 0;
|
|
4
|
+
exports.getPredicateObjectDataType = getPredicateObjectDataType;
|
|
5
|
+
exports.objectIndexFieldsFromTerm = objectIndexFieldsFromTerm;
|
|
6
|
+
exports.objectIndexFieldsFromSerialized = objectIndexFieldsFromSerialized;
|
|
7
|
+
exports.objectIndexFieldsFromOperatorValue = objectIndexFieldsFromOperatorValue;
|
|
8
|
+
exports.isObjectValueComparable = isObjectValueComparable;
|
|
9
|
+
exports.literalFromPlainText = literalFromPlainText;
|
|
10
|
+
const n3_1 = require("n3");
|
|
11
|
+
const serialization_1 = require("./serialization");
|
|
12
|
+
exports.DEFAULT_TEXT_MAX_BYTES = 2048;
|
|
13
|
+
const XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';
|
|
14
|
+
const RDF_LANG_STRING = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString';
|
|
15
|
+
const textEncoder = new TextEncoder();
|
|
16
|
+
function getPredicateObjectDataType(predicate, predicateObjectDataTypes) {
|
|
17
|
+
if (!predicate || !predicateObjectDataTypes)
|
|
18
|
+
return undefined;
|
|
19
|
+
return predicateObjectDataTypes[predicate];
|
|
20
|
+
}
|
|
21
|
+
function objectIndexFieldsFromTerm(term, options = {}) {
|
|
22
|
+
const serialized = (0, serialization_1.serializeObject)(term);
|
|
23
|
+
const declaredType = getPredicateObjectDataType(options.predicate, options.predicateObjectDataTypes);
|
|
24
|
+
const textMaxBytes = options.textMaxBytes ?? exports.DEFAULT_TEXT_MAX_BYTES;
|
|
25
|
+
if (term.termType === 'NamedNode') {
|
|
26
|
+
assertDeclaredType(declaredType, 'iri', options.predicate);
|
|
27
|
+
return { objectKind: 'iri', objectKey: serialized, objectText: null };
|
|
28
|
+
}
|
|
29
|
+
if (term.termType === 'BlankNode') {
|
|
30
|
+
assertDeclaredType(declaredType, 'blankNode', options.predicate);
|
|
31
|
+
return { objectKind: 'blankNode', objectKey: serialized, objectText: null };
|
|
32
|
+
}
|
|
33
|
+
if (term.termType !== 'Literal') {
|
|
34
|
+
return { objectKind: 'literal', objectKey: serialized, objectText: null };
|
|
35
|
+
}
|
|
36
|
+
const literal = term;
|
|
37
|
+
const datatype = literal.datatype?.value;
|
|
38
|
+
if (datatype && serialization_1.NUMERIC_TYPES.has(datatype)) {
|
|
39
|
+
assertDeclaredType(declaredType, 'numeric', options.predicate);
|
|
40
|
+
return { objectKind: 'numeric', objectKey: serialized, objectText: null };
|
|
41
|
+
}
|
|
42
|
+
if (datatype === serialization_1.DATETIME_TYPE) {
|
|
43
|
+
assertDeclaredType(declaredType, 'dateTime', options.predicate);
|
|
44
|
+
return { objectKind: 'dateTime', objectKey: serialized, objectText: null };
|
|
45
|
+
}
|
|
46
|
+
if (!isTextLiteral(literal)) {
|
|
47
|
+
assertDeclaredType(declaredType, 'literal', options.predicate);
|
|
48
|
+
return serializedTextLength(serialized) <= textMaxBytes
|
|
49
|
+
? { objectKind: 'literal', objectKey: serialized, objectText: literal.value }
|
|
50
|
+
: { objectKind: 'literal', objectKey: null, objectText: literal.value };
|
|
51
|
+
}
|
|
52
|
+
if (declaredType === 'longText') {
|
|
53
|
+
return { objectKind: 'longText', objectKey: null, objectText: literal.value };
|
|
54
|
+
}
|
|
55
|
+
if (declaredType === 'text') {
|
|
56
|
+
if (serializedTextLength(serialized) > textMaxBytes) {
|
|
57
|
+
throw new Error(`Predicate ${options.predicate ?? '(unknown)'} is declared as text, but the object exceeds ${textMaxBytes} bytes`);
|
|
58
|
+
}
|
|
59
|
+
return { objectKind: 'text', objectKey: serialized, objectText: literal.value };
|
|
60
|
+
}
|
|
61
|
+
assertDeclaredType(declaredType, 'text', options.predicate);
|
|
62
|
+
return serializedTextLength(serialized) <= textMaxBytes
|
|
63
|
+
? { objectKind: 'text', objectKey: serialized, objectText: literal.value }
|
|
64
|
+
: { objectKind: 'longText', objectKey: null, objectText: literal.value };
|
|
65
|
+
}
|
|
66
|
+
function objectIndexFieldsFromSerialized(serialized, options = {}) {
|
|
67
|
+
return objectIndexFieldsFromTerm((0, serialization_1.deserializeObject)(serialized), options);
|
|
68
|
+
}
|
|
69
|
+
function objectIndexFieldsFromOperatorValue(value, serialized, options = {}) {
|
|
70
|
+
if (isTermLike(value)) {
|
|
71
|
+
return objectIndexFieldsFromTerm(value, options);
|
|
72
|
+
}
|
|
73
|
+
const declaredType = getPredicateObjectDataType(options.predicate, options.predicateObjectDataTypes);
|
|
74
|
+
if (declaredType === 'longText') {
|
|
75
|
+
return { objectKind: 'longText', objectKey: null, objectText: String(value) };
|
|
76
|
+
}
|
|
77
|
+
return objectIndexFieldsFromSerialized(serialized, options);
|
|
78
|
+
}
|
|
79
|
+
function isObjectValueComparable(fields) {
|
|
80
|
+
return fields.objectKey !== null && fields.objectKind !== 'longText';
|
|
81
|
+
}
|
|
82
|
+
function literalFromPlainText(value) {
|
|
83
|
+
return n3_1.DataFactory.literal(value);
|
|
84
|
+
}
|
|
85
|
+
function isTextLiteral(literal) {
|
|
86
|
+
const datatype = literal.datatype?.value;
|
|
87
|
+
return !datatype || datatype === XSD_STRING || datatype === RDF_LANG_STRING;
|
|
88
|
+
}
|
|
89
|
+
function serializedTextLength(value) {
|
|
90
|
+
return textEncoder.encode(value).byteLength;
|
|
91
|
+
}
|
|
92
|
+
function assertDeclaredType(declaredType, actualType, predicate) {
|
|
93
|
+
if (!declaredType || declaredType === actualType || declaredType === 'literal')
|
|
94
|
+
return;
|
|
95
|
+
throw new Error(`Predicate ${predicate ?? '(unknown)'} is declared as ${declaredType}, but received ${actualType}`);
|
|
96
|
+
}
|
|
97
|
+
function isTermLike(value) {
|
|
98
|
+
return !!value && typeof value === 'object' && 'termType' in value;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=value-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-types.js","sourceRoot":"","sources":["../../../src/storage/quint/value-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataFactory } from 'n3';\nimport type { Term, Literal } from '@rdfjs/types';\n\nimport {\n DATETIME_TYPE,\n NUMERIC_TYPES,\n deserializeObject,\n serializeObject,\n} from './serialization';\n\n/**\n * Declares what kind of RDF object value a predicate stores.\n *\n * This is schema data, not a query policy. Query capabilities are derived\n * from the declared data type:\n * - text/numeric/dateTime/iri/blankNode/literal with objectKey support\n * can use exact/prefix/range/order.\n * - longText is stored for DB-side text search/contains and must not fall\n * back to in-memory scans for range/order semantics.\n */\nexport type PredicateObjectDataType =\n | 'iri'\n | 'blankNode'\n | 'text'\n | 'longText'\n | 'numeric'\n | 'dateTime'\n | 'literal';\n\nexport interface PredicateObjectDataTypes {\n [predicate: string]: PredicateObjectDataType;\n}\n\nexport interface ObjectIndexFields {\n objectKind: PredicateObjectDataType;\n objectKey: string | null;\n objectText: string | null;\n}\n\nexport interface ObjectIndexOptions {\n predicate?: string;\n predicateObjectDataTypes?: PredicateObjectDataTypes;\n textMaxBytes?: number;\n}\n\nexport const DEFAULT_TEXT_MAX_BYTES = 2048;\n\nconst XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';\nconst RDF_LANG_STRING = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString';\n\nconst textEncoder = new TextEncoder();\n\nexport function getPredicateObjectDataType(\n predicate: string | undefined,\n predicateObjectDataTypes: PredicateObjectDataTypes | undefined,\n): PredicateObjectDataType | undefined {\n if (!predicate || !predicateObjectDataTypes) return undefined;\n return predicateObjectDataTypes[predicate];\n}\n\nexport function objectIndexFieldsFromTerm(term: Term, options: ObjectIndexOptions = {}): ObjectIndexFields {\n const serialized = serializeObject(term);\n const declaredType = getPredicateObjectDataType(options.predicate, options.predicateObjectDataTypes);\n const textMaxBytes = options.textMaxBytes ?? DEFAULT_TEXT_MAX_BYTES;\n\n if (term.termType === 'NamedNode') {\n assertDeclaredType(declaredType, 'iri', options.predicate);\n return { objectKind: 'iri', objectKey: serialized, objectText: null };\n }\n\n if (term.termType === 'BlankNode') {\n assertDeclaredType(declaredType, 'blankNode', options.predicate);\n return { objectKind: 'blankNode', objectKey: serialized, objectText: null };\n }\n\n if (term.termType !== 'Literal') {\n return { objectKind: 'literal', objectKey: serialized, objectText: null };\n }\n\n const literal = term as Literal;\n const datatype = literal.datatype?.value;\n\n if (datatype && NUMERIC_TYPES.has(datatype)) {\n assertDeclaredType(declaredType, 'numeric', options.predicate);\n return { objectKind: 'numeric', objectKey: serialized, objectText: null };\n }\n\n if (datatype === DATETIME_TYPE) {\n assertDeclaredType(declaredType, 'dateTime', options.predicate);\n return { objectKind: 'dateTime', objectKey: serialized, objectText: null };\n }\n\n if (!isTextLiteral(literal)) {\n assertDeclaredType(declaredType, 'literal', options.predicate);\n return serializedTextLength(serialized) <= textMaxBytes\n ? { objectKind: 'literal', objectKey: serialized, objectText: literal.value }\n : { objectKind: 'literal', objectKey: null, objectText: literal.value };\n }\n\n if (declaredType === 'longText') {\n return { objectKind: 'longText', objectKey: null, objectText: literal.value };\n }\n\n if (declaredType === 'text') {\n if (serializedTextLength(serialized) > textMaxBytes) {\n throw new Error(\n `Predicate ${options.predicate ?? '(unknown)'} is declared as text, but the object exceeds ${textMaxBytes} bytes`,\n );\n }\n return { objectKind: 'text', objectKey: serialized, objectText: literal.value };\n }\n\n assertDeclaredType(declaredType, 'text', options.predicate);\n\n return serializedTextLength(serialized) <= textMaxBytes\n ? { objectKind: 'text', objectKey: serialized, objectText: literal.value }\n : { objectKind: 'longText', objectKey: null, objectText: literal.value };\n}\n\nexport function objectIndexFieldsFromSerialized(\n serialized: string,\n options: ObjectIndexOptions = {},\n): ObjectIndexFields {\n return objectIndexFieldsFromTerm(deserializeObject(serialized), options);\n}\n\nexport function objectIndexFieldsFromOperatorValue(\n value: unknown,\n serialized: string,\n options: ObjectIndexOptions = {},\n): ObjectIndexFields {\n if (isTermLike(value)) {\n return objectIndexFieldsFromTerm(value as Term, options);\n }\n\n const declaredType = getPredicateObjectDataType(options.predicate, options.predicateObjectDataTypes);\n if (declaredType === 'longText') {\n return { objectKind: 'longText', objectKey: null, objectText: String(value) };\n }\n\n return objectIndexFieldsFromSerialized(serialized, options);\n}\n\nexport function isObjectValueComparable(fields: ObjectIndexFields): boolean {\n return fields.objectKey !== null && fields.objectKind !== 'longText';\n}\n\nexport function literalFromPlainText(value: string): Term {\n return DataFactory.literal(value);\n}\n\nfunction isTextLiteral(literal: Literal): boolean {\n const datatype = literal.datatype?.value;\n return !datatype || datatype === XSD_STRING || datatype === RDF_LANG_STRING;\n}\n\nfunction serializedTextLength(value: string): number {\n return textEncoder.encode(value).byteLength;\n}\n\nfunction assertDeclaredType(\n declaredType: PredicateObjectDataType | undefined,\n actualType: PredicateObjectDataType,\n predicate: string | undefined,\n): void {\n if (!declaredType || declaredType === actualType || declaredType === 'literal') return;\n throw new Error(\n `Predicate ${predicate ?? '(unknown)'} is declared as ${declaredType}, but received ${actualType}`,\n );\n}\n\nfunction isTermLike(value: unknown): value is Term {\n return !!value && typeof value === 'object' && 'termType' in value;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@undefineds.co/xpod",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.44",
|
|
4
4
|
"description": "Xpod is an extended Community Solid Server, offering rich-feature, production-level Solid Pod and identity management.",
|
|
5
5
|
"repository": "https://github.com/undefinedsco/xpod",
|
|
6
6
|
"author": "developer@undefineds.co",
|