Skip to content

v0.27.0

Choose a tag to compare

@dmitrizagidulin dmitrizagidulin released this 10 Oct 22:49
· 29 commits to main since this release

Changed

  • Depend on @interop/was-client 0.94.0 for parseAbsoluteSpaceTarget,
    allowsAction, and isDenialError.

Added

  • AudienceReader, the member-side reader of one plaintext audience collection
    in another owner's Space, opened on a GET and HEAD zcap and a signer directly
    (AudienceReader.open({ zcap, signer, checkpoint?, pageSize? })). The client
    is built from the zcap's own invocationTarget (was-client's
    parseAbsoluteSpaceTarget), so the audience may live on another host.
    pull() follows the changes feed through its GET form from a per-reader
    checkpoint that moves only with the changes a pull returns, keeps
    kind: 'resource' entries only, replays from the start on a refused
    checkpoint, and falls back to the listing plus one GET per resource on a 405
    or 501 (both snapshot: true). A denial (401, 403, or the masked 404 with its
    capability-revoked / capability-expired causes, on the feed or settled
    against the container after a null body read) pauses the reader with its
    checkpoint kept; replaceCapability({ zcap }) resumes it, and a denial of a
    request in flight under the replaced zcap pauses nothing. Exported with
    AUDIENCE_CHANGES_PAGE_SIZE, AudienceChange, and AudiencePull.

Changed

  • SharedCollectionReader.list() reads the widened changes feed through
    was-client's Collection.documents() walk instead of paging the feed itself.
    Only kind: 'resource' entries with JSON content are kept; the Collection's
    own records, unknown kinds, tombstones (deleted, was _deleted), and binary
    or text/jsonl resources drop out, and the walk resumes from each page's
    checkpoint.
  • Bump @interop/was-sync to 0.8.2. The replica schema carries the server's
    write stamp (updatedAtCounter, originId, nested meta) in place of the
    integer version / metaVersion, at the same schema version, so RxDB refuses
    to reopen an existing replica. No migration or in-code forget is shipped:
    every remembered browser clears its local data (clearLocalData() removes the
    replica with its replication meta) and logs in again once, and local writes
    not yet pushed are lost with the old replica. Also bump @interop/was-client
    to 0.93.2, @interop/wallet-core to 0.104.1, and @interop/wallet-request to
    0.5.1.
  • Docs: the party that asks a wallet for grants is the "requester" (an app,
    service, or agent), replacing "relying party" / "RP" in JSDoc, README, and
    ARCHITECTURE.md. Here the requester is the app running this library.
  • Tests: the in-process server suites boot through was-teaching-server/testing
    (startTestServer, openTempBackend), against the server's 0.40.0 release.