@upstash/redis 0.0.0-ci.bc3aba1f-20221124 → 0.0.0-ci.bf6288e9-20231018

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +8 -1
  2. package/esm/pkg/commands/command.js +12 -3
  3. package/esm/pkg/commands/geo_add.js +27 -0
  4. package/esm/pkg/commands/hgetall.js +9 -1
  5. package/esm/pkg/commands/json_arrappend.js +9 -0
  6. package/esm/pkg/commands/json_arrindex.js +9 -0
  7. package/esm/pkg/commands/json_arrinsert.js +9 -0
  8. package/esm/pkg/commands/json_arrlen.js +9 -0
  9. package/esm/pkg/commands/json_arrpop.js +9 -0
  10. package/esm/pkg/commands/json_arrtrim.js +12 -0
  11. package/esm/pkg/commands/json_clear.js +9 -0
  12. package/esm/pkg/commands/json_del.js +9 -0
  13. package/esm/pkg/commands/json_forget.js +9 -0
  14. package/esm/pkg/commands/json_get.js +30 -0
  15. package/esm/pkg/commands/json_mget.js +9 -0
  16. package/esm/pkg/commands/json_numincrby.js +9 -0
  17. package/esm/pkg/commands/json_nummultby.js +9 -0
  18. package/esm/pkg/commands/json_objkeys.js +9 -0
  19. package/esm/pkg/commands/json_objlen.js +9 -0
  20. package/esm/pkg/commands/json_resp.js +9 -0
  21. package/esm/pkg/commands/json_set.js +18 -0
  22. package/esm/pkg/commands/json_strappend.js +9 -0
  23. package/esm/pkg/commands/json_strlen.js +9 -0
  24. package/esm/pkg/commands/json_toggle.js +9 -0
  25. package/esm/pkg/commands/json_type.js +9 -0
  26. package/esm/pkg/commands/lmove.js +9 -0
  27. package/esm/pkg/commands/mod.js +27 -0
  28. package/esm/pkg/commands/set.js +1 -1
  29. package/esm/pkg/commands/smismember.js +9 -0
  30. package/esm/pkg/commands/xadd.js +26 -0
  31. package/esm/pkg/commands/xrange.js +36 -0
  32. package/esm/pkg/commands/zdiffstore.js +9 -0
  33. package/esm/pkg/commands/zunion.js +30 -0
  34. package/esm/pkg/http.js +42 -25
  35. package/esm/pkg/pipeline.js +143 -7
  36. package/esm/pkg/redis.js +177 -3
  37. package/esm/platforms/cloudflare.js +6 -6
  38. package/esm/platforms/fastly.js +5 -0
  39. package/esm/platforms/node_with_fetch.js +23 -11
  40. package/esm/platforms/nodejs.js +21 -11
  41. package/esm/version.js +1 -1
  42. package/package.json +53 -20
  43. package/script/pkg/commands/command.js +12 -3
  44. package/script/pkg/commands/geo_add.js +31 -0
  45. package/script/pkg/commands/hgetall.js +9 -1
  46. package/script/pkg/commands/json_arrappend.js +13 -0
  47. package/script/pkg/commands/json_arrindex.js +13 -0
  48. package/script/pkg/commands/json_arrinsert.js +13 -0
  49. package/script/pkg/commands/json_arrlen.js +13 -0
  50. package/script/pkg/commands/json_arrpop.js +13 -0
  51. package/script/pkg/commands/json_arrtrim.js +16 -0
  52. package/script/pkg/commands/json_clear.js +13 -0
  53. package/script/pkg/commands/json_del.js +13 -0
  54. package/script/pkg/commands/json_forget.js +13 -0
  55. package/script/pkg/commands/json_get.js +34 -0
  56. package/script/pkg/commands/json_mget.js +13 -0
  57. package/script/pkg/commands/json_numincrby.js +13 -0
  58. package/script/pkg/commands/json_nummultby.js +13 -0
  59. package/script/pkg/commands/json_objkeys.js +13 -0
  60. package/script/pkg/commands/json_objlen.js +13 -0
  61. package/script/pkg/commands/json_resp.js +13 -0
  62. package/script/pkg/commands/json_set.js +22 -0
  63. package/script/pkg/commands/json_strappend.js +13 -0
  64. package/script/pkg/commands/json_strlen.js +13 -0
  65. package/script/pkg/commands/json_toggle.js +13 -0
  66. package/script/pkg/commands/json_type.js +13 -0
  67. package/script/pkg/commands/lmove.js +13 -0
  68. package/script/pkg/commands/mod.js +27 -0
  69. package/script/pkg/commands/set.js +1 -1
  70. package/script/pkg/commands/smismember.js +13 -0
  71. package/script/pkg/commands/xadd.js +30 -0
  72. package/script/pkg/commands/xrange.js +40 -0
  73. package/script/pkg/commands/zdiffstore.js +13 -0
  74. package/script/pkg/commands/zunion.js +34 -0
  75. package/script/pkg/http.js +42 -25
  76. package/script/pkg/pipeline.js +142 -6
  77. package/script/pkg/redis.js +176 -2
  78. package/script/platforms/cloudflare.js +6 -6
  79. package/script/platforms/fastly.js +5 -0
  80. package/script/platforms/node_with_fetch.js +23 -11
  81. package/script/platforms/nodejs.js +21 -11
  82. package/script/version.js +1 -1
  83. package/types/pkg/commands/command.d.ts +5 -5
  84. package/types/pkg/commands/geo_add.d.ts +25 -0
  85. package/types/pkg/commands/hdel.d.ts +1 -1
  86. package/types/pkg/commands/json_arrappend.d.ts +7 -0
  87. package/types/pkg/commands/json_arrindex.d.ts +13 -0
  88. package/types/pkg/commands/json_arrinsert.d.ts +7 -0
  89. package/types/pkg/commands/json_arrlen.d.ts +7 -0
  90. package/types/pkg/commands/json_arrpop.d.ts +7 -0
  91. package/types/pkg/commands/json_arrtrim.d.ts +7 -0
  92. package/types/pkg/commands/json_clear.d.ts +7 -0
  93. package/types/pkg/commands/json_del.d.ts +7 -0
  94. package/types/pkg/commands/json_forget.d.ts +7 -0
  95. package/types/pkg/commands/json_get.d.ts +15 -0
  96. package/types/pkg/commands/json_mget.d.ts +7 -0
  97. package/types/pkg/commands/json_numincrby.d.ts +7 -0
  98. package/types/pkg/commands/json_nummultby.d.ts +7 -0
  99. package/types/pkg/commands/json_objkeys.d.ts +7 -0
  100. package/types/pkg/commands/json_objlen.d.ts +7 -0
  101. package/types/pkg/commands/json_resp.d.ts +7 -0
  102. package/types/pkg/commands/json_set.d.ts +18 -0
  103. package/types/pkg/commands/json_strappend.d.ts +7 -0
  104. package/types/pkg/commands/json_strlen.d.ts +7 -0
  105. package/types/pkg/commands/json_toggle.d.ts +7 -0
  106. package/types/pkg/commands/json_type.d.ts +7 -0
  107. package/types/pkg/commands/lmove.d.ts +12 -0
  108. package/types/pkg/commands/mod.d.ts +27 -0
  109. package/types/pkg/commands/scan.d.ts +1 -1
  110. package/types/pkg/commands/script_flush.d.ts +1 -1
  111. package/types/pkg/commands/set.d.ts +3 -3
  112. package/types/pkg/commands/smembers.d.ts +2 -2
  113. package/types/pkg/commands/smismember.d.ts +7 -0
  114. package/types/pkg/commands/type.d.ts +1 -1
  115. package/types/pkg/commands/xadd.d.ts +31 -0
  116. package/types/pkg/commands/xrange.d.ts +9 -0
  117. package/types/pkg/commands/zadd.d.ts +3 -3
  118. package/types/pkg/commands/zdiffstore.d.ts +7 -0
  119. package/types/pkg/commands/zinterstore.d.ts +1 -1
  120. package/types/pkg/commands/zrange.d.ts +1 -1
  121. package/types/pkg/commands/zunion.d.ts +29 -0
  122. package/types/pkg/commands/zunionstore.d.ts +1 -1
  123. package/types/pkg/http.d.ts +16 -23
  124. package/types/pkg/pipeline.d.ts +247 -126
  125. package/types/pkg/redis.d.ts +149 -13
  126. package/types/pkg/types.d.ts +27 -1
  127. package/types/platforms/cloudflare.d.ts +2 -2
  128. package/types/platforms/fastly.d.ts +1 -1
  129. package/types/platforms/node_with_fetch.d.ts +1 -1
  130. package/types/platforms/nodejs.d.ts +1 -1
  131. package/types/version.d.ts +1 -1
