was-teaching-server 0.9.1 → 0.11.0

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 (76) hide show
  1. package/CHANGELOG.md +118 -1
  2. package/README.md +23 -11
  3. package/dist/backends/filesystem.d.ts +247 -4
  4. package/dist/backends/filesystem.d.ts.map +1 -1
  5. package/dist/backends/filesystem.js +711 -81
  6. package/dist/backends/filesystem.js.map +1 -1
  7. package/dist/backends/postgres.d.ts +240 -2
  8. package/dist/backends/postgres.d.ts.map +1 -1
  9. package/dist/backends/postgres.js +800 -42
  10. package/dist/backends/postgres.js.map +1 -1
  11. package/dist/backends/postgresSchema.d.ts.map +1 -1
  12. package/dist/backends/postgresSchema.js +69 -57
  13. package/dist/backends/postgresSchema.js.map +1 -1
  14. package/dist/errors.d.ts +26 -9
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +40 -12
  17. package/dist/errors.js.map +1 -1
  18. package/dist/lib/equalityIndex.d.ts +334 -0
  19. package/dist/lib/equalityIndex.d.ts.map +1 -0
  20. package/dist/lib/equalityIndex.js +552 -0
  21. package/dist/lib/equalityIndex.js.map +1 -0
  22. package/dist/lib/exportManifest.d.ts +9 -0
  23. package/dist/lib/exportManifest.d.ts.map +1 -1
  24. package/dist/lib/exportManifest.js +9 -0
  25. package/dist/lib/exportManifest.js.map +1 -1
  26. package/dist/lib/importTar.d.ts +18 -2
  27. package/dist/lib/importTar.d.ts.map +1 -1
  28. package/dist/lib/importTar.js +77 -4
  29. package/dist/lib/importTar.js.map +1 -1
  30. package/dist/lib/paths.d.ts +33 -0
  31. package/dist/lib/paths.d.ts.map +1 -1
  32. package/dist/lib/paths.js +28 -0
  33. package/dist/lib/paths.js.map +1 -1
  34. package/dist/lib/resourceFileName.d.ts +43 -0
  35. package/dist/lib/resourceFileName.d.ts.map +1 -1
  36. package/dist/lib/resourceFileName.js +63 -0
  37. package/dist/lib/resourceFileName.js.map +1 -1
  38. package/dist/plugin.d.ts.map +1 -1
  39. package/dist/plugin.js +5 -2
  40. package/dist/plugin.js.map +1 -1
  41. package/dist/requests/ChunkRequest.d.ts +104 -0
  42. package/dist/requests/ChunkRequest.d.ts.map +1 -0
  43. package/dist/requests/ChunkRequest.js +396 -0
  44. package/dist/requests/ChunkRequest.js.map +1 -0
  45. package/dist/requests/CollectionRequest.d.ts +22 -5
  46. package/dist/requests/CollectionRequest.d.ts.map +1 -1
  47. package/dist/requests/CollectionRequest.js +192 -11
  48. package/dist/requests/CollectionRequest.js.map +1 -1
  49. package/dist/requests/ResourceRequest.d.ts.map +1 -1
  50. package/dist/requests/ResourceRequest.js +20 -0
  51. package/dist/requests/ResourceRequest.js.map +1 -1
  52. package/dist/requests/SpaceRequest.d.ts +1 -0
  53. package/dist/requests/SpaceRequest.d.ts.map +1 -1
  54. package/dist/requests/SpaceRequest.js +21 -1
  55. package/dist/requests/SpaceRequest.js.map +1 -1
  56. package/dist/routes.d.ts.map +1 -1
  57. package/dist/routes.js +21 -0
  58. package/dist/routes.js.map +1 -1
  59. package/dist/types.d.ts +165 -2
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +19 -18
  62. package/src/backends/filesystem.ts +924 -75
  63. package/src/backends/postgres.ts +1114 -32
  64. package/src/backends/postgresSchema.ts +69 -57
  65. package/src/errors.ts +44 -12
  66. package/src/lib/equalityIndex.ts +769 -0
  67. package/src/lib/importTar.ts +107 -4
  68. package/src/lib/paths.ts +48 -0
  69. package/src/lib/resourceFileName.ts +69 -0
  70. package/src/plugin.ts +5 -2
  71. package/src/requests/ChunkRequest.ts +478 -0
  72. package/src/requests/CollectionRequest.ts +221 -12
  73. package/src/requests/ResourceRequest.ts +20 -0
  74. package/src/requests/SpaceRequest.ts +25 -1
  75. package/src/routes.ts +46 -0
  76. package/src/types.ts +175 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,123 @@
