diff --git a/index.cjs b/index.cjs index 80dc81e..eb95f1a 100644 --- a/index.cjs +++ b/index.cjs @@ -366,7 +366,7 @@ function groupNquadsBySubject(nquadsArray, sort = false) { const grouped = {}; parser.parse(nquadsArray.join("")).forEach((quad) => { - const { subject, predicate, object } = quad; + const { subject } = quad; let subjectKey; if (subject.termType === "Quad") { @@ -374,8 +374,8 @@ function groupNquadsBySubject(nquadsArray, sort = false) { const nestedPredicate = subject.predicate.value; const nestedObject = subject.object.termType === "Literal" - ? `"${escapeLiteral(subject.object.value)}"` - : `<${escapeLiteral(subject.object.value)}>`; + ? `"${subject.object.value}"` + : `<${subject.object.value}>`; subjectKey = `<<<${nestedSubject}> <${nestedPredicate}> ${nestedObject}>>`; } else { subjectKey = `<${subject.value}>`; @@ -385,12 +385,14 @@ function groupNquadsBySubject(nquadsArray, sort = false) { grouped[subjectKey] = []; } - const objectValue = - object.termType === "Literal" - ? `"${escapeLiteral(object.value)}"` - : `<${escapeLiteral(object.value)}>`; + const writer = new N3.Writer({ format: "N-Quads" }); + let quadString = ""; + writer.addQuad(quad); + writer.end((error, result) => { + if (error) throw error; + quadString = result.trim(); + }); - const quadString = `${subjectKey} <${predicate.value}> ${objectValue} .`; grouped[subjectKey].push(quadString); }); @@ -534,20 +536,6 @@ function isEmptyObject(obj) { return Object.keys(obj).length === 0 && obj.constructor === Object; } -function escapeLiteral(value) { - const ESCAPE_MAP = { - '"': '\\"', - "\\": "\\\\", - "\b": "\\b", - "\f": "\\f", - "\n": "\\n", - "\r": "\\r", - "\t": "\\t", - }; - - return value.replace(/["\\\b\f\n\r\t]/g, (char) => ESCAPE_MAP[char]); -} - var knowledgeCollectionTools = /*#__PURE__*/Object.freeze({ __proto__: null, calculateByteSize: calculateByteSize, diff --git a/package-lock.json b/package-lock.json index f8d68fe..72c7089 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "assertion-tools", - "version": "8.0.5", + "version": "8.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "assertion-tools", - "version": "8.0.5", + "version": "8.0.6", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 54189fd..f74c1e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "assertion-tools", - "version": "8.0.5", + "version": "8.0.6", "description": "Common assertion tools used in ot-node and dkg.js", "main": "index.js", "type": "module",