@vercel/kv2 0.0.11 → 0.0.13

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 CHANGED
@@ -8,40 +8,110 @@ 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
11
+ ## Usage patterns
12
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.
13
+ ### Use typed stores, not raw KV
14
+
15
+ Always use `kv.getStore<V>(prefix)` rather than `kv.get`/`kv.set` directly. Typed stores enforce value types, scope keys by prefix, and support indexes.
14
16
 
15
17
  ```typescript
16
18
  const kv = createKV({ prefix: "myapp/" });
17
-
18
- // Good: typed store with enforced value type
19
19
  const users = kv.getStore<User>("users/");
20
20
  await users.set("alice", { name: "Alice", email: "alice@example.com" });
21
+ ```
22
+
23
+ ### Reading values
24
+
25
+ `get()` returns a discriminated union — always check `exists` before accessing `value`. Note that `value` is a `Promise` (lazy-parsed), so it needs `await`.
26
+
27
+ ```typescript
28
+ const result = await users.get("alice");
29
+ if (result.exists) {
30
+ const user = await result.value; // Promise<User>, not User
31
+ console.log(user.name, result.metadata);
32
+ }
33
+ ```
34
+
35
+ ### Indexes
36
+
37
+ Define indexes in `getStore()` to enable lookups by secondary keys. The third type parameter is a union of index names.
38
+
39
+ ```typescript
40
+ const users = kv.getStore<User, undefined, "byEmail" | "byRole">("users/", {
41
+ byEmail: { key: (u) => u.email, unique: true },
42
+ byRole: { key: (u) => u.role },
43
+ });
44
+
45
+ // Exact match on unique index — returns single result
46
+ const result = await users.get({ byEmail: "alice@example.com" });
47
+
48
+ // Exact match on non-unique index — iterate multiple results
49
+ for await (const key of users.keys({ byRole: "admin" })) { ... }
50
+
51
+ // Prefix scan — sorted iteration over a range
52
+ for await (const [key, entry] of users.entries({ byRole: { prefix: "admin" } })) { ... }
21
53
 
22
- // Avoid: raw access loses type safety and prefix scoping
23
- await kv.set("users/alice", someValue);
54
+ // Empty prefix all entries sorted by index key
55
+ for await (const key of users.keys({ byRole: { prefix: "" } })) { ... }
56
+ ```
57
+
58
+ Composite index keys enable "group by X, sort by Y" patterns. Use `/` separators between fields and invert values for descending order (see `docs/indexes.md` for details).
59
+
60
+ ```typescript
61
+ const MAX_TS = 8_640_000_000_000;
62
+ const sessions = kv.getStore<Session, undefined, "byUserNewest">("sessions/", {
63
+ byUserNewest: {
64
+ key: (s) => `${s.userId}/${String(MAX_TS - Date.parse(s.createdAt)).padStart(14, "0")}`,
65
+ },
66
+ });
67
+ // user-42's most recent sessions first
68
+ sessions.entries({ byUserNewest: { prefix: "user-42/" } })
69
+ ```
70
+
71
+ ### Iteration and pagination
72
+
73
+ ```typescript
74
+ // Async iteration
75
+ for await (const [key, entry] of users.entries()) {
76
+ console.log(key, await entry.value);
77
+ }
78
+
79
+ // Cursor-based pagination
80
+ const page1 = await users.keys().page(20);
81
+ const page2 = await users.keys().page(20, page1.cursor);
82
+ ```
83
+
84
+ ### Safe updates with optimistic locking
85
+
86
+ Use `entry.update()` to do read-modify-write with automatic version checking. Throws `KVVersionConflictError` on conflict.
87
+
88
+ ```typescript
89
+ const result = await users.get("alice");
90
+ if (result.exists) {
91
+ const user = await result.value;
92
+ await result.update({ ...user, role: "admin" });
93
+ }
24
94
  ```
25
95
 
26
96
  ## Docs
27
97
 
28
98
  Detailed documentation is available in the package's `docs/` directory. Read files as needed from `node_modules/@vercel/kv2/docs/`:
29
99
 