1
1
  # History
2
2
 
3
- ## 0.9.1 - 2026-07-12
3
+ ## 0.11.0 - 2026-07-19
4
+
5
+ ### Added
6
+
7
+ - **The `equality` query profile (the `equality-query` backend feature).** A
8
+ plaintext Collection can now declare which top-level attributes the server
9
+ extracts and indexes, and answer server-side equality queries over them at
10
+ `POST /space/{spaceId}/{collectionId}/query` with `{ "profile": "equality" }`.
11
+ The body carries exactly one of `equals` (a disjunction of `{ name: value }`
12
+ conjunctions) or `has` (attributes that must be present), plus optional
13
+ `count`, `limit`, and an opaque `cursor`; matching is strict JSON equality
14
+ (`"1"` never matches `1`; a multi-valued array attribute matches any element)
15
+ and a query naming an attribute the Collection does not declare is rejected
16
+ fail-closed (`invalid-request-body`, 400). The response is a
17
+ `{ documents: [{ id, data?, custom? }], hasMore, cursor? }` page in ascending
18
+ Resource-id order (`data` for JSON Resources, `custom` for any Resource with
19
+ custom metadata -- so blob Resources are queryable through their `custom`
20
+ tags), or `{ count }`. Unlike the client-computed `blinded-index` profile, the
21
+ server does the extraction, so a plain Resource write is immediately
22
+ queryable; the profile is capability-or-policy readable like List Collection,
23
+ and an encrypted Collection answers `unsupported-operation` (501). Both
24
+ first-party backends evaluate through one shared module so their semantics
25
+ cannot drift.
26
+ - **The `indexes` Collection Description property.** A plaintext Collection opts
27
+ in by declaring `indexes`: an array of attribute-name strings, or objects
28
+ `{ name, source: "content" | "custom", unique: true }` where `source` (default
29
+ `content`) names where the attribute is extracted from -- a JSON Resource's
30
+ content, or any Resource's `custom` metadata object. Declared names must be
31
+ unique across the array. Unlike `encryption`, `indexes` is updatable (entries
32
+ may be added or removed); it MUST NOT be combined with an `encryption` marker
33
+ (rejected `invalid-request-body`, 400, in both directions). An entry marked
34
+ `unique: true` claims per-Collection uniqueness for that attribute's
35
+ `(name, value)` pairs: a content or metadata write whose extracted value is
36
+ already held by a different Resource is rejected with `id-conflict` (409),
37
+ enforced atomically with the write; adding a unique claim to a Collection
38
+ whose stored Resources already violate it is likewise rejected (409).
39
+ - **The GET `filter[attr]=value` equality filter on List Collection.**
40
+ `GET /space/{spaceId}/{collectionId}/?filter[attr]=value` runs the equality
41
+ profile over the same machinery from the anonymous, HTTP-cacheable listing
42
+ endpoint: it answers the same document page. Every filter attribute must be
43
+ declared in the Collection's `indexes` (fail-closed 400); on a `PublicCanRead`
44
+ Collection the filter query needs no capability, so a cache can serve it.
45
+
46
+ ## 0.10.2 - TBD
47
+
48
+ ### Changed
49
+
50
+ - Protocol conformance testing now uses the extracted
51
+ `@interop/was-conformance-suite` package (devDependency) instead of the
52
+ in-tree `conformance/` directory, which has been removed. `pnpm conformance`
53
+ now runs the package's `was-conformance` CLI (URL passed positionally;
54
+ `TEST_SERVER_URL` / `TEST_ONBOARDING_TOKEN` env vars still work as fallbacks),
55
+ and `pnpm conformance:local` still spins up a matched local server but
56
+ delegates the test run to the CLI, forwarding any extra arguments. CI now
57
+ exercises the production build against the CLI twice -- open provisioning and
58
+ onboarding-token-gated -- and uploads the JSON conformance reports as build
59
+ artifacts.
60
+
61
+ ## 0.10.1 - 2026-07-19
62
+
63
+ ### Fixed
64
+
65
+ - CORS registration now sets `exposedHeaders: ['Location', 'ETag', 'Link']`, so
66
+ browser-based clients can read the `Location` header on space/resource
67
+ creation, `ETag` for metaVersion concurrency, and `Link` for pagination and
68
+ policy linkset discovery. Previously these were blocked by the default CORS
69
+ response-header allowlist, breaking browser wallets.
70
+
71
+ ## 0.10.0 - 2026-07-19
72
+
73
+ ### Added
74
+
75
+ - **Chunk addressing for chunked Resources (the `chunked-streams` backend
76
+ feature).** A Resource can now carry an ordered set of opaque chunks,
77
+ addressed at
78
+ `PUT|GET|HEAD|DELETE /space/{spaceId}/{collectionId}/{resourceId}/chunks/{n}`
79
+ with a discovery listing at `.../chunks/` (JSON
80
+ `{ resourceId, count, chunks: [{ index, size, contentType, version }] }`; the
81
+ no-slash form 308-redirects to the container form). A chunk body is raw bytes
82
+ plus a content-type, stored exactly like a binary Resource representation --
83
+ the server never parses or reassembles chunks, so any encryption framing (e.g.
84
+ an EDV `{ index, offset, sequence, jwe }` chunk document, or a future
85
+ authenticated per-chunk AEAD layout) is purely a client concern. Both backends
86
+ implement and advertise the feature, which completes the spec's four-token
87
+ `features` vocabulary (`conditional-writes`, `changes-query`,
88
+ `blinded-index-query`, `chunked-streams`).
89
+ - Chunk semantics: every chunk operation requires its parent Resource to exist
90
+ (404 otherwise -- chunks cannot be orphaned, and an orphan left by out-of-band
91
+ state is unreadable), each chunk carries its own monotonic `ETag` and honors
92
+ `If-Match` / `If-None-Match` (412 on mismatch), oversized chunk bodies reuse
93
+ the per-upload cap (`payload-too-large`, 413), and -- unlike Delete Resource
94
+ -- deleting an absent chunk is a 404, so a reassembling reader can distinguish
95
+ "gone" from "never written". A non-canonical `{n}` (negative, non-integer,
96
+ leading zeros) or one above 2^31-1 is a 400 (both backends enforce the same
97
+ index range). Deleting the parent Resource cascade-deletes its chunks; chunk
98
+ bytes count toward Space/Collection usage and quotas; Space export archives
99
+ carry chunk files and imports restore them (skip-not-overwrite, both backends,
100
+ cross-backend compatible), holding each restored chunk to the same
101
+ canonical-index rule as the live route and skipping orphan chunk files whose
102
+ parent Resource is absent or tombstoned. Chunk writes and deletes never
103
+ surface on the `changes` feed (per spec): a replicating client finishes a
104
+ chunked write by `PUT`ting the parent Resource's own content, which does.
105
+ - Authorization follows the existing exact-match model: chunk writes are
106
+ capability-only and chunk reads capability-or-policy, each against the chunk's
107
+ own full URL (or the `chunks/` container URL for the listing), with the parent
108
+ Resource's policy governing reads.
109
+
110
+ ### Fixed
111
+
112
+ - Postgres backend: the Space's `usage_bytes` quota counter no longer
113
+ over-counts when two writers race to create the same not-yet-existing
114
+ Resource. Under `READ COMMITTED` a `SELECT ... FOR UPDATE` on an absent row
115
+ locks nothing, so both creators read "no prior row" and both counted their
116
+ full byte size as the usage delta, permanently inflating the counter by one
117
+ write's size. Same-key creates now serialize on a transaction-scoped advisory
118
+ lock and re-read the row under lock, so the second writer's precondition,
119
+ version, and usage delta are all computed from the first writer's committed
120
+ row.
4
121
 
