renovate 44.75.0 → 44.75.2

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.
@@ -7,6 +7,7 @@ import { RESP_TYPES, createClient, createCluster } from "@redis/client";
7
7
  function normalizeRedisUrl(url) {
8
8
  return url.replace(regEx(/^(?<scheme>rediss?)\+cluster:\/\//), "$<scheme>://");
9
9
  }
10
+ const RESP = 2;
10
11
  var PackageCacheRedis = class PackageCacheRedis extends PackageCacheBase {
11
12
  static async create(url, prefix) {
12
13
  const rprefix = prefix ?? "";
@@ -20,7 +21,10 @@ var PackageCacheRedis = class PackageCacheRedis extends PackageCacheBase {
20
21
  };
21
22
  let client;
22
23
  if (clusteredMode) {
23
- const clusterConfig = { rootNodes: [config] };
24
+ const clusterConfig = {
25
+ rootNodes: [config],
26
+ RESP
27
+ };
24
28
  const parsedUrl = parseUrl(rewrittenUrl);
25
29
  if (parsedUrl?.username) clusterConfig.defaults = { username: parsedUrl.username };
26
30
  if (parsedUrl?.password) {
@@ -28,7 +32,10 @@ var PackageCacheRedis = class PackageCacheRedis extends PackageCacheBase {
28
32
  clusterConfig.defaults.password = parsedUrl.password;
29
33
  }
30
34
  client = createCluster(clusterConfig);
31
- } else client = createClient(config);
35
+ } else client = createClient({
36
+ ...config,
37
+ RESP
38
+ });
32
39
  await client.connect();
33
40
  logger.debug("Redis cache connected");
34
41
  const binaryClient = client.withTypeMapping({ [RESP_TYPES.BLOB_STRING]: Buffer });
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","names":[],"sources":["../../../../../lib/util/cache/package/impl/redis.ts"],"sourcesContent":["import type { RedisClusterOptions } from '@redis/client';\nimport { RESP_TYPES, createClient, createCluster } from '@redis/client';\nimport { logger } from '../../../../logger/index.ts';\nimport { regEx } from '../../../regex.ts';\nimport { parseUrl } from '../../../url.ts';\nimport type { PackageCacheNamespace } from '../types.ts';\nimport { PackageCacheBase } from './base.ts';\n\nexport function normalizeRedisUrl(url: string): string {\n return url.replace(\n regEx(/^(?<scheme>rediss?)\\+cluster:\\/\\//),\n '$<scheme>://',\n );\n}\n\ntype RedisClient =\n ReturnType<typeof createClient> | ReturnType<typeof createCluster>;\n\ninterface RedisBinaryClient {\n get(key: string): Promise<Buffer | null>;\n}\n\nexport class PackageCacheRedis extends PackageCacheBase {\n static async create(\n url: string,\n prefix: string | undefined,\n ): Promise<PackageCacheRedis> {\n const rprefix = prefix ?? '';\n logger.debug('Redis cache init');\n\n const rewrittenUrl = normalizeRedisUrl(url);\n const clusteredMode = rewrittenUrl !== url;\n\n const config = {\n url: rewrittenUrl,\n socket: {\n reconnectStrategy: (retries: number) => Math.min(retries * 100, 3000),\n },\n pingInterval: 30000,\n };\n\n let client: RedisClient;\n\n if (clusteredMode) {\n const clusterConfig: RedisClusterOptions = { rootNodes: [config] };\n\n const parsedUrl = parseUrl(rewrittenUrl);\n if (parsedUrl?.username) {\n clusterConfig.defaults = {\n username: parsedUrl.username,\n };\n }\n\n if (parsedUrl?.password) {\n clusterConfig.defaults ??= {};\n clusterConfig.defaults.password = parsedUrl.password;\n }\n\n client = createCluster(clusterConfig);\n } else {\n client = createClient(config);\n }\n\n await client.connect();\n logger.debug('Redis cache connected');\n const binaryClient = client.withTypeMapping({\n [RESP_TYPES.BLOB_STRING]: Buffer,\n }) as RedisBinaryClient;\n return new PackageCacheRedis(client, binaryClient, rprefix);\n }\n\n private readonly client: RedisClient;\n private readonly binaryClient: RedisBinaryClient;\n private readonly rprefix: string;\n\n private constructor(\n client: RedisClient,\n binaryClient: RedisBinaryClient,\n rprefix: string,\n ) {\n super();\n this.client = client;\n this.binaryClient = binaryClient;\n this.rprefix = rprefix;\n }\n\n private getKey(namespace: PackageCacheNamespace, key: string): string {\n return `${this.rprefix}${namespace}-${key}`;\n }\n\n override destroy(): Promise<void> {\n try {\n // https://github.com/redis/node-redis#disconnecting\n this.client.destroy();\n } catch (err) {\n logger.warn({ err }, 'Redis cache destroy failed');\n }\n return Promise.resolve();\n }\n\n protected override async readRaw(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<Buffer | undefined> {\n const raw = await this.binaryClient.get(this.getKey(namespace, key));\n\n return raw ?? undefined;\n }\n\n protected override async writeRaw(\n namespace: PackageCacheNamespace,\n key: string,\n data: Buffer,\n ttlSeconds: number,\n ): Promise<void> {\n await this.client.set(this.getKey(namespace, key), data, {\n EX: ttlSeconds,\n });\n }\n\n protected override async rm(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<void> {\n logger.trace(\n { rprefix: this.rprefix, namespace, key },\n 'Removing cache entry',\n );\n await this.client.del(this.getKey(namespace, key));\n }\n}\n"],"mappings":";;;;;;AAQA,SAAgB,kBAAkB,KAAqB;CACrD,OAAO,IAAI,QACT,MAAM,mCAAmC,GACzC,cACF;AACF;AASA,IAAa,oBAAb,MAAa,0BAA0B,iBAAiB;CACtD,aAAa,OACX,KACA,QAC4B;EAC5B,MAAM,UAAU,UAAU;EAC1B,OAAO,MAAM,kBAAkB;EAE/B,MAAM,eAAe,kBAAkB,GAAG;EAC1C,MAAM,gBAAgB,iBAAiB;EAEvC,MAAM,SAAS;GACb,KAAK;GACL,QAAQ,EACN,oBAAoB,YAAoB,KAAK,IAAI,UAAU,KAAK,GAAI,EACtE;GACA,cAAc;EAChB;EAEA,IAAI;EAEJ,IAAI,eAAe;GACjB,MAAM,gBAAqC,EAAE,WAAW,CAAC,MAAM,EAAE;GAEjE,MAAM,YAAY,SAAS,YAAY;GACvC,IAAI,WAAW,UACb,cAAc,WAAW,EACvB,UAAU,UAAU,SACtB;GAGF,IAAI,WAAW,UAAU;IACvB,cAAc,aAAa,CAAC;IAC5B,cAAc,SAAS,WAAW,UAAU;GAC9C;GAEA,SAAS,cAAc,aAAa;EACtC,OACE,SAAS,aAAa,MAAM;EAG9B,MAAM,OAAO,QAAQ;EACrB,OAAO,MAAM,uBAAuB;EACpC,MAAM,eAAe,OAAO,gBAAgB,GACzC,WAAW,cAAc,OAC5B,CAAC;EACD,OAAO,IAAI,kBAAkB,QAAQ,cAAc,OAAO;CAC5D;CAEA;CACA;CACA;CAEA,YACE,QACA,cACA,SACA;EACA,MAAM;EACN,KAAK,SAAS;EACd,KAAK,eAAe;EACpB,KAAK,UAAU;CACjB;CAEA,OAAe,WAAkC,KAAqB;EACpE,OAAO,GAAG,KAAK,UAAU,UAAU,GAAG;CACxC;CAEA,UAAkC;EAChC,IAAI;GAEF,KAAK,OAAO,QAAQ;EACtB,SAAS,KAAK;GACZ,OAAO,KAAK,EAAE,IAAI,GAAG,4BAA4B;EACnD;EACA,OAAO,QAAQ,QAAQ;CACzB;CAEA,MAAyB,QACvB,WACA,KAC6B;EAG7B,OAAO,MAFW,KAAK,aAAa,IAAI,KAAK,OAAO,WAAW,GAAG,CAAC,KAErD,KAAA;CAChB;CAEA,MAAyB,SACvB,WACA,KACA,MACA,YACe;EACf,MAAM,KAAK,OAAO,IAAI,KAAK,OAAO,WAAW,GAAG,GAAG,MAAM,EACvD,IAAI,WACN,CAAC;CACH;CAEA,MAAyB,GACvB,WACA,KACe;EACf,OAAO,MACL;GAAE,SAAS,KAAK;GAAS;GAAW;EAAI,GACxC,sBACF;EACA,MAAM,KAAK,OAAO,IAAI,KAAK,OAAO,WAAW,GAAG,CAAC;CACnD;AACF"}
1
+ {"version":3,"file":"redis.js","names":[],"sources":["../../../../../lib/util/cache/package/impl/redis.ts"],"sourcesContent":["import type {\n RedisClientType,\n RedisClusterOptions,\n RedisClusterType,\n RedisFunctions,\n RedisModules,\n RedisScripts,\n TypeMapping,\n} from '@redis/client';\nimport { RESP_TYPES, createClient, createCluster } from '@redis/client';\nimport { logger } from '../../../../logger/index.ts';\nimport { regEx } from '../../../regex.ts';\nimport { parseUrl } from '../../../url.ts';\nimport type { PackageCacheNamespace } from '../types.ts';\nimport { PackageCacheBase } from './base.ts';\n\nexport function normalizeRedisUrl(url: string): string {\n return url.replace(\n regEx(/^(?<scheme>rediss?)\\+cluster:\\/\\//),\n '$<scheme>://',\n );\n}\n\n// TODO: switch to RESP 3 (the @redis/client v6 default) in the next major\n// release, as it requires Redis server 6.0 or newer.\nconst RESP = 2;\n\ntype RedisClient =\n | RedisClientType<\n RedisModules,\n RedisFunctions,\n RedisScripts,\n typeof RESP,\n TypeMapping\n >\n | RedisClusterType<\n RedisModules,\n RedisFunctions,\n RedisScripts,\n typeof RESP,\n TypeMapping\n >;\n\ninterface RedisBinaryClient {\n get(key: string): Promise<Buffer | null>;\n}\n\nexport class PackageCacheRedis extends PackageCacheBase {\n static async create(\n url: string,\n prefix: string | undefined,\n ): Promise<PackageCacheRedis> {\n const rprefix = prefix ?? '';\n logger.debug('Redis cache init');\n\n const rewrittenUrl = normalizeRedisUrl(url);\n const clusteredMode = rewrittenUrl !== url;\n\n const config = {\n url: rewrittenUrl,\n socket: {\n reconnectStrategy: (retries: number) => Math.min(retries * 100, 3000),\n },\n pingInterval: 30000,\n };\n\n let client: RedisClient;\n\n if (clusteredMode) {\n const clusterConfig: RedisClusterOptions<\n RedisModules,\n RedisFunctions,\n RedisScripts,\n typeof RESP\n > = { rootNodes: [config], RESP };\n\n const parsedUrl = parseUrl(rewrittenUrl);\n if (parsedUrl?.username) {\n clusterConfig.defaults = {\n username: parsedUrl.username,\n };\n }\n\n if (parsedUrl?.password) {\n clusterConfig.defaults ??= {};\n clusterConfig.defaults.password = parsedUrl.password;\n }\n\n client = createCluster(clusterConfig);\n } else {\n client = createClient({ ...config, RESP });\n }\n\n await client.connect();\n logger.debug('Redis cache connected');\n const binaryClient = client.withTypeMapping({\n [RESP_TYPES.BLOB_STRING]: Buffer,\n }) as RedisBinaryClient;\n return new PackageCacheRedis(client, binaryClient, rprefix);\n }\n\n private readonly client: RedisClient;\n private readonly binaryClient: RedisBinaryClient;\n private readonly rprefix: string;\n\n private constructor(\n client: RedisClient,\n binaryClient: RedisBinaryClient,\n rprefix: string,\n ) {\n super();\n this.client = client;\n this.binaryClient = binaryClient;\n this.rprefix = rprefix;\n }\n\n private getKey(namespace: PackageCacheNamespace, key: string): string {\n return `${this.rprefix}${namespace}-${key}`;\n }\n\n override destroy(): Promise<void> {\n try {\n // https://github.com/redis/node-redis#disconnecting\n this.client.destroy();\n } catch (err) {\n logger.warn({ err }, 'Redis cache destroy failed');\n }\n return Promise.resolve();\n }\n\n protected override async readRaw(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<Buffer | undefined> {\n const raw = await this.binaryClient.get(this.getKey(namespace, key));\n\n return raw ?? undefined;\n }\n\n protected override async writeRaw(\n namespace: PackageCacheNamespace,\n key: string,\n data: Buffer,\n ttlSeconds: number,\n ): Promise<void> {\n await this.client.set(this.getKey(namespace, key), data, {\n EX: ttlSeconds,\n });\n }\n\n protected override async rm(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<void> {\n logger.trace(\n { rprefix: this.rprefix, namespace, key },\n 'Removing cache entry',\n );\n await this.client.del(this.getKey(namespace, key));\n }\n}\n"],"mappings":";;;;;;AAgBA,SAAgB,kBAAkB,KAAqB;CACrD,OAAO,IAAI,QACT,MAAM,mCAAmC,GACzC,cACF;AACF;AAIA,MAAM,OAAO;AAsBb,IAAa,oBAAb,MAAa,0BAA0B,iBAAiB;CACtD,aAAa,OACX,KACA,QAC4B;EAC5B,MAAM,UAAU,UAAU;EAC1B,OAAO,MAAM,kBAAkB;EAE/B,MAAM,eAAe,kBAAkB,GAAG;EAC1C,MAAM,gBAAgB,iBAAiB;EAEvC,MAAM,SAAS;GACb,KAAK;GACL,QAAQ,EACN,oBAAoB,YAAoB,KAAK,IAAI,UAAU,KAAK,GAAI,EACtE;GACA,cAAc;EAChB;EAEA,IAAI;EAEJ,IAAI,eAAe;GACjB,MAAM,gBAKF;IAAE,WAAW,CAAC,MAAM;IAAG;GAAK;GAEhC,MAAM,YAAY,SAAS,YAAY;GACvC,IAAI,WAAW,UACb,cAAc,WAAW,EACvB,UAAU,UAAU,SACtB;GAGF,IAAI,WAAW,UAAU;IACvB,cAAc,aAAa,CAAC;IAC5B,cAAc,SAAS,WAAW,UAAU;GAC9C;GAEA,SAAS,cAAc,aAAa;EACtC,OACE,SAAS,aAAa;GAAE,GAAG;GAAQ;EAAK,CAAC;EAG3C,MAAM,OAAO,QAAQ;EACrB,OAAO,MAAM,uBAAuB;EACpC,MAAM,eAAe,OAAO,gBAAgB,GACzC,WAAW,cAAc,OAC5B,CAAC;EACD,OAAO,IAAI,kBAAkB,QAAQ,cAAc,OAAO;CAC5D;CAEA;CACA;CACA;CAEA,YACE,QACA,cACA,SACA;EACA,MAAM;EACN,KAAK,SAAS;EACd,KAAK,eAAe;EACpB,KAAK,UAAU;CACjB;CAEA,OAAe,WAAkC,KAAqB;EACpE,OAAO,GAAG,KAAK,UAAU,UAAU,GAAG;CACxC;CAEA,UAAkC;EAChC,IAAI;GAEF,KAAK,OAAO,QAAQ;EACtB,SAAS,KAAK;GACZ,OAAO,KAAK,EAAE,IAAI,GAAG,4BAA4B;EACnD;EACA,OAAO,QAAQ,QAAQ;CACzB;CAEA,MAAyB,QACvB,WACA,KAC6B;EAG7B,OAAO,MAFW,KAAK,aAAa,IAAI,KAAK,OAAO,WAAW,GAAG,CAAC,KAErD,KAAA;CAChB;CAEA,MAAyB,SACvB,WACA,KACA,MACA,YACe;EACf,MAAM,KAAK,OAAO,IAAI,KAAK,OAAO,WAAW,GAAG,GAAG,MAAM,EACvD,IAAI,WACN,CAAC;CACH;CAEA,MAAyB,GACvB,WACA,KACe;EACf,OAAO,MACL;GAAE,SAAS,KAAK;GAAS;GAAW;EAAI,GACxC,sBACF;EACA,MAAM,KAAK,OAAO,IAAI,KAAK,OAAO,WAAW,GAAG,CAAC;CACnD;AACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "44.75.0",
4
+ "version": "44.75.2",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -117,7 +117,7 @@
117
117
  "@opentelemetry/semantic-conventions": "1.43.0",
118
118
  "@pnpm/parse-overrides": "1001.0.4",
119
119
  "@qnighy/marshal": "0.1.3",
120
- "@redis/client": "5.12.1",
120
+ "@redis/client": "6.2.1",
121
121
  "@renovatebot/detect-tools": "4.0.14",
122
122
  "@renovatebot/good-enough-parser": "2.0.1",
123
123
  "@renovatebot/osv-offline": "3.0.10",
@@ -177,7 +177,7 @@
177
177
  "moo": "0.5.3",
178
178
  "ms": "2.1.3",
179
179
  "neotraverse": "1.0.1",
180
- "node-html-parser": "9.0.2",
180
+ "node-html-parser": "9.0.3",
181
181
  "p-all": "5.0.1",
182
182
  "p-map": "7.0.7",
183
183
  "p-queue": "9.3.3",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 44.75.0 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 44.75.2 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "44.75.0",
5
+ "x-renovate-version": "44.75.2",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "definitions": {