function isValidRdfEdgeIdIfSparql()

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;
  };
}