renovate 43.108.1 → 43.109.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["configAbandonments.presets","configPreset.presets","customManagersPreset.presets","defaultPreset.presets","dockerPreset.presets","globalPreset.presets","groupPreset.presets","helpersPreset.presets","mergeConfidence.presets","monorepoPreset.presets","packagesPreset.presets","previewPreset.presets","replacements.presets","schedulePreset.presets","securityPreset.presets","workaroundsPreset.presets"],"sources":["../../../../lib/config/presets/internal/index.ts"],"sourcesContent":["import type { Preset, PresetConfig } from '../types.ts';\nimport * as configAbandonments from './abandonments.preset.ts';\nimport * as configPreset from './config.preset.ts';\nimport * as customManagersPreset from './custom-managers.preset.ts';\nimport * as defaultPreset from './default.preset.ts';\nimport * as dockerPreset from './docker.preset.ts';\nimport * as globalPreset from './global.preset.ts';\nimport * as groupPreset from './group.preset.ts';\nimport * as helpersPreset from './helpers.preset.ts';\nimport * as mergeConfidence from './merge-confidence.preset.ts';\nimport * as monorepoPreset from './monorepos.preset.ts';\nimport * as packagesPreset from './packages.preset.ts';\nimport * as previewPreset from './preview.preset.ts';\nimport * as replacements from './replacements.preset.ts';\nimport * as schedulePreset from './schedule.preset.ts';\nimport * as securityPreset from './security.preset.ts';\nimport * as workaroundsPreset from './workarounds.preset.ts';\n\n/* eslint sort-keys: [\"error\", \"asc\", {caseSensitive: false, natural: true}] */\n\nexport const groups: Record<string, Record<string, Preset>> = {\n abandonments: configAbandonments.presets,\n config: configPreset.presets,\n customManagers: customManagersPreset.presets,\n default: defaultPreset.presets,\n docker: dockerPreset.presets,\n global: globalPreset.presets,\n group: groupPreset.presets,\n helpers: helpersPreset.presets,\n mergeConfidence: mergeConfidence.presets,\n monorepo: monorepoPreset.presets,\n packages: packagesPreset.presets,\n preview: previewPreset.presets,\n replacements: replacements.presets,\n schedule: schedulePreset.presets,\n security: securityPreset.presets,\n workarounds: workaroundsPreset.presets,\n};\n\nexport function getPreset({\n repo,\n presetName,\n}: PresetConfig): Preset | undefined {\n return groups[repo] && presetName ? groups[repo][presetName] : undefined;\n}\n\nfunction computeInternalPresets(): string[] {\n const internalPresets: string[] = [];\n\n for (const k in groups) {\n const v = groups[k];\n for (const kk in v) {\n if (k === 'default') {\n internalPresets.push(`:${kk}`);\n internalPresets.push(`default:${kk}`);\n } else {\n internalPresets.push(`${k}:${kk}`);\n }\n }\n }\n\n return internalPresets;\n}\n\nexport const internalPresetNames = new Set(computeInternalPresets());\n\nexport function isInternal(preset: string): boolean {\n if (internalPresetNames.has(preset)) {\n return true;\n }\n\n // a parameterised preset is one that that is parameterised will receive the argument `(...)`.\n // As we can't look up on the preset's values itself (as it could be in any property), we can look at the preset name itself, and see if it includes the start of an opening parenthesis\n const withoutParameterParts = preset.split('(');\n if (\n withoutParameterParts?.length &&\n internalPresetNames.has(withoutParameterParts[0])\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,MAAa,SAAiD;CAC5D,cAAcA;CACd,QAAQC;CACR,gBAAgBC;CAChB,SAASC;CACT,QAAQC;CACR,QAAQC;CACR,OAAOC;CACP,SAASC;CACT,iBAAiBC;CACjB,UAAUC;CACV,UAAUC;CACV,SAASC;CACT,cAAcC;CACd,UAAUC;CACV,UAAUC;CACV,aAAaC;CACd;AAED,SAAgB,UAAU,EACxB,MACA,cACmC;AACnC,QAAO,OAAO,SAAS,aAAa,OAAO,MAAM,cAAc,KAAA;;AAGjE,SAAS,yBAAmC;CAC1C,MAAM,kBAA4B,EAAE;AAEpC,MAAK,MAAM,KAAK,QAAQ;EACtB,MAAM,IAAI,OAAO;AACjB,OAAK,MAAM,MAAM,EACf,KAAI,MAAM,WAAW;AACnB,mBAAgB,KAAK,IAAI,KAAK;AAC9B,mBAAgB,KAAK,WAAW,KAAK;QAErC,iBAAgB,KAAK,GAAG,EAAE,GAAG,KAAK;;AAKxC,QAAO;;AAG0B,IAAI,IAAI,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","names":["configAbandonments.presets","configPreset.presets","customManagersPreset.presets","defaultPreset.presets","dockerPreset.presets","globalPreset.presets","groupPreset.presets","helpersPreset.presets","mergeConfidence.presets","monorepoPreset.presets","packagesPreset.presets","previewPreset.presets","replacements.presets","schedulePreset.presets","securityPreset.presets","workaroundsPreset.presets"],"sources":["../../../../lib/config/presets/internal/index.ts"],"sourcesContent":["import type { Preset, PresetConfig } from '../types.ts';\nimport * as configAbandonments from './abandonments.preset.ts';\nimport * as configPreset from './config.preset.ts';\nimport * as customManagersPreset from './custom-managers.preset.ts';\nimport * as defaultPreset from './default.preset.ts';\nimport * as dockerPreset from './docker.preset.ts';\nimport * as globalPreset from './global.preset.ts';\nimport * as groupPreset from './group.preset.ts';\nimport * as helpersPreset from './helpers.preset.ts';\nimport * as mergeConfidence from './merge-confidence.preset.ts';\nimport * as monorepoPreset from './monorepos.preset.ts';\nimport * as packagesPreset from './packages.preset.ts';\nimport * as previewPreset from './preview.preset.ts';\nimport * as replacements from './replacements.preset.ts';\nimport * as schedulePreset from './schedule.preset.ts';\nimport * as securityPreset from './security.preset.ts';\nimport * as workaroundsPreset from './workarounds.preset.ts';\n\nexport const groups: Record<string, Record<string, Preset>> = {\n abandonments: configAbandonments.presets,\n config: configPreset.presets,\n customManagers: customManagersPreset.presets,\n default: defaultPreset.presets,\n docker: dockerPreset.presets,\n global: globalPreset.presets,\n group: groupPreset.presets,\n helpers: helpersPreset.presets,\n mergeConfidence: mergeConfidence.presets,\n monorepo: monorepoPreset.presets,\n packages: packagesPreset.presets,\n preview: previewPreset.presets,\n replacements: replacements.presets,\n schedule: schedulePreset.presets,\n security: securityPreset.presets,\n workarounds: workaroundsPreset.presets,\n};\n\nexport function getPreset({\n repo,\n presetName,\n}: PresetConfig): Preset | undefined {\n return groups[repo] && presetName ? groups[repo][presetName] : undefined;\n}\n\nfunction computeInternalPresets(): string[] {\n const internalPresets: string[] = [];\n\n for (const k in groups) {\n const v = groups[k];\n for (const kk in v) {\n if (k === 'default') {\n internalPresets.push(`:${kk}`);\n internalPresets.push(`default:${kk}`);\n } else {\n internalPresets.push(`${k}:${kk}`);\n }\n }\n }\n\n return internalPresets;\n}\n\nexport const internalPresetNames = new Set(computeInternalPresets());\n\nexport function isInternal(preset: string): boolean {\n if (internalPresetNames.has(preset)) {\n return true;\n }\n\n // a parameterised preset is one that that is parameterised will receive the argument `(...)`.\n // As we can't look up on the preset's values itself (as it could be in any property), we can look at the preset name itself, and see if it includes the start of an opening parenthesis\n const withoutParameterParts = preset.split('(');\n if (\n withoutParameterParts?.length &&\n internalPresetNames.has(withoutParameterParts[0])\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAa,SAAiD;CAC5D,cAAcA;CACd,QAAQC;CACR,gBAAgBC;CAChB,SAASC;CACT,QAAQC;CACR,QAAQC;CACR,OAAOC;CACP,SAASC;CACT,iBAAiBC;CACjB,UAAUC;CACV,UAAUC;CACV,SAASC;CACT,cAAcC;CACd,UAAUC;CACV,UAAUC;CACV,aAAaC;CACd;AAED,SAAgB,UAAU,EACxB,MACA,cACmC;AACnC,QAAO,OAAO,SAAS,aAAa,OAAO,MAAM,cAAc,KAAA;;AAGjE,SAAS,yBAAmC;CAC1C,MAAM,kBAA4B,EAAE;AAEpC,MAAK,MAAM,KAAK,QAAQ;EACtB,MAAM,IAAI,OAAO;AACjB,OAAK,MAAM,MAAM,EACf,KAAI,MAAM,WAAW;AACnB,mBAAgB,KAAK,IAAI,KAAK;AAC9B,mBAAgB,KAAK,WAAW,KAAK;QAErC,iBAAgB,KAAK,GAAG,EAAE,GAAG,KAAK;;AAKxC,QAAO;;AAG0B,IAAI,IAAI,wBAAwB,CAAC"}
@@ -385,6 +385,7 @@ var repoGroups = {
385
385
  "hibernate-search": "https://github.com/hibernate/hibernate-search",
386
386
  "hibernate-tools": "https://github.com/hibernate/hibernate-tools",
387
387
  "hickory-dns": "https://github.com/hickory-dns/hickory-dns",
388
+ "hocuspocus": "https://github.com/ueberdosis/hocuspocus",
388
389
  "html-eslint": "https://github.com/yeonjuan/html-eslint",
389
390
  "humanizer": "https://github.com/Humanizr/Humanizer",
390
391
  "immich": "https://github.com/immich-app/immich",
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","names":[],"sources":["../../../../../lib/modules/datasource/hex/v2/package.ts"],"sourcesContent":["// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.178.0\n// protoc v6.33.4\n// source: package.proto\n\n/* eslint-disable */\nimport _m0 from \"protobufjs/minimal.js\";\n\nexport const protobufPackage = \"\";\n\nexport const RetirementReason = {\n RETIRED_OTHER: 0,\n RETIRED_INVALID: 1,\n RETIRED_SECURITY: 2,\n RETIRED_DEPRECATED: 3,\n RETIRED_RENAMED: 4,\n UNRECOGNIZED: -1,\n} as const;\n\nexport type RetirementReason = typeof RetirementReason[keyof typeof RetirementReason];\n\nexport namespace RetirementReason {\n export type RETIRED_OTHER = typeof RetirementReason.RETIRED_OTHER;\n export type RETIRED_INVALID = typeof RetirementReason.RETIRED_INVALID;\n export type RETIRED_SECURITY = typeof RetirementReason.RETIRED_SECURITY;\n export type RETIRED_DEPRECATED = typeof RetirementReason.RETIRED_DEPRECATED;\n export type RETIRED_RENAMED = typeof RetirementReason.RETIRED_RENAMED;\n export type UNRECOGNIZED = typeof RetirementReason.UNRECOGNIZED;\n}\n\nexport function retirementReasonFromJSON(object: any): RetirementReason {\n switch (object) {\n case 0:\n case \"RETIRED_OTHER\":\n return RetirementReason.RETIRED_OTHER;\n case 1:\n case \"RETIRED_INVALID\":\n return RetirementReason.RETIRED_INVALID;\n case 2:\n case \"RETIRED_SECURITY\":\n return RetirementReason.RETIRED_SECURITY;\n case 3:\n case \"RETIRED_DEPRECATED\":\n return RetirementReason.RETIRED_DEPRECATED;\n case 4:\n case \"RETIRED_RENAMED\":\n return RetirementReason.RETIRED_RENAMED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return RetirementReason.UNRECOGNIZED;\n }\n}\n\nexport interface Package {\n /** All releases of the package */\n releases: Release[];\n /** Name of package */\n name: string;\n /** Name of repository */\n repository: string;\n}\n\nexport interface Release {\n /** Release version */\n version: string;\n /**\n * sha256 checksum of \"inner\" package tarball\n * deprecated in favor of outer_checksum\n */\n innerChecksum: Uint8Array;\n /** All dependencies of the release */\n dependencies: Dependency[];\n /**\n * If set the release is retired, a retired release should only be\n * resolved if it has already been locked in a project\n */\n retired?:\n | RetirementStatus\n | undefined;\n /**\n * sha256 checksum of outer package tarball\n * required when encoding but optional when decoding\n */\n outerChecksum?: Uint8Array | undefined;\n}\n\nexport interface RetirementStatus {\n reason: RetirementReason;\n message?: string | undefined;\n}\n\nexport interface Dependency {\n /** Package name of dependency */\n package: string;\n /** Version requirement of dependency */\n requirement: string;\n /** If set and true the package is optional (see dependency resolution) */\n optional?:\n | boolean\n | undefined;\n /**\n * If set is the OTP application name of the dependency, if not set the\n * application name is the same as the package name\n */\n app?:\n | string\n | undefined;\n /** If set, the repository where the dependency is located */\n repository?: string | undefined;\n}\n\nfunction createBasePackage(): Package {\n return { releases: [], name: \"\", repository: \"\" };\n}\n\nexport const Package = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Package {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePackage();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.releases.push(Release.decode(reader, reader.uint32()));\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.name = reader.string();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.repository = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Package {\n return {\n releases: globalThis.Array.isArray(object?.releases) ? object.releases.map((e: any) => Release.fromJSON(e)) : [],\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n repository: isSet(object.repository) ? globalThis.String(object.repository) : \"\",\n };\n },\n\n create<I extends Exact<DeepPartial<Package>, I>>(base?: I): Package {\n return Package.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Package>, I>>(object: I): Package {\n const message = createBasePackage();\n message.releases = object.releases?.map((e) => Release.fromPartial(e)) || [];\n message.name = object.name ?? \"\";\n message.repository = object.repository ?? \"\";\n return message;\n },\n};\n\nfunction createBaseRelease(): Release {\n return {\n version: \"\",\n innerChecksum: new Uint8Array(0),\n dependencies: [],\n retired: undefined,\n outerChecksum: new Uint8Array(0),\n };\n}\n\nexport const Release = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Release {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRelease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.version = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.innerChecksum = reader.bytes();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.dependencies.push(Dependency.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.retired = RetirementStatus.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.outerChecksum = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Release {\n return {\n version: isSet(object.version) ? globalThis.String(object.version) : \"\",\n innerChecksum: isSet(object.innerChecksum) ? bytesFromBase64(object.innerChecksum) : new Uint8Array(0),\n dependencies: globalThis.Array.isArray(object?.dependencies)\n ? object.dependencies.map((e: any) => Dependency.fromJSON(e))\n : [],\n retired: isSet(object.retired) ? RetirementStatus.fromJSON(object.retired) : undefined,\n outerChecksum: isSet(object.outerChecksum) ? bytesFromBase64(object.outerChecksum) : new Uint8Array(0),\n };\n },\n\n create<I extends Exact<DeepPartial<Release>, I>>(base?: I): Release {\n return Release.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Release>, I>>(object: I): Release {\n const message = createBaseRelease();\n message.version = object.version ?? \"\";\n message.innerChecksum = object.innerChecksum ?? new Uint8Array(0);\n message.dependencies = object.dependencies?.map((e) => Dependency.fromPartial(e)) || [];\n message.retired = (object.retired !== undefined && object.retired !== null)\n ? RetirementStatus.fromPartial(object.retired)\n : undefined;\n message.outerChecksum = object.outerChecksum ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseRetirementStatus(): RetirementStatus {\n return { reason: 0, message: \"\" };\n}\n\nexport const RetirementStatus = {\n decode(input: _m0.Reader | Uint8Array, length?: number): RetirementStatus {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRetirementStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n\n message.reason = reader.int32() as any;\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): RetirementStatus {\n return {\n reason: isSet(object.reason) ? retirementReasonFromJSON(object.reason) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n };\n },\n\n create<I extends Exact<DeepPartial<RetirementStatus>, I>>(base?: I): RetirementStatus {\n return RetirementStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<RetirementStatus>, I>>(object: I): RetirementStatus {\n const message = createBaseRetirementStatus();\n message.reason = object.reason ?? 0;\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDependency(): Dependency {\n return { package: \"\", requirement: \"\", optional: false, app: \"\", repository: \"\" };\n}\n\nexport const Dependency = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Dependency {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDependency();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.package = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.requirement = reader.string();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.optional = reader.bool();\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.app = reader.string();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.repository = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Dependency {\n return {\n package: isSet(object.package) ? globalThis.String(object.package) : \"\",\n requirement: isSet(object.requirement) ? globalThis.String(object.requirement) : \"\",\n optional: isSet(object.optional) ? globalThis.Boolean(object.optional) : false,\n app: isSet(object.app) ? globalThis.String(object.app) : \"\",\n repository: isSet(object.repository) ? globalThis.String(object.repository) : \"\",\n };\n },\n\n create<I extends Exact<DeepPartial<Dependency>, I>>(base?: I): Dependency {\n return Dependency.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Dependency>, I>>(object: I): Dependency {\n const message = createBaseDependency();\n message.package = object.package ?? \"\";\n message.requirement = object.requirement ?? \"\";\n message.optional = object.optional ?? false;\n message.app = object.app ?? \"\";\n message.repository = object.repository ?? \"\";\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n"],"mappings":";;AAWA,MAAa,mBAAmB;CAC9B,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,iBAAiB;CACjB,cAAc;CACf;AAaD,SAAgB,yBAAyB,QAA+B;AACtE,SAAQ,QAAR;EACE,KAAK;EACL,KAAK,gBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,kBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,mBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,qBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,kBACH,QAAO,iBAAiB;EAG1B,QACE,QAAO,iBAAiB;;;AA8D9B,SAAS,oBAA6B;AACpC,QAAO;EAAE,UAAU,EAAE;EAAE,MAAM;EAAI,YAAY;EAAI;;AAGnD,MAAa,UAAU;CACrB,OAAO,OAAgC,QAA0B;EAC/D,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,mBAAmB;AACnC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,SAAS,KAAK,QAAQ,OAAO,QAAQ,OAAO,QAAQ,CAAC,CAAC;AAC9D;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,OAAO,OAAO,QAAQ;AAC9B;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,aAAa,OAAO,QAAQ;AACpC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAsB;AAC7B,SAAO;GACL,UAAU,WAAW,MAAM,QAAQ,QAAQ,SAAS,GAAG,OAAO,SAAS,KAAK,MAAW,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE;GAChH,MAAM,MAAM,OAAO,KAAK,GAAG,WAAW,OAAO,OAAO,KAAK,GAAG;GAC5D,YAAY,MAAM,OAAO,WAAW,GAAG,WAAW,OAAO,OAAO,WAAW,GAAG;GAC/E;;CAGH,OAAiD,MAAmB;AAClE,SAAO,QAAQ,YAAY,QAAS,EAAE,CAAS;;CAEjD,YAAsD,QAAoB;EACxE,MAAM,UAAU,mBAAmB;AACnC,UAAQ,WAAW,OAAO,UAAU,KAAK,MAAM,QAAQ,YAAY,EAAE,CAAC,IAAI,EAAE;AAC5E,UAAQ,OAAO,OAAO,QAAQ;AAC9B,UAAQ,aAAa,OAAO,cAAc;AAC1C,SAAO;;CAEV;AAED,SAAS,oBAA6B;AACpC,QAAO;EACL,SAAS;EACT,eAAe,IAAI,WAAW,EAAE;EAChC,cAAc,EAAE;EAChB,SAAS,KAAA;EACT,eAAe,IAAI,WAAW,EAAE;EACjC;;AAGH,MAAa,UAAU;CACrB,OAAO,OAAgC,QAA0B;EAC/D,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,mBAAmB;AACnC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,QAAQ;AACjC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,gBAAgB,OAAO,OAAO;AACtC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,aAAa,KAAK,WAAW,OAAO,QAAQ,OAAO,QAAQ,CAAC,CAAC;AACrE;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,iBAAiB,OAAO,QAAQ,OAAO,QAAQ,CAAC;AAClE;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,gBAAgB,OAAO,OAAO;AACtC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAsB;AAC7B,SAAO;GACL,SAAS,MAAM,OAAO,QAAQ,GAAG,WAAW,OAAO,OAAO,QAAQ,GAAG;GACrE,eAAe,MAAM,OAAO,cAAc,GAAG,gBAAgB,OAAO,cAAc,GAAG,IAAI,WAAW,EAAE;GACtG,cAAc,WAAW,MAAM,QAAQ,QAAQ,aAAa,GACxD,OAAO,aAAa,KAAK,MAAW,WAAW,SAAS,EAAE,CAAC,GAC3D,EAAE;GACN,SAAS,MAAM,OAAO,QAAQ,GAAG,iBAAiB,SAAS,OAAO,QAAQ,GAAG,KAAA;GAC7E,eAAe,MAAM,OAAO,cAAc,GAAG,gBAAgB,OAAO,cAAc,GAAG,IAAI,WAAW,EAAE;GACvG;;CAGH,OAAiD,MAAmB;AAClE,SAAO,QAAQ,YAAY,QAAS,EAAE,CAAS;;CAEjD,YAAsD,QAAoB;EACxE,MAAM,UAAU,mBAAmB;AACnC,UAAQ,UAAU,OAAO,WAAW;AACpC,UAAQ,gBAAgB,OAAO,iBAAiB,IAAI,WAAW,EAAE;AACjE,UAAQ,eAAe,OAAO,cAAc,KAAK,MAAM,WAAW,YAAY,EAAE,CAAC,IAAI,EAAE;AACvF,UAAQ,UAAW,OAAO,YAAY,KAAA,KAAa,OAAO,YAAY,OAClE,iBAAiB,YAAY,OAAO,QAAQ,GAC5C,KAAA;AACJ,UAAQ,gBAAgB,OAAO,iBAAiB,IAAI,WAAW,EAAE;AACjE,SAAO;;CAEV;AAED,SAAS,6BAA+C;AACtD,QAAO;EAAE,QAAQ;EAAG,SAAS;EAAI;;AAGnC,MAAa,mBAAmB;CAC9B,OAAO,OAAgC,QAAmC;EACxE,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,4BAA4B;AAC5C,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,EACV;AAGF,aAAQ,SAAS,OAAO,OAAO;AAC/B;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,QAAQ;AACjC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAA+B;AACtC,SAAO;GACL,QAAQ,MAAM,OAAO,OAAO,GAAG,yBAAyB,OAAO,OAAO,GAAG;GACzE,SAAS,MAAM,OAAO,QAAQ,GAAG,WAAW,OAAO,OAAO,QAAQ,GAAG;GACtE;;CAGH,OAA0D,MAA4B;AACpF,SAAO,iBAAiB,YAAY,QAAS,EAAE,CAAS;;CAE1D,YAA+D,QAA6B;EAC1F,MAAM,UAAU,4BAA4B;AAC5C,UAAQ,SAAS,OAAO,UAAU;AAClC,UAAQ,UAAU,OAAO,WAAW;AACpC,SAAO;;CAEV;AAED,SAAS,uBAAmC;AAC1C,QAAO;EAAE,SAAS;EAAI,aAAa;EAAI,UAAU;EAAO,KAAK;EAAI,YAAY;EAAI;;AAGnF,MAAa,aAAa;CACxB,OAAO,OAAgC,QAA6B;EAClE,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,sBAAsB;AACtC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,QAAQ;AACjC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,cAAc,OAAO,QAAQ;AACrC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,WAAW,OAAO,MAAM;AAChC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,MAAM,OAAO,QAAQ;AAC7B;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,aAAa,OAAO,QAAQ;AACpC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAyB;AAChC,SAAO;GACL,SAAS,MAAM,OAAO,QAAQ,GAAG,WAAW,OAAO,OAAO,QAAQ,GAAG;GACrE,aAAa,MAAM,OAAO,YAAY,GAAG,WAAW,OAAO,OAAO,YAAY,GAAG;GACjF,UAAU,MAAM,OAAO,SAAS,GAAG,WAAW,QAAQ,OAAO,SAAS,GAAG;GACzE,KAAK,MAAM,OAAO,IAAI,GAAG,WAAW,OAAO,OAAO,IAAI,GAAG;GACzD,YAAY,MAAM,OAAO,WAAW,GAAG,WAAW,OAAO,OAAO,WAAW,GAAG;GAC/E;;CAGH,OAAoD,MAAsB;AACxE,SAAO,WAAW,YAAY,QAAS,EAAE,CAAS;;CAEpD,YAAyD,QAAuB;EAC9E,MAAM,UAAU,sBAAsB;AACtC,UAAQ,UAAU,OAAO,WAAW;AACpC,UAAQ,cAAc,OAAO,eAAe;AAC5C,UAAQ,WAAW,OAAO,YAAY;AACtC,UAAQ,MAAM,OAAO,OAAO;AAC5B,UAAQ,aAAa,OAAO,cAAc;AAC1C,SAAO;;CAEV;AAED,SAAS,gBAAgB,KAAyB;AAChD,KAAK,WAAmB,OACtB,QAAO,WAAW,KAAK,WAAW,OAAO,KAAK,KAAK,SAAS,CAAC;MACxD;EACL,MAAM,MAAM,WAAW,KAAK,IAAI;EAChC,MAAM,MAAM,IAAI,WAAW,IAAI,OAAO;AACtC,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,EAChC,KAAI,KAAK,IAAI,WAAW,EAAE;AAE5B,SAAO;;;AAgBX,SAAS,MAAM,OAAqB;AAClC,QAAO,UAAU,QAAQ,UAAU,KAAA"}
1
+ {"version":3,"file":"package.js","names":[],"sources":["../../../../../lib/modules/datasource/hex/v2/package.ts"],"sourcesContent":["// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.178.0\n// protoc v6.33.4\n// source: package.proto\n\n/* oxlint-disable */\nimport _m0 from \"protobufjs/minimal.js\";\n\nexport const protobufPackage = \"\";\n\nexport const RetirementReason = {\n RETIRED_OTHER: 0,\n RETIRED_INVALID: 1,\n RETIRED_SECURITY: 2,\n RETIRED_DEPRECATED: 3,\n RETIRED_RENAMED: 4,\n UNRECOGNIZED: -1,\n} as const;\n\nexport type RetirementReason = typeof RetirementReason[keyof typeof RetirementReason];\n\nexport namespace RetirementReason {\n export type RETIRED_OTHER = typeof RetirementReason.RETIRED_OTHER;\n export type RETIRED_INVALID = typeof RetirementReason.RETIRED_INVALID;\n export type RETIRED_SECURITY = typeof RetirementReason.RETIRED_SECURITY;\n export type RETIRED_DEPRECATED = typeof RetirementReason.RETIRED_DEPRECATED;\n export type RETIRED_RENAMED = typeof RetirementReason.RETIRED_RENAMED;\n export type UNRECOGNIZED = typeof RetirementReason.UNRECOGNIZED;\n}\n\nexport function retirementReasonFromJSON(object: any): RetirementReason {\n switch (object) {\n case 0:\n case \"RETIRED_OTHER\":\n return RetirementReason.RETIRED_OTHER;\n case 1:\n case \"RETIRED_INVALID\":\n return RetirementReason.RETIRED_INVALID;\n case 2:\n case \"RETIRED_SECURITY\":\n return RetirementReason.RETIRED_SECURITY;\n case 3:\n case \"RETIRED_DEPRECATED\":\n return RetirementReason.RETIRED_DEPRECATED;\n case 4:\n case \"RETIRED_RENAMED\":\n return RetirementReason.RETIRED_RENAMED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return RetirementReason.UNRECOGNIZED;\n }\n}\n\nexport interface Package {\n /** All releases of the package */\n releases: Release[];\n /** Name of package */\n name: string;\n /** Name of repository */\n repository: string;\n}\n\nexport interface Release {\n /** Release version */\n version: string;\n /**\n * sha256 checksum of \"inner\" package tarball\n * deprecated in favor of outer_checksum\n */\n innerChecksum: Uint8Array;\n /** All dependencies of the release */\n dependencies: Dependency[];\n /**\n * If set the release is retired, a retired release should only be\n * resolved if it has already been locked in a project\n */\n retired?:\n | RetirementStatus\n | undefined;\n /**\n * sha256 checksum of outer package tarball\n * required when encoding but optional when decoding\n */\n outerChecksum?: Uint8Array | undefined;\n}\n\nexport interface RetirementStatus {\n reason: RetirementReason;\n message?: string | undefined;\n}\n\nexport interface Dependency {\n /** Package name of dependency */\n package: string;\n /** Version requirement of dependency */\n requirement: string;\n /** If set and true the package is optional (see dependency resolution) */\n optional?:\n | boolean\n | undefined;\n /**\n * If set is the OTP application name of the dependency, if not set the\n * application name is the same as the package name\n */\n app?:\n | string\n | undefined;\n /** If set, the repository where the dependency is located */\n repository?: string | undefined;\n}\n\nfunction createBasePackage(): Package {\n return { releases: [], name: \"\", repository: \"\" };\n}\n\nexport const Package = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Package {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePackage();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.releases.push(Release.decode(reader, reader.uint32()));\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.name = reader.string();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.repository = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Package {\n return {\n releases: globalThis.Array.isArray(object?.releases) ? object.releases.map((e: any) => Release.fromJSON(e)) : [],\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n repository: isSet(object.repository) ? globalThis.String(object.repository) : \"\",\n };\n },\n\n create<I extends Exact<DeepPartial<Package>, I>>(base?: I): Package {\n return Package.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Package>, I>>(object: I): Package {\n const message = createBasePackage();\n message.releases = object.releases?.map((e) => Release.fromPartial(e)) || [];\n message.name = object.name ?? \"\";\n message.repository = object.repository ?? \"\";\n return message;\n },\n};\n\nfunction createBaseRelease(): Release {\n return {\n version: \"\",\n innerChecksum: new Uint8Array(0),\n dependencies: [],\n retired: undefined,\n outerChecksum: new Uint8Array(0),\n };\n}\n\nexport const Release = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Release {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRelease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.version = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.innerChecksum = reader.bytes();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.dependencies.push(Dependency.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.retired = RetirementStatus.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.outerChecksum = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Release {\n return {\n version: isSet(object.version) ? globalThis.String(object.version) : \"\",\n innerChecksum: isSet(object.innerChecksum) ? bytesFromBase64(object.innerChecksum) : new Uint8Array(0),\n dependencies: globalThis.Array.isArray(object?.dependencies)\n ? object.dependencies.map((e: any) => Dependency.fromJSON(e))\n : [],\n retired: isSet(object.retired) ? RetirementStatus.fromJSON(object.retired) : undefined,\n outerChecksum: isSet(object.outerChecksum) ? bytesFromBase64(object.outerChecksum) : new Uint8Array(0),\n };\n },\n\n create<I extends Exact<DeepPartial<Release>, I>>(base?: I): Release {\n return Release.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Release>, I>>(object: I): Release {\n const message = createBaseRelease();\n message.version = object.version ?? \"\";\n message.innerChecksum = object.innerChecksum ?? new Uint8Array(0);\n message.dependencies = object.dependencies?.map((e) => Dependency.fromPartial(e)) || [];\n message.retired = (object.retired !== undefined && object.retired !== null)\n ? RetirementStatus.fromPartial(object.retired)\n : undefined;\n message.outerChecksum = object.outerChecksum ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseRetirementStatus(): RetirementStatus {\n return { reason: 0, message: \"\" };\n}\n\nexport const RetirementStatus = {\n decode(input: _m0.Reader | Uint8Array, length?: number): RetirementStatus {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRetirementStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n\n message.reason = reader.int32() as any;\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): RetirementStatus {\n return {\n reason: isSet(object.reason) ? retirementReasonFromJSON(object.reason) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n };\n },\n\n create<I extends Exact<DeepPartial<RetirementStatus>, I>>(base?: I): RetirementStatus {\n return RetirementStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<RetirementStatus>, I>>(object: I): RetirementStatus {\n const message = createBaseRetirementStatus();\n message.reason = object.reason ?? 0;\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDependency(): Dependency {\n return { package: \"\", requirement: \"\", optional: false, app: \"\", repository: \"\" };\n}\n\nexport const Dependency = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Dependency {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDependency();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.package = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.requirement = reader.string();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.optional = reader.bool();\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.app = reader.string();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.repository = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Dependency {\n return {\n package: isSet(object.package) ? globalThis.String(object.package) : \"\",\n requirement: isSet(object.requirement) ? globalThis.String(object.requirement) : \"\",\n optional: isSet(object.optional) ? globalThis.Boolean(object.optional) : false,\n app: isSet(object.app) ? globalThis.String(object.app) : \"\",\n repository: isSet(object.repository) ? globalThis.String(object.repository) : \"\",\n };\n },\n\n create<I extends Exact<DeepPartial<Dependency>, I>>(base?: I): Dependency {\n return Dependency.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Dependency>, I>>(object: I): Dependency {\n const message = createBaseDependency();\n message.package = object.package ?? \"\";\n message.requirement = object.requirement ?? \"\";\n message.optional = object.optional ?? false;\n message.app = object.app ?? \"\";\n message.repository = object.repository ?? \"\";\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n"],"mappings":";;AAWA,MAAa,mBAAmB;CAC9B,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,iBAAiB;CACjB,cAAc;CACf;AAaD,SAAgB,yBAAyB,QAA+B;AACtE,SAAQ,QAAR;EACE,KAAK;EACL,KAAK,gBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,kBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,mBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,qBACH,QAAO,iBAAiB;EAC1B,KAAK;EACL,KAAK,kBACH,QAAO,iBAAiB;EAG1B,QACE,QAAO,iBAAiB;;;AA8D9B,SAAS,oBAA6B;AACpC,QAAO;EAAE,UAAU,EAAE;EAAE,MAAM;EAAI,YAAY;EAAI;;AAGnD,MAAa,UAAU;CACrB,OAAO,OAAgC,QAA0B;EAC/D,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,mBAAmB;AACnC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,SAAS,KAAK,QAAQ,OAAO,QAAQ,OAAO,QAAQ,CAAC,CAAC;AAC9D;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,OAAO,OAAO,QAAQ;AAC9B;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,aAAa,OAAO,QAAQ;AACpC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAsB;AAC7B,SAAO;GACL,UAAU,WAAW,MAAM,QAAQ,QAAQ,SAAS,GAAG,OAAO,SAAS,KAAK,MAAW,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE;GAChH,MAAM,MAAM,OAAO,KAAK,GAAG,WAAW,OAAO,OAAO,KAAK,GAAG;GAC5D,YAAY,MAAM,OAAO,WAAW,GAAG,WAAW,OAAO,OAAO,WAAW,GAAG;GAC/E;;CAGH,OAAiD,MAAmB;AAClE,SAAO,QAAQ,YAAY,QAAS,EAAE,CAAS;;CAEjD,YAAsD,QAAoB;EACxE,MAAM,UAAU,mBAAmB;AACnC,UAAQ,WAAW,OAAO,UAAU,KAAK,MAAM,QAAQ,YAAY,EAAE,CAAC,IAAI,EAAE;AAC5E,UAAQ,OAAO,OAAO,QAAQ;AAC9B,UAAQ,aAAa,OAAO,cAAc;AAC1C,SAAO;;CAEV;AAED,SAAS,oBAA6B;AACpC,QAAO;EACL,SAAS;EACT,eAAe,IAAI,WAAW,EAAE;EAChC,cAAc,EAAE;EAChB,SAAS,KAAA;EACT,eAAe,IAAI,WAAW,EAAE;EACjC;;AAGH,MAAa,UAAU;CACrB,OAAO,OAAgC,QAA0B;EAC/D,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,mBAAmB;AACnC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,QAAQ;AACjC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,gBAAgB,OAAO,OAAO;AACtC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,aAAa,KAAK,WAAW,OAAO,QAAQ,OAAO,QAAQ,CAAC,CAAC;AACrE;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,iBAAiB,OAAO,QAAQ,OAAO,QAAQ,CAAC;AAClE;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,gBAAgB,OAAO,OAAO;AACtC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAsB;AAC7B,SAAO;GACL,SAAS,MAAM,OAAO,QAAQ,GAAG,WAAW,OAAO,OAAO,QAAQ,GAAG;GACrE,eAAe,MAAM,OAAO,cAAc,GAAG,gBAAgB,OAAO,cAAc,GAAG,IAAI,WAAW,EAAE;GACtG,cAAc,WAAW,MAAM,QAAQ,QAAQ,aAAa,GACxD,OAAO,aAAa,KAAK,MAAW,WAAW,SAAS,EAAE,CAAC,GAC3D,EAAE;GACN,SAAS,MAAM,OAAO,QAAQ,GAAG,iBAAiB,SAAS,OAAO,QAAQ,GAAG,KAAA;GAC7E,eAAe,MAAM,OAAO,cAAc,GAAG,gBAAgB,OAAO,cAAc,GAAG,IAAI,WAAW,EAAE;GACvG;;CAGH,OAAiD,MAAmB;AAClE,SAAO,QAAQ,YAAY,QAAS,EAAE,CAAS;;CAEjD,YAAsD,QAAoB;EACxE,MAAM,UAAU,mBAAmB;AACnC,UAAQ,UAAU,OAAO,WAAW;AACpC,UAAQ,gBAAgB,OAAO,iBAAiB,IAAI,WAAW,EAAE;AACjE,UAAQ,eAAe,OAAO,cAAc,KAAK,MAAM,WAAW,YAAY,EAAE,CAAC,IAAI,EAAE;AACvF,UAAQ,UAAW,OAAO,YAAY,KAAA,KAAa,OAAO,YAAY,OAClE,iBAAiB,YAAY,OAAO,QAAQ,GAC5C,KAAA;AACJ,UAAQ,gBAAgB,OAAO,iBAAiB,IAAI,WAAW,EAAE;AACjE,SAAO;;CAEV;AAED,SAAS,6BAA+C;AACtD,QAAO;EAAE,QAAQ;EAAG,SAAS;EAAI;;AAGnC,MAAa,mBAAmB;CAC9B,OAAO,OAAgC,QAAmC;EACxE,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,4BAA4B;AAC5C,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,EACV;AAGF,aAAQ,SAAS,OAAO,OAAO;AAC/B;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,QAAQ;AACjC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAA+B;AACtC,SAAO;GACL,QAAQ,MAAM,OAAO,OAAO,GAAG,yBAAyB,OAAO,OAAO,GAAG;GACzE,SAAS,MAAM,OAAO,QAAQ,GAAG,WAAW,OAAO,OAAO,QAAQ,GAAG;GACtE;;CAGH,OAA0D,MAA4B;AACpF,SAAO,iBAAiB,YAAY,QAAS,EAAE,CAAS;;CAE1D,YAA+D,QAA6B;EAC1F,MAAM,UAAU,4BAA4B;AAC5C,UAAQ,SAAS,OAAO,UAAU;AAClC,UAAQ,UAAU,OAAO,WAAW;AACpC,SAAO;;CAEV;AAED,SAAS,uBAAmC;AAC1C,QAAO;EAAE,SAAS;EAAI,aAAa;EAAI,UAAU;EAAO,KAAK;EAAI,YAAY;EAAI;;AAGnF,MAAa,aAAa;CACxB,OAAO,OAAgC,QAA6B;EAClE,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,sBAAsB;AACtC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,QAAQ;AACjC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,cAAc,OAAO,QAAQ;AACrC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,WAAW,OAAO,MAAM;AAChC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,MAAM,OAAO,QAAQ;AAC7B;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,aAAa,OAAO,QAAQ;AACpC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAyB;AAChC,SAAO;GACL,SAAS,MAAM,OAAO,QAAQ,GAAG,WAAW,OAAO,OAAO,QAAQ,GAAG;GACrE,aAAa,MAAM,OAAO,YAAY,GAAG,WAAW,OAAO,OAAO,YAAY,GAAG;GACjF,UAAU,MAAM,OAAO,SAAS,GAAG,WAAW,QAAQ,OAAO,SAAS,GAAG;GACzE,KAAK,MAAM,OAAO,IAAI,GAAG,WAAW,OAAO,OAAO,IAAI,GAAG;GACzD,YAAY,MAAM,OAAO,WAAW,GAAG,WAAW,OAAO,OAAO,WAAW,GAAG;GAC/E;;CAGH,OAAoD,MAAsB;AACxE,SAAO,WAAW,YAAY,QAAS,EAAE,CAAS;;CAEpD,YAAyD,QAAuB;EAC9E,MAAM,UAAU,sBAAsB;AACtC,UAAQ,UAAU,OAAO,WAAW;AACpC,UAAQ,cAAc,OAAO,eAAe;AAC5C,UAAQ,WAAW,OAAO,YAAY;AACtC,UAAQ,MAAM,OAAO,OAAO;AAC5B,UAAQ,aAAa,OAAO,cAAc;AAC1C,SAAO;;CAEV;AAED,SAAS,gBAAgB,KAAyB;AAChD,KAAK,WAAmB,OACtB,QAAO,WAAW,KAAK,WAAW,OAAO,KAAK,KAAK,SAAS,CAAC;MACxD;EACL,MAAM,MAAM,WAAW,KAAK,IAAI;EAChC,MAAM,MAAM,IAAI,WAAW,IAAI,OAAO;AACtC,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,EAChC,KAAI,KAAK,IAAI,WAAW,EAAE;AAE5B,SAAO;;;AAgBX,SAAS,MAAM,OAAqB;AAClC,QAAO,UAAU,QAAQ,UAAU,KAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"signed.js","names":[],"sources":["../../../../../lib/modules/datasource/hex/v2/signed.ts"],"sourcesContent":["// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.178.0\n// protoc v6.33.4\n// source: signed.proto\n\n/* eslint-disable */\nimport _m0 from \"protobufjs/minimal.js\";\n\nexport const protobufPackage = \"\";\n\nexport interface Signed {\n /** Signed contents */\n payload: Uint8Array;\n /** The signature */\n signature?: Uint8Array | undefined;\n}\n\nfunction createBaseSigned(): Signed {\n return { payload: new Uint8Array(0), signature: new Uint8Array(0) };\n}\n\nexport const Signed = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Signed {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSigned();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.payload = reader.bytes();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.signature = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Signed {\n return {\n payload: isSet(object.payload) ? bytesFromBase64(object.payload) : new Uint8Array(0),\n signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0),\n };\n },\n\n create<I extends Exact<DeepPartial<Signed>, I>>(base?: I): Signed {\n return Signed.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Signed>, I>>(object: I): Signed {\n const message = createBaseSigned();\n message.payload = object.payload ?? new Uint8Array(0);\n message.signature = object.signature ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n"],"mappings":";;AAkBA,SAAS,mBAA2B;AAClC,QAAO;EAAE,SAAS,IAAI,WAAW,EAAE;EAAE,WAAW,IAAI,WAAW,EAAE;EAAE;;AAGrE,MAAa,SAAS;CACpB,OAAO,OAAgC,QAAyB;EAC9D,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,kBAAkB;AAClC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,OAAO;AAChC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,YAAY,OAAO,OAAO;AAClC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAqB;AAC5B,SAAO;GACL,SAAS,MAAM,OAAO,QAAQ,GAAG,gBAAgB,OAAO,QAAQ,GAAG,IAAI,WAAW,EAAE;GACpF,WAAW,MAAM,OAAO,UAAU,GAAG,gBAAgB,OAAO,UAAU,GAAG,IAAI,WAAW,EAAE;GAC3F;;CAGH,OAAgD,MAAkB;AAChE,SAAO,OAAO,YAAY,QAAS,EAAE,CAAS;;CAEhD,YAAqD,QAAmB;EACtE,MAAM,UAAU,kBAAkB;AAClC,UAAQ,UAAU,OAAO,WAAW,IAAI,WAAW,EAAE;AACrD,UAAQ,YAAY,OAAO,aAAa,IAAI,WAAW,EAAE;AACzD,SAAO;;CAEV;AAED,SAAS,gBAAgB,KAAyB;AAChD,KAAK,WAAmB,OACtB,QAAO,WAAW,KAAK,WAAW,OAAO,KAAK,KAAK,SAAS,CAAC;MACxD;EACL,MAAM,MAAM,WAAW,KAAK,IAAI;EAChC,MAAM,MAAM,IAAI,WAAW,IAAI,OAAO;AACtC,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,EAChC,KAAI,KAAK,IAAI,WAAW,EAAE;AAE5B,SAAO;;;AAgBX,SAAS,MAAM,OAAqB;AAClC,QAAO,UAAU,QAAQ,UAAU,KAAA"}
1
+ {"version":3,"file":"signed.js","names":[],"sources":["../../../../../lib/modules/datasource/hex/v2/signed.ts"],"sourcesContent":["// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.178.0\n// protoc v6.33.4\n// source: signed.proto\n\n/* oxlint-disable */\nimport _m0 from \"protobufjs/minimal.js\";\n\nexport const protobufPackage = \"\";\n\nexport interface Signed {\n /** Signed contents */\n payload: Uint8Array;\n /** The signature */\n signature?: Uint8Array | undefined;\n}\n\nfunction createBaseSigned(): Signed {\n return { payload: new Uint8Array(0), signature: new Uint8Array(0) };\n}\n\nexport const Signed = {\n decode(input: _m0.Reader | Uint8Array, length?: number): Signed {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSigned();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.payload = reader.bytes();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.signature = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Signed {\n return {\n payload: isSet(object.payload) ? bytesFromBase64(object.payload) : new Uint8Array(0),\n signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0),\n };\n },\n\n create<I extends Exact<DeepPartial<Signed>, I>>(base?: I): Signed {\n return Signed.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Signed>, I>>(object: I): Signed {\n const message = createBaseSigned();\n message.payload = object.payload ?? new Uint8Array(0);\n message.signature = object.signature ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n"],"mappings":";;AAkBA,SAAS,mBAA2B;AAClC,QAAO;EAAE,SAAS,IAAI,WAAW,EAAE;EAAE,WAAW,IAAI,WAAW,EAAE;EAAE;;AAGrE,MAAa,SAAS;CACpB,OAAO,OAAgC,QAAyB;EAC9D,MAAM,SAAS,iBAAiB,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO,MAAM;EAC7E,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM;EAC3D,MAAM,UAAU,kBAAkB;AAClC,SAAO,OAAO,MAAM,KAAK;GACvB,MAAM,MAAM,OAAO,QAAQ;AAC3B,WAAQ,QAAQ,GAAhB;IACE,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,UAAU,OAAO,OAAO;AAChC;IACF,KAAK;AACH,SAAI,QAAQ,GACV;AAGF,aAAQ,YAAY,OAAO,OAAO;AAClC;;AAEJ,QAAK,MAAM,OAAO,KAAK,QAAQ,EAC7B;AAEF,UAAO,SAAS,MAAM,EAAE;;AAE1B,SAAO;;CAGT,SAAS,QAAqB;AAC5B,SAAO;GACL,SAAS,MAAM,OAAO,QAAQ,GAAG,gBAAgB,OAAO,QAAQ,GAAG,IAAI,WAAW,EAAE;GACpF,WAAW,MAAM,OAAO,UAAU,GAAG,gBAAgB,OAAO,UAAU,GAAG,IAAI,WAAW,EAAE;GAC3F;;CAGH,OAAgD,MAAkB;AAChE,SAAO,OAAO,YAAY,QAAS,EAAE,CAAS;;CAEhD,YAAqD,QAAmB;EACtE,MAAM,UAAU,kBAAkB;AAClC,UAAQ,UAAU,OAAO,WAAW,IAAI,WAAW,EAAE;AACrD,UAAQ,YAAY,OAAO,aAAa,IAAI,WAAW,EAAE;AACzD,SAAO;;CAEV;AAED,SAAS,gBAAgB,KAAyB;AAChD,KAAK,WAAmB,OACtB,QAAO,WAAW,KAAK,WAAW,OAAO,KAAK,KAAK,SAAS,CAAC;MACxD;EACL,MAAM,MAAM,WAAW,KAAK,IAAI;EAChC,MAAM,MAAM,IAAI,WAAW,IAAI,OAAO;AACtC,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,EAChC,KAAI,KAAK,IAAI,WAAW,EAAE;AAE5B,SAAO;;;AAgBX,SAAS,MAAM,OAAqB;AAClC,QAAO,UAAU,QAAQ,UAAU,KAAA"}
@@ -41,7 +41,7 @@ hashMap.set("fleet", "d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f2
41
41
  hashMap.set("flux", "427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6");
42
42
  hashMap.set("fvm", "9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90");
43
43
  hashMap.set("git-submodules", "fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071");
44
- hashMap.set("github-actions", "e773ee6c9e646355866aea7344bfbcfd1064a744a3a7fa8c391d581e4368902e");
44
+ hashMap.set("github-actions", "99c975bf92692f8ae50306146589419b7f75a9c2020a1fa600774b960f3a8bfb");
45
45
  hashMap.set("gitlabci", "0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6");
46
46
  hashMap.set("gitlabci-include", "354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab");
47
47
  hashMap.set("glasskube", "253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70");
@@ -74,7 +74,7 @@ hashMap.set("mix", "1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb9409
74
74
  hashMap.set("nix", "f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031");
75
75
  hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
76
76
  hashMap.set("npm", "36ca540aae66652d99f08b2c8bc91d190e8e74323626f5b34832a4e7e5094f02");
77
- hashMap.set("nuget", "354abfda178ad549e8ff756303def7c58fa32e4e152b7e6f738a1c1f3f5d553c");
77
+ hashMap.set("nuget", "42175b1906e8e91ae0731a13d92d0df065108063665f8a36150aeae73aafdc78");
78
78
  hashMap.set("nvm", "3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322");
79
79
  hashMap.set("ocb", "032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca");
80
80
  hashMap.set("osgi", "32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10");
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','7d6414a195345c60a25a9d92c4b17c0b6df90be086fc5559150e2e5496976890');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','e773ee6c9e646355866aea7344bfbcfd1064a744a3a7fa8c391d581e4368902e');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','f430d8d768b56889ad1e5a69965841e85cc700e364d15db7bce680e8a5d6f821');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','6192273014bff02a3e0c68aa8a52c3563398adb4c7d3f7141c25f8736f488748');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','36ca540aae66652d99f08b2c8bc91d190e8e74323626f5b34832a4e7e5094f02');\nhashMap.set('nuget','354abfda178ad549e8ff756303def7c58fa32e4e152b7e6f738a1c1f3f5d553c');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','b17af6eaa33e7babcc52cfc9a617c7801c0efb1125bbd6d0d4e9f6fe33afd353');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','5bd62ce12c23896b8ecb2385a60a3cb9eb72badf10f9984bfed38f50f9262266');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','7d6414a195345c60a25a9d92c4b17c0b6df90be086fc5559150e2e5496976890');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','99c975bf92692f8ae50306146589419b7f75a9c2020a1fa600774b960f3a8bfb');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','f430d8d768b56889ad1e5a69965841e85cc700e364d15db7bce680e8a5d6f821');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','6192273014bff02a3e0c68aa8a52c3563398adb4c7d3f7141c25f8736f488748');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','36ca540aae66652d99f08b2c8bc91d190e8e74323626f5b34832a4e7e5094f02');\nhashMap.set('nuget','42175b1906e8e91ae0731a13d92d0df065108063665f8a36150aeae73aafdc78');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','b17af6eaa33e7babcc52cfc9a617c7801c0efb1125bbd6d0d4e9f6fe33afd353');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','5bd62ce12c23896b8ecb2385a60a3cb9eb72badf10f9984bfed38f50f9262266');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
@@ -65,6 +65,10 @@ function extractRepositoryAction(actionRef, parsed, customRegistryUrlsPackageDep
65
65
  dep.currentValue = commentData.pinnedVersion ?? commentData.ref;
66
66
  dep.currentDigestShort = ref;
67
67
  } else dep.currentValue = ref;
