@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 +334 -12
- package/dist/gitstore.d.ts +3 -3
- package/dist/gitstore.js +4 -3
- package/dist/gitstore.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/notes.d.ts +23 -11
- package/dist/notes.js +58 -27
- package/dist/notes.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,24 +1,346 @@
|
|
|
1
|
-
# vost
|
|
1
|
+
# @mhalle/vost
|
|
2
2
|
|
|
3
|
-
A versioned filesystem backed by a
|
|
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
|
-
##
|
|
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
|
-
|
|
11
|
-
|
|
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
|
-
|
|
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
|
-
|
|
16
|
-
await
|
|
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
|
|
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
|
|
346
|
+
Apache-2.0 -- see [LICENSE](../LICENSE) for details.
|
package/dist/gitstore.d.ts
CHANGED
|
@@ -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`
|
|
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
|
|
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`
|
|
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';
|
package/dist/gitstore.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
9
|
-
* import { GitStore } from 'vost';
|
|
8
|
+
* import { GitStore } from '@mhalle/vost';
|
|
10
9
|
*
|
|
11
|
-
* const store = await GitStore.open('/tmp/myrepo.git'
|
|
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
|
|
9
|
-
* import { GitStore } from 'vost';
|
|
8
|
+
* import { GitStore } from '@mhalle/vost';
|
|
10
9
|
*
|
|
11
|
-
* const store = await GitStore.open('/tmp/myrepo.git'
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
356
|
+
const h = await this._resolveTarget(hash);
|
|
326
357
|
const writes = new Map();
|
|
327
|
-
writes.set(
|
|
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 ${
|
|
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
|
-
|
|
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(
|
|
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 ${
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
444
|
-
this._deletes.delete(
|
|
445
|
-
this._writes.set(
|
|
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
|
-
|
|
456
|
-
this._writes.delete(
|
|
457
|
-
this._deletes.add(
|
|
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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"}
|