@@ -0,0 +1,7 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ /**
3
+ * @see https://redis.io/commands/json.strlen
4
+ */
5
+ export declare class JsonStrLenCommand extends Command<(number | null)[], (number | null)[]> {
6
+ constructor(cmd: [key: string, path?: string], opts?: CommandOptions<(number | null)[], (number | null)[]>);
7
+ }
@@ -0,0 +1,7 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ /**
3
+ * @see https://redis.io/commands/json.toggle
4
+ */
5
+ export declare class JsonToggleCommand extends Command<number[], number[]> {
6
+ constructor(cmd: [key: string, path: string], opts?: CommandOptions<number[], number[]>);
7
+ }
@@ -0,0 +1,7 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ /**
3
+ * @see https://redis.io/commands/json.type
4
+ */
5
+ export declare class JsonTypeCommand extends Command<string[], string[]> {
6
+ constructor(cmd: [key: string, path?: string], opts?: CommandOptions<string[], string[]>);
7
+ }
@@ -0,0 +1,12 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ /**
3
+ * @see https://redis.io/commands/lmove
4
+ */
5
+ export declare class LMoveCommand<TData = string> extends Command<TData, TData> {
6
+ constructor(cmd: [
7
+ source: string,
8
+ destination: string,
9
+ whereFrom: "left" | "right",
10
+ whereTo: "left" | "right"
11
+ ], opts?: CommandOptions<TData, TData>);
12
+ }
@@ -15,6 +15,7 @@ export * from "./expire.js";
15
15
  export * from "./expireat.js";