68
+ if (!dep.currentValue) {
69
+ dep.enabled = false;
70
+ dep.skipReason = "unversioned-reference";
71
+ }
68
72
  const isVersionLike = dep.currentValue && versionLikeRe.test(dep.currentValue);
69
73
  if (!dep.datasource && dep.currentValue && !isVersionLike) {
70
74
  dep.datasource = GithubDigestDatasource.id;
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":["dockerVersioning.id","exactVersioning.id","nodeVersioning.id"],"sources":["../../../../lib/modules/manager/github-actions/extract.ts"],"sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { logger, withMeta } from '../../../logger/index.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { ForgejoTagsDatasource } from '../../datasource/forgejo-tags/index.ts';\nimport { GiteaTagsDatasource } from '../../datasource/gitea-tags/index.ts';\nimport { GithubDigestDatasource } from '../../datasource/github-digest/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { GithubRunnersDatasource } from '../../datasource/github-runners/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport * as dockerVersioning from '../../versioning/docker/index.ts';\nimport * as exactVersioning from '../../versioning/exact/index.ts';\nimport * as nodeVersioning from '../../versioning/node/index.ts';\nimport * as npmVersioning from '../../versioning/npm/index.ts';\nimport { getDep } from '../dockerfile/extract.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types.ts';\nimport { CommunityActions } from './community.ts';\nimport type { DockerReference, RepositoryReference } from './parse.ts';\nimport { isSha, isShortSha, parseUsesLine, versionLikeRe } from './parse.ts';\nimport type { Steps } from './schema.ts';\nimport { Workflow } from './schema.ts';\n\n// detects if we run against a Github Enterprise Server and adds the URL to the beginning of the registryURLs for looking up Actions\n// This reflects the behavior of how GitHub looks up Actions\n// First on the Enterprise Server, then on GitHub.com\nfunction detectCustomGitHubRegistryUrlsForActions(): PackageDependency {\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls = ['https://github.com'];\n if (endpoint && GlobalConfig.get('platform') === 'github') {\n const parsedEndpoint = new URL(endpoint);\n\n if (\n parsedEndpoint.host !== 'github.com' &&\n parsedEndpoint.host !== 'api.github.com'\n ) {\n registryUrls.unshift(\n `${parsedEndpoint.protocol}//${parsedEndpoint.host}`,\n );\n return { registryUrls };\n }\n }\n return {};\n}\n\nfunction extractDockerAction(\n actionRef: DockerReference,\n config: ExtractConfig,\n): PackageDependency {\n const dep = getDep(actionRef.originalRef, true, config.registryAliases);\n dep.depType = 'docker';\n dep.replaceString = actionRef.originalRef;\n return dep;\n}\n\nfunction extractRepositoryAction(\n actionRef: RepositoryReference,\n parsed: ReturnType<typeof parseUsesLine> & object,\n customRegistryUrlsPackageDependency: PackageDependency,\n): PackageDependency {\n const {\n replaceString: valueString,\n quote,\n commentData,\n commentPrecedingWhitespace,\n } = parsed;\n const {\n owner,\n repo,\n path: subPath,\n ref,\n hostname,\n isExplicitHostname,\n } = actionRef;\n\n const registryUrl = isExplicitHostname ? `https://${hostname}/` : '';\n const packageName = `${owner}/${repo}`;\n const depName = `${registryUrl}${packageName}`;\n const pathSuffix = subPath ? `/${subPath}` : '';\n const commentWs = commentPrecedingWhitespace || ' ';\n\n const dep: PackageDependency = {\n depName,\n commitMessageTopic: '{{{depName}}} action',\n versioning: dockerVersioning.id,\n depType: 'action',\n replaceString: valueString,\n autoReplaceStringTemplate: `${quote}{{depName}}${pathSuffix}@{{#if newDigest}}{{newDigest}}${quote}{{#if newValue}}${commentWs}# {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}${quote}{{/unless}}`,\n ...(isExplicitHostname\n ? detectDatasource(registryUrl)\n : customRegistryUrlsPackageDependency),\n };\n\n if (packageName !== depName) {\n dep.packageName = packageName;\n }\n\n // Extend replaceString to include relevant comment portions:\n // - Pinned version or ref: include only up to the matched token (truncate trailing text)\n // - Ratchet exclude: include the full comment to preserve the marker\n const pinComment =\n commentData.pinnedVersion ??\n (isSha(ref) || isShortSha(ref) ? commentData.ref : undefined);\n if (\n pinComment &&\n !is.undefined(commentData.index) &&\n !is.undefined(commentData.matchedString)\n ) {\n const cleanComment = parsed.commentString.slice(1);\n const matchEndIndex = commentData.index + commentData.matchedString.length;\n const commentSuffix = cleanComment.slice(0, matchEndIndex);\n dep.replaceString =\n valueString + commentPrecedingWhitespace + '#' + commentSuffix;\n } else if (commentData.ratchetExclude) {\n dep.replaceString =\n valueString + commentPrecedingWhitespace + parsed.commentString;\n }\n\n if (isSha(ref)) {\n dep.currentValue = commentData.pinnedVersion ?? commentData.ref;\n dep.currentDigest = ref;\n } else if (isShortSha(ref)) {\n dep.currentValue = commentData.pinnedVersion ?? commentData.ref;\n dep.currentDigestShort = ref;\n } else {\n dep.currentValue = ref;\n }\n\n const isVersionLike =\n dep.currentValue && versionLikeRe.test(dep.currentValue);\n if (!dep.datasource && dep.currentValue && !isVersionLike) {\n dep.datasource = GithubDigestDatasource.id;\n dep.versioning = exactVersioning.id;\n }\n\n dep.datasource ??= GithubTagsDatasource.id;\n\n return dep;\n}\n\nfunction extractWithRegex(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const customRegistryUrlsPackageDependency =\n detectCustomGitHubRegistryUrlsForActions();\n logger.trace('github-actions.extractWithRegex()');\n const deps: PackageDependency[] = [];\n\n for (const line of content.split(newlineRegex)) {\n if (line.trim().startsWith('#')) {\n continue;\n }\n\n const parsed = parseUsesLine(line);\n if (!parsed?.actionRef) {\n continue;\n }\n\n const { actionRef } = parsed;\n\n if (actionRef.kind === 'docker') {\n deps.push(extractDockerAction(actionRef, config));\n continue;\n }\n\n if (actionRef.kind === 'repository') {\n deps.push(\n extractRepositoryAction(\n actionRef,\n parsed,\n customRegistryUrlsPackageDependency,\n ),\n );\n }\n }\n\n return deps;\n}\n\nfunction detectDatasource(registryUrl: string): PackageDependency {\n const platform = detectPlatform(registryUrl);\n\n switch (platform) {\n case 'forgejo':\n return {\n registryUrls: [registryUrl],\n datasource: ForgejoTagsDatasource.id,\n };\n case 'gitea':\n return {\n registryUrls: [registryUrl],\n datasource: GiteaTagsDatasource.id,\n };\n case 'github':\n return { registryUrls: [registryUrl] };\n }\n\n return {\n skipReason: 'unsupported-url',\n };\n}\n\nconst runnerVersionRegex = regEx(\n /^\\s*(?<depName>[a-zA-Z]+)-(?<currentValue>[^\\s]+)/,\n);\n\nfunction extractRunner(runner: string): PackageDependency | null {\n const runnerVersionGroups = runnerVersionRegex.exec(runner)?.groups;\n if (!runnerVersionGroups) {\n return null;\n }\n\n const { depName, currentValue } = runnerVersionGroups;\n\n if (!GithubRunnersDatasource.isValidRunner(depName, currentValue)) {\n return null;\n }\n\n const dependency: PackageDependency = {\n depName,\n currentValue,\n replaceString: `${depName}-${currentValue}`,\n depType: 'github-runner',\n datasource: GithubRunnersDatasource.id,\n autoReplaceStringTemplate: '{{depName}}-{{newValue}}',\n };\n\n if (!dockerVersioning.api.isValid(currentValue)) {\n dependency.skipReason = 'invalid-version';\n }\n\n return dependency;\n}\n\n// For official https://github.com/actions\nconst versionedActions: Record<string, string> = {\n go: npmVersioning.id,\n node: nodeVersioning.id,\n python: npmVersioning.id,\n\n // Not covered yet because they use different datasources/packageNames:\n // - dotnet\n // - java\n};\n\nfunction extractVersionedAction(step: Steps): PackageDependency | null {\n for (const [action, versioning] of Object.entries(versionedActions)) {\n const actionName = `actions/setup-${action}`;\n if (step.uses !== actionName && !step.uses?.startsWith(`${actionName}@`)) {\n continue;\n }\n\n const fieldName = `${action}-version`;\n const currentValue = step.with?.[fieldName];\n if (!currentValue) {\n return null;\n }\n\n return {\n datasource: GithubReleasesDatasource.id,\n depName: action,\n packageName: `actions/${action}-versions`,\n versioning,\n extractVersion: '^(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)(-\\\\d+)?$',\n currentValue,\n depType: 'uses-with',\n };\n }\n return null;\n}\n\nfunction extractSteps(steps: Steps[]): PackageDependency[] {\n const deps: PackageDependency[] = [];\n\n for (const step of steps) {\n const res = CommunityActions.safeParse(step);\n if (res.success) {\n deps.push(res.data);\n continue;\n }\n\n const versionedDep = extractVersionedAction(step);\n if (versionedDep) {\n deps.push(versionedDep);\n }\n }\n\n return deps;\n}\n\nfunction extractWithYAMLParser(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageDependency[] {\n logger.trace('github-actions.extractWithYAMLParser()');\n\n const obj = withMeta({ packageFile }, () => Workflow.parse(content));\n if (!obj) {\n return [];\n }\n\n if ('runs' in obj && obj.runs.steps) {\n return extractSteps(obj.runs.steps);\n }\n\n if (!('jobs' in obj)) {\n return [];\n }\n\n const deps: PackageDependency[] = [];\n\n for (const job of Object.values(obj.jobs)) {\n if (job.container) {\n const dep = getDep(job.container, true, config.registryAliases);\n if (dep) {\n dep.depType = 'container';\n deps.push(dep);\n }\n }\n\n for (const service of job.services) {\n const dep = getDep(service, true, config.registryAliases);\n if (dep) {\n dep.depType = 'service';\n deps.push(dep);\n }\n }\n\n for (const runner of job['runs-on']) {\n const dep = extractRunner(runner);\n if (dep) {\n deps.push(dep);\n }\n }\n\n deps.push(...extractSteps(job.steps));\n }\n\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig = {}, // TODO: enforce ExtractConfig\n): PackageFileContent | null {\n logger.trace(`github-actions.extractPackageFile(${packageFile})`);\n\n const deps = [\n ...extractWithRegex(content, config),\n ...extractWithYAMLParser(content, packageFile, config),\n ];\n\n if (!deps.length) {\n return null;\n }\n\n return { deps };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA8BA,SAAS,2CAA8D;CACrE,MAAM,WAAW,aAAa,IAAI,WAAW;CAC7C,MAAM,eAAe,CAAC,qBAAqB;AAC3C,KAAI,YAAY,aAAa,IAAI,WAAW,KAAK,UAAU;EACzD,MAAM,iBAAiB,IAAI,IAAI,SAAS;AAExC,MACE,eAAe,SAAS,gBACxB,eAAe,SAAS,kBACxB;AACA,gBAAa,QACX,GAAG,eAAe,SAAS,IAAI,eAAe,OAC/C;AACD,UAAO,EAAE,cAAc;;;AAG3B,QAAO,EAAE;;AAGX,SAAS,oBACP,WACA,QACmB;CACnB,MAAM,MAAM,OAAO,UAAU,aAAa,MAAM,OAAO,gBAAgB;AACvE,KAAI,UAAU;AACd,KAAI,gBAAgB,UAAU;AAC9B,QAAO;;AAGT,SAAS,wBACP,WACA,QACA,qCACmB;CACnB,MAAM,EACJ,eAAe,aACf,OACA,aACA,+BACE;CACJ,MAAM,EACJ,OACA,MACA,MAAM,SACN,KACA,UACA,uBACE;CAEJ,MAAM,cAAc,qBAAqB,WAAW,SAAS,KAAK;CAClE,MAAM,cAAc,GAAG,MAAM,GAAG;CAChC,MAAM,UAAU,GAAG,cAAc;CAIjC,MAAM,MAAyB;EAC7B;EACA,oBAAoB;EACpB,YAAYA;EACZ,SAAS;EACT,eAAe;EACf,2BAA2B,GAAG,MAAM,aATnB,UAAU,IAAI,YAAY,GASiB,iCAAiC,MAAM,kBARnF,8BAA8B,IAQiF,+DAA+D,MAAM;EACpM,GAAI,qBACA,iBAAiB,YAAY,GAC7B;EACL;AAED,KAAI,gBAAgB,QAClB,KAAI,cAAc;AASpB,MAFE,YAAY,kBACX,MAAM,IAAI,IAAI,WAAW,IAAI,GAAG,YAAY,MAAM,KAAA,OAGnD,CAAC,GAAG,UAAU,YAAY,MAAM,IAChC,CAAC,GAAG,UAAU,YAAY,cAAc,EACxC;EACA,MAAM,eAAe,OAAO,cAAc,MAAM,EAAE;EAClD,MAAM,gBAAgB,YAAY,QAAQ,YAAY,cAAc;EACpE,MAAM,gBAAgB,aAAa,MAAM,GAAG,cAAc;AAC1D,MAAI,gBACF,cAAc,6BAA6B,MAAM;YAC1C,YAAY,eACrB,KAAI,gBACF,cAAc,6BAA6B,OAAO;AAGtD,KAAI,MAAM,IAAI,EAAE;AACd,MAAI,eAAe,YAAY,iBAAiB,YAAY;AAC5D,MAAI,gBAAgB;YACX,WAAW,IAAI,EAAE;AAC1B,MAAI,eAAe,YAAY,iBAAiB,YAAY;AAC5D,MAAI,qBAAqB;OAEzB,KAAI,eAAe;CAGrB,MAAM,gBACJ,IAAI,gBAAgB,cAAc,KAAK,IAAI,aAAa;AAC1D,KAAI,CAAC,IAAI,cAAc,IAAI,gBAAgB,CAAC,eAAe;AACzD,MAAI,aAAa,uBAAuB;AACxC,MAAI,aAAaC;;AAGnB,KAAI,eAAe,qBAAqB;AAExC,QAAO;;AAGT,SAAS,iBACP,SACA,QACqB;CACrB,MAAM,sCACJ,0CAA0C;AAC5C,QAAO,MAAM,oCAAoC;CACjD,MAAM,OAA4B,EAAE;AAEpC,MAAK,MAAM,QAAQ,QAAQ,MAAM,aAAa,EAAE;AAC9C,MAAI,KAAK,MAAM,CAAC,WAAW,IAAI,CAC7B;EAGF,MAAM,SAAS,cAAc,KAAK;AAClC,MAAI,CAAC,QAAQ,UACX;EAGF,MAAM,EAAE,cAAc;AAEtB,MAAI,UAAU,SAAS,UAAU;AAC/B,QAAK,KAAK,oBAAoB,WAAW,OAAO,CAAC;AACjD;;AAGF,MAAI,UAAU,SAAS,aACrB,MAAK,KACH,wBACE,WACA,QACA,oCACD,CACF;;AAIL,QAAO;;AAGT,SAAS,iBAAiB,aAAwC;AAGhE,SAFiB,eAAe,YAAY,EAE5C;EACE,KAAK,UACH,QAAO;GACL,cAAc,CAAC,YAAY;GAC3B,YAAY,sBAAsB;GACnC;EACH,KAAK,QACH,QAAO;GACL,cAAc,CAAC,YAAY;GAC3B,YAAY,oBAAoB;GACjC;EACH,KAAK,SACH,QAAO,EAAE,cAAc,CAAC,YAAY,EAAE;;AAG1C,QAAO,EACL,YAAY,mBACb;;AAGH,MAAM,qBAAqB,MACzB,oDACD;AAED,SAAS,cAAc,QAA0C;CAC/D,MAAM,sBAAsB,mBAAmB,KAAK,OAAO,EAAE;AAC7D,KAAI,CAAC,oBACH,QAAO;CAGT,MAAM,EAAE,SAAS,iBAAiB;AAElC,KAAI,CAAC,wBAAwB,cAAc,SAAS,aAAa,CAC/D,QAAO;CAGT,MAAM,aAAgC;EACpC;EACA;EACA,eAAe,GAAG,QAAQ,GAAG;EAC7B,SAAS;EACT,YAAY,wBAAwB;EACpC,2BAA2B;EAC5B;AAED,KAAI,CAAA,IAAsB,QAAQ,aAAa,CAC7C,YAAW,aAAa;AAG1B,QAAO;;AAIT,MAAM,mBAA2C;CAC/C,IAAI;CACJ,MAAMC;CACN,QAAQ;CAKT;AAED,SAAS,uBAAuB,MAAuC;AACrE,MAAK,MAAM,CAAC,QAAQ,eAAe,OAAO,QAAQ,iBAAiB,EAAE;EACnE,MAAM,aAAa,iBAAiB;AACpC,MAAI,KAAK,SAAS,cAAc,CAAC,KAAK,MAAM,WAAW,GAAG,WAAW,GAAG,CACtE;EAGF,MAAM,YAAY,GAAG,OAAO;EAC5B,MAAM,eAAe,KAAK,OAAO;AACjC,MAAI,CAAC,aACH,QAAO;AAGT,SAAO;GACL,YAAY,yBAAyB;GACrC,SAAS;GACT,aAAa,WAAW,OAAO;GAC/B;GACA,gBAAgB;GAChB;GACA,SAAS;GACV;;AAEH,QAAO;;AAGT,SAAS,aAAa,OAAqC;CACzD,MAAM,OAA4B,EAAE;AAEpC,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,MAAM,iBAAiB,UAAU,KAAK;AAC5C,MAAI,IAAI,SAAS;AACf,QAAK,KAAK,IAAI,KAAK;AACnB;;EAGF,MAAM,eAAe,uBAAuB,KAAK;AACjD,MAAI,aACF,MAAK,KAAK,aAAa;;AAI3B,QAAO;;AAGT,SAAS,sBACP,SACA,aACA,QACqB;AACrB,QAAO,MAAM,yCAAyC;CAEtD,MAAM,MAAM,SAAS,EAAE,aAAa,QAAQ,SAAS,MAAM,QAAQ,CAAC;AACpE,KAAI,CAAC,IACH,QAAO,EAAE;AAGX,KAAI,UAAU,OAAO,IAAI,KAAK,MAC5B,QAAO,aAAa,IAAI,KAAK,MAAM;AAGrC,KAAI,EAAE,UAAU,KACd,QAAO,EAAE;CAGX,MAAM,OAA4B,EAAE;AAEpC,MAAK,MAAM,OAAO,OAAO,OAAO,IAAI,KAAK,EAAE;AACzC,MAAI,IAAI,WAAW;GACjB,MAAM,MAAM,OAAO,IAAI,WAAW,MAAM,OAAO,gBAAgB;AAC/D,OAAI,KAAK;AACP,QAAI,UAAU;AACd,SAAK,KAAK,IAAI;;;AAIlB,OAAK,MAAM,WAAW,IAAI,UAAU;GAClC,MAAM,MAAM,OAAO,SAAS,MAAM,OAAO,gBAAgB;AACzD,OAAI,KAAK;AACP,QAAI,UAAU;AACd,SAAK,KAAK,IAAI;;;AAIlB,OAAK,MAAM,UAAU,IAAI,YAAY;GACnC,MAAM,MAAM,cAAc,OAAO;AACjC,OAAI,IACF,MAAK,KAAK,IAAI;;AAIlB,OAAK,KAAK,GAAG,aAAa,IAAI,MAAM,CAAC;;AAGvC,QAAO;;AAGT,SAAgB,mBACd,SACA,aACA,SAAwB,EAAE,EACC;AAC3B,QAAO,MAAM,qCAAqC,YAAY,GAAG;CAEjE,MAAM,OAAO,CACX,GAAG,iBAAiB,SAAS,OAAO,EACpC,GAAG,sBAAsB,SAAS,aAAa,OAAO,CACvD;AAED,KAAI,CAAC,KAAK,OACR,QAAO;AAGT,QAAO,EAAE,MAAM"}
1
+ {"version":3,"file":"extract.js","names":["dockerVersioning.id","exactVersioning.id","nodeVersioning.id"],"sources":["../../../../lib/modules/manager/github-actions/extract.ts"],"sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { logger, withMeta } from '../../../logger/index.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { ForgejoTagsDatasource } from '../../datasource/forgejo-tags/index.ts';\nimport { GiteaTagsDatasource } from '../../datasource/gitea-tags/index.ts';\nimport { GithubDigestDatasource } from '../../datasource/github-digest/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { GithubRunnersDatasource } from '../../datasource/github-runners/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport * as dockerVersioning from '../../versioning/docker/index.ts';\nimport * as exactVersioning from '../../versioning/exact/index.ts';\nimport * as nodeVersioning from '../../versioning/node/index.ts';\nimport * as npmVersioning from '../../versioning/npm/index.ts';\nimport { getDep } from '../dockerfile/extract.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types.ts';\nimport { CommunityActions } from './community.ts';\nimport type { DockerReference, RepositoryReference } from './parse.ts';\nimport { isSha, isShortSha, parseUsesLine, versionLikeRe } from './parse.ts';\nimport type { Steps } from './schema.ts';\nimport { Workflow } from './schema.ts';\n\n// detects if we run against a Github Enterprise Server and adds the URL to the beginning of the registryURLs for looking up Actions\n// This reflects the behavior of how GitHub looks up Actions\n// First on the Enterprise Server, then on GitHub.com\nfunction detectCustomGitHubRegistryUrlsForActions(): PackageDependency {\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls = ['https://github.com'];\n if (endpoint && GlobalConfig.get('platform') === 'github') {\n const parsedEndpoint = new URL(endpoint);\n\n if (\n parsedEndpoint.host !== 'github.com' &&\n parsedEndpoint.host !== 'api.github.com'\n ) {\n registryUrls.unshift(\n `${parsedEndpoint.protocol}//${parsedEndpoint.host}`,\n );\n return { registryUrls };\n }\n }\n return {};\n}\n\nfunction extractDockerAction(\n actionRef: DockerReference,\n config: ExtractConfig,\n): PackageDependency {\n const dep = getDep(actionRef.originalRef, true, config.registryAliases);\n dep.depType = 'docker';\n dep.replaceString = actionRef.originalRef;\n return dep;\n}\n\nfunction extractRepositoryAction(\n actionRef: RepositoryReference,\n parsed: ReturnType<typeof parseUsesLine> & object,\n customRegistryUrlsPackageDependency: PackageDependency,\n): PackageDependency {\n const {\n replaceString: valueString,\n quote,\n commentData,\n commentPrecedingWhitespace,\n } = parsed;\n const {\n owner,\n repo,\n path: subPath,\n ref,\n hostname,\n isExplicitHostname,\n } = actionRef;\n\n const registryUrl = isExplicitHostname ? `https://${hostname}/` : '';\n const packageName = `${owner}/${repo}`;\n const depName = `${registryUrl}${packageName}`;\n const pathSuffix = subPath ? `/${subPath}` : '';\n const commentWs = commentPrecedingWhitespace || ' ';\n\n const dep: PackageDependency = {\n depName,\n commitMessageTopic: '{{{depName}}} action',\n versioning: dockerVersioning.id,\n depType: 'action',\n replaceString: valueString,\n autoReplaceStringTemplate: `${quote}{{depName}}${pathSuffix}@{{#if newDigest}}{{newDigest}}${quote}{{#if newValue}}${commentWs}# {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}${quote}{{/unless}}`,\n ...(isExplicitHostname\n ? detectDatasource(registryUrl)\n : customRegistryUrlsPackageDependency),\n };\n\n if (packageName !== depName) {\n dep.packageName = packageName;\n }\n\n // Extend replaceString to include relevant comment portions:\n // - Pinned version or ref: include only up to the matched token (truncate trailing text)\n // - Ratchet exclude: include the full comment to preserve the marker\n const pinComment =\n commentData.pinnedVersion ??\n (isSha(ref) || isShortSha(ref) ? commentData.ref : undefined);\n if (\n pinComment &&\n !is.undefined(commentData.index) &&\n !is.undefined(commentData.matchedString)\n ) {\n const cleanComment = parsed.commentString.slice(1);\n const matchEndIndex = commentData.index + commentData.matchedString.length;\n const commentSuffix = cleanComment.slice(0, matchEndIndex);\n dep.replaceString =\n valueString + commentPrecedingWhitespace + '#' + commentSuffix;\n } else if (commentData.ratchetExclude) {\n dep.replaceString =\n valueString + commentPrecedingWhitespace + parsed.commentString;\n }\n\n if (isSha(ref)) {\n dep.currentValue = commentData.pinnedVersion ?? commentData.ref;\n dep.currentDigest = ref;\n } else if (isShortSha(ref)) {\n dep.currentValue = commentData.pinnedVersion ?? commentData.ref;\n dep.currentDigestShort = ref;\n } else {\n dep.currentValue = ref;\n }\n\n if (!dep.currentValue) {\n dep.enabled = false;\n dep.skipReason = 'unversioned-reference';\n }\n\n const isVersionLike =\n dep.currentValue && versionLikeRe.test(dep.currentValue);\n if (!dep.datasource && dep.currentValue && !isVersionLike) {\n dep.datasource = GithubDigestDatasource.id;\n dep.versioning = exactVersioning.id;\n }\n\n dep.datasource ??= GithubTagsDatasource.id;\n\n return dep;\n}\n\nfunction extractWithRegex(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const customRegistryUrlsPackageDependency =\n detectCustomGitHubRegistryUrlsForActions();\n logger.trace('github-actions.extractWithRegex()');\n const deps: PackageDependency[] = [];\n\n for (const line of content.split(newlineRegex)) {\n if (line.trim().startsWith('#')) {\n continue;\n }\n\n const parsed = parseUsesLine(line);\n if (!parsed?.actionRef) {\n continue;\n }\n\n const { actionRef } = parsed;\n\n if (actionRef.kind === 'docker') {\n deps.push(extractDockerAction(actionRef, config));\n continue;\n }\n\n if (actionRef.kind === 'repository') {\n deps.push(\n extractRepositoryAction(\n actionRef,\n parsed,\n customRegistryUrlsPackageDependency,\n ),\n );\n }\n }\n\n return deps;\n}\n\nfunction detectDatasource(registryUrl: string): PackageDependency {\n const platform = detectPlatform(registryUrl);\n\n switch (platform) {\n case 'forgejo':\n return {\n registryUrls: [registryUrl],\n datasource: ForgejoTagsDatasource.id,\n };\n case 'gitea':\n return {\n registryUrls: [registryUrl],\n datasource: GiteaTagsDatasource.id,\n };\n case 'github':\n return { registryUrls: [registryUrl] };\n }\n\n return {\n skipReason: 'unsupported-url',\n };\n}\n\nconst runnerVersionRegex = regEx(\n /^\\s*(?<depName>[a-zA-Z]+)-(?<currentValue>[^\\s]+)/,\n);\n\nfunction extractRunner(runner: string): PackageDependency | null {\n const runnerVersionGroups = runnerVersionRegex.exec(runner)?.groups;\n if (!runnerVersionGroups) {\n return null;\n }\n\n const { depName, currentValue } = runnerVersionGroups;\n\n if (!GithubRunnersDatasource.isValidRunner(depName, currentValue)) {\n return null;\n }\n\n const dependency: PackageDependency = {\n depName,\n currentValue,\n replaceString: `${depName}-${currentValue}`,\n depType: 'github-runner',\n datasource: GithubRunnersDatasource.id,\n autoReplaceStringTemplate: '{{depName}}-{{newValue}}',\n };\n\n if (!dockerVersioning.api.isValid(currentValue)) {\n dependency.skipReason = 'invalid-version';\n }\n\n return dependency;\n}\n\n// For official https://github.com/actions\nconst versionedActions: Record<string, string> = {\n go: npmVersioning.id,\n node: nodeVersioning.id,\n python: npmVersioning.id,\n\n // Not covered yet because they use different datasources/packageNames:\n // - dotnet\n // - java\n};\n\nfunction extractVersionedAction(step: Steps): PackageDependency | null {\n for (const [action, versioning] of Object.entries(versionedActions)) {\n const actionName = `actions/setup-${action}`;\n if (step.uses !== actionName && !step.uses?.startsWith(`${actionName}@`)) {\n continue;\n }\n\n const fieldName = `${action}-version`;\n const currentValue = step.with?.[fieldName];\n if (!currentValue) {\n return null;\n }\n\n return {\n datasource: GithubReleasesDatasource.id,\n depName: action,\n packageName: `actions/${action}-versions`,\n versioning,\n extractVersion: '^(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)(-\\\\d+)?$',\n currentValue,\n depType: 'uses-with',\n };\n }\n return null;\n}\n\nfunction extractSteps(steps: Steps[]): PackageDependency[] {\n const deps: PackageDependency[] = [];\n\n for (const step of steps) {\n const res = CommunityActions.safeParse(step);\n if (res.success) {\n deps.push(res.data);\n continue;\n }\n\n const versionedDep = extractVersionedAction(step);\n if (versionedDep) {\n deps.push(versionedDep);\n }\n }\n\n return deps;\n}\n\nfunction extractWithYAMLParser(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageDependency[] {\n logger.trace('github-actions.extractWithYAMLParser()');\n\n const obj = withMeta({ packageFile }, () => Workflow.parse(content));\n if (!obj) {\n return [];\n }\n\n if ('runs' in obj && obj.runs.steps) {\n return extractSteps(obj.runs.steps);\n }\n\n if (!('jobs' in obj)) {\n return [];\n }\n\n const deps: PackageDependency[] = [];\n\n for (const job of Object.values(obj.jobs)) {\n if (job.container) {\n const dep = getDep(job.container, true, config.registryAliases);\n if (dep) {\n dep.depType = 'container';\n deps.push(dep);\n }\n }\n\n for (const service of job.services) {\n const dep = getDep(service, true, config.registryAliases);\n if (dep) {\n dep.depType = 'service';\n deps.push(dep);\n }\n }\n\n for (const runner of job['runs-on']) {\n const dep = extractRunner(runner);\n if (dep) {\n deps.push(dep);\n }\n }\n\n deps.push(...extractSteps(job.steps));\n }\n\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig = {}, // TODO: enforce ExtractConfig\n): PackageFileContent | null {\n logger.trace(`github-actions.extractPackageFile(${packageFile})`);\n\n const deps = [\n ...extractWithRegex(content, config),\n ...extractWithYAMLParser(content, packageFile, config),\n ];\n\n if (!deps.length) {\n return null;\n }\n\n return { deps };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"punycode.js","names":[],"sources":["../lib/punycode.cjs"],"sourcesContent":["/**\n * punycode workaround\n *\n * Load punycode.js module to cache and override node built-in.\n *\n * See <https://github.com/renovatebot/renovate/issues/32395>\n */\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nrequire('punycode/');\nrequire.cache.punycode = require.cache[require.resolve('punycode/')];\n"],"mappings":";;;;;;;;;;AAQA,WAAQ,YAAY;AACpB,WAAQ,MAAM,WAAA,UAAmB,MAAA,UAAc,QAAQ,YAAY"}
1
+ {"version":3,"file":"punycode.js","names":[],"sources":["../lib/punycode.cjs"],"sourcesContent":["/**\n * punycode workaround\n *\n * Load punycode.js module to cache and override node built-in.\n *\n * See <https://github.com/renovatebot/renovate/issues/32395>\n */\n// oxlint-disable-next-line typescript/no-require-imports\nrequire('punycode/');\nrequire.cache.punycode = require.cache[require.resolve('punycode/')];\n"],"mappings":";;;;;;;;;;AAQA,WAAQ,YAAY;AACpB,WAAQ,MAAM,WAAA,UAAmB,MAAA,UAAc,QAAQ,YAAY"}
@@ -423,7 +423,8 @@ async function getCommitMessages() {
423
423
  try {
424
424
  return (await git.log({
425
425
  n: 20,
426
- format: { message: "%s" }
426
+ format: { message: "%s" },
427
+ "--no-merges": null
427
428
  })).all.map((commit) => commit.message);
428
429
  } catch /* v8 ignore next -- TODO: add test #40625 */ {
429
430
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../lib/util/git/index.ts"],"sourcesContent":["import URL from 'node:url';\nimport { isBoolean, isNonEmptyObject, isString } from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport { DateTime } from 'luxon';\nimport semver from 'semver';\nimport type { Options, TaskOptions } from 'simple-git';\nimport { ResetMode, simpleGit } from 'simple-git';\nimport { setTimeout } from 'timers/promises';\nimport upath from 'upath';\nimport { getConfigFileNames } from '../../config/app-strings.ts';\nimport { GlobalConfig } from '../../config/global.ts';\nimport type { RenovateConfig } from '../../config/types.ts';\nimport {\n CONFIG_VALIDATION,\n INVALID_PATH,\n REPOSITORY_CHANGED,\n REPOSITORY_DISABLED,\n REPOSITORY_EMPTY,\n SYSTEM_INSUFFICIENT_DISK_SPACE,\n TEMPORARY_ERROR,\n UNKNOWN_ERROR,\n} from '../../constants/error-messages.ts';\nimport { instrument } from '../../instrumentation/index.ts';\nimport { withInstrumenting } from '../../instrumentation/with-instrumenting.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport type { GitProtocol } from '../../types/git.ts';\nimport { incCountValue, incLimitedValue } from '../../workers/global/limits.ts';\nimport { getCache } from '../cache/repository/index.ts';\nimport { getEnv } from '../env.ts';\nimport { getChildEnv } from '../exec/utils.ts';\nimport { newlineRegex, regEx } from '../regex.ts';\nimport { matchRegexOrGlobList } from '../string-match.ts';\nimport { logWarningIfUnicodeHiddenCharactersInPackageFile } from '../unicode.ts';\nimport { getGitEnvironmentVariables } from './auth.ts';\nimport { parseGitAuthor } from './author.ts';\nimport {\n getCachedBehindBaseResult,\n setCachedBehindBaseResult,\n} from './behind-base-branch-cache.ts';\nimport { getNoVerify, simpleGitConfig } from './config.ts';\nimport {\n getCachedConflictResult,\n setCachedConflictResult,\n} from './conflicts-cache.ts';\nimport {\n bulkChangesDisallowed,\n checkForPlatformFailure,\n handleCommitError,\n} from './error.ts';\nimport type { InstrumentedSimpleGit } from './instrument.ts';\nimport { instrumentGit } from './instrument.ts';\nimport {\n getCachedModifiedResult,\n setCachedModifiedResult,\n} from './modified-cache.ts';\nimport { configSigningKey, writePrivateKey } from './private-key.ts';\nimport type {\n CommitFilesConfig,\n CommitResult,\n LocalConfig,\n LongCommitSha,\n PushFilesConfig,\n StatusResult,\n StorageConfig,\n TreeItem,\n} from './types.ts';\n\nexport { setNoVerify } from './config.ts';\nexport { setPrivateKey } from './private-key.ts';\n\n// Retry parameters\nconst retryCount = 5;\nconst delaySeconds = 3;\nconst delayFactor = 2;\n\nexport const RENOVATE_FORK_UPSTREAM = 'renovate-fork-upstream';\n\n// A generic wrapper for simpleGit.* calls to make them more fault-tolerant\nexport async function gitRetry<T>(gitFunc: () => Promise<T>): Promise<T> {\n let round = 0;\n let lastError: Error | undefined;\n\n while (round <= retryCount) {\n if (round > 0) {\n logger.debug(`gitRetry round ${round}`);\n }\n try {\n const res = await gitFunc();\n if (round > 1) {\n logger.debug('Successful retry of git function');\n }\n return res;\n } catch (err) {\n lastError = err;\n logger.debug({ err }, `Git function thrown`);\n // Try to transform the Error to ExternalHostError\n const errChecked = checkForPlatformFailure(err);\n if (errChecked instanceof ExternalHostError) {\n logger.debug(\n { err: errChecked },\n `ExternalHostError thrown in round ${\n round + 1\n } of ${retryCount} - retrying in the next round`,\n );\n } else {\n throw err;\n }\n }\n\n const nextDelay = delayFactor ^ ((round - 1) * delaySeconds);\n logger.trace({ nextDelay }, `Delay next round`);\n await setTimeout(1000 * nextDelay);\n\n round++;\n }\n\n throw lastError!;\n}\n\nasync function isDirectory(dir: string): Promise<boolean> {\n try {\n return (await fs.stat(dir)).isDirectory();\n } catch {\n return false;\n }\n}\n\nasync function getDefaultBranch(git: InstrumentedSimpleGit): Promise<string> {\n logger.debug('getDefaultBranch()');\n // see https://stackoverflow.com/a/62352647/3005034\n try {\n let res = await git.raw(['rev-parse', '--abbrev-ref', 'origin/HEAD']);\n /* v8 ignore next -- TODO: add test #40625 */\n if (!res) {\n logger.debug('Could not determine default branch using git rev-parse');\n const headPrefix = 'HEAD branch: ';\n res = (await git.raw(['remote', 'show', 'origin']))\n .split('\\n')\n .map((line) => line.trim())\n .find((line) => line.startsWith(headPrefix))!\n .replace(headPrefix, '');\n }\n\n return res.replace('origin/', '').trim();\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug({ err }, 'Error getting default branch');\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n if (\n err.message.startsWith(\n 'fatal: ref refs/remotes/origin/HEAD is not a symbolic ref',\n )\n ) {\n throw new Error(REPOSITORY_EMPTY);\n }\n if (err.message.includes(\"fatal: ambiguous argument 'origin/HEAD'\")) {\n logger.warn('Error getting default branch');\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n}\n\nlet config: LocalConfig = {} as any;\n\n// TODO: can be undefined\nlet git: InstrumentedSimpleGit;\nlet gitInitialized: boolean;\nlet submodulesInitizialized: boolean;\n\nlet privateKeySet = false;\n\nexport const GIT_MINIMUM_VERSION = '2.33.0'; // git show-current\n\nexport async function validateGitVersion(): Promise<boolean> {\n let version: string | undefined;\n const globalGit = instrumentGit(simpleGit());\n try {\n const { major, minor, patch, installed } = await globalGit.version();\n /* v8 ignore if -- TODO: add test #40625 */\n if (!installed) {\n logger.error('Git not installed');\n return false;\n }\n version = `${major}.${minor}.${patch}`;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.error({ err }, 'Error fetching git version');\n return false;\n }\n /* v8 ignore if -- TODO: add test #40625 */\n if (!(version && semver.gte(version, GIT_MINIMUM_VERSION))) {\n logger.error(\n { detectedVersion: version, minimumVersion: GIT_MINIMUM_VERSION },\n 'Git version needs upgrading',\n );\n return false;\n }\n logger.debug(`Found valid git version: ${version}`);\n return true;\n}\n\nasync function fetchBranchCommits(preferUpstream = true): Promise<void> {\n config.branchCommits = {};\n const url =\n preferUpstream && config.upstreamUrl ? config.upstreamUrl : config.url;\n logger.debug(`fetchBranchCommits(): url=${url}`);\n const opts = ['ls-remote', '--heads', url];\n if (config.extraCloneOpts) {\n Object.entries(config.extraCloneOpts).forEach((e) =>\n // TODO: types (#22198)\n opts.unshift(e[0], `${e[1]!}`),\n );\n }\n try {\n const lsRemoteRes = await gitRetry(() => git.raw(opts));\n logger.trace({ lsRemoteRes }, 'git ls-remote result');\n lsRemoteRes\n .split(newlineRegex)\n .filter(Boolean)\n .map((line) => line.trim().split(regEx(/\\s+/)))\n .forEach(([sha, ref]) => {\n config.branchCommits[ref.replace('refs/heads/', '')] =\n sha as LongCommitSha;\n });\n logger.trace({ branchCommits: config.branchCommits }, 'branch commits');\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n logger.debug({ err }, 'git error');\n if (err.message?.includes('Please ask the owner to check their account')) {\n throw new Error(REPOSITORY_DISABLED);\n }\n throw err;\n }\n}\n\nexport async function fetchRevSpec(revSpec: string): Promise<void> {\n await gitRetry(() => git.fetch(['origin', revSpec]));\n}\n\nexport async function initRepo(args: StorageConfig): Promise<void> {\n config = { ...args } as any;\n config.ignoredAuthors = [];\n config.additionalBranches = [];\n config.branchIsModified = {};\n // TODO: safe to pass all env variables? use `getChildEnv` instead?\n git = instrumentGit(\n simpleGit(GlobalConfig.get('localDir'), simpleGitConfig()).env({\n ...getEnv(),\n LANG: 'C.UTF-8',\n LC_ALL: 'C.UTF-8',\n }),\n );\n gitInitialized = false;\n submodulesInitizialized = false;\n await fetchBranchCommits();\n}\n\nasync function resetToBranch(branchName: string): Promise<void> {\n logger.debug(`resetToBranch(${branchName})`);\n await git.raw(['reset', '--hard']);\n await gitRetry(() => git.checkout(branchName));\n await git.raw(['reset', '--hard', 'origin/' + branchName]);\n await git.raw(['clean', '-fd']);\n}\n\n/* v8 ignore next -- TODO: add test #40625 */\nexport async function resetToCommit(commit: LongCommitSha): Promise<void> {\n logger.debug(`resetToCommit(${commit})`);\n await git.raw(['reset', '--hard', commit]);\n}\n\nasync function deleteLocalBranch(branchName: string): Promise<void> {\n await git.branch(['-D', branchName]);\n}\n\nasync function cleanLocalBranches(): Promise<void> {\n const existingBranches = (await git.raw(['branch']))\n .split(newlineRegex)\n .map((branch) => branch.trim())\n .filter((branch) => branch.length > 0 && !branch.startsWith('* '));\n logger.debug({ existingBranches });\n for (const branchName of existingBranches) {\n await deleteLocalBranch(branchName);\n }\n}\n\nexport function setGitAuthor(gitAuthor: string | undefined): void {\n const gitAuthorParsed = parseGitAuthor(\n gitAuthor ?? 'Renovate Bot <renovate@whitesourcesoftware.com>',\n );\n if (!gitAuthorParsed) {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'None';\n error.validationError = 'Invalid gitAuthor';\n error.validationMessage = `\\`gitAuthor\\` is not parsed as valid RFC5322 format: \\`${gitAuthor!}\\``;\n throw error;\n }\n config.gitAuthorName = gitAuthorParsed.name;\n config.gitAuthorEmail = gitAuthorParsed.address;\n}\n\nexport async function writeGitAuthor(): Promise<void> {\n const { gitAuthorName, gitAuthorEmail, writeGitDone } = config;\n /* v8 ignore if -- TODO: add test #40625 */\n if (writeGitDone) {\n return;\n }\n config.writeGitDone = true;\n try {\n // v8 ignore else -- TODO: add test #40625\n if (gitAuthorName) {\n logger.debug(`Setting git author name: ${gitAuthorName}`);\n await git.addConfig('user.name', gitAuthorName);\n }\n // v8 ignore else -- TODO: add test #40625\n if (gitAuthorEmail) {\n logger.debug(`Setting git author email: ${gitAuthorEmail}`);\n await git.addConfig('user.email', gitAuthorEmail);\n }\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n logger.debug(\n { err, gitAuthorName, gitAuthorEmail },\n 'Error setting git author config',\n );\n throw new Error(TEMPORARY_ERROR);\n }\n}\n\nexport function setUserRepoConfig({\n gitIgnoredAuthors,\n gitAuthor,\n}: RenovateConfig): void {\n config.ignoredAuthors = gitIgnoredAuthors ?? [];\n setGitAuthor(gitAuthor);\n}\n\nexport async function getSubmodules(): Promise<string[]> {\n try {\n return (\n (await git.raw([\n 'config',\n '--file',\n '.gitmodules',\n '--get-regexp',\n '\\\\.path',\n ])) || ''\n )\n .trim()\n .split(regEx(/[\\n\\s]/))\n .filter((_e: string, i: number) => i % 2);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.warn({ err }, 'Error getting submodules');\n return [];\n }\n}\n\nexport async function cloneSubmodules(\n shouldClone: boolean,\n cloneSubmodulesFilter: string[] | undefined,\n): Promise<void> {\n if (!shouldClone || submodulesInitizialized) {\n return;\n }\n submodulesInitizialized = true;\n const gitEnv = getChildEnv({ env: getGitEnvironmentVariables() });\n await syncGit();\n const submodules = await getSubmodules();\n for (const submodule of submodules) {\n if (!matchRegexOrGlobList(submodule, cloneSubmodulesFilter ?? ['*'])) {\n logger.debug(\n { cloneSubmodulesFilter },\n `Skipping submodule ${submodule}`,\n );\n continue;\n }\n try {\n logger.debug(`Cloning git submodule at ${submodule}`);\n await gitRetry(() =>\n git.env(gitEnv).submoduleUpdate(['--init', '--recursive', submodule]),\n );\n } catch (err) {\n logger.warn({ err, submodule }, `Unable to initialise git submodule`);\n }\n }\n}\n\nexport function isCloned(): boolean {\n return gitInitialized;\n}\n\nexport const syncGit = withInstrumenting(\n { name: 'syncGit' },\n async function (): Promise<void> {\n if (gitInitialized) {\n /* v8 ignore if -- TODO: add test #40625 */\n if (getEnv().RENOVATE_X_CLEAR_HOOKS) {\n await git.raw(['config', 'core.hooksPath', '/dev/null']);\n }\n return;\n }\n /* v8 ignore if -- TODO: add test #40625 */\n if (GlobalConfig.get('platform') === 'local') {\n throw new Error('Cannot sync git when platform=local');\n }\n gitInitialized = true;\n const localDir = GlobalConfig.get('localDir')!;\n logger.debug(`syncGit(): Initializing git repository into ${localDir}`);\n const gitHead = upath.join(localDir, '.git/HEAD');\n let clone = true;\n\n if (await fs.pathExists(gitHead)) {\n await instrument('fetch', async () => {\n logger.debug(\n `syncGit(): Found existing git repository, attempting git fetch`,\n );\n try {\n await git.raw(['remote', 'set-url', 'origin', config.url]);\n const fetchStart = Date.now();\n await gitRetry(() => git.fetch(['--prune', 'origin']));\n config.currentBranch =\n config.currentBranch || (await getDefaultBranch(git));\n await resetToBranch(config.currentBranch);\n await cleanLocalBranches();\n const durationMs = Math.round(Date.now() - fetchStart);\n logger.info({ durationMs }, 'git fetch completed');\n clone = false;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message === REPOSITORY_EMPTY) {\n throw err;\n }\n logger.info({ err }, 'git fetch error, falling back to git clone');\n }\n });\n }\n if (clone) {\n await instrument('clone', async () => {\n const cloneStart = Date.now();\n try {\n const opts: string[] = [];\n if (config.defaultBranch) {\n opts.push('-b', config.defaultBranch);\n }\n if (config.fullClone) {\n logger.debug('Performing full clone');\n } else {\n logger.debug('Performing blobless clone');\n opts.push('--filter=blob:none');\n }\n if (config.extraCloneOpts) {\n Object.entries(config.extraCloneOpts).forEach((e) =>\n // TODO: types (#22198)\n opts.push(e[0], `${e[1]!}`),\n );\n }\n const emptyDirAndClone = async (): Promise<void> => {\n await instrument(`fs.emptyDir(${localDir})`, () =>\n fs.emptyDir(localDir),\n );\n await git.clone(config.url, '.', opts);\n };\n await gitRetry(() =>\n instrument('emptyDirAndClone', emptyDirAndClone),\n );\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug({ err }, 'git clone error');\n if (err.message?.includes('No space left on device')) {\n throw new Error(SYSTEM_INSUFFICIENT_DISK_SPACE);\n }\n if (err.message === REPOSITORY_EMPTY) {\n throw err;\n }\n throw new ExternalHostError(err, 'git');\n }\n const durationMs = Math.round(Date.now() - cloneStart);\n logger.debug({ durationMs }, 'git clone completed');\n });\n }\n try {\n config.currentBranchSha = (\n await git.raw(['rev-parse', 'HEAD'])\n ).trim() as LongCommitSha;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message?.includes('fatal: not a git repository')) {\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n // This will only happen now if set in global config\n await instrument('cloneSubmodules', () =>\n cloneSubmodules(!!config.cloneSubmodules, config.cloneSubmodulesFilter),\n );\n try {\n const latestCommit = (await git.log({ n: 1 })).latest;\n logger.debug({ latestCommit }, 'latest repository commit');\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n if (err.message.includes('does not have any commits yet')) {\n throw new Error(REPOSITORY_EMPTY);\n }\n logger.warn({ err }, 'Cannot retrieve latest commit');\n }\n config.currentBranch =\n config.currentBranch ??\n config.defaultBranch ??\n (await getDefaultBranch(git));\n /* v8 ignore next -- TODO: add test #40625 */\n delete getCache()?.semanticCommits;\n\n // If upstreamUrl is set then the bot is running in fork mode\n // The \"upstream\" remote is the original repository which was forked from\n if (config.upstreamUrl) {\n const { upstreamUrl } = config;\n await instrument('sync with upstreamUrl', async () => {\n logger.debug(\n `Bringing default branch up-to-date with ${RENOVATE_FORK_UPSTREAM}, to get latest config`,\n );\n // Add remote if it does not exist\n const remotes = await git.getRemotes(true);\n // v8 ignore else -- TODO: add test #40625\n if (!remotes.some((remote) => remote.name === RENOVATE_FORK_UPSTREAM)) {\n logger.debug(`Adding remote ${RENOVATE_FORK_UPSTREAM}`);\n await git.addRemote(RENOVATE_FORK_UPSTREAM, upstreamUrl);\n }\n await syncForkWithUpstream(config.currentBranch);\n await fetchBranchCommits(false);\n });\n }\n\n config.currentBranchSha = (\n await git.revparse('HEAD')\n ).trim() as LongCommitSha;\n logger.debug(`Current branch SHA: ${config.currentBranchSha}`);\n },\n);\n\nexport async function getRepoStatus(path?: string): Promise<StatusResult> {\n if (isString(path)) {\n const localDir = GlobalConfig.get('localDir');\n const localPath = upath.resolve(localDir, path);\n if (!localPath.startsWith(upath.resolve(localDir))) {\n logger.warn(\n { localPath, localDir },\n 'Preventing access to file outside the local directory',\n );\n throw new Error(INVALID_PATH);\n }\n }\n\n await syncGit();\n return git.status(path ? [path] : []);\n}\n\nexport function branchExists(branchName: string): boolean {\n return !!config.branchCommits[branchName];\n}\n\n// Return the commit SHA for a branch\nexport function getBranchCommit(branchName: string): LongCommitSha | null {\n return config.branchCommits?.[branchName] || null;\n}\n\n// Return the date of the latest commit for a branch\nexport async function getBranchUpdateDate(\n branchName: string,\n): Promise<DateTime | null> {\n const branchSha = config.branchCommits[branchName];\n if (!branchSha) {\n return null;\n }\n try {\n return await getCommitDate(branchSha);\n } catch (err) {\n logger.debug({ err, branchName }, 'Error getting branch update date');\n return null;\n }\n}\n\nexport async function getCommitMessages(): Promise<string[]> {\n logger.debug('getCommitMessages');\n // v8 ignore else -- TODO: add test #40625\n if (GlobalConfig.get('platform') !== 'local') {\n await syncGit();\n }\n try {\n const res = await git.log({\n n: 20,\n format: { message: '%s' },\n });\n return res.all.map((commit) => commit.message);\n } catch /* v8 ignore next -- TODO: add test #40625 */ {\n return [];\n }\n}\n\nexport async function checkoutBranch(\n branchName: string,\n): Promise<LongCommitSha> {\n logger.debug(`Setting current branch to ${branchName}`);\n await syncGit();\n try {\n await gitRetry(() =>\n git.checkout(\n submodulesInitizialized\n ? ['-f', '--recurse-submodules', branchName, '--']\n : ['-f', branchName, '--'],\n ),\n );\n config.currentBranch = branchName;\n config.currentBranchSha = (\n await git.raw(['rev-parse', 'HEAD'])\n ).trim() as LongCommitSha;\n const latestCommitDate = await getCommitDate(config.currentBranchSha);\n // v8 ignore else -- TODO: add test #40625\n if (latestCommitDate) {\n logger.debug(\n { branchName, latestCommitDate, sha: config.currentBranchSha },\n 'latest commit',\n );\n }\n await git.reset(ResetMode.HARD);\n return config.currentBranchSha;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n if (err.message?.includes('fatal: ambiguous argument')) {\n logger.warn({ err }, 'Failed to checkout branch');\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n}\n\nexport async function checkoutBranchFromRemote(\n branchName: string,\n remoteName: string,\n): Promise<LongCommitSha> {\n logger.debug(`Checking out branch ${branchName} from remote ${remoteName}`);\n await syncGit();\n try {\n await gitRetry(() =>\n git.checkoutBranch(branchName, `${remoteName}/${branchName}`),\n );\n config.currentBranch = branchName;\n config.currentBranchSha = (\n await git.revparse('HEAD')\n ).trim() as LongCommitSha;\n logger.debug(`Checked out branch ${branchName} from remote ${remoteName}`);\n config.branchCommits[branchName] = config.currentBranchSha;\n return config.currentBranchSha;\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n if (err.message?.includes('fatal: ambiguous argument')) {\n logger.warn({ err }, 'Failed to checkout branch');\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n}\n\nexport async function resetHardFromRemote(\n remoteAndBranch: string,\n): Promise<void> {\n try {\n const resetLog = await git.reset(['--hard', remoteAndBranch]);\n logger.debug({ resetLog }, 'git reset log');\n } catch (err) {\n logger.error({ err }, 'Error during git reset --hard');\n throw err;\n }\n}\n\nexport async function forcePushToRemote(\n branchName: string,\n remote: string,\n): Promise<void> {\n try {\n const pushLog = await git.push([remote, branchName, '--force']);\n logger.debug({ pushLog }, 'git push log');\n } catch (err) {\n logger.error({ err }, 'Error during git push --force');\n throw err;\n }\n}\n\nexport async function getFileList(): Promise<string[]> {\n await syncGit();\n const branch = config.currentBranch;\n let files: string;\n try {\n files = await git.raw(['ls-tree', '-r', `refs/heads/${branch}`]);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message?.includes('fatal: Not a valid object name')) {\n logger.debug(\n { err },\n 'Branch not found when checking branch list - aborting',\n );\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n /* v8 ignore if -- TODO: add test #40625 */\n if (!files) {\n return [];\n }\n // submodules are starting with `160000 commit`\n return files\n .split(newlineRegex)\n .filter(isString)\n .filter((line) => line.startsWith('100'))\n .map((line) => line.split(regEx(/\\t/)).pop()!);\n}\n\nexport function getBranchList(): string[] {\n return Object.keys(config.branchCommits ?? {});\n}\n\nexport async function isBranchBehindBase(\n branchName: string,\n baseBranch: string,\n): Promise<boolean> {\n const baseBranchSha = getBranchCommit(baseBranch);\n const branchSha = getBranchCommit(branchName);\n let isBehind = getCachedBehindBaseResult(\n branchName,\n branchSha,\n baseBranch,\n baseBranchSha,\n );\n if (isBehind !== null) {\n logger.debug(`branch.isBehindBase(): using cached result \"${isBehind}\"`);\n return isBehind;\n }\n\n logger.debug(\n `branch.isBehindBase(): using git to calculate against baseBranch \"${baseBranch}\"`,\n );\n\n await syncGit();\n try {\n const behindCount = (\n await git.raw(['rev-list', '--count', `${branchSha!}..${baseBranchSha!}`])\n ).trim();\n isBehind = behindCount !== '0';\n logger.debug(\n { baseBranch, branchName },\n `branch.isBehindBase(): ${isBehind}`,\n );\n setCachedBehindBaseResult(branchName, isBehind);\n return isBehind;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n throw err;\n }\n}\n\nexport async function isBranchModified(\n branchName: string,\n baseBranch: string,\n): Promise<boolean> {\n if (!branchExists(branchName)) {\n logger.debug('branch.isModified(): no cache');\n return false;\n }\n // First check local config\n if (config.branchIsModified[branchName] !== undefined) {\n return config.branchIsModified[branchName];\n }\n // Second check repository cache\n const isModified = getCachedModifiedResult(\n branchName,\n getBranchCommit(branchName), // branch sha\n );\n if (isModified !== null) {\n logger.debug(`branch.isModified(): using cached result \"${isModified}\"`);\n config.branchIsModified[branchName] = isModified;\n return isModified;\n }\n\n logger.debug(\n `branch.isModified(): using git to calculate against baseBranch \"${baseBranch}\"`,\n );\n\n await syncGit();\n const committedAuthors = new Set<string>();\n try {\n const commits = await git.log([\n `origin/${baseBranch}..origin/${branchName}`,\n ]);\n\n for (const commit of commits.all) {\n committedAuthors.add(commit.author_email);\n }\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message?.includes('fatal: bad revision')) {\n logger.debug(\n { err },\n 'Remote branch not found when checking last commit author - aborting run',\n );\n throw new Error(REPOSITORY_CHANGED);\n }\n logger.warn({ err }, 'Error checking last author for isBranchModified');\n }\n const { gitAuthorEmail, ignoredAuthors } = config;\n\n const includedAuthors = new Set(committedAuthors);\n\n // v8 ignore else -- TODO: add test #40625\n if (gitAuthorEmail) {\n includedAuthors.delete(gitAuthorEmail);\n }\n\n for (const ignoredAuthor of ignoredAuthors) {\n includedAuthors.delete(ignoredAuthor);\n }\n\n if (includedAuthors.size === 0) {\n // authors all match - branch has not been modified\n logger.trace(\n {\n branchName,\n baseBranch,\n committedAuthors: [...committedAuthors],\n includedAuthors: [...includedAuthors],\n gitAuthorEmail,\n ignoredAuthors,\n },\n 'branch.isModified() = false',\n );\n logger.debug('branch.isModified() = false');\n config.branchIsModified[branchName] = false;\n setCachedModifiedResult(branchName, false);\n return false;\n }\n logger.trace(\n {\n branchName,\n baseBranch,\n committedAuthors: [...committedAuthors],\n includedAuthors: [...includedAuthors],\n gitAuthorEmail,\n ignoredAuthors,\n },\n 'branch.isModified() = true',\n );\n logger.debug(\n { baseBranch, branchName, unrecognizedAuthors: [...includedAuthors] },\n 'branch.isModified() = true',\n );\n config.branchIsModified[branchName] = true;\n setCachedModifiedResult(branchName, true);\n return true;\n}\n\nexport async function isBranchConflicted(\n baseBranch: string,\n branch: string,\n): Promise<boolean> {\n logger.debug(`isBranchConflicted(${baseBranch}, ${branch})`);\n\n const baseBranchSha = getBranchCommit(baseBranch);\n const branchSha = getBranchCommit(branch);\n if (!baseBranchSha || !branchSha) {\n logger.warn(\n { baseBranch, branch },\n 'isBranchConflicted: branch does not exist',\n );\n return true;\n }\n\n const isConflicted = getCachedConflictResult(\n branch,\n branchSha,\n baseBranch,\n baseBranchSha,\n );\n if (isBoolean(isConflicted)) {\n logger.debug(\n `branch.isConflicted(): using cached result \"${isConflicted}\"`,\n );\n return isConflicted;\n }\n\n logger.debug(\n `branch.isConflicted(): using git to calculate against baseBranch ${baseBranch}`,\n );\n\n let result = false;\n await syncGit();\n await writeGitAuthor();\n\n const origBranch = config.currentBranch;\n try {\n await git.reset(ResetMode.HARD);\n //TODO: see #18600\n if (origBranch !== baseBranch) {\n await git.checkout(baseBranch);\n }\n await git.merge(['--no-commit', '--no-ff', `origin/${branch}`]);\n } catch (err) {\n result = true;\n /* v8 ignore if -- TODO: add test #40625 */\n if (!err?.git?.conflicts?.length) {\n logger.debug(\n { baseBranch, branch, err },\n 'isBranchConflicted: unknown error',\n );\n }\n } finally {\n try {\n await git.merge(['--abort']);\n if (origBranch !== baseBranch) {\n await git.checkout(origBranch);\n }\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug(\n { baseBranch, branch, err },\n 'isBranchConflicted: cleanup error',\n );\n }\n }\n\n setCachedConflictResult(branch, result);\n logger.debug(`branch.isConflicted(): ${result}`);\n return result;\n}\n\nexport async function deleteBranch(branchName: string): Promise<void> {\n await syncGit();\n try {\n const deleteCommand = ['push', '--delete', 'origin', branchName];\n\n if (getNoVerify().includes('push')) {\n deleteCommand.push('--no-verify');\n }\n\n await gitRetry(() => git.raw(deleteCommand));\n logger.debug(`Deleted remote branch: ${branchName}`);\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n logger.debug(`No remote branch to delete with name: ${branchName}`);\n }\n try {\n await deleteLocalBranch(branchName);\n /* v8 ignore next -- TODO: add test #40625 (always throws) */\n logger.debug(`Deleted local branch: ${branchName}`);\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n logger.debug(`No local branch to delete with name: ${branchName}`);\n }\n delete config.branchCommits[branchName];\n}\n\nexport async function mergeToLocal(refSpecToMerge: string): Promise<void> {\n let status: StatusResult | undefined;\n try {\n await syncGit();\n await writeGitAuthor();\n await git.reset(ResetMode.HARD);\n await gitRetry(() =>\n git.checkout([\n '-B',\n config.currentBranch,\n 'origin/' + config.currentBranch,\n ]),\n );\n status = await git.status();\n await fetchRevSpec(refSpecToMerge);\n await gitRetry(() => git.merge(['FETCH_HEAD']));\n } catch (err) {\n logger.debug(\n {\n baseBranch: config.currentBranch,\n baseSha: config.currentBranchSha,\n refSpecToMerge,\n status,\n err,\n },\n 'mergeLocally error',\n );\n throw err;\n }\n}\n\nexport async function mergeBranch(branchName: string): Promise<void> {\n let status: StatusResult | undefined;\n try {\n await syncGit();\n await writeGitAuthor();\n await git.reset(ResetMode.HARD);\n await gitRetry(() =>\n git.checkout(['-B', branchName, 'origin/' + branchName]),\n );\n await gitRetry(() =>\n git.checkout([\n '-B',\n config.currentBranch,\n 'origin/' + config.currentBranch,\n ]),\n );\n status = await git.status();\n await gitRetry(() => git.merge(['--ff-only', branchName]));\n await gitRetry(() => git.push('origin', config.currentBranch));\n incLimitedValue('Commits');\n } catch (err) {\n logger.debug(\n {\n baseBranch: config.currentBranch,\n baseSha: config.currentBranchSha,\n branchName,\n branchSha: getBranchCommit(branchName),\n status,\n err,\n },\n 'mergeBranch error',\n );\n throw err;\n }\n}\n\nasync function getCommitDate(ref: LongCommitSha | string): Promise<DateTime> {\n const output = await git.show(['-s', '--format=%cI', ref]);\n return DateTime.fromISO(output.trim()).toUTC();\n}\n\nexport async function getBranchLastCommitTime(\n branchName: string,\n): Promise<Date> {\n await syncGit();\n try {\n const time = await getCommitDate('origin/' + branchName);\n return time.toJSDate();\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore next 3 -- TODO: add test */\n if (errChecked) {\n throw errChecked;\n }\n return new Date();\n }\n}\n\nexport function getBranchFiles(branchName: string): Promise<string[] | null> {\n return getBranchFilesFromRef(`origin/${branchName}`);\n}\n\nexport function getBranchFilesFromCommit(\n referenceCommit: LongCommitSha,\n): Promise<string[] | null> {\n return getBranchFilesFromRef(referenceCommit);\n}\n\nasync function getBranchFilesFromRef(\n refName: string,\n): Promise<string[] | null> {\n await syncGit();\n try {\n const diff = await gitRetry(() =>\n git.diffSummary([refName, `${refName}^`]),\n );\n return diff.files.map((file) => file.file);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.warn({ err }, 'getBranchFilesFromRef error');\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n return null;\n }\n}\n\nexport async function getFile(\n filePath: string,\n branchName?: string,\n): Promise<string | null> {\n await syncGit();\n try {\n const content = await git.show([\n 'origin/' + (branchName ?? config.currentBranch) + ':' + filePath,\n ]);\n\n logWarningIfUnicodeHiddenCharactersInPackageFile(filePath, content);\n\n return content;\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n return null;\n }\n}\n\nexport async function getFiles(\n fileNames: string[],\n): Promise<Record<string, string | null>> {\n const fileContentMap: Record<string, string | null> = {};\n\n for (const fileName of fileNames) {\n fileContentMap[fileName] = await getFile(fileName);\n }\n\n return fileContentMap;\n}\n\nexport async function hasDiff(\n sourceRef: string,\n targetRef: string,\n): Promise<boolean> {\n await syncGit();\n try {\n return (\n (await gitRetry(() => git.diff([sourceRef, targetRef, '--']))) !== ''\n );\n } catch {\n return true;\n }\n}\n\nasync function handleCommitAuth(localDir: string): Promise<void> {\n if (!privateKeySet) {\n await writePrivateKey();\n privateKeySet = true;\n }\n await configSigningKey(localDir);\n await writeGitAuthor();\n}\n\n/**\n *\n * Prepare local branch with commit\n *\n * 0. Hard reset\n * 1. Creates local branch with `origin/` prefix\n * 2. Perform `git add` (respecting mode) and `git remove` for each file\n * 3. Perform commit\n * 4. Check whether resulting commit is empty or not (due to .gitignore)\n * 5. If not empty, return commit info for further processing\n *\n */\nexport async function prepareCommit({\n branchName,\n files,\n message,\n force = false,\n}: CommitFilesConfig): Promise<CommitResult | null> {\n const localDir = GlobalConfig.get('localDir')!;\n await syncGit();\n logger.debug(`Preparing files for committing to branch ${branchName}`);\n await handleCommitAuth(localDir);\n try {\n await git.reset(ResetMode.HARD);\n await git.raw(['clean', '-fd']);\n const parentCommitSha = config.currentBranchSha;\n await gitRetry(() =>\n git.checkout(['-B', branchName, 'origin/' + config.currentBranch]),\n );\n const deletedFiles: string[] = [];\n const addedModifiedFiles: string[] = [];\n const ignoredFiles: string[] = [];\n for (const file of files) {\n const fileName = file.path;\n if (file.type === 'deletion') {\n try {\n await git.rm([fileName]);\n deletedFiles.push(fileName);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n logger.trace({ err, fileName }, 'Cannot delete file');\n ignoredFiles.push(fileName);\n }\n } else {\n if (await isDirectory(upath.join(localDir, fileName))) {\n // This is usually a git submodule update\n logger.trace({ fileName }, 'Adding directory commit');\n } else if (file.contents === null) {\n continue;\n } else {\n let contents: Buffer;\n /* v8 ignore else -- TODO: add test #40625 */\n if (typeof file.contents === 'string') {\n contents = Buffer.from(file.contents);\n } else {\n contents = file.contents;\n }\n // some file systems including Windows don't support the mode\n // so the index should be manually updated after adding the file\n if (file.isSymlink) {\n await fs.symlink(file.contents, upath.join(localDir, fileName));\n } else {\n await fs.outputFile(upath.join(localDir, fileName), contents, {\n mode: file.isExecutable ? 0o777 : 0o666,\n });\n }\n }\n try {\n /* v8 ignore next -- TODO: add test #40625 */\n const addParams =\n fileName === getConfigFileNames()[0] ? ['-f', fileName] : fileName;\n await git.add(addParams);\n if (file.isExecutable) {\n await git.raw(['update-index', '--chmod=+x', fileName]);\n }\n addedModifiedFiles.push(fileName);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (\n !err.message.includes(\n 'The following paths are ignored by one of your .gitignore files',\n )\n ) {\n throw err;\n }\n logger.debug(`Cannot commit ignored file: ${fileName}`);\n ignoredFiles.push(file.path);\n }\n }\n }\n\n const commitOptions: Options = {};\n if (getNoVerify().includes('commit')) {\n commitOptions['--no-verify'] = null;\n }\n\n const commitRes = await git.commit(message, [], commitOptions);\n if (\n isNonEmptyObject(commitRes.summary) &&\n commitRes.summary.changes === 0 &&\n commitRes.summary.insertions === 0 &&\n commitRes.summary.deletions === 0\n ) {\n logger.warn({ commitRes }, 'Detected empty commit - aborting git push');\n return null;\n }\n logger.debug(\n { deletedFiles, ignoredFiles, result: commitRes },\n `git commit`,\n );\n if (!force && !(await hasDiff('HEAD', `origin/${branchName}`))) {\n logger.debug(\n { branchName, deletedFiles, addedModifiedFiles, ignoredFiles },\n 'No file changes detected. Skipping commit',\n );\n return null;\n }\n\n const commitSha = (\n await git.revparse([branchName])\n ).trim() as LongCommitSha;\n const result: CommitResult = {\n parentCommitSha,\n commitSha,\n files: files.filter((fileChange) => {\n if (fileChange.type === 'deletion') {\n return deletedFiles.includes(fileChange.path);\n }\n return addedModifiedFiles.includes(fileChange.path);\n }),\n };\n\n return result;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n return handleCommitError(err, branchName, files);\n }\n}\n\nexport async function pushCommit({\n sourceRef,\n targetRef,\n files,\n pushOptions,\n}: PushFilesConfig): Promise<boolean> {\n await syncGit();\n logger.debug(`Pushing refSpec ${sourceRef}:${targetRef ?? sourceRef}`);\n let result = false;\n try {\n const gitOptions: TaskOptions = {\n '--force-with-lease': null,\n '-u': null,\n };\n if (getNoVerify().includes('push')) {\n gitOptions['--no-verify'] = null;\n }\n if (pushOptions) {\n gitOptions['--push-option'] = pushOptions;\n }\n\n const pushRes = await gitRetry(() =>\n git.push('origin', `${sourceRef}:${targetRef ?? sourceRef}`, gitOptions),\n );\n delete pushRes.repo;\n logger.debug({ result: pushRes }, 'git push');\n incLimitedValue('Commits');\n incCountValue('HourlyCommits');\n result = true;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n handleCommitError(err, sourceRef, files);\n }\n return result;\n}\n\nexport async function fetchBranch(\n branchName: string,\n): Promise<LongCommitSha | null> {\n await syncGit();\n logger.debug(`Fetching branch ${branchName}`);\n try {\n const ref = `refs/heads/${branchName}:refs/remotes/origin/${branchName}`;\n await gitRetry(() => git.pull(['origin', ref, '--force']));\n const commit = (await git.revparse([branchName])).trim() as LongCommitSha;\n config.branchCommits[branchName] = commit;\n config.branchIsModified[branchName] = false;\n return commit;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n return handleCommitError(err, branchName);\n }\n}\n\nexport async function commitFiles(\n commitConfig: CommitFilesConfig,\n): Promise<LongCommitSha | null> {\n try {\n const commitResult = await prepareCommit(commitConfig);\n if (commitResult) {\n const pushResult = await pushCommit({\n sourceRef: commitConfig.branchName,\n files: commitConfig.files,\n });\n // v8 ignore else -- TODO: add test #40625\n if (pushResult) {\n const { branchName } = commitConfig;\n const { commitSha } = commitResult;\n config.branchCommits[branchName] = commitSha;\n config.branchIsModified[branchName] = false;\n return commitSha;\n }\n }\n return null;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message.includes('[rejected] (stale info)')) {\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n}\n\nexport function getUrl({\n protocol,\n auth,\n hostname,\n host,\n repository,\n}: {\n protocol?: GitProtocol;\n auth?: string;\n hostname?: string;\n host?: string;\n repository: string;\n}): string {\n if (protocol === 'ssh') {\n // TODO: types (#22198)\n return `git@${hostname!}:${repository}.git`;\n }\n return URL.format({\n protocol: protocol ?? 'https',\n auth,\n hostname,\n host,\n pathname: repository + '.git',\n });\n}\n\nlet remoteRefsExist = false;\n\n/**\n *\n * Non-branch refs allow us to store git objects without triggering CI pipelines.\n * It's useful for API-based branch rebasing.\n *\n * @see https://stackoverflow.com/questions/63866947/pushing-git-non-branch-references-to-a-remote/63868286\n *\n */\nexport async function pushCommitToRenovateRef(\n commitSha: string,\n refName: string,\n): Promise<void> {\n const fullRefName = `refs/renovate/branches/${refName}`;\n await git.raw(['update-ref', fullRefName, commitSha]);\n await git.push(['--force', 'origin', fullRefName]);\n remoteRefsExist = true;\n}\n\n/**\n *\n * Removes all remote \"refs/renovate/branches/*\" refs in two steps:\n *\n * Step 1: list refs\n *\n * $ git ls-remote origin \"refs/renovate/branches/*\"\n *\n * > cca38e9ea6d10946bdb2d0ca5a52c205783897aa refs/renovate/branches/foo\n * > 29ac154936c880068994e17eb7f12da7fdca70e5 refs/renovate/branches/bar\n * > 3fafaddc339894b6d4f97595940fd91af71d0355 refs/renovate/branches/baz\n * > ...\n *\n * Step 2:\n *\n * $ git push --delete origin refs/renovate/branches/foo refs/renovate/branches/bar refs/renovate/branches/baz\n *\n * If Step 2 fails because the repo doesn't allow bulk changes, we'll remove them one by one instead:\n *\n * $ git push --delete origin refs/renovate/branches/foo\n * $ git push --delete origin refs/renovate/branches/bar\n * $ git push --delete origin refs/renovate/branches/baz\n */\nexport async function clearRenovateRefs(): Promise<void> {\n if (!gitInitialized || !remoteRefsExist) {\n return;\n }\n\n logger.debug(`Cleaning up Renovate refs: refs/renovate/branches/*`);\n const renovateRefs: string[] = [];\n\n try {\n const rawOutput = await git.listRemote([\n config.url,\n 'refs/renovate/branches/*',\n ]);\n const refs = rawOutput\n .split(newlineRegex)\n .map((line) => line.replace(regEx(/[0-9a-f]+\\s+/i), '').trim())\n .filter((line) => line.startsWith('refs/renovate/branches/'));\n renovateRefs.push(...refs);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.warn({ err }, `Renovate refs cleanup error`);\n }\n\n // v8 ignore else -- TODO: add test #40625\n if (renovateRefs.length) {\n try {\n const pushOpts = ['--delete', 'origin', ...renovateRefs];\n await git.push(pushOpts);\n } catch (err) {\n /* v8 ignore else -- TODO: add test #40625 */\n if (bulkChangesDisallowed(err)) {\n for (const ref of renovateRefs) {\n try {\n const pushOpts = ['--delete', 'origin', ref];\n await git.push(pushOpts);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug({ err }, 'Error deleting \"refs/renovate/branches/*\"');\n break;\n }\n }\n } else {\n logger.warn({ err }, 'Error deleting \"refs/renovate/branches/*\"');\n }\n }\n }\n\n remoteRefsExist = false;\n}\n\nconst treeItemRegex = regEx(\n /^(?<mode>\\d{6})\\s+(?<type>blob|tree|commit)\\s+(?<sha>[0-9a-f]{40})\\s+(?<path>.*)$/,\n);\n\nconst treeShaRegex = regEx(/tree\\s+(?<treeSha>[0-9a-f]{40})\\s*/);\n\n/**\n *\n * Obtain top-level items of commit tree.\n * We don't need subtree items, so here are 2 steps only.\n *\n * Step 1: commit SHA -> tree SHA\n *\n * $ git cat-file -p <commit-sha>\n *\n * > tree <tree-sha>\n * > parent 59b8b0e79319b7dc38f7a29d618628f3b44c2fd7\n * > ...\n *\n * Step 2: tree SHA -> tree items (top-level)\n *\n * $ git cat-file -p <tree-sha>\n *\n * > 040000 tree 389400684d1f004960addc752be13097fe85d776 src\n * > ...\n * > 100644 blob 7d2edde437ad4e7bceb70dbfe70e93350d99c98b package.json\n *\n */\nexport async function listCommitTree(\n commitSha: LongCommitSha,\n): Promise<TreeItem[]> {\n const commitOutput = await git.catFile(['-p', commitSha]);\n /* v8 ignore next -- will never happen */\n const { treeSha } = treeShaRegex.exec(commitOutput)?.groups ?? {};\n const contents = await git.catFile(['-p', treeSha]);\n const lines = contents.split(newlineRegex);\n const result: TreeItem[] = [];\n for (const line of lines) {\n const matchGroups = treeItemRegex.exec(line)?.groups;\n if (matchGroups) {\n const { path, mode, type, sha } = matchGroups;\n result.push({ path, mode, type, sha: sha as LongCommitSha });\n }\n }\n return result;\n}\n\nasync function localBranchExists(branchName: string): Promise<boolean> {\n await syncGit();\n const localBranches = await git.branchLocal();\n return localBranches.all.includes(branchName);\n}\n\n/**\n * Synchronize a forked branch with its upstream counterpart.\n *\n * syncForkWithUpstream updates the fork's branch, to match the corresponding branch in the upstream repository.\n * The steps are:\n * 1. Check if the branch exists locally.\n * 2. If the branch exists locally: checkout the local branch.\n * 3. If the branch does _not_ exist locally: checkout the upstream branch.\n * 4. Reset the local branch to match the upstream branch.\n * 5. Force push the (updated) local branch to the origin repository.\n *\n * @param {string} branchName - The name of the branch to synchronize.\n * @returns A promise that resolves to True if the synchronization is successful, or `false` if an error occurs.\n */\nexport async function syncForkWithUpstream(branchName: string): Promise<void> {\n if (!config.upstreamUrl) {\n return;\n }\n logger.debug(\n `Synchronizing fork with \"${RENOVATE_FORK_UPSTREAM}\" remote for branch ${branchName}`,\n );\n const remotes = await getRemotes();\n /* v8 ignore if -- this should not be possible if upstreamUrl exists */\n if (!remotes.some((r) => r === RENOVATE_FORK_UPSTREAM)) {\n throw new Error('No upstream remote exists, cannot sync fork');\n }\n try {\n await git.fetch([RENOVATE_FORK_UPSTREAM]);\n if (await localBranchExists(branchName)) {\n await checkoutBranch(branchName);\n } else {\n await checkoutBranchFromRemote(branchName, RENOVATE_FORK_UPSTREAM);\n }\n await resetHardFromRemote(`${RENOVATE_FORK_UPSTREAM}/${branchName}`);\n await forcePushToRemote(branchName, 'origin');\n } catch (err) /* v8 ignore next -- shouldn't happen */ {\n logger.error({ err }, 'Error synchronizing fork');\n throw new Error(UNKNOWN_ERROR);\n }\n}\n\nexport async function getRemotes(): Promise<string[]> {\n logger.debug('git.getRemotes()');\n try {\n await syncGit();\n const remotes = await git.getRemotes();\n logger.debug(`Found remotes: ${remotes.map((r) => r.name).join(', ')}`);\n return remotes.map((remote) => remote.name);\n } catch (err) /* v8 ignore next */ {\n logger.error({ err }, 'Error getting remotes');\n throw err;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../lib/util/git/index.ts"],"sourcesContent":["import URL from 'node:url';\nimport { isBoolean, isNonEmptyObject, isString } from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport { DateTime } from 'luxon';\nimport semver from 'semver';\nimport type { Options, TaskOptions } from 'simple-git';\nimport { ResetMode, simpleGit } from 'simple-git';\nimport { setTimeout } from 'timers/promises';\nimport upath from 'upath';\nimport { getConfigFileNames } from '../../config/app-strings.ts';\nimport { GlobalConfig } from '../../config/global.ts';\nimport type { RenovateConfig } from '../../config/types.ts';\nimport {\n CONFIG_VALIDATION,\n INVALID_PATH,\n REPOSITORY_CHANGED,\n REPOSITORY_DISABLED,\n REPOSITORY_EMPTY,\n SYSTEM_INSUFFICIENT_DISK_SPACE,\n TEMPORARY_ERROR,\n UNKNOWN_ERROR,\n} from '../../constants/error-messages.ts';\nimport { instrument } from '../../instrumentation/index.ts';\nimport { withInstrumenting } from '../../instrumentation/with-instrumenting.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport type { GitProtocol } from '../../types/git.ts';\nimport { incCountValue, incLimitedValue } from '../../workers/global/limits.ts';\nimport { getCache } from '../cache/repository/index.ts';\nimport { getEnv } from '../env.ts';\nimport { getChildEnv } from '../exec/utils.ts';\nimport { newlineRegex, regEx } from '../regex.ts';\nimport { matchRegexOrGlobList } from '../string-match.ts';\nimport { logWarningIfUnicodeHiddenCharactersInPackageFile } from '../unicode.ts';\nimport { getGitEnvironmentVariables } from './auth.ts';\nimport { parseGitAuthor } from './author.ts';\nimport {\n getCachedBehindBaseResult,\n setCachedBehindBaseResult,\n} from './behind-base-branch-cache.ts';\nimport { getNoVerify, simpleGitConfig } from './config.ts';\nimport {\n getCachedConflictResult,\n setCachedConflictResult,\n} from './conflicts-cache.ts';\nimport {\n bulkChangesDisallowed,\n checkForPlatformFailure,\n handleCommitError,\n} from './error.ts';\nimport type { InstrumentedSimpleGit } from './instrument.ts';\nimport { instrumentGit } from './instrument.ts';\nimport {\n getCachedModifiedResult,\n setCachedModifiedResult,\n} from './modified-cache.ts';\nimport { configSigningKey, writePrivateKey } from './private-key.ts';\nimport type {\n CommitFilesConfig,\n CommitResult,\n LocalConfig,\n LongCommitSha,\n PushFilesConfig,\n StatusResult,\n StorageConfig,\n TreeItem,\n} from './types.ts';\n\nexport { setNoVerify } from './config.ts';\nexport { setPrivateKey } from './private-key.ts';\n\n// Retry parameters\nconst retryCount = 5;\nconst delaySeconds = 3;\nconst delayFactor = 2;\n\nexport const RENOVATE_FORK_UPSTREAM = 'renovate-fork-upstream';\n\n// A generic wrapper for simpleGit.* calls to make them more fault-tolerant\nexport async function gitRetry<T>(gitFunc: () => Promise<T>): Promise<T> {\n let round = 0;\n let lastError: Error | undefined;\n\n while (round <= retryCount) {\n if (round > 0) {\n logger.debug(`gitRetry round ${round}`);\n }\n try {\n const res = await gitFunc();\n if (round > 1) {\n logger.debug('Successful retry of git function');\n }\n return res;\n } catch (err) {\n lastError = err;\n logger.debug({ err }, `Git function thrown`);\n // Try to transform the Error to ExternalHostError\n const errChecked = checkForPlatformFailure(err);\n if (errChecked instanceof ExternalHostError) {\n logger.debug(\n { err: errChecked },\n `ExternalHostError thrown in round ${\n round + 1\n } of ${retryCount} - retrying in the next round`,\n );\n } else {\n throw err;\n }\n }\n\n const nextDelay = delayFactor ^ ((round - 1) * delaySeconds);\n logger.trace({ nextDelay }, `Delay next round`);\n await setTimeout(1000 * nextDelay);\n\n round++;\n }\n\n throw lastError!;\n}\n\nasync function isDirectory(dir: string): Promise<boolean> {\n try {\n return (await fs.stat(dir)).isDirectory();\n } catch {\n return false;\n }\n}\n\nasync function getDefaultBranch(git: InstrumentedSimpleGit): Promise<string> {\n logger.debug('getDefaultBranch()');\n // see https://stackoverflow.com/a/62352647/3005034\n try {\n let res = await git.raw(['rev-parse', '--abbrev-ref', 'origin/HEAD']);\n /* v8 ignore next -- TODO: add test #40625 */\n if (!res) {\n logger.debug('Could not determine default branch using git rev-parse');\n const headPrefix = 'HEAD branch: ';\n res = (await git.raw(['remote', 'show', 'origin']))\n .split('\\n')\n .map((line) => line.trim())\n .find((line) => line.startsWith(headPrefix))!\n .replace(headPrefix, '');\n }\n\n return res.replace('origin/', '').trim();\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug({ err }, 'Error getting default branch');\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n if (\n err.message.startsWith(\n 'fatal: ref refs/remotes/origin/HEAD is not a symbolic ref',\n )\n ) {\n throw new Error(REPOSITORY_EMPTY);\n }\n if (err.message.includes(\"fatal: ambiguous argument 'origin/HEAD'\")) {\n logger.warn('Error getting default branch');\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n}\n\nlet config: LocalConfig = {} as any;\n\n// TODO: can be undefined\nlet git: InstrumentedSimpleGit;\nlet gitInitialized: boolean;\nlet submodulesInitizialized: boolean;\n\nlet privateKeySet = false;\n\nexport const GIT_MINIMUM_VERSION = '2.33.0'; // git show-current\n\nexport async function validateGitVersion(): Promise<boolean> {\n let version: string | undefined;\n const globalGit = instrumentGit(simpleGit());\n try {\n const { major, minor, patch, installed } = await globalGit.version();\n /* v8 ignore if -- TODO: add test #40625 */\n if (!installed) {\n logger.error('Git not installed');\n return false;\n }\n version = `${major}.${minor}.${patch}`;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.error({ err }, 'Error fetching git version');\n return false;\n }\n /* v8 ignore if -- TODO: add test #40625 */\n if (!(version && semver.gte(version, GIT_MINIMUM_VERSION))) {\n logger.error(\n { detectedVersion: version, minimumVersion: GIT_MINIMUM_VERSION },\n 'Git version needs upgrading',\n );\n return false;\n }\n logger.debug(`Found valid git version: ${version}`);\n return true;\n}\n\nasync function fetchBranchCommits(preferUpstream = true): Promise<void> {\n config.branchCommits = {};\n const url =\n preferUpstream && config.upstreamUrl ? config.upstreamUrl : config.url;\n logger.debug(`fetchBranchCommits(): url=${url}`);\n const opts = ['ls-remote', '--heads', url];\n if (config.extraCloneOpts) {\n Object.entries(config.extraCloneOpts).forEach((e) =>\n // TODO: types (#22198)\n opts.unshift(e[0], `${e[1]!}`),\n );\n }\n try {\n const lsRemoteRes = await gitRetry(() => git.raw(opts));\n logger.trace({ lsRemoteRes }, 'git ls-remote result');\n lsRemoteRes\n .split(newlineRegex)\n .filter(Boolean)\n .map((line) => line.trim().split(regEx(/\\s+/)))\n .forEach(([sha, ref]) => {\n config.branchCommits[ref.replace('refs/heads/', '')] =\n sha as LongCommitSha;\n });\n logger.trace({ branchCommits: config.branchCommits }, 'branch commits');\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n logger.debug({ err }, 'git error');\n if (err.message?.includes('Please ask the owner to check their account')) {\n throw new Error(REPOSITORY_DISABLED);\n }\n throw err;\n }\n}\n\nexport async function fetchRevSpec(revSpec: string): Promise<void> {\n await gitRetry(() => git.fetch(['origin', revSpec]));\n}\n\nexport async function initRepo(args: StorageConfig): Promise<void> {\n config = { ...args } as any;\n config.ignoredAuthors = [];\n config.additionalBranches = [];\n config.branchIsModified = {};\n // TODO: safe to pass all env variables? use `getChildEnv` instead?\n git = instrumentGit(\n simpleGit(GlobalConfig.get('localDir'), simpleGitConfig()).env({\n ...getEnv(),\n LANG: 'C.UTF-8',\n LC_ALL: 'C.UTF-8',\n }),\n );\n gitInitialized = false;\n submodulesInitizialized = false;\n await fetchBranchCommits();\n}\n\nasync function resetToBranch(branchName: string): Promise<void> {\n logger.debug(`resetToBranch(${branchName})`);\n await git.raw(['reset', '--hard']);\n await gitRetry(() => git.checkout(branchName));\n await git.raw(['reset', '--hard', 'origin/' + branchName]);\n await git.raw(['clean', '-fd']);\n}\n\n/* v8 ignore next -- TODO: add test #40625 */\nexport async function resetToCommit(commit: LongCommitSha): Promise<void> {\n logger.debug(`resetToCommit(${commit})`);\n await git.raw(['reset', '--hard', commit]);\n}\n\nasync function deleteLocalBranch(branchName: string): Promise<void> {\n await git.branch(['-D', branchName]);\n}\n\nasync function cleanLocalBranches(): Promise<void> {\n const existingBranches = (await git.raw(['branch']))\n .split(newlineRegex)\n .map((branch) => branch.trim())\n .filter((branch) => branch.length > 0 && !branch.startsWith('* '));\n logger.debug({ existingBranches });\n for (const branchName of existingBranches) {\n await deleteLocalBranch(branchName);\n }\n}\n\nexport function setGitAuthor(gitAuthor: string | undefined): void {\n const gitAuthorParsed = parseGitAuthor(\n gitAuthor ?? 'Renovate Bot <renovate@whitesourcesoftware.com>',\n );\n if (!gitAuthorParsed) {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'None';\n error.validationError = 'Invalid gitAuthor';\n error.validationMessage = `\\`gitAuthor\\` is not parsed as valid RFC5322 format: \\`${gitAuthor!}\\``;\n throw error;\n }\n config.gitAuthorName = gitAuthorParsed.name;\n config.gitAuthorEmail = gitAuthorParsed.address;\n}\n\nexport async function writeGitAuthor(): Promise<void> {\n const { gitAuthorName, gitAuthorEmail, writeGitDone } = config;\n /* v8 ignore if -- TODO: add test #40625 */\n if (writeGitDone) {\n return;\n }\n config.writeGitDone = true;\n try {\n // v8 ignore else -- TODO: add test #40625\n if (gitAuthorName) {\n logger.debug(`Setting git author name: ${gitAuthorName}`);\n await git.addConfig('user.name', gitAuthorName);\n }\n // v8 ignore else -- TODO: add test #40625\n if (gitAuthorEmail) {\n logger.debug(`Setting git author email: ${gitAuthorEmail}`);\n await git.addConfig('user.email', gitAuthorEmail);\n }\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n logger.debug(\n { err, gitAuthorName, gitAuthorEmail },\n 'Error setting git author config',\n );\n throw new Error(TEMPORARY_ERROR);\n }\n}\n\nexport function setUserRepoConfig({\n gitIgnoredAuthors,\n gitAuthor,\n}: RenovateConfig): void {\n config.ignoredAuthors = gitIgnoredAuthors ?? [];\n setGitAuthor(gitAuthor);\n}\n\nexport async function getSubmodules(): Promise<string[]> {\n try {\n return (\n (await git.raw([\n 'config',\n '--file',\n '.gitmodules',\n '--get-regexp',\n '\\\\.path',\n ])) || ''\n )\n .trim()\n .split(regEx(/[\\n\\s]/))\n .filter((_e: string, i: number) => i % 2);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.warn({ err }, 'Error getting submodules');\n return [];\n }\n}\n\nexport async function cloneSubmodules(\n shouldClone: boolean,\n cloneSubmodulesFilter: string[] | undefined,\n): Promise<void> {\n if (!shouldClone || submodulesInitizialized) {\n return;\n }\n submodulesInitizialized = true;\n const gitEnv = getChildEnv({ env: getGitEnvironmentVariables() });\n await syncGit();\n const submodules = await getSubmodules();\n for (const submodule of submodules) {\n if (!matchRegexOrGlobList(submodule, cloneSubmodulesFilter ?? ['*'])) {\n logger.debug(\n { cloneSubmodulesFilter },\n `Skipping submodule ${submodule}`,\n );\n continue;\n }\n try {\n logger.debug(`Cloning git submodule at ${submodule}`);\n await gitRetry(() =>\n git.env(gitEnv).submoduleUpdate(['--init', '--recursive', submodule]),\n );\n } catch (err) {\n logger.warn({ err, submodule }, `Unable to initialise git submodule`);\n }\n }\n}\n\nexport function isCloned(): boolean {\n return gitInitialized;\n}\n\nexport const syncGit = withInstrumenting(\n { name: 'syncGit' },\n async function (): Promise<void> {\n if (gitInitialized) {\n /* v8 ignore if -- TODO: add test #40625 */\n if (getEnv().RENOVATE_X_CLEAR_HOOKS) {\n await git.raw(['config', 'core.hooksPath', '/dev/null']);\n }\n return;\n }\n /* v8 ignore if -- TODO: add test #40625 */\n if (GlobalConfig.get('platform') === 'local') {\n throw new Error('Cannot sync git when platform=local');\n }\n gitInitialized = true;\n const localDir = GlobalConfig.get('localDir')!;\n logger.debug(`syncGit(): Initializing git repository into ${localDir}`);\n const gitHead = upath.join(localDir, '.git/HEAD');\n let clone = true;\n\n if (await fs.pathExists(gitHead)) {\n await instrument('fetch', async () => {\n logger.debug(\n `syncGit(): Found existing git repository, attempting git fetch`,\n );\n try {\n await git.raw(['remote', 'set-url', 'origin', config.url]);\n const fetchStart = Date.now();\n await gitRetry(() => git.fetch(['--prune', 'origin']));\n config.currentBranch =\n config.currentBranch || (await getDefaultBranch(git));\n await resetToBranch(config.currentBranch);\n await cleanLocalBranches();\n const durationMs = Math.round(Date.now() - fetchStart);\n logger.info({ durationMs }, 'git fetch completed');\n clone = false;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message === REPOSITORY_EMPTY) {\n throw err;\n }\n logger.info({ err }, 'git fetch error, falling back to git clone');\n }\n });\n }\n if (clone) {\n await instrument('clone', async () => {\n const cloneStart = Date.now();\n try {\n const opts: string[] = [];\n if (config.defaultBranch) {\n opts.push('-b', config.defaultBranch);\n }\n if (config.fullClone) {\n logger.debug('Performing full clone');\n } else {\n logger.debug('Performing blobless clone');\n opts.push('--filter=blob:none');\n }\n if (config.extraCloneOpts) {\n Object.entries(config.extraCloneOpts).forEach((e) =>\n // TODO: types (#22198)\n opts.push(e[0], `${e[1]!}`),\n );\n }\n const emptyDirAndClone = async (): Promise<void> => {\n await instrument(`fs.emptyDir(${localDir})`, () =>\n fs.emptyDir(localDir),\n );\n await git.clone(config.url, '.', opts);\n };\n await gitRetry(() =>\n instrument('emptyDirAndClone', emptyDirAndClone),\n );\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug({ err }, 'git clone error');\n if (err.message?.includes('No space left on device')) {\n throw new Error(SYSTEM_INSUFFICIENT_DISK_SPACE);\n }\n if (err.message === REPOSITORY_EMPTY) {\n throw err;\n }\n throw new ExternalHostError(err, 'git');\n }\n const durationMs = Math.round(Date.now() - cloneStart);\n logger.debug({ durationMs }, 'git clone completed');\n });\n }\n try {\n config.currentBranchSha = (\n await git.raw(['rev-parse', 'HEAD'])\n ).trim() as LongCommitSha;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message?.includes('fatal: not a git repository')) {\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n // This will only happen now if set in global config\n await instrument('cloneSubmodules', () =>\n cloneSubmodules(!!config.cloneSubmodules, config.cloneSubmodulesFilter),\n );\n try {\n const latestCommit = (await git.log({ n: 1 })).latest;\n logger.debug({ latestCommit }, 'latest repository commit');\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n if (err.message.includes('does not have any commits yet')) {\n throw new Error(REPOSITORY_EMPTY);\n }\n logger.warn({ err }, 'Cannot retrieve latest commit');\n }\n config.currentBranch =\n config.currentBranch ??\n config.defaultBranch ??\n (await getDefaultBranch(git));\n /* v8 ignore next -- TODO: add test #40625 */\n delete getCache()?.semanticCommits;\n\n // If upstreamUrl is set then the bot is running in fork mode\n // The \"upstream\" remote is the original repository which was forked from\n if (config.upstreamUrl) {\n const { upstreamUrl } = config;\n await instrument('sync with upstreamUrl', async () => {\n logger.debug(\n `Bringing default branch up-to-date with ${RENOVATE_FORK_UPSTREAM}, to get latest config`,\n );\n // Add remote if it does not exist\n const remotes = await git.getRemotes(true);\n // v8 ignore else -- TODO: add test #40625\n if (!remotes.some((remote) => remote.name === RENOVATE_FORK_UPSTREAM)) {\n logger.debug(`Adding remote ${RENOVATE_FORK_UPSTREAM}`);\n await git.addRemote(RENOVATE_FORK_UPSTREAM, upstreamUrl);\n }\n await syncForkWithUpstream(config.currentBranch);\n await fetchBranchCommits(false);\n });\n }\n\n config.currentBranchSha = (\n await git.revparse('HEAD')\n ).trim() as LongCommitSha;\n logger.debug(`Current branch SHA: ${config.currentBranchSha}`);\n },\n);\n\nexport async function getRepoStatus(path?: string): Promise<StatusResult> {\n if (isString(path)) {\n const localDir = GlobalConfig.get('localDir');\n const localPath = upath.resolve(localDir, path);\n if (!localPath.startsWith(upath.resolve(localDir))) {\n logger.warn(\n { localPath, localDir },\n 'Preventing access to file outside the local directory',\n );\n throw new Error(INVALID_PATH);\n }\n }\n\n await syncGit();\n return git.status(path ? [path] : []);\n}\n\nexport function branchExists(branchName: string): boolean {\n return !!config.branchCommits[branchName];\n}\n\n// Return the commit SHA for a branch\nexport function getBranchCommit(branchName: string): LongCommitSha | null {\n return config.branchCommits?.[branchName] || null;\n}\n\n// Return the date of the latest commit for a branch\nexport async function getBranchUpdateDate(\n branchName: string,\n): Promise<DateTime | null> {\n const branchSha = config.branchCommits[branchName];\n if (!branchSha) {\n return null;\n }\n try {\n return await getCommitDate(branchSha);\n } catch (err) {\n logger.debug({ err, branchName }, 'Error getting branch update date');\n return null;\n }\n}\n\nexport async function getCommitMessages(): Promise<string[]> {\n logger.debug('getCommitMessages');\n // v8 ignore else -- TODO: add test #40625\n if (GlobalConfig.get('platform') !== 'local') {\n await syncGit();\n }\n try {\n const res = await git.log({\n n: 20,\n format: { message: '%s' },\n '--no-merges': null,\n });\n return res.all.map((commit) => commit.message);\n } catch /* v8 ignore next -- TODO: add test #40625 */ {\n return [];\n }\n}\n\nexport async function checkoutBranch(\n branchName: string,\n): Promise<LongCommitSha> {\n logger.debug(`Setting current branch to ${branchName}`);\n await syncGit();\n try {\n await gitRetry(() =>\n git.checkout(\n submodulesInitizialized\n ? ['-f', '--recurse-submodules', branchName, '--']\n : ['-f', branchName, '--'],\n ),\n );\n config.currentBranch = branchName;\n config.currentBranchSha = (\n await git.raw(['rev-parse', 'HEAD'])\n ).trim() as LongCommitSha;\n const latestCommitDate = await getCommitDate(config.currentBranchSha);\n // v8 ignore else -- TODO: add test #40625\n if (latestCommitDate) {\n logger.debug(\n { branchName, latestCommitDate, sha: config.currentBranchSha },\n 'latest commit',\n );\n }\n await git.reset(ResetMode.HARD);\n return config.currentBranchSha;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n if (err.message?.includes('fatal: ambiguous argument')) {\n logger.warn({ err }, 'Failed to checkout branch');\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n}\n\nexport async function checkoutBranchFromRemote(\n branchName: string,\n remoteName: string,\n): Promise<LongCommitSha> {\n logger.debug(`Checking out branch ${branchName} from remote ${remoteName}`);\n await syncGit();\n try {\n await gitRetry(() =>\n git.checkoutBranch(branchName, `${remoteName}/${branchName}`),\n );\n config.currentBranch = branchName;\n config.currentBranchSha = (\n await git.revparse('HEAD')\n ).trim() as LongCommitSha;\n logger.debug(`Checked out branch ${branchName} from remote ${remoteName}`);\n config.branchCommits[branchName] = config.currentBranchSha;\n return config.currentBranchSha;\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n if (err.message?.includes('fatal: ambiguous argument')) {\n logger.warn({ err }, 'Failed to checkout branch');\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n}\n\nexport async function resetHardFromRemote(\n remoteAndBranch: string,\n): Promise<void> {\n try {\n const resetLog = await git.reset(['--hard', remoteAndBranch]);\n logger.debug({ resetLog }, 'git reset log');\n } catch (err) {\n logger.error({ err }, 'Error during git reset --hard');\n throw err;\n }\n}\n\nexport async function forcePushToRemote(\n branchName: string,\n remote: string,\n): Promise<void> {\n try {\n const pushLog = await git.push([remote, branchName, '--force']);\n logger.debug({ pushLog }, 'git push log');\n } catch (err) {\n logger.error({ err }, 'Error during git push --force');\n throw err;\n }\n}\n\nexport async function getFileList(): Promise<string[]> {\n await syncGit();\n const branch = config.currentBranch;\n let files: string;\n try {\n files = await git.raw(['ls-tree', '-r', `refs/heads/${branch}`]);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message?.includes('fatal: Not a valid object name')) {\n logger.debug(\n { err },\n 'Branch not found when checking branch list - aborting',\n );\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n /* v8 ignore if -- TODO: add test #40625 */\n if (!files) {\n return [];\n }\n // submodules are starting with `160000 commit`\n return files\n .split(newlineRegex)\n .filter(isString)\n .filter((line) => line.startsWith('100'))\n .map((line) => line.split(regEx(/\\t/)).pop()!);\n}\n\nexport function getBranchList(): string[] {\n return Object.keys(config.branchCommits ?? {});\n}\n\nexport async function isBranchBehindBase(\n branchName: string,\n baseBranch: string,\n): Promise<boolean> {\n const baseBranchSha = getBranchCommit(baseBranch);\n const branchSha = getBranchCommit(branchName);\n let isBehind = getCachedBehindBaseResult(\n branchName,\n branchSha,\n baseBranch,\n baseBranchSha,\n );\n if (isBehind !== null) {\n logger.debug(`branch.isBehindBase(): using cached result \"${isBehind}\"`);\n return isBehind;\n }\n\n logger.debug(\n `branch.isBehindBase(): using git to calculate against baseBranch \"${baseBranch}\"`,\n );\n\n await syncGit();\n try {\n const behindCount = (\n await git.raw(['rev-list', '--count', `${branchSha!}..${baseBranchSha!}`])\n ).trim();\n isBehind = behindCount !== '0';\n logger.debug(\n { baseBranch, branchName },\n `branch.isBehindBase(): ${isBehind}`,\n );\n setCachedBehindBaseResult(branchName, isBehind);\n return isBehind;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n throw err;\n }\n}\n\nexport async function isBranchModified(\n branchName: string,\n baseBranch: string,\n): Promise<boolean> {\n if (!branchExists(branchName)) {\n logger.debug('branch.isModified(): no cache');\n return false;\n }\n // First check local config\n if (config.branchIsModified[branchName] !== undefined) {\n return config.branchIsModified[branchName];\n }\n // Second check repository cache\n const isModified = getCachedModifiedResult(\n branchName,\n getBranchCommit(branchName), // branch sha\n );\n if (isModified !== null) {\n logger.debug(`branch.isModified(): using cached result \"${isModified}\"`);\n config.branchIsModified[branchName] = isModified;\n return isModified;\n }\n\n logger.debug(\n `branch.isModified(): using git to calculate against baseBranch \"${baseBranch}\"`,\n );\n\n await syncGit();\n const committedAuthors = new Set<string>();\n try {\n const commits = await git.log([\n `origin/${baseBranch}..origin/${branchName}`,\n ]);\n\n for (const commit of commits.all) {\n committedAuthors.add(commit.author_email);\n }\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message?.includes('fatal: bad revision')) {\n logger.debug(\n { err },\n 'Remote branch not found when checking last commit author - aborting run',\n );\n throw new Error(REPOSITORY_CHANGED);\n }\n logger.warn({ err }, 'Error checking last author for isBranchModified');\n }\n const { gitAuthorEmail, ignoredAuthors } = config;\n\n const includedAuthors = new Set(committedAuthors);\n\n // v8 ignore else -- TODO: add test #40625\n if (gitAuthorEmail) {\n includedAuthors.delete(gitAuthorEmail);\n }\n\n for (const ignoredAuthor of ignoredAuthors) {\n includedAuthors.delete(ignoredAuthor);\n }\n\n if (includedAuthors.size === 0) {\n // authors all match - branch has not been modified\n logger.trace(\n {\n branchName,\n baseBranch,\n committedAuthors: [...committedAuthors],\n includedAuthors: [...includedAuthors],\n gitAuthorEmail,\n ignoredAuthors,\n },\n 'branch.isModified() = false',\n );\n logger.debug('branch.isModified() = false');\n config.branchIsModified[branchName] = false;\n setCachedModifiedResult(branchName, false);\n return false;\n }\n logger.trace(\n {\n branchName,\n baseBranch,\n committedAuthors: [...committedAuthors],\n includedAuthors: [...includedAuthors],\n gitAuthorEmail,\n ignoredAuthors,\n },\n 'branch.isModified() = true',\n );\n logger.debug(\n { baseBranch, branchName, unrecognizedAuthors: [...includedAuthors] },\n 'branch.isModified() = true',\n );\n config.branchIsModified[branchName] = true;\n setCachedModifiedResult(branchName, true);\n return true;\n}\n\nexport async function isBranchConflicted(\n baseBranch: string,\n branch: string,\n): Promise<boolean> {\n logger.debug(`isBranchConflicted(${baseBranch}, ${branch})`);\n\n const baseBranchSha = getBranchCommit(baseBranch);\n const branchSha = getBranchCommit(branch);\n if (!baseBranchSha || !branchSha) {\n logger.warn(\n { baseBranch, branch },\n 'isBranchConflicted: branch does not exist',\n );\n return true;\n }\n\n const isConflicted = getCachedConflictResult(\n branch,\n branchSha,\n baseBranch,\n baseBranchSha,\n );\n if (isBoolean(isConflicted)) {\n logger.debug(\n `branch.isConflicted(): using cached result \"${isConflicted}\"`,\n );\n return isConflicted;\n }\n\n logger.debug(\n `branch.isConflicted(): using git to calculate against baseBranch ${baseBranch}`,\n );\n\n let result = false;\n await syncGit();\n await writeGitAuthor();\n\n const origBranch = config.currentBranch;\n try {\n await git.reset(ResetMode.HARD);\n //TODO: see #18600\n if (origBranch !== baseBranch) {\n await git.checkout(baseBranch);\n }\n await git.merge(['--no-commit', '--no-ff', `origin/${branch}`]);\n } catch (err) {\n result = true;\n /* v8 ignore if -- TODO: add test #40625 */\n if (!err?.git?.conflicts?.length) {\n logger.debug(\n { baseBranch, branch, err },\n 'isBranchConflicted: unknown error',\n );\n }\n } finally {\n try {\n await git.merge(['--abort']);\n if (origBranch !== baseBranch) {\n await git.checkout(origBranch);\n }\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug(\n { baseBranch, branch, err },\n 'isBranchConflicted: cleanup error',\n );\n }\n }\n\n setCachedConflictResult(branch, result);\n logger.debug(`branch.isConflicted(): ${result}`);\n return result;\n}\n\nexport async function deleteBranch(branchName: string): Promise<void> {\n await syncGit();\n try {\n const deleteCommand = ['push', '--delete', 'origin', branchName];\n\n if (getNoVerify().includes('push')) {\n deleteCommand.push('--no-verify');\n }\n\n await gitRetry(() => git.raw(deleteCommand));\n logger.debug(`Deleted remote branch: ${branchName}`);\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n logger.debug(`No remote branch to delete with name: ${branchName}`);\n }\n try {\n await deleteLocalBranch(branchName);\n /* v8 ignore next -- TODO: add test #40625 (always throws) */\n logger.debug(`Deleted local branch: ${branchName}`);\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n logger.debug(`No local branch to delete with name: ${branchName}`);\n }\n delete config.branchCommits[branchName];\n}\n\nexport async function mergeToLocal(refSpecToMerge: string): Promise<void> {\n let status: StatusResult | undefined;\n try {\n await syncGit();\n await writeGitAuthor();\n await git.reset(ResetMode.HARD);\n await gitRetry(() =>\n git.checkout([\n '-B',\n config.currentBranch,\n 'origin/' + config.currentBranch,\n ]),\n );\n status = await git.status();\n await fetchRevSpec(refSpecToMerge);\n await gitRetry(() => git.merge(['FETCH_HEAD']));\n } catch (err) {\n logger.debug(\n {\n baseBranch: config.currentBranch,\n baseSha: config.currentBranchSha,\n refSpecToMerge,\n status,\n err,\n },\n 'mergeLocally error',\n );\n throw err;\n }\n}\n\nexport async function mergeBranch(branchName: string): Promise<void> {\n let status: StatusResult | undefined;\n try {\n await syncGit();\n await writeGitAuthor();\n await git.reset(ResetMode.HARD);\n await gitRetry(() =>\n git.checkout(['-B', branchName, 'origin/' + branchName]),\n );\n await gitRetry(() =>\n git.checkout([\n '-B',\n config.currentBranch,\n 'origin/' + config.currentBranch,\n ]),\n );\n status = await git.status();\n await gitRetry(() => git.merge(['--ff-only', branchName]));\n await gitRetry(() => git.push('origin', config.currentBranch));\n incLimitedValue('Commits');\n } catch (err) {\n logger.debug(\n {\n baseBranch: config.currentBranch,\n baseSha: config.currentBranchSha,\n branchName,\n branchSha: getBranchCommit(branchName),\n status,\n err,\n },\n 'mergeBranch error',\n );\n throw err;\n }\n}\n\nasync function getCommitDate(ref: LongCommitSha | string): Promise<DateTime> {\n const output = await git.show(['-s', '--format=%cI', ref]);\n return DateTime.fromISO(output.trim()).toUTC();\n}\n\nexport async function getBranchLastCommitTime(\n branchName: string,\n): Promise<Date> {\n await syncGit();\n try {\n const time = await getCommitDate('origin/' + branchName);\n return time.toJSDate();\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore next 3 -- TODO: add test */\n if (errChecked) {\n throw errChecked;\n }\n return new Date();\n }\n}\n\nexport function getBranchFiles(branchName: string): Promise<string[] | null> {\n return getBranchFilesFromRef(`origin/${branchName}`);\n}\n\nexport function getBranchFilesFromCommit(\n referenceCommit: LongCommitSha,\n): Promise<string[] | null> {\n return getBranchFilesFromRef(referenceCommit);\n}\n\nasync function getBranchFilesFromRef(\n refName: string,\n): Promise<string[] | null> {\n await syncGit();\n try {\n const diff = await gitRetry(() =>\n git.diffSummary([refName, `${refName}^`]),\n );\n return diff.files.map((file) => file.file);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.warn({ err }, 'getBranchFilesFromRef error');\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n return null;\n }\n}\n\nexport async function getFile(\n filePath: string,\n branchName?: string,\n): Promise<string | null> {\n await syncGit();\n try {\n const content = await git.show([\n 'origin/' + (branchName ?? config.currentBranch) + ':' + filePath,\n ]);\n\n logWarningIfUnicodeHiddenCharactersInPackageFile(filePath, content);\n\n return content;\n } catch (err) {\n const errChecked = checkForPlatformFailure(err);\n /* v8 ignore if -- TODO: add test #40625 */\n if (errChecked) {\n throw errChecked;\n }\n return null;\n }\n}\n\nexport async function getFiles(\n fileNames: string[],\n): Promise<Record<string, string | null>> {\n const fileContentMap: Record<string, string | null> = {};\n\n for (const fileName of fileNames) {\n fileContentMap[fileName] = await getFile(fileName);\n }\n\n return fileContentMap;\n}\n\nexport async function hasDiff(\n sourceRef: string,\n targetRef: string,\n): Promise<boolean> {\n await syncGit();\n try {\n return (\n (await gitRetry(() => git.diff([sourceRef, targetRef, '--']))) !== ''\n );\n } catch {\n return true;\n }\n}\n\nasync function handleCommitAuth(localDir: string): Promise<void> {\n if (!privateKeySet) {\n await writePrivateKey();\n privateKeySet = true;\n }\n await configSigningKey(localDir);\n await writeGitAuthor();\n}\n\n/**\n *\n * Prepare local branch with commit\n *\n * 0. Hard reset\n * 1. Creates local branch with `origin/` prefix\n * 2. Perform `git add` (respecting mode) and `git remove` for each file\n * 3. Perform commit\n * 4. Check whether resulting commit is empty or not (due to .gitignore)\n * 5. If not empty, return commit info for further processing\n *\n */\nexport async function prepareCommit({\n branchName,\n files,\n message,\n force = false,\n}: CommitFilesConfig): Promise<CommitResult | null> {\n const localDir = GlobalConfig.get('localDir')!;\n await syncGit();\n logger.debug(`Preparing files for committing to branch ${branchName}`);\n await handleCommitAuth(localDir);\n try {\n await git.reset(ResetMode.HARD);\n await git.raw(['clean', '-fd']);\n const parentCommitSha = config.currentBranchSha;\n await gitRetry(() =>\n git.checkout(['-B', branchName, 'origin/' + config.currentBranch]),\n );\n const deletedFiles: string[] = [];\n const addedModifiedFiles: string[] = [];\n const ignoredFiles: string[] = [];\n for (const file of files) {\n const fileName = file.path;\n if (file.type === 'deletion') {\n try {\n await git.rm([fileName]);\n deletedFiles.push(fileName);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n const errChecked = checkForPlatformFailure(err);\n if (errChecked) {\n throw errChecked;\n }\n logger.trace({ err, fileName }, 'Cannot delete file');\n ignoredFiles.push(fileName);\n }\n } else {\n if (await isDirectory(upath.join(localDir, fileName))) {\n // This is usually a git submodule update\n logger.trace({ fileName }, 'Adding directory commit');\n } else if (file.contents === null) {\n continue;\n } else {\n let contents: Buffer;\n /* v8 ignore else -- TODO: add test #40625 */\n if (typeof file.contents === 'string') {\n contents = Buffer.from(file.contents);\n } else {\n contents = file.contents;\n }\n // some file systems including Windows don't support the mode\n // so the index should be manually updated after adding the file\n if (file.isSymlink) {\n await fs.symlink(file.contents, upath.join(localDir, fileName));\n } else {\n await fs.outputFile(upath.join(localDir, fileName), contents, {\n mode: file.isExecutable ? 0o777 : 0o666,\n });\n }\n }\n try {\n /* v8 ignore next -- TODO: add test #40625 */\n const addParams =\n fileName === getConfigFileNames()[0] ? ['-f', fileName] : fileName;\n await git.add(addParams);\n if (file.isExecutable) {\n await git.raw(['update-index', '--chmod=+x', fileName]);\n }\n addedModifiedFiles.push(fileName);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (\n !err.message.includes(\n 'The following paths are ignored by one of your .gitignore files',\n )\n ) {\n throw err;\n }\n logger.debug(`Cannot commit ignored file: ${fileName}`);\n ignoredFiles.push(file.path);\n }\n }\n }\n\n const commitOptions: Options = {};\n if (getNoVerify().includes('commit')) {\n commitOptions['--no-verify'] = null;\n }\n\n const commitRes = await git.commit(message, [], commitOptions);\n if (\n isNonEmptyObject(commitRes.summary) &&\n commitRes.summary.changes === 0 &&\n commitRes.summary.insertions === 0 &&\n commitRes.summary.deletions === 0\n ) {\n logger.warn({ commitRes }, 'Detected empty commit - aborting git push');\n return null;\n }\n logger.debug(\n { deletedFiles, ignoredFiles, result: commitRes },\n `git commit`,\n );\n if (!force && !(await hasDiff('HEAD', `origin/${branchName}`))) {\n logger.debug(\n { branchName, deletedFiles, addedModifiedFiles, ignoredFiles },\n 'No file changes detected. Skipping commit',\n );\n return null;\n }\n\n const commitSha = (\n await git.revparse([branchName])\n ).trim() as LongCommitSha;\n const result: CommitResult = {\n parentCommitSha,\n commitSha,\n files: files.filter((fileChange) => {\n if (fileChange.type === 'deletion') {\n return deletedFiles.includes(fileChange.path);\n }\n return addedModifiedFiles.includes(fileChange.path);\n }),\n };\n\n return result;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n return handleCommitError(err, branchName, files);\n }\n}\n\nexport async function pushCommit({\n sourceRef,\n targetRef,\n files,\n pushOptions,\n}: PushFilesConfig): Promise<boolean> {\n await syncGit();\n logger.debug(`Pushing refSpec ${sourceRef}:${targetRef ?? sourceRef}`);\n let result = false;\n try {\n const gitOptions: TaskOptions = {\n '--force-with-lease': null,\n '-u': null,\n };\n if (getNoVerify().includes('push')) {\n gitOptions['--no-verify'] = null;\n }\n if (pushOptions) {\n gitOptions['--push-option'] = pushOptions;\n }\n\n const pushRes = await gitRetry(() =>\n git.push('origin', `${sourceRef}:${targetRef ?? sourceRef}`, gitOptions),\n );\n delete pushRes.repo;\n logger.debug({ result: pushRes }, 'git push');\n incLimitedValue('Commits');\n incCountValue('HourlyCommits');\n result = true;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n handleCommitError(err, sourceRef, files);\n }\n return result;\n}\n\nexport async function fetchBranch(\n branchName: string,\n): Promise<LongCommitSha | null> {\n await syncGit();\n logger.debug(`Fetching branch ${branchName}`);\n try {\n const ref = `refs/heads/${branchName}:refs/remotes/origin/${branchName}`;\n await gitRetry(() => git.pull(['origin', ref, '--force']));\n const commit = (await git.revparse([branchName])).trim() as LongCommitSha;\n config.branchCommits[branchName] = commit;\n config.branchIsModified[branchName] = false;\n return commit;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n return handleCommitError(err, branchName);\n }\n}\n\nexport async function commitFiles(\n commitConfig: CommitFilesConfig,\n): Promise<LongCommitSha | null> {\n try {\n const commitResult = await prepareCommit(commitConfig);\n if (commitResult) {\n const pushResult = await pushCommit({\n sourceRef: commitConfig.branchName,\n files: commitConfig.files,\n });\n // v8 ignore else -- TODO: add test #40625\n if (pushResult) {\n const { branchName } = commitConfig;\n const { commitSha } = commitResult;\n config.branchCommits[branchName] = commitSha;\n config.branchIsModified[branchName] = false;\n return commitSha;\n }\n }\n return null;\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n if (err.message.includes('[rejected] (stale info)')) {\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n}\n\nexport function getUrl({\n protocol,\n auth,\n hostname,\n host,\n repository,\n}: {\n protocol?: GitProtocol;\n auth?: string;\n hostname?: string;\n host?: string;\n repository: string;\n}): string {\n if (protocol === 'ssh') {\n // TODO: types (#22198)\n return `git@${hostname!}:${repository}.git`;\n }\n return URL.format({\n protocol: protocol ?? 'https',\n auth,\n hostname,\n host,\n pathname: repository + '.git',\n });\n}\n\nlet remoteRefsExist = false;\n\n/**\n *\n * Non-branch refs allow us to store git objects without triggering CI pipelines.\n * It's useful for API-based branch rebasing.\n *\n * @see https://stackoverflow.com/questions/63866947/pushing-git-non-branch-references-to-a-remote/63868286\n *\n */\nexport async function pushCommitToRenovateRef(\n commitSha: string,\n refName: string,\n): Promise<void> {\n const fullRefName = `refs/renovate/branches/${refName}`;\n await git.raw(['update-ref', fullRefName, commitSha]);\n await git.push(['--force', 'origin', fullRefName]);\n remoteRefsExist = true;\n}\n\n/**\n *\n * Removes all remote \"refs/renovate/branches/*\" refs in two steps:\n *\n * Step 1: list refs\n *\n * $ git ls-remote origin \"refs/renovate/branches/*\"\n *\n * > cca38e9ea6d10946bdb2d0ca5a52c205783897aa refs/renovate/branches/foo\n * > 29ac154936c880068994e17eb7f12da7fdca70e5 refs/renovate/branches/bar\n * > 3fafaddc339894b6d4f97595940fd91af71d0355 refs/renovate/branches/baz\n * > ...\n *\n * Step 2:\n *\n * $ git push --delete origin refs/renovate/branches/foo refs/renovate/branches/bar refs/renovate/branches/baz\n *\n * If Step 2 fails because the repo doesn't allow bulk changes, we'll remove them one by one instead:\n *\n * $ git push --delete origin refs/renovate/branches/foo\n * $ git push --delete origin refs/renovate/branches/bar\n * $ git push --delete origin refs/renovate/branches/baz\n */\nexport async function clearRenovateRefs(): Promise<void> {\n if (!gitInitialized || !remoteRefsExist) {\n return;\n }\n\n logger.debug(`Cleaning up Renovate refs: refs/renovate/branches/*`);\n const renovateRefs: string[] = [];\n\n try {\n const rawOutput = await git.listRemote([\n config.url,\n 'refs/renovate/branches/*',\n ]);\n const refs = rawOutput\n .split(newlineRegex)\n .map((line) => line.replace(regEx(/[0-9a-f]+\\s+/i), '').trim())\n .filter((line) => line.startsWith('refs/renovate/branches/'));\n renovateRefs.push(...refs);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.warn({ err }, `Renovate refs cleanup error`);\n }\n\n // v8 ignore else -- TODO: add test #40625\n if (renovateRefs.length) {\n try {\n const pushOpts = ['--delete', 'origin', ...renovateRefs];\n await git.push(pushOpts);\n } catch (err) {\n /* v8 ignore else -- TODO: add test #40625 */\n if (bulkChangesDisallowed(err)) {\n for (const ref of renovateRefs) {\n try {\n const pushOpts = ['--delete', 'origin', ref];\n await git.push(pushOpts);\n } catch (err) /* v8 ignore next -- TODO: add test #40625 */ {\n logger.debug({ err }, 'Error deleting \"refs/renovate/branches/*\"');\n break;\n }\n }\n } else {\n logger.warn({ err }, 'Error deleting \"refs/renovate/branches/*\"');\n }\n }\n }\n\n remoteRefsExist = false;\n}\n\nconst treeItemRegex = regEx(\n /^(?<mode>\\d{6})\\s+(?<type>blob|tree|commit)\\s+(?<sha>[0-9a-f]{40})\\s+(?<path>.*)$/,\n);\n\nconst treeShaRegex = regEx(/tree\\s+(?<treeSha>[0-9a-f]{40})\\s*/);\n\n/**\n *\n * Obtain top-level items of commit tree.\n * We don't need subtree items, so here are 2 steps only.\n *\n * Step 1: commit SHA -> tree SHA\n *\n * $ git cat-file -p <commit-sha>\n *\n * > tree <tree-sha>\n * > parent 59b8b0e79319b7dc38f7a29d618628f3b44c2fd7\n * > ...\n *\n * Step 2: tree SHA -> tree items (top-level)\n *\n * $ git cat-file -p <tree-sha>\n *\n * > 040000 tree 389400684d1f004960addc752be13097fe85d776 src\n * > ...\n * > 100644 blob 7d2edde437ad4e7bceb70dbfe70e93350d99c98b package.json\n *\n */\nexport async function listCommitTree(\n commitSha: LongCommitSha,\n): Promise<TreeItem[]> {\n const commitOutput = await git.catFile(['-p', commitSha]);\n /* v8 ignore next -- will never happen */\n const { treeSha } = treeShaRegex.exec(commitOutput)?.groups ?? {};\n const contents = await git.catFile(['-p', treeSha]);\n const lines = contents.split(newlineRegex);\n const result: TreeItem[] = [];\n for (const line of lines) {\n const matchGroups = treeItemRegex.exec(line)?.groups;\n if (matchGroups) {\n const { path, mode, type, sha } = matchGroups;\n result.push({ path, mode, type, sha: sha as LongCommitSha });\n }\n }\n return result;\n}\n\nasync function localBranchExists(branchName: string): Promise<boolean> {\n await syncGit();\n const localBranches = await git.branchLocal();\n return localBranches.all.includes(branchName);\n}\n\n/**\n * Synchronize a forked branch with its upstream counterpart.\n *\n * syncForkWithUpstream updates the fork's branch, to match the corresponding branch in the upstream repository.\n * The steps are:\n * 1. Check if the branch exists locally.\n * 2. If the branch exists locally: checkout the local branch.\n * 3. If the branch does _not_ exist locally: checkout the upstream branch.\n * 4. Reset the local branch to match the upstream branch.\n * 5. Force push the (updated) local branch to the origin repository.\n *\n * @param {string} branchName - The name of the branch to synchronize.\n * @returns A promise that resolves to True if the synchronization is successful, or `false` if an error occurs.\n */\nexport async function syncForkWithUpstream(branchName: string): Promise<void> {\n if (!config.upstreamUrl) {\n return;\n }\n logger.debug(\n `Synchronizing fork with \"${RENOVATE_FORK_UPSTREAM}\" remote for branch ${branchName}`,\n );\n const remotes = await getRemotes();\n /* v8 ignore if -- this should not be possible if upstreamUrl exists */\n if (!remotes.some((r) => r === RENOVATE_FORK_UPSTREAM)) {\n throw new Error('No upstream remote exists, cannot sync fork');\n }\n try {\n await git.fetch([RENOVATE_FORK_UPSTREAM]);\n if (await localBranchExists(branchName)) {\n await checkoutBranch(branchName);\n } else {\n await checkoutBranchFromRemote(branchName, RENOVATE_FORK_UPSTREAM);\n }\n await resetHardFromRemote(`${RENOVATE_FORK_UPSTREAM}/${branchName}`);\n await forcePushToRemote(branchName, 'origin');\n } catch (err) /* v8 ignore next -- shouldn't happen */ {\n logger.error({ err }, 'Error synchronizing fork');\n throw new Error(UNKNOWN_ERROR);\n }\n}\n\nexport async function getRemotes(): Promise<string[]> {\n logger.debug('git.getRemotes()');\n try {\n await syncGit();\n const remotes = await git.getRemotes();\n logger.debug(`Found remotes: ${remotes.map((r) => r.name).join(', ')}`);\n return remotes.map((remote) => remote.name);\n } catch (err) /* v8 ignore next */ {\n logger.error({ err }, 'Error getting remotes');\n throw err;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEA,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,cAAc;AAEpB,MAAa,yBAAyB;AAGtC,eAAsB,SAAY,SAAuC;CACvE,IAAI,QAAQ;CACZ,IAAI;AAEJ,QAAO,SAAS,YAAY;AAC1B,MAAI,QAAQ,EACV,QAAO,MAAM,kBAAkB,QAAQ;AAEzC,MAAI;GACF,MAAM,MAAM,MAAM,SAAS;AAC3B,OAAI,QAAQ,EACV,QAAO,MAAM,mCAAmC;AAElD,UAAO;WACA,KAAK;AACZ,eAAY;AACZ,UAAO,MAAM,EAAE,KAAK,EAAE,sBAAsB;GAE5C,MAAM,aAAa,wBAAwB,IAAI;AAC/C,OAAI,sBAAsB,kBACxB,QAAO,MACL,EAAE,KAAK,YAAY,EACnB,qCACE,QAAQ,EACT,MAAM,WAAW,+BACnB;OAED,OAAM;;EAIV,MAAM,YAAY,eAAgB,QAAQ,KAAK;AAC/C,SAAO,MAAM,EAAE,WAAW,EAAE,mBAAmB;AAC/C,QAAM,WAAW,MAAO,UAAU;AAElC;;AAGF,OAAM;;AAGR,eAAe,YAAY,KAA+B;AACxD,KAAI;AACF,UAAQ,MAAM,GAAG,KAAK,IAAI,EAAE,aAAa;SACnC;AACN,SAAO;;;AAIX,eAAe,iBAAiB,KAA6C;AAC3E,QAAO,MAAM,qBAAqB;AAElC,KAAI;EACF,IAAI,MAAM,MAAM,IAAI,IAAI;GAAC;GAAa;GAAgB;GAAc,CAAC;;AAErE,MAAI,CAAC,KAAK;AACR,UAAO,MAAM,yDAAyD;GACtE,MAAM,aAAa;AACnB,UAAO,MAAM,IAAI,IAAI;IAAC;IAAU;IAAQ;IAAS,CAAC,EAC/C,MAAM,KAAK,CACX,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,MAAM,SAAS,KAAK,WAAW,WAAW,CAAC,CAC3C,QAAQ,YAAY,GAAG;;AAG5B,SAAO,IAAI,QAAQ,WAAW,GAAG,CAAC,MAAM;UACjC,oDAAmD;AAC1D,SAAO,MAAM,EAAE,KAAK,EAAE,+BAA+B;EACrD,MAAM,aAAa,wBAAwB,IAAI;AAC/C,MAAI,WACF,OAAM;AAER,MACE,IAAI,QAAQ,WACV,4DACD,CAED,OAAM,IAAI,MAAM,iBAAiB;AAEnC,MAAI,IAAI,QAAQ,SAAS,0CAA0C,EAAE;AACnE,UAAO,KAAK,+BAA+B;AAC3C,SAAM,IAAI,MAAM,gBAAgB;;AAElC,QAAM;;;AAIV,IAAI,SAAsB,EAAE;AAG5B,IAAI;AACJ,IAAI;AACJ,IAAI;AAEJ,IAAI,gBAAgB;AAEpB,MAAa,sBAAsB;AAEnC,eAAsB,qBAAuC;CAC3D,IAAI;CACJ,MAAM,YAAY,cAAc,WAAW,CAAC;AAC5C,KAAI;EACF,MAAM,EAAE,OAAO,OAAO,OAAO,cAAc,MAAM,UAAU,SAAS;;AAEpE,MAAI,CAAC,WAAW;AACd,UAAO,MAAM,oBAAoB;AACjC,UAAO;;AAET,YAAU,GAAG,MAAM,GAAG,MAAM,GAAG;UACxB,oDAAmD;AAC1D,SAAO,MAAM,EAAE,KAAK,EAAE,6BAA6B;AACnD,SAAO;;;AAGT,KAAI,EAAE,WAAW,OAAO,IAAI,SAAA,SAA6B,GAAG;AAC1D,SAAO,MACL;GAAE,iBAAiB;GAAS,gBAAgB;GAAqB,EACjE,8BACD;AACD,SAAO;;AAET,QAAO,MAAM,4BAA4B,UAAU;AACnD,QAAO;;AAGT,eAAe,mBAAmB,iBAAiB,MAAqB;AACtE,QAAO,gBAAgB,EAAE;CACzB,MAAM,MACJ,kBAAkB,OAAO,cAAc,OAAO,cAAc,OAAO;AACrE,QAAO,MAAM,6BAA6B,MAAM;CAChD,MAAM,OAAO;EAAC;EAAa;EAAW;EAAI;AAC1C,KAAI,OAAO,eACT,QAAO,QAAQ,OAAO,eAAe,CAAC,SAAS,MAE7C,KAAK,QAAQ,EAAE,IAAI,GAAG,EAAE,KAAM,CAC/B;AAEH,KAAI;EACF,MAAM,cAAc,MAAM,eAAe,IAAI,IAAI,KAAK,CAAC;AACvD,SAAO,MAAM,EAAE,aAAa,EAAE,uBAAuB;AACrD,cACG,MAAM,aAAa,CACnB,OAAO,QAAQ,CACf,KAAK,SAAS,KAAK,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,CAAC,CAC9C,SAAS,CAAC,KAAK,SAAS;AACvB,UAAO,cAAc,IAAI,QAAQ,eAAe,GAAG,IACjD;IACF;AACJ,SAAO,MAAM,EAAE,eAAe,OAAO,eAAe,EAAE,iBAAiB;UAChE,oDAAmD;EAC1D,MAAM,aAAa,wBAAwB,IAAI;AAC/C,MAAI,WACF,OAAM;AAER,SAAO,MAAM,EAAE,KAAK,EAAE,YAAY;AAClC,MAAI,IAAI,SAAS,SAAS,8CAA8C,CACtE,OAAM,IAAI,MAAM,oBAAoB;AAEtC,QAAM;;;AAIV,eAAsB,aAAa,SAAgC;AACjE,OAAM,eAAe,IAAI,MAAM,CAAC,UAAU,QAAQ,CAAC,CAAC;;AAGtD,eAAsB,SAAS,MAAoC;AACjE,UAAS,EAAE,GAAG,MAAM;AACpB,QAAO,iBAAiB,EAAE;AAC1B,QAAO,qBAAqB,EAAE;AAC9B,QAAO,mBAAmB,EAAE;AAE5B,OAAM,cACJ,UAAU,aAAa,IAAI,WAAW,EAAE,iBAAiB,CAAC,CAAC,IAAI;EAC7D,GAAG,QAAQ;EACX,MAAM;EACN,QAAQ;EACT,CAAC,CACH;AACD,kBAAiB;AACjB,2BAA0B;AAC1B,OAAM,oBAAoB;;AAG5B,eAAe,cAAc,YAAmC;AAC9D,QAAO,MAAM,iBAAiB,WAAW,GAAG;AAC5C,OAAM,IAAI,IAAI,CAAC,SAAS,SAAS,CAAC;AAClC,OAAM,eAAe,IAAI,SAAS,WAAW,CAAC;AAC9C,OAAM,IAAI,IAAI;EAAC;EAAS;EAAU,YAAY;EAAW,CAAC;AAC1D,OAAM,IAAI,IAAI,CAAC,SAAS,MAAM,CAAC;;;AAIjC,eAAsB,cAAc,QAAsC;AACxE,QAAO,MAAM,iBAAiB,OAAO,GAAG;AACxC,OAAM,IAAI,IAAI;EAAC;EAAS;EAAU;EAAO,CAAC;;AAG5C,eAAe,kBAAkB,YAAmC;AAClE,OAAM,IAAI,OAAO,CAAC,MAAM,WAAW,CAAC;;AAGtC,eAAe,qBAAoC;CACjD,MAAM,oBAAoB,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,EAChD,MAAM,aAAa,CACnB,KAAK,WAAW,OAAO,MAAM,CAAC,CAC9B,QAAQ,WAAW,OAAO,SAAS,KAAK,CAAC,OAAO,WAAW,KAAK,CAAC;AACpE,QAAO,MAAM,EAAE,kBAAkB,CAAC;AAClC,MAAK,MAAM,cAAc,iBACvB,OAAM,kBAAkB,WAAW;;AAIvC,SAAgB,aAAa,WAAqC;CAChE,MAAM,kBAAkB,eACtB,aAAa,kDACd;AACD,KAAI,CAAC,iBAAiB;EACpB,MAAM,QAAQ,IAAI,MAAM,kBAAkB;AAC1C,QAAM,mBAAmB;AACzB,QAAM,kBAAkB;AACxB,QAAM,oBAAoB,0DAA0D,UAAW;AAC/F,QAAM;;AAER,QAAO,gBAAgB,gBAAgB;AACvC,QAAO,iBAAiB,gBAAgB;;AAG1C,eAAsB,iBAAgC;CACpD,MAAM,EAAE,eAAe,gBAAgB,iBAAiB;;AAExD,KAAI,aACF;AAEF,QAAO,eAAe;AACtB,KAAI;;AAEF,MAAI,eAAe;AACjB,UAAO,MAAM,4BAA4B,gBAAgB;AACzD,SAAM,IAAI,UAAU,aAAa,cAAc;;;AAGjD,MAAI,gBAAgB;AAClB,UAAO,MAAM,6BAA6B,iBAAiB;AAC3D,SAAM,IAAI,UAAU,cAAc,eAAe;;UAE5C,oDAAmD;EAC1D,MAAM,aAAa,wBAAwB,IAAI;AAC/C,MAAI,WACF,OAAM;AAER,SAAO,MACL;GAAE;GAAK;GAAe;GAAgB,EACtC,kCACD;AACD,QAAM,IAAI,MAAM,gBAAgB;;;AAIpC,SAAgB,kBAAkB,EAChC,mBACA,aACuB;AACvB,QAAO,iBAAiB,qBAAqB,EAAE;AAC/C,cAAa,UAAU;;AAGzB,eAAsB,gBAAmC;AACvD,KAAI;AACF,UACG,MAAM,IAAI,IAAI;GACb;GACA;GACA;GACA;GACA;GACD,CAAC,IAAK,IAEN,MAAM,CACN,MAAM,MAAM,SAAS,CAAC,CACtB,QAAQ,IAAY,MAAc,IAAI,EAAE;UACpC,oDAAmD;AAC1D,SAAO,KAAK,EAAE,KAAK,EAAE,2BAA2B;AAChD,SAAO,EAAE;;;AAIb,eAAsB,gBACpB,aACA,uBACe;AACf,KAAI,CAAC,eAAe,wBAClB;AAEF,2BAA0B;CAC1B,MAAM,SAAS,YAAY,EAAE,KAAK,4BAA4B,EAAE,CAAC;AACjE,OAAM,SAAS;CACf,MAAM,aAAa,MAAM,eAAe;AACxC,MAAK,MAAM,aAAa,YAAY;AAClC,MAAI,CAAC,qBAAqB,WAAW,yBAAyB,CAAC,IAAI,CAAC,EAAE;AACpE,UAAO,MACL,EAAE,uBAAuB,EACzB,sBAAsB,YACvB;AACD;;AAEF,MAAI;AACF,UAAO,MAAM,4BAA4B,YAAY;AACrD,SAAM,eACJ,IAAI,IAAI,OAAO,CAAC,gBAAgB;IAAC;IAAU;IAAe;IAAU,CAAC,CACtE;WACM,KAAK;AACZ,UAAO,KAAK;IAAE;IAAK;IAAW,EAAE,qCAAqC;;;;AAK3E,SAAgB,WAAoB;AAClC,QAAO;;AAGT,MAAa,UAAU,kBACrB,EAAE,MAAM,WAAW,EACnB,iBAAiC;AAC/B,KAAI,gBAAgB;;AAElB,MAAI,QAAQ,CAAC,uBACX,OAAM,IAAI,IAAI;GAAC;GAAU;GAAkB;GAAY,CAAC;AAE1D;;;AAGF,KAAI,aAAa,IAAI,WAAW,KAAK,QACnC,OAAM,IAAI,MAAM,sCAAsC;AAExD,kBAAiB;CACjB,MAAM,WAAW,aAAa,IAAI,WAAW;AAC7C,QAAO,MAAM,+CAA+C,WAAW;CACvE,MAAM,UAAU,MAAM,KAAK,UAAU,YAAY;CACjD,IAAI,QAAQ;AAEZ,KAAI,MAAM,GAAG,WAAW,QAAQ,CAC9B,OAAM,WAAW,SAAS,YAAY;AACpC,SAAO,MACL,iEACD;AACD,MAAI;AACF,SAAM,IAAI,IAAI;IAAC;IAAU;IAAW;IAAU,OAAO;IAAI,CAAC;GAC1D,MAAM,aAAa,KAAK,KAAK;AAC7B,SAAM,eAAe,IAAI,MAAM,CAAC,WAAW,SAAS,CAAC,CAAC;AACtD,UAAO,gBACL,OAAO,iBAAkB,MAAM,iBAAiB,IAAI;AACtD,SAAM,cAAc,OAAO,cAAc;AACzC,SAAM,oBAAoB;GAC1B,MAAM,aAAa,KAAK,MAAM,KAAK,KAAK,GAAG,WAAW;AACtD,UAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB;AAClD,WAAQ;WACD,qDAAmD;AAC1D,OAAI,IAAI,YAAA,QACN,OAAM;AAER,UAAO,KAAK,EAAE,KAAK,EAAE,6CAA6C;;GAEpE;AAEJ,KAAI,MACF,OAAM,WAAW,SAAS,YAAY;EACpC,MAAM,aAAa,KAAK,KAAK;AAC7B,MAAI;GACF,MAAM,OAAiB,EAAE;AACzB,OAAI,OAAO,cACT,MAAK,KAAK,MAAM,OAAO,cAAc;AAEvC,OAAI,OAAO,UACT,QAAO,MAAM,wBAAwB;QAChC;AACL,WAAO,MAAM,4BAA4B;AACzC,SAAK,KAAK,qBAAqB;;AAEjC,OAAI,OAAO,eACT,QAAO,QAAQ,OAAO,eAAe,CAAC,SAAS,MAE7C,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,KAAM,CAC5B;GAEH,MAAM,mBAAmB,YAA2B;AAClD,UAAM,WAAW,eAAe,SAAS,UACvC,GAAG,SAAS,SAAS,CACtB;AACD,UAAM,IAAI,MAAM,OAAO,KAAK,KAAK,KAAK;;AAExC,SAAM,eACJ,WAAW,oBAAoB,iBAAiB,CACjD;WACM,qDAAmD;AAC1D,UAAO,MAAM,EAAE,KAAK,EAAE,kBAAkB;AACxC,OAAI,IAAI,SAAS,SAAS,0BAA0B,CAClD,OAAM,IAAI,MAAM,+BAA+B;AAEjD,OAAI,IAAI,YAAA,QACN,OAAM;AAER,SAAM,IAAI,kBAAkB,KAAK,MAAM;;EAEzC,MAAM,aAAa,KAAK,MAAM,KAAK,KAAK,GAAG,WAAW;AACtD,SAAO,MAAM,EAAE,YAAY,EAAE,sBAAsB;GACnD;AAEJ,KAAI;AACF,SAAO,oBACL,MAAM,IAAI,IAAI,CAAC,aAAa,OAAO,CAAC,EACpC,MAAM;UACD,oDAAmD;AAC1D,MAAI,IAAI,SAAS,SAAS,8BAA8B,CACtD,OAAM,IAAI,MAAM,mBAAmB;AAErC,QAAM;;AAGR,OAAM,WAAW,yBACf,gBAAgB,CAAC,CAAC,OAAO,iBAAiB,OAAO,sBAAsB,CACxE;AACD,KAAI;EACF,MAAM,gBAAgB,MAAM,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE;AAC/C,SAAO,MAAM,EAAE,cAAc,EAAE,2BAA2B;UACnD,oDAAmD;EAC1D,MAAM,aAAa,wBAAwB,IAAI;AAC/C,MAAI,WACF,OAAM;AAER,MAAI,IAAI,QAAQ,SAAS,gCAAgC,CACvD,OAAM,IAAI,MAAM,iBAAiB;AAEnC,SAAO,KAAK,EAAE,KAAK,EAAE,gCAAgC;;AAEvD,QAAO,gBACL,OAAO,iBACP,OAAO,iBACN,MAAM,iBAAiB,IAAI;;AAE9B,QAAO,UAAU,EAAE;AAInB,KAAI,OAAO,aAAa;EACtB,MAAM,EAAE,gBAAgB;AACxB,QAAM,WAAW,yBAAyB,YAAY;AACpD,UAAO,MACL,2CAA2C,uBAAuB,wBACnE;;AAID,OAAI,EAFY,MAAM,IAAI,WAAW,KAAK,EAE7B,MAAM,WAAW,OAAO,SAAA,yBAAgC,EAAE;AACrE,WAAO,MAAM,iBAAiB,yBAAyB;AACvD,UAAM,IAAI,UAAU,wBAAwB,YAAY;;AAE1D,SAAM,qBAAqB,OAAO,cAAc;AAChD,SAAM,mBAAmB,MAAM;IAC/B;;AAGJ,QAAO,oBACL,MAAM,IAAI,SAAS,OAAO,EAC1B,MAAM;AACR,QAAO,MAAM,uBAAuB,OAAO,mBAAmB;EAEjE;AAED,eAAsB,cAAc,MAAsC;AACxE,KAAI,SAAS,KAAK,EAAE;EAClB,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,YAAY,MAAM,QAAQ,UAAU,KAAK;AAC/C,MAAI,CAAC,UAAU,WAAW,MAAM,QAAQ,SAAS,CAAC,EAAE;AAClD,UAAO,KACL;IAAE;IAAW;IAAU,EACvB,wDACD;AACD,SAAM,IAAI,MAAM,aAAa;;;AAIjC,OAAM,SAAS;AACf,QAAO,IAAI,OAAO,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;;AAGvC,SAAgB,aAAa,YAA6B;AACxD,QAAO,CAAC,CAAC,OAAO,cAAc;;AAIhC,SAAgB,gBAAgB,YAA0C;AACxE,QAAO,OAAO,gBAAgB,eAAe;;AAI/C,eAAsB,oBACpB,YAC0B;CAC1B,MAAM,YAAY,OAAO,cAAc;AACvC,KAAI,CAAC,UACH,QAAO;AAET,KAAI;AACF,SAAO,MAAM,cAAc,UAAU;UAC9B,KAAK;AACZ,SAAO,MAAM;GAAE;GAAK;GAAY,EAAE,mCAAmC;AACrE,SAAO;;;AAIX,eAAsB,oBAAuC;AAC3D,QAAO,MAAM,oBAAoB;;AAEjC,KAAI,aAAa,IAAI,WAAW,KAAK,QACnC,OAAM,SAAS;AAEjB,KAAI;AAMF,UALY,MAAM,IAAI,IAAI;GACxB,GAAG;GACH,QAAQ,EAAE,SAAS,MAAM;GACzB,eAAe;GAChB,CAAC,EACS,IAAI,KAAK,WAAW,OAAO,QAAQ;wDACM;AACpD,SAAO,EAAE;;;AAIb,eAAsB,eACpB,YACwB;AACxB,QAAO,MAAM,6BAA6B,aAAa;AACvD,OAAM,SAAS;AACf,KAAI;AACF,QAAM,eACJ,IAAI,SACF,0BACI;GAAC;GAAM;GAAwB;GAAY;GAAK,GAChD;GAAC;GAAM;GAAY;GAAK,CAC7B,CACF;AACD,SAAO,gBAAgB;AACvB,SAAO,oBACL,MAAM,IAAI,IAAI,CAAC,aAAa,OAAO,CAAC,EACpC,MAAM;EACR,MAAM,mBAAmB,MAAM,cAAc,OAAO,iBAAiB;;AAErE,MAAI,iBACF,QAAO,MACL;GAAE;GAAY;GAAkB,KAAK,OAAO;GAAkB,EAC9D,gBACD;AAEH,QAAM,IAAI,MAAM,UAAU,KAAK;AAC/B,SAAO,OAAO;UACP,oDAAmD;EAC1D,MAAM,aAAa,wBAAwB,IAAI;AAC/C,MAAI,WACF,OAAM;AAER,MAAI,IAAI,SAAS,SAAS,4BAA4B,EAAE;AACtD,UAAO,KAAK,EAAE,KAAK,EAAE,4BAA4B;AACjD,SAAM,IAAI,MAAM,gBAAgB;;AAElC,QAAM;;;AAIV,eAAsB,yBACpB,YACA,YACwB;AACxB,QAAO,MAAM,uBAAuB,WAAW,eAAe,aAAa;AAC3E,OAAM,SAAS;AACf,KAAI;AACF,QAAM,eACJ,IAAI,eAAe,YAAY,GAAG,WAAW,GAAG,aAAa,CAC9D;AACD,SAAO,gBAAgB;AACvB,SAAO,oBACL,MAAM,IAAI,SAAS,OAAO,EAC1B,MAAM;AACR,SAAO,MAAM,sBAAsB,WAAW,eAAe,aAAa;AAC1E,SAAO,cAAc,cAAc,OAAO;AAC1C,SAAO,OAAO;UACP,KAAK;EACZ,MAAM,aAAa,wBAAwB,IAAI;;AAE/C,MAAI,WACF,OAAM;AAER,MAAI,IAAI,SAAS,SAAS,4BAA4B,EAAE;AACtD,UAAO,KAAK,EAAE,KAAK,EAAE,4BAA4B;AACjD,SAAM,IAAI,MAAM,gBAAgB;;AAElC,QAAM;;;AAIV,eAAsB,oBACpB,iBACe;AACf,KAAI;EACF,MAAM,WAAW,MAAM,IAAI,MAAM,CAAC,UAAU,gBAAgB,CAAC;AAC7D,SAAO,MAAM,EAAE,UAAU,EAAE,gBAAgB;UACpC,KAAK;AACZ,SAAO,MAAM,EAAE,KAAK,EAAE,gCAAgC;AACtD,QAAM;;;AAIV,eAAsB,kBACpB,YACA,QACe;AACf,KAAI;EACF,MAAM,UAAU,MAAM,IAAI,KAAK;GAAC;GAAQ;GAAY;GAAU,CAAC;AAC/D,SAAO,MAAM,EAAE,SAAS,EAAE,eAAe;UAClC,KAAK;AACZ,SAAO,MAAM,EAAE,KAAK,EAAE,gCAAgC;AACtD,QAAM;;;AAIV,eAAsB,cAAiC;AACrD,OAAM,SAAS;CACf,MAAM,SAAS,OAAO;CACtB,IAAI;AACJ,KAAI;AACF,UAAQ,MAAM,IAAI,IAAI;GAAC;GAAW;GAAM,cAAc;GAAS,CAAC;UACzD,oDAAmD;AAC1D,MAAI,IAAI,SAAS,SAAS,iCAAiC,EAAE;AAC3D,UAAO,MACL,EAAE,KAAK,EACP,wDACD;AACD,SAAM,IAAI,MAAM,mBAAmB;;AAErC,QAAM;;;AAGR,KAAI,CAAC,MACH,QAAO,EAAE;AAGX,QAAO,MACJ,MAAM,aAAa,CACnB,OAAO,SAAS,CAChB,QAAQ,SAAS,KAAK,WAAW,MAAM,CAAC,CACxC,KAAK,SAAS,KAAK,MAAM,MAAM,KAAK,CAAC,CAAC,KAAK,CAAE;;AAGlD,SAAgB,gBAA0B;AACxC,QAAO,OAAO,KAAK,OAAO,iBAAiB,EAAE,CAAC;;AAGhD,eAAsB,mBACpB,YACA,YACkB;CAClB,MAAM,gBAAgB,gBAAgB,WAAW;CACjD,MAAM,YAAY,gBAAgB,WAAW;CAC7C,IAAI,WAAW,0BACb,YACA,WACA,YACA,cACD;AACD,KAAI,aAAa,MAAM;AACrB,SAAO,MAAM,+CAA+C,SAAS,GAAG;AACxE,SAAO;;AAGT,QAAO,MACL,qEAAqE,WAAW,GACjF;AAED,OAAM,SAAS;AACf,KAAI;AAIF,cAFE,MAAM,IAAI,IAAI;GAAC;GAAY;GAAW,GAAG,UAAW,IAAI;GAAiB,CAAC,EAC1E,MAAM,KACmB;AAC3B,SAAO,MACL;GAAE;GAAY;GAAY,EAC1B,0BAA0B,WAC3B;AACD,4BAA0B,YAAY,SAAS;AAC/C,SAAO;UACA,oDAAmD;EAC1D,MAAM,aAAa,wBAAwB,IAAI;AAC/C,MAAI,WACF,OAAM;AAER,QAAM;;;AAIV,eAAsB,iBACpB,YACA,YACkB;AAClB,KAAI,CAAC,aAAa,WAAW,EAAE;AAC7B,SAAO,MAAM,gCAAgC;AAC7C,SAAO;;AAGT,KAAI,OAAO,iBAAiB,gBAAgB,KAAA,EAC1C,QAAO,OAAO,iBAAiB;CAGjC,MAAM,aAAa,wBACjB,YACA,gBAAgB,WAAW,CAC5B;AACD,KAAI,eAAe,MAAM;AACvB,SAAO,MAAM,6CAA6C,WAAW,GAAG;AACxE,SAAO,iBAAiB,cAAc;AACtC,SAAO;;AAGT,QAAO,MACL,mEAAmE,WAAW,GAC/E;AAED,OAAM,SAAS;CACf,MAAM,mCAAmB,IAAI,KAAa;AAC1C,KAAI;EACF,MAAM,UAAU,MAAM,IAAI,IAAI,CAC5B,UAAU,WAAW,WAAW,aACjC,CAAC;AAEF,OAAK,MAAM,UAAU,QAAQ,IAC3B,kBAAiB,IAAI,OAAO,aAAa;UAEpC,oDAAmD;AAC1D,MAAI,IAAI,SAAS,SAAS,sBAAsB,EAAE;AAChD,UAAO,MACL,EAAE,KAAK,EACP,0EACD;AACD,SAAM,IAAI,MAAM,mBAAmB;;AAErC,SAAO,KAAK,EAAE,KAAK,EAAE,kDAAkD;;CAEzE,MAAM,EAAE,gBAAgB,mBAAmB;CAE3C,MAAM,kBAAkB,IAAI,IAAI,iBAAiB;;AAGjD,KAAI,eACF,iBAAgB,OAAO,eAAe;AAGxC,MAAK,MAAM,iBAAiB,eAC1B,iBAAgB,OAAO,cAAc;AAGvC,KAAI,gBAAgB,SAAS,GAAG;AAE9B,SAAO,MACL;GACE;GACA;GACA,kBAAkB,CAAC,GAAG,iBAAiB;GACvC,iBAAiB,CAAC,GAAG,gBAAgB;GACrC;GACA;GACD,EACD,8BACD;AACD,SAAO,MAAM,8BAA8B;AAC3C,SAAO,iBAAiB,cAAc;AACtC,0BAAwB,YAAY,MAAM;AAC1C,SAAO;;AAET,QAAO,MACL;EACE;EACA;EACA,kBAAkB,CAAC,GAAG,iBAAiB;EACvC,iBAAiB,CAAC,GAAG,gBAAgB;EACrC;EACA;EACD,EACD,6BACD;AACD,QAAO,MACL;EAAE;EAAY;EAAY,qBAAqB,CAAC,GAAG,gBAAgB;EAAE,EACrE,6BACD;AACD,QAAO,iBAAiB,cAAc;AACtC,yBAAwB,YAAY,KAAK;AACzC,QAAO;;AAGT,eAAsB,mBACpB,YACA,QACkB;AAClB,QAAO,MAAM,sBAAsB,WAAW,IAAI,OAAO,GAAG;CAE5D,MAAM,gBAAgB,gBAAgB,WAAW;CACjD,MAAM,YAAY,gBAAgB,OAAO;AACzC,KAAI,CAAC,iBAAiB,CAAC,WAAW;AAChC,SAAO,KACL;GAAE;GAAY;GAAQ,EACtB,4CACD;AACD,SAAO;;CAGT,MAAM,eAAe,wBACnB,QACA,WACA,YACA,cACD;AACD,KAAI,UAAU,aAAa,EAAE;AAC3B,SAAO,MACL,+CAA+C,aAAa,GAC7D;AACD,SAAO;;AAGT,QAAO,MACL,oEAAoE,aACrE;CAED,IAAI,SAAS;AACb,OAAM,SAAS;AACf,OAAM,gBAAgB;CAEtB,MAAM,aAAa,OAAO;AAC1B,KAAI;AACF,QAAM,IAAI,MAAM,UAAU,KAAK;AAE/B,MAAI,eAAe,WACjB,OAAM,IAAI,SAAS,WAAW;AAEhC,QAAM,IAAI,MAAM;GAAC;GAAe;GAAW,UAAU;GAAS,CAAC;UACxD,KAAK;AACZ,WAAS;;AAET,MAAI,CAAC,KAAK,KAAK,WAAW,OACxB,QAAO,MACL;GAAE;GAAY;GAAQ;GAAK,EAC3B,oCACD;WAEK;AACR,MAAI;AACF,SAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AAC5B,OAAI,eAAe,WACjB,OAAM,IAAI,SAAS,WAAW;WAEzB,qDAAmD;AAC1D,UAAO,MACL;IAAE;IAAY;IAAQ;IAAK,EAC3B,oCACD;;;AAIL,yBAAwB,QAAQ,OAAO;AACvC,QAAO,MAAM,0BAA0B,SAAS;AAChD,QAAO;;AAGT,eAAsB,aAAa,YAAmC;AACpE,OAAM,SAAS;AACf,KAAI;EACF,MAAM,gBAAgB;GAAC;GAAQ;GAAY;GAAU;GAAW;AAEhE,MAAI,aAAa,CAAC,SAAS,OAAO,CAChC,eAAc,KAAK,cAAc;AAGnC,QAAM,eAAe,IAAI,IAAI,cAAc,CAAC;AAC5C,SAAO,MAAM,0BAA0B,aAAa;UAC7C,KAAK;EACZ,MAAM,aAAa,wBAAwB,IAAI;;AAE/C,MAAI,WACF,OAAM;AAER,SAAO,MAAM,yCAAyC,aAAa;;AAErE,KAAI;AACF,QAAM,kBAAkB,WAAW;;AAEnC,SAAO,MAAM,yBAAyB,aAAa;UAC5C,KAAK;EACZ,MAAM,aAAa,wBAAwB,IAAI;;AAE/C,MAAI,WACF,OAAM;AAER,SAAO,MAAM,wCAAwC,aAAa;;AAEpE,QAAO,OAAO,cAAc;;AAG9B,eAAsB,aAAa,gBAAuC;CACxE,IAAI;AACJ,KAAI;AACF,QAAM,SAAS;AACf,QAAM,gBAAgB;AACtB,QAAM,IAAI,MAAM,UAAU,KAAK;AAC/B,QAAM,eACJ,IAAI,SAAS;GACX;GACA,OAAO;GACP,YAAY,OAAO;GACpB,CAAC,CACH;AACD,WAAS,MAAM,IAAI,QAAQ;AAC3B,QAAM,aAAa,eAAe;AAClC,QAAM,eAAe,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;UACxC,KAAK;AACZ,SAAO,MACL;GACE,YAAY,OAAO;GACnB,SAAS,OAAO;GAChB;GACA;GACA;GACD,EACD,qBACD;AACD,QAAM;;;AAIV,eAAsB,YAAY,YAAmC;CACnE,IAAI;AACJ,KAAI;AACF,QAAM,SAAS;AACf,QAAM,gBAAgB;AACtB,QAAM,IAAI,MAAM,UAAU,KAAK;AAC/B,QAAM,eACJ,IAAI,SAAS;GAAC;GAAM;GAAY,YAAY;GAAW,CAAC,CACzD;AACD,QAAM,eACJ,IAAI,SAAS;GACX;GACA,OAAO;GACP,YAAY,OAAO;GACpB,CAAC,CACH;AACD,WAAS,MAAM,IAAI,QAAQ;AAC3B,QAAM,eAAe,IAAI,MAAM,CAAC,aAAa,WAAW,CAAC,CAAC;AAC1D,QAAM,eAAe,IAAI,KAAK,UAAU,OAAO,cAAc,CAAC;AAC9D,kBAAgB,UAAU;UACnB,KAAK;AACZ,SAAO,MACL;GACE,YAAY,OAAO;GACnB,SAAS,OAAO;GAChB;GACA,WAAW,gBAAgB,WAAW;GACtC;GACA;GACD,EACD,oBACD;AACD,QAAM;;;AAIV,eAAe,cAAc,KAAgD;CAC3E,MAAM,SAAS,MAAM,IAAI,KAAK;EAAC;EAAM;EAAgB;EAAI,CAAC;AAC1D,QAAO,SAAS,QAAQ,OAAO,MAAM,CAAC,CAAC,OAAO;;AAGhD,eAAsB,wBACpB,YACe;AACf,OAAM,SAAS;AACf,KAAI;AAEF,UADa,MAAM,cAAc,YAAY,WAAW,EAC5C,UAAU;UACf,KAAK;EACZ,MAAM,aAAa,wBAAwB,IAAI;;AAE/C,MAAI,WACF,OAAM;AAER,yBAAO,IAAI,MAAM;;;AAIrB,SAAgB,eAAe,YAA8C;AAC3E,QAAO,sBAAsB,UAAU,aAAa;;AAGtD,SAAgB,yBACd,iBAC0B;AAC1B,QAAO,sBAAsB,gBAAgB;;AAG/C,eAAe,sBACb,SAC0B;AAC1B,OAAM,SAAS;AACf,KAAI;AAIF,UAHa,MAAM,eACjB,IAAI,YAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAC1C,EACW,MAAM,KAAK,SAAS,KAAK,KAAK;UACnC,oDAAmD;AAC1D,SAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;EACnD,MAAM,aAAa,wBAAwB,IAAI;AAC/C,MAAI,WACF,OAAM;AAER,SAAO;;;AAIX,eAAsB,QACpB,UACA,YACwB;AACxB,OAAM,SAAS;AACf,KAAI;EACF,MAAM,UAAU,MAAM,IAAI,KAAK,CAC7B,aAAa,cAAc,OAAO,iBAAiB,MAAM,SAC1D,CAAC;AAEF,mDAAiD,UAAU,QAAQ;AAEnE,SAAO;UACA,KAAK;EACZ,MAAM,aAAa,wBAAwB,IAAI;;AAE/C,MAAI,WACF,OAAM;AAER,SAAO;;;AAIX,eAAsB,SACpB,WACwC;CACxC,MAAM,iBAAgD,EAAE;AAExD,MAAK,MAAM,YAAY,UACrB,gBAAe,YAAY,MAAM,QAAQ,SAAS;AAGpD,QAAO;;AAGT,eAAsB,QACpB,WACA,WACkB;AAClB,OAAM,SAAS;AACf,KAAI;AACF,SACG,MAAM,eAAe,IAAI,KAAK;GAAC;GAAW;GAAW;GAAK,CAAC,CAAC,KAAM;SAE/D;AACN,SAAO;;;AAIX,eAAe,iBAAiB,UAAiC;AAC/D,KAAI,CAAC,eAAe;AAClB,QAAM,iBAAiB;AACvB,kBAAgB;;AAElB,OAAM,iBAAiB,SAAS;AAChC,OAAM,gBAAgB;;;;;;;;;;;;;;AAexB,eAAsB,cAAc,EAClC,YACA,OACA,SACA,QAAQ,SAC0C;CAClD,MAAM,WAAW,aAAa,IAAI,WAAW;AAC7C,OAAM,SAAS;AACf,QAAO,MAAM,4CAA4C,aAAa;AACtE,OAAM,iBAAiB,SAAS;AAChC,KAAI;AACF,QAAM,IAAI,MAAM,UAAU,KAAK;AAC/B,QAAM,IAAI,IAAI,CAAC,SAAS,MAAM,CAAC;EAC/B,MAAM,kBAAkB,OAAO;AAC/B,QAAM,eACJ,IAAI,SAAS;GAAC;GAAM;GAAY,YAAY,OAAO;GAAc,CAAC,CACnE;EACD,MAAM,eAAyB,EAAE;EACjC,MAAM,qBAA+B,EAAE;EACvC,MAAM,eAAyB,EAAE;AACjC,OAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,WAAW,KAAK;AACtB,OAAI,KAAK,SAAS,WAChB,KAAI;AACF,UAAM,IAAI,GAAG,CAAC,SAAS,CAAC;AACxB,iBAAa,KAAK,SAAS;YACpB,sDAAmD;IAC1D,MAAM,aAAa,wBAAwB,IAAI;AAC/C,QAAI,WACF,OAAM;AAER,WAAO,MAAM;KAAE;KAAK;KAAU,EAAE,qBAAqB;AACrD,iBAAa,KAAK,SAAS;;QAExB;AACL,QAAI,MAAM,YAAY,MAAM,KAAK,UAAU,SAAS,CAAC,CAEnD,QAAO,MAAM,EAAE,UAAU,EAAE,0BAA0B;aAC5C,KAAK,aAAa,KAC3B;SACK;KACL,IAAI;;AAEJ,SAAI,OAAO,KAAK,aAAa,SAC3B,YAAW,OAAO,KAAK,KAAK,SAAS;SAErC,YAAW,KAAK;AAIlB,SAAI,KAAK,UACP,OAAM,GAAG,QAAQ,KAAK,UAAU,MAAM,KAAK,UAAU,SAAS,CAAC;SAE/D,OAAM,GAAG,WAAW,MAAM,KAAK,UAAU,SAAS,EAAE,UAAU,EAC5D,MAAM,KAAK,eAAe,MAAQ,KACnC,CAAC;;AAGN,QAAI;;KAEF,MAAM,YACJ,aAAa,oBAAoB,CAAC,KAAK,CAAC,MAAM,SAAS,GAAG;AAC5D,WAAM,IAAI,IAAI,UAAU;AACxB,SAAI,KAAK,aACP,OAAM,IAAI,IAAI;MAAC;MAAgB;MAAc;MAAS,CAAC;AAEzD,wBAAmB,KAAK,SAAS;aAC1B,uDAAmD;AAC1D,SACE,CAAC,IAAI,QAAQ,SACX,kEACD,CAED,OAAM;AAER,YAAO,MAAM,+BAA+B,WAAW;AACvD,kBAAa,KAAK,KAAK,KAAK;;;;EAKlC,MAAM,gBAAyB,EAAE;AACjC,MAAI,aAAa,CAAC,SAAS,SAAS,CAClC,eAAc,iBAAiB;EAGjC,MAAM,YAAY,MAAM,IAAI,OAAO,SAAS,EAAE,EAAE,cAAc;AAC9D,MACE,iBAAiB,UAAU,QAAQ,IACnC,UAAU,QAAQ,YAAY,KAC9B,UAAU,QAAQ,eAAe,KACjC,UAAU,QAAQ,cAAc,GAChC;AACA,UAAO,KAAK,EAAE,WAAW,EAAE,4CAA4C;AACvE,UAAO;;AAET,SAAO,MACL;GAAE;GAAc;GAAc,QAAQ;GAAW,EACjD,aACD;AACD,MAAI,CAAC,SAAS,CAAE,MAAM,QAAQ,QAAQ,UAAU,aAAa,EAAG;AAC9D,UAAO,MACL;IAAE;IAAY;IAAc;IAAoB;IAAc,EAC9D,4CACD;AACD,UAAO;;AAiBT,SAX6B;GAC3B;GACA,YAJA,MAAM,IAAI,SAAS,CAAC,WAAW,CAAC,EAChC,MAAM;GAIN,OAAO,MAAM,QAAQ,eAAe;AAClC,QAAI,WAAW,SAAS,WACtB,QAAO,aAAa,SAAS,WAAW,KAAK;AAE/C,WAAO,mBAAmB,SAAS,WAAW,KAAK;KACnD;GACH;UAGM,oDAAmD;AAC1D,SAAO,kBAAkB,KAAK,YAAY,MAAM;;;AAIpD,eAAsB,WAAW,EAC/B,WACA,WACA,OACA,eACoC;AACpC,OAAM,SAAS;AACf,QAAO,MAAM,mBAAmB,UAAU,GAAG,aAAa,YAAY;CACtE,IAAI,SAAS;AACb,KAAI;EACF,MAAM,aAA0B;GAC9B,sBAAsB;GACtB,MAAM;GACP;AACD,MAAI,aAAa,CAAC,SAAS,OAAO,CAChC,YAAW,iBAAiB;AAE9B,MAAI,YACF,YAAW,mBAAmB;EAGhC,MAAM,UAAU,MAAM,eACpB,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,aAAa,aAAa,WAAW,CACzE;AACD,SAAO,QAAQ;AACf,SAAO,MAAM,EAAE,QAAQ,SAAS,EAAE,WAAW;AAC7C,kBAAgB,UAAU;AAC1B,gBAAc,gBAAgB;AAC9B,WAAS;UACF,oDAAmD;AAC1D,oBAAkB,KAAK,WAAW,MAAM;;AAE1C,QAAO;;AAGT,eAAsB,YACpB,YAC+B;AAC/B,OAAM,SAAS;AACf,QAAO,MAAM,mBAAmB,aAAa;AAC7C,KAAI;EACF,MAAM,MAAM,cAAc,WAAW,uBAAuB;AAC5D,QAAM,eAAe,IAAI,KAAK;GAAC;GAAU;GAAK;GAAU,CAAC,CAAC;EAC1D,MAAM,UAAU,MAAM,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM;AACxD,SAAO,cAAc,cAAc;AACnC,SAAO,iBAAiB,cAAc;AACtC,SAAO;UACA,oDAAmD;AAC1D,SAAO,kBAAkB,KAAK,WAAW;;;AAI7C,eAAsB,YACpB,cAC+B;AAC/B,KAAI;EACF,MAAM,eAAe,MAAM,cAAc,aAAa;AACtD,MAAI;;OACiB,MAAM,WAAW;IAClC,WAAW,aAAa;IACxB,OAAO,aAAa;IACrB,CAAC,EAEc;IACd,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;AACtB,WAAO,cAAc,cAAc;AACnC,WAAO,iBAAiB,cAAc;AACtC,WAAO;;;AAGX,SAAO;UACA,oDAAmD;AAC1D,MAAI,IAAI,QAAQ,SAAS,0BAA0B,CACjD,OAAM,IAAI,MAAM,mBAAmB;AAErC,QAAM;;;AAIV,SAAgB,OAAO,EACrB,UACA,MACA,UACA,MACA,cAOS;AACT,KAAI,aAAa,MAEf,QAAO,OAAO,SAAU,GAAG,WAAW;AAExC,QAAO,IAAI,OAAO;EAChB,UAAU,YAAY;EACtB;EACA;EACA;EACA,UAAU,aAAa;EACxB,CAAC;;AAGJ,IAAI,kBAAkB;;;;;;;;;AAUtB,eAAsB,wBACpB,WACA,SACe;CACf,MAAM,cAAc,0BAA0B;AAC9C,OAAM,IAAI,IAAI;EAAC;EAAc;EAAa;EAAU,CAAC;AACrD,OAAM,IAAI,KAAK;EAAC;EAAW;EAAU;EAAY,CAAC;AAClD,mBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;AA0BpB,eAAsB,oBAAmC;AACvD,KAAI,CAAC,kBAAkB,CAAC,gBACtB;AAGF,QAAO,MAAM,sDAAsD;CACnE,MAAM,eAAyB,EAAE;AAEjC,KAAI;EAKF,MAAM,QAJY,MAAM,IAAI,WAAW,CACrC,OAAO,KACP,2BACD,CAAC,EAEC,MAAM,aAAa,CACnB,KAAK,SAAS,KAAK,QAAQ,MAAM,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAC9D,QAAQ,SAAS,KAAK,WAAW,0BAA0B,CAAC;AAC/D,eAAa,KAAK,GAAG,KAAK;UACnB,oDAAmD;AAC1D,SAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;;;AAIrD,KAAI,aAAa,OACf,KAAI;EACF,MAAM,WAAW;GAAC;GAAY;GAAU,GAAG;GAAa;AACxD,QAAM,IAAI,KAAK,SAAS;UACjB,KAAK;;AAEZ,MAAI,sBAAsB,IAAI,CAC5B,MAAK,MAAM,OAAO,aAChB,KAAI;GACF,MAAM,WAAW;IAAC;IAAY;IAAU;IAAI;AAC5C,SAAM,IAAI,KAAK,SAAS;WACjB,qDAAmD;AAC1D,UAAO,MAAM,EAAE,KAAK,EAAE,8CAA4C;AAClE;;MAIJ,QAAO,KAAK,EAAE,KAAK,EAAE,8CAA4C;;AAKvE,mBAAkB;;AAGpB,MAAM,gBAAgB,MACpB,oFACD;AAED,MAAM,eAAe,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;AAwBhE,eAAsB,eACpB,WACqB;CACrB,MAAM,eAAe,MAAM,IAAI,QAAQ,CAAC,MAAM,UAAU,CAAC;;CAEzD,MAAM,EAAE,YAAY,aAAa,KAAK,aAAa,EAAE,UAAU,EAAE;CAEjE,MAAM,SADW,MAAM,IAAI,QAAQ,CAAC,MAAM,QAAQ,CAAC,EAC5B,MAAM,aAAa;CAC1C,MAAM,SAAqB,EAAE;AAC7B,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,cAAc,cAAc,KAAK,KAAK,EAAE;AAC9C,MAAI,aAAa;GACf,MAAM,EAAE,MAAM,MAAM,MAAM,QAAQ;AAClC,UAAO,KAAK;IAAE;IAAM;IAAM;IAAW;IAAsB,CAAC;;;AAGhE,QAAO;;AAGT,eAAe,kBAAkB,YAAsC;AACrE,OAAM,SAAS;AAEf,SADsB,MAAM,IAAI,aAAa,EACxB,IAAI,SAAS,WAAW;;;;;;;;;;;;;;;;AAiB/C,eAAsB,qBAAqB,YAAmC;AAC5E,KAAI,CAAC,OAAO,YACV;AAEF,QAAO,MACL,4BAA4B,uBAAuB,sBAAsB,aAC1E;;AAGD,KAAI,EAFY,MAAM,YAAY,EAErB,MAAM,MAAM,MAAA,yBAA6B,CACpD,OAAM,IAAI,MAAM,8CAA8C;AAEhE,KAAI;AACF,QAAM,IAAI,MAAM,CAAC,uBAAuB,CAAC;AACzC,MAAI,MAAM,kBAAkB,WAAW,CACrC,OAAM,eAAe,WAAW;MAEhC,OAAM,yBAAyB,YAAY,uBAAuB;AAEpE,QAAM,oBAAoB,GAAG,uBAAuB,GAAG,aAAa;AACpE,QAAM,kBAAkB,YAAY,SAAS;UACtC,+CAA8C;AACrD,SAAO,MAAM,EAAE,KAAK,EAAE,2BAA2B;AACjD,QAAM,IAAI,MAAM,cAAc;;;AAIlC,eAAsB,aAAgC;AACpD,QAAO,MAAM,mBAAmB;AAChC,KAAI;AACF,QAAM,SAAS;EACf,MAAM,UAAU,MAAM,IAAI,YAAY;AACtC,SAAO,MAAM,kBAAkB,QAAQ,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,GAAG;AACvE,SAAO,QAAQ,KAAK,WAAW,OAAO,KAAK;UACpC,2BAA0B;AACjC,SAAO,MAAM,EAAE,KAAK,EAAE,wBAAwB;AAC9C,QAAM"}
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.108.1",
4
+ "version": "43.109.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -218,7 +218,6 @@
218
218
  "@commander-js/extra-typings": "14.0.0",
219
219
  "@containerbase/istanbul-reports-html": "1.1.42",
220
220
  "@containerbase/semantic-release-pnpm": "1.3.32",
221
- "@eslint/js": "9.39.4",
222
221
  "@hyrious/marshal": "0.3.3",
223
222
  "@ls-lint/ls-lint": "2.3.1",
224
223
  "@openpgp/web-stream-tools": "0.3.0",
@@ -233,7 +232,7 @@
233
232
  "@types/changelog-filename-regex": "2.0.2",
234
233
  "@types/clean-git-ref": "2.0.2",
235
234
  "@types/common-tags": "1.8.4",
236
- "@types/eslint-config-prettier": "6.11.3",
235
+ "@types/eslint": "9.6.1",
237
236
  "@types/estree": "1.0.8",
238
237
  "@types/fs-extra": "11.0.4",
239
238
  "@types/github-url-from-git": "1.5.3",
@@ -266,12 +265,7 @@
266
265
  "conventional-changelog-conventionalcommits": "9.3.1",
267
266
  "emojibase-data": "17.0.0",
268
267
  "esbuild": "0.27.4",
269
- "eslint": "9.39.4",
270
- "eslint-config-prettier": "10.1.8",
271
- "eslint-formatter-gha": "2.0.1",
272
- "eslint-plugin-oxlint": "1.57.0",
273
268
  "expect-more-jest": "5.5.0",
274
- "globals": "17.4.0",
275
269
  "graphql": "16.13.2",
276
270
  "husky": "9.1.7",
277
271
  "jest-extended": "7.0.0",
@@ -291,9 +285,8 @@
291
285
  "tsdown": "0.21.7",
292
286
  "type-fest": "5.5.0",
293
287
  "typescript": "5.9.3",
294
- "typescript-eslint": "8.58.0",
295
288
  "unified": "11.0.5",
296
- "vite": "8.0.0-beta.18",
289
+ "vite": "8.0.5",
297
290
  "vite-tsconfig-paths": "6.1.1",
298
291
  "vitest": "4.1.2",
299
292
  "vitest-mock-extended": "3.1.0"
@@ -322,16 +315,13 @@
322
315
  "biome": "biome check .",
323
316
  "biome-ci": "biome check --reporter=github .",
324
317
  "biome-fix": "biome check --write .",
325
- "eslint": "NODE_OPTIONS=--max-old-space-size=8192 eslint . --cache --cache-location .cache/eslint",
326
- "eslint-fix": "NODE_OPTIONS=--max-old-space-size=8192 eslint --cache --cache-location .cache/eslint --fix .",
327
- "eslint-ci": "NODE_OPTIONS=--max-old-space-size=8192 eslint . --cache --cache-strategy content --cache-location .cache/eslint --format gha",
328
318
  "generate": "run-s 'generate:*'",
329
319
  "generate:imports": "node tools/generate-imports.mjs",
330
320
  "git-check": "node tools/check-git-version.mjs",
331
321
  "jest": "GIT_ALLOW_PROTOCOL=file LOG_LEVEL=fatal vitest run --logHeapUsage",
332
322
  "vitest": "GIT_ALLOW_PROTOCOL=file LOG_LEVEL=fatal vitest run --logHeapUsage",
333
- "lint": "run-s ls-lint type-check oxlint biome eslint prettier markdown-lint git-check doc-fence-check",
334
- "lint-fix": "run-s oxlint-fix biome-fix eslint-fix prettier-fix markdown-lint-fix",
323
+ "lint": "run-s ls-lint type-check oxlint biome prettier markdown-lint git-check doc-fence-check",
324
+ "lint-fix": "run-s oxlint-fix biome-fix prettier-fix markdown-lint-fix",
335
325
  "check": "node tools/check/index.ts",
336
326
  "ls-lint": "ls-lint",
337
327
  "markdown-lint": "markdownlint-cli2",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 43.108.1 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 43.109.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "43.108.1",
5
+ "x-renovate-version": "43.109.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "properties": {