30
- | File | Topic |
31
- |------|-------|
32
- | `getting-started.md` | Installation, quick start, environment setup |
33
- | `typed-stores.md` | Type-safe sub-stores, key prefixing, nesting |
34
- | `iterating-and-pagination.md` | keys, entries, getMany, cursor pagination |
35
- | `optimistic-locking.md` | Versions, conflict detection, retry patterns |
36
- | `metadata.md` | Typed per-entry metadata |
37
- | `schema-and-trees.md` | defineSchema, tree loading, key builders |
38
- | `indexes.md` | Secondary indexes, unique constraints, reindexing |
39
- | `caching.md` | Cache hierarchy, TTL, custom cache |
40
- | `streaming.md` | Binary format, large values, streaming reads/writes |
41
- | `copy-on-write-branches.md` | Branch isolation, upstream config |
42
- | `testing-and-tracing.md` | Unit testing, tracers, stats |
43
- | `cli.md` | CLI explorer reference |
44
- | `api-reference.md` | Full interface and options documentation |
100
+ | File | Topics |
101
+ |------|--------|
102
+ | `getting-started.md` | Installation, prerequisites, environment variables (`BLOB_READ_WRITE_TOKEN`), how edge caching and CoW branching work |
103
+ | `typed-stores.md` | `getStore<V>()`, type-safe values, automatic key prefixing, nested/hierarchical stores |
104
+ | `iterating-and-pagination.md` | `keys()`, `entries()`, `getMany()`, prefix filtering, cursor-based `page()` pagination, Next.js API route example |
105
+ | `optimistic-locking.md` | Versions/etags, `entry.update()`, read-modify-write retry loops, `expectedVersion`, create-only writes (`override: false`) |
106
+ | `metadata.md` | Typed per-entry metadata via `createKV<M>()`, metadata inheritance in sub-stores, filtering by metadata without loading values |
107
+ | `schema-and-trees.md` | `defineSchema()`, `createSchemaKV()`, hierarchical entity models, type-safe key builders, `tree()` loading with lazy children |
108
+ | `indexes.md` | Defining indexes, unique constraints (`KVIndexConflictError`), multi-value indexes (arrays), prefix queries for sorted iteration, composite index keys (group + sort), key design (padding, DESC via inverted keys, separators), `reindex()`, orphan self-healing |
109
+ | `caching.md` | Write-through caching, tag-based invalidation, cache hierarchy (Runtime Cache, MemoryCache, ProxyCache), TTL configuration |
110
+ | `streaming.md` | `result.stream` for large value reads, `ReadableStream` writes, binary format, `largeValueThreshold` (default 1MB) |
111
+ | `copy-on-write-branches.md` | Preview branch data isolation, virtual forking with upstream fallback, tombstones, automatic environment detection, ManifestLog, branch name encoding |
112
+ | `testing-and-tracing.md` | `FakeBlobStore` for unit tests, integration tests with `INTEGRATION_TEST=1`, tracers: no-op, console, OpenTelemetry (`createOtelTracer`), stats (`createStatsTracer`) |
113
+ | `cli.md` | `kv2` CLI: `keys`, `get`, `set`, `del` commands, `--prefix`/`--env`/`--branch` options, interactive REPL, stdout/stderr contract for piping |
114
+ | `api-reference.md` | Full API: `createKV()`, `KVLike`, `KVGetResult`, `SetOptions`, `TypedKV`, `KV2`, `UpstreamKV`, `SchemaKV`, `KeysIterable`, `EntriesIterable`, error classes, environment variables |
45
115
 
46
116
  ## Types
47
117
 
@@ -57,7 +127,7 @@ Key type definition files in `node_modules/@vercel/kv2/dist/`:
57
127
  |------|-------|
58
128
  | `types.d.ts` | `KVLike`, `KVEntry`, `KVGetResult`, `KVSetResult`, `KeysIterable`, `KeysPage`, `EntriesIterable`, `SetOptions`, `BlobStore`, `Tracer` |
59
129
  | `cached-kv.d.ts` | `KV2` class |
60
- | `typed-kv.d.ts` | `TypedKV` class, `IndexDef`, `IndexQuery` |
130
+ | `typed-kv.d.ts` | `TypedKV` class, `IndexDef`, `IndexQuery`, `IndexQueryValue` |
61
131
  | `create-kv.d.ts` | `createKV()`, `CreateKVOptions`, `UpstreamConfig` |
62
132
  | `upstream-kv.d.ts` | `UpstreamKV` class |
63
133
  | `manifest-log.d.ts` | `ManifestLog`, `KeyMeta` |
@@ -51,6 +51,11 @@ export declare class TypedKV<V, M = undefined, I extends string = never> impleme
51
51
  private indexStores?;
52
52
  constructor(parent: KVLike<M>, prefix: string, indexes?: Record<string, IndexDef<V>>);
53
53
  private prefixKey;
