Skip to content

ci: Version Packages#1621

Merged
kevin-dp merged 1 commit into
mainfrom
changeset-release/main
Jun 26, 2026
Merged

ci: Version Packages#1621
kevin-dp merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@tanstack/angular-db@0.1.71

Patch Changes

@tanstack/browser-db-sqlite-persistence@0.2.3

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/capacitor-db-sqlite-persistence@0.2.3

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/cloudflare-durable-objects-db-sqlite-persistence@0.2.3

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/db@0.6.11

Patch Changes

  • Fix incorrect results from index-optimized where clauses that combine indexed and non-indexed conditions. (#1582)

    • OR expressions are now only served from indexes when every disjunct can use an index; otherwise the query falls back to a full scan. Previously, rows matched only by a non-indexed disjunct were missing from the result.
    • AND expressions still use indexes for the conditions that have them, but the remaining conditions are now enforced by re-checking each candidate row against the full expression. Previously, non-indexed conditions were silently dropped, returning rows that did not match the query.
    • Compound range conditions (e.g. age > 5 AND age < 10) combined with conditions on other fields no longer ignore those other conditions.
    • Compound range conditions sharing the same boundary value (e.g. age >= 5 AND age > 5) now apply the strictest bound regardless of the order the conditions appear in, using the same value comparison semantics as the indexes (dates, locale strings, ...).
    • Compound range conditions that only bound one side (e.g. age > 5 AND age >= 8) no longer return an empty result.
    • Strict range comparisons (gt/lt) on BTree-indexed fields holding normalized values such as dates now correctly exclude the boundary value.
    • Compound range conditions with a null/undefined bound (e.g. gt(score, undefined)) now re-filter against the full expression instead of returning index-ordered rows, matching the semantics of a full scan (a comparison against null/undefined is never true).
    • Index-optimized eq, IN, and range queries on a field that has rows with null/undefined values no longer leak those rows into results. BTree indexes store and return such rows (they sort as the smallest key), but a comparison against null/undefined is never true, so these results are now re-filtered against the full expression to stay equivalent to a full scan.
    • String range conditions (gt/gte/lt/lte) on a collection using locale string collation (the default) are no longer served by the index. The index orders strings with localeCompare while the where evaluator compares them with standard relational operators, so an index range lookup could omit matching rows; these conditions now fall back to a full scan.
    • Range conditions whose operand is not ordered the same way by the index and the where evaluator (arrays, plain objects, Temporal values) now fall back to a full scan instead of using the index, which could otherwise omit matching rows.
    • Range conditions on an index created with a custom comparator now fall back to a full scan, since the comparator's ordering may not match the where evaluator's relational operators.
  • fix(query): drive lazy-join loading through the collection the join key resolves to (#1614)

    When a subquery used in a JOIN clause selects its join key from a joined source rather than from its own from clause, the lazy-join loader subscribed to the wrong inner source: it used the subquery's from alias while computing the index requirement against the collection the key actually resolves to. This produced a misleading Join requires an index warning naming an already-indexed collection and an unnecessary full-load fallback. followRef now reports the resolved source alias, so lazy loading subscribes to the correct collection and loads through its index.

  • Adopt PostgreSQL float semantics for NaN in where clauses and ordering. (#1582)

    NaN (and invalid Date values, whose timestamp is NaN) previously had no consistent order — NaN === NaN is false in JavaScript, so NaN compared unequal to everything and could not be sorted or indexed deterministically. Following PostgreSQL, NaN is now treated as equal to itself and greater than every other non-null value:

    • eq(row.value, NaN) matches rows whose value is NaN; inArray(row.value, [NaN, ...]) matches them too.
    • Range comparisons treat NaN as the greatest value: gt/gte include it, lt/lte exclude it.
    • Ordering by a field containing NaN is now deterministic, with NaN sorting last (and null still ordered by NULLS FIRST/NULLS LAST).

    null/undefined are unaffected: they continue to use three-valued logic (a comparison with null yields UNKNOWN).

    This makes results independent of whether a query is served from an index or a full scan.

  • Fix prototype pollution via select() alias paths. Aliases were split on . and walked into the result object without sanitization, so a query like select(() => ({ ['__proto__.polluted']: ... })) (or any segment matching __proto__, prototype, or constructor) could mutate Object.prototype. The select compiler now rejects unsafe alias path segments with a new UnsafeAliasPathError. Fixes Prototype Pollution via queryOnce().select() Alias Handling #1584. (#1595)

@tanstack/db-sqlite-persistence-core@0.2.3

Patch Changes

@tanstack/electric-db-collection@0.3.9

Patch Changes

@tanstack/electron-db-sqlite-persistence@0.1.15

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/expo-db-sqlite-persistence@0.2.3

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/node-db-sqlite-persistence@0.2.3

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/offline-transactions@1.0.36

Patch Changes

@tanstack/powersync-db-collection@0.1.49

Patch Changes

@tanstack/query-db-collection@1.0.43

Patch Changes

@tanstack/react-db@0.1.89

Patch Changes

@tanstack/react-native-db-sqlite-persistence@0.2.3

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/rxdb-db-collection@0.1.77

Patch Changes

@tanstack/solid-db@0.2.25

Patch Changes

@tanstack/svelte-db@0.1.88

Patch Changes

@tanstack/tauri-db-sqlite-persistence@0.2.3

Patch Changes

  • Updated dependencies []:
    • @tanstack/db-sqlite-persistence-core@0.2.3

@tanstack/trailbase-db-collection@0.1.89

Patch Changes

@tanstack/vue-db@0.0.122

Patch Changes

@tanstack/capacitor-db-sqlite-persistence-e2e-app@0.0.15

Patch Changes

@tanstack/expo-db-sqlite-persistence-e2e-app@0.0.15

Patch Changes

@tanstack/tauri-db-sqlite-persistence-e2e-app@0.0.15

Patch Changes

@github-actions github-actions Bot force-pushed the changeset-release/main branch from bd25e6a to b00f365 Compare June 26, 2026 12:58
@github-actions github-actions Bot force-pushed the changeset-release/main branch from b00f365 to dbe3ea6 Compare June 26, 2026 15:22
@pkg-pr-new

pkg-pr-new Bot commented Jun 26, 2026

Copy link
Copy Markdown
More templates

@tanstack/angular-db

npm i https://pkg.pr.new/@tanstack/angular-db@1621

@tanstack/browser-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/browser-db-sqlite-persistence@1621

@tanstack/capacitor-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/capacitor-db-sqlite-persistence@1621

@tanstack/cloudflare-durable-objects-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/cloudflare-durable-objects-db-sqlite-persistence@1621

@tanstack/db

npm i https://pkg.pr.new/@tanstack/db@1621

@tanstack/db-ivm

npm i https://pkg.pr.new/@tanstack/db-ivm@1621

@tanstack/db-sqlite-persistence-core

npm i https://pkg.pr.new/@tanstack/db-sqlite-persistence-core@1621

@tanstack/electric-db-collection

npm i https://pkg.pr.new/@tanstack/electric-db-collection@1621

@tanstack/electron-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/electron-db-sqlite-persistence@1621

@tanstack/expo-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/expo-db-sqlite-persistence@1621

@tanstack/node-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/node-db-sqlite-persistence@1621

@tanstack/offline-transactions

npm i https://pkg.pr.new/@tanstack/offline-transactions@1621

@tanstack/powersync-db-collection

npm i https://pkg.pr.new/@tanstack/powersync-db-collection@1621

@tanstack/query-db-collection

npm i https://pkg.pr.new/@tanstack/query-db-collection@1621

@tanstack/react-db

npm i https://pkg.pr.new/@tanstack/react-db@1621

@tanstack/react-native-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/react-native-db-sqlite-persistence@1621

@tanstack/rxdb-db-collection

npm i https://pkg.pr.new/@tanstack/rxdb-db-collection@1621

@tanstack/solid-db

npm i https://pkg.pr.new/@tanstack/solid-db@1621

@tanstack/svelte-db

npm i https://pkg.pr.new/@tanstack/svelte-db@1621

@tanstack/tauri-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/tauri-db-sqlite-persistence@1621

@tanstack/trailbase-db-collection

npm i https://pkg.pr.new/@tanstack/trailbase-db-collection@1621

@tanstack/vue-db

npm i https://pkg.pr.new/@tanstack/vue-db@1621

commit: dbe3ea6

@github-actions

Copy link
Copy Markdown
Contributor Author

Size Change: 0 B

Total Size: 124 kB

ℹ️ View Unchanged
Filename Size
packages/db/dist/esm/collection/change-events.js 1.43 kB
packages/db/dist/esm/collection/changes.js 1.38 kB
packages/db/dist/esm/collection/cleanup-queue.js 810 B
packages/db/dist/esm/collection/events.js 434 B
packages/db/dist/esm/collection/index.js 3.62 kB
packages/db/dist/esm/collection/indexes.js 1.99 kB
packages/db/dist/esm/collection/lifecycle.js 1.69 kB
packages/db/dist/esm/collection/mutations.js 2.47 kB
packages/db/dist/esm/collection/state.js 5.33 kB
packages/db/dist/esm/collection/subscription.js 3.74 kB
packages/db/dist/esm/collection/sync.js 2.88 kB
packages/db/dist/esm/collection/transaction-metadata.js 144 B
packages/db/dist/esm/deferred.js 207 B
packages/db/dist/esm/errors.js 5.1 kB
packages/db/dist/esm/event-emitter.js 748 B
packages/db/dist/esm/index.js 3.1 kB
packages/db/dist/esm/indexes/auto-index.js 829 B
packages/db/dist/esm/indexes/base-index.js 767 B
packages/db/dist/esm/indexes/basic-index.js 2.06 kB
packages/db/dist/esm/indexes/btree-index.js 2.19 kB
packages/db/dist/esm/indexes/index-registry.js 820 B
packages/db/dist/esm/indexes/reverse-index.js 557 B
packages/db/dist/esm/local-only.js 916 B
packages/db/dist/esm/local-storage.js 2.12 kB
packages/db/dist/esm/optimistic-action.js 359 B
packages/db/dist/esm/paced-mutations.js 496 B
packages/db/dist/esm/proxy.js 3.75 kB
packages/db/dist/esm/query/builder/functions.js 1.47 kB
packages/db/dist/esm/query/builder/index.js 5.84 kB
packages/db/dist/esm/query/builder/ref-proxy.js 1.24 kB
packages/db/dist/esm/query/compiler/evaluators.js 1.89 kB
packages/db/dist/esm/query/compiler/expressions.js 430 B
packages/db/dist/esm/query/compiler/group-by.js 3.56 kB
packages/db/dist/esm/query/compiler/index.js 6.67 kB
packages/db/dist/esm/query/compiler/joins.js 2.5 kB
packages/db/dist/esm/query/compiler/lazy-targets.js 923 B
packages/db/dist/esm/query/compiler/order-by.js 1.74 kB
packages/db/dist/esm/query/compiler/select.js 1.53 kB
packages/db/dist/esm/query/effect.js 4.77 kB
packages/db/dist/esm/query/expression-helpers.js 1.43 kB
packages/db/dist/esm/query/ir.js 1.25 kB
packages/db/dist/esm/query/live-query-collection.js 360 B
packages/db/dist/esm/query/live/collection-config-builder.js 8.36 kB
packages/db/dist/esm/query/live/collection-registry.js 264 B
packages/db/dist/esm/query/live/collection-subscriber.js 1.93 kB
packages/db/dist/esm/query/live/internal.js 145 B
packages/db/dist/esm/query/live/utils.js 1.81 kB
packages/db/dist/esm/query/optimizer.js 2.92 kB
packages/db/dist/esm/query/predicate-utils.js 2.97 kB
packages/db/dist/esm/query/query-once.js 359 B
packages/db/dist/esm/query/subset-dedupe.js 960 B
packages/db/dist/esm/scheduler.js 1.3 kB
packages/db/dist/esm/SortedMap.js 1.3 kB
packages/db/dist/esm/strategies/debounceStrategy.js 247 B
packages/db/dist/esm/strategies/queueStrategy.js 428 B
packages/db/dist/esm/strategies/throttleStrategy.js 246 B
packages/db/dist/esm/transactions.js 3.03 kB
packages/db/dist/esm/utils.js 927 B
packages/db/dist/esm/utils/array-utils.js 273 B
packages/db/dist/esm/utils/browser-polyfills.js 304 B
packages/db/dist/esm/utils/btree.js 5.61 kB
packages/db/dist/esm/utils/comparison.js 1.11 kB
packages/db/dist/esm/utils/cursor.js 457 B
packages/db/dist/esm/utils/index-optimization.js 2.39 kB
packages/db/dist/esm/utils/type-guards.js 157 B
packages/db/dist/esm/utils/uuid.js 449 B
packages/db/dist/esm/virtual-props.js 360 B

compressed-size-action::db-package-size

@github-actions

Copy link
Copy Markdown
Contributor Author

Size Change: 0 B

Total Size: 4.26 kB

ℹ️ View Unchanged
Filename Size
packages/react-db/dist/esm/index.js 249 B
packages/react-db/dist/esm/useLiveInfiniteQuery.js 1.32 kB
packages/react-db/dist/esm/useLiveQuery.js 1.37 kB
packages/react-db/dist/esm/useLiveQueryEffect.js 355 B
packages/react-db/dist/esm/useLiveSuspenseQuery.js 567 B
packages/react-db/dist/esm/usePacedMutations.js 401 B

compressed-size-action::react-db-package-size

@kevin-dp kevin-dp merged commit b05139f into main Jun 26, 2026
10 checks passed
@kevin-dp kevin-dp deleted the changeset-release/main branch June 26, 2026 15:44
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.

Prototype Pollution via queryOnce().select() Alias Handling

1 participant