16
16
  export * from "./flushall.js";
17
17
  export * from "./flushdb.js";
18
+ export * from "./geo_add.js";
18
19
  export * from "./get.js";
19
20
  export * from "./getbit.js";
20
21
  export * from "./getdel.js";
@@ -39,10 +40,32 @@ export * from "./hvals.js";
39
40
  export * from "./incr.js";
40
41
  export * from "./incrby.js";
41
42
  export * from "./incrbyfloat.js";
43
+ export * from "./json_arrappend.js";
44
+ export * from "./json_arrindex.js";
45
+ export * from "./json_arrinsert.js";
46
+ export * from "./json_arrlen.js";
47
+ export * from "./json_arrpop.js";
48
+ export * from "./json_arrtrim.js";
49
+ export * from "./json_clear.js";
50
+ export * from "./json_del.js";
51
+ export * from "./json_forget.js";
52
+ export * from "./json_get.js";
53
+ export * from "./json_mget.js";
54
+ export * from "./json_numincrby.js";
55
+ export * from "./json_nummultby.js";
56
+ export * from "./json_objkeys.js";
57
+ export * from "./json_objlen.js";
58
+ export * from "./json_resp.js";
59
+ export * from "./json_set.js";
60
+ export * from "./json_strappend.js";
61
+ export * from "./json_strlen.js";
62
+ export * from "./json_toggle.js";
63
+ export * from "./json_type.js";
42
64
  export * from "./keys.js";
43
65
  export * from "./lindex.js";
44
66
  export * from "./linsert.js";
45
67
  export * from "./llen.js";
68
+ export * from "./lmove.js";
46
69
  export * from "./lpop.js";
47
70
  export * from "./lpos.js";
48
71
  export * from "./lpush.js";
@@ -84,6 +107,7 @@ export * from "./sinter.js";
84
107
  export * from "./sinterstore.js";
85
108
  export * from "./sismember.js";
86
109
  export * from "./smembers.js";
110
+ export * from "./smismember.js";
87
111
  export * from "./smove.js";
88
112
  export * from "./spop.js";
89
113
  export * from "./srandmember.js";
@@ -114,4 +138,7 @@ export * from "./zremrangebyscore.js";
114
138
  export * from "./zrevrank.js";
115
139
  export * from "./zscan.js";
116
140
  export * from "./zscore.js";
141
+ export * from "./zunion.js";
117
142
  export * from "./zunionstore.js";
