renovate 41.4.0 → 41.6.0

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.
@@ -477,6 +477,10 @@
477
477
  "opentelemetry-rust": "https://github.com/open-telemetry/opentelemetry-rust",
478
478
  "opentelemetry-rust-contrib": "https://github.com/open-telemetry/opentelemetry-rust-contrib",
479
479
  "orleans": "https://github.com/dotnet/orleans",
480
+ "oxlint": [
481
+ "https://github.com/oxc-project/oxc",
482
+ "https://github.com/oxc-project/eslint-plugin-oxlint"
483
+ ],
480
484
  "panda-css": "https://github.com/chakra-ui/panda",
481
485
  "parcel": "https://github.com/parcel-bundler/parcel",
482
486
  "payloadcms": "https://github.com/payloadcms/payload",
@@ -669,7 +673,6 @@
669
673
  "/^com.oracle.database.jdbc:/",
670
674
  "/^com.oracle.database.nls:/"
671
675
  ],
672
- "oxlint": ["oxlint", "eslint-plugin-oxlint"],
673
676
  "prometheus-simpleclient": "/^io.prometheus:simpleclient/",
674
677
  "russh": ["/^russh$/", "/^russh-keys$/"],
675
678
  "spfx": ["/^@microsoft/sp-/", "/^@microsoft/eslint-.+-spfx$/"],
@@ -47,13 +47,15 @@ class AzurePipelinesTasksDatasource extends datasource_1.Datasource {
47
47
  })
48
48
  .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))
49
49
  .forEach((task) => {
50
- result.releases.push({
50
+ const release = {
51
51
  version: `${task.version.major}.${task.version.minor}.${task.version.patch}`,
52
+ changelogContent: task.releaseNotes,
52
53
  isDeprecated: task.deprecated,
53
- changelogUrl: task.serverOwned
54
- ? BUILT_IN_TASKS_CHANGELOG_URL
55
- : undefined,
56
- });
54
+ };
55
+ if (task.serverOwned) {
56
+ release.changelogUrl = BUILT_IN_TASKS_CHANGELOG_URL;
57
+ }
58
+ result.releases.push(release);
57
59
  });
58
60
  return result;
59
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as hostRules from '../../../util/host-rules';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { id as versioning } from '../../versioning/loose';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\nconst BUILT_IN_TASKS_CHANGELOG_URL =\n 'https://github.com/microsoft/azure-pipelines-tasks/releases';\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n result.releases.push({\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n isDeprecated: task.deprecated,\n changelogUrl: task.serverOwned\n ? BUILT_IN_TASKS_CHANGELOG_URL\n : undefined,\n });\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n @cache({\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: (url: string) => url,\n ttlMinutes: 24 * 60,\n })\n async getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as hostRules from '../../../util/host-rules';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { id as versioning } from '../../versioning/loose';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\nconst BUILT_IN_TASKS_CHANGELOG_URL =\n 'https://github.com/microsoft/azure-pipelines-tasks/releases';\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n const release: Release = {\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n changelogContent: task.releaseNotes,\n isDeprecated: task.deprecated,\n };\n\n if (task.serverOwned) {\n release.changelogUrl = BUILT_IN_TASKS_CHANGELOG_URL;\n }\n\n result.releases.push(release);\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n @cache({\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: (url: string) => url,\n ttlMinutes: 24 * 60,\n })\n async getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"]}
@@ -16,6 +16,7 @@ export declare const AzurePipelinesTask: z.ZodObject<{
16
16
  id: z.ZodString;
17
17
  name: z.ZodString;
18
18
  deprecated: z.ZodOptional<z.ZodBoolean>;
19
+ releaseNotes: z.ZodOptional<z.ZodString>;
19
20
  serverOwned: z.ZodOptional<z.ZodBoolean>;
20
21
  version: z.ZodNullable<z.ZodObject<{
21
22
  major: z.ZodNumber;
@@ -40,6 +41,7 @@ export declare const AzurePipelinesTask: z.ZodObject<{
40
41
  patch: number;
41
42
  } | null;
42
43
  deprecated?: boolean | undefined;
44
+ releaseNotes?: string | undefined;
43
45
  serverOwned?: boolean | undefined;
44
46
  contributionIdentifier?: string | undefined;
45
47
  }, {
@@ -51,6 +53,7 @@ export declare const AzurePipelinesTask: z.ZodObject<{
51
53
  patch: number;
52
54
  } | null;
53
55
  deprecated?: boolean | undefined;
56
+ releaseNotes?: string | undefined;
54
57
  serverOwned?: boolean | undefined;
55
58
  contributionIdentifier?: string | undefined;
56
59
  }>;
@@ -59,6 +62,7 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
59
62
  id: z.ZodString;
60
63
  name: z.ZodString;
61
64
  deprecated: z.ZodOptional<z.ZodBoolean>;
65
+ releaseNotes: z.ZodOptional<z.ZodString>;
62
66
  serverOwned: z.ZodOptional<z.ZodBoolean>;
63
67
  version: z.ZodNullable<z.ZodObject<{
64
68
  major: z.ZodNumber;
@@ -83,6 +87,7 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
83
87
  patch: number;
84
88
  } | null;
85
89
  deprecated?: boolean | undefined;
90
+ releaseNotes?: string | undefined;
86
91
  serverOwned?: boolean | undefined;
87
92
  contributionIdentifier?: string | undefined;
88
93
  }, {
@@ -94,6 +99,7 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
94
99
  patch: number;
95
100
  } | null;
