@vivantel/virage-chunker-ce-ast 0.1.2 → 0.1.3
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/dist/factory.d.ts +16 -6
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +7 -13
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/factory.d.ts
CHANGED
|
@@ -12,6 +12,15 @@ export interface BaseOptions {
|
|
|
12
12
|
recursive?: boolean;
|
|
13
13
|
ignore?: string[];
|
|
14
14
|
}
|
|
15
|
+
/** Returned by every native chunker binding. Rust reads the file, computes
|
|
16
|
+
* the SHA-256 hash, and returns all four fields so JS never holds the file
|
|
17
|
+
* bytes. */
|
|
18
|
+
export interface ParseResult {
|
|
19
|
+
tree: string;
|
|
20
|
+
hash: string;
|
|
21
|
+
size: number;
|
|
22
|
+
modifiedMs: number;
|
|
23
|
+
}
|
|
15
24
|
export interface NativeChunkerDef<TOptions extends BaseOptions> {
|
|
16
25
|
/** npm package name, used as the `strategy` field in ArtifactSet. */
|
|
17
26
|
name: string;
|
|
@@ -23,12 +32,13 @@ export interface NativeChunkerDef<TOptions extends BaseOptions> {
|
|
|
23
32
|
* Return the native napi binding object. Called at most once per chunker
|
|
24
33
|
* instance (lazily, on the first `chunk()` call).
|
|
25
34
|
*/
|
|
26
|
-
loadBinding: () => Record<string, (...args: unknown[]) =>
|
|
35
|
+
loadBinding: () => Record<string, (...args: unknown[]) => unknown>;
|
|
27
36
|
/**
|
|
28
|
-
* Invoke the correct function on the already-loaded binding
|
|
29
|
-
*
|
|
37
|
+
* Invoke the correct function on the already-loaded binding, passing the
|
|
38
|
+
* file path. Rust reads the file and returns a ParseResult — no file data
|
|
39
|
+
* crosses the JS/Rust boundary.
|
|
30
40
|
*/
|
|
31
|
-
callNative: (binding: ReturnType<NativeChunkerDef<TOptions>["loadBinding"]>,
|
|
41
|
+
callNative: (binding: ReturnType<NativeChunkerDef<TOptions>["loadBinding"]>, filePath: string, opts: TOptions) => ParseResult;
|
|
32
42
|
/** Format-specific WalkOptions defaults. Spread before user opts so user opts win. */
|
|
33
43
|
extraWalkOpts?: (opts: TOptions) => Partial<WalkOptions>;
|
|
34
44
|
/** Optional post-walk hook for format-specific enrichment (XLSX cell refs, etc.). */
|
|
@@ -36,8 +46,8 @@ export interface NativeChunkerDef<TOptions extends BaseOptions> {
|
|
|
36
46
|
}
|
|
37
47
|
/**
|
|
38
48
|
* Factory that eliminates boilerplate common to every native-binary chunker:
|
|
39
|
-
*
|
|
40
|
-
*
|
|
49
|
+
* lazy binding load, walkToChunks, and optional enrich hook.
|
|
50
|
+
* File I/O and hashing happen inside Rust via callNative.
|
|
41
51
|
*
|
|
42
52
|
* Usage:
|
|
43
53
|
* export const createChunker = createNativeChunker<MyOptions>({ ... });
|
package/dist/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;aAEa;AACb,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ,SAAS,WAAW;IAC5D,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC;IACnE;;;;OAIG;IACH,UAAU,EAAE,CACV,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,EAC9D,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,KACX,WAAW,CAAC;IACjB,sFAAsF;IACtF,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,qFAAqF;IACrF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,KAAK,WAAW,EAAE,CAAC;CACnF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,WAAW,EAC9D,GAAG,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAC9B,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,eAAe,CAiEtC"}
|
package/dist/factory.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { readFile, stat } from "node:fs/promises";
|
|
2
|
-
import { createHash } from "node:crypto";
|
|
3
1
|
import { minimatch } from "minimatch";
|
|
4
2
|
import { walkToChunks } from "./chunker.js";
|
|
5
3
|
/**
|
|
6
4
|
* Factory that eliminates boilerplate common to every native-binary chunker:
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* lazy binding load, walkToChunks, and optional enrich hook.
|
|
6
|
+
* File I/O and hashing happen inside Rust via callNative.
|
|
9
7
|
*
|
|
10
8
|
* Usage:
|
|
11
9
|
* export const createChunker = createNativeChunker<MyOptions>({ ... });
|
|
@@ -25,13 +23,9 @@ export function createNativeChunker(def) {
|
|
|
25
23
|
name: def.name,
|
|
26
24
|
patterns: def.patterns,
|
|
27
25
|
async chunk(filePath, commitHash) {
|
|
28
|
-
const [buf, stats] = await Promise.all([readFile(filePath), stat(filePath)]);
|
|
29
|
-
const fileHash = createHash("sha256").update(buf).digest("hex");
|
|
30
26
|
const binding = getBinding();
|
|
31
|
-
const
|
|
32
|
-
const docNode = JSON.parse(
|
|
33
|
-
// extraWalkOpts provides format-specific defaults; explicit user opts
|
|
34
|
-
// override them; required fields are always set last.
|
|
27
|
+
const result = def.callNative(binding, filePath, resolvedOpts);
|
|
28
|
+
const docNode = JSON.parse(result.tree);
|
|
35
29
|
const extra = def.extraWalkOpts ? def.extraWalkOpts(resolvedOpts) : {};
|
|
36
30
|
const sets = walkToChunks(docNode, {
|
|
37
31
|
...extra,
|
|
@@ -57,9 +51,9 @@ export function createNativeChunker(def) {
|
|
|
57
51
|
sourceFormat: def.sourceFormat,
|
|
58
52
|
commitHash,
|
|
59
53
|
strategy: def.name,
|
|
60
|
-
fileHash,
|
|
61
|
-
fileSizeBytes:
|
|
62
|
-
fileModifiedAt:
|
|
54
|
+
fileHash: result.hash,
|
|
55
|
+
fileSizeBytes: result.size,
|
|
56
|
+
fileModifiedAt: new Date(result.modifiedMs).toISOString(),
|
|
63
57
|
});
|
|
64
58
|
return def.enrich ? def.enrich(sets, docNode, resolvedOpts) : sets;
|
|
65
59
|
},
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ export { extractOutline } from "./outline.js";
|
|
|
5
5
|
export { walkToChunks } from "./chunker.js";
|
|
6
6
|
export type { WalkOptions } from "./chunker.js";
|
|
7
7
|
export { createNativeChunker } from "./factory.js";
|
|
8
|
-
export type { BaseOptions, NativeChunkerDef } from "./factory.js";
|
|
8
|
+
export type { BaseOptions, NativeChunkerDef, ParseResult } from "./factory.js";
|
|
9
9
|
//# 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":"AAAA,YAAY,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
package/package.json
CHANGED