@vercel/kv2 0.0.9 → 0.0.11

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/dist/index.d.ts CHANGED
@@ -12,5 +12,5 @@ export type { SchemaNodeDef, SchemaDef, TreeNode, TreeNodeIterator, TreeNodePage
12
12
  export type { BlobStore, KV2Options, EntriesIterable, EntriesPage, KeysIterable, KeysPage, KVEntry, KVEntryNotFound, KVGetResult, KVLike, KVSetResult, PrefixString, PutBody, SetOptions, Span, Tracer, } from "./types.js";
13
13
  export type { CreateKVOptions, UpstreamConfig } from "./create-kv.js";
14
14
  export type { KeyMeta } from "./manifest-log.js";
15
- export type { IndexDef, IndexQuery } from "./typed-kv.js";
15
+ export type { IndexDef, IndexQuery, IndexQueryValue } from "./typed-kv.js";
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACN,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,QAAQ,GACR,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACX,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,eAAe,EACf,WAAW,EACX,MAAM,EACN,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,IAAI,EACJ,MAAM,GACN,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACN,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,QAAQ,GACR,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACX,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,eAAe,EACf,WAAW,EACX,MAAM,EACN,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,IAAI,EACJ,MAAM,GACN,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -8,9 +8,13 @@ export interface IndexDef<V> {
8
8
  /**
9
9
  * When I = never (no indexes), resolves to never — so `string | never` = `string`.
10
10
  * When I has values, resolves to a record of optional index keys.
11
+ * Values can be a string (exact match) or `{ prefix: string }` (prefix scan).
11
12
  */
13
+ export type IndexQueryValue = string | {
14
+ prefix: string;
15
+ };
12
16
  export type IndexQuery<I extends string> = [I] extends [never] ? never : {
13
- [K in I]?: string;
17
+ [K in I]?: IndexQueryValue;
14
18
  };
15
19
  /**
16
20
  * A typed sub-store that wraps any KVLike (KV2 or UpstreamKV) with a prefix.
@@ -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
@@ -12,7 +12,13 @@ function parseIndexQuery(filter) {
12
12
  if (entries.length !== 1) {
13
13
  throw new Error(`Index query must have exactly one key, got ${entries.length}`);
14
14
  }
15
- return entries[0];
15
+ const [indexName, rawValue] = entries[0];
16
+ if (typeof rawValue === "object" &&
17
+ rawValue !== null &&
18
+ "prefix" in rawValue) {
19
+ return { indexName, mode: "prefix", value: rawValue.prefix };
20
+ }
21
+ return { indexName, mode: "exact", value: rawValue };
16
22
  }
17
23
  const NOT_FOUND = {
18
24
  exists: false,
@@ -341,7 +347,10 @@ export class TypedKV {
341
347
  // Private: index-based lookups
342
348
  // =========================================================================
343
349
  async getByIndex(filter) {
344
- const [indexName, indexKey] = parseIndexQuery(filter);
350
+ const { indexName, mode, value: indexKey } = parseIndexQuery(filter);
351
+ if (mode === "prefix") {
352
+ throw new Error(`get() does not support prefix queries. Use keys() or entries() instead.`);
353
+ }
345
354
  const def = this.indexes?.[indexName];
346
355
  if (!def) {
347
356
  throw new Error(`Unknown index: "${indexName}"`);
@@ -378,7 +387,7 @@ export class TypedKV {
378
387
  };
379
388
  }
380
389
  keysByIndex(filter) {
381
- const [indexName, indexKey] = parseIndexQuery(filter);
390
+ const { indexName, mode, value } = parseIndexQuery(filter);
382
391
  const def = this.indexes?.[indexName];
383
392
  if (!def) {
384
393
  throw new Error(`Unknown index: "${indexName}"`);
@@ -386,7 +395,9 @@ export class TypedKV {
386
395
  const indexStore = this.indexStores[indexName];
387
396
  const self = this;
388
397
  const isUnique = def.unique ?? false;
389
- if (isUnique) {
398
+ // Exact match on unique index: fast single-key lookup
399
+ if (mode === "exact" && isUnique) {
400
+ const indexKey = value;
390
401
  return {
391
402
  async *[Symbol.asyncIterator]() {
392
403
  const result = await self.getByIndex(filter);
@@ -411,24 +422,86 @@ export class TypedKV {
411
422
  },
412
423
  };
413
424
  }
414
- const scanPrefix = `${indexKey}/`;
425
+ // Exact match on non-unique index: scan {indexKey}/ prefix
426
+ if (mode === "exact") {
427
+ const indexKey = value;
428
+ const scanPrefix = `${indexKey}/`;
429
+ return {
430
+ async *[Symbol.asyncIterator]() {
431
+ for await (const [, entry] of indexStore.entries(scanPrefix)) {
432
+ const primaryKey = await entry.value;
433
+ const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
434
+ if (mainEntry.exists) {
435
+ const val = await mainEntry.value;
436
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
437
+ if (currentKeys.includes(indexKey)) {
438
+ yield primaryKey;
439
+ }
440
+ else {
441
+ indexStore
442
+ .delete(`${indexKey}/${primaryKey}`)
443
+ .catch(() => { });
444
+ }
445
+ }
446
+ else {
447
+ indexStore
448
+ .delete(`${indexKey}/${primaryKey}`)
449
+ .catch(() => { });
450
+ }
451
+ }
452
+ },
453
+ async page(limit, cursor) {
454
+ const { entries, cursor: nextCursor } = await indexStore
455
+ .entries(scanPrefix)
456
+ .page(limit, cursor);
457
+ const keys = [];
458
+ for (const [, entry] of entries) {
459
+ const primaryKey = await entry.value;
460
+ const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
461
+ if (mainEntry.exists) {
462
+ const val = await mainEntry.value;
463
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
464
+ if (currentKeys.includes(indexKey)) {
465
+ keys.push(primaryKey);
466
+ }
467
+ else {
468
+ indexStore
469
+ .delete(`${indexKey}/${primaryKey}`)
470
+ .catch(() => { });
471
+ }
472
+ }
473
+ else {
474
+ indexStore
475
+ .delete(`${indexKey}/${primaryKey}`)
476
+ .catch(() => { });
477
+ }
478
+ }
479
+ return { keys, cursor: nextCursor };
480
+ },
481
+ };
482
+ }
483
+ // Prefix scan (works for both unique and non-unique indexes)
484
+ const scanPrefix = value;
415
485
  return {
416
486
  async *[Symbol.asyncIterator]() {
417
- for await (const [, entry] of indexStore.entries(scanPrefix)) {
487
+ for await (const [scanKey, entry] of indexStore.entries(scanPrefix)) {
418
488
  const primaryKey = await entry.value;
419
489
  const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
420
490
  if (mainEntry.exists) {
421
- const value = await mainEntry.value;
422
- const currentKeys = normalizeIndexKeys(def.key(value, primaryKey));
423
- if (currentKeys.includes(indexKey)) {
491
+ const val = await mainEntry.value;
492
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
493
+ const indexValue = isUnique
494
+ ? scanKey
495
+ : scanKey.slice(0, scanKey.length - primaryKey.length - 1);
496
+ if (currentKeys.includes(indexValue)) {
424
497
  yield primaryKey;
425
498
  }
426
499
  else {
427
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
500
+ indexStore.delete(scanKey).catch(() => { });
428
501
  }
429
502
  }
430
503
  else {
431
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
504
+ indexStore.delete(scanKey).catch(() => { });
432
505
  }
433
506
  }
434
507
  },
@@ -437,21 +510,24 @@ export class TypedKV {
437
510
  .entries(scanPrefix)
438
511
  .page(limit, cursor);
439
512
  const keys = [];
440
- for (const [, entry] of entries) {
513
+ for (const [scanKey, entry] of entries) {
441
514
  const primaryKey = await entry.value;
442
515
  const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
443
516
  if (mainEntry.exists) {
444
- const value = await mainEntry.value;
445
- const currentKeys = normalizeIndexKeys(def.key(value, primaryKey));
446
- if (currentKeys.includes(indexKey)) {
517
+ const val = await mainEntry.value;
518
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
519
+ const indexValue = isUnique
520
+ ? scanKey
521
+ : scanKey.slice(0, scanKey.length - primaryKey.length - 1);
522
+ if (currentKeys.includes(indexValue)) {
447
523
  keys.push(primaryKey);
448
524
  }
449
525
  else {
450
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
526
+ indexStore.delete(scanKey).catch(() => { });
451
527
  }
452
528
  }
453
529
  else {
454
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
530
+ indexStore.delete(scanKey).catch(() => { });
455
531
  }
456
532
  }
457
533
  return { keys, cursor: nextCursor };
@@ -459,7 +535,7 @@ export class TypedKV {
459
535
  };
460
536
  }
461
537
  entriesByIndex(filter) {
462
- const [indexName, indexKey] = parseIndexQuery(filter);
538
+ const { indexName, mode, value } = parseIndexQuery(filter);
463
539
  const def = this.indexes?.[indexName];
464
540
  if (!def) {
465
541
  throw new Error(`Unknown index: "${indexName}"`);
@@ -467,7 +543,9 @@ export class TypedKV {
467
543
  const indexStore = this.indexStores[indexName];
468
544
  const self = this;
469
545
  const isUnique = def.unique ?? false;
470
- if (isUnique) {
546
+ // Exact match on unique index: fast single-entry lookup
547
+ if (mode === "exact" && isUnique) {
548
+ const indexKey = value;
471
549
  return {
472
550
  async *[Symbol.asyncIterator]() {
473
551
  const result = await self.getByIndex(filter);
@@ -494,22 +572,102 @@ export class TypedKV {
494
572
  },
495
573
  };
496
574
  }
497
- const scanPrefix = `${indexKey}/`;
575
+ // Exact match on non-unique index: scan {indexKey}/ prefix
576
+ if (mode === "exact") {
577
+ const indexKey = value;
578
+ const scanPrefix = `${indexKey}/`;
579
+ return {
580
+ async *[Symbol.asyncIterator]() {
581
+ for await (const [, indexEntry] of indexStore.entries(scanPrefix)) {
582
+ const primaryKey = await indexEntry.value;
583
+ const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
584
+ if (mainEntry.exists) {
585
+ const val = await mainEntry.value;
586
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
587
+ if (currentKeys.includes(indexKey)) {
588
+ yield [
589
+ primaryKey,
590
+ {
591
+ exists: true,
592
+ metadata: mainEntry.metadata,
593
+ value: Promise.resolve(val),
594
+ stream: mainEntry.stream,
595
+ version: mainEntry.version,
596
+ update: mainEntry.update,
597
+ },
598
+ ];
599
+ }
600
+ else {
601
+ indexStore
602
+ .delete(`${indexKey}/${primaryKey}`)
603
+ .catch(() => { });
604
+ }
605
+ }
606
+ else {
607
+ indexStore
608
+ .delete(`${indexKey}/${primaryKey}`)
609
+ .catch(() => { });
610
+ }
611
+ }
612
+ },
613
+ async page(limit, cursor) {
614
+ const { entries: indexEntries, cursor: nextCursor } = await indexStore.entries(scanPrefix).page(limit, cursor);
615
+ const entries = [];
616
+ for (const [, indexEntry] of indexEntries) {
617
+ const primaryKey = await indexEntry.value;
618
+ const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
619
+ if (mainEntry.exists) {
620
+ const val = await mainEntry.value;
621
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
622
+ if (currentKeys.includes(indexKey)) {
623
+ entries.push([
624
+ primaryKey,
625
+ {
626
+ exists: true,
627
+ metadata: mainEntry.metadata,
628
+ value: Promise.resolve(val),
629
+ stream: mainEntry.stream,
630
+ version: mainEntry.version,
631
+ update: mainEntry.update,
632
+ },
633
+ ]);
634
+ }
635
+ else {
636
+ indexStore
637
+ .delete(`${indexKey}/${primaryKey}`)
638
+ .catch(() => { });
639
+ }
640
+ }
641
+ else {
642
+ indexStore
643
+ .delete(`${indexKey}/${primaryKey}`)
644
+ .catch(() => { });
645
+ }
646
+ }
647
+ return { entries, cursor: nextCursor };
648
+ },
649
+ };
650
+ }
651
+ // Prefix scan (works for both unique and non-unique indexes)
652
+ const scanPrefix = value;
498
653
  return {
499
654
  async *[Symbol.asyncIterator]() {
500
- for await (const [, indexEntry] of indexStore.entries(scanPrefix)) {
655
+ for await (const [scanKey, indexEntry] of indexStore.entries(scanPrefix)) {
501
656
  const primaryKey = await indexEntry.value;
502
657
  const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
503
658
  if (mainEntry.exists) {
504
- const value = await mainEntry.value;
505
- const currentKeys = normalizeIndexKeys(def.key(value, primaryKey));
506
- if (currentKeys.includes(indexKey)) {
659
+ const val = await mainEntry.value;
660
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
661
+ const indexValue = isUnique
662
+ ? scanKey
663
+ : scanKey.slice(0, scanKey.length - primaryKey.length - 1);
664
+ if (currentKeys.includes(indexValue)) {
507
665
  yield [
508
666
  primaryKey,
509
667
  {
510
668
  exists: true,
511
669
  metadata: mainEntry.metadata,
512
- value: Promise.resolve(value),
670
+ value: Promise.resolve(val),
513
671
  stream: mainEntry.stream,
514
672
  version: mainEntry.version,
515
673
  update: mainEntry.update,
@@ -517,32 +675,33 @@ export class TypedKV {
517
675
  ];
518
676
  }
519
677
  else {
520
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
678
+ indexStore.delete(scanKey).catch(() => { });
521
679
  }
522
680
  }
523
681
  else {
524
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
682
+ indexStore.delete(scanKey).catch(() => { });
525
683
  }
526
684
  }
527
685
  },
528
686
  async page(limit, cursor) {
529
- const { entries: indexEntries, cursor: nextCursor } = await indexStore
530
- .entries(scanPrefix)
531
- .page(limit, cursor);
687
+ const { entries: indexEntries, cursor: nextCursor } = await indexStore.entries(scanPrefix).page(limit, cursor);
532
688
  const entries = [];
533
- for (const [, indexEntry] of indexEntries) {
689
+ for (const [scanKey, indexEntry] of indexEntries) {
534
690
  const primaryKey = await indexEntry.value;
535
691
  const mainEntry = await self.parent.get(self.prefixKey(primaryKey));
536
692
  if (mainEntry.exists) {
537
- const value = await mainEntry.value;
538
- const currentKeys = normalizeIndexKeys(def.key(value, primaryKey));
539
- if (currentKeys.includes(indexKey)) {
693
+ const val = await mainEntry.value;
694
+ const currentKeys = normalizeIndexKeys(def.key(val, primaryKey));
695
+ const indexValue = isUnique
696
+ ? scanKey
697
+ : scanKey.slice(0, scanKey.length - primaryKey.length - 1);
698
+ if (currentKeys.includes(indexValue)) {
540
699
  entries.push([
541
700
  primaryKey,
542
701
  {
543
702
  exists: true,
544
703
  metadata: mainEntry.metadata,
545
- value: Promise.resolve(value),
704
+ value: Promise.resolve(val),
546
705
  stream: mainEntry.stream,
547
706
  version: mainEntry.version,
548
707
  update: mainEntry.update,
@@ -550,11 +709,11 @@ export class TypedKV {
550
709
  ]);
551
710
  }
552
711
  else {
553
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
712
+ indexStore.delete(scanKey).catch(() => { });
554
713
  }
555
714
  }
556
715
  else {
557
- indexStore.delete(`${indexKey}/${primaryKey}`).catch(() => { });
716
+ indexStore.delete(scanKey).catch(() => { });
558
717
  }
559
718
  }
560
719
  return { entries, cursor: nextCursor };
@@ -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/dist/types.d.ts CHANGED
@@ -96,6 +96,7 @@ export interface KVLike<M> {
96
96
  keys(prefix?: string): KeysIterable;
97
97
  entries<V = unknown>(prefix?: string): EntriesIterable<V, M>;
98
98
  getMany<V = unknown>(keys: string[], concurrency?: number): Promise<Map<string, KVEntry<V, M>>>;
99
+ getStore<V, SubM = M, I extends string = never>(subPrefix: string, indexes?: Record<I, import("./typed-kv.js").IndexDef<V>>): import("./typed-kv.js").TypedKV<V, SubM, I>;
99
100
  }
100
101
  /** A string that ends with a forward slash */
101
102
  export type PrefixString = `${string}/`;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/docs/indexes.md CHANGED
@@ -104,6 +104,71 @@ for await (const [key, entry] of docs.entries({ byStatus: "draft" })) {
104
104
  }
105
105
  ```
106
106
 
107
+ ## Prefix Queries (Sorted Iteration)
108
+
109
+ Use `{ prefix: string }` instead of a plain string value to scan all index entries whose key starts with the given prefix. Results are returned in lexicographic order of the index key.
110
+
111
+ ```typescript
112
+ interface Order {
113
+ customer: string;
114
+ createdAt: string; // ISO date, e.g. "2024-01-15T10:30:00Z"
115
+ status: string;
116
+ }
117
+
118
+ const orders = kv.getStore<Order, undefined, "byCreatedAt" | "byStatus">("orders/", {
119
+ byCreatedAt: { key: (o) => o.createdAt },
120
+ byStatus: { key: (o) => o.status },
121
+ });
122
+
123
+ // All orders created in January 2024, sorted by date
124
+ for await (const [key, entry] of orders.entries({ byCreatedAt: { prefix: "2024-01" } })) {
125
+ console.log(key, (await entry.value).createdAt);
126
+ }
127
+
128
+ // All entries sorted by index (empty prefix = match everything)
129
+ for await (const key of orders.keys({ byCreatedAt: { prefix: "" } })) {
130
+ console.log(key);
131
+ }
132
+
133
+ // Pagination works the same way
134
+ const page = await orders.entries({ byCreatedAt: { prefix: "2024-01" } }).page(20);
135
+ ```
136
+
137
+ Prefix queries work with both unique and non-unique indexes. They are **not supported** with `get()` (which returns a single result) — use `keys()` or `entries()` instead.
138
+
139
+ ## Composite Index Keys
140
+
141
+ Concatenate multiple fields into a single index key to support "group by X, sort by Y" queries. Since index entries are scanned lexicographically, the field order determines grouping and sort order.
142
+
143
+ ```typescript
144
+ interface Session {
145
+ ownerId: string;
146
+ createdAt: string; // ISO date
147
+ device: string;
148
+ }
149
+
150
+ const sessions = kv.getStore<Session, undefined, "byOwnerDate">("sessions/", {
151
+ byOwnerDate: {
152
+ // owner first (grouping), then date (sorting within group)
153
+ key: (s) => `${s.ownerId}/${s.createdAt}`,
154
+ },
155
+ });
156
+ ```
157
+
158
+ Use a prefix query to filter by the leading field(s):
159
+
160
+ ```typescript
161
+ // All sessions for user-42, sorted by date
162
+ for await (const [key, entry] of sessions.entries({ byOwnerDate: { prefix: "user-42/" } })) {
163
+ console.log(key, (await entry.value).createdAt);
164
+ }
165
+
166
+ // All sessions for user-42 in January 2024
167
+ sessions.entries({ byOwnerDate: { prefix: "user-42/2024-01" } })
168
+ ```
169
+
170
+ **Important:** Include a separator (like `/`) after each field to prevent partial matches — without it, `"user-4"` would also match `"user-42"`.
171
+
107
172
  ## Index Maintenance
108
173
 
109
174
  Indexes are maintained automatically on `set()` and `delete()`. When you update a value, old index entries are removed and new ones are created.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/kv2",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "KV2 - A type-safe KV store backed by Vercel private blobs with regional caching",
5
5
  "type": "module",
6
6
  "files": [