@0xsarwagya/ontoly-cache 0.1.0-alpha.1 → 0.1.0-alpha.13
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/README.md +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ pnpm add @0xsarwagya/ontoly-cache
|
|
|
12
12
|
|
|
13
13
|
## Status
|
|
14
14
|
|
|
15
|
-
Alpha package for Ontoly v0.1.0-alpha.
|
|
15
|
+
Alpha package for Ontoly v0.1.0-alpha.13. The public API is versioned with the Software Graph and RFC process.
|
|
16
16
|
|
|
17
17
|
## Links
|
|
18
18
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SoftwareGraph } from "@0xsarwagya/ontoly-core";
|
|
2
|
+
import { type SemanticIndex } from "@0xsarwagya/ontoly-core";
|
|
2
3
|
export interface GraphArtifactPaths {
|
|
3
4
|
readonly root: string;
|
|
4
5
|
readonly directory: string;
|
|
@@ -7,6 +8,7 @@ export interface GraphArtifactPaths {
|
|
|
7
8
|
readonly diagnostics: string;
|
|
8
9
|
readonly metadata: string;
|
|
9
10
|
readonly indexes: string;
|
|
11
|
+
readonly semanticIndex: string;
|
|
10
12
|
readonly statistics: string;
|
|
11
13
|
readonly cache: string;
|
|
12
14
|
}
|
|
@@ -17,6 +19,8 @@ export interface PersistGraphOptions {
|
|
|
17
19
|
export declare function getGraphArtifactPaths(options: PersistGraphOptions): GraphArtifactPaths;
|
|
18
20
|
export declare function persistGraph(graph: SoftwareGraph, options: PersistGraphOptions): Promise<GraphArtifactPaths>;
|
|
19
21
|
export declare function loadGraph(options: PersistGraphOptions): Promise<SoftwareGraph>;
|
|
22
|
+
export declare function loadSemanticIndex(options: PersistGraphOptions): Promise<SemanticIndex>;
|
|
23
|
+
export declare function loadOrCreateSemanticIndex(options: PersistGraphOptions): Promise<SemanticIndex>;
|
|
20
24
|
export declare function persistCompilerCache(options: PersistGraphOptions, cache: unknown): Promise<GraphArtifactPaths>;
|
|
21
25
|
export declare function loadCompilerCache<T>(options: PersistGraphOptions, fallback: T): Promise<T>;
|
|
22
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAgBtF;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAgB7B;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAIpF;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAI5F;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAapG;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,kBAAkB,CAAC,CAK7B;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAaZ"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
3
|
-
import { join } from "path";
|
|
3
|
+
import { isAbsolute, join } from "path";
|
|
4
|
+
import {
|
|
5
|
+
createSemanticIndex
|
|
6
|
+
} from "@0xsarwagya/ontoly-core";
|
|
4
7
|
function getGraphArtifactPaths(options) {
|
|
5
|
-
const
|
|
8
|
+
const outputDirectory = options.directory ?? ".ontoly";
|
|
9
|
+
const directory = isAbsolute(outputDirectory) ? outputDirectory : join(options.root, outputDirectory);
|
|
6
10
|
return {
|
|
7
11
|
root: options.root,
|
|
8
12
|
directory,
|
|
@@ -11,12 +15,14 @@ function getGraphArtifactPaths(options) {
|
|
|
11
15
|
diagnostics: join(directory, "diagnostics.json"),
|
|
12
16
|
metadata: join(directory, "metadata.json"),
|
|
13
17
|
indexes: join(directory, "indexes.json"),
|
|
18
|
+
semanticIndex: join(directory, "index.json"),
|
|
14
19
|
statistics: join(directory, "statistics.json"),
|
|
15
20
|
cache: join(directory, "cache.json")
|
|
16
21
|
};
|
|
17
22
|
}
|
|
18
23
|
async function persistGraph(graph, options) {
|
|
19
24
|
const paths = getGraphArtifactPaths(options);
|
|
25
|
+
const semanticIndex = createSemanticIndex(graph);
|
|
20
26
|
await mkdir(paths.directory, { recursive: true });
|
|
21
27
|
await Promise.all([
|
|
22
28
|
writeJson(paths.graph, graph),
|
|
@@ -24,6 +30,7 @@ async function persistGraph(graph, options) {
|
|
|
24
30
|
writeJson(paths.diagnostics, graph.diagnostics),
|
|
25
31
|
writeJson(paths.metadata, graph.metadata),
|
|
26
32
|
writeJson(paths.indexes, graph.indexes),
|
|
33
|
+
writeJson(paths.semanticIndex, semanticIndex),
|
|
27
34
|
writeJson(paths.statistics, createGraphStatistics(graph))
|
|
28
35
|
]);
|
|
29
36
|
return paths;
|
|
@@ -33,6 +40,25 @@ async function loadGraph(options) {
|
|
|
33
40
|
const contents = await readFirstExisting([paths.graph, paths.legacyGraph]);
|
|
34
41
|
return JSON.parse(contents);
|
|
35
42
|
}
|
|
43
|
+
async function loadSemanticIndex(options) {
|
|
44
|
+
const paths = getGraphArtifactPaths(options);
|
|
45
|
+
const contents = await readFile(paths.semanticIndex, "utf8");
|
|
46
|
+
return JSON.parse(contents);
|
|
47
|
+
}
|
|
48
|
+
async function loadOrCreateSemanticIndex(options) {
|
|
49
|
+
try {
|
|
50
|
+
return await loadSemanticIndex(options);
|
|
51
|
+
} catch (error) {
|
|
52
|
+
if (!isMissingFileError(error)) {
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
const graph = await loadGraph(options);
|
|
56
|
+
const semanticIndex = createSemanticIndex(graph);
|
|
57
|
+
await mkdir(getGraphArtifactPaths(options).directory, { recursive: true });
|
|
58
|
+
await writeJson(getGraphArtifactPaths(options).semanticIndex, semanticIndex);
|
|
59
|
+
return semanticIndex;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
36
62
|
async function persistCompilerCache(options, cache) {
|
|
37
63
|
const paths = getGraphArtifactPaths(options);
|
|
38
64
|
await mkdir(paths.directory, { recursive: true });
|
|
@@ -93,6 +119,8 @@ export {
|
|
|
93
119
|
getGraphArtifactPaths,
|
|
94
120
|
loadCompilerCache,
|
|
95
121
|
loadGraph,
|
|
122
|
+
loadOrCreateSemanticIndex,
|
|
123
|
+
loadSemanticIndex,
|
|
96
124
|
persistCompilerCache,
|
|
97
125
|
persistGraph
|
|
98
126
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { SoftwareGraph } from \"@0xsarwagya/ontoly-core\";\n\nexport interface GraphArtifactPaths {\n readonly root: string;\n readonly directory: string;\n readonly graph: string;\n readonly legacyGraph: string;\n readonly diagnostics: string;\n readonly metadata: string;\n readonly indexes: string;\n readonly statistics: string;\n readonly cache: string;\n}\n\nexport interface PersistGraphOptions {\n readonly root: string;\n readonly directory?: string | undefined;\n}\n\nexport function getGraphArtifactPaths(options: PersistGraphOptions): GraphArtifactPaths {\n const
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { isAbsolute, join } from \"node:path\";\nimport type { SoftwareGraph } from \"@0xsarwagya/ontoly-core\";\nimport {\n createSemanticIndex,\n type SemanticIndex,\n} from \"@0xsarwagya/ontoly-core\";\n\nexport interface GraphArtifactPaths {\n readonly root: string;\n readonly directory: string;\n readonly graph: string;\n readonly legacyGraph: string;\n readonly diagnostics: string;\n readonly metadata: string;\n readonly indexes: string;\n readonly semanticIndex: string;\n readonly statistics: string;\n readonly cache: string;\n}\n\nexport interface PersistGraphOptions {\n readonly root: string;\n readonly directory?: string | undefined;\n}\n\nexport function getGraphArtifactPaths(options: PersistGraphOptions): GraphArtifactPaths {\n const outputDirectory = options.directory ?? \".ontoly\";\n const directory = isAbsolute(outputDirectory) ? outputDirectory : join(options.root, outputDirectory);\n\n return {\n root: options.root,\n directory,\n graph: join(directory, \"SoftwareGraph.json\"),\n legacyGraph: join(directory, \"graph.json\"),\n diagnostics: join(directory, \"diagnostics.json\"),\n metadata: join(directory, \"metadata.json\"),\n indexes: join(directory, \"indexes.json\"),\n semanticIndex: join(directory, \"index.json\"),\n statistics: join(directory, \"statistics.json\"),\n cache: join(directory, \"cache.json\"),\n };\n}\n\nexport async function persistGraph(\n graph: SoftwareGraph,\n options: PersistGraphOptions,\n): Promise<GraphArtifactPaths> {\n const paths = getGraphArtifactPaths(options);\n const semanticIndex = createSemanticIndex(graph);\n await mkdir(paths.directory, { recursive: true });\n\n await Promise.all([\n writeJson(paths.graph, graph),\n writeJson(paths.legacyGraph, graph),\n writeJson(paths.diagnostics, graph.diagnostics),\n writeJson(paths.metadata, graph.metadata),\n writeJson(paths.indexes, graph.indexes),\n writeJson(paths.semanticIndex, semanticIndex),\n writeJson(paths.statistics, createGraphStatistics(graph)),\n ]);\n\n return paths;\n}\n\nexport async function loadGraph(options: PersistGraphOptions): Promise<SoftwareGraph> {\n const paths = getGraphArtifactPaths(options);\n const contents = await readFirstExisting([paths.graph, paths.legacyGraph]);\n return JSON.parse(contents) as SoftwareGraph;\n}\n\nexport async function loadSemanticIndex(options: PersistGraphOptions): Promise<SemanticIndex> {\n const paths = getGraphArtifactPaths(options);\n const contents = await readFile(paths.semanticIndex, \"utf8\");\n return JSON.parse(contents) as SemanticIndex;\n}\n\nexport async function loadOrCreateSemanticIndex(options: PersistGraphOptions): Promise<SemanticIndex> {\n try {\n return await loadSemanticIndex(options);\n } catch (error) {\n if (!isMissingFileError(error)) {\n throw error;\n }\n const graph = await loadGraph(options);\n const semanticIndex = createSemanticIndex(graph);\n await mkdir(getGraphArtifactPaths(options).directory, { recursive: true });\n await writeJson(getGraphArtifactPaths(options).semanticIndex, semanticIndex);\n return semanticIndex;\n }\n}\n\nexport async function persistCompilerCache(\n options: PersistGraphOptions,\n cache: unknown,\n): Promise<GraphArtifactPaths> {\n const paths = getGraphArtifactPaths(options);\n await mkdir(paths.directory, { recursive: true });\n await writeJson(paths.cache, cache);\n return paths;\n}\n\nexport async function loadCompilerCache<T>(\n options: PersistGraphOptions,\n fallback: T,\n): Promise<T> {\n const paths = getGraphArtifactPaths(options);\n\n try {\n const contents = await readFile(paths.cache, \"utf8\");\n return JSON.parse(contents) as T;\n } catch (error) {\n if (isMissingFileError(error)) {\n return fallback;\n }\n\n throw error;\n }\n}\n\nasync function writeJson(path: string, value: unknown): Promise<void> {\n await writeFile(path, `${JSON.stringify(value, null, 2)}\\n`, \"utf8\");\n}\n\nasync function readFirstExisting(paths: readonly string[]): Promise<string> {\n let lastError: unknown;\n\n for (const path of paths) {\n try {\n return await readFile(path, \"utf8\");\n } catch (error) {\n lastError = error;\n }\n }\n\n throw lastError;\n}\n\nfunction createGraphStatistics(graph: SoftwareGraph): Record<string, unknown> {\n return {\n files: graph.metadata.fileCount,\n nodes: graph.nodes.length,\n edges: graph.edges.length,\n diagnostics: graph.diagnostics.length,\n nodesByType: countBy(graph.nodes.map((node) => node.type)),\n edgesByType: countBy(graph.edges.map((edge) => edge.type)),\n parserVersions: graph.metadata.parserVersions,\n deterministicHash: graph.metadata.deterministicHash,\n };\n}\n\nfunction countBy(values: readonly string[]): Record<string, number> {\n return Object.fromEntries(\n [...values.reduce((counts, value) => {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n return counts;\n }, new Map<string, number>()).entries()].sort(([left], [right]) => left.localeCompare(right)),\n );\n}\n\nfunction isMissingFileError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { readonly code?: unknown }).code === \"ENOENT\"\n );\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xsarwagya/ontoly-cache",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.13",
|
|
4
4
|
"description": "Local graph artifact persistence for Ontoly.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"LICENSE"
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@0xsarwagya/ontoly-core": "0.1.0-alpha.
|
|
26
|
+
"@0xsarwagya/ontoly-core": "0.1.0-alpha.13"
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|