@mhalle/vost 0.8.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.
- package/LICENSE +191 -0
- package/README.md +24 -0
- package/dist/batch.d.ts +82 -0
- package/dist/batch.js +152 -0
- package/dist/batch.js.map +1 -0
- package/dist/copy.d.ts +242 -0
- package/dist/copy.js +1229 -0
- package/dist/copy.js.map +1 -0
- package/dist/exclude.d.ts +68 -0
- package/dist/exclude.js +157 -0
- package/dist/exclude.js.map +1 -0
- package/dist/fileobj.d.ts +82 -0
- package/dist/fileobj.js +127 -0
- package/dist/fileobj.js.map +1 -0
- package/dist/fs.d.ts +581 -0
- package/dist/fs.js +1318 -0
- package/dist/fs.js.map +1 -0
- package/dist/gitstore.d.ts +74 -0
- package/dist/gitstore.js +131 -0
- package/dist/gitstore.js.map +1 -0
- package/dist/glob.d.ts +14 -0
- package/dist/glob.js +68 -0
- package/dist/glob.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/lock.d.ts +15 -0
- package/dist/lock.js +71 -0
- package/dist/lock.js.map +1 -0
- package/dist/mirror.d.ts +53 -0
- package/dist/mirror.js +270 -0
- package/dist/mirror.js.map +1 -0
- package/dist/notes.d.ts +148 -0
- package/dist/notes.js +508 -0
- package/dist/notes.js.map +1 -0
- package/dist/paths.d.ts +16 -0
- package/dist/paths.js +44 -0
- package/dist/paths.js.map +1 -0
- package/dist/refdict.d.ts +117 -0
- package/dist/refdict.js +267 -0
- package/dist/refdict.js.map +1 -0
- package/dist/reflog.d.ts +33 -0
- package/dist/reflog.js +83 -0
- package/dist/reflog.js.map +1 -0
- package/dist/tree.d.ts +79 -0
- package/dist/tree.js +283 -0
- package/dist/tree.js.map +1 -0
- package/dist/types.d.ts +354 -0
- package/dist/types.js +302 -0
- package/dist/types.js.map +1 -0
- package/package.json +58 -0
package/dist/fs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitStore: versioned filesystem backed by a bare git repository.
|
|
3
|
+
*/
|
|
4
|
+
import type { FsModule, Signature, MirrorDiff, HttpClient } from './types.js';
|
|
5
|
+
import { RefDict } from './refdict.js';
|
|
6
|
+
import { NoteDict } from './notes.js';
|
|
7
|
+
/**
|
|
8
|
+
* A versioned filesystem backed by a bare git repository.
|
|
9
|
+
*
|
|
10
|
+
* Open or create a store with `GitStore.open()`. Access snapshots via
|
|
11
|
+
* `branches`, `tags`, and `notes`.
|
|
12
|
+
*/
|
|
13
|
+
export declare class GitStore {
|
|
14
|
+
/** @internal */ _fsModule: FsModule;
|
|
15
|
+
/** @internal */ _gitdir: string;
|
|
16
|
+
/** @internal */ _signature: Signature;
|
|
17
|
+
/** Dict-like access to branches. */
|
|
18
|
+
branches: RefDict;
|
|
19
|
+
/** Dict-like access to tags. */
|
|
20
|
+
tags: RefDict;
|
|
21
|
+
/** Git notes namespaces. */
|
|
22
|
+
notes: NoteDict;
|
|
23
|
+
constructor(fsModule: FsModule, gitdir: string, author: string, email: string);
|
|
24
|
+
toString(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Open or create a bare git repository.
|
|
27
|
+
*
|
|
28
|
+
* @param path - Path to the bare repository directory.
|
|
29
|
+
* @param opts.fs - Node.js `fs` module (or compatible).
|
|
30
|
+
* @param opts.create - Create the repo if it doesn't exist (default: true).
|
|
31
|
+
* @param opts.branch - Initial branch when creating (default: "main"). Null for no branch.
|
|
32
|
+
* @param opts.author - Default author name (default: "vost").
|
|
33
|
+
* @param opts.email - Default author email (default: "vost@localhost").
|
|
34
|
+
*/
|
|
35
|
+
static open(path: string, opts: {
|
|
36
|
+
fs: FsModule;
|
|
37
|
+
create?: boolean;
|
|
38
|
+
branch?: string | null;
|
|
39
|
+
author?: string;
|
|
40
|
+
email?: string;
|
|
41
|
+
}): Promise<GitStore>;
|
|
42
|
+
/**
|
|
43
|
+
* Push all refs to url, creating an exact mirror.
|
|
44
|
+
*
|
|
45
|
+
* Remote-only refs are deleted.
|
|
46
|
+
*
|
|
47
|
+
* @param url - Remote repository URL (HTTPS or local path).
|
|
48
|
+
* @param opts.http - HTTP client (isomorphic-git compatible).
|
|
49
|
+
* @param opts.dryRun - Compute diff without pushing.
|
|
50
|
+
* @param opts.onAuth - Optional authentication callback.
|
|
51
|
+
* @returns A MirrorDiff describing what changed (or would change).
|
|
52
|
+
*/
|
|
53
|
+
backup(url: string, opts?: {
|
|
54
|
+
http: HttpClient;
|
|
55
|
+
dryRun?: boolean;
|
|
56
|
+
onAuth?: Function;
|
|
57
|
+
}): Promise<MirrorDiff>;
|
|
58
|
+
/**
|
|
59
|
+
* Fetch all refs from url, overwriting local state.
|
|
60
|
+
*
|
|
61
|
+
* Local-only refs are deleted.
|
|
62
|
+
*
|
|
63
|
+
* @param url - Remote repository URL (HTTPS or local path).
|
|
64
|
+
* @param opts.http - HTTP client (isomorphic-git compatible).
|
|
65
|
+
* @param opts.dryRun - Compute diff without fetching.
|
|
66
|
+
* @param opts.onAuth - Optional authentication callback.
|
|
67
|
+
* @returns A MirrorDiff describing what changed (or would change).
|
|
68
|
+
*/
|
|
69
|
+
restore(url: string, opts?: {
|
|
70
|
+
http: HttpClient;
|
|
71
|
+
dryRun?: boolean;
|
|
72
|
+
onAuth?: Function;
|
|
73
|
+
}): Promise<MirrorDiff>;
|
|
74
|
+
}
|
package/dist/gitstore.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitStore: versioned filesystem backed by a bare git repository.
|
|
3
|
+
*/
|
|
4
|
+
import git from 'isomorphic-git';
|
|
5
|
+
import { RefDict } from './refdict.js';
|
|
6
|
+
import { NoteDict } from './notes.js';
|
|
7
|
+
/**
|
|
8
|
+
* A versioned filesystem backed by a bare git repository.
|
|
9
|
+
*
|
|
10
|
+
* Open or create a store with `GitStore.open()`. Access snapshots via
|
|
11
|
+
* `branches`, `tags`, and `notes`.
|
|
12
|
+
*/
|
|
13
|
+
export class GitStore {
|
|
14
|
+
/** @internal */ _fsModule;
|
|
15
|
+
/** @internal */ _gitdir;
|
|
16
|
+
/** @internal */ _signature;
|
|
17
|
+
/** Dict-like access to branches. */
|
|
18
|
+
branches;
|
|
19
|
+
/** Dict-like access to tags. */
|
|
20
|
+
tags;
|
|
21
|
+
/** Git notes namespaces. */
|
|
22
|
+
notes;
|
|
23
|
+
constructor(fsModule, gitdir, author, email) {
|
|
24
|
+
this._fsModule = fsModule;
|
|
25
|
+
this._gitdir = gitdir;
|
|
26
|
+
this._signature = { name: author, email };
|
|
27
|
+
this.branches = new RefDict(this, 'refs/heads/');
|
|
28
|
+
this.tags = new RefDict(this, 'refs/tags/');
|
|
29
|
+
this.notes = new NoteDict(this);
|
|
30
|
+
}
|
|
31
|
+
toString() {
|
|
32
|
+
return `GitStore('${this._gitdir}')`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Open or create a bare git repository.
|
|
36
|
+
*
|
|
37
|
+
* @param path - Path to the bare repository directory.
|
|
38
|
+
* @param opts.fs - Node.js `fs` module (or compatible).
|
|
39
|
+
* @param opts.create - Create the repo if it doesn't exist (default: true).
|
|
40
|
+
* @param opts.branch - Initial branch when creating (default: "main"). Null for no branch.
|
|
41
|
+
* @param opts.author - Default author name (default: "vost").
|
|
42
|
+
* @param opts.email - Default author email (default: "vost@localhost").
|
|
43
|
+
*/
|
|
44
|
+
static async open(path, opts) {
|
|
45
|
+
const fsModule = opts.fs;
|
|
46
|
+
const create = opts.create ?? true;
|
|
47
|
+
const branch = opts.branch !== undefined ? opts.branch : 'main';
|
|
48
|
+
const author = opts.author ?? 'vost';
|
|
49
|
+
const email = opts.email ?? 'vost@localhost';
|
|
50
|
+
// Check if repo exists
|
|
51
|
+
let exists = false;
|
|
52
|
+
try {
|
|
53
|
+
await fsModule.promises.stat(`${path}/HEAD`);
|
|
54
|
+
exists = true;
|
|
55
|
+
}
|
|
56
|
+
catch { /* not found */ }
|
|
57
|
+
if (exists) {
|
|
58
|
+
return new GitStore(fsModule, path, author, email);
|
|
59
|
+
}
|
|
60
|
+
if (!create) {
|
|
61
|
+
throw new Error(`Repository not found: ${path}`);
|
|
62
|
+
}
|
|
63
|
+
// Create bare repo
|
|
64
|
+
await git.init({ fs: fsModule, gitdir: path, bare: true });
|
|
65
|
+
const store = new GitStore(fsModule, path, author, email);
|
|
66
|
+
if (branch !== null) {
|
|
67
|
+
// Create initial empty commit on the branch
|
|
68
|
+
const emptyTreeOid = await git.writeTree({ fs: fsModule, gitdir: path, tree: [] });
|
|
69
|
+
const now = Math.floor(Date.now() / 1000);
|
|
70
|
+
const commitOid = await git.writeCommit({
|
|
71
|
+
fs: fsModule,
|
|
72
|
+
gitdir: path,
|
|
73
|
+
commit: {
|
|
74
|
+
message: `Initialize ${branch}\n`,
|
|
75
|
+
tree: emptyTreeOid,
|
|
76
|
+
parent: [],
|
|
77
|
+
author: { name: author, email, timestamp: now, timezoneOffset: 0 },
|
|
78
|
+
committer: { name: author, email, timestamp: now, timezoneOffset: 0 },
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
// Create the branch ref
|
|
82
|
+
await git.writeRef({
|
|
83
|
+
fs: fsModule,
|
|
84
|
+
gitdir: path,
|
|
85
|
+
ref: `refs/heads/${branch}`,
|
|
86
|
+
value: commitOid,
|
|
87
|
+
});
|
|
88
|
+
// Set HEAD to point at the branch
|
|
89
|
+
await git.writeRef({
|
|
90
|
+
fs: fsModule,
|
|
91
|
+
gitdir: path,
|
|
92
|
+
ref: 'HEAD',
|
|
93
|
+
value: `refs/heads/${branch}`,
|
|
94
|
+
symbolic: true,
|
|
95
|
+
force: true,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return store;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Push all refs to url, creating an exact mirror.
|
|
102
|
+
*
|
|
103
|
+
* Remote-only refs are deleted.
|
|
104
|
+
*
|
|
105
|
+
* @param url - Remote repository URL (HTTPS or local path).
|
|
106
|
+
* @param opts.http - HTTP client (isomorphic-git compatible).
|
|
107
|
+
* @param opts.dryRun - Compute diff without pushing.
|
|
108
|
+
* @param opts.onAuth - Optional authentication callback.
|
|
109
|
+
* @returns A MirrorDiff describing what changed (or would change).
|
|
110
|
+
*/
|
|
111
|
+
async backup(url, opts = {}) {
|
|
112
|
+
const { backup } = await import('./mirror.js');
|
|
113
|
+
return backup(this, url, opts);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Fetch all refs from url, overwriting local state.
|
|
117
|
+
*
|
|
118
|
+
* Local-only refs are deleted.
|
|
119
|
+
*
|
|
120
|
+
* @param url - Remote repository URL (HTTPS or local path).
|
|
121
|
+
* @param opts.http - HTTP client (isomorphic-git compatible).
|
|
122
|
+
* @param opts.dryRun - Compute diff without fetching.
|
|
123
|
+
* @param opts.onAuth - Optional authentication callback.
|
|
124
|
+
* @returns A MirrorDiff describing what changed (or would change).
|
|
125
|
+
*/
|
|
126
|
+
async restore(url, opts = {}) {
|
|
127
|
+
const { restore } = await import('./mirror.js');
|
|
128
|
+
return restore(this, url, opts);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=gitstore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitstore.js","sourceRoot":"","sources":["../src/gitstore.ts"],"names":[],"mappings":"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"}
|
package/dist/glob.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glob matching utilities for vost.
|
|
3
|
+
*
|
|
4
|
+
* Provides fnmatch-style matching with dotfile-aware semantics:
|
|
5
|
+
* `*` and `?` do not match a leading `.` unless the pattern itself starts with `.`.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Match a single filename against a glob pattern segment.
|
|
9
|
+
*
|
|
10
|
+
* Supports `*`, `?`, `[seq]`, and `[!seq]`. Does not match across `/`.
|
|
11
|
+
* A leading `.` in name is not matched by `*` or `?` unless the pattern
|
|
12
|
+
* itself starts with `.` (Unix/rsync convention).
|
|
13
|
+
*/
|
|
14
|
+
export declare function globMatch(pattern: string, name: string): boolean;
|
package/dist/glob.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glob matching utilities for vost.
|
|
3
|
+
*
|
|
4
|
+
* Provides fnmatch-style matching with dotfile-aware semantics:
|
|
5
|
+
* `*` and `?` do not match a leading `.` unless the pattern itself starts with `.`.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Match a single filename against a glob pattern segment.
|
|
9
|
+
*
|
|
10
|
+
* Supports `*`, `?`, `[seq]`, and `[!seq]`. Does not match across `/`.
|
|
11
|
+
* A leading `.` in name is not matched by `*` or `?` unless the pattern
|
|
12
|
+
* itself starts with `.` (Unix/rsync convention).
|
|
13
|
+
*/
|
|
14
|
+
export function globMatch(pattern, name) {
|
|
15
|
+
if (!pattern.startsWith('.') && name.startsWith('.')) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return fnmatch(pattern, name);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* fnmatch-style glob matching (single segment, no path separators).
|
|
22
|
+
* Supports `*`, `?`, `[seq]`, `[!seq]`.
|
|
23
|
+
*/
|
|
24
|
+
function fnmatch(pattern, name) {
|
|
25
|
+
const regex = globToRegex(pattern);
|
|
26
|
+
return regex.test(name);
|
|
27
|
+
}
|
|
28
|
+
function globToRegex(pattern) {
|
|
29
|
+
let result = '^';
|
|
30
|
+
let i = 0;
|
|
31
|
+
while (i < pattern.length) {
|
|
32
|
+
const ch = pattern[i];
|
|
33
|
+
if (ch === '*') {
|
|
34
|
+
result += '.*';
|
|
35
|
+
}
|
|
36
|
+
else if (ch === '?') {
|
|
37
|
+
result += '.';
|
|
38
|
+
}
|
|
39
|
+
else if (ch === '[') {
|
|
40
|
+
let j = i + 1;
|
|
41
|
+
let negate = false;
|
|
42
|
+
if (j < pattern.length && pattern[j] === '!') {
|
|
43
|
+
negate = true;
|
|
44
|
+
j++;
|
|
45
|
+
}
|
|
46
|
+
const end = pattern.indexOf(']', j);
|
|
47
|
+
if (end < 0) {
|
|
48
|
+
// No closing bracket — treat `[` as literal
|
|
49
|
+
result += '\\[';
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const chars = pattern.slice(j, end).replace(/[\\\]^]/g, '\\$&');
|
|
53
|
+
result += negate ? `[^${chars}]` : `[${chars}]`;
|
|
54
|
+
i = end;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if ('.+^${}()|\\'.includes(ch)) {
|
|
58
|
+
result += '\\' + ch;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
result += ch;
|
|
62
|
+
}
|
|
63
|
+
i++;
|
|
64
|
+
}
|
|
65
|
+
result += '$';
|
|
66
|
+
return new RegExp(result);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=glob.js.map
|
package/dist/glob.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,IAAY;IACrD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,OAAe,EAAE,IAAY;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAC;QAChB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7C,MAAM,GAAG,IAAI,CAAC;gBACd,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACpC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,4CAA4C;gBAC5C,MAAM,IAAI,KAAK,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAChE,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;gBAChD,CAAC,GAAG,GAAG,CAAC;YACV,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IACD,MAAM,IAAI,GAAG,CAAC;IACd,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vost — A versioned filesystem backed by a bare git repository.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript port using isomorphic-git.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import * as fs from 'node:fs';
|
|
9
|
+
* import { GitStore } from 'vost';
|
|
10
|
+
*
|
|
11
|
+
* const store = await GitStore.open('/tmp/myrepo.git', { fs });
|
|
12
|
+
* const snapshot = await store.branches.get('main');
|
|
13
|
+
*
|
|
14
|
+
* // Read
|
|
15
|
+
* const text = await snapshot.readText('hello.txt');
|
|
16
|
+
*
|
|
17
|
+
* // Write (returns new immutable snapshot)
|
|
18
|
+
* const next = await snapshot.writeText('hello.txt', 'Hello, world!');
|
|
19
|
+
*
|
|
20
|
+
* // Batch writes
|
|
21
|
+
* const batch = next.batch();
|
|
22
|
+
* await batch.write('a.txt', new TextEncoder().encode('aaa'));
|
|
23
|
+
* await batch.write('b.txt', new TextEncoder().encode('bbb'));
|
|
24
|
+
* const result = await batch.commit();
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export { GitStore } from './gitstore.js';
|
|
28
|
+
export { FS, retryWrite } from './fs.js';
|
|
29
|
+
export { Batch } from './batch.js';
|
|
30
|
+
export { FsWriter, BatchWriter } from './fileobj.js';
|
|
31
|
+
export { RefDict } from './refdict.js';
|
|
32
|
+
export { NoteDict, NoteNamespace, NotesBatch } from './notes.js';
|
|
33
|
+
export { FileType, fileTypeFromMode, fileModeFromType, MODE_BLOB, MODE_BLOB_EXEC, MODE_LINK, MODE_TREE, GitStoreError, StaleSnapshotError, FileNotFoundError, IsADirectoryError, NotADirectoryError, PermissionError, KeyNotFoundError, KeyExistsError, InvalidRefNameError, InvalidPathError, BatchClosedError, type WalkEntry, type WriteEntry, type StatResult, type FileEntry, type ChangeAction, type ChangeError, type ChangeReport, type RefChange, type MirrorDiff, type CommitInfo, type ReflogEntry, type Signature, type FsModule, type HttpClient, emptyChangeReport, changeReportInSync, changeReportTotal, changeReportActions, mirrorDiffInSync, mirrorDiffTotal, } from './types.js';
|
|
34
|
+
export { resolveCredentials } from './mirror.js';
|
|
35
|
+
export { diskGlob } from './copy.js';
|
|
36
|
+
export { ExcludeFilter } from './exclude.js';
|
|
37
|
+
export { normalizePath, validateRefName } from './paths.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vost — A versioned filesystem backed by a bare git repository.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript port using isomorphic-git.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import * as fs from 'node:fs';
|
|
9
|
+
* import { GitStore } from 'vost';
|
|
10
|
+
*
|
|
11
|
+
* const store = await GitStore.open('/tmp/myrepo.git', { fs });
|
|
12
|
+
* const snapshot = await store.branches.get('main');
|
|
13
|
+
*
|
|
14
|
+
* // Read
|
|
15
|
+
* const text = await snapshot.readText('hello.txt');
|
|
16
|
+
*
|
|
17
|
+
* // Write (returns new immutable snapshot)
|
|
18
|
+
* const next = await snapshot.writeText('hello.txt', 'Hello, world!');
|
|
19
|
+
*
|
|
20
|
+
* // Batch writes
|
|
21
|
+
* const batch = next.batch();
|
|
22
|
+
* await batch.write('a.txt', new TextEncoder().encode('aaa'));
|
|
23
|
+
* await batch.write('b.txt', new TextEncoder().encode('bbb'));
|
|
24
|
+
* const result = await batch.commit();
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
// Core classes
|
|
28
|
+
export { GitStore } from './gitstore.js';
|
|
29
|
+
export { FS, retryWrite } from './fs.js';
|
|
30
|
+
export { Batch } from './batch.js';
|
|
31
|
+
export { FsWriter, BatchWriter } from './fileobj.js';
|
|
32
|
+
export { RefDict } from './refdict.js';
|
|
33
|
+
export { NoteDict, NoteNamespace, NotesBatch } from './notes.js';
|
|
34
|
+
// Types and data structures
|
|
35
|
+
export {
|
|
36
|
+
// File types & modes
|
|
37
|
+
FileType, fileTypeFromMode, fileModeFromType, MODE_BLOB, MODE_BLOB_EXEC, MODE_LINK, MODE_TREE,
|
|
38
|
+
// Errors
|
|
39
|
+
GitStoreError, StaleSnapshotError, FileNotFoundError, IsADirectoryError, NotADirectoryError, PermissionError, KeyNotFoundError, KeyExistsError, InvalidRefNameError, InvalidPathError, BatchClosedError,
|
|
40
|
+
// ChangeReport helpers
|
|
41
|
+
emptyChangeReport, changeReportInSync, changeReportTotal, changeReportActions,
|
|
42
|
+
// MirrorDiff helpers
|
|
43
|
+
mirrorDiffInSync, mirrorDiffTotal, } from './types.js';
|
|
44
|
+
// Mirror utilities
|
|
45
|
+
export { resolveCredentials } from './mirror.js';
|
|
46
|
+
// Copy operations (usable standalone)
|
|
47
|
+
export { diskGlob } from './copy.js';
|
|
48
|
+
export { ExcludeFilter } from './exclude.js';
|
|
49
|
+
// Path utilities
|
|
50
|
+
export { normalizePath, validateRefName } from './paths.js';
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjE,4BAA4B;AAC5B,OAAO;AACL,qBAAqB;AACrB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,SAAS,EACT,SAAS;AAET,SAAS;AACT,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB;AAkBhB,uBAAuB;AACvB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB;AAEnB,qBAAqB;AACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,sCAAsC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/lock.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advisory repo lock for serializing ref mutations.
|
|
3
|
+
*
|
|
4
|
+
* Uses an atomic lockfile (`vost.lock`) for cross-process coordination
|
|
5
|
+
* and an in-process Promise-based mutex (JS is single-threaded, but
|
|
6
|
+
* async operations interleave).
|
|
7
|
+
*/
|
|
8
|
+
import type { FsModule } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Execute `fn` while holding an advisory lock on the repository.
|
|
11
|
+
*
|
|
12
|
+
* Serializes both in-process async operations (via Promise chain) and
|
|
13
|
+
* cross-process access (via lockfile).
|
|
14
|
+
*/
|
|
15
|
+
export declare function withRepoLock<T>(fsModule: FsModule, gitdir: string, fn: () => Promise<T>): Promise<T>;
|
package/dist/lock.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advisory repo lock for serializing ref mutations.
|
|
3
|
+
*
|
|
4
|
+
* Uses an atomic lockfile (`vost.lock`) for cross-process coordination
|
|
5
|
+
* and an in-process Promise-based mutex (JS is single-threaded, but
|
|
6
|
+
* async operations interleave).
|
|
7
|
+
*/
|
|
8
|
+
// Per-repo in-process async mutexes (keyed by resolved gitdir path)
|
|
9
|
+
const mutexes = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Execute `fn` while holding an advisory lock on the repository.
|
|
12
|
+
*
|
|
13
|
+
* Serializes both in-process async operations (via Promise chain) and
|
|
14
|
+
* cross-process access (via lockfile).
|
|
15
|
+
*/
|
|
16
|
+
export async function withRepoLock(fsModule, gitdir, fn) {
|
|
17
|
+
// In-process serialization: chain on the per-repo promise
|
|
18
|
+
const prev = mutexes.get(gitdir) ?? Promise.resolve();
|
|
19
|
+
let releaseMutex;
|
|
20
|
+
const next = new Promise((resolve) => {
|
|
21
|
+
releaseMutex = resolve;
|
|
22
|
+
});
|
|
23
|
+
mutexes.set(gitdir, next);
|
|
24
|
+
// Wait for previous operation on this repo
|
|
25
|
+
await prev;
|
|
26
|
+
const lockPath = `${gitdir}/vost.lock`;
|
|
27
|
+
// Acquire lockfile (atomic create with exclusive flag)
|
|
28
|
+
let acquired = false;
|
|
29
|
+
const maxAttempts = 100;
|
|
30
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
31
|
+
try {
|
|
32
|
+
// O_CREAT | O_EXCL — fails if file already exists
|
|
33
|
+
const handle = await fsModule.promises.open(lockPath, 'wx');
|
|
34
|
+
await handle.close();
|
|
35
|
+
acquired = true;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
if (err?.code === 'EEXIST') {
|
|
40
|
+
// Lock held by another process — wait and retry
|
|
41
|
+
await sleep(10 + Math.random() * 20);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
// Other error (e.g. permission) — release mutex and rethrow
|
|
45
|
+
releaseMutex();
|
|
46
|
+
throw err;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!acquired) {
|
|
50
|
+
releaseMutex();
|
|
51
|
+
throw new Error(`Could not acquire lock after ${maxAttempts} attempts: ${lockPath}`);
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
return await fn();
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
// Release lockfile
|
|
58
|
+
try {
|
|
59
|
+
await fsModule.promises.unlink(lockPath);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Ignore — file may already be cleaned up
|
|
63
|
+
}
|
|
64
|
+
// Release in-process mutex
|
|
65
|
+
releaseMutex();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function sleep(ms) {
|
|
69
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=lock.js.map
|
package/dist/lock.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,oEAAoE;AACpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAkB,EAClB,MAAc,EACd,EAAoB;IAEpB,0DAA0D;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACtD,IAAI,YAAwB,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACzC,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1B,2CAA2C;IAC3C,MAAM,IAAI,CAAC;IAEX,MAAM,QAAQ,GAAG,GAAG,MAAM,YAAY,CAAC;IAEvC,uDAAuD;IACvD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,WAAW,GAAG,GAAG,CAAC;IACxB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,kDAAkD;YAClD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,gDAAgD;gBAChD,MAAM,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,4DAA4D;YAC5D,YAAa,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,YAAa,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,cAAc,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;QACD,2BAA2B;QAC3B,YAAa,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
package/dist/mirror.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mirror (backup/restore) operations for vost.
|
|
3
|
+
*
|
|
4
|
+
* Uses isomorphic-git's push/fetch for HTTP transport.
|
|
5
|
+
* Each ref is pushed/fetched individually to achieve mirror semantics.
|
|
6
|
+
*/
|
|
7
|
+
import type { MirrorDiff, HttpClient } from './types.js';
|
|
8
|
+
import type { GitStore } from './gitstore.js';
|
|
9
|
+
/**
|
|
10
|
+
* Inject credentials into an HTTPS URL if available.
|
|
11
|
+
*
|
|
12
|
+
* Tries `git credential fill` first (works with any configured helper:
|
|
13
|
+
* osxkeychain, wincred, libsecret, `gh auth setup-git`, etc.). Falls
|
|
14
|
+
* back to `gh auth token` for GitHub hosts. Non-HTTPS URLs and URLs
|
|
15
|
+
* that already contain credentials are returned unchanged.
|
|
16
|
+
*
|
|
17
|
+
* Requires Node.js — returns the original URL unchanged in browser
|
|
18
|
+
* environments where `child_process` is not available.
|
|
19
|
+
*
|
|
20
|
+
* @param url - The URL to resolve credentials for.
|
|
21
|
+
* @returns The URL with credentials injected, or the original URL.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveCredentials(url: string): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Push all local refs to url, creating an exact mirror.
|
|
26
|
+
* Remote-only refs are deleted.
|
|
27
|
+
*
|
|
28
|
+
* @param store - The GitStore to backup from.
|
|
29
|
+
* @param url - Remote repository URL (HTTPS or local path).
|
|
30
|
+
* @param opts - Options: `http` client, `dryRun` to compute diff without pushing,
|
|
31
|
+
* and optional `onAuth` callback for credentials.
|
|
32
|
+
* @returns A {@link MirrorDiff} describing what changed (or would change).
|
|
33
|
+
*/
|
|
34
|
+
export declare function backup(store: GitStore, url: string, opts: {
|
|
35
|
+
http: HttpClient;
|
|
36
|
+
dryRun?: boolean;
|
|
37
|
+
onAuth?: Function;
|
|
38
|
+
}): Promise<MirrorDiff>;
|
|
39
|
+
/**
|
|
40
|
+
* Fetch all remote refs from url, overwriting local state.
|
|
41
|
+
* Local-only refs are deleted.
|
|
42
|
+
*
|
|
43
|
+
* @param store - The GitStore to restore into.
|
|
44
|
+
* @param url - Remote repository URL (HTTPS or local path).
|
|
45
|
+
* @param opts - Options: `http` client, `dryRun` to compute diff without fetching,
|
|
46
|
+
* and optional `onAuth` callback for credentials.
|
|
47
|
+
* @returns A {@link MirrorDiff} describing what changed (or would change).
|
|
48
|
+
*/
|
|
49
|
+
export declare function restore(store: GitStore, url: string, opts: {
|
|
50
|
+
http: HttpClient;
|
|
51
|
+
dryRun?: boolean;
|
|
52
|
+
onAuth?: Function;
|
|
53
|
+
}): Promise<MirrorDiff>;
|