@oslo-flanders/core 1.0.17 → 1.1.0
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/lib/constants/prefixes.js +3 -1
- package/lib/store/QuadStore.js +2 -5
- package/lib/utils/fetchFileOrUrl.d.ts +1 -0
- package/lib/utils/storeUtils.js +1 -1
- package/package.json +6 -6
- package/lib/types/splitUri.d.ts +0 -6
- package/lib/types/splitUri.js +0 -35
- package/lib/utils/quadSort.d.ts +0 -8
- package/lib/utils/quadSort.js +0 -17
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getPrefixes = void 0;
|
|
7
|
+
/* eslint-disable @typescript-eslint/consistent-type-assertions */
|
|
7
8
|
const core_1 = require("@oslo-flanders/core");
|
|
8
9
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
9
10
|
const PREFIX_CC_URL = 'https://prefix.cc/context';
|
|
@@ -14,7 +15,7 @@ async function getPrefixes() {
|
|
|
14
15
|
if (!response.ok) {
|
|
15
16
|
throw new Error(`Failed to fetch prefixes: ${response.statusText}`);
|
|
16
17
|
}
|
|
17
|
-
const data = await response.json();
|
|
18
|
+
const data = (await response.json());
|
|
18
19
|
if (data['@context']) {
|
|
19
20
|
return data['@context'];
|
|
20
21
|
}
|
|
@@ -35,4 +36,5 @@ async function getPrefixes() {
|
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
exports.getPrefixes = getPrefixes;
|
|
39
|
+
/* eslint-enable @typescript-eslint/consistent-type-assertions */
|
|
38
40
|
//# sourceMappingURL=prefixes.js.map
|
package/lib/store/QuadStore.js
CHANGED
|
@@ -31,14 +31,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
31
31
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
32
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
33
|
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
35
|
exports.QuadStore = void 0;
|
|
39
36
|
const inversify_1 = require("inversify");
|
|
40
37
|
const N3 = __importStar(require("n3"));
|
|
41
|
-
const rdf_parse_1 =
|
|
38
|
+
const rdf_parse_1 = require("rdf-parse");
|
|
42
39
|
const fetchFileOrUrl_1 = require("../utils/fetchFileOrUrl");
|
|
43
40
|
const namespaces_1 = require("../utils/namespaces");
|
|
44
41
|
let QuadStore = class QuadStore {
|
|
@@ -61,7 +58,7 @@ let QuadStore = class QuadStore {
|
|
|
61
58
|
const buffer = await (0, fetchFileOrUrl_1.fetchFileOrUrl)(file);
|
|
62
59
|
const textStream = require('streamify-string')(buffer.toString());
|
|
63
60
|
return new Promise((resolve, reject) => {
|
|
64
|
-
rdf_parse_1.
|
|
61
|
+
rdf_parse_1.rdfParser
|
|
65
62
|
.parse(textStream, { path: file })
|
|
66
63
|
.on('data', (quad) => this.store.addQuad(quad))
|
|
67
64
|
.on('error', (error) => reject(error))
|
package/lib/utils/storeUtils.js
CHANGED
|
@@ -117,12 +117,12 @@ function createList(items, store, df) {
|
|
|
117
117
|
}
|
|
118
118
|
exports.createList = createList;
|
|
119
119
|
function findAllAttributes(subject, attributeIds, store, logger, visited = new Set()) {
|
|
120
|
+
let parentIds = store.findObjects(subject, namespaces_1.ns.rdfs('subClassOf'));
|
|
120
121
|
if (visited.has(subject.value)) {
|
|
121
122
|
logger.warn(`[QuadStore]: Circular reference detected for ${subject.value}`);
|
|
122
123
|
return attributeIds;
|
|
123
124
|
}
|
|
124
125
|
visited.add(subject.value);
|
|
125
|
-
let parentIds = store.findObjects(subject, namespaces_1.ns.rdfs('subClassOf'));
|
|
126
126
|
// Merge all referenced dummy parents with the real one based on assigned URI
|
|
127
127
|
let additionalParentIds = [];
|
|
128
128
|
for (const parentId of parentIds) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oslo-flanders/core",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Core interfaces and utilities",
|
|
5
5
|
"author": "Digitaal Vlaanderen <https://data.vlaanderen.be/id/organisatie/OVO002949>",
|
|
6
6
|
"homepage": "https://github.com/informatievlaanderen/OSLO-UML-Transformer/tree/main/packages/oslo-core#readme",
|
|
@@ -32,17 +32,17 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"crypto-js": "^4.1.1",
|
|
34
34
|
"inversify": "^6.0.1",
|
|
35
|
-
"n3": "^
|
|
36
|
-
"rdf-data-factory": "^1.1.1",
|
|
37
|
-
"rdf-parse": "^2.1.1",
|
|
38
|
-
"reflect-metadata": "^0.1.13",
|
|
35
|
+
"n3": "^2.0.0",
|
|
39
36
|
"node-fetch": "^2.6.7",
|
|
37
|
+
"rdf-data-factory": "^2.0.0",
|
|
38
|
+
"rdf-parse": "^5.0.0",
|
|
39
|
+
"reflect-metadata": "^0.2.1",
|
|
40
40
|
"streamify-string": "^1.0.1",
|
|
41
41
|
"winston": "^3.8.2",
|
|
42
42
|
"winston-transport": "^4.5.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@rdfjs/types": "^
|
|
45
|
+
"@rdfjs/types": "^2.0.0",
|
|
46
46
|
"@types/crypto-js": "^4.1.1",
|
|
47
47
|
"@types/n3": "^1.10.4",
|
|
48
48
|
"@types/node-fetch": "^2.6.2",
|
package/lib/types/splitUri.d.ts
DELETED
package/lib/types/splitUri.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.splitUri = void 0;
|
|
4
|
-
const prefixes_1 = require("../constants/prefixes");
|
|
5
|
-
async function splitUri(uri) {
|
|
6
|
-
/* Extract prefix and element by finding the last occurrence of # or / */
|
|
7
|
-
const hashIndex = uri.lastIndexOf('#');
|
|
8
|
-
const slashIndex = uri.lastIndexOf('/');
|
|
9
|
-
const splitIndex = Math.max(hashIndex, slashIndex);
|
|
10
|
-
if (splitIndex > 0) {
|
|
11
|
-
const prefixUri = uri.slice(0, Math.max(0, splitIndex + 1));
|
|
12
|
-
const element = uri.replace(prefixUri, '');
|
|
13
|
-
const prefixes = await (0, prefixes_1.getPrefixes)();
|
|
14
|
-
let prefixLabel;
|
|
15
|
-
for (const [label, puri] of Object.entries(prefixes)) {
|
|
16
|
-
if (puri === prefixUri) {
|
|
17
|
-
prefixLabel = label;
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/* No known prefix found for URI */
|
|
22
|
-
if (!prefixLabel) {
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
prefix: prefixLabel,
|
|
27
|
-
uri: prefixUri,
|
|
28
|
-
element,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/* Splitting failed */
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
exports.splitUri = splitUri;
|
|
35
|
-
//# sourceMappingURL=splitUri.js.map
|
package/lib/utils/quadSort.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type * as RDF from '@rdfjs/types';
|
|
2
|
-
/**
|
|
3
|
-
* Sort function used on an array of quads. First sorts named nodes alphabetically, then blank nodes alphabetically.
|
|
4
|
-
* @param quadA An RDF.Quad
|
|
5
|
-
* @param quadB An RDF.Quad
|
|
6
|
-
* @returns a number
|
|
7
|
-
*/
|
|
8
|
-
export declare const quadSort: (quadA: RDF.Quad, quadB: RDF.Quad) => number;
|
package/lib/utils/quadSort.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.quadSort = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Sort function used on an array of quads. First sorts named nodes alphabetically, then blank nodes alphabetically.
|
|
6
|
-
* @param quadA An RDF.Quad
|
|
7
|
-
* @param quadB An RDF.Quad
|
|
8
|
-
* @returns a number
|
|
9
|
-
*/
|
|
10
|
-
const quadSort = (quadA, quadB) => {
|
|
11
|
-
if (quadA.subject.termType === quadB.subject.termType) {
|
|
12
|
-
return quadA.subject.value.localeCompare(quadB.subject.value);
|
|
13
|
-
}
|
|
14
|
-
return quadA.subject.termType === 'BlankNode' ? 1 : -1;
|
|
15
|
-
};
|
|
16
|
-
exports.quadSort = quadSort;
|
|
17
|
-
//# sourceMappingURL=quadSort.js.map
|