renovate 43.26.0 → 43.26.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.
|
@@ -2,7 +2,7 @@ import { regEx } from "../../regex.js";
|
|
|
2
2
|
import { logger } from "../../../logger/index.js";
|
|
3
3
|
import { compressToBase64, decompressFromBase64 } from "../../compress.js";
|
|
4
4
|
import { DateTime } from "luxon";
|
|
5
|
-
import { createClient, createCluster } from "redis";
|
|
5
|
+
import { createClient, createCluster } from "@redis/client";
|
|
6
6
|
|
|
7
7
|
//#region lib/util/cache/package/redis.ts
|
|
8
8
|
let client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","names":[],"sources":["../../../../lib/util/cache/package/redis.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"redis.js","names":[],"sources":["../../../../lib/util/cache/package/redis.ts"],"sourcesContent":["import type { RedisClusterOptions } from '@redis/client';\nimport { createClient, createCluster } from '@redis/client';\nimport { DateTime } from 'luxon';\nimport { logger } from '../../../logger/index.ts';\nimport { compressToBase64, decompressFromBase64 } from '../../compress.ts';\nimport { regEx } from '../../regex.ts';\nimport type { PackageCacheNamespace } from './types.ts';\n\nlet client:\n | ReturnType<typeof createClient>\n | ReturnType<typeof createCluster>\n | undefined;\nlet rprefix: string | undefined;\n\nfunction getKey(namespace: PackageCacheNamespace, key: string): string {\n return `${rprefix}${namespace}-${key}`;\n}\n\nexport function normalizeRedisUrl(url: string): string {\n return url.replace(regEx(/^(rediss?)\\+cluster:\\/\\//), '$1://');\n}\n\nexport async function end(): Promise<void> {\n try {\n // https://github.com/redis/node-redis#disconnecting\n await client?.disconnect();\n } catch (err) {\n logger.warn({ err }, 'Redis cache end failed');\n }\n}\n\nasync function rm(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<void> {\n logger.trace({ rprefix, namespace, key }, 'Removing cache entry');\n await client?.del(getKey(namespace, key));\n}\n\nexport async function get<T = never>(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<T | undefined> {\n if (!client) {\n return undefined;\n }\n logger.trace(`cache.get(${namespace}, ${key})`);\n try {\n const res = await client?.get(getKey(namespace, key));\n const cachedValue = res && JSON.parse(res);\n if (cachedValue) {\n if (DateTime.local() < DateTime.fromISO(cachedValue.expiry)) {\n logger.trace({ rprefix, namespace, key }, 'Returning cached value');\n // istanbul ignore if\n if (!cachedValue.compress) {\n return cachedValue.value;\n }\n const res = await decompressFromBase64(cachedValue.value);\n return JSON.parse(res);\n }\n // istanbul ignore next\n await rm(namespace, key);\n }\n } catch {\n logger.trace({ rprefix, namespace, key }, 'Cache miss');\n }\n return undefined;\n}\n\nexport async function set(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n hardTtlMinutes = 5,\n): Promise<void> {\n logger.trace(\n { rprefix, namespace, key, hardTtlMinutes },\n 'Saving cached value',\n );\n\n // Redis requires TTL to be integer, not float\n const redisTTL = Math.floor(hardTtlMinutes * 60);\n\n try {\n await client?.set(\n getKey(namespace, key),\n JSON.stringify({\n compress: true,\n value: await compressToBase64(JSON.stringify(value)),\n expiry: DateTime.local().plus({ minutes: hardTtlMinutes }),\n }),\n { EX: redisTTL },\n );\n } catch (err) {\n logger.once.warn({ err }, 'Error while setting Redis cache value');\n }\n}\n\nexport async function init(\n url: string,\n prefix: string | undefined,\n): Promise<void> {\n if (!url) {\n return;\n }\n rprefix = prefix ?? '';\n logger.debug('Redis cache init');\n\n const rewrittenUrl = normalizeRedisUrl(url);\n // If any replacement was made, it means the regex matched and we are in clustered mode\n const clusteredMode = rewrittenUrl.length !== url.length;\n\n const config = {\n url: rewrittenUrl,\n socket: {\n reconnectStrategy: (retries: number) => {\n // Reconnect after this time\n return Math.min(retries * 100, 3000);\n },\n },\n pingInterval: 30000, // 30s\n };\n if (clusteredMode) {\n const clusterConfig: RedisClusterOptions = { rootNodes: [config] };\n\n // only add defaults if username or password are present in the URL\n const parsedUrl = new URL(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 await client.connect();\n logger.debug('Redis cache connected');\n}\n"],"mappings":";;;;;;;AAQA,IAAI;AAIJ,IAAI;AAEJ,SAAS,OAAO,WAAkC,KAAqB;AACrE,QAAO,GAAG,UAAU,UAAU,GAAG;;AAGnC,SAAgB,kBAAkB,KAAqB;AACrD,QAAO,IAAI,QAAQ,MAAM,2BAA2B,EAAE,QAAQ;;AAGhE,eAAsB,MAAqB;AACzC,KAAI;AAEF,QAAM,QAAQ,YAAY;UACnB,KAAK;AACZ,SAAO,KAAK,EAAE,KAAK,EAAE,yBAAyB;;;AAIlD,eAAe,GACb,WACA,KACe;AACf,QAAO,MAAM;EAAE;EAAS;EAAW;EAAK,EAAE,uBAAuB;AACjE,OAAM,QAAQ,IAAI,OAAO,WAAW,IAAI,CAAC;;AAG3C,eAAsB,IACpB,WACA,KACwB;AACxB,KAAI,CAAC,OACH;AAEF,QAAO,MAAM,aAAa,UAAU,IAAI,IAAI,GAAG;AAC/C,KAAI;EACF,MAAM,MAAM,MAAM,QAAQ,IAAI,OAAO,WAAW,IAAI,CAAC;EACrD,MAAM,cAAc,OAAO,KAAK,MAAM,IAAI;AAC1C,MAAI,aAAa;AACf,OAAI,SAAS,OAAO,GAAG,SAAS,QAAQ,YAAY,OAAO,EAAE;AAC3D,WAAO,MAAM;KAAE;KAAS;KAAW;KAAK,EAAE,yBAAyB;;AAEnE,QAAI,CAAC,YAAY,SACf,QAAO,YAAY;IAErB,MAAM,MAAM,MAAM,qBAAqB,YAAY,MAAM;AACzD,WAAO,KAAK,MAAM,IAAI;;;AAGxB,SAAM,GAAG,WAAW,IAAI;;SAEpB;AACN,SAAO,MAAM;GAAE;GAAS;GAAW;GAAK,EAAE,aAAa;;;AAK3D,eAAsB,IACpB,WACA,KACA,OACA,iBAAiB,GACF;AACf,QAAO,MACL;EAAE;EAAS;EAAW;EAAK;EAAgB,EAC3C,sBACD;CAGD,MAAM,WAAW,KAAK,MAAM,iBAAiB,GAAG;AAEhD,KAAI;AACF,QAAM,QAAQ,IACZ,OAAO,WAAW,IAAI,EACtB,KAAK,UAAU;GACb,UAAU;GACV,OAAO,MAAM,iBAAiB,KAAK,UAAU,MAAM,CAAC;GACpD,QAAQ,SAAS,OAAO,CAAC,KAAK,EAAE,SAAS,gBAAgB,CAAC;GAC3D,CAAC,EACF,EAAE,IAAI,UAAU,CACjB;UACM,KAAK;AACZ,SAAO,KAAK,KAAK,EAAE,KAAK,EAAE,wCAAwC;;;AAItE,eAAsB,KACpB,KACA,QACe;AACf,KAAI,CAAC,IACH;AAEF,WAAU,UAAU;AACpB,QAAO,MAAM,mBAAmB;CAEhC,MAAM,eAAe,kBAAkB,IAAI;CAE3C,MAAM,gBAAgB,aAAa,WAAW,IAAI;CAElD,MAAM,SAAS;EACb,KAAK;EACL,QAAQ,EACN,oBAAoB,YAAoB;AAEtC,UAAO,KAAK,IAAI,UAAU,KAAK,IAAK;KAEvC;EACD,cAAc;EACf;AACD,KAAI,eAAe;EACjB,MAAM,gBAAqC,EAAE,WAAW,CAAC,OAAO,EAAE;EAGlE,MAAM,YAAY,IAAI,IAAI,aAAa;AACvC,MAAI,UAAU,SACZ,eAAc,WAAW,EACvB,UAAU,UAAU,UACrB;AAGH,MAAI,UAAU,UAAU;AACtB,iBAAc,aAAa,EAAE;AAC7B,iBAAc,SAAS,WAAW,UAAU;;AAG9C,WAAS,cAAc,cAAc;OAErC,UAAS,aAAa,OAAO;AAE/B,OAAM,OAAO,SAAS;AACtB,QAAO,MAAM,wBAAwB"}
|
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": "43.26.
|
|
4
|
+
"version": "43.26.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"renovate": "dist/renovate.js",
|
|
@@ -118,6 +118,7 @@
|
|
|
118
118
|
"@opentelemetry/semantic-conventions": "1.39.0",
|
|
119
119
|
"@pnpm/parse-overrides": "1001.0.3",
|
|
120
120
|
"@qnighy/marshal": "0.1.3",
|
|
121
|
+
"@redis/client": "5.10.0",
|
|
121
122
|
"@renovatebot/detect-tools": "1.2.8",
|
|
122
123
|
"@renovatebot/good-enough-parser": "1.2.0",
|
|
123
124
|
"@renovatebot/osv-offline": "2.0.1",
|
|
@@ -157,7 +158,7 @@
|
|
|
157
158
|
"fs-extra": "11.3.3",
|
|
158
159
|
"git-url-parse": "16.1.0",
|
|
159
160
|
"github-url-from-git": "1.5.0",
|
|
160
|
-
"glob": "13.0.
|
|
161
|
+
"glob": "13.0.3",
|
|
161
162
|
"global-agent": "3.0.0",
|
|
162
163
|
"google-auth-library": "10.5.0",
|
|
163
164
|
"got": "14.6.6",
|
|
@@ -187,7 +188,6 @@
|
|
|
187
188
|
"prettier": "3.8.1",
|
|
188
189
|
"protobufjs": "8.0.0",
|
|
189
190
|
"punycode": "2.3.1",
|
|
190
|
-
"redis": "5.10.0",
|
|
191
191
|
"remark": "15.0.1",
|
|
192
192
|
"remark-gfm": "4.0.1",
|
|
193
193
|
"remark-github": "12.0.0",
|
package/renovate-schema.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "JSON schema for Renovate 43.26.
|
|
2
|
+
"title": "JSON schema for Renovate 43.26.2 config files (https://renovatebot.com/)",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
-
"x-renovate-version": "43.26.
|
|
4
|
+
"x-renovate-version": "43.26.2",
|
|
5
5
|
"allowComments": true,
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|