@cloudbitmaps/roaring 0.18.3 → 0.19.1

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.
@@ -15,7 +15,7 @@ export declare function storageChunkSourceConformance(label: string, makeSource:
15
15
  bitmap: SafeBitmap;
16
16
  }>) => Promise<StorageChunkSource>): void;
17
17
  /** The storage-driver cases {@link storageDriverConformance} runs; an emulator that cannot model one skips it by name. */
18
- export type StorageDriverCase = 'write-once round trip' | 'collision' | 'collision on a large upload' | 'missing object' | 'out-of-range read' | 'tail size' | 'idempotent delete' | 'delete of an absent key beside its neighbours' | 'list read-after-delete';
18
+ export type StorageDriverCase = 'write-once round trip' | 'collision' | 'collision on a large upload' | 'missing object' | 'out-of-range read' | 'tail size' | 'idempotent delete' | 'delete of an absent key beside its neighbours' | 'list read-after-delete' | 'names and namespaces kept apart' | 'generations by number' | 'failed write' | 'missing location' | 'list across pages';
19
19
  /**
20
20
  * Contract tests for an {@link IStorageDriver} — the contract its doc comment lists: write-once with
21
21
  * `WriteConflictError` on a collision, `NotFoundError` for a missing object, `ValidationError` for an out-of-range
@@ -34,13 +34,40 @@ export declare function storageDriverConformance(label: string, makeDriver: () =
34
34
  * sent on a different request than a small object's. Omitted, the case does not run.
35
35
  */
36
36
  readonly largeBytes?: number;
37
+ /**
38
+ * A driver over a bucket or container that does not exist, built fresh on each call. The `missing location` case
39
+ * holds it to failing a range read, a tail read, a delete and a listing with an error that is neither
40
+ * `NotFoundError` nor `TransientError`: read as an absence, a misnamed or deleted bucket answers every read of the
41
+ * store as an empty segment. Omitted, the case does not run.
42
+ */
43
+ readonly missingLocation?: () => IStorageDriver;
44
+ /**
45
+ * How many generations the `list across pages` case writes and lists back. Pass more than one listing page of the
46
+ * driver under test (S3 and GCS list 1,000 a page, Azure Blob 5,000, a test double what it is built with), so a
47
+ * driver that drops its continuation token fails. Omitted, the case does not run.
48
+ */
49
+ readonly pagedListSize?: number;
37
50
  }): void;
38
51
  /**
39
52
  * Contract tests for an {@link IRegistryDriver}. `makeDriver` MUST return a fresh, empty, isolated driver on
40
53
  * each call. The OCC contract (create / token-fenced CAS / ABA) plus the registry's record semantics (forward
41
54
  * currentGen, status, clearable keyId, discovery).
42
55
  */
43
- export declare function registryConformance(label: string, makeDriver: () => IRegistryDriver): void;
56
+ export declare function registryConformance(label: string, makeDriver: () => IRegistryDriver, options?: {
57
+ /**
58
+ * A driver over a bucket or container that does not exist, built fresh on each call. The `missing location` case
59
+ * holds it to failing a read, a listing and a create with an error that is neither `NotFoundError` nor
60
+ * `TransientError`, and never answering a read with `null`: read as an absent row, a misnamed or deleted bucket
61
+ * answers every segment as one with no generation. Omitted, the case does not run.
62
+ */
63
+ readonly missingLocation?: () => IRegistryDriver;
64
+ /**
65
+ * How many rows the `list across pages` case creates and lists back. Pass more than one listing page of the driver
66
+ * under test (S3 and GCS list 1,000 a page, Azure Blob 5,000, a test double what it is built with), so a driver
67
+ * that drops its continuation token fails. Omitted, the case does not run.
68
+ */
69
+ readonly pagedListSize?: number;
70
+ }): void;
44
71
  /**
45
72
  * Contract tests for an {@link IRegistryDriver} under **concurrent writers** — `makeDrivers` MUST return two
46
73
  * independent driver instances over the **same** backing store, as two processes would see it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbitmaps/roaring",
3
- "version": "0.18.3",
3
+ "version": "0.19.1",
4
4
  "description": "Distributed, cloud-native Roaring Bitmaps — query and intersect billion-scale integer sets straight out of object storage, from a bounded RAM cache over immutable objects in your own bucket, at a fraction of an always-on cache.",
5
5
  "keywords": [
6
6
  "roaring",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  "dependencies": {
67
67
  "roaring": "2.7.0",
68
- "@cloudbitmaps/core": "^0.18.3"
68
+ "@cloudbitmaps/core": "^0.19.1"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@types/node": "^22.0.0",