@checkpointvcs/longtail-addon 0.0.1

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.
@@ -0,0 +1,116 @@
1
+ interface HandleStatus {
2
+ currentStep: string;
3
+ changingStep: boolean;
4
+ canceled: boolean;
5
+ completed: boolean;
6
+ error: number;
7
+ }
8
+ /** Opaque native handle — do not inspect directly */
9
+ type NativeHandle = object;
10
+ export type LongtailLogLevel = "debug" | "info" | "warn" | "error" | "off";
11
+ export interface Modification {
12
+ delete: boolean;
13
+ path: string;
14
+ oldPath?: string;
15
+ }
16
+ export interface SubmitAsyncOptions {
17
+ branchName: string;
18
+ message: string;
19
+ targetChunkSize: number;
20
+ targetBlockSize: number;
21
+ maxChunksPerBlock: number;
22
+ minBlockUsagePercent: number;
23
+ hashingAlgo: string;
24
+ compressionAlgo: string;
25
+ enableMmapIndexing: boolean;
26
+ enableMmapBlockStore: boolean;
27
+ localRootPath: string;
28
+ remoteBasePath: string;
29
+ filerUrl: string;
30
+ backendUrl: string;
31
+ jwt: string;
32
+ jwtExpirationMs: number;
33
+ apiJwt: string;
34
+ keepCheckedOut: boolean;
35
+ workspaceId: string;
36
+ modifications: Modification[];
37
+ logLevel: number;
38
+ }
39
+ export interface PullAsyncOptions {
40
+ versionIndex: string;
41
+ enableMmapIndexing: boolean;
42
+ enableMmapBlockStore: boolean;
43
+ localRootPath: string;
44
+ remoteBasePath: string;
45
+ filerUrl: string;
46
+ jwt: string;
47
+ jwtExpirationMs: number;
48
+ logLevel: number;
49
+ }
50
+ export interface MergeAsyncOptions {
51
+ remoteBasePath: string;
52
+ filerUrl: string;
53
+ jwt: string;
54
+ storeIndexBuffer: Buffer;
55
+ logLevel: number;
56
+ }
57
+ export interface ReadFileFromVersionAsyncOptions {
58
+ filePath: string;
59
+ versionIndexName: string;
60
+ remoteBasePath: string;
61
+ filerUrl: string;
62
+ jwt: string;
63
+ jwtExpirationMs: number;
64
+ logLevel: number;
65
+ }
66
+ export { HandleStatus, NativeHandle };
67
+ export declare function GetLogLevel(value: LongtailLogLevel): number;
68
+ export declare function submitAsync(options: SubmitAsyncOptions): NativeHandle;
69
+ export declare function pullAsync(options: PullAsyncOptions): NativeHandle;
70
+ export declare function mergeAsync(options: MergeAsyncOptions): NativeHandle;
71
+ export declare function readFileFromVersionAsync(options: ReadFileFromVersionAsyncOptions): NativeHandle;
72
+ export declare function getHandleStatus(handle: NativeHandle): HandleStatus;
73
+ export declare function getHandleResult(handle: NativeHandle): any;
74
+ export declare function cancelHandle(handle: NativeHandle): void;
75
+ export declare function freeHandle(handle: NativeHandle): void;
76
+ export declare function getReadFileData(handle: NativeHandle): Buffer;
77
+ export declare function getReadFileSize(handle: NativeHandle): number;
78
+ export declare function freeReadFileHandle(handle: NativeHandle): void;
79
+ export interface PollOptions {
80
+ /** Polling interval in milliseconds (default: 10) */
81
+ intervalMs?: number;
82
+ /** Callback invoked on each step change */
83
+ onStep?: (step: string) => void;
84
+ }
85
+ /**
86
+ * Polls an async handle until completion. Returns the final status and
87
+ * optionally the parsed result.
88
+ *
89
+ * Usage:
90
+ * ```ts
91
+ * const handle = submitAsync({ ... });
92
+ * const { status, result } = await pollHandle(handle, {
93
+ * onStep: (step) => console.log("Step:", step),
94
+ * });
95
+ * freeHandle(handle);
96
+ * ```
97
+ */
98
+ export declare function pollHandle(handle: NativeHandle, options?: PollOptions): Promise<{
99
+ status: HandleStatus;
100
+ result: any;
101
+ }>;
102
+ /**
103
+ * Polls a read-file handle until completion. Returns the file data as a Buffer.
104
+ *
105
+ * Usage:
106
+ * ```ts
107
+ * const handle = readFileFromVersionAsync({ ... });
108
+ * const { data, size } = await pollReadFileHandle(handle);
109
+ * freeReadFileHandle(handle);
110
+ * ```
111
+ */
112
+ export declare function pollReadFileHandle(handle: NativeHandle, options?: PollOptions): Promise<{
113
+ data: Buffer;
114
+ size: number;
115
+ }>;
116
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ // TypeScript bindings for the longtail-addon N-API module.
3
+ // Drop-in replacement for the Bun FFI-based longtail.ts utilities.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.GetLogLevel = GetLogLevel;
6
+ exports.submitAsync = submitAsync;
7
+ exports.pullAsync = pullAsync;
8
+ exports.mergeAsync = mergeAsync;
9
+ exports.readFileFromVersionAsync = readFileFromVersionAsync;
10
+ exports.getHandleStatus = getHandleStatus;
11
+ exports.getHandleResult = getHandleResult;
12
+ exports.cancelHandle = cancelHandle;
13
+ exports.freeHandle = freeHandle;
14
+ exports.getReadFileData = getReadFileData;
15
+ exports.getReadFileSize = getReadFileSize;
16
+ exports.freeReadFileHandle = freeReadFileHandle;
17
+ exports.pollHandle = pollHandle;
18
+ exports.pollReadFileHandle = pollReadFileHandle;
19
+ // The native addon — resolved at runtime from the build output
20
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
21
+ const addon = require("../build/longtail_addon.node");
22
+ // --------------------------------------------------------------------------
23
+ // Utility functions (matching the old longtail.ts API)
24
+ // --------------------------------------------------------------------------
25
+ function GetLogLevel(value) {
26
+ switch (value.toLowerCase().trim()) {
27
+ case "debug":
28
+ return 0;
29
+ case "info":
30
+ return 1;
31
+ case "warn":
32
+ case "warning":
33
+ return 2;
34
+ case "error":
35
+ return 3;
36
+ case "off":
37
+ default:
38
+ return 4;
39
+ }
40
+ }
41
+ // --------------------------------------------------------------------------
42
+ // Async operation wrappers
43
+ // --------------------------------------------------------------------------
44
+ function submitAsync(options) {
45
+ return addon.submitAsync(options);
46
+ }
47
+ function pullAsync(options) {
48
+ return addon.pullAsync(options);
49
+ }
50
+ function mergeAsync(options) {
51
+ return addon.mergeAsync(options);
52
+ }
53
+ function readFileFromVersionAsync(options) {
54
+ return addon.readFileFromVersionAsync(options);
55
+ }
56
+ // --------------------------------------------------------------------------
57
+ // Handle operations
58
+ // --------------------------------------------------------------------------
59
+ function getHandleStatus(handle) {
60
+ return addon.getHandleStatus(handle);
61
+ }
62
+ function getHandleResult(handle) {
63
+ return addon.getHandleResult(handle);
64
+ }
65
+ function cancelHandle(handle) {
66
+ addon.cancelHandle(handle);
67
+ }
68
+ function freeHandle(handle) {
69
+ addon.freeHandle(handle);
70
+ }
71
+ function getReadFileData(handle) {
72
+ return addon.getReadFileData(handle);
73
+ }
74
+ function getReadFileSize(handle) {
75
+ return addon.getReadFileSize(handle);
76
+ }
77
+ function freeReadFileHandle(handle) {
78
+ addon.freeReadFileHandle(handle);
79
+ }
80
+ /**
81
+ * Polls an async handle until completion. Returns the final status and
82
+ * optionally the parsed result.
83
+ *
84
+ * Usage:
85
+ * ```ts
86
+ * const handle = submitAsync({ ... });
87
+ * const { status, result } = await pollHandle(handle, {
88
+ * onStep: (step) => console.log("Step:", step),
89
+ * });
90
+ * freeHandle(handle);
91
+ * ```
92
+ */
93
+ async function pollHandle(handle, options = {}) {
94
+ const intervalMs = options.intervalMs ?? 10;
95
+ let lastStep = "";
96
+ while (true) {
97
+ const status = getHandleStatus(handle);
98
+ if (status.currentStep !== lastStep) {
99
+ lastStep = status.currentStep;
100
+ if (options.onStep) {
101
+ options.onStep(status.currentStep);
102
+ }
103
+ }
104
+ if (status.completed) {
105
+ const result = getHandleResult(handle);
106
+ return { status, result };
107
+ }
108
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
109
+ }
110
+ }
111
+ /**
112
+ * Polls a read-file handle until completion. Returns the file data as a Buffer.
113
+ *
114
+ * Usage:
115
+ * ```ts
116
+ * const handle = readFileFromVersionAsync({ ... });
117
+ * const { data, size } = await pollReadFileHandle(handle);
118
+ * freeReadFileHandle(handle);
119
+ * ```
120
+ */
121
+ async function pollReadFileHandle(handle, options = {}) {
122
+ const intervalMs = options.intervalMs ?? 10;
123
+ let lastStep = "";
124
+ while (true) {
125
+ const status = getHandleStatus(handle);
126
+ if (status.currentStep !== lastStep) {
127
+ lastStep = status.currentStep;
128
+ if (options.onStep) {
129
+ options.onStep(status.currentStep);
130
+ }
131
+ }
132
+ if (status.completed) {
133
+ if (status.error !== 0) {
134
+ throw new Error(`ReadFileFromVersion failed: ${status.currentStep} (error: ${status.error})`);
135
+ }
136
+ const data = getReadFileData(handle);
137
+ const size = getReadFileSize(handle);
138
+ return { data, size };
139
+ }
140
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
141
+ }
142
+ }
143
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@checkpointvcs/longtail-addon",
3
+ "version": "0.0.1",
4
+ "description": "Node.js N-API addon for the Longtail C++ wrapper",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "license": "(Elastic-2.0 OR AGPL-3.0)",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/checkpointvcs/checkpoint.git",
11
+ "directory": "src/longtail/addon"
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "prebuilds"
16
+ ],
17
+ "packageManager": "yarn@4.13.0",
18
+ "scripts": {
19
+ "build:native": "cmake-js build --config Release",
20
+ "build:native:msvc": "cmd /c build-msvc.bat",
21
+ "build:native:msvc:debug": "cmd /c build-msvc.bat debug",
22
+ "build:ts": "tsc",
23
+ "build": "yarn run build:native && yarn run build:ts",
24
+ "clean": "cmake-js clean"
25
+ },
26
+ "devDependencies": {
27
+ "@types/node": "*",
28
+ "cmake-js": "^8.0.0",
29
+ "node-addon-api": "^8.3.1",
30
+ "typescript": "^5.9.3"
31
+ }
32
+ }