Inner StoreClient to delegate to after validation
Optional validation options
Optional Readonlytrusted?: booleanWhen true, skips re-validation of the lookup
response against the shape narrowed by the caller's model; defaults to false
An immutable StoreClient wrapping store with input validation
Creates a validating store backed by a delegate.
Each method validates the relevant inputs against the supplied shape before delegating to
store:entryis checked for absolute-IRI form (no query string, no fragment) — failures rejected asRangeErrorstate.id, when present, is checked for equality withentry— mismatches rejected asRangeError, since the entry identifies the target and a contradicting payload identity is a caller errormodelis validated as a template for lookup, with thelookupplain/depth/limitopts forwarded as query-complexity capsstateis validated as a resource for create/ update/insert;createandupdatealways cap captive expansion at depth0(inline captive batches rejected), whileinserthonours itsdepthopt (omitted leaves expansion unbounded)The
trustedopt controls whether lookup responses are re-validated against the shape narrowed by the caller'smodeltemplate before surfacing. Defaults tofalse— connectors whose backing source isn't trusted to deliver shape-conforming data (for example, a remote REST endpoint) get the safe default. Local stores that compute results themselves should passtrusted: trueto skip the redundant pass.Validation failures surface as TraceError or
RangeErrorrejections per the unified Store error channel.