143
+ export * from "./xadd.js";
144
+ export * from "./xrange.js";
@@ -1,5 +1,5 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type ScanCommandOptions = {
2
+ export type ScanCommandOptions = {
3
3
  match?: string;
4
4
  count?: number;
5
5
  type?: string;
@@ -1,5 +1,5 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type ScriptFlushCommandOptions = {
2
+ export type ScriptFlushCommandOptions = {
3
3
  sync: true;
4
4
  async?: never;
5
5
  } | {
@@ -1,7 +1,7 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type SetCommandOptions = {
3
- get: boolean;
4
- } | ({
2
+ export type SetCommandOptions = {
3
+ get?: boolean;
4
+ } & ({
5
5
  ex: number;
6
6
  px?: never;
7
7
  exat?: never;
@@ -2,6 +2,6 @@ import { Command, CommandOptions } from "./command.js";
2
2
  /**
3
3
  * @see https://redis.io/commands/smembers
4
4
  */
5
- export declare class SMembersCommand<TData = string> extends Command<unknown[], TData[]> {
6
- constructor(cmd: [key: string], opts?: CommandOptions<unknown[], TData[]>);
5
+ export declare class SMembersCommand<TData extends unknown[] = string[]> extends Command<unknown[], TData> {
6
+ constructor(cmd: [key: string], opts?: CommandOptions<unknown[], TData>);
7
7
  }
@@ -0,0 +1,7 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ /**
3
+ * @see https://redis.io/commands/smismember
4
+ */
5
+ export declare class SMIsMemberCommand<TMembers extends unknown[]> extends Command<("0" | "1")[], (0 | 1)[]> {
6
+ constructor(cmd: [key: string, members: TMembers], opts?: CommandOptions<("0" | "1")[], (0 | 1)[]>);
7
+ }
@@ -1,5 +1,5 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type Type = "string" | "list" | "set" | "zset" | "hash" | "none";
2
+ export type Type = "string" | "list" | "set" | "zset" | "hash" | "none";
3
3
  /**
4
4
  * @see https://redis.io/commands/type
5
5
  */
@@ -0,0 +1,31 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ type XAddCommandOptions = {
3
+ nomkStream?: boolean;
4
+ trim?: ({
5
+ type: "MAXLEN" | "maxlen";
6
+ threshold: number;
7
+ } | {
8
+ type: "MINID" | "minid";
9
+ threshold: string;
10
+ }) & ({
11
+ comparison: "~";
12
+ limit?: number;
13
+ } | {
14
+ comparison: "=";
15
+ limit?: never;
16
+ });
17
+ };
18
+ /**
19
+ * @see https://redis.io/commands/xadd
20
+ */
21
+ export declare class XAddCommand extends Command<string, string> {
22
+ constructor([key, id, entries, opts]: [
23
+ key: string,
24
+ id: "*" | string,
25
+ entries: {
26
+ [field: string]: unknown;
27
+ },
28
+ opts?: XAddCommandOptions
29
+ ], commandOptions?: CommandOptions<string, string>);
30
+ }
31
+ export {};
@@ -0,0 +1,9 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ export declare class XRangeCommand<TData extends Record<string, Record<string, unknown>>> extends Command<string[][], TData> {
3
+ constructor([key, start, end, count]: [
4
+ key: string,
5
+ start: string,
6
+ end: string,
7
+ count?: number
8
+ ], opts?: CommandOptions<unknown[], TData[]>);
9
+ }
@@ -1,5 +1,5 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type ZAddCommandOptions = ({
2
+ export type ZAddCommandOptions = ({
3
3
  nx: true;
4
4
  xx?: never;
5
5
  } | {
@@ -11,10 +11,10 @@ export declare type ZAddCommandOptions = ({
11
11
  }) & {
12
12
  ch?: true;
13
13
  };
14
- export declare type ZAddCommandOptionsWithIncr = ZAddCommandOptions & {
14
+ export type ZAddCommandOptionsWithIncr = ZAddCommandOptions & {
15
15
  incr: true;
16
16
  };
17
- export declare type ScoreMember<TData> = {
17
+ export type ScoreMember<TData> = {
18
18
  score: number;
19
19
  member: TData;
20
20
  };
@@ -0,0 +1,7 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ /**
3
+ * @see https://redis.io/commands/zdiffstore
4
+ */
5
+ export declare class ZDiffStoreCommand extends Command<number, number> {
6
+ constructor(cmd: [destination: string, numkeys: number, ...keys: string[]], opts?: CommandOptions<number, number>);
7
+ }
@@ -1,5 +1,5 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type ZInterStoreCommandOptions = {
2
+ export type ZInterStoreCommandOptions = {
3
3
  aggregate?: "sum" | "min" | "max";
4
4
  } & ({
5
5
  weight: number;
@@ -1,5 +1,5 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type ZRangeCommandOptions = {
2
+ export type ZRangeCommandOptions = {
3
3
  withScores?: boolean;
4
4
  rev?: boolean;
5
5
  } & ({
@@ -0,0 +1,29 @@
1
+ import { Command, CommandOptions } from "./command.js";
2
+ export type ZUnionCommandOptions = {
3
+ withScores?: boolean;
4
+ aggregate?: "sum" | "min" | "max";
5
+ } & ({
6
+ weight: number;
7
+ weights?: never;
8
+ } | {
9
+ weight?: never;
10
+ weights: number[];
11
+ } | {
12
+ weight?: never;
13
+ weights?: never;
14
+ });
15
+ /**
16
+ * @see https://redis.io/commands/zunion
17
+ */
18
+ export declare class ZUnionCommand<TData extends unknown[]> extends Command<string[], TData> {
19
+ constructor(cmd: [
20
+ numKeys: 1,
21
+ key: string,
22
+ opts?: ZUnionCommandOptions
23
+ ], cmdOpts?: CommandOptions<string[], TData>);
24
+ constructor(cmd: [
25
+ numKeys: number,
26
+ keys: string[],
27
+ opts?: ZUnionCommandOptions
28
+ ], cmdOpts?: CommandOptions<string[], TData>);
29
+ }
@@ -1,5 +1,5 @@
1
1
  import { Command, CommandOptions } from "./command.js";
2
- export declare type ZUnionStoreCommandOptions = {
2
+ export type ZUnionStoreCommandOptions = {
3
3
  aggregate?: "sum" | "min" | "max";
4
4
  } & ({
5
5
  weight: number;
@@ -1,18 +1,20 @@
1
- export declare type UpstashRequest = {
1
+ import { Telemetry } from "./types.js";
2
+ type CacheSetting = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload";
3
+ export type UpstashRequest = {
2
4
  path?: string[];
3
5
  /**
4
6
  * Request body will be serialized to json
5
7
  */
6
8
  body?: unknown;
7
9
  };
8
- export declare type UpstashResponse<TResult> = {
10
+ export type UpstashResponse<TResult> = {
9
11
  result?: TResult;
10
12
  error?: string;
11
13
  };
12
14
  export interface Requester {
13
15
  request: <TResult = unknown>(req: UpstashRequest) => Promise<UpstashResponse<TResult>>;
14
16
  }
15
- export declare type RetryConfig = false | {
17
+ export type RetryConfig = false | {
16
18
  /**
17
19
  * The number of retries to attempt before giving up.
18
20
  *
@@ -29,10 +31,10 @@ export declare type RetryConfig = false | {
29
31
  */
30
32
  backoff?: (retryCount: number) => number;
31
33
  };
32
- export declare type Options = {
34
+ export type Options = {
33
35
  backend?: string;
34
36
  };
35
- export declare type RequesterConfig = {
37
+ export type RequesterConfig = {
36
38
  /**
37
39
  * Configure the retry behaviour in case of network errors
38
40
  */
@@ -60,30 +62,18 @@ export declare type RequesterConfig = {
60
62
  * @default "base64"
61
63
  */
62
64
  responseEncoding?: false | "base64";
65
+ /**
66
+ * Configure the cache behaviour
67
+ * @default "no-store"
68
+ */
69
+ cache?: CacheSetting;
63
70
  };
64
- export declare type HttpClientConfig = {
71
+ export type HttpClientConfig = {
65
72
  headers?: Record<string, string>;
66
73
  baseUrl: string;
67
74
  options?: Options;
68
75
  retry?: RetryConfig;
69
76
  agent?: any;
70
- telemetry?: {
71
- /**
72
- * Upstash-Telemetry-Sdk
73
- * @example @upstash/redis@v1.1.1
74
- */
75
- sdk?: string;
76
- /**
77
- * Upstash-Telemetry-Platform
78
- * @example cloudflare
79
- */
80
- platform?: string;
81
- /**
82
- * Upstash-Telemetry-Runtime
83
- * @example node@v18
84
- */
85
- runtime?: string;
86
- };
87
77
  } & RequesterConfig;
88
78
  export declare class HttpClient implements Requester {
89
79
  baseUrl: string;
@@ -92,11 +82,14 @@ export declare class HttpClient implements Requester {
92
82
  backend?: string;
93
83
  agent: any;
94
84
  responseEncoding?: false | "base64";
85
+ cache?: CacheSetting;
95
86
  };
96
87
  readonly retry: {
97
88
  attempts: number;
98
89
  backoff: (retryCount: number) => number;
99
90
  };
100
91
  constructor(config: HttpClientConfig);
92
+ mergeTelemetry(telemetry: Telemetry): void;
101
93
  request<TResult>(req: UpstashRequest): Promise<UpstashResponse<TResult>>;
102
94
  }
95
+ export {};