Skip to content

chore: pre-GA cleanup sweep - #866

Merged
tada5hi merged 5 commits into
masterfrom
chore/pre-ga-cleanups
Aug 2, 2026
Merged

chore: pre-GA cleanup sweep#866
tada5hi merged 5 commits into
masterfrom
chore/pre-ga-cleanups

Conversation

@tada5hi

@tada5hi tada5hi commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Small pre-GA cleanups surfaced by the release-readiness audit (plan 025 follow-up):

  • core: remove the deprecated IParserOptions.async escape hatch (plan 025 §4 item 1; zero readers, parseAsync() is the settled path). Breaking, pre-GA sanctioned.
  • core: drop the unused @ucast/sql devDependency (only reference was the manifest itself).
  • adapter-typeorm: fill the empty npm keywords list (mirrors adapter-sql, plus typeorm).
  • parser-simple: remove two stale v1-era todo comments. The deep-nested filter assertion itself is correct under the v2 alias model (the IR keeps the full dotted path; aliasing is the adapters' concern), so only the comments go. This also restores the plan 025 gate that src/ carries no todo markers.
  • codec-url: cover the fields operators in the simple codec spec (closing the operator missing note): the encoder writes the +/- prefixes onto the wire, and a schemaless decode resolves them via Fields.execute (opt-in flattens, exclusion drops).

Deliberately untouched: the @rapiq/adapter-memory peer on adapter-sql/adapter-typeorm (it arrived with the field-gates work in #837 and signals the post-fetch applyFieldConditions contract).

Full build, lint and test are green across all packages.

Summary by CodeRabbit

  • New Features

    • Added descriptive package keywords to improve discoverability.
    • Added coverage for encoding and decoding included and excluded field operators in URLs.
  • Refactor

    • Simplified parser option typing and removed a deprecated public type.
  • Documentation

    • Clarified nested field handling in parser tests.
    • Removed an obsolete internal TODO comment.

tada5hi added 5 commits August 2, 2026 17:43
The async option was deprecated in favor of parseAsync() and had no
remaining readers; IParserOptions itself carried nothing else, so the
type is gone and IParser constrains its options via ObjectLiteral.

BREAKING CHANGE: select the execution mode by calling parse() or
parseAsync(), not via an options flag.
Copilot AI review requested due to automatic review settings August 2, 2026 15:43
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The change removes deprecated parser option typing, adds URL codec tests for field operators, updates package metadata, removes an unused development dependency, and cleans up obsolete TODO comments.

Changes

Parser and codec maintenance

Layer / File(s) Summary
Parser option type cleanup
packages/core/src/parser/types.ts, packages/core/src/parser/parameter/filters/types.ts
IParserOptions is removed. Parser option types now use standalone object shapes with ObjectLiteral defaults and constraints.
Field operator URL test coverage
packages/codec-url/test/unit/simple-fields.spec.ts
Tests cover URL encoding and schemaless decoding for INCLUDE and EXCLUDE field operators.
Metadata and stale-comment cleanup
packages/adapter-typeorm/package.json, packages/core/package.json, packages/parser-simple/src/parameter/filters/module.ts, packages/parser-simple/test/unit/parser/filters.spec.ts
TypeORM keywords are added, @ucast/sql is removed from development dependencies, and obsolete TODO comments are updated or removed.

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

Possibly related PRs

  • tada5hi/rapiq#699: Related to field-operator URL encoding and round-trip test coverage.
  • tada5hi/rapiq#745: Related to parser option type refactoring involving IParserOptions.
  • tada5hi/rapiq#763: Related to removing IParserOptions and using plain ObjectLiteral options.

Suggested reviewers: copilot

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the pull request as a pre-GA cleanup covering deprecated API removal, dependency cleanup, metadata updates, and test improvements.
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.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/pre-ga-cleanups

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

Pre-GA cleanup sweep across the v2 monorepo, primarily removing deprecated parser surface area and aligning metadata/tests with the current v2 behavior.

Changes:

  • Removed the deprecated IParserOptions.async option pathway from @rapiq/core’s parser types (favoring parseAsync() explicitly).
  • Removed unused @ucast/sql from @rapiq/core devDependencies and updated the lockfile accordingly.
  • Added URL codec unit coverage for fields operator prefixes and performed small hygiene cleanups (stale TODO removals; npm keywords fill-in).

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/parser-simple/test/unit/parser/filters.spec.ts Updates stale commentary around deep nested include behavior to reflect v2 alias/IR responsibilities.
packages/parser-simple/src/parameter/filters/module.ts Removes an obsolete TODO comment from the filters parser implementation.
packages/core/src/parser/types.ts Removes deprecated IParserOptions.async from the exported parser type surface; updates generics accordingly.
packages/core/src/parser/parameter/filters/types.ts Drops IParserOptions usage from filters parse options after the deprecation removal.
packages/core/package.json Removes unused @ucast/sql devDependency from core.
packages/codec-url/test/unit/simple-fields.spec.ts Adds a unit test covering encoding of +/- field operators and schemaless decode resolution semantics.
packages/adapter-typeorm/package.json Populates keywords to match the ecosystem vocabulary and include typeorm.
package-lock.json Removes @ucast/sql (and related entries) consistent with the core manifest change.

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

@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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/core/src/parser/types.ts (1)

74-81: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Keep unparameterized IParser options closed.

ObjectLiteral is Record<string, any>, so IParser’s Options = ObjectLiteral type-checks parse(input, { async: true }). Use a no-options default or require a concrete options type, plus a regression test that rejects async.

🤖 Prompt for 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.

In `@packages/core/src/parser/types.ts` around lines 74 - 81, Update the default
Options type parameter on IParser so an unparameterized parser does not accept
arbitrary option properties such as async; use the project’s no-options type or
require callers to provide a concrete options type while preserving typed
options for parameterized parsers. Add a regression type test confirming IParser
rejects { async: true }.
🤖 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.

Outside diff comments:
In `@packages/core/src/parser/types.ts`:
- Around line 74-81: Update the default Options type parameter on IParser so an
unparameterized parser does not accept arbitrary option properties such as
async; use the project’s no-options type or require callers to provide a
concrete options type while preserving typed options for parameterized parsers.
Add a regression type test confirming IParser rejects { async: true }.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0fb66b64-71b7-49ab-913a-c610de7d8963

📥 Commits

Reviewing files that changed from the base of the PR and between 4c37203 and 0c066c3.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (7)
  • packages/adapter-typeorm/package.json
  • packages/codec-url/test/unit/simple-fields.spec.ts
  • packages/core/package.json
  • packages/core/src/parser/parameter/filters/types.ts
  • packages/core/src/parser/types.ts
  • packages/parser-simple/src/parameter/filters/module.ts
  • packages/parser-simple/test/unit/parser/filters.spec.ts
💤 Files with no reviewable changes (2)
  • packages/core/package.json
  • packages/parser-simple/src/parameter/filters/module.ts

@tada5hi
tada5hi merged commit f4e7b68 into master Aug 2, 2026
10 checks passed
@github-actions github-actions Bot mentioned this pull request Aug 2, 2026
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