🚀. Socket Launch Week Day 3:Socket Firewall Now Blocks Malicious VS Code and Open VSX Extensions.Learn more
Sign In

@dewtech/dare-graphrag

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dewtech/dare-graphrag - npm Package Compare versions

Comparing version
0.1.0
to
0.2.0
+2
dist/__tests__/graph-rag.test.d.ts
export {};
//# sourceMappingURL=graph-rag.test.d.ts.map
{"version":3,"file":"graph-rag.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/graph-rag.test.ts"],"names":[],"mappings":""}
import { describe, it, expect, beforeEach } from 'vitest';
import { GraphRAG } from '../graph-rag.js';
describe('GraphRAG', () => {
let graph;
beforeEach(async () => {
// Use in-memory DB for tests
graph = new GraphRAG(':memory:');
await graph.init();
});
it('should add and retrieve a node', async () => {
await graph.addNode({
id: 'test-node-1',
type: 'task',
label: 'Test Task',
description: 'A test task',
metadata: { status: 'PENDING' }
});
const node = await graph.getNode('test-node-1');
expect(node).toBeDefined();
expect(node?.id).toBe('test-node-1');
expect(node?.label).toBe('Test Task');
});
it('should add and retrieve an edge', async () => {
await graph.addNode({ id: 'node-1', type: 'task', label: 'Node 1' });
await graph.addNode({ id: 'node-2', type: 'task', label: 'Node 2' });
await graph.addEdge({
id: 'edge-1',
sourceId: 'node-1',
targetId: 'node-2',
type: 'depends_on'
});
const edges = await graph.getEdges('node-1');
expect(edges.length).toBe(1);
expect(edges[0].targetId).toBe('node-2');
});
it('should search nodes', async () => {
await graph.addNode({ id: 'search-1', type: 'task', label: 'Find this label' });
await graph.addNode({ id: 'search-2', type: 'file', label: 'Ignore this one' });
const results = await graph.searchNodes('Find this');
expect(results.length).toBeGreaterThan(0);
expect(results[0].node.id).toBe('search-1');
});
});
//# sourceMappingURL=graph-rag.test.js.map
{"version":3,"file":"graph-rag.test.js","sourceRoot":"","sources":["../../src/__tests__/graph-rag.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,KAAe,CAAC;IAEpB,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,6BAA6B;QAC7B,KAAK,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,KAAK,CAAC,OAAO,CAAC;YAClB,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAChC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAErE,MAAM,KAAK,CAAC,OAAO,CAAC;YAClB,EAAE,EAAE,QAAQ;YACZ,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAChF,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEhF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
+4
-3
{
"name": "@dewtech/dare-graphrag",
"version": "0.1.0",
"version": "0.2.0",
"description": "DARE Framework GraphRAG - Knowledge graph with SQLite persistence and FTS5 search",

@@ -20,3 +20,4 @@ "type": "module",

"fs-extra": "^11.1.1",
"sql.js": "^1.11.0"
"sql.js": "^1.11.0",
"@dewtech/dare-core": "0.2.0"
},

@@ -55,3 +56,3 @@ "devDependencies": {

"dev": "tsx watch src/index.ts",
"test": "vitest",
"test": "vitest run",
"lint": "eslint src --ext .ts",

@@ -58,0 +59,0 @@ "format": "prettier --write src"

# @dewtech/dare-graphrag
Knowledge graph engine for DARE Framework with SQLite persistence and FTS5 semantic search.
Knowledge graph engine for DARE Framework with SQLite persistence (via sql.js) and semantic search.
## Features
- **SQLite persistence** with WAL mode for performance
- **SQLite persistence** via pure JavaScript (sql.js) without native compilation
- **7 node types**: task, file, schema, endpoint, component, entity, concept
- **7 edge types**: depends_on, implements, uses, references, related_to, contains, extends
- **FTS5 full-text search** for semantic queries
- **LIKE-based full-text search** for semantic queries
- **Graph traversal** for dependency analysis

@@ -26,2 +26,3 @@ - **Import/export** to JSON format

const graph = new GraphRAG('.dare/graph.db');
await graph.init();

@@ -97,5 +98,5 @@ // Add nodes

- WAL mode: concurrent reads while writing
- FTS5: full-text search in ~10ms
- sql.js: pure JavaScript, no C compiler required
- LIKE-based search for cross-platform compatibility
- Indexes: type/label queries in O(log n)
- Cache: 10k pages in memory