rdflib 2.2.22-2cea0982 → 2.2.22-2f49e8ef

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/convert.js ADDED
@@ -0,0 +1,60 @@
1
+ import asyncLib from 'async'; // @@ Goal: remove this dependency
2
+ import jsonld from 'jsonld';
3
+ import { Parser, Writer } from 'n3'; // @@ Goal: remove this dependency
4
+
5
+ export function convertToJson(n3String, jsonCallback) {
6
+ var jsonString;
7
+ var n3Parser = new Parser();
8
+ var n3Writer = new Writer({
9
+ format: 'N-Quads'
10
+ });
11
+ asyncLib.waterfall([function (callback) {
12
+ n3Parser.parse(n3String, function (error, quad, prefixes) {
13
+ if (error) {
14
+ callback(error);
15
+ } else if (quad !== null) {
16
+ n3Writer.addQuad(quad);
17
+ } else {
18
+ n3Writer.end(callback);
19
+ }
20
+ });
21
+ }, function (result, callback) {
22
+ try {
23
+ jsonld.fromRDF(result, {
24
+ format: 'application/nquads'
25
+ }).then(result => {
26
+ callback(null, result);
27
+ });
28
+ } catch (err) {
29
+ callback(err);
30
+ }
31
+ }, function (json, callback) {
32
+ jsonString = JSON.stringify(json);
33
+ jsonCallback(null, jsonString);
34
+ }], function (err, result) {
35
+ jsonCallback(err, jsonString);
36
+ });
37
+ }
38
+ export function convertToNQuads(n3String, nquadCallback) {
39
+ var nquadString;
40
+ var n3Parser = new Parser();
41
+ var n3Writer = new Writer({
42
+ format: 'N-Quads'
43
+ });
44
+ asyncLib.waterfall([function (callback) {
45
+ n3Parser.parse(n3String, function (error, triple, prefixes) {
46
+ if (error) {
47
+ callback(error);
48
+ } else if (quad !== null) {
49
+ n3Writer.addQuad(quad);
50
+ } else {
51
+ n3Writer.end(callback);
52
+ }
53
+ });
54
+ }, function (result, callback) {
55
+ nquadString = result;
56
+ nquadCallback(null, nquadString);
57
+ }], function (err, result) {
58
+ nquadCallback(err, nquadString);
59
+ });
60
+ }
package/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import BlankNode from './blank-node';
3
3
  import Collection from './collection';
4
+ import * as convert from './convert';
4
5
  import Empty from './empty';
5
6
  import Fetcher from './fetcher';
6
7
  import Formula from './formula';
@@ -56,7 +57,7 @@ const term = Node.fromValue;
56
57
  // it exports the _current_ value of nextId, which is always 0
57
58
  const NextId = BlankNode.nextId;
58
59
  export * from './utils/terms';
