@hydrofoil/talos-core 0.1.6 → 0.1.7

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.
@@ -3,9 +3,11 @@ import fs from 'fs';
3
3
  import { walk } from '@fcostarodrigo/walk';
4
4
  import { QueryEngine } from '@comunica/query-sparql';
5
5
  import { Store } from 'n3';
6
+ import { translate } from 'sparqlalgebrajs';
7
+ import { types } from 'sparqlalgebrajs/lib/algebra.js';
6
8
  import $rdf from '../env.js';
7
9
  import log from './log.js';
8
- import { baseIRI } from './baseIRI.js';
10
+ import { baseIRI as getBaseIRI } from './baseIRI.js';
9
11
  export async function applyUpdates(api, validDirs, dataset) {
10
12
  const engine = new QueryEngine();
11
13
  const store = new Store([...dataset]);
@@ -17,13 +19,15 @@ export async function applyUpdates(api, validDirs, dataset) {
17
19
  }
18
20
  const destination = new Store();
19
21
  const relative = path.relative(dir, file);
22
+ const baseIRI = getBaseIRI(relative, api);
20
23
  log.debug('Applying updates from %s, dataset size %s', relative, store.size);
21
24
  const query = fs.readFileSync(file, 'utf-8');
22
- for (const command of query.split(';')) {
25
+ const algebra = translate(query, { quads: true, baseIRI });
26
+ for (const command of getUpdates(algebra)) {
23
27
  await engine.queryVoid(command, {
24
28
  sources: [destination, store],
25
29
  destination,
26
- baseIRI: baseIRI(relative, api),
30
+ baseIRI,
27
31
  });
28
32
  }
29
33
  log.debug('Applied updates from %s, dataset size %s', relative, store.size);
@@ -32,4 +36,15 @@ export async function applyUpdates(api, validDirs, dataset) {
32
36
  }
33
37
  return $rdf.dataset([...dataset, ...results]);
34
38
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHlVcGRhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwbHlVcGRhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBRTFCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUE7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFXLEVBQUUsU0FBbUIsRUFBRSxPQUFvQjtJQUN2RixNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRTtRQUMzQixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLFNBQVE7YUFDVDtZQUNELE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7WUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDekMsR0FBRyxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzVFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzVDLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtvQkFDOUIsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztvQkFDN0IsV0FBVztvQkFDWCxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7aUJBQ2hDLENBQUMsQ0FBQTthQUNIO1lBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzNFLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDNUI7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUMvQyxDQUFDIn0=
39
+ function getUpdates(query) {
40
+ switch (query.type) {
41
+ case types.COMPOSITE_UPDATE:
42
+ return query.updates;
43
+ case types.DELETE_INSERT:
44
+ return [query];
45
+ default:
46
+ log.debug('Only update queries are allowed');
47
+ return [];
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHlVcGRhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwbHlVcGRhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBRTFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDdEQsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQTtBQUMxQixPQUFPLEVBQUUsT0FBTyxJQUFJLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUVwRCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFXLEVBQUUsU0FBbUIsRUFBRSxPQUFvQjtJQUN2RixNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRTtRQUMzQixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLFNBQVE7YUFDVDtZQUNELE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7WUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDekMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUN6QyxHQUFHLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDNUUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFFNUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUMxRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekMsTUFBTSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtvQkFDOUIsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztvQkFDN0IsV0FBVztvQkFDWCxPQUFPO2lCQUNSLENBQUMsQ0FBQTthQUNIO1lBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzNFLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDNUI7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBZ0I7SUFDbEMsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ2xCLEtBQUssS0FBSyxDQUFDLGdCQUFnQjtZQUN6QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUE7UUFDdEIsS0FBSyxLQUFLLENBQUMsYUFBYTtZQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEI7WUFDRSxHQUFHLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7WUFDNUMsT0FBTyxFQUFFLENBQUE7S0FDWjtBQUNILENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydrofoil/talos-core",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -24,14 +24,16 @@
24
24
  "is-graph-pointer": "^2.1.0",
25
25
  "mime-types": "^2.1.35",
26
26
  "n3": "^1.20.4",
27
- "replacestream": "^4.0.3"
27
+ "replacestream": "^4.0.3",
28
+ "sparqlalgebrajs": "^4.3.8"
28
29
  },
29
30
  "devDependencies": {
30
31
  "@rdfjs-elements/formats-pretty": "^0.6.7",
31
32
  "@zazuko/env": "^2.2.1",
32
33
  "chai": "^4.4.1",
33
34
  "get-stream": "^9.0.1",
34
- "into-stream": "^8.0.1"
35
+ "into-stream": "^8.0.1",
36
+ "mocha-chai-jest-snapshot": "^1.1.4"
35
37
  },
36
38
  "repository": {
37
39
  "type": "git",