@vercel/kv2 0.0.7 → 0.0.9
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/SKILL.md +15 -0
- package/dist/testing/fake-blob-store.d.ts +7 -0
- package/dist/testing/fake-blob-store.d.ts.map +1 -1
- package/dist/testing/fake-blob-store.js +59 -30
- package/dist/testing/fake-blob-store.js.map +1 -1
- package/dist/testing/test-index.d.ts +1 -0
- package/dist/testing/test-index.d.ts.map +1 -1
- package/dist/testing/test-index.js +2 -0
- package/dist/testing/test-index.js.map +1 -1
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -8,6 +8,21 @@ Read the README for a quick overview and code examples:
|
|
|
8
8
|
node_modules/@vercel/kv2/README.md
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Usage pattern
|
|
12
|
+
|
|
13
|
+
Always use typed stores via `kv.getStore<V>(prefix)` rather than calling `kv.get`/`kv.set` directly. Typed stores enforce value types, scope keys by prefix, and support secondary indexes. Raw KV access should only be used for advanced scenarios like cross-store operations or dynamic key patterns.
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
const kv = createKV({ prefix: "myapp/" });
|
|
17
|
+
|
|
18
|
+
// Good: typed store with enforced value type
|
|
19
|
+
const users = kv.getStore<User>("users/");
|
|
20
|
+
await users.set("alice", { name: "Alice", email: "alice@example.com" });
|
|
21
|
+
|
|
22
|
+
// Avoid: raw access loses type safety and prefix scoping
|
|
23
|
+
await kv.set("users/alice", someValue);
|
|
24
|
+
```
|
|
25
|
+
|
|
11
26
|
## Docs
|
|
12
27
|
|
|
13
28
|
Detailed documentation is available in the package's `docs/` directory. Read files as needed from `node_modules/@vercel/kv2/docs/`:
|
|
@@ -10,6 +10,13 @@ interface StoredBlob {
|
|
|
10
10
|
}
|
|
11
11
|
export declare class FakeBlobStore implements BlobStore {
|
|
12
12
|
private blobs;
|
|
13
|
+
private locks;
|
|
14
|
+
/**
|
|
15
|
+
* Serialize writes to the same key to prevent race conditions
|
|
16
|
+
* where concurrent callers all pass precondition checks before
|
|
17
|
+
* any write lands.
|
|
18
|
+
*/
|
|
19
|
+
private withLock;
|
|
13
20
|
get(pathname: string, _options: GetCommandOptions): Promise<GetBlobResult | null>;
|
|
14
21
|
put(pathname: string, body: PutBody, options: PutCommandOptions): Promise<PutBlobResult>;
|
|
15
22
|
del(urlOrPathname: string | string[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-blob-store.d.ts","sourceRoot":"","sources":["../../src/testing/fake-blob-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtD,UAAU,UAAU;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AAqCD,qBAAa,aAAc,YAAW,SAAS;IAC9C,OAAO,CAAC,KAAK,CAAiC;
|
|
1
|
+
{"version":3,"file":"fake-blob-store.d.ts","sourceRoot":"","sources":["../../src/testing/fake-blob-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtD,UAAU,UAAU;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AAqCD,qBAAa,aAAc,YAAW,SAAS;IAC9C,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,KAAK,CAAoC;IAEjD;;;;OAIG;YACW,QAAQ;IAuBhB,GAAG,CACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAmC1B,GAAG,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC,aAAa,CAAC;IA+CnB,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpD,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAoCjE,KAAK,IAAI,IAAI;IAIb,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;CAGjC"}
|
|
@@ -35,6 +35,30 @@ async function toBuffer(body) {
|
|
|
35
35
|
}
|
|
36
36
|
export class FakeBlobStore {
|
|
37
37
|
blobs = new Map();
|
|
38
|
+
locks = new Map();
|
|
39
|
+
/**
|
|
40
|
+
* Serialize writes to the same key to prevent race conditions
|
|
41
|
+
* where concurrent callers all pass precondition checks before
|
|
42
|
+
* any write lands.
|
|
43
|
+
*/
|
|
44
|
+
async withLock(pathname, fn) {
|
|
45
|
+
// Wait for any in-flight write to this key
|
|
46
|
+
while (this.locks.has(pathname)) {
|
|
47
|
+
await this.locks.get(pathname);
|
|
48
|
+
}
|
|
49
|
+
let resolve;
|
|
50
|
+
const lock = new Promise((r) => {
|
|
51
|
+
resolve = r;
|
|
52
|
+
});
|
|
53
|
+
this.locks.set(pathname, lock);
|
|
54
|
+
try {
|
|
55
|
+
return await fn();
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
this.locks.delete(pathname);
|
|
59
|
+
resolve();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
38
62
|
async get(pathname, _options) {
|
|
39
63
|
const blob = this.blobs.get(pathname);
|
|
40
64
|
if (!blob) {
|
|
@@ -68,40 +92,45 @@ export class FakeBlobStore {
|
|
|
68
92
|
};
|
|
69
93
|
}
|
|
70
94
|
async put(pathname, body, options) {
|
|
71
|
-
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (!existingBlob) {
|
|
80
|
-
// Real @vercel/blob throws "The specified key does not exist"
|
|
95
|
+
// Buffer the body outside the lock to avoid holding the lock
|
|
96
|
+
// during potentially slow stream reads, matching real blob store
|
|
97
|
+
// behavior where the server handles serialization.
|
|
98
|
+
const content = await toBuffer(body);
|
|
99
|
+
return this.withLock(pathname, () => {
|
|
100
|
+
const existingBlob = this.blobs.get(pathname);
|
|
101
|
+
// Check allowOverwrite option (default: true based on @vercel/blob behavior)
|
|
102
|
+
const allowOverwrite = options.allowOverwrite ?? true;
|
|
103
|
+
if (!allowOverwrite && existingBlob) {
|
|
81
104
|
throw new BlobPreconditionFailedError();
|
|
82
105
|
}
|
|
83
|
-
|
|
84
|
-
|
|
106
|
+
// Check ifMatch (optimistic locking)
|
|
107
|
+
if (options.ifMatch !== undefined) {
|
|
108
|
+
if (!existingBlob) {
|
|
109
|
+
// Real @vercel/blob throws "The specified key does not exist"
|
|
110
|
+
throw new BlobPreconditionFailedError();
|
|
111
|
+
}
|
|
112
|
+
if (existingBlob.etag !== options.ifMatch) {
|
|
113
|
+
throw new BlobPreconditionFailedError();
|
|
114
|
+
}
|
|
85
115
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
116
|
+
const etag = generateEtag();
|
|
117
|
+
this.blobs.set(pathname, {
|
|
118
|
+
pathname,
|
|
119
|
+
content,
|
|
120
|
+
contentType: options.contentType ?? "application/octet-stream",
|
|
121
|
+
uploadedAt: new Date(),
|
|
122
|
+
size: content.length,
|
|
123
|
+
etag,
|
|
124
|
+
});
|
|
125
|
+
return {
|
|
126
|
+
url: `fake://${pathname}`,
|
|
127
|
+
downloadUrl: `fake://${pathname}?download=1`,
|
|
128
|
+
pathname,
|
|
129
|
+
contentType: options.contentType ?? "application/octet-stream",
|
|
130
|
+
contentDisposition: `attachment; filename="${pathname.split("/").pop()}"`,
|
|
131
|
+
etag,
|
|
132
|
+
};
|
|
96
133
|
});
|
|
97
|
-
return {
|
|
98
|
-
url: `fake://${pathname}`,
|
|
99
|
-
downloadUrl: `fake://${pathname}?download=1`,
|
|
100
|
-
pathname,
|
|
101
|
-
contentType: options.contentType ?? "application/octet-stream",
|
|
102
|
-
contentDisposition: `attachment; filename="${pathname.split("/").pop()}"`,
|
|
103
|
-
etag,
|
|
104
|
-
};
|
|
105
134
|
}
|
|
106
135
|
async del(urlOrPathname) {
|
|
107
136
|
const paths = Array.isArray(urlOrPathname)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-blob-store.js","sourceRoot":"","sources":["../../src/testing/fake-blob-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,2BAA2B,GAO3B,MAAM,cAAc,CAAC;AAYtB,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,SAAS,YAAY;IACpB,OAAO,cAAc,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACpC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO,aAAa;IACjB,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"fake-blob-store.js","sourceRoot":"","sources":["../../src/testing/fake-blob-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-index.d.ts","sourceRoot":"","sources":["../../src/testing/test-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,wBAAwB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,6BAA6B,CAAC;AACrC,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,wBAAwB,CAAC;AAChC,OAAO,+BAA+B,CAAC;AAGvC,OAAO,0BAA0B,CAAC;AAGlC,OAAO,yBAAyB,CAAC;AACjC,OAAO,wBAAwB,CAAC;AAChC,OAAO,6BAA6B,CAAC;AACrC,OAAO,sBAAsB,CAAC;AAG9B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8BAA8B,CAAC;AACtC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,gCAAgC,CAAC;AACxC,OAAO,kCAAkC,CAAC;AAG1C,OAAO,uBAAuB,CAAC;AAG/B,OAAO,gBAAgB,CAAC;AAGxB,OAAO,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"test-index.d.ts","sourceRoot":"","sources":["../../src/testing/test-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,wBAAwB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,6BAA6B,CAAC;AACrC,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,wBAAwB,CAAC;AAChC,OAAO,+BAA+B,CAAC;AAGvC,OAAO,0BAA0B,CAAC;AAGlC,OAAO,yBAAyB,CAAC;AACjC,OAAO,wBAAwB,CAAC;AAChC,OAAO,6BAA6B,CAAC;AACrC,OAAO,sBAAsB,CAAC;AAG9B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8BAA8B,CAAC;AACtC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,gCAAgC,CAAC;AACxC,OAAO,kCAAkC,CAAC;AAG1C,OAAO,uBAAuB,CAAC;AAG/B,OAAO,gBAAgB,CAAC;AAGxB,OAAO,2BAA2B,CAAC;AAGnC,OAAO,mBAAmB,CAAC"}
|
|
@@ -30,6 +30,8 @@ import "../chaos/malformed.chaos.test.js";
|
|
|
30
30
|
import "../indexed-kv.test.js";
|
|
31
31
|
// CLI tests
|
|
32
32
|
import "../cli.test.js";
|
|
33
|
+
// Testing infrastructure tests
|
|
34
|
+
import "./fake-blob-store.test.js";
|
|
33
35
|
// Documentation tests
|
|
34
36
|
import "../readme.test.js";
|
|
35
37
|
//# sourceMappingURL=test-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-index.js","sourceRoot":"","sources":["../../src/testing/test-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,aAAa;AACb,OAAO,wBAAwB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,6BAA6B,CAAC;AACrC,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,wBAAwB,CAAC;AAChC,OAAO,+BAA+B,CAAC;AAEvC,eAAe;AACf,OAAO,0BAA0B,CAAC;AAElC,gCAAgC;AAChC,OAAO,yBAAyB,CAAC;AACjC,OAAO,wBAAwB,CAAC;AAChC,OAAO,6BAA6B,CAAC;AACrC,OAAO,sBAAsB,CAAC;AAE9B,cAAc;AACd,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8BAA8B,CAAC;AACtC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,gCAAgC,CAAC;AACxC,OAAO,kCAAkC,CAAC;AAE1C,sBAAsB;AACtB,OAAO,uBAAuB,CAAC;AAE/B,YAAY;AACZ,OAAO,gBAAgB,CAAC;AAExB,sBAAsB;AACtB,OAAO,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"test-index.js","sourceRoot":"","sources":["../../src/testing/test-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,aAAa;AACb,OAAO,wBAAwB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,6BAA6B,CAAC;AACrC,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,wBAAwB,CAAC;AAChC,OAAO,+BAA+B,CAAC;AAEvC,eAAe;AACf,OAAO,0BAA0B,CAAC;AAElC,gCAAgC;AAChC,OAAO,yBAAyB,CAAC;AACjC,OAAO,wBAAwB,CAAC;AAChC,OAAO,6BAA6B,CAAC;AACrC,OAAO,sBAAsB,CAAC;AAE9B,cAAc;AACd,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8BAA8B,CAAC;AACtC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,gCAAgC,CAAC;AACxC,OAAO,kCAAkC,CAAC;AAE1C,sBAAsB;AACtB,OAAO,uBAAuB,CAAC;AAE/B,YAAY;AACZ,OAAO,gBAAgB,CAAC;AAExB,+BAA+B;AAC/B,OAAO,2BAA2B,CAAC;AAEnC,sBAAsB;AACtB,OAAO,mBAAmB,CAAC"}
|