feat(wasm-sdk): composite document queries on the JS surface - #4605
feat(wasm-sdk): composite document queries on the JS surface#4605QuantumExplorer wants to merge 1 commit into
Conversation
- wasm-sdk: `getCompositeDocuments` and `getCompositeDocumentsWithProofInfo`. The query is the page plus `subQueries` (optional contract, document type, `documents` or `counts`, fixed clauses, per-value limit, and a `bind` naming the page or an earlier documents sub-query); the result is the page and one discriminated sub-result per sub-query, counts keyed by the bound value's base58 identifier. Sub-query contracts go through the same cache as the page's. - js-evo-sdk: `documents.composite` / `documents.compositeWithProof` and a README section with the feed-page example. - platform-test-suite: a composite case next to the chained one (page, like counts from the countable index, the viewer's likes through the byLiker terminal). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
🕓 Ready for review — 55 ahead in queue (commit c80c6c7) |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Replaces #4601, which GitHub closed as merged when a mistaken force-push briefly collapsed the stack's branches onto one commit. Same branch, same content, same base.
Issue being fixed or feature implemented
Last platform PR of the composite document query series (Yappr feed: one merged proof per feed page instead of 15 to 19 round trips). Stack:
sub_queries, drive-abci dispatch)What was done?
getCompositeDocuments(query)andgetCompositeDocumentsWithProofInfo(query), mirroring the chained surface. The query object is the page (dataContractId,documentType,where,orderBy, a requiredlimit) plussubQueries, each with an optionaldataContractId(defaults to the page's),documentType,kind: 'documents' | 'counts', fixedwhere/orderBy, an optional per-valuelimit, and an optionalbind: { source?: 'page' | index, sourceProperty, field }. Sub-query contracts are fetched through the same contract cache as the page's. The result is{ pageDocuments, subResults }, each sub-result a discriminated union:{ kind: 'documents', documents }or{ kind: 'counts', counts: Map<base58 id, bigint> }. TypeScript declarations ride the usual custom section.parse_order_clausebecomes crate-visible next toparse_where_clause.sdk.documents.composite(query)andsdk.documents.compositeWithProof(query), plus a README section with the feed-page example and the four sub-query shapes.dashposts page, one like count per post from the countable[hashtag, postId]index, and the viewer's own likes through thebyLikerterminal (value-bounded, no limit).Usage:
How Has This Been Tested?
cargo test -p wasm-sdk(native): 103 tests green;cargo clippy -p wasm-sdk --testsclean apart from the pre-existing rs-driveDocumentPropertyTypeunused import under verify-only features.import-x/no-unresolvedondashis the usual uninstalled-workspace noise, not a finding).Breaking Changes
None. New methods only.
Checklist
🤖 Generated with Claude Code