@nubbin/store-fs 0.1.0-rc.0 → 0.1.0-rc.4

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.
Files changed (2) hide show
  1. package/README.md +34 -0
  2. package/package.json +18 -2
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # @nubbin/store-fs
2
+
3
+ The reference artifact store for Nubbin, on the filesystem. One file per artifact, one pointer
4
+ file per route, and no aggregate document — so two publishes to different routes cannot lose
5
+ each other's write, because there is no shared file to read and rewrite.
6
+
7
+ ```bash
8
+ npm install @nubbin/store-fs@rc
9
+ ```
10
+
11
+ ```ts
12
+ import { createFsArtifactStore } from "@nubbin/store-fs";
13
+
14
+ const store = createFsArtifactStore("./.nubbin");
15
+ await store.write(artifact);
16
+ await store.publish("/promotions/summer", artifact.hash);
17
+ ```
18
+
19
+ ```text
20
+ .nubbin/
21
+ artifacts/<hash>.json
22
+ routes/%2Fpromotions%2Fsummer.json
23
+ ```
24
+
25
+ Writes are temp-then-rename, so a concurrent reader sees the old pointer or the new one and
26
+ never half of either. `manifest()` reads the pointer directory rather than a stored file, so
27
+ there is nothing to keep in step.
28
+
29
+ It passes a shared `ArtifactStore` contract suite, which is how a replacement adapter proves
30
+ itself equivalent — by execution rather than by inspection.
31
+
32
+ **Release candidate.**
33
+
34
+ <https://effekt.github.io/nubbin/>. MIT.
package/package.json CHANGED
@@ -1,6 +1,22 @@
1
1
  {
2
2
  "name": "@nubbin/store-fs",
3
- "version": "0.1.0-rc.0",
3
+ "version": "0.1.0-rc.4",
4
+ "description": "The reference artifact store for Nubbin: one file per artifact, one pointer file per route, and no aggregate to lose a write.",
5
+ "keywords": [
6
+ "nubbin",
7
+ "storage",
8
+ "page-builder",
9
+ "cms",
10
+ "filesystem"
11
+ ],
12
+ "license": "MIT",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/effekt/nubbin.git",
16
+ "directory": "packages/store-fs"
17
+ },
18
+ "homepage": "https://effekt.github.io/nubbin/",
19
+ "bugs": "https://github.com/effekt/nubbin/issues",
4
20
  "type": "module",
5
21
  "sideEffects": false,
6
22
  "exports": {
@@ -16,7 +32,7 @@
16
32
  "access": "public"
17
33
  },
18
34
  "dependencies": {
19
- "@nubbin/core": "0.1.0-rc.0"
35
+ "@nubbin/core": "0.1.0-rc.4"
20
36
  },
21
37
  "devDependencies": {
22
38
  "@types/node": "25.9.2",