Skip to content

docs: align root README usage section with the v2 packages - #750

Merged
tada5hi merged 6 commits into
masterfrom
docs/readme-v2-alignment
Jul 7, 2026
Merged

docs: align root README usage section with the v2 packages#750
tada5hi merged 6 commits into
masterfrom
docs/readme-v2-alignment

Conversation

@tada5hi

@tada5hi tada5hi commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

Closes out the remaining M4 item of plan 009 (docs v2): the root README v2 alignment — plus a modern redesign of the README and npm-facing READMEs for every package.

v2 alignment

  • Adds a Packages table covering all eight published @rapiq/* packages and states the umbrella decision (no rapiq meta-package for v2 — Option B, decided 2026-07-07).
  • Replaces the v1-era install (npm install rapiq) with per-package installs.
  • Rewrites the Parse usage section against the real v2 API: URLDecoder + SchemaRegistry/defineSchema + QueryVisitor + TypeormAdapter instead of the fictional applyQuery from typeorm-extension.

Docs pages corrected in the same review:

  • getting-started/quick-start.md + integrations/typeorm.md: URLDecoder (not SimpleParser) as the req.query entry point — the decoder owns the wire-name mapping; SimpleParser stays documented for canonical-key input.
  • getting-started/index.md + installation.md: expression-dialect examples updated to the function-call grammar (and(eq(name, 'John'), …)), and @rapiq/codec-url-expression / @rapiq/codec-url added to the package tables.

README redesign

  • New brand mark (.github/assets/logo.svg) atop the README — gradient squircle with the magnifier/filter motif; self-contained, renders on light & dark GitHub themes.
  • Modern layout: centered header + tagline ("Typed REST queries — build, transport, validate, execute."), badge row (stale semantic-release / v1 npm badges replaced by Conventional Commits + MIT shields), documentation quick links, a Why rapiq? section with a four-stage build/transport/validate/execute table, and a tabular Parameters section.
  • Topology-neutral framing: rapiq connects any two applications (browser ↔ API or service ↔ service, e.g. gateway forwarding) — copy says calling/receiving application and caller, not client/server/database.
  • README.MD renamed to the conventional README.md (agent-doc references updated).

Per-package READMEs

Every workspace package gets an npm-facing README (one-liner, install, usage sourced from the corresponding VitePress page, docs link, license) — npm and GitHub directory views are covered even though the main docs live on the VitePress site. Links are absolute URLs so they survive npm publishing; packages/docs gets a short contributor-facing README.

Testing

  • npm run build --workspace=packages/docs passes.
  • Logo SVG validated with xmllint and visually verified via rasterization.

Rewrites the root README for the v2 monorepo (plan 009, M4): package
inventory table, per-package client/server installs (no rapiq umbrella
package), and a parse example using URLDecoder + QueryVisitor +
TypeormAdapter instead of the v1-era typeorm-extension applyQuery.

Docs pages touched by the same review: URLDecoder (not SimpleParser) as
the req.query entry point in quick-start and the typeorm integration,
corrected expression-dialect examples to the function-call grammar, and
added codec-url-expression / codec-url to the package tables.
Copilot AI review requested due to automatic review settings July 7, 2026 17:49
@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@tada5hi, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 29 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3070045a-d362-496d-99ba-cb41c25d90ba

📥 Commits

Reviewing files that changed from the base of the PR and between e7cf15b and d5d41b3.

⛔ Files ignored due to path filters (1)
  • .github/assets/logo.svg is excluded by !**/*.svg
📒 Files selected for processing (14)
  • .agents/conventions.md
  • AGENTS.md
  • README.md
  • packages/codec-url-expression/README.md
  • packages/codec-url-simple/README.md
  • packages/codec-url/README.md
  • packages/core/README.md
  • packages/docs/README.md
  • packages/docs/getting-started/quick-start.md
  • packages/docs/integrations/typeorm.md
  • packages/parser-expression/README.md
  • packages/parser-simple/README.md
  • packages/sql/README.md
  • packages/typeorm/README.md
📝 Walkthrough

Walkthrough

