in packages/graph-explorer/src/modules/GraphViewer/exportedGraph.ts [124:159]
function isValidRdfEdgeIdIfSparql(queryEngine: QueryEngine) {
return (value: string | number) => {
if (queryEngine !== "sparql") {
return true;
}
if (typeof value !== "string") {
logger.warn("Skipping edge ID because it is not a string", value);
return false;
}
// Try to parse the edge ID
const parsed = parseRdfEdgeIdString(value);
// Ensure we can parse the edge ID
if (!parsed) {
logger.warn("Skipping edge ID because parsing failed", value);
return false;
}
// Ensure the edge ID is not malicious
if (
parsed.source.includes(">") ||
parsed.target.includes(">") ||
parsed.predicate.includes(">")
) {
logger.warn("Skipping edge ID because it includes angle brackets", {
original: value,
parsed,
});
return false;
}
return true;
};
}