learngraph 0.1.0 → 0.2.0
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/LICENSE +190 -21
- package/README.md +187 -5
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/parsers/base.js +189 -0
- package/dist/cjs/parsers/base.js.map +1 -0
- package/dist/cjs/parsers/demo.js +159 -0
- package/dist/cjs/parsers/demo.js.map +1 -0
- package/dist/cjs/parsers/extractor.js +191 -0
- package/dist/cjs/parsers/extractor.js.map +1 -0
- package/dist/cjs/parsers/index.js +43 -4
- package/dist/cjs/parsers/index.js.map +1 -1
- package/dist/cjs/parsers/json.js +157 -0
- package/dist/cjs/parsers/json.js.map +1 -0
- package/dist/cjs/parsers/markdown.js +168 -0
- package/dist/cjs/parsers/markdown.js.map +1 -0
- package/dist/cjs/parsers/samples.js +139 -0
- package/dist/cjs/parsers/samples.js.map +1 -0
- package/dist/cjs/storage/base.js +231 -0
- package/dist/cjs/storage/base.js.map +1 -0
- package/dist/cjs/storage/errors.js +128 -0
- package/dist/cjs/storage/errors.js.map +1 -0
- package/dist/cjs/storage/index.js +92 -5
- package/dist/cjs/storage/index.js.map +1 -1
- package/dist/cjs/storage/levelgraph.js +855 -0
- package/dist/cjs/storage/levelgraph.js.map +1 -0
- package/dist/cjs/storage/memory.js +447 -0
- package/dist/cjs/storage/memory.js.map +1 -0
- package/dist/cjs/storage/neo4j.js +866 -0
- package/dist/cjs/storage/neo4j.js.map +1 -0
- package/dist/cjs/storage/seeds.js +565 -0
- package/dist/cjs/storage/seeds.js.map +1 -0
- package/dist/cjs/types/parser.js +8 -0
- package/dist/cjs/types/parser.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/parsers/base.js +179 -0
- package/dist/esm/parsers/base.js.map +1 -0
- package/dist/esm/parsers/demo.js +154 -0
- package/dist/esm/parsers/demo.js.map +1 -0
- package/dist/esm/parsers/extractor.js +187 -0
- package/dist/esm/parsers/extractor.js.map +1 -0
- package/dist/esm/parsers/index.js +24 -5
- package/dist/esm/parsers/index.js.map +1 -1
- package/dist/esm/parsers/json.js +153 -0
- package/dist/esm/parsers/json.js.map +1 -0
- package/dist/esm/parsers/markdown.js +164 -0
- package/dist/esm/parsers/markdown.js.map +1 -0
- package/dist/esm/parsers/samples.js +136 -0
- package/dist/esm/parsers/samples.js.map +1 -0
- package/dist/esm/storage/base.js +221 -0
- package/dist/esm/storage/base.js.map +1 -0
- package/dist/esm/storage/errors.js +116 -0
- package/dist/esm/storage/errors.js.map +1 -0
- package/dist/esm/storage/index.js +71 -6
- package/dist/esm/storage/index.js.map +1 -1
- package/dist/esm/storage/levelgraph.js +818 -0
- package/dist/esm/storage/levelgraph.js.map +1 -0
- package/dist/esm/storage/memory.js +443 -0
- package/dist/esm/storage/memory.js.map +1 -0
- package/dist/esm/storage/neo4j.js +829 -0
- package/dist/esm/storage/neo4j.js.map +1 -0
- package/dist/esm/storage/seeds.js +561 -0
- package/dist/esm/storage/seeds.js.map +1 -0
- package/dist/esm/types/parser.js +7 -0
- package/dist/esm/types/parser.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/parsers/base.d.ts +39 -0
- package/dist/types/parsers/base.d.ts.map +1 -0
- package/dist/types/parsers/demo.d.ts +87 -0
- package/dist/types/parsers/demo.d.ts.map +1 -0
- package/dist/types/parsers/extractor.d.ts +43 -0
- package/dist/types/parsers/extractor.d.ts.map +1 -0
- package/dist/types/parsers/index.d.ts +10 -0
- package/dist/types/parsers/index.d.ts.map +1 -1
- package/dist/types/parsers/json.d.ts +71 -0
- package/dist/types/parsers/json.d.ts.map +1 -0
- package/dist/types/parsers/markdown.d.ts +43 -0
- package/dist/types/parsers/markdown.d.ts.map +1 -0
- package/dist/types/parsers/samples.d.ts +27 -0
- package/dist/types/parsers/samples.d.ts.map +1 -0
- package/dist/types/storage/base.d.ts +39 -0
- package/dist/types/storage/base.d.ts.map +1 -0
- package/dist/types/storage/errors.d.ts +74 -0
- package/dist/types/storage/errors.d.ts.map +1 -0
- package/dist/types/storage/index.d.ts +50 -2
- package/dist/types/storage/index.d.ts.map +1 -1
- package/dist/types/storage/levelgraph.d.ts +92 -0
- package/dist/types/storage/levelgraph.d.ts.map +1 -0
- package/dist/types/storage/memory.d.ts +70 -0
- package/dist/types/storage/memory.d.ts.map +1 -0
- package/dist/types/storage/neo4j.d.ts +88 -0
- package/dist/types/storage/neo4j.d.ts.map +1 -0
- package/dist/types/storage/seeds.d.ts +27 -0
- package/dist/types/storage/seeds.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/parser.d.ts +208 -0
- package/dist/types/types/parser.d.ts.map +1 -0
- package/package.json +33 -6
- package/scripts/postinstall.js +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/storage/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,99 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Graph storage adapters
|
|
3
|
+
* Graph storage adapters for LearnGraph
|
|
4
|
+
*
|
|
5
|
+
* Provides a unified interface for storing skill graphs with multiple
|
|
6
|
+
* backend options:
|
|
7
|
+
* - **MemoryStorage**: In-memory storage for testing
|
|
8
|
+
* - **LevelGraphStorage**: Browser/local storage using triples
|
|
9
|
+
* - **Neo4jStorage**: Production graph database
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { MemoryStorage, Neo4jStorage, LevelGraphStorage } from 'learngraph/storage';
|
|
14
|
+
*
|
|
15
|
+
* // For testing
|
|
16
|
+
* const testStorage = new MemoryStorage();
|
|
17
|
+
* await testStorage.connect({ backend: 'memory' });
|
|
18
|
+
*
|
|
19
|
+
* // For browser/local development
|
|
20
|
+
* const localStorage = new LevelGraphStorage();
|
|
21
|
+
* await localStorage.connect({ backend: 'levelgraph', path: './my-graph' });
|
|
22
|
+
*
|
|
23
|
+
* // For production
|
|
24
|
+
* const prodStorage = new Neo4jStorage();
|
|
25
|
+
* await prodStorage.connect({
|
|
26
|
+
* backend: 'neo4j',
|
|
27
|
+
* uri: 'bolt://localhost:7687',
|
|
28
|
+
* username: 'neo4j',
|
|
29
|
+
* password: 'password',
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* // Same API for all!
|
|
33
|
+
* const skill = await storage.createSkill({ ... });
|
|
34
|
+
* const prereqs = await storage.getPrerequisitesOf(skill.id);
|
|
35
|
+
* ```
|
|
4
36
|
*
|
|
5
37
|
* @packageDocumentation
|
|
6
38
|
*/
|
|
7
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
//
|
|
40
|
+
exports.Neo4jStorage = exports.LevelGraphStorage = exports.MemoryStorage = exports.calculateStats = exports.validateEdgeInput = exports.validateSkillInput = exports.inputToEdge = exports.inputToSkillNode = exports.nowISO = exports.generateId = exports.CycleDetectedError = exports.TimeoutError = exports.ValidationError = exports.ReferenceError = exports.DuplicateError = exports.NotFoundError = exports.NotConnectedError = exports.ConnectionError = exports.StorageError = void 0;
|
|
41
|
+
exports.createStorage = createStorage;
|
|
42
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
43
|
+
// Storage Errors
|
|
44
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
45
|
+
var errors_js_1 = require("./errors.js");
|
|
46
|
+
Object.defineProperty(exports, "StorageError", { enumerable: true, get: function () { return errors_js_1.StorageError; } });
|
|
47
|
+
Object.defineProperty(exports, "ConnectionError", { enumerable: true, get: function () { return errors_js_1.ConnectionError; } });
|
|
48
|
+
Object.defineProperty(exports, "NotConnectedError", { enumerable: true, get: function () { return errors_js_1.NotConnectedError; } });
|
|
49
|
+
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return errors_js_1.NotFoundError; } });
|
|
50
|
+
Object.defineProperty(exports, "DuplicateError", { enumerable: true, get: function () { return errors_js_1.DuplicateError; } });
|
|
51
|
+
Object.defineProperty(exports, "ReferenceError", { enumerable: true, get: function () { return errors_js_1.ReferenceError; } });
|
|
52
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_js_1.ValidationError; } });
|
|
53
|
+
Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return errors_js_1.TimeoutError; } });
|
|
54
|
+
Object.defineProperty(exports, "CycleDetectedError", { enumerable: true, get: function () { return errors_js_1.CycleDetectedError; } });
|
|
55
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
56
|
+
// Base Utilities
|
|
57
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
58
|
+
var base_js_1 = require("./base.js");
|
|
59
|
+
Object.defineProperty(exports, "generateId", { enumerable: true, get: function () { return base_js_1.generateId; } });
|
|
60
|
+
Object.defineProperty(exports, "nowISO", { enumerable: true, get: function () { return base_js_1.nowISO; } });
|
|
61
|
+
Object.defineProperty(exports, "inputToSkillNode", { enumerable: true, get: function () { return base_js_1.inputToSkillNode; } });
|
|
62
|
+
Object.defineProperty(exports, "inputToEdge", { enumerable: true, get: function () { return base_js_1.inputToEdge; } });
|
|
63
|
+
Object.defineProperty(exports, "validateSkillInput", { enumerable: true, get: function () { return base_js_1.validateSkillInput; } });
|
|
64
|
+
Object.defineProperty(exports, "validateEdgeInput", { enumerable: true, get: function () { return base_js_1.validateEdgeInput; } });
|
|
65
|
+
Object.defineProperty(exports, "calculateStats", { enumerable: true, get: function () { return base_js_1.calculateStats; } });
|
|
66
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
67
|
+
// Storage Adapters
|
|
68
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
69
|
+
var memory_js_1 = require("./memory.js");
|
|
70
|
+
Object.defineProperty(exports, "MemoryStorage", { enumerable: true, get: function () { return memory_js_1.MemoryStorage; } });
|
|
71
|
+
var levelgraph_js_1 = require("./levelgraph.js");
|
|
72
|
+
Object.defineProperty(exports, "LevelGraphStorage", { enumerable: true, get: function () { return levelgraph_js_1.LevelGraphStorage; } });
|
|
73
|
+
var neo4j_js_1 = require("./neo4j.js");
|
|
74
|
+
Object.defineProperty(exports, "Neo4jStorage", { enumerable: true, get: function () { return neo4j_js_1.Neo4jStorage; } });
|
|
75
|
+
const memory_js_2 = require("./memory.js");
|
|
76
|
+
const levelgraph_js_2 = require("./levelgraph.js");
|
|
77
|
+
const neo4j_js_2 = require("./neo4j.js");
|
|
78
|
+
/**
|
|
79
|
+
* Create a storage adapter based on configuration.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const storage = createStorage({ backend: 'memory' });
|
|
84
|
+
* await storage.connect({ backend: 'memory' });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
function createStorage(config) {
|
|
88
|
+
switch (config.backend) {
|
|
89
|
+
case 'memory':
|
|
90
|
+
return new memory_js_2.MemoryStorage();
|
|
91
|
+
case 'levelgraph':
|
|
92
|
+
return new levelgraph_js_2.LevelGraphStorage();
|
|
93
|
+
case 'neo4j':
|
|
94
|
+
return new neo4j_js_2.Neo4jStorage();
|
|
95
|
+
default:
|
|
96
|
+
throw new Error(`Unknown storage backend: ${config.backend}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
12
99
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;;;AAsEH,sCAWC;AA/DD,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAChF,yCAUqB;AATnB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AACf,yGAAA,YAAY,OAAA;AACZ,+GAAA,kBAAkB,OAAA;AAGpB,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAChF,qCAQmB;AAPjB,qGAAA,UAAU,OAAA;AACV,iGAAA,MAAM,OAAA;AACN,2GAAA,gBAAgB,OAAA;AAChB,sGAAA,WAAW,OAAA;AACX,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,yGAAA,cAAc,OAAA;AAGhB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,iDAAoD;AAA3C,kHAAA,iBAAiB,OAAA;AAC1B,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AAMrB,2CAA4C;AAC5C,mDAAoD;AACpD,yCAA0C;AAE1C;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,MAAqB;IACjD,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,IAAI,yBAAa,EAAE,CAAC;QAC7B,KAAK,YAAY;YACf,OAAO,IAAI,iCAAiB,EAAE,CAAC;QACjC,KAAK,OAAO;YACV,OAAO,IAAI,uBAAY,EAAE,CAAC;QAC5B;YACE,MAAM,IAAI,KAAK,CAAC,4BAA6B,MAAwB,CAAC,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|