@mhalle/vost 0.8.1 → 0.9.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/README.md CHANGED
@@ -1,24 +1,346 @@
1
- # vost (TypeScript)
1
+ # @mhalle/vost
2
2
 
3
- A versioned filesystem backed by a bare git repository.
3
+ A versioned filesystem backed by bare Git repositories. Store, retrieve, and version directory trees of files with text and binary data using an immutable-snapshot API. Every write produces a new commit. Old snapshots remain accessible forever.
4
4
 
5
- This is the TypeScript port of [vost](https://github.com/mhalle/vost), using [isomorphic-git](https://isomorphic-git.org/) as the git backend.
5
+ This is the TypeScript port of [vost](https://github.com/mhalle/vost), using [isomorphic-git](https://isomorphic-git.org/) as the git backend. The repositories are standard Git repos that can be manipulated with Git tools as well.
6
6
 
7
- ## Usage
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @mhalle/vost
11
+ ```
12
+
13
+ Requires Node.js 18+ or Deno.
14
+
15
+ ## Quick start
16
+
17
+ ```typescript
18
+ import { GitStore } from '@mhalle/vost';
19
+
20
+ // Create (or open) a repository with a "main" branch
21
+ const store = await GitStore.open('data.git');
22
+
23
+ // Get a snapshot of the current branch ("main" by default)
24
+ let snap = await store.branches.getCurrent();
25
+
26
+ // Write a file -- returns a new immutable snapshot
27
+ snap = await snap.writeText('hello.txt', 'Hello, world!');
28
+
29
+ // Read it back
30
+ console.log(await snap.readText('hello.txt')); // 'Hello, world!'
31
+
32
+ // Every write is a commit
33
+ console.log(snap.commitHash); // full 40-char SHA
34
+ console.log(await snap.getMessage()); // '+ hello.txt'
35
+ ```
36
+
37
+ ## Core concepts
38
+
39
+ **Bare repository.** vost uses a bare Git repository with no working directory. All data lives inside Git's content-addressable object store and is accessed through the vost API.
40
+
41
+ **`GitStore`** opens or creates a bare repository. It exposes `branches`, `tags`, and `notes`.
42
+
43
+ **`FS`** is an immutable snapshot of a committed tree. Reading methods (`read`, `ls`, `walk`, `exists`) never mutate state. Writing methods (`write`, `writeText`, `remove`, `batch`) return a *new* `FS` pointing at the new commit -- the original `FS` is unchanged.
44
+
45
+ Snapshots from **branches** are writable (`fs.writable === true`). Snapshots from **tags** are read-only (`fs.writable === false`).
46
+
47
+ **All operations are async** -- every read, write, and query returns a `Promise`.
48
+
49
+ ## API
50
+
51
+ ### Opening a repository
52
+
53
+ ```typescript
54
+ const store = await GitStore.open('data.git'); // create or open
55
+ const store = await GitStore.open('data.git', { create: false }); // open only
56
+ const store = await GitStore.open('data.git', { branch: 'dev' }); // custom default branch
57
+ const store = await GitStore.open('data.git', { branch: null }); // branchless
58
+ const store = await GitStore.open('data.git', {
59
+ author: 'alice', email: 'alice@example.com' }); // custom author
60
+ ```
61
+
62
+ The `fs` option defaults to Node's `node:fs` module. Override it to provide a custom filesystem implementation (e.g. `lightning-fs` for browsers).
63
+
64
+ ### Branches and tags
65
+
66
+ ```typescript
67
+ let snap = await store.branches.get('main');
68
+ await store.branches.set('experiment', snap); // fork a branch
69
+ await store.branches.delete('experiment'); // delete a branch
70
+
71
+ await store.tags.set('v1.0', snap); // create a tag
72
+ const tagged = await store.tags.get('v1.0'); // read-only FS
73
+
74
+ const name = await store.branches.getCurrentName(); // 'main'
75
+ snap = await store.branches.getCurrent(); // FS for current branch
76
+ await store.branches.setCurrent('dev'); // set current branch
77
+
78
+ for await (const name of store.branches) {
79
+ console.log(name);
80
+ }
81
+ console.log(await store.branches.has('main')); // true
82
+ ```
83
+
84
+ ### Reading
85
+
86
+ ```typescript
87
+ const data = await snap.read('path/to/file.bin'); // Uint8Array
88
+ const text = await snap.readText('config.json'); // string (UTF-8)
89
+ const chunk = await snap.read('big.bin', { offset: 100, size: 50 }); // partial read
90
+ const chunk = await snap.readByHash(sha, { offset: 0, size: 1024 }); // read blob by SHA
91
+
92
+ const entries = await snap.ls(); // root listing -- string[]
93
+ const entries = await snap.ls('src'); // subdirectory listing
94
+ const details = await snap.listdir('src'); // WalkEntry[] (name, oid, mode)
95
+ const exists = await snap.exists('path/to/file.bin'); // boolean
96
+ const info = await snap.stat('path/to/file.bin'); // StatResult
97
+ const ftype = await snap.fileType('run.sh'); // FileType.EXECUTABLE
98
+ const nbytes = await snap.size('path/to/file.bin'); // number (bytes)
99
+ const sha = await snap.objectHash('path/to/file.bin'); // 40-char hex SHA
100
+ const treeHash = snap.treeHash; // root tree SHA
101
+
102
+ // Walk the tree (like os.walk)
103
+ for await (const [dirpath, dirnames, files] of snap.walk()) {
104
+ for (const entry of files) {
105
+ console.log(entry.name, entry.mode); // WalkEntry
106
+ }
107
+ }
108
+
109
+ // Glob
110
+ const matches = await snap.glob('**/*.ts'); // sorted string[]
111
+ ```
112
+
113
+ ### Writing
114
+
115
+ Every write auto-commits and returns a new snapshot:
116
+
117
+ ```typescript
118
+ import { FileType } from '@mhalle/vost';
119
+
120
+ snap = await snap.writeText('config.json', '{"key": "value"}');
121
+ snap = await snap.writeText('script.sh', '#!/bin/sh\n', { mode: FileType.EXECUTABLE });
122
+ snap = await snap.writeText('config.json', '{}', { message: 'Reset' });
123
+ snap = await snap.write('image.png', rawBytes); // Uint8Array
124
+ snap = await snap.writeFromFile('big.bin', '/data/big.bin'); // from disk
125
+ snap = await snap.writeSymlink('link', 'target'); // symlink
126
+ snap = await snap.remove('old-file.txt');
127
+
128
+ // Buffered write (commits on close)
129
+ const w = snap.writer('big.bin');
130
+ await w.write(chunk1);
131
+ await w.write(chunk2);
132
+ await w.close();
133
+ snap = w.fs;
134
+
135
+ // Text mode
136
+ const tw = snap.writer('log.txt', 'w');
137
+ await tw.write('line 1\n');
138
+ await tw.write('line 2\n');
139
+ await tw.close();
140
+ snap = tw.fs;
141
+ ```
142
+
143
+ The original `FS` is never mutated:
144
+
145
+ ```typescript
146
+ const snap1 = await store.branches.get('main');
147
+ const snap2 = await snap1.write('new.txt', new TextEncoder().encode('data'));
148
+ console.log(await snap1.exists('new.txt')); // false -- snap1 is unchanged
149
+ console.log(await snap2.exists('new.txt')); // true
150
+ ```
151
+
152
+ ### Batch writes
153
+
154
+ Multiple writes/removes in a single commit:
155
+
156
+ ```typescript
157
+ const batch = snap.batch({ message: 'Import dataset v2' });
158
+ await batch.write('a.txt', new TextEncoder().encode('alpha'));
159
+ await batch.writeFromFile('big.bin', '/data/big.bin');
160
+ await batch.writeSymlink('link.txt', 'a.txt');
161
+ await batch.remove('old.txt');
162
+ snap = await batch.commit(); // single atomic commit
163
+ ```
164
+
165
+ ### Atomic apply
166
+
167
+ Apply multiple writes and removes in a single commit without a batch:
168
+
169
+ ```typescript
170
+ import { WriteEntry } from '@mhalle/vost';
171
+
172
+ snap = await snap.apply(
173
+ {
174
+ 'config.json': new TextEncoder().encode('{"v": 2}'),
175
+ 'script.sh': { data: new TextEncoder().encode('#!/bin/sh\n'), mode: FileType.EXECUTABLE },
176
+ 'link': { target: 'config.json' }, // symlink
177
+ },
178
+ ['old.txt', 'deprecated/'], // removes
179
+ { message: 'Update config and clean up' },
180
+ );
181
+ ```
182
+
183
+ ### History
184
+
185
+ ```typescript
186
+ const parent = await snap.parent(); // FS or null
187
+ const ancestor = await snap.back(3); // 3 commits back
188
+
189
+ for await (const entry of snap.log()) { // full commit log
190
+ console.log(entry.commitHash, await entry.getMessage());
191
+ }
192
+
193
+ for await (const entry of snap.log({ path: 'config.json' })) { // file history
194
+ console.log(entry.commitHash, await entry.getMessage());
195
+ }
196
+
197
+ snap = await snap.undo(); // move branch back 1 commit
198
+ snap = await snap.redo(); // move branch forward 1 reflog step
199
+
200
+ // Reflog
201
+ const entries = await store.branches.reflog('main');
202
+ for (const entry of entries) {
203
+ console.log(entry.oldSha, entry.newSha, entry.message);
204
+ }
205
+ ```
206
+
207
+ ### Copy and sync
208
+
209
+ ```typescript
210
+ // Disk to repo
211
+ snap = await snap.copyIn(['./data/'], 'backup');
212
+ console.log(snap.changes.add); // FileEntry[]
213
+
214
+ // Repo to disk
215
+ await snap.copyOut(['docs'], './local-docs');
216
+
217
+ // Copy between branches (atomic, no disk I/O)
218
+ let main = await store.branches.get('main');
219
+ let dev = await store.branches.get('dev');
220
+ dev = await dev.copyFromRef(main, ['config'], 'imported');
221
+
222
+ // Sync (make identical, including deletes)
223
+ snap = await snap.syncIn('./local', 'data');
224
+ await snap.syncOut('data', './local');
225
+
226
+ // Remove and move within repo
227
+ snap = await snap.remove(['old-dir'], { recursive: true });
228
+ snap = await snap.move(['old.txt'], 'new.txt');
229
+ ```
230
+
231
+ ### Snapshot properties
8
232
 
9
233
  ```typescript
10
- import { GitStore } from 'gitstore';
11
- import fs from 'node:fs';
234
+ snap.commitHash // string -- full 40-char commit SHA
235
+ snap.refName // string | null -- branch or tag name
236
+ snap.writable // boolean -- true for branches, false for tags
237
+ snap.treeHash // string -- root tree SHA
238
+ snap.changes // ChangeReport | null
239
+
240
+ // Async properties (require commit object read)
241
+ await snap.getMessage() // string -- commit message
242
+ await snap.getTime() // Date -- commit timestamp
243
+ await snap.getAuthorName() // string
244
+ await snap.getAuthorEmail() // string
245
+ await snap.getCommitInfo() // { message, time, authorName, authorEmail }
246
+ ```
12
247
 
13
- const store = new GitStore('my-repo.git', { create: true, fs });
248
+ ### Git notes
249
+
250
+ Attach metadata to commits without modifying history. Notes can be addressed by commit hash or ref name (branch/tag):
251
+
252
+ ```typescript
253
+ // Default namespace (refs/notes/commits)
254
+ const ns = store.notes.commits;
14
255
 
15
- const branch = store.branches.get('main');
16
- await branch.write('hello.txt', 'world');
256
+ // By commit hash
257
+ await ns.set(snap.commitHash, 'reviewed by Alice');
258
+ console.log(await ns.get(snap.commitHash)); // 'reviewed by Alice'
259
+
260
+ // By branch or tag name (resolves to tip commit)
261
+ await ns.set('main', 'deployed to staging');
262
+ console.log(await ns.get('main')); // 'deployed to staging'
263
+
264
+ await ns.delete(snap.commitHash);
265
+
266
+ // Custom namespaces
267
+ const reviews = store.notes.namespace('reviews');
268
+ await reviews.set('main', 'LGTM');
269
+
270
+ // Batch writes (single commit)
271
+ const batch = ns.batch();
272
+ await batch.set('main', 'note for main');
273
+ await batch.set('dev', 'note for dev');
274
+ await batch.commit();
275
+
276
+ // Iteration
277
+ for (const hash of await ns.list()) {
278
+ console.log(hash, await ns.get(hash));
279
+ }
280
+ ```
281
+
282
+ ### Backup and restore
283
+
284
+ ```typescript
285
+ const diff = await store.backup('https://github.com/user/repo.git'); // MirrorDiff
286
+ const diff = await store.restore('https://github.com/user/repo.git'); // MirrorDiff
287
+ const diff = await store.backup(url, { dryRun: true }); // preview only
288
+ ```
289
+
290
+ ## Concurrency safety
291
+
292
+ vost uses an advisory file lock (`vost.lock`) to make the stale-snapshot check and ref update atomic. If a branch advances after you obtain a snapshot, writing from the stale snapshot throws `StaleSnapshotError`:
293
+
294
+ ```typescript
295
+ import { StaleSnapshotError, retryWrite } from '@mhalle/vost';
296
+
297
+ let snap = await store.branches.get('main');
298
+ await snap.write('a.txt', new TextEncoder().encode('a')); // advances the branch
299
+
300
+ try {
301
+ await snap.write('b.txt', new TextEncoder().encode('b')); // snap is now stale
302
+ } catch (e) {
303
+ if (e instanceof StaleSnapshotError) {
304
+ snap = await store.branches.get('main'); // re-fetch and retry
305
+ }
306
+ }
307
+
308
+ // Or use retryWrite for automatic retry with backoff
309
+ snap = await retryWrite(store, 'main', 'file.txt', data);
310
+ ```
311
+
312
+ ## Error handling
313
+
314
+ | Exception | When |
315
+ |-----------|------|
316
+ | `FileNotFoundError` | `read`/`remove` on a missing path; `writeFromFile` with a missing local file |
317
+ | `IsADirectoryError` | `read` on a directory path |
318
+ | `NotADirectoryError` | `ls`/`walk` on a file path |
319
+ | `PermissionError` | Writing to a tag snapshot |
320
+ | `KeyNotFoundError` | Accessing a missing branch/tag |
321
+ | `KeyExistsError` | Overwriting an existing tag |
322
+ | `InvalidRefNameError` | Invalid characters in branch/tag name |
323
+ | `InvalidPathError` | Invalid path (`..`, empty segments) |
324
+ | `BatchClosedError` | Writing to a batch after `commit()` |
325
+ | `StaleSnapshotError` | Writing from a snapshot whose branch has moved forward |
326
+
327
+ All errors extend `GitStoreError`.
328
+
329
+ ## Documentation
330
+
331
+ - [API Reference](https://github.com/mhalle/vost/blob/master/ts/docs/api.md) -- classes, methods, and types
332
+ - [Python version](https://github.com/mhalle/vost) -- the reference implementation with CLI
333
+
334
+ ## Deno support
335
+
336
+ vost works under Deno using its Node.js compatibility layer:
337
+
338
+ ```typescript
339
+ import { GitStore } from 'npm:@mhalle/vost';
17
340
 
18
- const content = await branch.readText('hello.txt');
19
- console.log(content); // "world"
341
+ const store = await GitStore.open('/tmp/repo.git');
20
342
  ```
21
343
 
22
344
  ## License
23
345
 
24
- Apache-2.0 see [LICENSE](../LICENSE) for details.
346
+ Apache-2.0 -- see [LICENSE](../LICENSE) for details.
@@ -26,14 +26,14 @@ export declare class GitStore {
26
26
  * Open or create a bare git repository.
27
27
  *
28
28
  * @param path - Path to the bare repository directory.
29
- * @param opts.fs - Node.js `fs` module (or compatible).
29
+ * @param opts.fs - Filesystem module (default: Node.js `node:fs`). Override for custom implementations.
30
30
  * @param opts.create - Create the repo if it doesn't exist (default: true).
31
31
  * @param opts.branch - Initial branch when creating (default: "main"). Null for no branch.
32
32
  * @param opts.author - Default author name (default: "vost").
33
33
  * @param opts.email - Default author email (default: "vost@localhost").
34
34
  */
35
- static open(path: string, opts: {
36
- fs: FsModule;
35
+ static open(path: string, opts?: {
36
+ fs?: FsModule;
37
37
  create?: boolean;
38
38
  branch?: string | null;
39
39
  author?: string;
package/dist/gitstore.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * GitStore: versioned filesystem backed by a bare git repository.
3
3
  */
4
+ import * as nodeFs from 'node:fs';
4
5
  import git from 'isomorphic-git';
5
6
  import { RefDict } from './refdict.js';
6
7
  import { NoteDict } from './notes.js';
@@ -35,14 +36,14 @@ export class GitStore {
35
36
  * Open or create a bare git repository.
36
37
  *
37
38
  * @param path - Path to the bare repository directory.
38
- * @param opts.fs - Node.js `fs` module (or compatible).
39
+ * @param opts.fs - Filesystem module (default: Node.js `node:fs`). Override for custom implementations.
39
40
  * @param opts.create - Create the repo if it doesn't exist (default: true).
40
41
  * @param opts.branch - Initial branch when creating (default: "main"). Null for no branch.
41
42
  * @param opts.author - Default author name (default: "vost").
42
43
  * @param opts.email - Default author email (default: "vost@localhost").
43
44
  */
44
- static async open(path, opts) {
45
- const fsModule = opts.fs;
45
+ static async open(path, opts = {}) {
46
+ const fsModule = opts.fs ?? nodeFs;
46
47
  const create = opts.create ?? true;
47
48
  const branch = opts.branch !== undefined ? opts.branch : 'main';
48
49
  const author = opts.author ?? 'vost';
@@ -1 +1 @@
1
- {"version":3,"file":"gitstore.js","sourceRoot":"","sources":["../src/gitstore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,GAAG,MAAM,gBAAgB,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,OAAO,QAAQ;IACnB,gBAAgB,CAAC,SAAS,CAAW;IACrC,gBAAgB,CAAC,OAAO,CAAS;IACjC,gBAAgB,CAAC,UAAU,CAAY;IAEvC,oCAAoC;IACpC,QAAQ,CAAU;IAClB,gCAAgC;IAChC,IAAI,CAAU;IACd,4BAA4B;IAC5B,KAAK,CAAW;IAEhB,YAAY,QAAkB,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa;QAC3E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACN,OAAO,aAAa,IAAI,CAAC,OAAO,IAAI,CAAC;IACvC,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,IAAY,EACZ,IAMC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC;QAE7C,uBAAuB;QACvB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;YAC7C,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QAE3B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,mBAAmB;QACnB,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,4CAA4C;YAC5C,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACnF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC;gBACtC,EAAE,EAAE,QAAQ;gBACZ,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE;oBACN,OAAO,EAAE,cAAc,MAAM,IAAI;oBACjC,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE;oBAClE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE;iBACtE;aACF,CAAC,CAAC;YAEH,wBAAwB;YACxB,MAAM,GAAG,CAAC,QAAQ,CAAC;gBACjB,EAAE,EAAE,QAAQ;gBACZ,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,cAAc,MAAM,EAAE;gBAC3B,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,kCAAkC;YAClC,MAAM,GAAG,CAAC,QAAQ,CAAC;gBACjB,EAAE,EAAE,QAAQ;gBACZ,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,cAAc,MAAM,EAAE;gBAC7B,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CACV,GAAW,EACX,OAAkE,EAAS;QAE3E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CACX,GAAW,EACX,OAAkE,EAAS;QAE3E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"gitstore.js","sourceRoot":"","sources":["../src/gitstore.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,10 +5,9 @@
5
5
  *
6
6
  * @example
7
7
  * ```ts
8
- * import * as fs from 'node:fs';
9
- * import { GitStore } from 'vost';
8
+ * import { GitStore } from '@mhalle/vost';
10
9
  *
11
- * const store = await GitStore.open('/tmp/myrepo.git', { fs });
10
+ * const store = await GitStore.open('/tmp/myrepo.git');
12
11
  * const snapshot = await store.branches.get('main');
13
12
  *
14
13
  * // Read
package/dist/index.js CHANGED
@@ -5,10 +5,9 @@
5
5
  *
6
6
  * @example
7
7
  * ```ts
8
- * import * as fs from 'node:fs';
9
- * import { GitStore } from 'vost';
8
+ * import { GitStore } from '@mhalle/vost';
10
9
  *
11
- * const store = await GitStore.open('/tmp/myrepo.git', { fs });
10
+ * const store = await GitStore.open('/tmp/myrepo.git');
12
11
  * const snapshot = await store.branches.get('main');
13
12
  *
14
13
  * // Read
package/dist/index.js.map CHANGED
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;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/notes.d.ts CHANGED
@@ -18,6 +18,18 @@ export declare class NoteNamespace {
18
18
  /** @internal */ _namespace: string;
19
19
  /** @internal */ _ref: string;
20
20
  constructor(store: GitStore, namespace: string);
21
+ /**
22
+ * Resolve a target string to a 40-char hex commit hash.
23
+ *
24
+ * If `target` is already a 40-char hex hash, return it as-is.
25
+ * Otherwise try to resolve it as a branch name, then as a tag name.
26
+ *
27
+ * @param target - A commit hash, branch name, or tag name.
28
+ * @returns The resolved 40-char hex commit hash.
29
+ * @throws {GitStoreError} If the target cannot be resolved.
30
+ * @internal
31
+ */
32
+ _resolveTarget(target: string): Promise<string>;
21
33
  toString(): string;
22
34
  private get _fs();
23
35
  private get _gitdir();
@@ -35,33 +47,33 @@ export declare class NoteNamespace {
35
47
  /** @internal Commit a new tree to the notes ref under repo lock. */
36
48
  _commitNoteTree(newTreeOid: string, message: string): Promise<void>;
37
49
  /**
38
- * Get the note text for a commit hash.
50
+ * Get the note text for a commit hash or ref name (branch/tag).
39
51
  *
40
- * @param hash - 40-char lowercase hex commit hash.
52
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
41
53
  * @returns The note text (UTF-8).
42
54
  * @throws {GitStoreError} If no note exists for the hash.
43
55
  */
44
56
  get(hash: string): Promise<string>;
45
57
  /**
46
- * Set or overwrite the note text for a commit hash.
58
+ * Set or overwrite the note text for a commit hash or ref name (branch/tag).
47
59
  *
48
60
  * Creates a commit on the namespace's notes ref.
49
61
  *
50
- * @param hash - 40-char lowercase hex commit hash.
62
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
51
63
  * @param text - Note text (UTF-8 string).
52
64
  */
53
65
  set(hash: string, text: string): Promise<void>;
54
66
  /**
55
- * Delete the note for a commit hash.
67
+ * Delete the note for a commit hash or ref name (branch/tag).
56
68
  *
57
- * @param hash - 40-char lowercase hex commit hash.
69
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
58
70
  * @throws {GitStoreError} If no note exists for the hash.
59
71
  */
60
72
  delete(hash: string): Promise<void>;
61
73
  /**
62
- * Check if a note exists for a commit hash.
74
+ * Check if a note exists for a commit hash or ref name (branch/tag).
63
75
  *
64
- * @param hash - 40-char lowercase hex commit hash.
76
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
65
77
  * @returns True if a note exists.
66
78
  */
67
79
  has(hash: string): Promise<boolean>;
@@ -109,16 +121,16 @@ export declare class NotesBatch {
109
121
  /**
110
122
  * Stage a note write.
111
123
  *
112
- * @param hash - 40-char lowercase hex commit hash.
124
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
113
125
  * @param text - Note text (UTF-8 string).
114
126
  */
115
127
  set(hash: string, text: string): Promise<void>;
116
128
  /**
117
129
  * Stage a note deletion.
118
130
  *
119
- * @param hash - 40-char lowercase hex commit hash.
131
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
120
132
  */
121
- delete(hash: string): void;
133
+ delete(hash: string): Promise<void>;
122
134
  /**
123
135
  * Commit all staged writes and deletes in a single commit.
124
136
  *
package/dist/notes.js CHANGED
@@ -33,6 +33,37 @@ export class NoteNamespace {
33
33
  this._namespace = namespace;
34
34
  this._ref = `refs/notes/${namespace}`;
35
35
  }
36
+ /**
37
+ * Resolve a target string to a 40-char hex commit hash.
38
+ *
39
+ * If `target` is already a 40-char hex hash, return it as-is.
40
+ * Otherwise try to resolve it as a branch name, then as a tag name.
41
+ *
42
+ * @param target - A commit hash, branch name, or tag name.
43
+ * @returns The resolved 40-char hex commit hash.
44
+ * @throws {GitStoreError} If the target cannot be resolved.
45
+ * @internal
46
+ */
47
+ async _resolveTarget(target) {
48
+ if (HEX40_RE.test(target)) {
49
+ return target;
50
+ }
51
+ try {
52
+ const fs = await this._store.branches.get(target);
53
+ return fs.commitHash;
54
+ }
55
+ catch {
56
+ // not a branch — try tag
57
+ }
58
+ try {
59
+ const fs = await this._store.tags.get(target);
60
+ return fs.commitHash;
61
+ }
62
+ catch {
63
+ // not a tag either
64
+ }
65
+ throw new GitStoreError(`Cannot resolve '${target}': not a commit hash, branch, or tag`);
66
+ }
36
67
  toString() {
37
68
  return `NoteNamespace('${this._namespace}')`;
38
69
  }
@@ -290,19 +321,19 @@ export class NoteNamespace {
290
321
  }
291
322
  // -- public API --------------------------------------------------------
292
323
  /**
293
- * Get the note text for a commit hash.
324
+ * Get the note text for a commit hash or ref name (branch/tag).
294
325
  *
295
- * @param hash - 40-char lowercase hex commit hash.
326
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
296
327
  * @returns The note text (UTF-8).
297
328
  * @throws {GitStoreError} If no note exists for the hash.
298
329
  */
299
330
  async get(hash) {
300
- validateHash(hash);
331
+ const h = await this._resolveTarget(hash);
301
332
  const treeOid = await this._treeOid();
302
333
  if (treeOid === null) {
303
334
  throw new KeyNotFoundError(`key not found: ${hash}`);
304
335
  }
305
- const blobOid = await this._findNoteInTree(treeOid, hash);
336
+ const blobOid = await this._findNoteInTree(treeOid, h);
306
337
  if (blobOid === null) {
307
338
  throw new KeyNotFoundError(`key not found: ${hash}`);
308
339
  }
@@ -314,50 +345,50 @@ export class NoteNamespace {
314
345
  return new TextDecoder().decode(blob);
315
346
  }
316
347
  /**
317
- * Set or overwrite the note text for a commit hash.
348
+ * Set or overwrite the note text for a commit hash or ref name (branch/tag).
318
349
  *
319
350
  * Creates a commit on the namespace's notes ref.
320
351
  *
321
- * @param hash - 40-char lowercase hex commit hash.
352
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
322
353
  * @param text - Note text (UTF-8 string).
323
354
  */
324
355
  async set(hash, text) {
325
- validateHash(hash);
356
+ const h = await this._resolveTarget(hash);
326
357
  const writes = new Map();
327
- writes.set(hash, text);
358
+ writes.set(h, text);
328
359
  const treeOid = await this._treeOid();
329
360
  const newTreeOid = await this._buildNoteTree(treeOid, writes, new Set());
330
- await this._commitNoteTree(newTreeOid, `Notes added by 'git notes' on ${hash.slice(0, 7)}`);
361
+ await this._commitNoteTree(newTreeOid, `Notes added by 'git notes' on ${h.slice(0, 7)}`);
331
362
  }
332
363
  /**
333
- * Delete the note for a commit hash.
364
+ * Delete the note for a commit hash or ref name (branch/tag).
334
365
  *
335
- * @param hash - 40-char lowercase hex commit hash.
366
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
336
367
  * @throws {GitStoreError} If no note exists for the hash.
337
368
  */
338
369
  async delete(hash) {
339
- validateHash(hash);
370
+ const h = await this._resolveTarget(hash);
340
371
  const treeOid = await this._treeOid();
341
372
  if (treeOid === null) {
342
373
  throw new KeyNotFoundError(`key not found: ${hash}`);
343
374
  }
344
375
  const deletes = new Set();
345
- deletes.add(hash);
376
+ deletes.add(h);
346
377
  const newTreeOid = await this._buildNoteTree(treeOid, new Map(), deletes);
347
- await this._commitNoteTree(newTreeOid, `Notes removed by 'git notes' on ${hash.slice(0, 7)}`);
378
+ await this._commitNoteTree(newTreeOid, `Notes removed by 'git notes' on ${h.slice(0, 7)}`);
348
379
  }
349
380
  /**
350
- * Check if a note exists for a commit hash.
381
+ * Check if a note exists for a commit hash or ref name (branch/tag).
351
382
  *
352
- * @param hash - 40-char lowercase hex commit hash.
383
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
353
384
  * @returns True if a note exists.
354
385
  */
355
386
  async has(hash) {
356
- validateHash(hash);
387
+ const h = await this._resolveTarget(hash);
357
388
  const treeOid = await this._treeOid();
358
389
  if (treeOid === null)
359
390
  return false;
360
- return (await this._findNoteInTree(treeOid, hash)) !== null;
391
+ return (await this._findNoteInTree(treeOid, h)) !== null;
361
392
  }
362
393
  /**
363
394
  * List all commit hashes that have notes in this namespace.
@@ -434,27 +465,27 @@ export class NotesBatch {
434
465
  /**
435
466
  * Stage a note write.
436
467
  *
437
- * @param hash - 40-char lowercase hex commit hash.
468
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
438
469
  * @param text - Note text (UTF-8 string).
439
470
  */
440
471
  async set(hash, text) {
441
472
  if (this._closed)
442
473
  throw new BatchClosedError('Batch is closed');
443
- validateHash(hash);
444
- this._deletes.delete(hash);
445
- this._writes.set(hash, text);
474
+ const h = await this._ns._resolveTarget(hash);
475
+ this._deletes.delete(h);
476
+ this._writes.set(h, text);
446
477
  }
447
478
  /**
448
479
  * Stage a note deletion.
449
480
  *
450
- * @param hash - 40-char lowercase hex commit hash.
481
+ * @param hash - 40-char lowercase hex commit hash, or a branch/tag name.
451
482
  */
452
- delete(hash) {
483
+ async delete(hash) {
453
484
  if (this._closed)
454
485
  throw new BatchClosedError('Batch is closed');
455
- validateHash(hash);
456
- this._writes.delete(hash);
457
- this._deletes.add(hash);
486
+ const h = await this._ns._resolveTarget(hash);
487
+ this._writes.delete(h);
488
+ this._deletes.add(h);
458
489
  }
459
490
  /**
460
491
  * Commit all staged writes and deletes in a single commit.
package/dist/notes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhalle/vost",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "A versioned filesystem backed by a bare git repository",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",