1
0
mirror of https://github.com/redis/node-redis.git synced 2025-09-11 18:50:46 +03:00
Commit Graph

57 Commits

Author SHA1 Message Date
Pavel Pashov
d941ec5a4c Add Redis 8.2 New Stream Commands (#3029)
* chore: update Redis version from 8.2-RC1-pre to 8.2-rc1

* feat: implement XDELEX command for Redis 8.2

* feat: implement XACKDEL command for Redis 8.2

* refactor: create shared stream deletion types
  for Redis 8.2 commands

* feat: add Redis 8.2 deletion policies to XTRIM
  command

* feat: add Redis 8.2 deletion policies to XADD commands

* fix: correct XDELEX command method name and test parameter
2025-07-25 17:58:28 +03:00
Nikolay Karadzhov
c21dd924fe fix(search): adjust field types for ft.search (#3018)
In ft.search SORTBY, SUMMARIZE and HIGHLIGHT all take
string arguments and do not need @ or $ as a prefix.
In fact, if you put @ or $ there, redis returns error like this:

[SimpleError: Property `@age` not loaded nor in schema]

fixes #3017
2025-07-17 14:02:22 +03:00
Pavel Pashov
b52177752e feat: added support for new bitop operations (#3001)
refactored bitop tests, covered all operations

updated default docker version on all packages
2025-06-19 13:56:00 +03:00
Nikolay Karadzhov
5d205cf161 chore(tests): bump test container version 8.0.2 (#2997) 2025-06-16 10:20:49 +03:00
Nikolay Karadzhov
2bb515e489 fix(search): align ft.search with server (#2988)
as per the ft.search docs ( https://redis.io/docs/latest/commands/ft.search ):

    If a relevant key expires while a query is running,
    an attempt to load the key's value will return a null array.
    However, the key is still counted in the total number of results.

So, instead of crashing when seeing a null as a value, we
return empty object.

fixes #2772
see https://github.com/redis/node-redis/pull/2814
2025-06-05 11:46:57 +03:00
Bobby I.
20c16e0c2c (docs) add jsdoc comments to command parsers (#2984)
* (docs) bloom: add jsdocs for all commands

* (docs) json: add jsdocs

* (docs) search: add jsdocs for all commands

* (docs) jsdocs for std commands

* (docs) jsdoc comments to time series commands
2025-06-03 14:38:07 +03:00
Bobby I.
ebd03036d6 revert the 'total' count logic in AGGREGATE response introduced in #2952 (#2955)
> FT.AGGREGATE returns an array reply where each row is an array reply and represents a single aggregate result.
The integer reply at position 1 does not represent a valid value.

https://redis.io/docs/latest/commands/ft.aggregate/#return
2025-05-09 10:13:32 +03:00
Bobby I.
5e9fea1fd3 Update Redis version to 8.0.1-pre (#2952)
> FT.AGGREGATE returns an array reply where each row is an array reply
and represents a single aggregate result.
> The integer reply at position 1 does not represent a valid value.

We now calculate the result length bazed on the number of results
instead of the integer reply at pos 1
2025-05-08 15:14:30 +03:00
Nikolay Karadzhov
048df302e4 Fix imports (#2929)
* fix: exports

align exports with v4 as much as possible

* document breaking changes

* export type

return SetOptions export
2025-04-30 14:38:32 +03:00
Bobby I.
5295926cc0 bump test container to 8.0-RC2-pre (#2927) 2025-04-29 10:56:38 +03:00
Hristo Temelski
d64072da95 feat(integer 8 vector support): Changed ft create vector types to union, added support for int8/uint8 (#2911)
* [CAE-827] Changed ft create vector types to union, added support for int8/uint8

* [CAE-827] Moved test cases
2025-03-21 11:43:10 +02:00
Hristo Temelski
2ff5cb88d4 tests: Reenable and fix profile aggregate tests (#2910) 2025-03-19 12:18:30 +02:00
Hristo Temelski
a7feb60e0a tests: bumped the version of the 8 docker test image to '8.0-M05-pre' (#2909) 2025-03-18 15:24:11 +02:00
Bobby I.
69d507a572 refactor!: redis 8 compatibility improvements and test infrastructure updates (#2893)
* churn(test): use redislabs/client-libs-test for testing

This  switches our testing infrastructure from redis/redis-stack to
redislabs/client-libs-test Docker image across all packages. This change
also updates the default Docker version from 7.4.0-v1 to 8.0-M04-pre.

* churn(test): verify CONFIG SET / GET compatibility with Redis 8

- Add tests for Redis 8 search configuration settings
- Deprecate Redis Search CONFIG commands in favor of standard CONFIG
- Test read-only config restrictions for Redis 8

* churn(test): handle Redis 8 coordinate precision in GEOPOS

- Update GEOPOS tests to handle increased precision in Redis 8 (17 decimal places vs 14)
- Add precision-aware coordinate comparison helper
- Add comprehensive test suite for coordinate comparison function

* test(search): adapt SUGGET tests for Redis 8 empty results

- Update tests to expect empty array ([]) instead of null for SUGGET variants
- Affects sugGet, sugGetWithPayloads, sugGetWithScores, and sugGetWithScoresWithPayloads

* test(search): support Redis 8 INFO indexes_all field

- Add indexes_all field introduced in Redis 8 to index definition test

* refactor!(search): simplify PROFILE commands to return raw response

- BREAKING CHANGE: FT.PROFILE now returns raw response, letting users implement their own parsing

* test: improve version-specific test coverage

- Add `testWithClientIfVersionWithinRange` method to run tests for specific Redis versions
- Refactor TestUtils to handle version comparisons more accurately
- Update test utilities across Redis modules to run tests against multiple versions, and not against latest only
2025-02-27 10:56:58 +02:00
Hristo Temelski
1af01373db feat(search): Set default dialect to 2 for Redis Search commands (#2895)
- The default dialect `DEFAULT_DIALECT`  is now set to '2'
- Automatically append DIALECT parameter to search commands when not explicitly specified
2025-02-17 13:47:12 +02:00
Leibale Eidelman
b835309cf8 fix cross packages imports 2024-11-04 12:21:17 -05:00
Shaya Potter
4708736f3b new "transform arguments" API for better key and metadata extraction (#2733)
* Parser support with all commands

* remove "dist" from all imports for consistency

* address most of my review comments

* small tweak to multi type mapping handling

* tweak multi commands / fix addScript cases

* nits

* addressed all in person review comments

* revert addCommand/addScript changes to multi-commands

addCommand needs to be there for sendCommand like ability within a multi.

If its there, it might as well be used by createCommand() et al, to avoid repeating code.

addScript is there (even though only used once), but now made private to keep the logic for bookkeeping near each other.
2024-10-31 12:16:59 -04:00
Shaya Potter
b2d35c5286 V5 bringing RESP3, Sentinel and TypeMapping to node-redis
RESP3 Support
   - Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion.
 
Sentinel

TypeMapping

Correctly types Multi commands

Note: some API changes to be further documented in v4-to-v5.md
2024-10-15 17:46:52 +03:00
Shaya Potter
840ec57fb9 small refactor per discussion with leibele (#2801)
* small refactor per discussion with leibele

* move true type to boolean type

* fix geoshape to support NOINDEX & SORTABLE, clean code

* fix for last commit

---------

Co-authored-by: Leibale Eidelman <me@leibale.com>
2024-07-29 09:27:53 -04:00
Shaya Potter
54b3e178f9 add addscores to aggregate search command (#2799)
* add addscores to aggregate search command

* change `true` to `boolean`

---------

Co-authored-by: Leibale Eidelman <me@leibale.com>
2024-07-29 09:22:38 -04:00
Shaya Potter
0e7e2e6e29 add missing fields support to schema (v4) (#2789) 2024-07-17 11:36:45 +03:00
Shaya Potter
a1bee1caaf add geoshape support (#2788)
copied from what leibele did for v5
2024-07-10 19:45:17 +03:00
Savvas Papageorgiadis
0ee3278085 chore(search): export languages (#2651) 2023-11-20 13:41:44 -05:00
Brett Burch
a217cc1a88 Add support for FT.SEARCH NOCONTENT (#2610)
* Add support for NOCONTENT in FT.SEARCH

* Move support for NOCONTENT search option from client.search to client.searchNoContent

* Add test for SEARCH_NOCONTENT#transformReply

* Fix typo

* Enable test

* Update test field type

---------

Co-authored-by: Leibale <me@leibale.com>
2023-09-18 18:33:17 -04:00
fast-facts
85091cde5a Add count option to FT.CURSOR READ (#2492)
* feat: Add count option to FT.CURSOR READ

* Update CURSOR_READ.spec.ts

---------

Co-authored-by: Leibale Eidelman <me@leibale.com>
2023-05-21 08:08:27 -04:00
Nanak
8d37c115e6 Add support for TIMEOUT in FT.AGGREGATE and FT.SEARCH (#2488)
* #2486: add timeout as optional param in FT.Search

* return timeout from aggregate

* add test case for TIMEOUT in aggregate

* add TIMEOUT option in search file

* add test cases for TIMEOUT option in search file

* uodate search/aggregates to add timeout when it is not undefuned

* update search to add timeout when it is not undefuned

* update test case for AGGREGATE
2023-05-21 08:01:17 -04:00
Leibale Eidelman
d65a641b2d revert 1d8302c9db 2023-03-17 09:52:30 -04:00
Carl Hopf
1d8302c9db FT.CREATE - set FIRST_KEY_INDEX to 1 (#2440) 2023-03-14 12:37:13 -04:00
Leibale Eidelman
26e057ebf9 fix FT.SEARCH RETURN [] (#2421)
* ref #2419 - fix FT.SEARCH RETURN []

* fix transformReply

* fix PROFILE SEARCH as well

* fix PROFILE SEARCH preserve

* move preserve login to `pushSearchOptions`

* attach preserve only if true

* fix RETURN: [] test
2023-02-24 17:33:33 -05:00
Leibale Eidelman
a1dfa22517 fix #2364 - fix FT.SEARCH RETURN [] (#2366)
* fix #2364 - fix FT.SEARCH RETURN []

* remove console.log
2023-01-18 12:54:42 -05:00
Leibale Eidelman
ce1b8f7f4e ref #1982 - fix redisearch schema types (#2348) 2022-12-14 17:11:28 -05:00
Vladimir Chuprazov
ab69c81c36 fix(search): fix types for sort (#2343) 2022-12-14 17:03:30 -05:00
Leibale Eidelman
1fdee05dd2 close #2166 - add support for cursor api (#2217) 2022-08-15 08:40:03 -04:00
Leibale Eidelman
60ad6aab0b close #2210 - add support for FT.CREATE WITHSUFFIXTRIE (#2212) 2022-07-28 13:29:57 -04:00
Leibale Eidelman
6a850d36ae upgrade deps, fix "invalid save argument" error (#2174) 2022-06-30 13:07:29 -04:00
Leibale Eidelman
0752f143a6 prepare 4.1.0 (#2111)
* increase test coverage

* @node-redis to @redis

* ugprade deps

* fix benchmark

* use 7.0 docker (not rc), update readmes, clean code, fix @-redis import

* update readme

* fix function in cluster

* update docs

Co-authored-by: Chayim <chayim@users.noreply.github.com>

* Update clustering.md

* add subpackages move warning

* drop support for node 12

* upgrade deps

* fix tsconfig.base.json

Co-authored-by: Chayim <chayim@users.noreply.github.com>
2022-05-02 11:48:12 -04:00
Leibale Eidelman
4d1a86543b remove console.log (#2083) 2022-04-18 12:28:36 -04:00
Leibale Eidelman
d8e9da0f8e support for buffers in redisearch params (#2073) 2022-04-06 05:33:50 -04:00
Leibale Eidelman
0f65690e85 Remove console.log (#2068) 2022-04-03 10:11:22 -04:00
Avital Fine
4683e969b8 Support Vector Similarity (#1785)
* ft.alter

* support paramas

* remove only and skip

* merge

* fix imports

* add Vector field

* update version

* push attributes

* typo

* test

* version check

* remove .only

* remove unued import

* add support for DIALECT

* clean code

Co-authored-by: Avital-Fine <avital.fine@redis.com>
Co-authored-by: leibale <leibale1998@gmail.com>
2022-03-31 07:13:06 -04:00
Simon Prickett
f738ac56b3 Fixed what I think are a couple of typos -> SORTBT -> SORTBY. (#1987)
* Fixed what I think are a couple of typos -> `SORTBT` -> `SORTBY`.

Fixed what I think are a couple of typos -> `SORTBT` -> `SORTBY`.

* Update index.spec.ts

Co-authored-by: Leibale Eidelman <leibale1998@gmail.com>
2022-02-15 16:09:23 -05:00
Leibale Eidelman
9e904eb862 fix #1891 - fix ft.create type (#1901) 2022-02-14 15:06:05 -05:00
Leibale Eidelman
e265c521e8 export RediSearchSchema type (#1825)
* export RediSearchSchema type

* export SearchOptions and SearchReply
2022-02-07 15:28:09 -05:00
Leibale Eidelman
3547b20293 Graph (#1887)
* init

* implement graph commands

* add graph to packages table

* fix ts.infoDebug

* fix redisearch tests

* Update INFO_DEBUG.ts

* fix INFO.spec.ts

* test QUERY and SLOWLOG

Co-authored-by: Avital-Fine <avital.fine@redis.com>
2022-01-31 12:52:19 -05:00
Leibale Eidelman
cf6d653037 fix RediSearch SEPARATOR typo (#1824) 2022-01-12 08:41:01 -05:00
Nathan Němec
4859aa722d SEPARATOR typo fix (#1823)
* SEPARATOR typo fix

* SEPARATOR typo fix
2022-01-12 08:16:47 -05:00
leibale
a0de7967f9 buffers, buffers everywhere... 2021-12-20 14:47:51 -05:00
leibale
a1bed9a10f add buffer support to a bunch of commands 2021-12-15 17:08:50 -05:00
leibale
c0db4226e7 remove unused import 2021-12-13 15:56:42 -05:00
Avital Fine
01e66e7c8f Search commands (#1778)
* ft.alter

* ft.profile
2021-12-13 16:28:04 +01:00