54
+ /**
55
+ * Wrap a parent entry so that `update()` routes through TypedKV.set(),
56
+ * ensuring indexes are maintained on optimistic-locking updates.
57
+ */
58
+ private wrapEntry;
54
59
  /**
55
60
  * Get by primary key or by unique index.
56
61
  *
@@ -1 +1 @@
1
- {"version":3,"file":"typed-kv.d.ts","sourceRoot":"","sources":["../src/typed-kv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-kv.d.ts","sourceRoot":"","sources":["../src/typed-kv.ts"],"names":[],"mappings":"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"}
package/dist/typed-kv.js CHANGED
@@ -76,6 +76,21 @@ export class TypedKV {
76
76
  prefixKey(key) {
77
77
  return `${this.prefix}${key}`;
78
78
  }
79
+ /**
80
+ * Wrap a parent entry so that `update()` routes through TypedKV.set(),
81
+ * ensuring indexes are maintained on optimistic-locking updates.
82
+ */
83
+ wrapEntry(primaryKey, entry) {
84
+ if (!this.indexes)
85
+ return entry;
86
+ return {
87
+ ...entry,
88
+ update: async (value, metadata) => {
89
+ const meta = (metadata ?? entry.metadata);
90
+ return this.set(primaryKey, value, ...[meta, { expectedVersion: entry.version }]);
91
+ },
92
+ };
93
+ }
79
94
  /**
80
95
  * Get by primary key or by unique index.
81
96
  *
@@ -92,7 +107,11 @@ export class TypedKV {
92
107
  if (isIndexQuery(keyOrFilter)) {
93
108
  return this.getByIndex(keyOrFilter);
94
109
  }
95
- return this.parent.get(this.prefixKey(keyOrFilter));
110
+ const key = keyOrFilter;
111
+ const result = await this.parent.get(this.prefixKey(key));
112
+ if (!result.exists)
113
+ return result;
114
+ return this.wrapEntry(key, result);
96
115
  }
97
116
  async set(key, value, ...[metadata, options]) {
98
117
  if (!this.indexes) {
@@ -377,14 +396,14 @@ export class TypedKV {
377
396
  indexStore.delete(indexKey).catch(() => { });
378
397
  return NOT_FOUND;
379
398
  }
380
- return {
399
+ return this.wrapEntry(primaryKey, {
381
400
  exists: true,
382
401
  metadata: entry.metadata,
383
402
  value: Promise.resolve(value),
384
403
  stream: entry.stream,
385
404
  version: entry.version,
386
405
  update: entry.update,
387
- };
406
+ });
388
407
  }
389
408
  keysByIndex(filter) {
390
409
  const { indexName, mode, value } = parseIndexQuery(filter);
@@ -587,14 +606,14 @@ export class TypedKV {
587
606
  if (currentKeys.includes(indexKey)) {
588
607
  yield [
589
608
  primaryKey,
590
- {
609
+ self.wrapEntry(primaryKey, {
591
610
  exists: true,
592
611
  metadata: mainEntry.metadata,
593
612
  value: Promise.resolve(val),
594
613
  stream: mainEntry.stream,
595
614
  version: mainEntry.version,
596
615
  update: mainEntry.update,
597
- },
616
+ }),
598
617
  ];
599
618
  }
600
619
  else {
@@ -622,14 +641,14 @@ export class TypedKV {
622
641
  if (currentKeys.includes(indexKey)) {
623
642
  entries.push([
624
643
  primaryKey,
625
- {
644
+ self.wrapEntry(primaryKey, {
626
645
  exists: true,
627
646
  metadata: mainEntry.metadata,
628
647
  value: Promise.resolve(val),
629
648
  stream: mainEntry.stream,
630
649
  version: mainEntry.version,
631
650
  update: mainEntry.update,
632
- },
651
+ }),
633
652
  ]);
634
653
  }
635
654
  else {
@@ -664,14 +683,14 @@ export class TypedKV {
664
683
  if (currentKeys.includes(indexValue)) {
665
684
  yield [
666
685
  primaryKey,
667
- {
686
+ self.wrapEntry(primaryKey, {
668
687
  exists: true,
669
688
  metadata: mainEntry.metadata,
670
689
  value: Promise.resolve(val),
671
690
  stream: mainEntry.stream,
672
691
  version: mainEntry.version,
673
692
  update: mainEntry.update,
674
- },
693
+ }),
675
694
  ];
676
695
  }
677
696
  else {
@@ -698,14 +717,14 @@ export class TypedKV {
698
717
  if (currentKeys.includes(indexValue)) {
699
718
  entries.push([
700
719
  primaryKey,
701
- {
720
+ self.wrapEntry(primaryKey, {
702
721
  exists: true,
703
722
  metadata: mainEntry.metadata,
704
723
  value: Promise.resolve(val),
705
724
  stream: mainEntry.stream,
706
725
  version: mainEntry.version,
707
726
  update: mainEntry.update,
708
- },
727
+ }),
709
728
  ]);
710
729
  }
711
730
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"typed-kv.js","sourceRoot":"","sources":["../src/typed-kv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-kv.js","sourceRoot":"","sources":["../src/typed-kv.ts"],"names":[],"mappings":"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"}
package/docs/indexes.md CHANGED
@@ -169,6 +169,89 @@ sessions.entries({ byOwnerDate: { prefix: "user-42/2024-01" } })
169
169
 
170
170
  **Important:** Include a separator (like `/`) after each field to prevent partial matches — without it, `"user-4"` would also match `"user-42"`.
171
171
 
172
+ ## Key Design
173
+
174
+ Index keys are scanned in **lexicographic (ascending) order**. This section covers patterns for getting the most out of your index key design.
175
+
176
+ ### Pad numbers with leading zeros
177
+
178
+ Lexicographic sort treats numbers as strings, so `"9"` sorts after `"10"`. Pad numeric values to a fixed width:
179
+
180
+ ```typescript
181
+ // Bad: "9" > "10" lexicographically
182
+ key: (o) => `${o.priority}`
183
+
184
+ // Good: "009" < "010"
185
+ key: (o) => String(o.priority).padStart(3, "0")
186
+ ```
187
+
188
+ ### Use ISO dates for chronological order
189
+
190
+ ISO 8601 strings (`"2024-01-15T10:30:00Z"`) sort correctly as-is — no padding needed.
191
+
192
+ ### Descending order
193
+
194
+ There is no built-in DESC option. Instead, invert the sort key so that lexicographic ascending order produces the desired descending result.
195
+
196
+ **For timestamps** — subtract from a far-future epoch and pad to fixed width:
197
+
198
+ ```typescript
199
+ const MAX_TS = 8_640_000_000_000; // year 2243
200
+
201
+ const messages = kv.getStore<Message, undefined, "byNewest">("messages/", {
202
+ byNewest: {
203
+ key: (m) => String(MAX_TS - new Date(m.createdAt).getTime()).padStart(14, "0"),
204
+ },
205
+ });
206
+
207
+ // Most recent messages first
208
+ for await (const [key, entry] of messages.entries({ byNewest: { prefix: "" } })) {
209
+ console.log((await entry.value).createdAt);
210
+ }
211
+ ```
212
+
213
+ **For scores/priorities** — subtract from a known max:
214
+
215
+ ```typescript
216
+ const MAX_SCORE = 1_000_000;
217
+
218
+ const leaderboard = kv.getStore<Player, undefined, "byTopScore">("players/", {
219
+ byTopScore: {
220
+ key: (p) => String(MAX_SCORE - p.score).padStart(7, "0"),
221
+ },
222
+ });
223
+ ```
224
+
225
+ **Combined with grouping** — composite key with an inverted sort field:
226
+
227
+ ```typescript
228
+ const MAX_TS = 8_640_000_000_000;
229
+
230
+ const sessions = kv.getStore<Session, undefined, "byOwnerNewest">("sessions/", {
231
+ byOwnerNewest: {
232
+ key: (s) => {
233
+ const inv = String(MAX_TS - new Date(s.createdAt).getTime()).padStart(14, "0");
234
+ return `${s.ownerId}/${inv}`;
235
+ },
236
+ },
237
+ });
238
+
239
+ // user-42's most recent sessions first
240
+ sessions.entries({ byOwnerNewest: { prefix: "user-42/" } })
241
+ ```
242
+
243
+ ### Use separators to prevent prefix collisions
244
+
245
+ Always include a delimiter (typically `/`) between fields in composite keys:
246
+
247
+ ```typescript
248
+ // Bad: prefix "user-4" matches "user-4", "user-42", "user-400"
249
+ key: (s) => `${s.ownerId}${s.createdAt}`
250
+
251
+ // Good: prefix "user-4/" only matches user-4
252
+ key: (s) => `${s.ownerId}/${s.createdAt}`
253
+ ```
254
+
172
255
  ## Index Maintenance
173
256
 
174
257
  Indexes are maintained automatically on `set()` and `delete()`. When you update a value, old index entries are removed and new ones are created.
@@ -49,6 +49,21 @@ for (const [key, entry] of results) {
49
49
  }
50
50
  ```
51
51
 
52
+ ## Deleting During Iteration
53
+
54
+ It is safe to delete keys while iterating. Iteration uses cursor-based pagination internally, so deleting an already-yielded key does not corrupt the cursor or cause errors.
55
+
56
+ ```typescript
57
+ // Delete all entries matching a condition
58
+ for await (const key of users.keys()) {
59
+ if (key.startsWith("inactive/")) {
60
+ await users.delete(key);
61
+ }
62
+ }
63
+ ```
64
+
65
+ **Note:** Keys that haven't been yielded yet may or may not be skipped if deleted — this depends on whether they were part of an already-fetched page. If you need a guarantee that every key is visited exactly once, collect keys first and then delete in a separate loop.
66
+
52
67
  ## Cursor-Based Pagination
53
68
 
54
69
  Both `keys()` and `entries()` support cursor-based pagination for HTTP APIs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/kv2",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "description": "KV2 - A type-safe KV store backed by Vercel private blobs with regional caching",
5
5
  "type": "module",
6
6
  "files": [