renovate 41.4.0 → 41.5.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.
@@ -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":";;;;AACA,mDAAsD;AACtD,qEAA8D;AAC9D,4EAAsD;AAEtD,kDAA0D;AAC1D,8CAA2C;AAE3C,qCAIkB;AAElB,MAAM,cAAc,GAClB,6EAA6E,CAAC;AAChF,MAAM,kBAAkB,GAAG,GAAG,cAAc,qCAAqC,CAAC;AAClF,MAAM,qBAAqB,GAAG,GAAG,cAAc,yCAAyC,CAAC;AACzF,MAAM,4BAA4B,GAChC,6DAA6D,CAAC;AAEhE,MAAa,6BAA8B,SAAQ,uBAAU;IAC3D,MAAM,CAAU,EAAE,GAAG,uBAAuB,CAAC;IAE7C;QACE,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEiB,qBAAqB,GAAG,KAAK,CAAC;IAE9B,iBAAiB,GAAG,UAAU,CAAC;IAEjD,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,GACO;QAClB,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,6BAA6B,CAAC,EAAE;YAC1C,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,IAAI,GAAgB;gBACxB,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE,EAAE;aAC5C,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,GAAG,QAAQ,+BAA+B,EAC1C,IAAI,EACJ,2BAAkB,CACnB,CAAC;YAEF,MAAM,MAAM,GAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAE/C,OAAO,CAAC,KAAK;iBACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACf,MAAM,QAAQ,GAAG;oBACf,IAAI,CAAC,EAAE,KAAK,WAAW;oBACvB,IAAI,CAAC,IAAI,KAAK,WAAW;oBACzB,IAAI,CAAC,sBAAsB,KAAK,IAAI;wBAClC,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,EAAE,EAAE,KAAK,WAAW;oBAC7D,IAAI,CAAC,sBAAsB,KAAK,IAAI;wBAClC,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,WAAW;iBAChE,CAAC;gBACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC;iBACD,IAAI,CAAC,6BAA6B,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;iBACtE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,GAAG,IAAI,CAAC,OAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,OAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,OAAQ,CAAC,KAAK,EAAE;oBAC/E,YAAY,EAAE,IAAI,CAAC,UAAU;oBAC7B,YAAY,EAAE,IAAI,CAAC,WAAW;wBAC5B,CAAC,CAAC,4BAA4B;wBAC9B,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEL,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GACZ,CACE,MAAM,IAAI,CAAC,QAAQ,CACjB,kBAAkB,EAClB,EAAE,EACF,oCAA2B,CAC5B,CACF,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,CACE,MAAM,IAAI,CAAC,QAAQ,CACjB,qBAAqB,EACrB,EAAE,EACF,oCAA2B,CAC5B,CACF,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;YAE/B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC1D,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOK,AAAN,KAAK,CAAC,QAAQ,CACZ,GAAW,EACX,IAAiB,EACjB,MAAc;QAEd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,uBAAuB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;QACnE,MAAM,SAAS,GAAG,kCAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,SAAS,GAAG,kCAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnE,MAAM,EAAE,GACN,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACjE,MAAM,EAAE,GACN,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QAEjE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEvB,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACd,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IAC/B,CAAC,CAAC;;AA3HJ,sEA4HC;AAnCO;IALL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,6BAA6B,CAAC,EAAE,EAAE;QAC3D,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QACzB,UAAU,EAAE,EAAE,GAAG,EAAE;KACpB,CAAC;6DAQD","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
  }>;
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.5.0",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -314,7 +314,7 @@
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",