renovate 43.209.2 → 43.209.4

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,6 +2,7 @@ import { ensureTrailingSlash } from "../../../util/url.js";
2
2
  import "../../versioning/npm/index.js";
3
3
  import { asTimestamp } from "../../../util/timestamp.js";
4
4
  import { Datasource } from "../datasource.js";
5
+ import { DartResult } from "./schema.js";
5
6
  //#region lib/modules/datasource/dart/index.ts
6
7
  var DartDatasource = class DartDatasource extends Datasource {
7
8
  static id = "dart";
@@ -20,13 +21,12 @@ var DartDatasource = class DartDatasource extends Datasource {
20
21
  if (!registryUrl) return null;
21
22
  let result = null;
22
23
  const pkgUrl = `${ensureTrailingSlash(registryUrl)}api/packages/${packageName}`;
23
- let raw = null;
24
+ let body = null;
24
25
  try {
25
- raw = await this.http.getJsonUnchecked(pkgUrl);
26
+ body = (await this.http.getJson(pkgUrl, DartResult)).body;
26
27
  } catch (err) {
27
28
  this.handleGenericErrors(err);
28
29
  }
29
- const body = raw?.body;
30
30
  if (body) {
31
31
  const { versions, latest } = body;
32
32
  const releases = versions?.filter(({ retracted }) => !retracted)?.map(({ version, published }) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/dart/index.ts"],"sourcesContent":["import type { HttpResponse } from '../../../util/http/types.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport { id as npmId } from '../../versioning/npm/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, ReleaseResult } from '../types.ts';\nimport type { DartResult } from './types.ts';\n\nexport class DartDatasource extends Datasource {\n static readonly id = 'dart';\n\n constructor() {\n super(DartDatasource.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultRegistryUrls = ['https://pub.dartlang.org/'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `repository` field of the latest release object in the results.';\n override readonly defaultVersioning = npmId;\n\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n let result: ReleaseResult | null = null;\n const pkgUrl = `${ensureTrailingSlash(\n registryUrl,\n )}api/packages/${packageName}`;\n\n let raw: HttpResponse<DartResult> | null = null;\n try {\n raw = await this.http.getJsonUnchecked<DartResult>(pkgUrl);\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n const body = raw?.body;\n if (body) {\n const { versions, latest } = body;\n const releases = versions\n ?.filter(({ retracted }) => !retracted)\n ?.map(({ version, published }) => ({\n version,\n releaseTimestamp: asTimestamp(published),\n }));\n if (releases && latest) {\n result = { releases };\n\n const pubspec = latest.pubspec;\n if (pubspec) {\n if (pubspec.homepage) {\n result.homepage = pubspec.homepage;\n }\n\n if (pubspec.repository) {\n result.sourceUrl = pubspec.repository;\n }\n }\n }\n }\n return result;\n }\n}\n"],"mappings":";;;;;AAQA,IAAa,iBAAb,MAAa,uBAAuB,WAAW;CAC7C,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,eAAe,EAAE;CACzB;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,2BAA2B;CAEpE,0BAA4C;CAC5C,uBACE;CACF,mBAAqC;CACrC,gBACE;CACF,oBAAkB;CAElB,MAAM,YAAY,EAChB,aACA,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAET,IAAI,SAA+B;EACnC,MAAM,SAAS,GAAG,oBAChB,WACF,EAAE,eAAe;EAEjB,IAAI,MAAuC;EAC3C,IAAI;GACF,MAAM,MAAM,KAAK,KAAK,iBAA6B,MAAM;EAC3D,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;EAEA,MAAM,OAAO,KAAK;EAClB,IAAI,MAAM;GACR,MAAM,EAAE,UAAU,WAAW;GAC7B,MAAM,WAAW,UACb,QAAQ,EAAE,gBAAgB,CAAC,SAAS,GACpC,KAAK,EAAE,SAAS,iBAAiB;IACjC;IACA,kBAAkB,YAAY,SAAS;GACzC,EAAE;GACJ,IAAI,YAAY,QAAQ;IACtB,SAAS,EAAE,SAAS;IAEpB,MAAM,UAAU,OAAO;IACvB,IAAI,SAAS;KACX,IAAI,QAAQ,UACV,OAAO,WAAW,QAAQ;KAG5B,IAAI,QAAQ,YACV,OAAO,YAAY,QAAQ;IAE/B;GACF;EACF;EACA,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/dart/index.ts"],"sourcesContent":["import { asTimestamp } from '../../../util/timestamp.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport { id as npmId } from '../../versioning/npm/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, ReleaseResult } from '../types.ts';\nimport { DartResult } from './schema.ts';\n\nexport class DartDatasource extends Datasource {\n static readonly id = 'dart';\n\n constructor() {\n super(DartDatasource.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultRegistryUrls = ['https://pub.dartlang.org/'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `repository` field of the latest release object in the results.';\n override readonly defaultVersioning = npmId;\n\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n let result: ReleaseResult | null = null;\n const pkgUrl = `${ensureTrailingSlash(\n registryUrl,\n )}api/packages/${packageName}`;\n\n let body: DartResult | null = null;\n try {\n const raw = await this.http.getJson(pkgUrl, DartResult);\n body = raw.body;\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n if (body) {\n const { versions, latest } = body;\n const releases = versions\n ?.filter(({ retracted }) => !retracted)\n ?.map(({ version, published }) => ({\n version,\n releaseTimestamp: asTimestamp(published),\n }));\n if (releases && latest) {\n result = { releases };\n\n const pubspec = latest.pubspec;\n if (pubspec) {\n if (pubspec.homepage) {\n result.homepage = pubspec.homepage;\n }\n\n if (pubspec.repository) {\n result.sourceUrl = pubspec.repository;\n }\n }\n }\n }\n return result;\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,iBAAb,MAAa,uBAAuB,WAAW;CAC7C,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,eAAe,EAAE;CACzB;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,2BAA2B;CAEpE,0BAA4C;CAC5C,uBACE;CACF,mBAAqC;CACrC,gBACE;CACF,oBAAkB;CAElB,MAAM,YAAY,EAChB,aACA,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAET,IAAI,SAA+B;EACnC,MAAM,SAAS,GAAG,oBAChB,WACF,EAAE,eAAe;EAEjB,IAAI,OAA0B;EAC9B,IAAI;GAEF,QAAO,MADW,KAAK,KAAK,QAAQ,QAAQ,UAAU,GAC3C;EACb,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;EAEA,IAAI,MAAM;GACR,MAAM,EAAE,UAAU,WAAW;GAC7B,MAAM,WAAW,UACb,QAAQ,EAAE,gBAAgB,CAAC,SAAS,GACpC,KAAK,EAAE,SAAS,iBAAiB;IACjC;IACA,kBAAkB,YAAY,SAAS;GACzC,EAAE;GACJ,IAAI,YAAY,QAAQ;IACtB,SAAS,EAAE,SAAS;IAEpB,MAAM,UAAU,OAAO;IACvB,IAAI,SAAS;KACX,IAAI,QAAQ,UACV,OAAO,WAAW,QAAQ;KAG5B,IAAI,QAAQ,YACV,OAAO,YAAY,QAAQ;IAE/B;GACF;EACF;EACA,OAAO;CACT;AACF"}
@@ -0,0 +1,20 @@
1
+ import { LooseArray } from "../../../util/schema-utils/index.js";
2
+ import { z } from "zod/v4";
3
+ //#region lib/modules/datasource/dart/schema.ts
4
+ const DartVersionEntry = z.object({
5
+ version: z.string(),
6
+ published: z.string().optional(),
7
+ retracted: z.boolean().optional()
8
+ });
9
+ const DartLatest = z.object({ pubspec: z.object({
10
+ homepage: z.string().optional(),
11
+ repository: z.string().optional()
12
+ }).optional() });
13
+ const DartResult = z.object({
14
+ versions: LooseArray(DartVersionEntry).optional(),
15
+ latest: DartLatest.optional()
16
+ });
17
+ //#endregion
18
+ export { DartResult };
19
+
20
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/dart/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nconst DartVersionEntry = z.object({\n version: z.string(),\n published: z.string().optional(),\n retracted: z.boolean().optional(),\n});\n\nconst DartLatest = z.object({\n pubspec: z\n .object({\n homepage: z.string().optional(),\n repository: z.string().optional(),\n })\n .optional(),\n});\n\nexport const DartResult = z.object({\n versions: LooseArray(DartVersionEntry).optional(),\n latest: DartLatest.optional(),\n});\n\nexport type DartResult = z.infer<typeof DartResult>;\n"],"mappings":";;;AAGA,MAAM,mBAAmB,EAAE,OAAO;CAChC,SAAS,EAAE,OAAO;CAClB,WAAW,EAAE,OAAO,EAAE,SAAS;CAC/B,WAAW,EAAE,QAAQ,EAAE,SAAS;AAClC,CAAC;AAED,MAAM,aAAa,EAAE,OAAO,EAC1B,SAAS,EACN,OAAO;CACN,UAAU,EAAE,OAAO,EAAE,SAAS;CAC9B,YAAY,EAAE,OAAO,EAAE,SAAS;AAClC,CAAC,EACA,SAAS,EACd,CAAC;AAED,MAAa,aAAa,EAAE,OAAO;CACjC,UAAU,WAAW,gBAAgB,EAAE,SAAS;CAChD,QAAQ,WAAW,SAAS;AAC9B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { regEx } from "../../../util/regex.js";
2
2
  import { Datasource } from "../datasource.js";
3
+ import { DartResponse } from "./schema.js";
3
4
  import { isString } from "@sindresorhus/is";
4
5
  //#region lib/modules/datasource/dart-version/index.ts
5
6
  const stableVersionRegex = regEx(/^\d+\.\d+\.\d+$/);
@@ -35,7 +36,7 @@ var DartVersionDatasource = class DartVersionDatasource extends Datasource {
35
36
  };
36
37
  try {
37
38
  for (const channel of this.channels) {
38
- const resp = (await this.http.getJsonUnchecked(`${registryUrl}/storage/v1/b/dart-archive/o?delimiter=%2F&prefix=channels%2F${channel}%2Frelease%2F&alt=json`)).body;
39
+ const resp = (await this.http.getJson(`${registryUrl}/storage/v1/b/dart-archive/o?delimiter=%2F&prefix=channels%2F${channel}%2Frelease%2F&alt=json`, DartResponse)).body;
39
40
  const releases = this.getReleasesFromResponse(channel, resp.prefixes);
40
41
  result.releases.push(...releases);
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/dart-version/index.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport type { DartResponse } from './types.ts';\n\nexport const stableVersionRegex = regEx(/^\\d+\\.\\d+\\.\\d+$/);\n/**\n * The server returns old svn versions which would need mapping to a version.\n * They are very old, so we skip them instead.\n * https://github.com/dart-lang/site-www/blob/7d4409c87bb6570b2d8870b20283f81f2b7e08fc/tool/get-dart/dart_sdk_archive/lib/src/svn_versions.dart#L2\n */\nexport const svnVersionRegex = regEx(/^\\d+$/);\n\nexport class DartVersionDatasource extends Datasource {\n static readonly id = 'dart-version';\n\n constructor() {\n super(DartVersionDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://storage.googleapis.com'];\n\n override readonly caching = true;\n\n private readonly channels = ['stable', 'beta', 'dev'];\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/dart-lang/sdk.';\n\n async getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n const result: ReleaseResult = {\n homepage: 'https://dart.dev/',\n sourceUrl: 'https://github.com/dart-lang/sdk',\n registryUrl,\n releases: [],\n };\n try {\n for (const channel of this.channels) {\n const resp = (\n await this.http.getJsonUnchecked<DartResponse>(\n `${registryUrl}/storage/v1/b/dart-archive/o?delimiter=%2F&prefix=channels%2F${channel}%2Frelease%2F&alt=json`,\n )\n ).body;\n const releases = this.getReleasesFromResponse(channel, resp.prefixes);\n result.releases.push(...releases);\n }\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n\n private getReleasesFromResponse(\n channel: string,\n prefixes: string[],\n ): Release[] {\n return prefixes\n .map((prefix) => this.getVersionFromPrefix(prefix))\n .filter(isString)\n .filter((version) => {\n if (\n version === 'latest' ||\n // skip old svn versions\n svnVersionRegex.test(version) ||\n // The API response contains a stable version being released as a non-stable\n // release. So we filter out these releases here.\n (channel !== 'stable' && stableVersionRegex.test(version))\n ) {\n return false;\n }\n return true;\n })\n .map((version) => ({ version, isStable: channel === 'stable' }));\n }\n\n // Prefix should have a format of \"channels/stable/release/2.9.3/\"\n private getVersionFromPrefix(prefix: string): string | undefined {\n const parts = prefix.split('/');\n return parts[parts.length - 2];\n }\n}\n"],"mappings":";;;;AAMA,MAAa,qBAAqB,MAAM,iBAAiB;;;;;;AAMzD,MAAa,kBAAkB,MAAM,OAAO;AAE5C,IAAa,wBAAb,MAAa,8BAA8B,WAAW;CACpD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,sBAAsB,EAAE;CAChC;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,gCAAgC;CAEzE,UAA4B;CAE5B,WAA4B;EAAC;EAAU;EAAQ;CAAK;CAEpD,mBAAqC;CACrC,gBACE;CAEF,MAAM,YAAY,EAChB,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAET,MAAM,SAAwB;GAC5B,UAAU;GACV,WAAW;GACX;GACA,UAAU,CAAC;EACb;EACA,IAAI;GACF,KAAK,MAAM,WAAW,KAAK,UAAU;IACnC,MAAM,QACJ,MAAM,KAAK,KAAK,iBACd,GAAG,YAAY,+DAA+D,QAAQ,uBACxF,GACA;IACF,MAAM,WAAW,KAAK,wBAAwB,SAAS,KAAK,QAAQ;IACpE,OAAO,SAAS,KAAK,GAAG,QAAQ;GAClC;EACF,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;EAEA,OAAO,OAAO,SAAS,SAAS,SAAS;CAC3C;CAEA,wBACE,SACA,UACW;EACX,OAAO,SACJ,KAAK,WAAW,KAAK,qBAAqB,MAAM,CAAC,EACjD,OAAO,QAAQ,EACf,QAAQ,YAAY;GACnB,IACE,YAAY,YAEZ,gBAAgB,KAAK,OAAO,KAG3B,YAAY,YAAY,mBAAmB,KAAK,OAAO,GAExD,OAAO;GAET,OAAO;EACT,CAAC,EACA,KAAK,aAAa;GAAE;GAAS,UAAU,YAAY;EAAS,EAAE;CACnE;CAGA,qBAA6B,QAAoC;EAC/D,MAAM,QAAQ,OAAO,MAAM,GAAG;EAC9B,OAAO,MAAM,MAAM,SAAS;CAC9B;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/dart-version/index.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport { DartResponse } from './schema.ts';\n\nexport const stableVersionRegex = regEx(/^\\d+\\.\\d+\\.\\d+$/);\n/**\n * The server returns old svn versions which would need mapping to a version.\n * They are very old, so we skip them instead.\n * https://github.com/dart-lang/site-www/blob/7d4409c87bb6570b2d8870b20283f81f2b7e08fc/tool/get-dart/dart_sdk_archive/lib/src/svn_versions.dart#L2\n */\nexport const svnVersionRegex = regEx(/^\\d+$/);\n\nexport class DartVersionDatasource extends Datasource {\n static readonly id = 'dart-version';\n\n constructor() {\n super(DartVersionDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://storage.googleapis.com'];\n\n override readonly caching = true;\n\n private readonly channels = ['stable', 'beta', 'dev'];\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/dart-lang/sdk.';\n\n async getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n const result: ReleaseResult = {\n homepage: 'https://dart.dev/',\n sourceUrl: 'https://github.com/dart-lang/sdk',\n registryUrl,\n releases: [],\n };\n try {\n for (const channel of this.channels) {\n const resp = (\n await this.http.getJson(\n `${registryUrl}/storage/v1/b/dart-archive/o?delimiter=%2F&prefix=channels%2F${channel}%2Frelease%2F&alt=json`,\n DartResponse,\n )\n ).body;\n const releases = this.getReleasesFromResponse(channel, resp.prefixes);\n result.releases.push(...releases);\n }\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n\n private getReleasesFromResponse(\n channel: string,\n prefixes: string[],\n ): Release[] {\n return prefixes\n .map((prefix) => this.getVersionFromPrefix(prefix))\n .filter(isString)\n .filter((version) => {\n if (\n version === 'latest' ||\n // skip old svn versions\n svnVersionRegex.test(version) ||\n // The API response contains a stable version being released as a non-stable\n // release. So we filter out these releases here.\n (channel !== 'stable' && stableVersionRegex.test(version))\n ) {\n return false;\n }\n return true;\n })\n .map((version) => ({ version, isStable: channel === 'stable' }));\n }\n\n // Prefix should have a format of \"channels/stable/release/2.9.3/\"\n private getVersionFromPrefix(prefix: string): string | undefined {\n const parts = prefix.split('/');\n return parts[parts.length - 2];\n }\n}\n"],"mappings":";;;;;AAMA,MAAa,qBAAqB,MAAM,iBAAiB;;;;;;AAMzD,MAAa,kBAAkB,MAAM,OAAO;AAE5C,IAAa,wBAAb,MAAa,8BAA8B,WAAW;CACpD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,sBAAsB,EAAE;CAChC;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,gCAAgC;CAEzE,UAA4B;CAE5B,WAA4B;EAAC;EAAU;EAAQ;CAAK;CAEpD,mBAAqC;CACrC,gBACE;CAEF,MAAM,YAAY,EAChB,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAET,MAAM,SAAwB;GAC5B,UAAU;GACV,WAAW;GACX;GACA,UAAU,CAAC;EACb;EACA,IAAI;GACF,KAAK,MAAM,WAAW,KAAK,UAAU;IACnC,MAAM,QACJ,MAAM,KAAK,KAAK,QACd,GAAG,YAAY,+DAA+D,QAAQ,yBACtF,YACF,GACA;IACF,MAAM,WAAW,KAAK,wBAAwB,SAAS,KAAK,QAAQ;IACpE,OAAO,SAAS,KAAK,GAAG,QAAQ;GAClC;EACF,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;EAEA,OAAO,OAAO,SAAS,SAAS,SAAS;CAC3C;CAEA,wBACE,SACA,UACW;EACX,OAAO,SACJ,KAAK,WAAW,KAAK,qBAAqB,MAAM,CAAC,EACjD,OAAO,QAAQ,EACf,QAAQ,YAAY;GACnB,IACE,YAAY,YAEZ,gBAAgB,KAAK,OAAO,KAG3B,YAAY,YAAY,mBAAmB,KAAK,OAAO,GAExD,OAAO;GAET,OAAO;EACT,CAAC,EACA,KAAK,aAAa;GAAE;GAAS,UAAU,YAAY;EAAS,EAAE;CACnE;CAGA,qBAA6B,QAAoC;EAC/D,MAAM,QAAQ,OAAO,MAAM,GAAG;EAC9B,OAAO,MAAM,MAAM,SAAS;CAC9B;AACF"}
@@ -0,0 +1,11 @@
1
+ import { LooseArray } from "../../../util/schema-utils/index.js";
2
+ import { z } from "zod/v4";
3
+ //#region lib/modules/datasource/dart-version/schema.ts
4
+ const DartResponse = z.object({
5
+ kind: z.string().optional(),
6
+ prefixes: LooseArray(z.string()).default([])
7
+ });
8
+ //#endregion
9
+ export { DartResponse };
10
+
11
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/dart-version/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const DartResponse = z.object({\n kind: z.string().optional(),\n prefixes: LooseArray(z.string()).default([]),\n});\n\nexport type DartResponse = z.infer<typeof DartResponse>;\n"],"mappings":";;;AAGA,MAAa,eAAe,EAAE,OAAO;CACnC,MAAM,EAAE,OAAO,EAAE,SAAS;CAC1B,UAAU,WAAW,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
@@ -2,6 +2,7 @@ import { regEx } from "../../../util/regex.js";
2
2
  import { id } from "../../versioning/semver/index.js";
3
3
  import { asTimestamp } from "../../../util/timestamp.js";
4
4
  import { Datasource } from "../datasource.js";
5
+ import { FlutterResponse } from "./schema.js";
5
6
  //#region lib/modules/datasource/flutter-version/index.ts
6
7
  const stableVersionRegex = regEx(/^\d+\.\d+\.\d+$/);
7
8
  var FlutterVersionDatasource = class FlutterVersionDatasource extends Datasource {
@@ -27,7 +28,7 @@ var FlutterVersionDatasource = class FlutterVersionDatasource extends Datasource
27
28
  releases: []
28
29
  };
29
30
  try {
30
- result.releases = (await this.http.getJsonUnchecked(`${registryUrl}/flutter_infra_release/releases/releases_linux.json`)).body.releases.filter(({ version, channel }) => {
31
+ result.releases = (await this.http.getJson(`${registryUrl}/flutter_infra_release/releases/releases_linux.json`, FlutterResponse)).body.releases.filter(({ version, channel }) => {
31
32
  if (stableVersionRegex.test(version)) return channel === "stable";
32
33
  return true;
33
34
  }).map(({ version, release_date, channel }) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["semverId"],"sources":["../../../../lib/modules/datasource/flutter-version/index.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport { id as semverId } from '../../versioning/semver/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, ReleaseResult } from '../types.ts';\nimport type { FlutterResponse } from './types.ts';\n\nexport const stableVersionRegex = regEx(/^\\d+\\.\\d+\\.\\d+$/);\n\nexport class FlutterVersionDatasource extends Datasource {\n static readonly id = 'flutter-version';\n\n constructor() {\n super(FlutterVersionDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://storage.googleapis.com'];\n\n override readonly caching = true;\n\n override readonly defaultVersioning = semverId;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `release_date` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/flutter/flutter.';\n\n async getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n const result: ReleaseResult = {\n homepage: 'https://flutter.dev',\n sourceUrl: 'https://github.com/flutter/flutter',\n registryUrl,\n releases: [],\n };\n try {\n const resp = (\n await this.http.getJsonUnchecked<FlutterResponse>(\n `${registryUrl}/flutter_infra_release/releases/releases_linux.json`,\n )\n ).body;\n result.releases = resp.releases\n // The API response contains a stable version being released as a non-stable\n // release. And so we filter out these releases here.\n .filter(({ version, channel }) => {\n if (stableVersionRegex.test(version)) {\n return channel === 'stable';\n }\n return true;\n })\n .map(({ version, release_date, channel }) => ({\n version,\n releaseTimestamp: asTimestamp(release_date),\n isStable: channel === 'stable',\n }));\n return result.releases.length ? result : null;\n } catch (err) {\n this.handleGenericErrors(err);\n }\n }\n}\n"],"mappings":";;;;;AAOA,MAAa,qBAAqB,MAAM,iBAAiB;AAEzD,IAAa,2BAAb,MAAa,iCAAiC,WAAW;CACvD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,yBAAyB,EAAE;CACnC;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,gCAAgC;CAEzE,UAA4B;CAE5B,oBAAsCA;CAEtC,0BAA4C;CAC5C,uBACE;CACF,mBAAqC;CACrC,gBACE;CAEF,MAAM,YAAY,EAChB,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAET,MAAM,SAAwB;GAC5B,UAAU;GACV,WAAW;GACX;GACA,UAAU,CAAC;EACb;EACA,IAAI;GAMF,OAAO,YAJL,MAAM,KAAK,KAAK,iBACd,GAAG,YAAY,oDACjB,GACA,KACqB,SAGpB,QAAQ,EAAE,SAAS,cAAc;IAChC,IAAI,mBAAmB,KAAK,OAAO,GACjC,OAAO,YAAY;IAErB,OAAO;GACT,CAAC,EACA,KAAK,EAAE,SAAS,cAAc,eAAe;IAC5C;IACA,kBAAkB,YAAY,YAAY;IAC1C,UAAU,YAAY;GACxB,EAAE;GACJ,OAAO,OAAO,SAAS,SAAS,SAAS;EAC3C,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":["semverId"],"sources":["../../../../lib/modules/datasource/flutter-version/index.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport { id as semverId } from '../../versioning/semver/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, ReleaseResult } from '../types.ts';\nimport { FlutterResponse } from './schema.ts';\n\nexport const stableVersionRegex = regEx(/^\\d+\\.\\d+\\.\\d+$/);\n\nexport class FlutterVersionDatasource extends Datasource {\n static readonly id = 'flutter-version';\n\n constructor() {\n super(FlutterVersionDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://storage.googleapis.com'];\n\n override readonly caching = true;\n\n override readonly defaultVersioning = semverId;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `release_date` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/flutter/flutter.';\n\n async getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n const result: ReleaseResult = {\n homepage: 'https://flutter.dev',\n sourceUrl: 'https://github.com/flutter/flutter',\n registryUrl,\n releases: [],\n };\n try {\n const resp = (\n await this.http.getJson(\n `${registryUrl}/flutter_infra_release/releases/releases_linux.json`,\n FlutterResponse,\n )\n ).body;\n result.releases = resp.releases\n // The API response contains a stable version being released as a non-stable\n // release. And so we filter out these releases here.\n .filter(({ version, channel }) => {\n if (stableVersionRegex.test(version)) {\n return channel === 'stable';\n }\n return true;\n })\n .map(({ version, release_date, channel }) => ({\n version,\n releaseTimestamp: asTimestamp(release_date),\n isStable: channel === 'stable',\n }));\n return result.releases.length ? result : null;\n } catch (err) {\n this.handleGenericErrors(err);\n }\n }\n}\n"],"mappings":";;;;;;AAOA,MAAa,qBAAqB,MAAM,iBAAiB;AAEzD,IAAa,2BAAb,MAAa,iCAAiC,WAAW;CACvD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,yBAAyB,EAAE;CACnC;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,gCAAgC;CAEzE,UAA4B;CAE5B,oBAAsCA;CAEtC,0BAA4C;CAC5C,uBACE;CACF,mBAAqC;CACrC,gBACE;CAEF,MAAM,YAAY,EAChB,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAET,MAAM,SAAwB;GAC5B,UAAU;GACV,WAAW;GACX;GACA,UAAU,CAAC;EACb;EACA,IAAI;GAOF,OAAO,YALL,MAAM,KAAK,KAAK,QACd,GAAG,YAAY,sDACf,eACF,GACA,KACqB,SAGpB,QAAQ,EAAE,SAAS,cAAc;IAChC,IAAI,mBAAmB,KAAK,OAAO,GACjC,OAAO,YAAY;IAErB,OAAO;GACT,CAAC,EACA,KAAK,EAAE,SAAS,cAAc,eAAe;IAC5C;IACA,kBAAkB,YAAY,YAAY;IAC1C,UAAU,YAAY;GACxB,EAAE;GACJ,OAAO,OAAO,SAAS,SAAS,SAAS;EAC3C,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;CACF;AACF"}
@@ -0,0 +1,22 @@
1
+ import { LooseArray } from "../../../util/schema-utils/index.js";
2
+ import { z } from "zod/v4";
3
+ //#region lib/modules/datasource/flutter-version/schema.ts
4
+ const FlutterRelease = z.object({
5
+ hash: z.string().optional(),
6
+ channel: z.string(),
7
+ version: z.string(),
8
+ dart_sdk_version: z.string().optional(),
9
+ dart_sdk_arch: z.string().optional(),
10
+ release_date: z.string().optional(),
11
+ archive: z.string().optional(),
12
+ sha256: z.string().optional()
13
+ });
14
+ const FlutterResponse = z.object({
15
+ base_url: z.string().optional(),
16
+ current_release: z.record(z.string(), z.string()).optional(),
17
+ releases: LooseArray(FlutterRelease)
18
+ });
19
+ //#endregion
20
+ export { FlutterResponse };
21
+
22
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/flutter-version/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const FlutterRelease = z.object({\n hash: z.string().optional(),\n channel: z.string(),\n version: z.string(),\n dart_sdk_version: z.string().optional(),\n dart_sdk_arch: z.string().optional(),\n release_date: z.string().optional(),\n archive: z.string().optional(),\n sha256: z.string().optional(),\n});\n\nexport const FlutterResponse = z.object({\n base_url: z.string().optional(),\n current_release: z.record(z.string(), z.string()).optional(),\n releases: LooseArray(FlutterRelease),\n});\n\nexport type FlutterResponse = z.infer<typeof FlutterResponse>;\n"],"mappings":";;;AAGA,MAAa,iBAAiB,EAAE,OAAO;CACrC,MAAM,EAAE,OAAO,EAAE,SAAS;CAC1B,SAAS,EAAE,OAAO;CAClB,SAAS,EAAE,OAAO;CAClB,kBAAkB,EAAE,OAAO,EAAE,SAAS;CACtC,eAAe,EAAE,OAAO,EAAE,SAAS;CACnC,cAAc,EAAE,OAAO,EAAE,SAAS;CAClC,SAAS,EAAE,OAAO,EAAE,SAAS;CAC7B,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAED,MAAa,kBAAkB,EAAE,OAAO;CACtC,UAAU,EAAE,OAAO,EAAE,SAAS;CAC9B,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;CAC3D,UAAU,WAAW,cAAc;AACrC,CAAC"}
@@ -3,6 +3,7 @@ import { id } from "../../versioning/gradle/index.js";
3
3
  import { withCache } from "../../../util/cache/package/with-cache.js";
4
4
  import { asTimestamp } from "../../../util/timestamp.js";
5
5
  import { Datasource } from "../datasource.js";
6
+ import { GradleReleasesSchema } from "./schema.js";
6
7
  //#region lib/modules/datasource/gradle-version/index.ts
7
8
  var GradleVersionDatasource = class GradleVersionDatasource extends Datasource {
8
9
  static id = "gradle-version";
@@ -21,7 +22,7 @@ var GradleVersionDatasource = class GradleVersionDatasource extends Datasource {
21
22
  if (!registryUrl) return null;
22
23
  let releases;
23
24
  try {
24
- releases = (await this.http.getJsonUnchecked(registryUrl)).body.filter((release) => !release.snapshot && !release.nightly).map((release) => {
25
+ releases = (await this.http.getJson(registryUrl, GradleReleasesSchema)).body.filter((release) => !release.snapshot && !release.nightly).map((release) => {
25
26
  const { version, buildTime } = release;
26
27
  const result = {
27
28
  version,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["gradleVersioning.id"],"sources":["../../../../lib/modules/datasource/gradle-version/index.ts"],"sourcesContent":["import { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport * as gradleVersioning from '../../versioning/gradle/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport type { GradleRelease } from './types.ts';\n\nexport class GradleVersionDatasource extends Datasource {\n static readonly id = 'gradle-version';\n\n constructor() {\n super(GradleVersionDatasource.id);\n }\n\n override readonly defaultRegistryUrls = [\n 'https://services.gradle.org/versions/all',\n ];\n\n override readonly defaultVersioning = gradleVersioning.id;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `buildTime` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/gradle/gradle.';\n\n private async _getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n let releases: Release[];\n try {\n const response =\n await this.http.getJsonUnchecked<GradleRelease[]>(registryUrl);\n releases = response.body\n .filter((release) => !release.snapshot && !release.nightly)\n .map((release) => {\n const { version, buildTime } = release;\n\n const gitRef = GradleVersionDatasource.getGitRef(release.version);\n\n const releaseTimestamp = asTimestamp(buildTime);\n\n const result: Release = { version, gitRef, releaseTimestamp };\n\n if (release.broken) {\n result.isDeprecated = true;\n }\n\n return result;\n });\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n const res: ReleaseResult = {\n releases,\n homepage: 'https://gradle.org',\n sourceUrl: 'https://github.com/gradle/gradle',\n };\n if (res.releases.length) {\n return res;\n }\n return null;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${GradleVersionDatasource.id}`,\n // TODO: types (#22198)\n key: `${config.registryUrl}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n /**\n * Calculate `gitTag` based on `version`:\n * - `8.1.2` -> `v8.1.2`\n * - `8.2` -> `v8.2.0`\n * - `8.2-rc-1` -> `v8.2.0-RC1`\n * - `8.2-milestone-1` -> `v8.2.0-M1`\n */\n private static getGitRef(version: string): string {\n const [versionPart, typePart, unstablePart] = version.split(\n regEx(/-([a-z]+)-/),\n );\n\n let suffix = '';\n if (typePart === 'rc') {\n suffix = `-RC${unstablePart}`;\n } else if (typePart === 'milestone') {\n suffix = `-M${unstablePart}`;\n }\n\n const [major, minor, patch = '0'] = versionPart.split('.');\n return `v${major}.${minor}.${patch}${suffix}`;\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,0BAAb,MAAa,gCAAgC,WAAW;CACtD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,wBAAwB,EAAE;CAClC;CAEA,sBAAwC,CACtC,0CACF;CAEA,oBAAsCA;CAEtC,mBAAqC;CAErC,0BAA4C;CAC5C,uBACE;CACF,mBAAqC;CACrC,gBACE;CAEF,MAAc,aAAa,EACzB,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAGT,IAAI;EACJ,IAAI;GAGF,YAAW,MADH,KAAK,KAAK,iBAAkC,WAAW,GAC3C,KACjB,QAAQ,YAAY,CAAC,QAAQ,YAAY,CAAC,QAAQ,OAAO,EACzD,KAAK,YAAY;IAChB,MAAM,EAAE,SAAS,cAAc;IAM/B,MAAM,SAAkB;KAAE;KAAS,QAJpB,wBAAwB,UAAU,QAAQ,OAIjB;KAAG,kBAFlB,YAAY,SAEqB;IAAE;IAE5D,IAAI,QAAQ,QACV,OAAO,eAAe;IAGxB,OAAO;GACT,CAAC;EACL,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;EAEA,MAAM,MAAqB;GACzB;GACA,UAAU;GACV,WAAW;EACb;EACA,IAAI,IAAI,SAAS,QACf,OAAO;EAET,OAAO;CACT;CAEA,YAAY,QAA0D;EACpE,OAAO,UACL;GACE,WAAW,cAAc,wBAAwB;GAEjD,KAAK,GAAG,OAAO;GACf,UAAU;EACZ,SACM,KAAK,aAAa,MAAM,CAChC;CACF;;;;;;;;CASA,OAAe,UAAU,SAAyB;EAChD,MAAM,CAAC,aAAa,UAAU,gBAAgB,QAAQ,MACpD,MAAM,YAAY,CACpB;EAEA,IAAI,SAAS;EACb,IAAI,aAAa,MACf,SAAS,MAAM;OACV,IAAI,aAAa,aACtB,SAAS,KAAK;EAGhB,MAAM,CAAC,OAAO,OAAO,QAAQ,OAAO,YAAY,MAAM,GAAG;EACzD,OAAO,IAAI,MAAM,GAAG,MAAM,GAAG,QAAQ;CACvC;AACF"}
1
+ {"version":3,"file":"index.js","names":["gradleVersioning.id"],"sources":["../../../../lib/modules/datasource/gradle-version/index.ts"],"sourcesContent":["import { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport * as gradleVersioning from '../../versioning/gradle/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport { GradleReleasesSchema } from './schema.ts';\n\nexport class GradleVersionDatasource extends Datasource {\n static readonly id = 'gradle-version';\n\n constructor() {\n super(GradleVersionDatasource.id);\n }\n\n override readonly defaultRegistryUrls = [\n 'https://services.gradle.org/versions/all',\n ];\n\n override readonly defaultVersioning = gradleVersioning.id;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `buildTime` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/gradle/gradle.';\n\n private async _getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n let releases: Release[];\n try {\n const response = await this.http.getJson(\n registryUrl,\n GradleReleasesSchema,\n );\n releases = response.body\n .filter((release) => !release.snapshot && !release.nightly)\n .map((release) => {\n const { version, buildTime } = release;\n\n const gitRef = GradleVersionDatasource.getGitRef(release.version);\n\n const releaseTimestamp = asTimestamp(buildTime);\n\n const result: Release = { version, gitRef, releaseTimestamp };\n\n if (release.broken) {\n result.isDeprecated = true;\n }\n\n return result;\n });\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n const res: ReleaseResult = {\n releases,\n homepage: 'https://gradle.org',\n sourceUrl: 'https://github.com/gradle/gradle',\n };\n if (res.releases.length) {\n return res;\n }\n return null;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${GradleVersionDatasource.id}`,\n // TODO: types (#22198)\n key: `${config.registryUrl}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n /**\n * Calculate `gitTag` based on `version`:\n * - `8.1.2` -> `v8.1.2`\n * - `8.2` -> `v8.2.0`\n * - `8.2-rc-1` -> `v8.2.0-RC1`\n * - `8.2-milestone-1` -> `v8.2.0-M1`\n */\n private static getGitRef(version: string): string {\n const [versionPart, typePart, unstablePart] = version.split(\n regEx(/-([a-z]+)-/),\n );\n\n let suffix = '';\n if (typePart === 'rc') {\n suffix = `-RC${unstablePart}`;\n } else if (typePart === 'milestone') {\n suffix = `-M${unstablePart}`;\n }\n\n const [major, minor, patch = '0'] = versionPart.split('.');\n return `v${major}.${minor}.${patch}${suffix}`;\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,0BAAb,MAAa,gCAAgC,WAAW;CACtD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,wBAAwB,EAAE;CAClC;CAEA,sBAAwC,CACtC,0CACF;CAEA,oBAAsCA;CAEtC,mBAAqC;CAErC,0BAA4C;CAC5C,uBACE;CACF,mBAAqC;CACrC,gBACE;CAEF,MAAc,aAAa,EACzB,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAGT,IAAI;EACJ,IAAI;GAKF,YAAW,MAJY,KAAK,KAAK,QAC/B,aACA,oBACF,GACoB,KACjB,QAAQ,YAAY,CAAC,QAAQ,YAAY,CAAC,QAAQ,OAAO,EACzD,KAAK,YAAY;IAChB,MAAM,EAAE,SAAS,cAAc;IAM/B,MAAM,SAAkB;KAAE;KAAS,QAJpB,wBAAwB,UAAU,QAAQ,OAIjB;KAAG,kBAFlB,YAAY,SAEqB;IAAE;IAE5D,IAAI,QAAQ,QACV,OAAO,eAAe;IAGxB,OAAO;GACT,CAAC;EACL,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;EAEA,MAAM,MAAqB;GACzB;GACA,UAAU;GACV,WAAW;EACb;EACA,IAAI,IAAI,SAAS,QACf,OAAO;EAET,OAAO;CACT;CAEA,YAAY,QAA0D;EACpE,OAAO,UACL;GACE,WAAW,cAAc,wBAAwB;GAEjD,KAAK,GAAG,OAAO;GACf,UAAU;EACZ,SACM,KAAK,aAAa,MAAM,CAChC;CACF;;;;;;;;CASA,OAAe,UAAU,SAAyB;EAChD,MAAM,CAAC,aAAa,UAAU,gBAAgB,QAAQ,MACpD,MAAM,YAAY,CACpB;EAEA,IAAI,SAAS;EACb,IAAI,aAAa,MACf,SAAS,MAAM;OACV,IAAI,aAAa,aACtB,SAAS,KAAK;EAGhB,MAAM,CAAC,OAAO,OAAO,QAAQ,OAAO,YAAY,MAAM,GAAG;EACzD,OAAO,IAAI,MAAM,GAAG,MAAM,GAAG,QAAQ;CACvC;AACF"}
@@ -0,0 +1,15 @@
1
+ import { LooseArray } from "../../../util/schema-utils/index.js";
2
+ import { z } from "zod/v4";
3
+ const GradleReleasesSchema = LooseArray(z.object({
4
+ buildTime: z.string().optional(),
5
+ broken: z.boolean().optional(),
6
+ milestoneFor: z.string().optional(),
7
+ nightly: z.boolean().optional(),
8
+ rcFor: z.string().optional(),
9
+ snapshot: z.boolean().optional(),
10
+ version: z.string()
11
+ }));
12
+ //#endregion
13
+ export { GradleReleasesSchema };
14
+
15
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/gradle-version/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const GradleRelease = z.object({\n buildTime: z.string().optional(),\n broken: z.boolean().optional(),\n milestoneFor: z.string().optional(),\n nightly: z.boolean().optional(),\n rcFor: z.string().optional(),\n snapshot: z.boolean().optional(),\n version: z.string(),\n});\n\nexport const GradleReleasesSchema = LooseArray(GradleRelease);\n"],"mappings":";;AAaA,MAAa,uBAAuB,WAVP,EAAE,OAAO;CACpC,WAAW,EAAE,OAAO,EAAE,SAAS;CAC/B,QAAQ,EAAE,QAAQ,EAAE,SAAS;CAC7B,cAAc,EAAE,OAAO,EAAE,SAAS;CAClC,SAAS,EAAE,QAAQ,EAAE,SAAS;CAC9B,OAAO,EAAE,OAAO,EAAE,SAAS;CAC3B,UAAU,EAAE,QAAQ,EAAE,SAAS;CAC/B,SAAS,EAAE,OAAO;AACpB,CAE+C,CAAa"}
@@ -5,6 +5,7 @@ import { RequestError } from "../../../util/http/got.js";
5
5
  import "../../../util/http/index.js";
6
6
  import { Datasource } from "../datasource.js";
7
7
  import { datasource, defaultRegistryUrl, parsePackage } from "./common.js";
8
+ import { AdoptiumJavaResponse } from "./schema.js";
8
9
  //#region lib/modules/datasource/java-version/index.ts
9
10
  var JavaVersionDatasource = class extends Datasource {
10
11
  static id = datasource;
@@ -17,7 +18,7 @@ var JavaVersionDatasource = class extends Datasource {
17
18
  async getPageReleases(url, page) {
18
19
  const pgUrl = `${url}&page=${page}`;
19
20
  try {
20
- return (await this.http.getJsonUnchecked(pgUrl))?.body?.versions?.map(({ semver }) => ({ version: semver })) ?? null;
21
+ return (await this.http.getJson(pgUrl, AdoptiumJavaResponse))?.body?.versions?.map(({ semver }) => ({ version: semver })) ?? null;
21
22
  } catch (err) {
22
23
  if (page !== 0 && err instanceof RequestError && err.response?.statusCode === 404) return null;
23
24
  throw err;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HttpError"],"sources":["../../../../lib/modules/datasource/java-version/index.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { HttpError } from '../../../util/http/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport {\n datasource,\n defaultRegistryUrl,\n pageSize,\n parsePackage,\n} from './common.ts';\nimport type { AdoptiumJavaResponse } from './types.ts';\n\nexport class JavaVersionDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = [defaultRegistryUrl];\n\n override readonly caching = true;\n\n private async getPageReleases(\n url: string,\n page: number,\n ): Promise<Release[] | null> {\n const pgUrl = `${url}&page=${page}`;\n try {\n const pgRes =\n await this.http.getJsonUnchecked<AdoptiumJavaResponse>(pgUrl);\n return (\n pgRes?.body?.versions?.map(({ semver }) => ({\n version: semver,\n })) ?? null\n );\n } catch (err) {\n if (\n page !== 0 &&\n err instanceof HttpError &&\n err.response?.statusCode === 404\n ) {\n // No more pages\n return null;\n }\n\n throw err;\n }\n }\n\n private async _getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const pkgConfig = parsePackage(packageName);\n logger.trace(\n { registryUrl, packageName, pkgConfig },\n 'fetching java release',\n );\n let url = `${registryUrl}v3/info/release_versions?page_size=${pageSize}&image_type=${pkgConfig.imageType}&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC`;\n\n if (pkgConfig.architecture) {\n url += `&architecture=${pkgConfig.architecture}`;\n }\n if (pkgConfig.os) {\n url += `&os=${pkgConfig.os}`;\n }\n\n const result: ReleaseResult = {\n homepage: 'https://adoptium.net',\n releases: [],\n };\n try {\n let page = 0;\n let releases = await this.getPageReleases(url, page);\n while (releases) {\n result.releases.push(...releases);\n if (releases.length !== pageSize || page >= 50) {\n break;\n }\n page += 1;\n releases = await this.getPageReleases(url, page);\n }\n } catch (err) {\n if (err instanceof HttpError) {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${datasource}`,\n key: `${config.registryUrl}:${config.packageName}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAa,wBAAb,cAA2C,WAAW;CACpD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,UAAU;CAClB;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,kBAAkB;CAE3D,UAA4B;CAE5B,MAAc,gBACZ,KACA,MAC2B;EAC3B,MAAM,QAAQ,GAAG,IAAI,QAAQ;EAC7B,IAAI;GAGF,QACE,MAFM,KAAK,KAAK,iBAAuC,KAAK,IAErD,MAAM,UAAU,KAAK,EAAE,cAAc,EAC1C,SAAS,OACX,EAAE,KAAK;EAEX,SAAS,KAAK;GACZ,IACE,SAAS,KACT,eAAeA,gBACf,IAAI,UAAU,eAAe,KAG7B,OAAO;GAGT,MAAM;EACR;CACF;CAEA,MAAc,aAAa,EACzB,aACA,eACmD;EACnD,MAAM,YAAY,aAAa,WAAW;EAC1C,OAAO,MACL;GAAE;GAAa;GAAa;EAAU,GACtC,uBACF;EACA,IAAI,MAAM,GAAG,YAAY,mDAA4D,UAAU,UAAU;EAEzG,IAAI,UAAU,cACZ,OAAO,iBAAiB,UAAU;EAEpC,IAAI,UAAU,IACZ,OAAO,OAAO,UAAU;EAG1B,MAAM,SAAwB;GAC5B,UAAU;GACV,UAAU,CAAC;EACb;EACA,IAAI;GACF,IAAI,OAAO;GACX,IAAI,WAAW,MAAM,KAAK,gBAAgB,KAAK,IAAI;GACnD,OAAO,UAAU;IACf,OAAO,SAAS,KAAK,GAAG,QAAQ;IAChC,IAAI,SAAS,WAAA,MAAuB,QAAQ,IAC1C;IAEF,QAAQ;IACR,WAAW,MAAM,KAAK,gBAAgB,KAAK,IAAI;GACjD;EACF,SAAS,KAAK;GACZ,IAAI,eAAeA;QACb,IAAI,UAAU,eAAe,KAC/B,MAAM,IAAI,kBAAkB,GAAG;GAAA;GAGnC,KAAK,oBAAoB,GAAG;EAC9B;EAEA,OAAO,OAAO,SAAS,SAAS,SAAS;CAC3C;CAEA,YAAY,QAA0D;EACpE,OAAO,UACL;GACE,WAAW,cAAc;GACzB,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;EACZ,SACM,KAAK,aAAa,MAAM,CAChC;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":["HttpError"],"sources":["../../../../lib/modules/datasource/java-version/index.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { HttpError } from '../../../util/http/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport {\n datasource,\n defaultRegistryUrl,\n pageSize,\n parsePackage,\n} from './common.ts';\nimport { AdoptiumJavaResponse } from './schema.ts';\n\nexport class JavaVersionDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = [defaultRegistryUrl];\n\n override readonly caching = true;\n\n private async getPageReleases(\n url: string,\n page: number,\n ): Promise<Release[] | null> {\n const pgUrl = `${url}&page=${page}`;\n try {\n const pgRes = await this.http.getJson(pgUrl, AdoptiumJavaResponse);\n return (\n pgRes?.body?.versions?.map(({ semver }) => ({\n version: semver,\n })) ?? null\n );\n } catch (err) {\n if (\n page !== 0 &&\n err instanceof HttpError &&\n err.response?.statusCode === 404\n ) {\n // No more pages\n return null;\n }\n\n throw err;\n }\n }\n\n private async _getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const pkgConfig = parsePackage(packageName);\n logger.trace(\n { registryUrl, packageName, pkgConfig },\n 'fetching java release',\n );\n let url = `${registryUrl}v3/info/release_versions?page_size=${pageSize}&image_type=${pkgConfig.imageType}&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC`;\n\n if (pkgConfig.architecture) {\n url += `&architecture=${pkgConfig.architecture}`;\n }\n if (pkgConfig.os) {\n url += `&os=${pkgConfig.os}`;\n }\n\n const result: ReleaseResult = {\n homepage: 'https://adoptium.net',\n releases: [],\n };\n try {\n let page = 0;\n let releases = await this.getPageReleases(url, page);\n while (releases) {\n result.releases.push(...releases);\n if (releases.length !== pageSize || page >= 50) {\n break;\n }\n page += 1;\n releases = await this.getPageReleases(url, page);\n }\n } catch (err) {\n if (err instanceof HttpError) {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${datasource}`,\n key: `${config.registryUrl}:${config.packageName}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;;;AAcA,IAAa,wBAAb,cAA2C,WAAW;CACpD,OAAgB,KAAK;CAErB,cAAc;EACZ,MAAM,UAAU;CAClB;CAEA,wBAA0C;CAE1C,sBAAwC,CAAC,kBAAkB;CAE3D,UAA4B;CAE5B,MAAc,gBACZ,KACA,MAC2B;EAC3B,MAAM,QAAQ,GAAG,IAAI,QAAQ;EAC7B,IAAI;GAEF,QACE,MAFkB,KAAK,KAAK,QAAQ,OAAO,oBAAoB,IAExD,MAAM,UAAU,KAAK,EAAE,cAAc,EAC1C,SAAS,OACX,EAAE,KAAK;EAEX,SAAS,KAAK;GACZ,IACE,SAAS,KACT,eAAeA,gBACf,IAAI,UAAU,eAAe,KAG7B,OAAO;GAGT,MAAM;EACR;CACF;CAEA,MAAc,aAAa,EACzB,aACA,eACmD;EACnD,MAAM,YAAY,aAAa,WAAW;EAC1C,OAAO,MACL;GAAE;GAAa;GAAa;EAAU,GACtC,uBACF;EACA,IAAI,MAAM,GAAG,YAAY,mDAA4D,UAAU,UAAU;EAEzG,IAAI,UAAU,cACZ,OAAO,iBAAiB,UAAU;EAEpC,IAAI,UAAU,IACZ,OAAO,OAAO,UAAU;EAG1B,MAAM,SAAwB;GAC5B,UAAU;GACV,UAAU,CAAC;EACb;EACA,IAAI;GACF,IAAI,OAAO;GACX,IAAI,WAAW,MAAM,KAAK,gBAAgB,KAAK,IAAI;GACnD,OAAO,UAAU;IACf,OAAO,SAAS,KAAK,GAAG,QAAQ;IAChC,IAAI,SAAS,WAAA,MAAuB,QAAQ,IAC1C;IAEF,QAAQ;IACR,WAAW,MAAM,KAAK,gBAAgB,KAAK,IAAI;GACjD;EACF,SAAS,KAAK;GACZ,IAAI,eAAeA;QACb,IAAI,UAAU,eAAe,KAC/B,MAAM,IAAI,kBAAkB,GAAG;GAAA;GAGnC,KAAK,oBAAoB,GAAG;EAC9B;EAEA,OAAO,OAAO,SAAS,SAAS,SAAS;CAC3C;CAEA,YAAY,QAA0D;EACpE,OAAO,UACL;GACE,WAAW,cAAc;GACzB,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;EACZ,SACM,KAAK,aAAa,MAAM,CAChC;CACF;AACF"}
@@ -0,0 +1,9 @@
1
+ import { LooseArray } from "../../../util/schema-utils/index.js";
2
+ import { z } from "zod/v4";
3
+ //#region lib/modules/datasource/java-version/schema.ts
4
+ const AdoptiumJavaVersion = z.object({ semver: z.string() });
5
+ const AdoptiumJavaResponse = z.object({ versions: LooseArray(AdoptiumJavaVersion).optional() });
6
+ //#endregion
7
+ export { AdoptiumJavaResponse };
8
+
9
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/java-version/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const AdoptiumJavaVersion = z.object({\n semver: z.string(),\n});\n\nexport const AdoptiumJavaResponse = z.object({\n versions: LooseArray(AdoptiumJavaVersion).optional(),\n});\n\nexport type AdoptiumJavaResponse = z.infer<typeof AdoptiumJavaResponse>;\n"],"mappings":";;;AAGA,MAAa,sBAAsB,EAAE,OAAO,EAC1C,QAAQ,EAAE,OAAO,EACnB,CAAC;AAED,MAAa,uBAAuB,EAAE,OAAO,EAC3C,UAAU,WAAW,mBAAmB,EAAE,SAAS,EACrD,CAAC"}
@@ -28,7 +28,7 @@ function getPrConfigDescription(config) {
28
28
  }
29
29
  function scheduleToString(schedule, timezone) {
30
30
  const scheduleLines = [];
31
- if (schedule && schedule[0] !== "at any time") {
31
+ if (schedule?.length && schedule[0] !== "at any time") {
32
32
  const r = getReadableCronSchedule(schedule);
33
33
  if (r) scheduleLines.push(...r);
34
34
  else scheduleLines.push(`"${String(schedule)}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"config-description.js","names":[],"sources":["../../../../../../lib/workers/repository/update/pr/body/config-description.ts"],"sourcesContent":["import { CronPattern } from 'croner';\nimport cronstrue from 'cronstrue';\nimport { emojify } from '../../../../../util/emoji.ts';\nimport { capitalize } from '../../../../../util/string.ts';\nimport type { BranchConfig } from '../../../../types.ts';\n\nexport function getPrConfigDescription(config: BranchConfig): string {\n let prBody = `\\n\\n---\\n\\n### Configuration\\n\\n`;\n prBody += emojify(`:date: **Schedule**: `);\n\n if (config.timezone) {\n prBody += `(in timezone ${config.timezone})`;\n } else {\n prBody += `(UTC)`;\n }\n prBody += '\\n\\n'; // to ensure that Markdown renderers will note that the Schedule is a different element to the list\n\n prBody += `- Branch creation\\n${scheduleToString(config.schedule, config.timezone)}\\n`;\n prBody += `- Automerge\\n${scheduleToString(config.automergeSchedule, config.timezone)}\\n`;\n\n prBody += '\\n\\n';\n prBody += emojify(':vertical_traffic_light: **Automerge**: ');\n if (config.automerge) {\n prBody += 'Enabled.';\n } else if (config.automergedPreviously) {\n prBody += 'Disabled because a matching PR was automerged previously.';\n } else {\n prBody +=\n 'Disabled by config. Please merge this manually once you are satisfied.';\n }\n prBody += '\\n\\n';\n prBody += emojify(':recycle: **Rebasing**: ');\n if (config.rebaseWhen === 'behind-base-branch') {\n prBody += 'Whenever PR is behind base branch';\n } else if (config.rebaseWhen === 'never' || config.stopUpdating) {\n prBody += 'Never';\n } else {\n prBody += 'Whenever PR becomes conflicted';\n }\n prBody += `, or you tick the rebase/retry checkbox.\\n\\n`;\n if (config.recreateClosed) {\n prBody += emojify(\n `:ghost: **Immortal**: This PR will be recreated if closed unmerged. Get [config help](${config.productLinks?.help}) if that's undesired.\\n\\n`,\n );\n } else {\n prBody += emojify(\n `:no_bell: **Ignore**: Close this PR and you won't be reminded about ${\n config.upgrades.length === 1 ? 'this update' : 'these updates'\n } again.\\n\\n`,\n );\n }\n return prBody;\n}\n\nfunction scheduleToString(\n schedule: string[] | undefined,\n timezone: string | undefined,\n): string {\n const scheduleLines = [];\n if (schedule && schedule[0] !== 'at any time') {\n const r = getReadableCronSchedule(schedule);\n if (r) {\n scheduleLines.push(...r);\n } else {\n scheduleLines.push(`\"${String(schedule)}\"`);\n }\n } else {\n scheduleLines.push('At any time (no schedule defined)');\n }\n return ` - ${scheduleLines.join('\\n - ')}`;\n}\n\n/**\n * Return human-readable cron schedule summary if the schedule is a valid cron\n * else return null\n */\nfunction getReadableCronSchedule(scheduleText: string[]): string[] | null {\n // assuming if one schedule is cron the others in the array will be cron too\n try {\n new CronPattern(scheduleText[0]); // validate cron\n return scheduleText.map(\n (cron) =>\n `${capitalize(\n cronstrue\n .toString(cron, {\n throwExceptionOnParseError: false,\n })\n .replace('Every minute, ', ''),\n )} (\\`${cron}\\`)`,\n );\n } catch {\n return null;\n }\n}\n"],"mappings":";;;;;AAMA,SAAgB,uBAAuB,QAA8B;CACnE,IAAI,SAAS;CACb,UAAU,QAAQ,uBAAuB;CAEzC,IAAI,OAAO,UACT,UAAU,gBAAgB,OAAO,SAAS;MAE1C,UAAU;CAEZ,UAAU;CAEV,UAAU,sBAAsB,iBAAiB,OAAO,UAAU,OAAO,QAAQ,EAAE;CACnF,UAAU,gBAAgB,iBAAiB,OAAO,mBAAmB,OAAO,QAAQ,EAAE;CAEtF,UAAU;CACV,UAAU,QAAQ,0CAA0C;CAC5D,IAAI,OAAO,WACT,UAAU;MACL,IAAI,OAAO,sBAChB,UAAU;MAEV,UACE;CAEJ,UAAU;CACV,UAAU,QAAQ,0BAA0B;CAC5C,IAAI,OAAO,eAAe,sBACxB,UAAU;MACL,IAAI,OAAO,eAAe,WAAW,OAAO,cACjD,UAAU;MAEV,UAAU;CAEZ,UAAU;CACV,IAAI,OAAO,gBACT,UAAU,QACR,yFAAyF,OAAO,cAAc,KAAK,2BACrH;MAEA,UAAU,QACR,uEACE,OAAO,SAAS,WAAW,IAAI,gBAAgB,gBAChD,YACH;CAEF,OAAO;AACT;AAEA,SAAS,iBACP,UACA,UACQ;CACR,MAAM,gBAAgB,CAAC;CACvB,IAAI,YAAY,SAAS,OAAO,eAAe;EAC7C,MAAM,IAAI,wBAAwB,QAAQ;EAC1C,IAAI,GACF,cAAc,KAAK,GAAG,CAAC;OAEvB,cAAc,KAAK,IAAI,OAAO,QAAQ,EAAE,EAAE;CAE9C,OACE,cAAc,KAAK,mCAAmC;CAExD,OAAO,OAAO,cAAc,KAAK,QAAQ;AAC3C;;;;;AAMA,SAAS,wBAAwB,cAAyC;CAExE,IAAI;EACF,IAAI,YAAY,aAAa,EAAE;EAC/B,OAAO,aAAa,KACjB,SACC,GAAG,WACD,UACG,SAAS,MAAM,EACd,4BAA4B,MAC9B,CAAC,EACA,QAAQ,kBAAkB,EAAE,CACjC,EAAE,MAAM,KAAK,IACjB;CACF,QAAQ;EACN,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"config-description.js","names":[],"sources":["../../../../../../lib/workers/repository/update/pr/body/config-description.ts"],"sourcesContent":["import { CronPattern } from 'croner';\nimport cronstrue from 'cronstrue';\nimport { emojify } from '../../../../../util/emoji.ts';\nimport { capitalize } from '../../../../../util/string.ts';\nimport type { BranchConfig } from '../../../../types.ts';\n\nexport function getPrConfigDescription(config: BranchConfig): string {\n let prBody = `\\n\\n---\\n\\n### Configuration\\n\\n`;\n prBody += emojify(`:date: **Schedule**: `);\n\n if (config.timezone) {\n prBody += `(in timezone ${config.timezone})`;\n } else {\n prBody += `(UTC)`;\n }\n prBody += '\\n\\n'; // to ensure that Markdown renderers will note that the Schedule is a different element to the list\n\n prBody += `- Branch creation\\n${scheduleToString(config.schedule, config.timezone)}\\n`;\n prBody += `- Automerge\\n${scheduleToString(config.automergeSchedule, config.timezone)}\\n`;\n\n prBody += '\\n\\n';\n prBody += emojify(':vertical_traffic_light: **Automerge**: ');\n if (config.automerge) {\n prBody += 'Enabled.';\n } else if (config.automergedPreviously) {\n prBody += 'Disabled because a matching PR was automerged previously.';\n } else {\n prBody +=\n 'Disabled by config. Please merge this manually once you are satisfied.';\n }\n prBody += '\\n\\n';\n prBody += emojify(':recycle: **Rebasing**: ');\n if (config.rebaseWhen === 'behind-base-branch') {\n prBody += 'Whenever PR is behind base branch';\n } else if (config.rebaseWhen === 'never' || config.stopUpdating) {\n prBody += 'Never';\n } else {\n prBody += 'Whenever PR becomes conflicted';\n }\n prBody += `, or you tick the rebase/retry checkbox.\\n\\n`;\n if (config.recreateClosed) {\n prBody += emojify(\n `:ghost: **Immortal**: This PR will be recreated if closed unmerged. Get [config help](${config.productLinks?.help}) if that's undesired.\\n\\n`,\n );\n } else {\n prBody += emojify(\n `:no_bell: **Ignore**: Close this PR and you won't be reminded about ${\n config.upgrades.length === 1 ? 'this update' : 'these updates'\n } again.\\n\\n`,\n );\n }\n return prBody;\n}\n\nfunction scheduleToString(\n schedule: string[] | undefined,\n timezone: string | undefined,\n): string {\n const scheduleLines = [];\n if (schedule?.length && schedule[0] !== 'at any time') {\n const r = getReadableCronSchedule(schedule);\n if (r) {\n scheduleLines.push(...r);\n } else {\n scheduleLines.push(`\"${String(schedule)}\"`);\n }\n } else {\n scheduleLines.push('At any time (no schedule defined)');\n }\n return ` - ${scheduleLines.join('\\n - ')}`;\n}\n\n/**\n * Return human-readable cron schedule summary if the schedule is a valid cron\n * else return null\n */\nfunction getReadableCronSchedule(scheduleText: string[]): string[] | null {\n // assuming if one schedule is cron the others in the array will be cron too\n try {\n new CronPattern(scheduleText[0]); // validate cron\n return scheduleText.map(\n (cron) =>\n `${capitalize(\n cronstrue\n .toString(cron, {\n throwExceptionOnParseError: false,\n })\n .replace('Every minute, ', ''),\n )} (\\`${cron}\\`)`,\n );\n } catch {\n return null;\n }\n}\n"],"mappings":";;;;;AAMA,SAAgB,uBAAuB,QAA8B;CACnE,IAAI,SAAS;CACb,UAAU,QAAQ,uBAAuB;CAEzC,IAAI,OAAO,UACT,UAAU,gBAAgB,OAAO,SAAS;MAE1C,UAAU;CAEZ,UAAU;CAEV,UAAU,sBAAsB,iBAAiB,OAAO,UAAU,OAAO,QAAQ,EAAE;CACnF,UAAU,gBAAgB,iBAAiB,OAAO,mBAAmB,OAAO,QAAQ,EAAE;CAEtF,UAAU;CACV,UAAU,QAAQ,0CAA0C;CAC5D,IAAI,OAAO,WACT,UAAU;MACL,IAAI,OAAO,sBAChB,UAAU;MAEV,UACE;CAEJ,UAAU;CACV,UAAU,QAAQ,0BAA0B;CAC5C,IAAI,OAAO,eAAe,sBACxB,UAAU;MACL,IAAI,OAAO,eAAe,WAAW,OAAO,cACjD,UAAU;MAEV,UAAU;CAEZ,UAAU;CACV,IAAI,OAAO,gBACT,UAAU,QACR,yFAAyF,OAAO,cAAc,KAAK,2BACrH;MAEA,UAAU,QACR,uEACE,OAAO,SAAS,WAAW,IAAI,gBAAgB,gBAChD,YACH;CAEF,OAAO;AACT;AAEA,SAAS,iBACP,UACA,UACQ;CACR,MAAM,gBAAgB,CAAC;CACvB,IAAI,UAAU,UAAU,SAAS,OAAO,eAAe;EACrD,MAAM,IAAI,wBAAwB,QAAQ;EAC1C,IAAI,GACF,cAAc,KAAK,GAAG,CAAC;OAEvB,cAAc,KAAK,IAAI,OAAO,QAAQ,EAAE,EAAE;CAE9C,OACE,cAAc,KAAK,mCAAmC;CAExD,OAAO,OAAO,cAAc,KAAK,QAAQ;AAC3C;;;;;AAMA,SAAS,wBAAwB,cAAyC;CAExE,IAAI;EACF,IAAI,YAAY,aAAa,EAAE;EAC/B,OAAO,aAAa,KACjB,SACC,GAAG,WACD,UACG,SAAS,MAAM,EACd,4BAA4B,MAC9B,CAAC,EACA,QAAQ,kBAAkB,EAAE,CACjC,EAAE,MAAM,KAAK,IACjB;CACF,QAAQ;EACN,OAAO;CACT;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": "43.209.2",
4
+ "version": "43.209.4",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",