96
101
  deprecated?: boolean | undefined;
102
+ releaseNotes?: string | undefined;
97
103
  serverOwned?: boolean | undefined;
98
104
  contributionIdentifier?: string | undefined;
99
105
  }>, "many">;
@@ -107,6 +113,7 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
107
113
  patch: number;
108
114
  } | null;
109
115
  deprecated?: boolean | undefined;
116
+ releaseNotes?: string | undefined;
110
117
  serverOwned?: boolean | undefined;
111
118
  contributionIdentifier?: string | undefined;
112
119
  }[];
@@ -120,6 +127,7 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
120
127
  patch: number;
121
128
  } | null;
122
129
  deprecated?: boolean | undefined;
130
+ releaseNotes?: string | undefined;
123
131
  serverOwned?: boolean | undefined;
124
132
  contributionIdentifier?: string | undefined;
125
133
  }[];
@@ -11,6 +11,7 @@ exports.AzurePipelinesTask = zod_1.z.object({
11
11
  id: zod_1.z.string(),
12
12
  name: zod_1.z.string(),
13
13
  deprecated: zod_1.z.boolean().optional(),
14
+ releaseNotes: zod_1.z.string().optional(),
14
15
  serverOwned: zod_1.z.boolean().optional(),
15
16
  version: exports.AzurePipelinesTaskVersion.nullable(),
16
17
  contributionIdentifier: zod_1.z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,iCAAyB,CAAC,QAAQ,EAAE;IAC7C,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,0BAAkB,CAAC,KAAK,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n serverOwned: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,iCAAyB,CAAC,QAAQ,EAAE;IAC7C,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,0BAAkB,CAAC,KAAK,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n releaseNotes: z.string().optional(),\n serverOwned: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"]}
@@ -13,35 +13,35 @@ export declare const UnityReleasesJSON: z.ZodObject<{
13
13
  shortRevision: z.ZodString;
14
14
  }, "strip", z.ZodTypeAny, {
15
15
  version: string;
16
- releaseDate: string;
17
16
  releaseNotes: {
18
17
  url: string;
19
18
  };
19
+ releaseDate: string;
20
20
  shortRevision: string;
21
21
  }, {
22
22
  version: string;
23
- releaseDate: string;
24
23
  releaseNotes: {
25
24
  url: string;
26
25
  };
26
+ releaseDate: string;
27
27
  shortRevision: string;
28
28
  }>, "many">;
29
29
  }, "strip", z.ZodTypeAny, {
30
30
  results: {
31
31
  version: string;
32
- releaseDate: string;
33
32
  releaseNotes: {
34
33
  url: string;
35
34
  };
35
+ releaseDate: string;
36
36
  shortRevision: string;
37
37
  }[];
38
38
  }, {
39
39
  results: {
40
40
  version: string;
41
- releaseDate: string;
42
41
  releaseNotes: {
43
42
  url: string;
44
43
  };
44
+ releaseDate: string;
45
45
  shortRevision: string;
46
46
  }[];
47
47
  }>;
@@ -15,6 +15,7 @@ const regex_1 = require("../regex");
15
15
  handlebars_1.default.registerHelper('encodeURIComponent', encodeURIComponent);
16
16
  handlebars_1.default.registerHelper('decodeURIComponent', decodeURIComponent);
17
17
  handlebars_1.default.registerHelper('encodeBase64', (str) => Buffer.from(str ?? '').toString('base64'));
18
+ handlebars_1.default.registerHelper('decodeBase64', (str) => Buffer.from(str ?? '', 'base64').toString());
18
19
  handlebars_1.default.registerHelper('stringToPrettyJSON', (input) => JSON.stringify(JSON.parse(input), null, 2));
19
20
  handlebars_1.default.registerHelper('toJSON', (input) => JSON.stringify(input));
20
21
  handlebars_1.default.registerHelper('toArray', (...args) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/template/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport handlebars, { type HelperOptions } from 'handlebars';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport { toArray } from '../array';\nimport { getChildEnv } from '../exec/utils';\nimport { regEx } from '../regex';\n\n// Missing in handlebars\ntype Options = HelperOptions & {\n lookupProperty: (element: unknown, key: unknown) => unknown;\n};\n\nhandlebars.registerHelper('encodeURIComponent', encodeURIComponent);\nhandlebars.registerHelper('decodeURIComponent', decodeURIComponent);\n\nhandlebars.registerHelper('encodeBase64', (str: string) =>\n Buffer.from(str ?? '').toString('base64'),\n);\n\nhandlebars.registerHelper('stringToPrettyJSON', (input: string): string =>\n JSON.stringify(JSON.parse(input), null, 2),\n);\n\nhandlebars.registerHelper('toJSON', (input: unknown): string =>\n JSON.stringify(input),\n);\n\nhandlebars.registerHelper('toArray', (...args: unknown[]): unknown[] => {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args;\n});\n\nhandlebars.registerHelper('toObject', (...args: unknown[]): unknown => {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n\n if (args.length % 2 !== 0) {\n throw new Error(`Must contain an even number of elements`);\n }\n\n const keys = args.filter((_, index) => index % 2 === 0);\n const values = args.filter((_, index) => index % 2 === 1);\n\n return Object.fromEntries(keys.map((key, index) => [key, values[index]]));\n});\n\nhandlebars.registerHelper('replace', (find, replace, context) =>\n (context ?? '').replace(regEx(find, 'g'), replace),\n);\n\nhandlebars.registerHelper('lowercase', (str: string) => str?.toLowerCase());\n\nhandlebars.registerHelper('containsString', (str, subStr) =>\n str?.includes(subStr),\n);\n\nhandlebars.registerHelper('equals', (arg1, arg2) => arg1 === arg2);\n\nhandlebars.registerHelper('includes', (arg1: string[], arg2: string) => {\n if (is.array(arg1, is.string) && is.string(arg2)) {\n return arg1.includes(arg2);\n }\n\n return false;\n});\n\nhandlebars.registerHelper(\n 'split',\n (str: unknown, separator: unknown): string[] => {\n if (is.string(str) && is.string(separator)) {\n return str.split(separator);\n }\n return [];\n },\n);\n\nhandlebars.registerHelper({\n and(...args) {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.every(Boolean);\n },\n or(...args) {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.some(Boolean);\n },\n});\n\nhandlebars.registerHelper(\n 'lookupArray',\n (obj: unknown, key: unknown, options: Options): unknown[] => {\n return (\n toArray(obj)\n // skip elements like #with does\n .filter((element) => !handlebars.Utils.isEmpty(element))\n .map((element) => options.lookupProperty(element, key))\n .filter((value) => value !== undefined)\n );\n },\n);\n\nhandlebars.registerHelper('distinct', (obj: unknown): unknown[] => {\n const seen = new Set<string>();\n\n return toArray(obj).filter((value) => {\n const str = JSON.stringify(value);\n\n if (seen.has(str)) {\n return false;\n }\n\n seen.add(str);\n return true;\n });\n});\n\nexport const exposedConfigOptions = [\n 'additionalBranchPrefix',\n 'addLabels',\n 'branchName',\n 'branchPrefix',\n 'branchTopic',\n 'commitBody',\n 'commitMessage',\n 'commitMessageAction',\n 'commitMessageExtra',\n 'commitMessagePrefix',\n 'commitMessageSuffix',\n 'commitMessageTopic',\n 'gitAuthor',\n 'group',\n 'groupName',\n 'groupSlug',\n 'labels',\n 'prBodyColumns',\n 'prBodyDefinitions',\n 'prBodyNotes',\n 'prTitle',\n 'semanticCommitScope',\n 'semanticCommitType',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMinor',\n 'sourceDirectory',\n];\n\nexport const allowedFields = {\n baseBranch: 'The baseBranch for this branch/PR',\n body: 'The body of the release notes',\n categories: 'The categories of the manager of the dependency being updated',\n currentValue: 'The extracted current value of the dependency being updated',\n currentVersion:\n 'The version that would be currently installed. For example, if currentValue is ^3.0.0 then currentVersion might be 3.1.0.',\n currentVersionAgeInDays: 'The age of the current version in days',\n currentVersionTimestamp: 'The timestamp of the current version',\n currentDigest: 'The extracted current digest of the dependency being updated',\n currentDigestShort:\n 'The extracted current short digest of the dependency being updated',\n datasource: 'The datasource used to look up the upgrade',\n depName: 'The name of the dependency being updated',\n depNameLinked:\n 'The dependency name already linked to its home page using markdown',\n depNameSanitized:\n 'The depName field sanitized for use in branches after removing spaces and special characters',\n depType: 'The dependency type (if extracted - manager-dependent)',\n depTypes:\n 'A deduplicated array of dependency types (if extracted - manager-dependent) in a branch',\n displayFrom: 'The current value, formatted for display',\n displayPending: 'Latest pending update, if internalChecksFilter is in use',\n displayTo: 'The to value, formatted for display',\n hasReleaseNotes: 'true if the upgrade has release notes',\n indentation: 'The indentation of the dependency being updated',\n isGroup: 'true if the upgrade is part of a group',\n isLockfileUpdate: 'true if the branch is a lock file update',\n isMajor: 'true if the upgrade is major',\n isMinor: 'true if the upgrade is minor',\n isPatch: 'true if the upgrade is a patch upgrade',\n isPin: 'true if the upgrade is pinning dependencies',\n isPinDigest: 'true if the upgrade is pinning digests',\n isRollback: 'true if the upgrade is a rollback PR',\n isReplacement: 'true if the upgrade is a replacement',\n isRange: 'true if the new value is a range',\n isSingleVersion:\n 'true if the upgrade is to a single version rather than a range',\n isVulnerabilityAlert: 'true if the upgrade is a vulnerability alert',\n logJSON: 'ChangeLogResult object for the upgrade',\n manager: 'The (package) manager which detected the dependency',\n newDigest: 'The new digest value',\n newDigestShort:\n 'A shorted version of newDigest, for use when the full digest is too long to be conveniently displayed',\n newMajor:\n 'The major version of the new version. e.g. \"3\" if the new version is \"3.1.0\"',\n newMinor:\n 'The minor version of the new version. e.g. \"1\" if the new version is \"3.1.0\"',\n newPatch:\n 'The patch version of the new version. e.g. \"0\" if the new version is \"3.1.0\"',\n newName:\n 'The name of the new dependency that replaces the current deprecated dependency',\n newValue:\n 'The new value in the upgrade. Can be a range or version e.g. \"^3.0.0\" or \"3.1.0\"',\n newVersion: 'The new version in the upgrade, e.g. \"3.1.0\"',\n newVersionAgeInDays: 'The age of the new version in days',\n packageFile: 'The filename that the dependency was found in',\n packageFileDir:\n 'The directory with full path where the packageFile was found',\n packageName: 'The full name that was used to look up the dependency',\n packageScope: 'The scope of the package name. Supports Maven group ID only',\n parentDir:\n 'The name of the directory that the dependency was found in, without full path',\n parentOrg: 'The name of the parent organization for the current repository',\n platform: 'VCS platform in use, e.g. \"github\", \"gitlab\", etc.',\n prettyDepType: 'Massaged depType',\n prettyNewMajor: 'The new major value with v prepended to it.',\n prettyNewVersion: 'The new version value with v prepended to it.',\n project: 'ChangeLogProject object',\n recreateClosed: 'If true, this PR will be recreated if closed',\n references: 'A list of references for the upgrade',\n releases: 'An array of releases for an upgrade',\n releaseNotes: 'A ChangeLogNotes object for the release',\n releaseTimestamp: 'The timestamp of the release',\n repository: 'The current repository',\n semanticPrefix: 'The fully generated semantic prefix for commit messages',\n sourceRepo: 'The repository in the sourceUrl, if present',\n sourceRepoName: 'The repository name in the sourceUrl, if present',\n sourceRepoOrg: 'The repository organization in the sourceUrl, if present',\n sourceRepoSlug: 'The slugified pathname of the sourceUrl, if present',\n sourceUrl: 'The source URL for the package',\n topLevelOrg:\n 'The name of the top-level organization for the current repository',\n updateType:\n 'One of digest, pin, rollback, patch, minor, major, replacement, pinDigest',\n upgrades: 'An array of upgrade objects in the branch',\n url: 'The url of the release notes',\n version: 'The version number of the changelog',\n versioning: 'The versioning scheme in use',\n versions: 'An array of ChangeLogRelease objects in the upgrade',\n vulnerabilitySeverity:\n 'The severity for a vulnerability alert upgrade (LOW, MEDIUM, MODERATE, HIGH, CRITICAL, UNKNOWN)',\n};\n\ntype CompileInput = Record<string, unknown>;\n\nconst allowedTemplateFields = new Set([\n ...Object.keys(allowedFields),\n ...exposedConfigOptions,\n]);\n\nclass CompileInputProxyHandler implements ProxyHandler<CompileInput> {\n constructor(private warnVariables: Set<string>) {}\n\n get(target: CompileInput, prop: keyof CompileInput): unknown {\n if (prop === 'env') {\n return target[prop];\n }\n\n if (!allowedTemplateFields.has(prop)) {\n this.warnVariables.add(prop);\n return undefined;\n }\n\n const value = target[prop];\n\n if (prop === 'prBodyDefinitions') {\n // Expose all prBodyDefinitions.*\n return value;\n }\n\n if (is.array(value)) {\n return value.map((element) =>\n is.primitive(element)\n ? element\n : proxyCompileInput(element as CompileInput, this.warnVariables),\n );\n }\n\n if (is.plainObject(value)) {\n return proxyCompileInput(value, this.warnVariables);\n }\n\n return value;\n }\n}\n\nexport function proxyCompileInput(\n input: CompileInput,\n warnVariables: Set<string>,\n): CompileInput {\n return new Proxy<CompileInput>(\n input,\n new CompileInputProxyHandler(warnVariables),\n );\n}\n\nexport function compile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n const env = getChildEnv({});\n const data = { ...GlobalConfig.get(), ...input, env };\n const warnVariables = new Set<string>();\n const filteredInput = filterFields\n ? proxyCompileInput(data, warnVariables)\n : data;\n\n logger.trace({ template, filteredInput }, 'Compiling template');\n const result = handlebars.compile(template)(filteredInput);\n\n if (warnVariables.size > 0) {\n logger.info(\n { varNames: Array.from(warnVariables), template },\n 'Disallowed variable names in template',\n );\n }\n\n return result;\n}\n\nexport function safeCompile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n try {\n return compile(template, input, filterFields);\n } catch (err) {\n logger.warn({ err, template }, 'Error compiling template');\n return '';\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/template/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport handlebars, { type HelperOptions } from 'handlebars';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport { toArray } from '../array';\nimport { getChildEnv } from '../exec/utils';\nimport { regEx } from '../regex';\n\n// Missing in handlebars\ntype Options = HelperOptions & {\n lookupProperty: (element: unknown, key: unknown) => unknown;\n};\n\nhandlebars.registerHelper('encodeURIComponent', encodeURIComponent);\nhandlebars.registerHelper('decodeURIComponent', decodeURIComponent);\n\nhandlebars.registerHelper('encodeBase64', (str: string) =>\n Buffer.from(str ?? '').toString('base64'),\n);\n\nhandlebars.registerHelper('decodeBase64', (str: string) =>\n Buffer.from(str ?? '', 'base64').toString(),\n);\n\nhandlebars.registerHelper('stringToPrettyJSON', (input: string): string =>\n JSON.stringify(JSON.parse(input), null, 2),\n);\n\nhandlebars.registerHelper('toJSON', (input: unknown): string =>\n JSON.stringify(input),\n);\n\nhandlebars.registerHelper('toArray', (...args: unknown[]): unknown[] => {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args;\n});\n\nhandlebars.registerHelper('toObject', (...args: unknown[]): unknown => {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n\n if (args.length % 2 !== 0) {\n throw new Error(`Must contain an even number of elements`);\n }\n\n const keys = args.filter((_, index) => index % 2 === 0);\n const values = args.filter((_, index) => index % 2 === 1);\n\n return Object.fromEntries(keys.map((key, index) => [key, values[index]]));\n});\n\nhandlebars.registerHelper('replace', (find, replace, context) =>\n (context ?? '').replace(regEx(find, 'g'), replace),\n);\n\nhandlebars.registerHelper('lowercase', (str: string) => str?.toLowerCase());\n\nhandlebars.registerHelper('containsString', (str, subStr) =>\n str?.includes(subStr),\n);\n\nhandlebars.registerHelper('equals', (arg1, arg2) => arg1 === arg2);\n\nhandlebars.registerHelper('includes', (arg1: string[], arg2: string) => {\n if (is.array(arg1, is.string) && is.string(arg2)) {\n return arg1.includes(arg2);\n }\n\n return false;\n});\n\nhandlebars.registerHelper(\n 'split',\n (str: unknown, separator: unknown): string[] => {\n if (is.string(str) && is.string(separator)) {\n return str.split(separator);\n }\n return [];\n },\n);\n\nhandlebars.registerHelper({\n and(...args) {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.every(Boolean);\n },\n or(...args) {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.some(Boolean);\n },\n});\n\nhandlebars.registerHelper(\n 'lookupArray',\n (obj: unknown, key: unknown, options: Options): unknown[] => {\n return (\n toArray(obj)\n // skip elements like #with does\n .filter((element) => !handlebars.Utils.isEmpty(element))\n .map((element) => options.lookupProperty(element, key))\n .filter((value) => value !== undefined)\n );\n },\n);\n\nhandlebars.registerHelper('distinct', (obj: unknown): unknown[] => {\n const seen = new Set<string>();\n\n return toArray(obj).filter((value) => {\n const str = JSON.stringify(value);\n\n if (seen.has(str)) {\n return false;\n }\n\n seen.add(str);\n return true;\n });\n});\n\nexport const exposedConfigOptions = [\n 'additionalBranchPrefix',\n 'addLabels',\n 'branchName',\n 'branchPrefix',\n 'branchTopic',\n 'commitBody',\n 'commitMessage',\n 'commitMessageAction',\n 'commitMessageExtra',\n 'commitMessagePrefix',\n 'commitMessageSuffix',\n 'commitMessageTopic',\n 'gitAuthor',\n 'group',\n 'groupName',\n 'groupSlug',\n 'labels',\n 'prBodyColumns',\n 'prBodyDefinitions',\n 'prBodyNotes',\n 'prTitle',\n 'semanticCommitScope',\n 'semanticCommitType',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMinor',\n 'sourceDirectory',\n];\n\nexport const allowedFields = {\n baseBranch: 'The baseBranch for this branch/PR',\n body: 'The body of the release notes',\n categories: 'The categories of the manager of the dependency being updated',\n currentValue: 'The extracted current value of the dependency being updated',\n currentVersion:\n 'The version that would be currently installed. For example, if currentValue is ^3.0.0 then currentVersion might be 3.1.0.',\n currentVersionAgeInDays: 'The age of the current version in days',\n currentVersionTimestamp: 'The timestamp of the current version',\n currentDigest: 'The extracted current digest of the dependency being updated',\n currentDigestShort:\n 'The extracted current short digest of the dependency being updated',\n datasource: 'The datasource used to look up the upgrade',\n depName: 'The name of the dependency being updated',\n depNameLinked:\n 'The dependency name already linked to its home page using markdown',\n depNameSanitized:\n 'The depName field sanitized for use in branches after removing spaces and special characters',\n depType: 'The dependency type (if extracted - manager-dependent)',\n depTypes:\n 'A deduplicated array of dependency types (if extracted - manager-dependent) in a branch',\n displayFrom: 'The current value, formatted for display',\n displayPending: 'Latest pending update, if internalChecksFilter is in use',\n displayTo: 'The to value, formatted for display',\n hasReleaseNotes: 'true if the upgrade has release notes',\n indentation: 'The indentation of the dependency being updated',\n isGroup: 'true if the upgrade is part of a group',\n isLockfileUpdate: 'true if the branch is a lock file update',\n isMajor: 'true if the upgrade is major',\n isMinor: 'true if the upgrade is minor',\n isPatch: 'true if the upgrade is a patch upgrade',\n isPin: 'true if the upgrade is pinning dependencies',\n isPinDigest: 'true if the upgrade is pinning digests',\n isRollback: 'true if the upgrade is a rollback PR',\n isReplacement: 'true if the upgrade is a replacement',\n isRange: 'true if the new value is a range',\n isSingleVersion:\n 'true if the upgrade is to a single version rather than a range',\n isVulnerabilityAlert: 'true if the upgrade is a vulnerability alert',\n logJSON: 'ChangeLogResult object for the upgrade',\n manager: 'The (package) manager which detected the dependency',\n newDigest: 'The new digest value',\n newDigestShort:\n 'A shorted version of newDigest, for use when the full digest is too long to be conveniently displayed',\n newMajor:\n 'The major version of the new version. e.g. \"3\" if the new version is \"3.1.0\"',\n newMinor:\n 'The minor version of the new version. e.g. \"1\" if the new version is \"3.1.0\"',\n newPatch:\n 'The patch version of the new version. e.g. \"0\" if the new version is \"3.1.0\"',\n newName:\n 'The name of the new dependency that replaces the current deprecated dependency',\n newValue:\n 'The new value in the upgrade. Can be a range or version e.g. \"^3.0.0\" or \"3.1.0\"',\n newVersion: 'The new version in the upgrade, e.g. \"3.1.0\"',\n newVersionAgeInDays: 'The age of the new version in days',\n packageFile: 'The filename that the dependency was found in',\n packageFileDir:\n 'The directory with full path where the packageFile was found',\n packageName: 'The full name that was used to look up the dependency',\n packageScope: 'The scope of the package name. Supports Maven group ID only',\n parentDir:\n 'The name of the directory that the dependency was found in, without full path',\n parentOrg: 'The name of the parent organization for the current repository',\n platform: 'VCS platform in use, e.g. \"github\", \"gitlab\", etc.',\n prettyDepType: 'Massaged depType',\n prettyNewMajor: 'The new major value with v prepended to it.',\n prettyNewVersion: 'The new version value with v prepended to it.',\n project: 'ChangeLogProject object',\n recreateClosed: 'If true, this PR will be recreated if closed',\n references: 'A list of references for the upgrade',\n releases: 'An array of releases for an upgrade',\n releaseNotes: 'A ChangeLogNotes object for the release',\n releaseTimestamp: 'The timestamp of the release',\n repository: 'The current repository',\n semanticPrefix: 'The fully generated semantic prefix for commit messages',\n sourceRepo: 'The repository in the sourceUrl, if present',\n sourceRepoName: 'The repository name in the sourceUrl, if present',\n sourceRepoOrg: 'The repository organization in the sourceUrl, if present',\n sourceRepoSlug: 'The slugified pathname of the sourceUrl, if present',\n sourceUrl: 'The source URL for the package',\n topLevelOrg:\n 'The name of the top-level organization for the current repository',\n updateType:\n 'One of digest, pin, rollback, patch, minor, major, replacement, pinDigest',\n upgrades: 'An array of upgrade objects in the branch',\n url: 'The url of the release notes',\n version: 'The version number of the changelog',\n versioning: 'The versioning scheme in use',\n versions: 'An array of ChangeLogRelease objects in the upgrade',\n vulnerabilitySeverity:\n 'The severity for a vulnerability alert upgrade (LOW, MEDIUM, MODERATE, HIGH, CRITICAL, UNKNOWN)',\n};\n\ntype CompileInput = Record<string, unknown>;\n\nconst allowedTemplateFields = new Set([\n ...Object.keys(allowedFields),\n ...exposedConfigOptions,\n]);\n\nclass CompileInputProxyHandler implements ProxyHandler<CompileInput> {\n constructor(private warnVariables: Set<string>) {}\n\n get(target: CompileInput, prop: keyof CompileInput): unknown {\n if (prop === 'env') {\n return target[prop];\n }\n\n if (!allowedTemplateFields.has(prop)) {\n this.warnVariables.add(prop);\n return undefined;\n }\n\n const value = target[prop];\n\n if (prop === 'prBodyDefinitions') {\n // Expose all prBodyDefinitions.*\n return value;\n }\n\n if (is.array(value)) {\n return value.map((element) =>\n is.primitive(element)\n ? element\n : proxyCompileInput(element as CompileInput, this.warnVariables),\n );\n }\n\n if (is.plainObject(value)) {\n return proxyCompileInput(value, this.warnVariables);\n }\n\n return value;\n }\n}\n\nexport function proxyCompileInput(\n input: CompileInput,\n warnVariables: Set<string>,\n): CompileInput {\n return new Proxy<CompileInput>(\n input,\n new CompileInputProxyHandler(warnVariables),\n );\n}\n\nexport function compile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n const env = getChildEnv({});\n const data = { ...GlobalConfig.get(), ...input, env };\n const warnVariables = new Set<string>();\n const filteredInput = filterFields\n ? proxyCompileInput(data, warnVariables)\n : data;\n\n logger.trace({ template, filteredInput }, 'Compiling template');\n const result = handlebars.compile(template)(filteredInput);\n\n if (warnVariables.size > 0) {\n logger.info(\n { varNames: Array.from(warnVariables), template },\n 'Disallowed variable names in template',\n );\n }\n\n return result;\n}\n\nexport function safeCompile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n try {\n return compile(template, input, filterFields);\n } catch (err) {\n logger.warn({ err, template }, 'Error compiling template');\n return '';\n }\n}\n"]}
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": "41.4.0",
4
+ "version": "41.6.0",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -261,7 +261,7 @@
261
261
  "vuln-vects": "1.1.0",
262
262
  "xmldoc": "1.3.0",
263
263
  "yaml": "2.8.0",
264
- "zod": "3.25.64"
264
+ "zod": "3.25.65"
265
265
  },
266
266
  "optionalDependencies": {
267
267
  "better-sqlite3": "11.10.0",
@@ -314,14 +314,14 @@
314
314
  "@types/validate-npm-package-name": "4.0.2",
315
315
  "@types/xmldoc": "1.1.9",
316
316
  "@vitest/coverage-v8": "3.2.2",
317
- "@vitest/eslint-plugin": "1.2.5",
317
+ "@vitest/eslint-plugin": "1.2.7",
318
318
  "aws-sdk-client-mock": "4.1.0",
319
319
  "callsite": "1.0.0",
320
320
  "common-tags": "1.8.2",
321
321
  "conventional-changelog-conventionalcommits": "9.0.0",
322
322
  "emojibase-data": "16.0.3",
323
323
  "esbuild": "0.25.5",
324
- "eslint": "9.28.0",
324
+ "eslint": "9.29.0",
325
325
  "eslint-config-prettier": "10.1.5",
326
326
  "eslint-formatter-gha": "1.5.2",
327
327
  "eslint-import-resolver-typescript": "4.4.3",
@@ -345,7 +345,7 @@
345
345
  "tsx": "4.20.3",
346
346
  "type-fest": "4.41.0",
347
347
  "typescript": "5.8.3",
348
- "typescript-eslint": "8.34.0",
348
+ "typescript-eslint": "8.34.1",
349
349
  "unified": "11.0.5",
350
350
  "vite": "6.3.5",
351
351
  "vite-tsconfig-paths": "5.1.4",