From 605c0c7cb041f8777309a7e0a45e6ae0ca8c94af Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 19:56:49 +0000 Subject: [PATCH] chore: release master --- .release-please-manifest.json | 16 +++--- package-lock.json | 66 ++++++++++++------------- packages/codec-url/CHANGELOG.md | 46 +++++++++++++++++ packages/codec-url/package.json | 14 +++--- packages/core/CHANGELOG.md | 48 ++++++++++++++++++ packages/core/package.json | 2 +- packages/memory/CHANGELOG.md | 31 ++++++++++++ packages/memory/package.json | 6 +-- packages/parser-expression/CHANGELOG.md | 54 ++++++++++++++++++++ packages/parser-expression/package.json | 10 ++-- packages/parser-mongo/CHANGELOG.md | 33 +++++++++++++ packages/parser-mongo/package.json | 10 ++-- packages/parser-simple/CHANGELOG.md | 48 ++++++++++++++++++ packages/parser-simple/package.json | 6 +-- packages/sql/CHANGELOG.md | 58 ++++++++++++++++++++++ packages/sql/package.json | 6 +-- packages/typeorm/CHANGELOG.md | 65 ++++++++++++++++++++++++ packages/typeorm/package.json | 12 ++--- 18 files changed, 457 insertions(+), 74 deletions(-) create mode 100644 packages/codec-url/CHANGELOG.md create mode 100644 packages/core/CHANGELOG.md create mode 100644 packages/memory/CHANGELOG.md create mode 100644 packages/parser-expression/CHANGELOG.md create mode 100644 packages/parser-mongo/CHANGELOG.md create mode 100644 packages/parser-simple/CHANGELOG.md create mode 100644 packages/sql/CHANGELOG.md create mode 100644 packages/typeorm/CHANGELOG.md diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 1f1f61333..459aa60f0 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -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" } diff --git a/package-lock.json b/package-lock.json index 16ae70fd1..4fab7fc92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11524,26 +11524,26 @@ }, "packages/codec-url": { "name": "@rapiq/codec-url", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "dependencies": { "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" } }, "packages/core": { "name": "@rapiq/core", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "dependencies": { "pathtrace": "^2.2.0" @@ -11566,74 +11566,74 @@ }, "packages/memory": { "name": "@rapiq/memory", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "dependencies": { "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" } }, "packages/parser-expression": { "name": "@rapiq/parser-expression", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "devDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" }, "peerDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" } }, "packages/parser-mongo": { "name": "@rapiq/parser-mongo", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "devDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" }, "peerDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" } }, "packages/parser-simple": { "name": "@rapiq/parser-simple", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "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" } }, "packages/sql": { "name": "@rapiq/sql", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "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" } }, "packages/typeorm": { "name": "@rapiq/typeorm", - "version": "1.0.0", + "version": "2.0.0-beta.0", "license": "MIT", "devDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0", - "@rapiq/sql": "^1.0.0", + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0", + "@rapiq/sql": "^2.0.0-beta.0", "@swc/core": "^1.15.43", "ansis": "^4.2.0", "better-sqlite3": "^12.6.0", @@ -11643,8 +11643,8 @@ "unplugin-swc": "^1.5.9" }, "peerDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/sql": "^1.0.0", + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/sql": "^2.0.0-beta.0", "typeorm": "^1.1.0" } }, diff --git a/packages/codec-url/CHANGELOG.md b/packages/codec-url/CHANGELOG.md new file mode 100644 index 000000000..a92907365 --- /dev/null +++ b/packages/codec-url/CHANGELOG.md @@ -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 diff --git a/packages/codec-url/package.json b/packages/codec-url/package.json index 70cee01cc..09eb5d60b 100644 --- a/packages/codec-url/package.json +++ b/packages/codec-url/package.json @@ -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", @@ -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", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md new file mode 100644 index 000000000..ed7b49971 --- /dev/null +++ b/packages/core/CHANGELOG.md @@ -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 (no void); relation aliases longer than 63 characters gain a hash suffix; TypeORM filter parameters are named rapiq__ 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)) diff --git a/packages/core/package.json b/packages/core/package.json index 954309435..fc5268fc7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -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", diff --git a/packages/memory/CHANGELOG.md b/packages/memory/CHANGELOG.md new file mode 100644 index 000000000..97b1d3373 --- /dev/null +++ b/packages/memory/CHANGELOG.md @@ -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 diff --git a/packages/memory/package.json b/packages/memory/package.json index 603ee9d5f..8972fbcd6 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -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", @@ -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", diff --git a/packages/parser-expression/CHANGELOG.md b/packages/parser-expression/CHANGELOG.md new file mode 100644 index 000000000..186bbb44e --- /dev/null +++ b/packages/parser-expression/CHANGELOG.md @@ -0,0 +1,54 @@ +# Changelog + +## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/parser-expression-v1.0.0...parser-expression-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 (no void); relation aliases longer than 63 characters gain a hash suffix; TypeORM filter parameters are named rapiq__ instead of positional 0, 1, ... +* **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. +* **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. +* **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 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)) +* **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)) +* enhance typing with interfaces and lesser coupling ([#700](https://github.com/tada5hi/rapiq/issues/700)) ([60f00b5](https://github.com/tada5hi/rapiq/commit/60f00b5b229ec129b788458ea04f7b9b4896e0bc)) +* 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)) +* startsWith, endsWith & contains operator ([#675](https://github.com/tada5hi/rapiq/issues/675)) ([40bf127](https://github.com/tada5hi/rapiq/commit/40bf1278b7901f5a82f0516900bcca2eccc405dc)) + + +### Bug Fixes + +* **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)) +* 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)) +* 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-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-simple bumped from ^1.0.0 to ^2.0.0-beta.0 diff --git a/packages/parser-expression/package.json b/packages/parser-expression/package.json index 9614ec511..f715eb656 100644 --- a/packages/parser-expression/package.json +++ b/packages/parser-expression/package.json @@ -1,6 +1,6 @@ { "name": "@rapiq/parser-expression", - "version": "1.0.0", + "version": "2.0.0-beta.0", "description": "A package containing an expression parser", "type": "module", "main": "dist/index.mjs", @@ -16,12 +16,12 @@ "dist/" ], "devDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" }, "peerDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" }, "scripts": { "build:types": "tsc --noEmit -p tsconfig.build.json", diff --git a/packages/parser-mongo/CHANGELOG.md b/packages/parser-mongo/CHANGELOG.md new file mode 100644 index 000000000..874498cc9 --- /dev/null +++ b/packages/parser-mongo/CHANGELOG.md @@ -0,0 +1,33 @@ +# Changelog + +## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/parser-mongo-v1.0.0...parser-mongo-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 (no void); relation aliases longer than 63 characters gain a hash suffix; TypeORM filter parameters are named rapiq__ instead of positional 0, 1, ... +* relation aliases now use length-prefixed path segments to avoid collisions. + +### 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)) +* **parser-mongo:** mongodb query parser dialect ([#751](https://github.com/tada5hi/rapiq/issues/751)) ([d96711b](https://github.com/tada5hi/rapiq/commit/d96711b4d1d482761433cc879220c3a51ce88474)) + + +### Bug Fixes + +* 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)) + + +### Dependencies + +* The following workspace dependencies were updated + * devDependencies + * @rapiq/core 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-simple bumped from ^1.0.0 to ^2.0.0-beta.0 diff --git a/packages/parser-mongo/package.json b/packages/parser-mongo/package.json index 029598340..857ae0691 100644 --- a/packages/parser-mongo/package.json +++ b/packages/parser-mongo/package.json @@ -1,6 +1,6 @@ { "name": "@rapiq/parser-mongo", - "version": "1.0.0", + "version": "2.0.0-beta.0", "description": "A package containing a mongodb style parser", "type": "module", "main": "dist/index.mjs", @@ -16,12 +16,12 @@ "dist/" ], "devDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" }, "peerDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0" + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0" }, "scripts": { "build:types": "tsc --noEmit -p tsconfig.build.json", diff --git a/packages/parser-simple/CHANGELOG.md b/packages/parser-simple/CHANGELOG.md new file mode 100644 index 000000000..08dba41e8 --- /dev/null +++ b/packages/parser-simple/CHANGELOG.md @@ -0,0 +1,48 @@ +# Changelog + +## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/parser-simple-v1.0.0...parser-simple-v2.0.0-beta.0) (2026-07-17) + + +### ⚠ BREAKING CHANGES + +* the filters Validator type returns MaybeAsync (no void); relation aliases longer than 63 characters gain a hash suffix; TypeORM filter parameters are named rapiq__ instead of positional 0, 1, ... +* **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. +* **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. +* **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 missing encoder/decoder capabilities + missing tests ([#699](https://github.com/tada5hi/rapiq/issues/699)) ([9f2e69f](https://github.com/tada5hi/rapiq/commit/9f2e69f71cd5a26a0e313f62077dc229bf72463b)) +* 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)) +* **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)) +* enhance typing with interfaces and lesser coupling ([#700](https://github.com/tada5hi/rapiq/issues/700)) ([60f00b5](https://github.com/tada5hi/rapiq/commit/60f00b5b229ec129b788458ea04f7b9b4896e0bc)) +* 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)) +* startsWith, endsWith & contains operator ([#675](https://github.com/tada5hi/rapiq/issues/675)) ([40bf127](https://github.com/tada5hi/rapiq/commit/40bf1278b7901f5a82f0516900bcca2eccc405dc)) + + +### Bug Fixes + +* 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)) + + +### 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 diff --git a/packages/parser-simple/package.json b/packages/parser-simple/package.json index d8091c41f..aabab4157 100644 --- a/packages/parser-simple/package.json +++ b/packages/parser-simple/package.json @@ -1,6 +1,6 @@ { "name": "@rapiq/parser-simple", - "version": "1.0.0", + "version": "2.0.0-beta.0", "description": "A package containing a simple parser", "type": "module", "main": "dist/index.mjs", @@ -16,10 +16,10 @@ "dist/" ], "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", diff --git a/packages/sql/CHANGELOG.md b/packages/sql/CHANGELOG.md new file mode 100644 index 000000000..57d0197cc --- /dev/null +++ b/packages/sql/CHANGELOG.md @@ -0,0 +1,58 @@ +# Changelog + +## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/sql-v1.0.0...sql-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 (no void); relation aliases longer than 63 characters gain a hash suffix; TypeORM filter parameters are named rapiq__ 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). +* generated SQL aliases for nested relation paths are now path-qualified (role.realm joins as role_realm, not realm); pre-existing consumer joins for nested paths are only recognized under the path-qualified alias. +* **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. +* **typeorm:** relations now join with LEFT JOIN by default instead of INNER JOIN; records with absent relations are kept. Pass relations.joinType: 'inner' to restore the previous behavior. +* **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. +* 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 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 package & intermediate representations (IR) ([#659](https://github.com/tada5hi/rapiq/issues/659)) ([b384624](https://github.com/tada5hi/rapiq/commit/b384624957f9861fa0959ef44b3522d06c4f8c20)) +* **core:** typed build layer, condition helpers & query merge ([#747](https://github.com/tada5hi/rapiq/issues/747)) ([fd2fae7](https://github.com/tada5hi/rapiq/commit/fd2fae7d5b9611b0ff4633fa179dc527d98312aa)) +* 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)) +* replace interpreter with visitor pattern ([#668](https://github.com/tada5hi/rapiq/issues/668)) ([a9c4ae5](https://github.com/tada5hi/rapiq/commit/a9c4ae5f56de8e87da22176711bbc45ef8addb24)) +* sql & typeorm package ([#638](https://github.com/tada5hi/rapiq/issues/638)) ([e461073](https://github.com/tada5hi/rapiq/commit/e4610737c03ff59807ad588aecf618b7af390dfc)) +* **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)) +* startsWith, endsWith & contains operator ([#675](https://github.com/tada5hi/rapiq/issues/675)) ([40bf127](https://github.com/tada5hi/rapiq/commit/40bf1278b7901f5a82f0516900bcca2eccc405dc)) +* **typeorm:** dialect detection, left-join default, onJoin hook, idempotent joins, pagination echo ([#743](https://github.com/tada5hi/rapiq/issues/743)) ([f7c33c0](https://github.com/tada5hi/rapiq/commit/f7c33c0f061da651e9fc1a7aab0807f9101940db)) + + +### 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)) +* 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)) +* path-qualify join aliases for nested relations ([#760](https://github.com/tada5hi/rapiq/issues/760)) ([7ea88f4](https://github.com/tada5hi/rapiq/commit/7ea88f47e5778b3a9e6dda091b7b0f579b4286fb)) +* remove rootAlia param in buildField fn ([85e6fff](https://github.com/tada5hi/rapiq/commit/85e6fffd7283a7dcf83d65a655d287f20af78437)) +* respect field operator in visitor ([3d32458](https://github.com/tada5hi/rapiq/commit/3d324588d81e367a3a7e944050bb54518e8526ce)) +* **sql:** render negated filter operators null-inclusively ([#758](https://github.com/tada5hi/rapiq/issues/758)) ([374a2d9](https://github.com/tada5hi/rapiq/commit/374a2d9ba6cd013225b773f1fe583bb33a1af58b)) +* typing & test suite ([5f7b2e7](https://github.com/tada5hi/rapiq/commit/5f7b2e78cf9825cbffb0a548b54e519f67a623be)) + + +### 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 + * peerDependencies + * @rapiq/core bumped from ^1.0.0 to ^2.0.0-beta.0 diff --git a/packages/sql/package.json b/packages/sql/package.json index a16fdafe1..f32c0da3d 100644 --- a/packages/sql/package.json +++ b/packages/sql/package.json @@ -1,6 +1,6 @@ { "name": "@rapiq/sql", - "version": "1.0.0", + "version": "2.0.0-beta.0", "description": "A SQL extension for rapiq.", "type": "module", "main": "dist/index.mjs", @@ -16,10 +16,10 @@ "dist/" ], "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", diff --git a/packages/typeorm/CHANGELOG.md b/packages/typeorm/CHANGELOG.md new file mode 100644 index 000000000..b532010b1 --- /dev/null +++ b/packages/typeorm/CHANGELOG.md @@ -0,0 +1,65 @@ +# Changelog + +## [2.0.0-beta.0](https://github.com/tada5hi/rapiq/compare/typeorm-v1.0.0...typeorm-v2.0.0-beta.0) (2026-07-17) + + +### ⚠ BREAKING CHANGES + +* **typeorm:** @rapiq/typeorm now requires typeorm ^1.1.0; consumers on typeorm 0.3.x are no longer supported. +* 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 (no void); relation aliases longer than 63 characters gain a hash suffix; TypeORM filter parameters are named rapiq__ instead of positional 0, 1, ... +* **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. +* 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). +* generated SQL aliases for nested relation paths are now path-qualified (role.realm joins as role_realm, not realm); pre-existing consumer joins for nested paths are only recognized under the path-qualified alias. +* **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. +* **typeorm:** relations now join with LEFT JOIN by default instead of INNER JOIN; records with absent relations are kept. Pass relations.joinType: 'inner' to restore the previous behavior. +* **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. +* 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 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 package & intermediate representations (IR) ([#659](https://github.com/tada5hi/rapiq/issues/659)) ([b384624](https://github.com/tada5hi/rapiq/commit/b384624957f9861fa0959ef44b3522d06c4f8c20)) +* **codec-url:** consolidate URL codecs ([#765](https://github.com/tada5hi/rapiq/issues/765)) ([b7a7f41](https://github.com/tada5hi/rapiq/commit/b7a7f41be791324e8069ab4d800b41f329efd729)) +* **core:** typed build layer, condition helpers & query merge ([#747](https://github.com/tada5hi/rapiq/issues/747)) ([fd2fae7](https://github.com/tada5hi/rapiq/commit/fd2fae7d5b9611b0ff4633fa179dc527d98312aa)) +* replace interpreter with visitor pattern ([#668](https://github.com/tada5hi/rapiq/issues/668)) ([a9c4ae5](https://github.com/tada5hi/rapiq/commit/a9c4ae5f56de8e87da22176711bbc45ef8addb24)) +* sql & typeorm package ([#638](https://github.com/tada5hi/rapiq/issues/638)) ([e461073](https://github.com/tada5hi/rapiq/commit/e4610737c03ff59807ad588aecf618b7af390dfc)) +* **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)) +* **typeorm:** dialect detection, left-join default, onJoin hook, idempotent joins, pagination echo ([#743](https://github.com/tada5hi/rapiq/issues/743)) ([f7c33c0](https://github.com/tada5hi/rapiq/commit/f7c33c0f061da651e9fc1a7aab0807f9101940db)) + + +### Bug Fixes + +* **deps:** bump the minorandpatch group across 1 directory with 7 updates ([#740](https://github.com/tada5hi/rapiq/issues/740)) ([098a911](https://github.com/tada5hi/rapiq/commit/098a911e43a2913bb2cbb251137ab95bc1a56fe0)) +* **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 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)) +* path-qualify join aliases for nested relations ([#760](https://github.com/tada5hi/rapiq/issues/760)) ([7ea88f4](https://github.com/tada5hi/rapiq/commit/7ea88f47e5778b3a9e6dda091b7b0f579b4286fb)) +* respect field operator in visitor ([3d32458](https://github.com/tada5hi/rapiq/commit/3d324588d81e367a3a7e944050bb54518e8526ce)) +* **sql:** render negated filter operators null-inclusively ([#758](https://github.com/tada5hi/rapiq/issues/758)) ([374a2d9](https://github.com/tada5hi/rapiq/commit/374a2d9ba6cd013225b773f1fe583bb33a1af58b)) +* typing & test suite ([5f7b2e7](https://github.com/tada5hi/rapiq/commit/5f7b2e78cf9825cbffb0a548b54e519f67a623be)) + + +### Code Refactoring + +* rename rapiq package to @rapiq/core ([#694](https://github.com/tada5hi/rapiq/issues/694)) ([89ffc31](https://github.com/tada5hi/rapiq/commit/89ffc31b8a31286213de5a890199d88fbe160313)) + + +### Build System + +* **typeorm:** require typeorm ^1.1.0 ([1ee6ab2](https://github.com/tada5hi/rapiq/commit/1ee6ab2cc9cc9fb04150ae6e6f246ee2f85d8ee2)) + + +### Dependencies + +* The following workspace dependencies were updated + * devDependencies + * @rapiq/core 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 + * @rapiq/sql 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/sql bumped from ^1.0.0 to ^2.0.0-beta.0 diff --git a/packages/typeorm/package.json b/packages/typeorm/package.json index 46b580509..5e902559a 100644 --- a/packages/typeorm/package.json +++ b/packages/typeorm/package.json @@ -1,6 +1,6 @@ { "name": "@rapiq/typeorm", - "version": "1.0.0", + "version": "2.0.0-beta.0", "description": "A typeorm adapter for rapiq.", "type": "module", "main": "dist/index.mjs", @@ -16,9 +16,9 @@ "dist/" ], "devDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/parser-simple": "^1.0.0", - "@rapiq/sql": "^1.0.0", + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/parser-simple": "^2.0.0-beta.0", + "@rapiq/sql": "^2.0.0-beta.0", "@swc/core": "^1.15.43", "ansis": "^4.2.0", "better-sqlite3": "^12.6.0", @@ -28,8 +28,8 @@ "unplugin-swc": "^1.5.9" }, "peerDependencies": { - "@rapiq/core": "^1.0.0", - "@rapiq/sql": "^1.0.0", + "@rapiq/core": "^2.0.0-beta.0", + "@rapiq/sql": "^2.0.0-beta.0", "typeorm": "^1.1.0" }, "scripts": {