59
- export { BlankNode, Collection, DataFactory, Empty, Fetcher, Formula, Store, jsonParser, Literal, log, N3Parser, NamedNode, Namespace, Node, parse, Query, queryToSPARQL, RDFaProcessor, RDFParser, serialize, Serializer, SPARQLToQuery, sparqlUpdateParser, Statement, term, UpdateManager, UpdatesSocket, UpdatesVia, uri, Util, Variable, Store as IndexedFormula,
60
+ export { BlankNode, Collection, convert, DataFactory, Empty, Fetcher, Formula, Store, jsonParser, Literal, log, N3Parser, NamedNode, Namespace, Node, parse, Query, queryToSPARQL, RDFaProcessor, RDFParser, serialize, Serializer, SPARQLToQuery, sparqlUpdateParser, Statement, term, UpdateManager, UpdatesSocket, UpdatesVia, uri, Util, Variable, Store as IndexedFormula,
60
61
  // Alias
61
62
 
62
63
  NextId, fromNT, fetcher, graph, lit, st, namedNode as sym,
@@ -18,7 +18,7 @@ export function jsonldObjectToTerm(kb, obj) {
18
18
  return listToStatements(kb, obj);
19
19
  }
20
20
  if (Object.prototype.hasOwnProperty.call(obj, '@id')) {
21
- return nodeType(kb, obj);
21
+ return kb.rdfFactory.namedNode(obj['@id']);
22
22
  }
23
23
  if (Object.prototype.hasOwnProperty.call(obj, '@language')) {
24
24
  return kb.rdfFactory.literal(obj['@value'], obj['@language']);
@@ -36,7 +36,7 @@ export function jsonldObjectToTerm(kb, obj) {
36
36
  * Adds the statements in a json-ld list object to {kb}.
37
37
  */
38
38
  function listToStatements(kb, obj) {
39
- const listId = obj['@id'] ? nodeType(kb, obj) : kb.rdfFactory.blankNode();
39
+ const listId = obj['@id'] ? kb.rdfFactory.namedNode(obj['@id']) : kb.rdfFactory.blankNode();
40
40
  const items = obj['@list'].map(listItem => jsonldObjectToTerm(kb, listItem));
41
41
  const statements = arrayToStatements(kb.rdfFactory, listId, items);
42
42
  kb.addAll(statements);
@@ -63,17 +63,8 @@ export default function jsonldParser(str, kb, base, callback) {
63
63
  return kb;
64
64
  }, kb)).then(callback).catch(callback);
65
65
  }
66
- function nodeType(kb, obj) {
67
- if (obj['@id'].startsWith('_:')) {
68
- // This object is a Blank Node. Pass the id without the `_:` prefix
69
- return kb.rdfFactory.blankNode(obj['@id'].substring(2));
70
- } else {
71
- // This object is a Named Node
72
- return kb.rdfFactory.namedNode(obj['@id']);
73
- }
74
- }
75
66
  function processResource(kb, base, flatResource) {
76
- const id = flatResource['@id'] ? nodeType(kb, flatResource) : kb.rdfFactory.blankNode();
67
+ const id = flatResource['@id'] ? kb.rdfFactory.namedNode(flatResource['@id']) : kb.rdfFactory.blankNode();
77
68
  for (const property of Object.keys(flatResource)) {
78
69
  if (property === '@id') {
79
70
  continue;
package/esm/serialize.js CHANGED
@@ -1,3 +1,4 @@
1
+ import * as convert from './convert';
1
2
  import Serializer from './serializer';
2
3
  import { JSONLDContentType, N3ContentType, N3LegacyContentType, NQuadsAltContentType, NQuadsContentType, NTriplesContentType, RDFXMLContentType, TurtleContentType, TurtleLegacyContentType } from './types';
3
4
  /**
@@ -19,6 +20,7 @@ contentType, callback, options) {
19
20
  var sz = Serializer(kb);
20
21
  if (opts.flags) sz.setFlags(opts.flags);
21
22
  var newSts = kb.statementsMatching(undefined, undefined, undefined, target);
23
+ var n3String;
22
24
 
23
25
  // If an IndexedFormula, use the namespaces from the given graph as suggestions
24
26
  if ('namespaces' in kb) {
@@ -48,15 +50,20 @@ contentType, callback, options) {
48
50
  documentString = sz.statementsToNTriples(newSts);
49
51
  return executeCallback(null, documentString);
50
52
  case JSONLDContentType:
51
- sz.setFlags('si'); // use turtle parameters
52
- documentString = sz.statementsToJsonld(newSts); // convert via turtle
53
- return executeCallback(null, documentString);
53
+ sz.setFlags('deinprstux'); // Use adapters to connect to incmpatible parser
54
+ n3String = sz.statementsToNTriples(newSts);
55
+ // n3String = sz.statementsToN3(newSts)
56
+ convert.convertToJson(n3String, callback);
57
+ break;
54
58
  case NQuadsContentType:
55
59
  case NQuadsAltContentType:
56
60
  // @@@ just outpout the quads? Does not work for collections
57
61
  sz.setFlags('deinprstux q'); // Suppress nice parts of N3 to make ntriples
58
62
  documentString = sz.statementsToNTriples(newSts); // q in flag means actually quads
59
63
  return executeCallback(null, documentString);
64
+ // n3String = sz.statementsToN3(newSts)
65
+ // documentString = convert.convertToNQuads(n3String, callback)
66
+ // break
60
67
  default:
61
68
  throw new Error('Serialize: Content-type ' + contentType + ' not supported for data write.');
62
69
  }
package/esm/serializer.js CHANGED
@@ -13,8 +13,6 @@ import * as Util from './utils-js';
13
13
  import CanonicalDataFactory from './factories/canonical-data-factory';
14
14
  import { createXSD } from './xsd';
15
15
  import solidNs from 'solid-namespace';
16
- // import * as jsonld from 'jsonld'
17
- import * as ttl2jsonld from '@frogcat/ttl2jsonld';
18
16
  export default function createSerializer(store) {
19
17
  return new Serializer(store);
20
18
  }
@@ -964,27 +962,6 @@ export class Serializer {
964
962
  var tree2 = [str, tree, '</rdf:RDF>']; // @@ namespace declrations
965
963
  return XMLtreeToString(tree2, -1);
966
964
  } // End @@ body
967
-
968
- statementsToJsonld(sts) {
969
- // ttl2jsonld creates context keys for all ttl prefix
970
- // context keys must be full IRI
971
- function findId(itemObj) {
972
- if (itemObj['@id']) {
973
- const item = itemObj['@id'].split(':');
974
- if (keys[item[0]]) itemObj['@id'] = jsonldObj['@context'][item[0]] + item[1];
975
- }
976
- const itemValues = Object.values(itemObj);
977
- for (const i in itemValues) {
978
- if (typeof itemValues[i] !== 'string') {
979
- // @list contains array
980
- findId(itemValues[i]);
981
- }
982
- }
983
- }
984
- const turtleDoc = this.statementsToN3(sts);
985
- const jsonldObj = ttl2jsonld.parse(turtleDoc);
986
- return JSON.stringify(jsonldObj, null, 2);
987
- }
988
965
  }
989
966
 
990
967
  // String escaping utilities
@@ -0,0 +1,2 @@
1
+ export function convertToJson(n3String: any, jsonCallback: any): void;
2
+ export function convertToNQuads(n3String: any, nquadCallback: any): void;
package/lib/convert.js ADDED
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.convertToJson = convertToJson;
8
+ exports.convertToNQuads = convertToNQuads;
9
+ var _async = _interopRequireDefault(require("async"));
10
+ var _jsonld = _interopRequireDefault(require("jsonld"));
11
+ var _n = require("n3");
12
+ // @@ Goal: remove this dependency
13
+
14
+ // @@ Goal: remove this dependency
15
+
16
+ function convertToJson(n3String, jsonCallback) {
17
+ var jsonString;
18
+ var n3Parser = new _n.Parser();
19
+ var n3Writer = new _n.Writer({
20
+ format: 'N-Quads'
21
+ });
22
+ _async.default.waterfall([function (callback) {
23
+ n3Parser.parse(n3String, function (error, quad, prefixes) {
24
+ if (error) {
25
+ callback(error);
26
+ } else if (quad !== null) {
27
+ n3Writer.addQuad(quad);
28
+ } else {
29
+ n3Writer.end(callback);
30
+ }
31
+ });
32
+ }, function (result, callback) {
33
+ try {
34
+ _jsonld.default.fromRDF(result, {
35
+ format: 'application/nquads'
36
+ }).then(result => {
37
+ callback(null, result);
38
+ });
39
+ } catch (err) {
40
+ callback(err);
41
+ }
42
+ }, function (json, callback) {
43
+ jsonString = JSON.stringify(json);
44
+ jsonCallback(null, jsonString);
45
+ }], function (err, result) {
46
+ jsonCallback(err, jsonString);
47
+ });
48
+ }
49
+ function convertToNQuads(n3String, nquadCallback) {
50
+ var nquadString;
51
+ var n3Parser = new _n.Parser();
52
+ var n3Writer = new _n.Writer({
53
+ format: 'N-Quads'
54
+ });
55
+ _async.default.waterfall([function (callback) {
56
+ n3Parser.parse(n3String, function (error, triple, prefixes) {
57
+ if (error) {
58
+ callback(error);
59
+ } else if (quad !== null) {
60
+ n3Writer.addQuad(quad);
61
+ } else {
62
+ n3Writer.end(callback);
63
+ }
64
+ });
65
+ }, function (result, callback) {
66
+ nquadString = result;
67
+ nquadCallback(null, nquadString);
68
+ }], function (err, result) {
69
+ nquadCallback(err, nquadString);
70
+ });
71
+ }
package/lib/formula.d.ts CHANGED
@@ -270,7 +270,7 @@ export default class Formula extends Node {
270
270
  * @param provenance - The provenance URI
271
271
  * @param options - options to pass to the serializer, as defined in serialize method
272
272
  */
273
- serialize(base: any, contentType: any, provenance: any, options?: any): string | Promise<string> | undefined;
273
+ serialize(base: any, contentType: any, provenance: any, options?: any): string | undefined;
274
274
  /**
275
275
  * Creates a new formula with the substituting bindings applied
276
276
  * @param bindings - The bindings to substitute
package/lib/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import BlankNode from './blank-node';
2
2
  import Collection from './collection';
3
+ import * as convert from './convert';
3
4
  import Empty from './empty';
4
5
  import Fetcher from './fetcher';
5
6
  import Formula from './formula';
@@ -34,7 +35,7 @@ declare const term: <T extends import("./types").FromValueReturns<any>>(value: i
34
35
  declare const NextId: number;
35
36
  export * from './utils/terms';
36
37
  export type { AutoInitOptions, ExtendedResponse, FetchError } from './fetcher';
37
- export { BlankNode, Collection, DataFactory, Empty, Fetcher, Formula, Store, jsonParser, Literal, log, N3Parser, NamedNode, Namespace, Node, parse, Query, queryToSPARQL, RDFaProcessor, RDFParser, serialize, Serializer, SPARQLToQuery, sparqlUpdateParser, Statement, term, UpdateManager, UpdatesSocket, UpdatesVia, uri, Util, Variable, Store as IndexedFormula, // Alias
38
+ export { BlankNode, Collection, convert, DataFactory, Empty, Fetcher, Formula, Store, jsonParser, Literal, log, N3Parser, NamedNode, Namespace, Node, parse, Query, queryToSPARQL, RDFaProcessor, RDFParser, serialize, Serializer, SPARQLToQuery, sparqlUpdateParser, Statement, term, UpdateManager, UpdatesSocket, UpdatesVia, uri, Util, Variable, Store as IndexedFormula, // Alias
38
39
  NextId, fromNT, fetcher, graph, lit, st, namedNode as sym, blankNode, defaultGraph, literal, namedNode, quad, triple, variable, };
39
40
  export { termValue } from './utils/termValue';
40
41
  export declare class ConnectedStore extends Store {
package/lib/index.js CHANGED
@@ -24,6 +24,7 @@ var _exportNames = {
24
24
  LiveStore: true,
25
25
  BlankNode: true,
26
26
  Collection: true,
27
+ convert: true,
27
28
  Empty: true,
28
29
  Fetcher: true,
29
30
  Formula: true,
@@ -197,7 +198,7 @@ Object.defineProperty(exports, "Variable", {
197
198
  return _variable.default;
198
199
  }
199
200
  });
200
- exports.graph = exports.fromNT = exports.fetcher = exports.defaultGraph = exports.blankNode = void 0;
201
+ exports.graph = exports.fromNT = exports.fetcher = exports.defaultGraph = exports.convert = exports.blankNode = void 0;
201
202
  Object.defineProperty(exports, "jsonParser", {
202
203
  enumerable: true,
203
204
  get: function () {
@@ -248,6 +249,8 @@ exports.variable = exports.uri = exports.triple = void 0;
248
249
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
249
250
  var _blankNode = _interopRequireDefault(require("./blank-node"));
250
251
  var _collection = _interopRequireDefault(require("./collection"));
252
+ var convert = _interopRequireWildcard(require("./convert"));
253
+ exports.convert = convert;
251
254
  var _empty = _interopRequireDefault(require("./empty"));
252
255
  var _fetcher = _interopRequireDefault(require("./fetcher"));
253
256
  var _formula = _interopRequireDefault(require("./formula"));
@@ -25,7 +25,7 @@ function jsonldObjectToTerm(kb, obj) {
25
25
  return listToStatements(kb, obj);
26
26
  }
27
27
  if (Object.prototype.hasOwnProperty.call(obj, '@id')) {
28
- return nodeType(kb, obj);
28
+ return kb.rdfFactory.namedNode(obj['@id']);
29
29
  }
30
30
  if (Object.prototype.hasOwnProperty.call(obj, '@language')) {
31
31
  return kb.rdfFactory.literal(obj['@value'], obj['@language']);
@@ -43,7 +43,7 @@ function jsonldObjectToTerm(kb, obj) {
43
43
  * Adds the statements in a json-ld list object to {kb}.
44
44
  */
45
45
  function listToStatements(kb, obj) {
46
- const listId = obj['@id'] ? nodeType(kb, obj) : kb.rdfFactory.blankNode();
46
+ const listId = obj['@id'] ? kb.rdfFactory.namedNode(obj['@id']) : kb.rdfFactory.blankNode();
47
47
  const items = obj['@list'].map(listItem => jsonldObjectToTerm(kb, listItem));
48
48
  const statements = (0, _utils.arrayToStatements)(kb.rdfFactory, listId, items);
49
49
  kb.addAll(statements);
@@ -70,17 +70,8 @@ function jsonldParser(str, kb, base, callback) {
70
70
  return kb;
71
71
  }, kb)).then(callback).catch(callback);
72
72
  }
73
- function nodeType(kb, obj) {
74
- if (obj['@id'].startsWith('_:')) {
75
- // This object is a Blank Node. Pass the id without the `_:` prefix
76
- return kb.rdfFactory.blankNode(obj['@id'].substring(2));
77
- } else {
78
- // This object is a Named Node
79
- return kb.rdfFactory.namedNode(obj['@id']);
80
- }
81
- }
82
73
  function processResource(kb, base, flatResource) {
83
- const id = flatResource['@id'] ? nodeType(kb, flatResource) : kb.rdfFactory.blankNode();
74
+ const id = flatResource['@id'] ? kb.rdfFactory.namedNode(flatResource['@id']) : kb.rdfFactory.blankNode();
84
75
  for (const property of Object.keys(flatResource)) {
85
76
  if (property === '@id') {
86
77
  continue;
@@ -23,4 +23,4 @@ contentType?: string | ContentType, callback?: (err: Error | undefined | null, r
23
23
  * A set of [prefix, uri] pairs that define namespace prefixes
24
24
  */
25
25
  namespaces?: Record<string, string>;
26
- }): string | undefined | Promise<string>;
26
+ }): string | undefined;
package/lib/serialize.js CHANGED
@@ -5,8 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = serialize;
8
+ var convert = _interopRequireWildcard(require("./convert"));
8
9
  var _serializer = _interopRequireDefault(require("./serializer"));
9
10
  var _types = require("./types");
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
13
  /**
11
14
  * Serialize to the appropriate format
12
15
  */
@@ -26,6 +29,7 @@ contentType, callback, options) {
26
29
  var sz = (0, _serializer.default)(kb);
27
30
  if (opts.flags) sz.setFlags(opts.flags);
28
31
  var newSts = kb.statementsMatching(undefined, undefined, undefined, target);
32
+ var n3String;
29
33
 
30
34
  // If an IndexedFormula, use the namespaces from the given graph as suggestions
31
35
  if ('namespaces' in kb) {
@@ -55,15 +59,20 @@ contentType, callback, options) {
55
59
  documentString = sz.statementsToNTriples(newSts);
56
60
  return executeCallback(null, documentString);
57
61
  case _types.JSONLDContentType:
58
- sz.setFlags('si'); // use turtle parameters
59
- documentString = sz.statementsToJsonld(newSts); // convert via turtle
60
- return executeCallback(null, documentString);
62
+ sz.setFlags('deinprstux'); // Use adapters to connect to incmpatible parser
63
+ n3String = sz.statementsToNTriples(newSts);
64
+ // n3String = sz.statementsToN3(newSts)
65
+ convert.convertToJson(n3String, callback);
66
+ break;
61
67
  case _types.NQuadsContentType:
62
68
  case _types.NQuadsAltContentType:
63
69
  // @@@ just outpout the quads? Does not work for collections
64
70
  sz.setFlags('deinprstux q'); // Suppress nice parts of N3 to make ntriples
65
71
  documentString = sz.statementsToNTriples(newSts); // q in flag means actually quads
66
72
  return executeCallback(null, documentString);
73
+ // n3String = sz.statementsToN3(newSts)
74
+ // documentString = convert.convertToNQuads(n3String, callback)
75
+ // break
67
76
  default:
68
77
  throw new Error('Serialize: Content-type ' + contentType + ' not supported for data write.');
69
78
  }
@@ -63,6 +63,5 @@ export class Serializer {
63
63
  symbolToN3(x: any): any;
64
64
  writeStore(write: any): void;
65
65
  statementsToXML(sts: any): string;
66
- statementsToJsonld(sts: any): string;
67
66
  }
68
67
  import NamedNode from "./named-node";
package/lib/serializer.js CHANGED
@@ -14,7 +14,6 @@ var Util = _interopRequireWildcard(require("./utils-js"));
14
14
  var _canonicalDataFactory = _interopRequireDefault(require("./factories/canonical-data-factory"));
15
15
  var _xsd = require("./xsd");
16
16
  var _solidNamespace = _interopRequireDefault(require("solid-namespace"));
17
- var ttl2jsonld = _interopRequireWildcard(require("@frogcat/ttl2jsonld"));
18
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
19
  /* Serialization of RDF Graphs
@@ -25,8 +24,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
25
24
  ** Licence: MIT
26
25
  */
27
26
 
28
- // import * as jsonld from 'jsonld'
29
-
30
27
  function createSerializer(store) {
31
28
  return new Serializer(store);
32
29
  }
@@ -976,27 +973,6 @@ class Serializer {
976
973
  var tree2 = [str, tree, '</rdf:RDF>']; // @@ namespace declrations
977
974
  return XMLtreeToString(tree2, -1);
978
975
  } // End @@ body
979
-
980
- statementsToJsonld(sts) {
981
- // ttl2jsonld creates context keys for all ttl prefix
982
- // context keys must be full IRI
983
- function findId(itemObj) {
984
- if (itemObj['@id']) {
985
- const item = itemObj['@id'].split(':');
986
- if (keys[item[0]]) itemObj['@id'] = jsonldObj['@context'][item[0]] + item[1];
987
- }
988
- const itemValues = Object.values(itemObj);
989
- for (const i in itemValues) {
990
- if (typeof itemValues[i] !== 'string') {
991
- // @list contains array
992
- findId(itemValues[i]);
993
- }
994
- }
995
- }
996
- const turtleDoc = this.statementsToN3(sts);
997
- const jsonldObj = ttl2jsonld.parse(turtleDoc);
998
- return JSON.stringify(jsonldObj, null, 2);
999
- }
1000
976
  }
1001
977
 
1002
978
  // String escaping utilities
package/lib/store.d.ts CHANGED
@@ -299,5 +299,5 @@ export default class IndexedFormula extends Formula {
299
299
  * @param term
300
300
  */
301
301
  uris(term: Quad_Subject): string[];
302
- serialize(base: any, contentType: any, provenance: any, options?: any): string | Promise<string> | undefined;
302
+ serialize(base: any, contentType: any, provenance: any, options?: any): string | undefined;
303
303
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rdflib",
3
3
  "description": "an RDF library for node.js. Suitable for client and server side.",
4
- "version": "2.2.22-2cea0982",
4
+ "version": "2.2.22-2f49e8ef",
5
5
  "private": false,
6
6
  "browserslist": [
7
7
  "> 0.5%"
@@ -45,8 +45,8 @@
45
45
  "bugs": "http://github.com/linkeddata/rdflib.js/issues",
46
46
  "dependencies": {
47
47
  "@babel/runtime": "^7.20.1",
48
- "@frogcat/ttl2jsonld": "^0.0.9",
49
48
  "@xmldom/xmldom": "^0.8.6",
49
+ "async": "^3.2.4",
50
50
  "cross-fetch": "^3.1.5",
51
51
  "jsonld": "^8.1.0",
52
52
  "n3": "^1.16.3",
@@ -85,22 +85,21 @@
85
85
  "typescript": "^4.9.3",
86
86
  "webpack": "^5.75.0",
87
87
  "webpack-cli": "^5.0.0",
88
- "webpack-dev-server": "^4.11.1"
88
+ "webpack-dev-server": "4.11"
89
89
  },
90
90
  "scripts": {
91
91
  "build": "babel src --extensions \".ts,.js\" -d lib",
92
92
  "build:esm": "babel src --extensions \".ts,.js\" --env-name esm -d esm",
93
93
  "build:browser": "webpack --progress",
94
94
  "build:types": "tsc --emitDeclarationOnly -d --moduleResolution node --declarationDir lib",
95
- "build:all": "npm run build && npm run build:types && npm run build:browser && npm run build:esm ",
96
95
  "doc": "typedoc --out ./doc ./src/index.ts --excludePrivate --excludeInternal --tsconfig ./tsconfig.json",
97
- "ignore:prepublishOnly": "npm ci && npm run build:all && npm run doc && npm run test",
96
+ "ignore:prepublishOnly": "npm ci && npm run build && npm run build:types && npm run build:browser && npm run build:esm",
98
97
  "postversion": "git push --follow-tags",
99
98
  "start": "webpack serve --port 4800",
100
99
  "test": "npm run test:unit && npm run test:serialize && npm run test:types",
101
100
  "test:clean": "rimraf tests/serialize/,*",
102
101
  "test:serialize": "npm run build && npm run test:serialize:all && npm run test:clean",
103
- "test:serialize:all": "npm run test:serialize:1 && npm run test:serialize:2 && npm run test:serialize:3 && npm run test:serialize:4 && npm run test:serialize:5 && npm run test:serialize:6 && npm run test:serialize:7 && npm run test:serialize:8 && npm run test:serialize:10 && npm run test:serialize:11 && npm run test:serialize:12 && npm run test:serialize:13 && npm run test:serialize:14 && npm run test:serialize:15",
102
+ "test:serialize:all": "npm run test:serialize:1 && npm run test:serialize:2 && npm run test:serialize:3 && npm run test:serialize:4 && npm run test:serialize:5 && npm run test:serialize:6 && npm run test:serialize:7 && npm run test:serialize:10 && npm run test:serialize:11 && npm run test:serialize:12 && npm run test:serialize:13 && npm run test:serialize:14 && npm run test:serialize:15",
104
103
  "test:serialize:1": "cd ./tests/serialize && node ./data.js -in=t1.ttl -format=application/rdf+xml -out=,t1.xml && fs-grep http://www.w3.org/2001/XMLSchema#integer ,t1.xml",
105
104
  "test:serialize:2": "cd ./tests/serialize && node ./data.js -in=t2.ttl -format=application/rdf+xml -out=,t2.xml && node diff ,t2.xml t2-ref.xml",
106
105
  "test:serialize:3": "cd ./tests/serialize && node ./data.js -in=t3.ttl -format=application/rdf+xml -out=,t3.xml && node diff ,t3.xml t3-ref.xml",
@@ -108,14 +107,14 @@
108
107
  "test:serialize:5": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=text/turtle -out=,t5.ttl && node diff ,t5.ttl t5-ref.ttl",
109
108
  "test:serialize:6": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=text/n3 -out=,t6.n3 && node diff ,t6.n3 t6-ref.n3",
110
109
  "test:serialize:7": "cd ./tests/serialize && node ./data.js -in=t7.n3 -format=application/n-triples -out=,t7.nt && node diff ,t7.nt t7-ref.nt",
111
- "test:serialize:8": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=application/n-quads -out=,t8.nq && node diff ,t8.nq t8-ref.nq",
110
+ "test:serialize:8": "cd ./tests/serialize && node ./data.js -in=t5.n3 -format=application/n-quads -dump=,t8.nq && node diff ,t8.nq t8-ref.nq",
111
+ "test:serialize:9": "cd ./tests/serialize && node ./data.js -in=t7.n3 -format=application/ld+json -out=,t9.json && node diff ,t9.json t9-ref.json",
112
112
  "test:serialize:10": "cd ./tests/serialize && node ./data.js -in=details.ttl -format=text/turtle -out=,t10.ttl && node diff ,t10.ttl t10-ref.ttl",
113
113
  "test:serialize:11": "cd ./tests/serialize && node ./data.js -in=structures.n3 -format=application/rdf+xml -out=,structures.xml && node diff ,structures.xml t11-ref.xml",
114
114
  "test:serialize:12": "cd ./tests/serialize && node ./data.js -in=structures.n3 -format=text/turtle -out=,structures.ttl && node diff ,structures.ttl t12-ref.ttl",
115
115
  "test:serialize:13": "cd ./tests/serialize && node ./data.js -in=structures.n3 -format=application/n-triples -out=,structures.nt && node ./data.js -format=application/n-triples -in=,structures.nt -format=text/turtle -out=,structures.nt.ttl && node diff ,structures.nt.ttl t13-ref.ttl",
116
116
  "test:serialize:14": "cd ./tests/serialize && node ./data.js -in=t14.html -format=text/turtle -out=,t14.ttl && node diff ,t14.ttl t14-ref.ttl",
117
117
  "test:serialize:15": "cd ./tests/serialize && node ./data.js -in=t15.html -format=text/turtle -out=,t15.ttl && node diff ,t15.ttl t15-ref.ttl",
118
- "test:serialize:16": "cd ./tests/serialize && node ./data.js -in=t1.ttl -format=application/ld+json -out=,t1.jsonld && node diff ,t1.jsonld t16-ref.jsonld",
119
118
  "test:types": "tsc --noEmit --target es2019 --moduleResolution node tests/types/*.ts",
120
119
  "test:unit": "mocha --growl --require ./tests/babel-register.js tests/unit/**-test.*",
121
120
  "test:unit:egp": "mocha --require ./tests/babel-register.js tests/unit/fetcher-egp-test.js",
package/src/convert.js ADDED
@@ -0,0 +1,70 @@
1
+ import asyncLib from 'async' // @@ Goal: remove this dependency
2
+ import jsonld from 'jsonld'
3
+ import { Parser, Writer } from 'n3' // @@ Goal: remove this dependency
4
+
5
+ export function convertToJson (n3String, jsonCallback) {
6
+ var jsonString
7
+ var n3Parser = new Parser()
8
+ var n3Writer = new Writer({
9
+ format: 'N-Quads'
10
+ })
11
+ asyncLib.waterfall([
12
+ function (callback) {
13
+ n3Parser.parse(n3String, function (error, quad, prefixes) {
14
+ if (error) {
15
+ callback(error);
16
+ } else if (quad !== null) {
17
+ n3Writer.addQuad(quad);
18
+ } else {
19
+ n3Writer.end(callback);
20
+ }
21
+ });
22
+ },
23
+ function (result, callback) {
24
+ try {
25
+ jsonld.fromRDF(result, {
26
+ format: 'application/nquads'
27
+ }).then((result) => {
28
+ callback(null, result)
29
+ })
30
+ } catch (err) {
31
+ callback(err)
32
+ }
33
+ },
34
+ function (json, callback) {
35
+ jsonString = JSON.stringify(json)
36
+ jsonCallback(null, jsonString)
37
+ }
38
+ ], function (err, result) {
39
+ jsonCallback(err, jsonString)
40
+ }
41
+ )
42
+ }
43
+
44
+ export function convertToNQuads (n3String, nquadCallback) {
45
+ var nquadString
46
+ var n3Parser = new Parser()
47
+ var n3Writer = new Writer({
48
+ format: 'N-Quads'
49
+ })
50
+ asyncLib.waterfall([
51
+ function (callback) {
52
+ n3Parser.parse(n3String, function (error, triple, prefixes) {
53
+ if (error) {
54
+ callback(error);
55
+ } else if (quad !== null) {
56
+ n3Writer.addQuad(quad);
57
+ } else {
58
+ n3Writer.end(callback);
59
+ }
60
+ });
61
+ },
62
+ function (result, callback) {
63
+ nquadString = result
64
+ nquadCallback(null, nquadString)
65
+ }
66
+ ], function (err, result) {
67
+ nquadCallback(err, nquadString)
68
+ }
69
+ )
70
+ }
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ import { IRDFlibDataFactory } from './types'
2
2
 
3
3
  import BlankNode from './blank-node'
4
4
  import Collection from './collection'
5
+ import * as convert from './convert'
5
6
  import Empty from './empty'
6
7
  import Fetcher from './fetcher'
7
8
  import Formula from './formula'
@@ -65,6 +66,7 @@ export type { AutoInitOptions, ExtendedResponse, FetchError } from './fetcher'
65
66
  export {
66
67
  BlankNode,
67
68
  Collection,
69
+ convert,
68
70
  DataFactory,
69
71
  Empty,
70
72
  Fetcher,