Documentation across README and packages/docs is rewritten to reflect the v2 package split into composable @rapiq/* packages. Examples switch from SimpleParser/applyQuery flows to URLDecoder with SchemaRegistry-based decoding, QueryVisitor, and TypeormAdapter. Package tables are updated for new codec and expression packages.

Changes

Documentation update for URLDecoder-based decoding flow

Layer / File(s) Summary
README installation and parse flow rewrite
README.MD
Table of Contents and Installation section updated for v2 @rapiq/* package split with separate client/server install commands; Parse section and getUsers example rewritten to use SchemaRegistry, URLDecoder, QueryVisitor, and TypeormAdapter with a 400 response on decode failure.
Getting-started docs: packages, installation, quick-start
packages/docs/getting-started/index.md, packages/docs/getting-started/installation.md, packages/docs/getting-started/quick-start.md
Packages table updated for parser-expression/codec-url-expression; installation instructions and optional packages table revised for @rapiq/codec-url-simple; quick-start server example switched from SimpleParser to URLDecoder with schema-based decoding.
Integration docs: simple parser and TypeORM example decoding
packages/docs/integrations/simple.md, packages/docs/integrations/typeorm.md
parser-simple description reworded to describe URL codec wire-name mapping; TypeORM example swaps SimpleParser.parse for decoder.decode from URLDecoder.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • tada5hi/rapiq#699: Introduces/extends URLDecoder in packages/codec-url-simple that this PR's docs now document.
  • tada5hi/rapiq#727: Rewrites the same v2 ecosystem docs/usage flow around URL codec + backend adapters.
  • tada5hi/rapiq#745: Changes URLDecoder.decode's schema-aware boundary that this PR's docs examples now demonstrate.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main README/docs alignment work for v2 packages and usage examples.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/readme-v2-alignment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Aligns the repo’s user-facing docs (root README + VitePress docs) with the actual v2 package layout and APIs, replacing legacy/v1-era install and parsing guidance with the v2 @rapiq/* packages and the URL codec + schema + visitor flow.

Changes:

  • Adds a root README “Packages” overview and updates installation instructions to per-package v2 installs.
  • Rewrites the README “Parse” section to use URLDecoder + SchemaRegistry/defineSchema + QueryVisitor + TypeormAdapter.
  • Updates docs pages to consistently present URLDecoder as the URL entry point and updates expression-dialect examples to the function-call grammar.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
README.MD Adds v2 packages table, updates install instructions, and rewrites server-side parse/apply example to the v2 API surface.
packages/docs/integrations/typeorm.md Updates the TypeORM integration example to use URLDecoder instead of SimpleParser for URL-shaped input.
packages/docs/integrations/simple.md Clarifies @rapiq/parser-simple’s role as the canonical-key parser beneath the URL codec layer.
packages/docs/getting-started/quick-start.md Updates quick start server-side step from “parse” to “decode”, switching to URLDecoder and adjusting guidance text.
packages/docs/getting-started/installation.md Updates recommended server-side installs and expands optional packages list for URL/expression dialect support.
packages/docs/getting-started/index.md Updates the package overview table to include the URL codec packages and function-call expression grammar.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
Comment on lines +229 to +231
const queryBuilder = dataSource
.getRepository(User)
.createQueryBuilder('user');
Comment on lines 105 to 108
export async function getUsers(req: Request, res: Response) {
const query = parser.parse(req.query, { schema: 'user' });
// wire names (filter, page, include, ...) map to canonical parameters
const query = decoder.decode(req.query, { schema: 'user' });

Comment on lines +74 to +76
// accepts the raw query string as well as a pre-parsed object (express req.query);
// URL wire names (filter, page, include, ...) map to their canonical parameters.
const query = decoder.decode(req.query, { schema: 'user' });
Comment thread packages/docs/getting-started/quick-start.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/docs/integrations/typeorm.md`:
- Around line 103-107: The example in getUsers should handle the nullable result
from URLDecoder.decode before proceeding to query.accept. Update the snippet so
the decode call is checked for null and the function returns or throws an error
when decoding fails, then only call query.accept on the non-null query object.
Use the URLDecoder.decode and query.accept symbols to locate the fix.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f4d3beb0-4c40-4d3a-9c61-f68a434dbbd3

📥 Commits

Reviewing files that changed from the base of the PR and between 6289f6a and e7cf15b.

📒 Files selected for processing (6)
  • README.MD
  • packages/docs/getting-started/index.md
  • packages/docs/getting-started/installation.md
  • packages/docs/getting-started/quick-start.md
  • packages/docs/integrations/simple.md
  • packages/docs/integrations/typeorm.md

Comment thread packages/docs/integrations/typeorm.md
tada5hi added 5 commits July 7, 2026 19:56
Adds .github/assets/banner.svg — a self-contained dark hero card
(brand gradient mark, wordmark, tagline and a decorative wire-format
query string) — and restructures the README around it: centered intro,
badge row (stale semantic-release and v1 npm badges replaced by
Conventional Commits and MIT license shields), doc quick links, a 'Why
rapiq?' pipeline overview, and tabular Parameters. Usage examples are
unchanged apart from swapping the axios boilerplate for fetch.

Renames README.MD to the conventional README.md casing and updates the
agent-doc references.
The hero banner card is swapped for a standalone gradient logo mark
plus a plain h1/tagline header, the tagline now claims 'typed REST
queries' rather than 'query language' (the typing lives at the
endpoints, not on the wire), and the ASCII pipeline diagram becomes a
four-stage table (build/transport/validate/execute).
…ent)

rapiq connects any two applications — browser to API or service to
service (gateway forwarding) — so the tagline, pipeline table,
installation groups and schema copy now say calling/receiving
application and caller instead of client/server, and a gateway
composition note follows the pipeline table.
Every workspace package gets an npm-facing README (title, install,
usage sourced from the corresponding VitePress integration/guide page,
docs link, license) so the packages are documented on npm and in
directory views even though the main docs live on the VitePress site.
Links use absolute URLs so they survive npm publishing.
Addresses PR #750 review comments: the README parse example now
imports its dataSource, the quick-start and typeorm end-to-end
examples guard the nullable URLDecoder.decode result before use, the
typeorm end-to-end example gains its missing express/dataSource
imports, and the quick-start tip constructs the SimpleParser it
references instead of using an undeclared variable.
@tada5hi
tada5hi merged commit be7796d into master Jul 7, 2026
2 of 3 checks passed
@tada5hi
tada5hi deleted the docs/readme-v2-alignment branch July 27, 2026 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants