Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"packages/core": "1.0.0",
"packages/parser-simple": "1.0.0",
"packages/parser-expression": "1.0.0",
"packages/parser-mongo": "1.0.0",
"packages/codec-url": "1.0.0",
"packages/sql": "1.0.0",
"packages/typeorm": "1.0.0",
"packages/memory": "1.0.0"
"packages/core": "2.0.0-beta.0",
"packages/parser-simple": "2.0.0-beta.0",
"packages/parser-expression": "2.0.0-beta.0",
"packages/parser-mongo": "2.0.0-beta.0",
"packages/codec-url": "2.0.0-beta.0",
"packages/sql": "2.0.0-beta.0",
"packages/typeorm": "2.0.0-beta.0",
"packages/memory": "2.0.0-beta.0"
}
66 changes: 33 additions & 33 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 46 additions & 0 deletions packages/codec-url/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Changelog

## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/codec-url-v1.0.0...codec-url-v2.0.0-beta.0) (2026-07-17)


### ⚠ BREAKING CHANGES

* every elemMatch node now opens its own quantifier scope in @rapiq/memory - two elemMatches on one field (or an elemMatch beside a dotted sibling) bind independent elements (mongo semantics) instead of sharing one binding. $-prefixed keys are no longer accepted as field names in the build-layer filters object grammar. In the expression filter dialect, elemMatch is now a reserved keyword and $-prefixed words are reserved markers, so fields with these names no longer tokenize.
* **codec-url:** remove @rapiq/codec-url-simple and @rapiq/codec-url-expression as standalone packages.
* relation aliases now use length-prefixed path segments to avoid collisions.
* package rapiq renamed

### Features

* add ITSELF self-reference marker for element-level $elemMatch and $all ([#770](https://github.com/tada5hi/rapiq/issues/770)) ([e1d5c4c](https://github.com/tada5hi/rapiq/commit/e1d5c4c0f4c94bcde359aa92cc118cd773641c03))
* add missing encoder/decoder capabilities + missing tests ([#699](https://github.com/tada5hi/rapiq/issues/699)) ([9f2e69f](https://github.com/tada5hi/rapiq/commit/9f2e69f71cd5a26a0e313f62077dc229bf72463b))
* add size array-length filter operator ([#771](https://github.com/tada5hi/rapiq/issues/771)) ([013bf06](https://github.com/tada5hi/rapiq/commit/013bf06be06d1aef808f50e9a5dc922ab36f75ab))
* codec completion — round-trip subset law, expression url codec & registry ([#748](https://github.com/tada5hi/rapiq/issues/748)) ([42fc558](https://github.com/tada5hi/rapiq/commit/42fc5588975fcd5d5f82ed880b00310e64834e25))
* **codec-url:** consolidate URL codecs ([#765](https://github.com/tada5hi/rapiq/issues/765)) ([b7a7f41](https://github.com/tada5hi/rapiq/commit/b7a7f41be791324e8069ab4d800b41f329efd729))
* replace interpreter with visitor pattern ([#668](https://github.com/tada5hi/rapiq/issues/668)) ([a9c4ae5](https://github.com/tada5hi/rapiq/commit/a9c4ae5f56de8e87da22176711bbc45ef8addb24))
* split in codec-url, parser-simple & parser-expression package ([#663](https://github.com/tada5hi/rapiq/issues/663)) ([4be53ad](https://github.com/tada5hi/rapiq/commit/4be53adfa653bb31ef40a2f0fddb1b70f494f91e))


### Bug Fixes

* **deps:** bump the minorandpatch group across 1 directory with 9 updates ([#689](https://github.com/tada5hi/rapiq/issues/689)) ([bcd7721](https://github.com/tada5hi/rapiq/commit/bcd7721ab8ab8afa3b319d8e6dfaa963194412d9))
* harden v2 beta release ([#763](https://github.com/tada5hi/rapiq/issues/763)) ([51a906a](https://github.com/tada5hi/rapiq/commit/51a906aa1e5d9e8e4bd1e4dc0f9fce8ec4aaddeb))
* minor enhancement to url-codec encoder ([6640ceb](https://github.com/tada5hi/rapiq/commit/6640ceb58fc1af76cd7b9b17e2b53fd4068aa31c))


### Code Refactoring

* rename rapiq package to @rapiq/core ([#694](https://github.com/tada5hi/rapiq/issues/694)) ([89ffc31](https://github.com/tada5hi/rapiq/commit/89ffc31b8a31286213de5a890199d88fbe160313))


### Dependencies

* The following workspace dependencies were updated
* devDependencies
* @rapiq/core bumped from ^1.0.0 to ^2.0.0-beta.0
* @rapiq/parser-expression bumped from ^1.0.0 to ^2.0.0-beta.0
* @rapiq/parser-simple bumped from ^1.0.0 to ^2.0.0-beta.0
* peerDependencies
* @rapiq/core bumped from ^1.0.0 to ^2.0.0-beta.0
* @rapiq/parser-expression bumped from ^1.0.0 to ^2.0.0-beta.0
* @rapiq/parser-simple bumped from ^1.0.0 to ^2.0.0-beta.0
14 changes: 7 additions & 7 deletions packages/codec-url/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rapiq/codec-url",
"version": "1.0.0",
"version": "2.0.0-beta.0",
"description": "A URL query-string codec with expression filters and legacy simple-filter compatibility.",
"type": "module",
"main": "dist/index.mjs",
Expand All @@ -19,15 +19,15 @@
"qs": "^6.15.3"
},
"devDependencies": {
"@rapiq/core": "^1.0.0",
"@rapiq/parser-expression": "^1.0.0",
"@rapiq/parser-simple": "^1.0.0",
"@rapiq/core": "^2.0.0-beta.0",
"@rapiq/parser-expression": "^2.0.0-beta.0",
"@rapiq/parser-simple": "^2.0.0-beta.0",
"@types/qs": "^6.14.0"
},
"peerDependencies": {
"@rapiq/core": "^1.0.0",
"@rapiq/parser-expression": "^1.0.0",
"@rapiq/parser-simple": "^1.0.0"
"@rapiq/core": "^2.0.0-beta.0",
"@rapiq/parser-expression": "^2.0.0-beta.0",
"@rapiq/parser-simple": "^2.0.0-beta.0"
},
"scripts": {
"build:types": "tsc --noEmit -p tsconfig.build.json",
Expand Down
48 changes: 48 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Changelog

## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/core-v1.0.0...core-v2.0.0-beta.0) (2026-07-17)


### ⚠ BREAKING CHANGES

* every elemMatch node now opens its own quantifier scope in @rapiq/memory - two elemMatches on one field (or an elemMatch beside a dotted sibling) bind independent elements (mongo semantics) instead of sharing one binding. $-prefixed keys are no longer accepted as field names in the build-layer filters object grammar. In the expression filter dialect, elemMatch is now a reserved keyword and $-prefixed words are reserved markers, so fields with these names no longer tokenize.
* the filters Validator type returns MaybeAsync<IFilter | undefined> (no void); relation aliases longer than 63 characters gain a hash suffix; TypeORM filter parameters are named rapiq_<n>_<i> instead of positional 0, 1, ...
* relation aliases now use length-prefixed path segments to avoid collisions.
* eq/ne/in/nin match strings case-insensitively on every adapter; previously case behavior followed the database collation (case-sensitive on postgres/sqlite/oracle and in @rapiq/memory).
* **core:** the parameter node interfaces (IFields, IFilters, IPagination, IRelations, ISorts) gained merge (and, or on IFilters) methods; custom implementations must provide them. QueryBuilder is deprecated in favor of defineQuery.
* **core:** schema defaults now apply in composite parsing even when a parameter is absent from the input; URLDecoder performs schema validation when constructed with a registry.
* **sql:** null filter values now emit IS NULL predicates instead of bound parameters; the mssql preset no longer throws for anchored string operators and throws AdapterError (not Error) for regex.
* **core:** the five Base*Parser classes, IInterpreter and several utils are no longer exported from @rapiq/core; sort relation failures throw SortParseError; disallowed filter/relations keys throw keyNotPermitted (ErrorCode.KEY_NOT_ALLOWED).
* package rapiq renamed

### Features

* add ITSELF self-reference marker for element-level $elemMatch and $all ([#770](https://github.com/tada5hi/rapiq/issues/770)) ([e1d5c4c](https://github.com/tada5hi/rapiq/commit/e1d5c4c0f4c94bcde359aa92cc118cd773641c03))
* add missing encoder/decoder capabilities + missing tests ([#699](https://github.com/tada5hi/rapiq/issues/699)) ([9f2e69f](https://github.com/tada5hi/rapiq/commit/9f2e69f71cd5a26a0e313f62077dc229bf72463b))
* add size array-length filter operator ([#771](https://github.com/tada5hi/rapiq/issues/771)) ([013bf06](https://github.com/tada5hi/rapiq/commit/013bf06be06d1aef808f50e9a5dc922ab36f75ab))
* case-insensitive string equality with per-field opt-out ([#762](https://github.com/tada5hi/rapiq/issues/762)) ([5821c59](https://github.com/tada5hi/rapiq/commit/5821c593497a5c779d72dd0b4494cc36991284b1))
* codec completion — round-trip subset law, expression url codec & registry ([#748](https://github.com/tada5hi/rapiq/issues/748)) ([42fc558](https://github.com/tada5hi/rapiq/commit/42fc5588975fcd5d5f82ed880b00310e64834e25))
* **core:** opt-in strict mode rejecting parameters without an allow-list ([#746](https://github.com/tada5hi/rapiq/issues/746)) ([0dc6d21](https://github.com/tada5hi/rapiq/commit/0dc6d21e5cb369889b160f77ab5ba06e8cf548b2))
* **core:** ResolutionScope resolution engine + public API cleanup ([#739](https://github.com/tada5hi/rapiq/issues/739)) ([1f76c4a](https://github.com/tada5hi/rapiq/commit/1f76c4a0eeb544d4656ef8a06e59282b9eb6d6da))
* **core:** shared parser orchestration, unified defaults, codec boundary decode ([#745](https://github.com/tada5hi/rapiq/issues/745)) ([56c6f34](https://github.com/tada5hi/rapiq/commit/56c6f34037bfbe899a4b5baff2920afb0e2fff14))
* **core:** typed build layer, condition helpers & query merge ([#747](https://github.com/tada5hi/rapiq/issues/747)) ([fd2fae7](https://github.com/tada5hi/rapiq/commit/fd2fae7d5b9611b0ff4633fa179dc527d98312aa))
* **core:** typed SchemaError for schema registry failures ([#761](https://github.com/tada5hi/rapiq/issues/761)) ([3de1d6a](https://github.com/tada5hi/rapiq/commit/3de1d6a310febf0a88af516478829746bd28dd43))
* enhance typing with interfaces and lesser coupling ([#700](https://github.com/tada5hi/rapiq/issues/700)) ([60f00b5](https://github.com/tada5hi/rapiq/commit/60f00b5b229ec129b788458ea04f7b9b4896e0bc))
* **parser-mongo:** mongodb query parser dialect ([#751](https://github.com/tada5hi/rapiq/issues/751)) ([d96711b](https://github.com/tada5hi/rapiq/commit/d96711b4d1d482761433cc879220c3a51ce88474))
* **sql:** fragment assembly, null semantics, MSSQL LIKE fallback, typed adapter errors ([#741](https://github.com/tada5hi/rapiq/issues/741)) ([7a5e439](https://github.com/tada5hi/rapiq/commit/7a5e4391b6de2eace89d0103f48c4fd128f2a1d4))


### Bug Fixes

* compound wrapping, anchored regex patterns, empty IN lists, sqlite preset ([#742](https://github.com/tada5hi/rapiq/issues/742)) ([6be65b4](https://github.com/tada5hi/rapiq/commit/6be65b4295d977a67047ee9203b6087a1ab2e9e7))
* **core:** correct isFilters discrimination and relation extract; add core test baseline ([#728](https://github.com/tada5hi/rapiq/issues/728)) ([4513b7d](https://github.com/tada5hi/rapiq/commit/4513b7d99a0c014e6d6322a9575ece3b5607ae86))
* **deps:** bump pathtrace in the majorprod group across 1 directory ([#733](https://github.com/tada5hi/rapiq/issues/733)) ([4a619e8](https://github.com/tada5hi/rapiq/commit/4a619e8da8b5210206f347983c30274c5a33196d))
* harden filter validation and adapter state preservation ([#766](https://github.com/tada5hi/rapiq/issues/766)) ([97e11d4](https://github.com/tada5hi/rapiq/commit/97e11d450e8596d6a90869d30453f363add82bb9))
* harden v2 beta release ([#763](https://github.com/tada5hi/rapiq/issues/763)) ([51a906a](https://github.com/tada5hi/rapiq/commit/51a906aa1e5d9e8e4bd1e4dc0f9fce8ec4aaddeb))
* make query properties non optional ([8115b8f](https://github.com/tada5hi/rapiq/commit/8115b8f2fe4db46ed5c380f2b0179a624fe7fafb))
* make query properties readonly ([42c6ba5](https://github.com/tada5hi/rapiq/commit/42c6ba56d5baaa1091ad406d9cfd8fb3195ecb4d))


### Code Refactoring

* rename rapiq package to @rapiq/core ([#694](https://github.com/tada5hi/rapiq/issues/694)) ([89ffc31](https://github.com/tada5hi/rapiq/commit/89ffc31b8a31286213de5a890199d88fbe160313))
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rapiq/core",
"version": "1.0.0",
"version": "2.0.0-beta.0",
"description": "A tiny library which provides utility types/functions for request and response query handling.",
"type": "module",
"main": "dist/index.mjs",
Expand Down
31 changes: 31 additions & 0 deletions packages/memory/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Changelog

## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/memory-v1.0.0...memory-v2.0.0-beta.0) (2026-07-17)


### ⚠ BREAKING CHANGES

* every elemMatch node now opens its own quantifier scope in @rapiq/memory - two elemMatches on one field (or an elemMatch beside a dotted sibling) bind independent elements (mongo semantics) instead of sharing one binding. $-prefixed keys are no longer accepted as field names in the build-layer filters object grammar. In the expression filter dialect, elemMatch is now a reserved keyword and $-prefixed words are reserved markers, so fields with these names no longer tokenize.
* relation aliases now use length-prefixed path segments to avoid collisions.
* eq/ne/in/nin match strings case-insensitively on every adapter; previously case behavior followed the database collation (case-sensitive on postgres/sqlite/oracle and in @rapiq/memory).

### Features

* add ITSELF self-reference marker for element-level $elemMatch and $all ([#770](https://github.com/tada5hi/rapiq/issues/770)) ([e1d5c4c](https://github.com/tada5hi/rapiq/commit/e1d5c4c0f4c94bcde359aa92cc118cd773641c03))
* add size array-length filter operator ([#771](https://github.com/tada5hi/rapiq/issues/771)) ([013bf06](https://github.com/tada5hi/rapiq/commit/013bf06be06d1aef808f50e9a5dc922ab36f75ab))
* case-insensitive string equality with per-field opt-out ([#762](https://github.com/tada5hi/rapiq/issues/762)) ([5821c59](https://github.com/tada5hi/rapiq/commit/5821c593497a5c779d72dd0b4494cc36991284b1))
* **memory:** in-memory query evaluation adapter ([#753](https://github.com/tada5hi/rapiq/issues/753)) ([e03c251](https://github.com/tada5hi/rapiq/commit/e03c2518df9a5238ed4f41afd37b99b41b8302a1))


### Bug Fixes

* harden v2 beta release ([#763](https://github.com/tada5hi/rapiq/issues/763)) ([51a906a](https://github.com/tada5hi/rapiq/commit/51a906aa1e5d9e8e4bd1e4dc0f9fce8ec4aaddeb))


### Dependencies

* The following workspace dependencies were updated
* devDependencies
* @rapiq/core bumped from ^1.0.0 to ^2.0.0-beta.0
* peerDependencies
* @rapiq/core bumped from ^1.0.0 to ^2.0.0-beta.0
6 changes: 3 additions & 3 deletions packages/memory/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rapiq/memory",
"version": "1.0.0",
"version": "2.0.0-beta.0",
"description": "A package to evaluate queries against in-memory objects and arrays.",
"type": "module",
"main": "dist/index.mjs",
Expand All @@ -19,10 +19,10 @@
"smob": "^1.6.2"
},
"devDependencies": {
"@rapiq/core": "^1.0.0"
"@rapiq/core": "^2.0.0-beta.0"
},
"peerDependencies": {
"@rapiq/core": "^1.0.0"
"@rapiq/core": "^2.0.0-beta.0"
},
"scripts": {
"build:types": "tsc --noEmit -p tsconfig.build.json",
Expand Down
Loading