5
122
  ### Added
6
123
 
package/README.md CHANGED
@@ -272,30 +272,42 @@ reusable.
272
272
 
273
273
  ### Conformance Tests
274
274
 
275
- The `conformance/` suite runs against any external WAS server. The server's
276
- `SERVER_URL` and the test's `TEST_SERVER_URL` **must be byte-for-byte
277
- identical** (including host and port) ZCap `invocationTarget` URLs embed the
278
- full host:port, so even `localhost` vs `127.0.0.1` or a port mismatch will make
279
- delegated-access tests 404.
275
+ Protocol conformance testing lives in its own package,
276
+ [`@interop/was-conformance-suite`](https://github.com/interop-alliance/was-conformance-suite),
277
+ which ships a `was-conformance` CLI that runs against any WAS server by URL
278
+ (installed here as a devDependency). The URL passed to the CLI and the server's
279
+ `SERVER_URL` **must be byte-for-byte identical** (including host and port) —
280
+ ZCap `invocationTarget` URLs embed the full host:port, so even `localhost` vs
281
+ `127.0.0.1` or a port mismatch will make delegated-access tests 404.
280
282
 
281
283
  For a local run, `pnpm conformance:local` does the whole dance for you: it spins
282
- up the server on a fixed local URL, waits until it answers, runs the suite with
283
- a matching `TEST_SERVER_URL`, and tears the server down afterward (even if the
284
- suite fails) — so the two URLs can't drift out of sync.
284
+ up the server on a fixed local URL, waits until it answers, runs the CLI against
285
+ that same URL, and tears the server down afterward (even if the suite fails) —
286
+ so the two URLs can't drift out of sync.
285
287
 
286
288
  ```bash
287
289
  # One-shot local run (recommended). Override the port with PORT=... if 3002 is
288
- # taken; the server and test URLs are both derived from it, so they stay in sync.
290
+ # taken; the server and CLI URLs are both derived from it, so they stay in
291
+ # sync. Arguments after -- are forwarded to the CLI.
289
292
  pnpm conformance:local
293
+ pnpm conformance:local -- --grep chunk --reporter json
290
294
 
291
295
  # Against an already-running or external server. Start it with a matching
292
296
  # SERVER_URL, then in another shell:
293
- TEST_SERVER_URL=https://was.example.com pnpm conformance
297
+ pnpm conformance https://was.example.com
294
298
 
295
299
  # With an onboarding token, for servers that require one for POST /spaces/:
296
- TEST_SERVER_URL=https://was.example.com TEST_ONBOARDING_TOKEN=abc123 pnpm conformance
300
+ pnpm conformance https://was.example.com --token abc123
301
+
302
+ # TEST_SERVER_URL / TEST_ONBOARDING_TOKEN env vars still work as fallbacks:
303
+ TEST_SERVER_URL=https://was.example.com pnpm conformance
297
304
  ```
298
305
 
306
+ Useful CLI options: `-s/--suite <id>`, `-g/--grep <pattern>`,
307
+ `--include-optional` / `--skip-optional`, `-r json`, `--timeout <ms>`,
308
+ `--fail-fast`. Exit codes: `0` conformant, `1` failures, `2` usage error or
309
+ server unreachable.
310
+
299
311
  ## Security
300
312
 
301
313
  This is an experimental research server.
@@ -1,6 +1,7 @@
1
1
  import { Transform, type Readable } from 'node:stream';
2
2
  import type { FastifyBaseLogger } from 'fastify';
3
3
  import type { BlindedIndexQuery, BlindedIndexQueryPage } from '../lib/blindedIndex.js';
4
+ import type { EqualityQuery, EqualityQueryPage, EqualityValue, NormalizedIndexDeclaration } from '../lib/equalityIndex.js';
4
5
  import type { SpaceDescription, CollectionDescription, CollectionSummary, CollectionResourcesList, ResourceResult, ResourceMetadata, ResourceMetadataCustom, ResourceInput, ImportStats, PolicyDocument, BackendDescriptor, BackendUsage, CollectionUsage, StorageBackend, StoredBackendRecord, KeystoreConfig, KmsKeyRecord, RevocationRecord, RevocationScope, CapabilitySummary, IDID } from '../types.js';
5
6
  /**
6
7
  * The on-disk shape of a Resource's metadata sidecar (`.meta.<resourceId>.json`,
@@ -157,8 +158,9 @@ export declare class FileSystemBackend implements StorageBackend {
157
158
  * It advertises the `conditional-writes` affordance: it exposes a per-Resource
158
159
  * `version` as an HTTP `ETag` validator and honors `If-Match` / `If-None-Match`
159
160
  * write preconditions atomically (returning `412 precondition-failed` on a
160
- * mismatch). The remaining `features` vocabulary token (`chunked-streams`)
161
- * is not implemented yet and is added when it lands.
161
+ * mismatch). It also advertises `chunked-streams`: chunk addressing for large
162
+ * Resources (`/{resourceId}/chunks/{n}`), each chunk stored opaquely like a
163
+ * binary Resource representation.
162
164
  * (Client-side encryption is deliberately not a backend feature: encrypted
163
165
  * documents are opaque client-encrypted JSON this backend already stores
164
166
  * faithfully, with no server cooperation.)
@@ -589,13 +591,14 @@ export declare class FileSystemBackend implements StorageBackend {
589
591
  * @param [options.ifNoneMatch] {boolean} `If-None-Match: *` (create-if-absent)
590
592
  * @returns {Promise<{ version: number }>} the Resource's new version
591
593
  */
592
- writeResource({ spaceId, collectionId, resourceId, input, createdBy, epoch, ifMatch, ifNoneMatch }: {
594
+ writeResource({ spaceId, collectionId, resourceId, input, createdBy, epoch, uniqueIndexes, ifMatch, ifNoneMatch }: {
593
595
  spaceId: string;
594
596
  collectionId: string;
595
597
  resourceId: string;
596
598
  input: ResourceInput;
597
599
  createdBy?: IDID;
598
600
  epoch?: string;
601
+ uniqueIndexes?: NormalizedIndexDeclaration[];
599
602
  ifMatch?: string;
600
603
  ifNoneMatch?: boolean;
601
604
  }): Promise<{
@@ -609,6 +612,24 @@ export declare class FileSystemBackend implements StorageBackend {
609
612
  * @returns {Promise<{ version: number }>}
610
613
  */
611
614
  private _writeResourceLocked;
615
+ /**
616
+ * Writes a representation body (JSON value or byte stream) to `filePath`,
617
+ * applying the same size guards every write path shares: the per-upload cap
618
+ * (413 `PayloadTooLargeError`) and, when a byte quota is configured, the
619
+ * Space headroom (507). A JSON body is fully in memory, so its size is checked
620
+ * up front and written atomically; a binary body is streamed through the cap /
621
+ * quota guards into a temp file and durably committed (fsync + rename + dir
622
+ * fsync), removing the partial file on any failure. Shared by the Resource
623
+ * write path (`_writeResourceLocked`) and the chunk write path
624
+ * (`_writeChunkLocked`); the caller has already resolved `filePath` and ensured
625
+ * its parent directory exists for the streamed case.
626
+ * @param options {object}
627
+ * @param options.spaceId {string}
628
+ * @param options.filePath {string} absolute path of the representation file
629
+ * @param options.input {ResourceInput}
630
+ * @returns {Promise<void>}
631
+ */
632
+ private _writeRepresentationBytes;
612
633
  /**
613
634
  * Builds the per-Resource serialization key for `_writeMutex`
614
635
  * (`<spaceId>/<collectionId>/<resourceId>`), so conditional writes to distinct
@@ -767,12 +788,13 @@ export declare class FileSystemBackend implements StorageBackend {
767
788
  * @returns {Promise<{ metaVersion: number } | undefined>} the new
768
789
  * `metaVersion`, or `undefined` when the Resource does not exist
769
790
  */
770
- writeResourceMetadata({ spaceId, collectionId, resourceId, custom, epoch, ifMatch, ifNoneMatch }: {
791
+ writeResourceMetadata({ spaceId, collectionId, resourceId, custom, epoch, uniqueIndexes, ifMatch, ifNoneMatch }: {
771
792
  spaceId: string;
772
793
  collectionId: string;
773
794
  resourceId: string;
774
795
  custom: ResourceMetadataCustom | Record<string, unknown>;
775
796
  epoch?: string;
797
+ uniqueIndexes?: NormalizedIndexDeclaration[];
776
798
  ifMatch?: string;
777
799
  ifNoneMatch?: boolean;
778
800
  }): Promise<{
@@ -808,6 +830,146 @@ export declare class FileSystemBackend implements StorageBackend {
808
830
  resourceId: string;
809
831
  ifMatch?: string;
810
832
  }): Promise<void>;
833
+ /**
834
+ * Builds the on-disk path for a Resource's chunk directory
835
+ * (`.chunks.<encodedResourceId>/`) inside its Collection dir. A hidden
836
+ * subdirectory (leading `.`, so it is invisible to the `r.`-prefixed Collection
837
+ * listing and the live-Resource count) that holds the Resource's chunk
838
+ * representations; inside it a chunk is stored exactly like a Resource keyed by
839
+ * its index (`r.<index>.<encodedContentType>.<ext>` plus a `.meta.<index>.json`
840
+ * version sidecar), so the Resource file / sidecar helpers are reused verbatim
841
+ * with the chunk directory as the `collectionDir`.
842
+ * @param options {object}
843
+ * @param options.collectionDir {string}
844
+ * @param options.resourceId {string}
845
+ * @returns {string}
846
+ */
847
+ _chunkDir({ collectionDir, resourceId }: {
848
+ collectionDir: string;
849
+ resourceId: string;
850
+ }): string;
851
+ /**
852
+ * Writes one chunk of a chunked Resource, keyed by
853
+ * `(spaceId, collectionId, resourceId, chunkIndex)`. The parent Resource MUST
854
+ * already exist (else `ResourceNotFoundError`, 404), checked under the same
855
+ * per-Resource lock a `deleteResource` cascade takes so a chunk can never be
856
+ * orphaned by a racing delete. The body is stored opaquely (bytes +
857
+ * content-type) through the shared upload-cap / quota guards, and the chunk's
858
+ * own monotonic `version` (its ETag validator, independent of the parent's) is
859
+ * bumped; any `If-Match` / `If-None-Match` precondition is evaluated on that
860
+ * version atomically with the write (`PreconditionFailedError`, 412).
861
+ * @param options {object}
862
+ * @param options.spaceId {string}
863
+ * @param options.collectionId {string}
864
+ * @param options.resourceId {string}
865
+ * @param options.chunkIndex {number} non-negative integer chunk position
866
+ * @param options.input {ResourceInput}
867
+ * @param [options.ifMatch] {string} `If-Match` precondition (a quoted ETag)
868
+ * @param [options.ifNoneMatch] {boolean} `If-None-Match: *` (create-if-absent)
869
+ * @returns {Promise<{ version: number }>} the chunk's new version
870
+ */
871
+ writeChunk({ spaceId, collectionId, resourceId, chunkIndex, input, ifMatch, ifNoneMatch }: {
872
+ spaceId: string;
873
+ collectionId: string;
874
+ resourceId: string;
875
+ chunkIndex: number;
876
+ input: ResourceInput;
877
+ ifMatch?: string;
878
+ ifNoneMatch?: boolean;
879
+ }): Promise<{
880
+ version: number;
881
+ }>;
882
+ /**
883
+ * The critical section of `writeChunk`, run under the per-Resource lock. See
884
+ * `writeChunk` for the parameters.
885
+ * @returns {Promise<{ version: number }>}
886
+ */
887
+ private _writeChunkLocked;
888
+ /**
889
+ * Reads a chunk's bytes, resolving a `ResourceResult` (stream + resolved
890
+ * content-type + the chunk's `version`). Throws `ResourceNotFoundError` (404)
891
+ * when the chunk is absent.
892
+ * @param options {object}
893
+ * @param options.spaceId {string}
894
+ * @param options.collectionId {string}
895
+ * @param options.resourceId {string}
896
+ * @param options.chunkIndex {number}
897
+ * @returns {Promise<ResourceResult>}
898
+ */
899
+ getChunk({ spaceId, collectionId, resourceId, chunkIndex }: {
900
+ spaceId: string;
901
+ collectionId: string;
902
+ resourceId: string;
903
+ chunkIndex: number;
904
+ }): Promise<ResourceResult>;
905
+ /**
906
+ * Reads a chunk's stored content-type / size / version (the HEAD payload
907
+ * headers). Resolves `undefined` when the chunk is absent.
908
+ * @param options {object}
909
+ * @param options.spaceId {string}
910
+ * @param options.collectionId {string}
911
+ * @param options.resourceId {string}
912
+ * @param options.chunkIndex {number}
913
+ * @returns {Promise<{ contentType: string, size: number, version?: number } |
914
+ * undefined>}
915
+ */
916
+ getChunkMetadata({ spaceId, collectionId, resourceId, chunkIndex }: {
917
+ spaceId: string;
918
+ collectionId: string;
919
+ resourceId: string;
920
+ chunkIndex: number;
921
+ }): Promise<{
922
+ contentType: string;
923
+ size: number;
924
+ version?: number;
925
+ } | undefined>;
926
+ /**
927
+ * Deletes one chunk (a hard delete: its bytes and version sidecar both go, and
928
+ * -- unlike a Resource -- it leaves no tombstone, since chunks are not part of
929
+ * the change feed). Resolves `true` when a chunk was removed and `false` when
930
+ * none was stored at that index. When `ifMatch` is supplied it is evaluated on
931
+ * the chunk's current version atomically with the removal (under the same
932
+ * per-Resource lock), throwing `PreconditionFailedError` (412) on a mismatch.
933
+ * @param options {object}
934
+ * @param options.spaceId {string}
935
+ * @param options.collectionId {string}
936
+ * @param options.resourceId {string}
937
+ * @param options.chunkIndex {number}
938
+ * @param [options.ifMatch] {string} `If-Match` precondition (a quoted ETag)
939
+ * @returns {Promise<boolean>}
940
+ */
941
+ deleteChunk({ spaceId, collectionId, resourceId, chunkIndex, ifMatch }: {
942
+ spaceId: string;
943
+ collectionId: string;
944
+ resourceId: string;
945
+ chunkIndex: number;
946
+ ifMatch?: string;
947
+ }): Promise<boolean>;
948
+ /**
949
+ * Lists a Resource's stored chunks in ascending `index` order -- the
950
+ * discovery/reassembly listing (the server never reassembles). Resolves an
951
+ * empty listing when the Resource has no chunk directory (including when the
952
+ * Resource itself is absent -- existence is the parent routes' concern).
953
+ * @param options {object}
954
+ * @param options.spaceId {string}
955
+ * @param options.collectionId {string}
956
+ * @param options.resourceId {string}
957
+ * @returns {Promise<{ count: number, chunks: Array<{ index: number, size:
958
+ * number, contentType: string, version?: number }> }>}
959
+ */
960
+ listChunks({ spaceId, collectionId, resourceId }: {
961
+ spaceId: string;
962
+ collectionId: string;
963
+ resourceId: string;
964
+ }): Promise<{
965
+ count: number;
966
+ chunks: Array<{
967
+ index: number;
968
+ size: number;
969
+ contentType: string;
970
+ version?: number;
971
+ }>;
972
+ }>;
811
973
  /**
812
974
  * Replication change feed (the `changes` query profile; see the
813
975
  * `StorageBackend.changesSince` contract.
@@ -893,6 +1055,87 @@ export declare class FileSystemBackend implements StorageBackend {
893
1055
  * @returns {Promise<Array<{ resourceId: string, document: unknown }>>}
894
1056
  */
895
1057
  private _readJsonCandidates;
1058
+ /**
1059
+ * Plaintext equality query (the `equality` query profile; see the
1060
+ * `StorageBackend.queryByEquality` contract). Reads every live Resource of
1061
+ * the Collection -- JSON Resources carrying parsed `content`, blobs carrying
1062
+ * only their sidecar `custom` -- and hands the candidates to the shared
1063
+ * evaluator (`lib/equalityIndex.ts`) for extraction, matching, ordering, and
1064
+ * cursor pagination. O(n) over the Collection per call, with every JSON body
1065
+ * read -- deliberate for this teaching backend; a materialized backend would
1066
+ * answer from an attribute index. Tombstones are excluded naturally (no live
1067
+ * content file).
1068
+ * @param options {object}
1069
+ * @param options.spaceId {string}
1070
+ * @param options.collectionId {string}
1071
+ * @param options.query {EqualityQuery}
1072
+ * @param options.indexes {NormalizedIndexDeclaration[]} the normalized
1073
+ * declared indexes (the request layer resolves them from the description)
1074
+ * @param [options.count] {boolean} return only the match count
1075
+ * @param [options.limit] {number} requested page size
1076
+ * @param [options.cursor] {string} opaque cursor from a prior page
1077
+ * @returns {Promise<{ count: number } | EqualityQueryPage>}
1078
+ */
1079
+ queryByEquality({ spaceId, collectionId, query, indexes, count, limit, cursor }: {
1080
+ spaceId: string;
1081
+ collectionId: string;
1082
+ query: EqualityQuery;
1083
+ indexes: NormalizedIndexDeclaration[];
1084
+ count?: boolean;
1085
+ limit?: number;
1086
+ cursor?: string;
1087
+ }): Promise<{
1088
+ count: number;
1089
+ } | EqualityQueryPage>;
1090
+ /**
1091
+ * Declare-time uniqueness scan for the `equality` profile (see the
1092
+ * `StorageBackend.findEqualityUniqueViolation` contract): reads the
1093
+ * Collection's live Resources and delegates to the shared scan, which reports
1094
+ * the first `(name, value)` claimed by two different Resources under the given
1095
+ * `unique` declarations (or `undefined` when none is).
1096
+ * @param options {object}
1097
+ * @param options.spaceId {string}
1098
+ * @param options.collectionId {string}
1099
+ * @param options.indexes {NormalizedIndexDeclaration[]}
1100
+ * @returns {Promise<{ name: string, value: EqualityValue } | undefined>}
1101
+ */
1102
+ findEqualityUniqueViolation({ spaceId, collectionId, indexes }: {
1103
+ spaceId: string;
1104
+ collectionId: string;
1105
+ indexes: NormalizedIndexDeclaration[];
1106
+ }): Promise<{
1107
+ name: string;
1108
+ value: EqualityValue;
1109
+ } | undefined>;
1110
+ /**
1111
+ * Reads every live Resource of a Collection as an equality candidate -- the
1112
+ * candidate set for the equality query and the plaintext unique-attribute
1113
+ * conflict scans. Unlike `_readJsonCandidates` this INCLUDES blob Resources
1114
+ * (a blob is queryable through its `custom`-sourced attributes): each entry
1115
+ * resolves `{ resourceId, content?, custom? }`, where `content` is the parsed
1116
+ * JSON of a JSON-typed representation (the blob content read is skipped, and
1117
+ * unparsable JSON is dropped, as in `_readJsonCandidates`) and `custom` is the
1118
+ * `.meta.` sidecar's `custom` when present. Tombstones are excluded naturally
1119
+ * (no live `r.` content file); an optional excluded Resource is skipped. An
1120
+ * absent Collection dir resolves empty.
1121
+ * @param options {object}
1122
+ * @param options.spaceId {string}
1123
+ * @param options.collectionId {string}
1124
+ * @param [options.excludeResourceId] {string} omit this Resource (a conflict
1125
+ * scan excludes the Resource being written)
1126
+ * @returns {Promise<EqualityCandidate[]>}
1127
+ */
1128
+ private _readEqualityCandidates;
1129
+ /**
1130
+ * Reads and parses a single Resource's stored JSON content, or resolves
1131
+ * `undefined` when the Resource is absent, a blob, or unparsable JSON -- the
1132
+ * content side of a custom-sourced unique-attribute claim on a metadata write.
1133
+ * @param options {object}
1134
+ * @param options.collectionDir {string}
1135
+ * @param options.resourceId {string}
1136
+ * @returns {Promise<unknown>}
1137
+ */
1138
+ private _readResourceJsonContent;
896
1139
  /**
897
1140
  * Builds the on-disk path for a policy document. Stored as a dot-file keyed by
898
1141
  * the entity id, alongside the matching `.space.` / `.collection.` description:
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/backends/filesystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/backends/filesystem.ts"],"names":[],"mappings":"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"}