renovate 43.116.1 → 43.118.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.
@@ -22,7 +22,7 @@ const presets = {
22
22
  bitbucketPipelinesVersions: {
23
23
  customManagers: [{
24
24
  customType: "regex",
25
- managerFilePatterns: ["**/bitbucket-pipelines.{yml,yaml}"],
25
+ managerFilePatterns: ["**/*-pipelines.yml"],
26
26
  matchStrings: ["# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\s]+?))?\\s+.*\\s+[A-Za-z0-9_]+?_VERSION[ =:]\\s?[\"']?(?<currentValue>.+?)[\"']?\\s"]
27
27
  }],
28
28
  description: "Update `_VERSION` variables in Bitbucket Pipelines"
@@ -1 +1 @@
1
- {"version":3,"file":"custom-managers.preset.js","names":[],"sources":["../../../../lib/config/presets/internal/custom-managers.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\nexport const presets: Record<string, Preset> = {\n azurePipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/.azuredevops/**/*.{yml,yaml}',\n 'azure*pipeline*.{yml,yaml}',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in Azure Pipelines files.',\n },\n biomeVersions: {\n customManagers: [\n {\n customType: 'jsonata',\n datasourceTemplate: 'npm',\n depNameTemplate: '@biomejs/biome',\n fileFormat: 'json',\n managerFilePatterns: ['**/biome.{json,jsonc}'],\n matchStrings: ['{\"currentValue\": $split($.\"$schema\",(\"/\"))[-2]}'],\n },\n ],\n description:\n 'Update `$schema` version in `biome.json` configuration files.',\n },\n bitbucketPipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/bitbucket-pipelines.{yml,yaml}'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+.*\\\\s+[A-Za-z0-9_]+?_VERSION[ =:]\\\\s?[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Bitbucket Pipelines',\n },\n dockerfileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/[Dd]ockerfile*',\n '**/[Cc]ontainerfile*',\n '**/*.[Dd]ockerfile*',\n '**/*.[Cc]ontainerfile*',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s(?:ENV|ARG)\\\\s+[A-Za-z0-9_]+?_VERSION[ =][\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Dockerfiles.',\n },\n githubActionsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '/(^|/)(workflow-templates|\\\\.(?:github|gitea|forgejo)/(?:workflows|actions))/.+\\\\.ya?ml$/',\n '/(^|/)action\\\\.ya?ml$/',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitHub Action files.',\n },\n gitlabPipelineVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/*.gitlab-ci.{yml,yaml}'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitLab pipeline file.',\n },\n helmChartYamlAppVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate: 'docker',\n managerFilePatterns: ['**/Chart.yaml'],\n matchStrings: [\n '#\\\\s*renovate: image=(?<depName>.*?)\\\\s+appVersion:\\\\s*[\"\\']?(?<currentValue>[\\\\w+\\\\.\\\\-]*)',\n ],\n },\n ],\n description: 'Update `appVersion` value in Helm chart `Chart.yaml`.',\n },\n makefileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/[Mm]akefile', '**/GNUMakefile', '**/*.mk'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:*\\\\??=\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Makefiles.',\n },\n mavenPropertyVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate:\n '{{#if datasource}}{{{datasource}}}{{else}}maven{{/if}}',\n managerFilePatterns: ['**/pom.xml'],\n matchStrings: [\n '<!--\\\\s?renovate:( datasource=(?<datasource>[a-zA-Z0-9-._]+?))? depName=(?<depName>[^\\\\s]+?)(?: packageName=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?\\\\s+-->\\\\s+<.+\\\\.version>(?<currentValue>.+)<\\\\/.+\\\\.version>',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*.version` properties in `pom.xml` files.',\n },\n tfvarsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/*.tfvars'],\n matchStrings: [\n '#\\\\s*renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?(?: extractVersion=(?<extractVersion>.*?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s.*?_version\\\\s*=\\\\s*\"(?<currentValue>.*)\"',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*_version` variables in `.tfvars` files.',\n },\n tsconfigNodeVersions: {\n customManagers: [\n {\n autoReplaceStringTemplate: '\"@tsconfig/node{{{major}}}/tsconfig.json\"',\n currentValueTemplate: '{{{major}}}',\n customType: 'regex',\n datasourceTemplate: 'npm',\n managerFilePatterns: ['**/{j,t}sconfig.json', '**/{j,t}sconfig.*.json'],\n matchStrings: [\n '\"(?<depName>@tsconfig/node(?<major>\\\\d+))/tsconfig\\\\.json\"',\n ],\n },\n {\n autoReplaceStringTemplate: '\"@tsconfig/node{{{major}}}\"',\n currentValueTemplate: '{{{major}}}',\n customType: 'regex',\n datasourceTemplate: 'npm',\n managerFilePatterns: ['**/{j,t}sconfig.json', '**/{j,t}sconfig.*.json'],\n matchStrings: ['\"(?<depName>@tsconfig/node(?<major>\\\\d+))\"'],\n },\n ],\n description:\n 'Update `@tsconfig/node` extends in `tsconfig.json` and `jsconfig.json` files.',\n },\n};\n"],"mappings":";AAEA,MAAa,UAAkC;CAC7C,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,mCACA,6BACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,eAAe;EACb,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,iBAAiB;GACjB,YAAY;GACZ,qBAAqB,CAAC,wBAAwB;GAC9C,cAAc,CAAC,wDAAkD;GAClE,CACF;EACD,aACE;EACH;CACD,4BAA4B;EAC1B,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,oCAAoC;GAC1D,cAAc,CACZ,2VACD;GACF,CACF;EACD,aAAa;EACd;CACD,oBAAoB;EAClB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IACnB;IACA;IACA;IACA;IACD;GACD,cAAc,CACZ,8VACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,6FACA,yBACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,4BAA4B;GAClD,cAAc,CACZ,4UACD;GACF,CACF;EACD,aACE;EACH;CACD,0BAA0B;EACxB,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,gBAAgB;GACtC,cAAc,CACZ,8FACD;GACF,CACF;EACD,aAAa;EACd;CACD,kBAAkB;EAChB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IAAC;IAAkB;IAAkB;IAAU;GACpE,cAAc,CACZ,kVACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,oBACE;GACF,qBAAqB,CAAC,aAAa;GACnC,cAAc,CACZ,8RACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,gBAAgB;EACd,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,cAAc;GACpC,cAAc,CACZ,2OACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,sBAAsB;EACpB,gBAAgB,CACd;GACE,2BAA2B;GAC3B,sBAAsB;GACtB,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,wBAAwB,yBAAyB;GACvE,cAAc,CACZ,+DACD;GACF,EACD;GACE,2BAA2B;GAC3B,sBAAsB;GACtB,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,wBAAwB,yBAAyB;GACvE,cAAc,CAAC,+CAA6C;GAC7D,CACF;EACD,aACE;EACH;CACF"}
1
+ {"version":3,"file":"custom-managers.preset.js","names":[],"sources":["../../../../lib/config/presets/internal/custom-managers.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\nexport const presets: Record<string, Preset> = {\n azurePipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/.azuredevops/**/*.{yml,yaml}',\n 'azure*pipeline*.{yml,yaml}',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in Azure Pipelines files.',\n },\n biomeVersions: {\n customManagers: [\n {\n customType: 'jsonata',\n datasourceTemplate: 'npm',\n depNameTemplate: '@biomejs/biome',\n fileFormat: 'json',\n managerFilePatterns: ['**/biome.{json,jsonc}'],\n matchStrings: ['{\"currentValue\": $split($.\"$schema\",(\"/\"))[-2]}'],\n },\n ],\n description:\n 'Update `$schema` version in `biome.json` configuration files.',\n },\n bitbucketPipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/*-pipelines.yml'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+.*\\\\s+[A-Za-z0-9_]+?_VERSION[ =:]\\\\s?[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Bitbucket Pipelines',\n },\n dockerfileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/[Dd]ockerfile*',\n '**/[Cc]ontainerfile*',\n '**/*.[Dd]ockerfile*',\n '**/*.[Cc]ontainerfile*',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s(?:ENV|ARG)\\\\s+[A-Za-z0-9_]+?_VERSION[ =][\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Dockerfiles.',\n },\n githubActionsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '/(^|/)(workflow-templates|\\\\.(?:github|gitea|forgejo)/(?:workflows|actions))/.+\\\\.ya?ml$/',\n '/(^|/)action\\\\.ya?ml$/',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitHub Action files.',\n },\n gitlabPipelineVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/*.gitlab-ci.{yml,yaml}'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitLab pipeline file.',\n },\n helmChartYamlAppVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate: 'docker',\n managerFilePatterns: ['**/Chart.yaml'],\n matchStrings: [\n '#\\\\s*renovate: image=(?<depName>.*?)\\\\s+appVersion:\\\\s*[\"\\']?(?<currentValue>[\\\\w+\\\\.\\\\-]*)',\n ],\n },\n ],\n description: 'Update `appVersion` value in Helm chart `Chart.yaml`.',\n },\n makefileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/[Mm]akefile', '**/GNUMakefile', '**/*.mk'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:*\\\\??=\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Makefiles.',\n },\n mavenPropertyVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate:\n '{{#if datasource}}{{{datasource}}}{{else}}maven{{/if}}',\n managerFilePatterns: ['**/pom.xml'],\n matchStrings: [\n '<!--\\\\s?renovate:( datasource=(?<datasource>[a-zA-Z0-9-._]+?))? depName=(?<depName>[^\\\\s]+?)(?: packageName=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?\\\\s+-->\\\\s+<.+\\\\.version>(?<currentValue>.+)<\\\\/.+\\\\.version>',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*.version` properties in `pom.xml` files.',\n },\n tfvarsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/*.tfvars'],\n matchStrings: [\n '#\\\\s*renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?(?: extractVersion=(?<extractVersion>.*?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s.*?_version\\\\s*=\\\\s*\"(?<currentValue>.*)\"',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*_version` variables in `.tfvars` files.',\n },\n tsconfigNodeVersions: {\n customManagers: [\n {\n autoReplaceStringTemplate: '\"@tsconfig/node{{{major}}}/tsconfig.json\"',\n currentValueTemplate: '{{{major}}}',\n customType: 'regex',\n datasourceTemplate: 'npm',\n managerFilePatterns: ['**/{j,t}sconfig.json', '**/{j,t}sconfig.*.json'],\n matchStrings: [\n '\"(?<depName>@tsconfig/node(?<major>\\\\d+))/tsconfig\\\\.json\"',\n ],\n },\n {\n autoReplaceStringTemplate: '\"@tsconfig/node{{{major}}}\"',\n currentValueTemplate: '{{{major}}}',\n customType: 'regex',\n datasourceTemplate: 'npm',\n managerFilePatterns: ['**/{j,t}sconfig.json', '**/{j,t}sconfig.*.json'],\n matchStrings: ['\"(?<depName>@tsconfig/node(?<major>\\\\d+))\"'],\n },\n ],\n description:\n 'Update `@tsconfig/node` extends in `tsconfig.json` and `jsconfig.json` files.',\n },\n};\n"],"mappings":";AAEA,MAAa,UAAkC;CAC7C,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,mCACA,6BACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,eAAe;EACb,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,iBAAiB;GACjB,YAAY;GACZ,qBAAqB,CAAC,wBAAwB;GAC9C,cAAc,CAAC,wDAAkD;GAClE,CACF;EACD,aACE;EACH;CACD,4BAA4B;EAC1B,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,qBAAqB;GAC3C,cAAc,CACZ,2VACD;GACF,CACF;EACD,aAAa;EACd;CACD,oBAAoB;EAClB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IACnB;IACA;IACA;IACA;IACD;GACD,cAAc,CACZ,8VACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,6FACA,yBACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,4BAA4B;GAClD,cAAc,CACZ,4UACD;GACF,CACF;EACD,aACE;EACH;CACD,0BAA0B;EACxB,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,gBAAgB;GACtC,cAAc,CACZ,8FACD;GACF,CACF;EACD,aAAa;EACd;CACD,kBAAkB;EAChB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IAAC;IAAkB;IAAkB;IAAU;GACpE,cAAc,CACZ,kVACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,oBACE;GACF,qBAAqB,CAAC,aAAa;GACnC,cAAc,CACZ,8RACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,gBAAgB;EACd,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,cAAc;GACpC,cAAc,CACZ,2OACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,sBAAsB;EACpB,gBAAgB,CACd;GACE,2BAA2B;GAC3B,sBAAsB;GACtB,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,wBAAwB,yBAAyB;GACvE,cAAc,CACZ,+DACD;GACF,EACD;GACE,2BAA2B;GAC3B,sBAAsB;GACtB,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,wBAAwB,yBAAyB;GACvE,cAAc,CAAC,+CAA6C;GAC7D,CACF;EACD,aACE;EACH;CACF"}
@@ -2,6 +2,8 @@ import { logger } from "../../../logger/index.js";
2
2
  import { readLocalFile } from "../../../util/fs/index.js";
3
3
  import { MavenDatasource } from "../../datasource/maven/index.js";
4
4
  import { isXmlElement } from "../nuget/util.js";
5
+ import { applyProps, findAttrValuePosition, parsePropertiesFile, resolveChainedProps } from "./properties.js";
6
+ import upath from "upath";
5
7
  import { XmlDocument } from "xmldoc";
6
8
  //#region lib/modules/manager/ant/extract.ts
7
9
  const scopeNames = new Set([
@@ -15,24 +17,29 @@ function getDependencyType(scope) {
15
17
  if (scope && scopeNames.has(scope)) return scope;
16
18
  return "compile";
17
19
  }
18
- function collectDependency(node) {
20
+ function collectDependency(node, packageFile, content) {
19
21
  const { groupId, artifactId, version, scope } = node.attr;
20
22
  if (!version || !groupId || !artifactId) return null;
21
- return {
23
+ const dep = {
22
24
  datasource: MavenDatasource.id,
23
25
  depName: `${groupId}:${artifactId}`,
24
26
  currentValue: version,
25
27
  depType: getDependencyType(scope),
26
28
  registryUrls: []
27
29
  };
30
+ dep.fileReplacePosition = findAttrValuePosition(content, node, "version");
31
+ return {
32
+ dep,
33
+ depPackageFile: packageFile
34
+ };
28
35
  }
29
- function walkNode(node, deps) {
36
+ function walkNode(node, rawDeps, packageFile, content) {
30
37
  for (const child of node.children) {
31
38
  if (!isXmlElement(child)) continue;
32
39
  if (child.name === "dependency") {
33
- const dep = collectDependency(child);
34
- if (dep) deps.push(dep);
35
- } else walkNode(child, deps);
40
+ const rawDep = collectDependency(child, packageFile, content);
41
+ if (rawDep) rawDeps.push(rawDep);
42
+ } else walkNode(child, rawDeps, packageFile, content);
36
43
  }
37
44
  }
38
45
  function extractPackageFile(content, packageFile) {
@@ -43,32 +50,87 @@ function extractPackageFile(content, packageFile) {
43
50
  logger.debug(`ant manager: could not parse XML ${packageFile}`);
44
51
  return null;
45
52
  }
46
- const deps = [];
47
- walkNode(doc, deps);
53
+ const rawDeps = [];
54
+ walkNode(doc, rawDeps, packageFile, content);
55
+ const deps = rawDeps.map((rd) => rd.dep);
48
56
  if (deps.length === 0) return null;
49
57
  return { deps };
50
58
  }
51
- async function walkXmlFile(packageFile, visitedFiles) {
52
- if (visitedFiles.has(packageFile)) return null;
59
+ /**
60
+ * Walk an XML node tree in document order, processing properties,
61
+ * property file references, and dependencies as they appear.
62
+ */
63
+ async function walkNodeInOrder(node, packageFile, content, visitedFiles, allProps, allRawDeps) {
64
+ const baseDir = upath.dirname(packageFile);
65
+ for (const child of node.children) {
66
+ if (!isXmlElement(child)) continue;
67
+ if (child.name === "property") {
68
+ const name = child.attr.name;
69
+ const value = child.attr.value;
70
+ if (name && value && !(name in allProps)) allProps[name] = {
71
+ val: value,
72
+ fileReplacePosition: findAttrValuePosition(content, child, "value"),
73
+ packageFile
74
+ };
75
+ const file = child.attr.file;
76
+ if (file) {
77
+ const propFilePath = file.startsWith("/") ? file : upath.join(baseDir, file);
78
+ if (!visitedFiles.has(propFilePath)) {
79
+ visitedFiles.add(propFilePath);
80
+ const propContent = await readLocalFile(propFilePath, "utf8");
81
+ if (propContent) parsePropertiesFile(propContent, propFilePath, allProps);
82
+ else logger.debug(`ant manager: could not read properties file ${propFilePath}`);
83
+ }
84
+ }
85
+ } else if (child.name === "dependency") {
86
+ const rawDep = collectDependency(child, packageFile, content);
87
+ if (rawDep) allRawDeps.push(rawDep);
88
+ } else await walkNodeInOrder(child, packageFile, content, visitedFiles, allProps, allRawDeps);
89
+ }
90
+ }
91
+ async function walkXmlFile(packageFile, visitedFiles, allProps, allRawDeps) {
53
92
  visitedFiles.add(packageFile);
54
93
  const content = await readLocalFile(packageFile, "utf8");
55
94
  if (!content) {
56
95
  logger.debug(`ant manager: could not read ${packageFile}`);
57
- return null;
96
+ return;
58
97
  }
59
- const result = extractPackageFile(content, packageFile);
60
- if (!result) return null;
61
- return {
62
- packageFile,
63
- ...result
64
- };
98
+ let doc;
99
+ try {
100
+ doc = new XmlDocument(content);
101
+ } catch {
102
+ logger.debug(`ant manager: could not parse XML ${packageFile}`);
103
+ return;
104
+ }
105
+ await walkNodeInOrder(doc, packageFile, content, visitedFiles, allProps, allRawDeps);
65
106
  }
66
107
  async function extractAllPackageFiles(_config, packageFiles) {
67
108
  const results = [];
68
- const visitedFiles = /* @__PURE__ */ new Set();
109
+ const seen = /* @__PURE__ */ new Set();
69
110
  for (const packageFile of packageFiles) {
70
- const result = await walkXmlFile(packageFile, visitedFiles);
71
- if (result) results.push(result);
111
+ if (seen.has(packageFile)) continue;
112
+ seen.add(packageFile);
113
+ const visitedFiles = /* @__PURE__ */ new Set();
114
+ const allProps = {};
115
+ const allRawDeps = [];
116
+ await walkXmlFile(packageFile, visitedFiles, allProps, allRawDeps);
117
+ resolveChainedProps(allProps);
118
+ const resolvedDeps = allRawDeps.map((rawDep) => applyProps(rawDep.dep, rawDep.depPackageFile, allProps));
119
+ if (resolvedDeps.length === 0) continue;
120
+ const fileMap = /* @__PURE__ */ new Map();
121
+ for (let i = 0; i < resolvedDeps.length; i++) {
122
+ const dep = resolvedDeps[i];
123
+ const targetFile = dep.propSource ?? allRawDeps[i].depPackageFile;
124
+ if (!fileMap.has(targetFile)) fileMap.set(targetFile, []);
125
+ fileMap.get(targetFile).push(dep);
126
+ }
127
+ for (const [pkgFile, deps] of fileMap) {
128
+ for (const dep of deps) delete dep.propSource;
129
+ results.push({
130
+ packageFile: pkgFile,
131
+ deps
132
+ });
133
+ }
72
134
  }
73
135
  return results.length > 0 ? results : null;
74
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/ant/extract.ts"],"sourcesContent":["import type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { MavenDatasource } from '../../datasource/maven/index.ts';\nimport { isXmlElement } from '../nuget/util.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types.ts';\n\nconst scopeNames = new Set([\n 'compile',\n 'runtime',\n 'test',\n 'provided',\n 'system',\n]);\n\nfunction getDependencyType(scope: string | undefined): string {\n if (scope && scopeNames.has(scope)) {\n return scope;\n }\n return 'compile';\n}\n\nfunction collectDependency(node: XmlElement): PackageDependency | null {\n const { groupId, artifactId, version, scope } = node.attr;\n\n if (!version || !groupId || !artifactId) {\n return null;\n }\n\n return {\n datasource: MavenDatasource.id,\n depName: `${groupId}:${artifactId}`,\n currentValue: version,\n depType: getDependencyType(scope),\n registryUrls: [],\n };\n}\n\nfunction walkNode(\n node: XmlElement | XmlDocument,\n deps: PackageDependency[],\n): void {\n for (const child of node.children) {\n if (!isXmlElement(child)) {\n continue;\n }\n\n if (child.name === 'dependency') {\n const dep = collectDependency(child);\n if (dep) {\n deps.push(dep);\n }\n } else {\n walkNode(child, deps);\n }\n }\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n let doc: XmlDocument;\n try {\n doc = new XmlDocument(content);\n } catch {\n logger.debug(`ant manager: could not parse XML ${packageFile}`);\n return null;\n }\n\n const deps: PackageDependency[] = [];\n walkNode(doc, deps);\n\n if (deps.length === 0) {\n return null;\n }\n\n return { deps };\n}\n\nasync function walkXmlFile(\n packageFile: string,\n visitedFiles: Set<string>,\n): Promise<PackageFile | null> {\n if (visitedFiles.has(packageFile)) {\n return null;\n }\n visitedFiles.add(packageFile);\n\n const content = await readLocalFile(packageFile, 'utf8');\n if (!content) {\n logger.debug(`ant manager: could not read ${packageFile}`);\n return null;\n }\n\n const result = extractPackageFile(content, packageFile);\n if (!result) {\n return null;\n }\n\n return { packageFile, ...result };\n}\n\nexport async function extractAllPackageFiles(\n _config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const results: PackageFile[] = [];\n const visitedFiles = new Set<string>();\n\n for (const packageFile of packageFiles) {\n const result = await walkXmlFile(packageFile, visitedFiles);\n if (result) {\n results.push(result);\n }\n }\n\n return results.length > 0 ? results : null;\n}\n"],"mappings":";;;;;;AAaA,MAAM,aAAa,IAAI,IAAI;CACzB;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAS,kBAAkB,OAAmC;AAC5D,KAAI,SAAS,WAAW,IAAI,MAAM,CAChC,QAAO;AAET,QAAO;;AAGT,SAAS,kBAAkB,MAA4C;CACrE,MAAM,EAAE,SAAS,YAAY,SAAS,UAAU,KAAK;AAErD,KAAI,CAAC,WAAW,CAAC,WAAW,CAAC,WAC3B,QAAO;AAGT,QAAO;EACL,YAAY,gBAAgB;EAC5B,SAAS,GAAG,QAAQ,GAAG;EACvB,cAAc;EACd,SAAS,kBAAkB,MAAM;EACjC,cAAc,EAAE;EACjB;;AAGH,SAAS,SACP,MACA,MACM;AACN,MAAK,MAAM,SAAS,KAAK,UAAU;AACjC,MAAI,CAAC,aAAa,MAAM,CACtB;AAGF,MAAI,MAAM,SAAS,cAAc;GAC/B,MAAM,MAAM,kBAAkB,MAAM;AACpC,OAAI,IACF,MAAK,KAAK,IAAI;QAGhB,UAAS,OAAO,KAAK;;;AAK3B,SAAgB,mBACd,SACA,aAC2B;CAC3B,IAAI;AACJ,KAAI;AACF,QAAM,IAAI,YAAY,QAAQ;SACxB;AACN,SAAO,MAAM,oCAAoC,cAAc;AAC/D,SAAO;;CAGT,MAAM,OAA4B,EAAE;AACpC,UAAS,KAAK,KAAK;AAEnB,KAAI,KAAK,WAAW,EAClB,QAAO;AAGT,QAAO,EAAE,MAAM;;AAGjB,eAAe,YACb,aACA,cAC6B;AAC7B,KAAI,aAAa,IAAI,YAAY,CAC/B,QAAO;AAET,cAAa,IAAI,YAAY;CAE7B,MAAM,UAAU,MAAM,cAAc,aAAa,OAAO;AACxD,KAAI,CAAC,SAAS;AACZ,SAAO,MAAM,+BAA+B,cAAc;AAC1D,SAAO;;CAGT,MAAM,SAAS,mBAAmB,SAAS,YAAY;AACvD,KAAI,CAAC,OACH,QAAO;AAGT,QAAO;EAAE;EAAa,GAAG;EAAQ;;AAGnC,eAAsB,uBACpB,SACA,cAC+B;CAC/B,MAAM,UAAyB,EAAE;CACjC,MAAM,+BAAe,IAAI,KAAa;AAEtC,MAAK,MAAM,eAAe,cAAc;EACtC,MAAM,SAAS,MAAM,YAAY,aAAa,aAAa;AAC3D,MAAI,OACF,SAAQ,KAAK,OAAO;;AAIxB,QAAO,QAAQ,SAAS,IAAI,UAAU"}
1
+ {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/ant/extract.ts"],"sourcesContent":["import upath from 'upath';\nimport type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { MavenDatasource } from '../../datasource/maven/index.ts';\nimport { isXmlElement } from '../nuget/util.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types.ts';\nimport {\n applyProps,\n findAttrValuePosition,\n parsePropertiesFile,\n resolveChainedProps,\n} from './properties.ts';\nimport type { AntProp } from './types.ts';\n\nexport { parsePropertiesFile } from './properties.ts';\n\nconst scopeNames = new Set([\n 'compile',\n 'runtime',\n 'test',\n 'provided',\n 'system',\n]);\n\nfunction getDependencyType(scope: string | undefined): string {\n if (scope && scopeNames.has(scope)) {\n return scope;\n }\n return 'compile';\n}\n\ninterface RawDep {\n dep: PackageDependency;\n depPackageFile: string;\n}\n\nfunction collectDependency(\n node: XmlElement,\n packageFile: string,\n content: string,\n): RawDep | null {\n const { groupId, artifactId, version, scope } = node.attr;\n\n if (!version || !groupId || !artifactId) {\n return null;\n }\n\n const dep: PackageDependency = {\n datasource: MavenDatasource.id,\n depName: `${groupId}:${artifactId}`,\n currentValue: version,\n depType: getDependencyType(scope),\n registryUrls: [],\n };\n\n dep.fileReplacePosition = findAttrValuePosition(content, node, 'version');\n\n return { dep, depPackageFile: packageFile };\n}\n\nfunction walkNode(\n node: XmlElement | XmlDocument,\n rawDeps: RawDep[],\n packageFile: string,\n content: string,\n): void {\n for (const child of node.children) {\n if (!isXmlElement(child)) {\n continue;\n }\n\n if (child.name === 'dependency') {\n const rawDep = collectDependency(child, packageFile, content);\n if (rawDep) {\n rawDeps.push(rawDep);\n }\n } else {\n walkNode(child, rawDeps, packageFile, content);\n }\n }\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n let doc: XmlDocument;\n try {\n doc = new XmlDocument(content);\n } catch {\n logger.debug(`ant manager: could not parse XML ${packageFile}`);\n return null;\n }\n\n const rawDeps: RawDep[] = [];\n walkNode(doc, rawDeps, packageFile, content);\n\n const deps = rawDeps.map((rd) => rd.dep);\n\n if (deps.length === 0) {\n return null;\n }\n\n return { deps };\n}\n\n/**\n * Walk an XML node tree in document order, processing properties,\n * property file references, and dependencies as they appear.\n */\nasync function walkNodeInOrder(\n node: XmlElement | XmlDocument,\n packageFile: string,\n content: string,\n visitedFiles: Set<string>,\n allProps: Record<string, AntProp>,\n allRawDeps: RawDep[],\n): Promise<void> {\n const baseDir = upath.dirname(packageFile);\n\n for (const child of node.children) {\n if (!isXmlElement(child)) {\n continue;\n }\n\n if (child.name === 'property') {\n // Handle inline property definition\n const name = child.attr.name;\n const value = child.attr.value;\n if (name && value && !(name in allProps)) {\n const pos = findAttrValuePosition(content, child, 'value');\n allProps[name] = { val: value, fileReplacePosition: pos, packageFile };\n }\n\n // Handle property file reference\n const file = child.attr.file;\n if (file) {\n const propFilePath = file.startsWith('/')\n ? file\n : upath.join(baseDir, file);\n\n if (!visitedFiles.has(propFilePath)) {\n visitedFiles.add(propFilePath);\n const propContent = await readLocalFile(propFilePath, 'utf8');\n if (propContent) {\n parsePropertiesFile(propContent, propFilePath, allProps);\n } else {\n logger.debug(\n `ant manager: could not read properties file ${propFilePath}`,\n );\n }\n }\n }\n } else if (child.name === 'dependency') {\n const rawDep = collectDependency(child, packageFile, content);\n if (rawDep) {\n allRawDeps.push(rawDep);\n }\n } else {\n await walkNodeInOrder(\n child,\n packageFile,\n content,\n visitedFiles,\n allProps,\n allRawDeps,\n );\n }\n }\n}\n\nasync function walkXmlFile(\n packageFile: string,\n visitedFiles: Set<string>,\n allProps: Record<string, AntProp>,\n allRawDeps: RawDep[],\n): Promise<void> {\n visitedFiles.add(packageFile);\n\n const content = await readLocalFile(packageFile, 'utf8');\n if (!content) {\n logger.debug(`ant manager: could not read ${packageFile}`);\n return;\n }\n\n let doc: XmlDocument;\n try {\n doc = new XmlDocument(content);\n } catch {\n logger.debug(`ant manager: could not parse XML ${packageFile}`);\n return;\n }\n\n await walkNodeInOrder(\n doc,\n packageFile,\n content,\n visitedFiles,\n allProps,\n allRawDeps,\n );\n}\n\nexport async function extractAllPackageFiles(\n _config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const results: PackageFile[] = [];\n const seen = new Set<string>();\n\n for (const packageFile of packageFiles) {\n if (seen.has(packageFile)) {\n continue;\n }\n seen.add(packageFile);\n\n const visitedFiles = new Set<string>();\n const allProps: Record<string, AntProp> = {};\n const allRawDeps: RawDep[] = [];\n\n await walkXmlFile(packageFile, visitedFiles, allProps, allRawDeps);\n\n // Resolve chained property values before applying to deps\n resolveChainedProps(allProps);\n\n // Apply property resolution to all dependencies\n const resolvedDeps = allRawDeps.map((rawDep) =>\n applyProps(rawDep.dep, rawDep.depPackageFile, allProps),\n );\n\n if (resolvedDeps.length === 0) {\n continue;\n }\n\n // Group deps by their target file (propSource or original packageFile)\n const fileMap = new Map<string, PackageDependency[]>();\n for (let i = 0; i < resolvedDeps.length; i++) {\n const dep = resolvedDeps[i];\n const targetFile = dep.propSource ?? allRawDeps[i].depPackageFile;\n if (!fileMap.has(targetFile)) {\n fileMap.set(targetFile, []);\n }\n fileMap.get(targetFile)!.push(dep);\n }\n\n for (const [pkgFile, deps] of fileMap) {\n // Clean up internal propSource field\n for (const dep of deps) {\n delete dep.propSource;\n }\n results.push({ packageFile: pkgFile, deps });\n }\n }\n\n return results.length > 0 ? results : null;\n}\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { __exportAll } from "../../../_virtual/_rolldown/runtime.js";
2
2
  import { MavenDatasource } from "../../datasource/maven/index.js";
3
3
  import { extractAllPackageFiles, extractPackageFile } from "./extract.js";
4
+ import { updateDependency } from "./update.js";
4
5
  //#region lib/modules/manager/ant/index.ts
5
6
  var ant_exports = /* @__PURE__ */ __exportAll({
6
7
  categories: () => categories,
@@ -9,6 +10,7 @@ var ant_exports = /* @__PURE__ */ __exportAll({
9
10
  extractAllPackageFiles: () => extractAllPackageFiles,
10
11
  extractPackageFile: () => extractPackageFile,
11
12
  supportedDatasources: () => supportedDatasources,
13
+ updateDependency: () => updateDependency,
12
14
  url: () => url
13
15
  });
14
16
  const displayName = "Apache Ant";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/manager/ant/index.ts"],"sourcesContent":["import type { Category } from '../../../constants/index.ts';\nimport { MavenDatasource } from '../../datasource/maven/index.ts';\n\nexport { extractAllPackageFiles, extractPackageFile } from './extract.ts';\n\nexport const displayName = 'Apache Ant';\nexport const url = 'https://ant.apache.org';\nexport const categories: Category[] = ['java'];\n\nexport const defaultConfig = {\n managerFilePatterns: ['**/build.xml'],\n};\n\nexport const supportedDatasources = [MavenDatasource.id];\n"],"mappings":";;;;;;;;;;;;;AAKA,MAAa,cAAc;AAC3B,MAAa,MAAM;AACnB,MAAa,aAAyB,CAAC,OAAO;AAE9C,MAAa,gBAAgB,EAC3B,qBAAqB,CAAC,eAAe,EACtC;AAED,MAAa,uBAAuB,CAAC,gBAAgB,GAAG"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/manager/ant/index.ts"],"sourcesContent":["import type { Category } from '../../../constants/index.ts';\nimport { MavenDatasource } from '../../datasource/maven/index.ts';\n\nexport { extractAllPackageFiles, extractPackageFile } from './extract.ts';\nexport { updateDependency } from './update.ts';\n\nexport const displayName = 'Apache Ant';\nexport const url = 'https://ant.apache.org';\nexport const categories: Category[] = ['java'];\n\nexport const defaultConfig = {\n managerFilePatterns: ['**/build.xml'],\n};\n\nexport const supportedDatasources = [MavenDatasource.id];\n"],"mappings":";;;;;;;;;;;;;;;AAMA,MAAa,cAAc;AAC3B,MAAa,MAAM;AACnB,MAAa,aAAyB,CAAC,OAAO;AAE9C,MAAa,gBAAgB,EAC3B,qBAAqB,CAAC,eAAe,EACtC;AAED,MAAa,uBAAuB,CAAC,gBAAgB,GAAG"}
@@ -0,0 +1,123 @@
1
+ import { escapeRegExp, regEx } from "../../../util/regex.js";
2
+ //#region lib/modules/manager/ant/properties.ts
3
+ const fullPlaceholderRegex = regEx(/^\$\{([^}]+)}$/);
4
+ const placeholderTestRegex = regEx(/\$\{[^}]+}/);
5
+ const propertySeparatorRegex = regEx(/^([^=:\s]+)\s*[=:\s]\s*(.*)$/);
6
+ function containsPlaceholder(str) {
7
+ return !!str && placeholderTestRegex.test(str);
8
+ }
9
+ /**
10
+ * Find the byte offset of an attribute's value in raw XML content.
11
+ * Returns the offset of the first character of the value (after the opening quote).
12
+ */
13
+ function findAttrValuePosition(content, node, attrName) {
14
+ const startTag = node.startTagPosition;
15
+ const tagEnd = content.indexOf(">", startTag);
16
+ const tagContent = content.slice(startTag, tagEnd + 1);
17
+ const match = regEx(`${escapeRegExp(attrName)}\\s*=\\s*(?:"([^"]*)"|'([^']*)')`).exec(tagContent);
18
+ const valueInMatch = match[1] ?? match[2];
19
+ const valueOffset = match[0].indexOf(valueInMatch);
20
+ return startTag + match.index + valueOffset;
21
+ }
22
+ /**
23
+ * Parse a .properties file into a map of property names to AntProp.
24
+ * Implements first-definition-wins: if a key already exists in the map, it is not overwritten.
25
+ */
26
+ function parsePropertiesFile(content, packageFile, props) {
27
+ let offset = 0;
28
+ for (const rawLine of content.split("\n")) {
29
+ const line = rawLine.trim();
30
+ if (line.startsWith("#") || line.startsWith("!") || line === "") {
31
+ offset += rawLine.length + 1;
32
+ continue;
33
+ }
34
+ const separatorMatch = propertySeparatorRegex.exec(line);
35
+ if (separatorMatch) {
36
+ const key = separatorMatch[1];
37
+ const val = separatorMatch[2].trim();
38
+ if (!(key in props)) props[key] = {
39
+ val,
40
+ fileReplacePosition: offset + rawLine.indexOf(line) + line.indexOf(separatorMatch[2]),
41
+ packageFile
42
+ };
43
+ }
44
+ offset += rawLine.length + 1;
45
+ }
46
+ }
47
+ /**
48
+ * Apply property resolution to a dependency.
49
+ * Handles chained references with circular detection.
50
+ */
51
+ function applyProps(dep, depPackageFile, props) {
52
+ const currentValue = dep.currentValue;
53
+ if (!currentValue || !containsPlaceholder(currentValue)) return dep;
54
+ const fullMatch = fullPlaceholderRegex.exec(currentValue);
55
+ if (!fullMatch) {
56
+ dep.skipReason = "version-placeholder";
57
+ return dep;
58
+ }
59
+ const propKey = fullMatch[1];
60
+ const prop = props[propKey];
61
+ if (!prop) {
62
+ dep.skipReason = "version-placeholder";
63
+ return dep;
64
+ }
65
+ if (containsPlaceholder(prop.val)) {
66
+ dep.skipReason = "recursive-placeholder";
67
+ return dep;
68
+ }
69
+ dep.currentValue = prop.val;
70
+ dep.sharedVariableName = propKey;
71
+ dep.fileReplacePosition = prop.fileReplacePosition;
72
+ if (prop.packageFile !== depPackageFile) dep.editFile = prop.packageFile;
73
+ dep.propSource = prop.packageFile;
74
+ return dep;
75
+ }
76
+ /**
77
+ * Resolve a single property key, following chained references.
78
+ * Returns the resolved value or null if circular/unresolvable.
79
+ */
80
+ function resolveKey(key, props, resolved, chain) {
81
+ if (resolved.has(key)) return resolved.get(key);
82
+ if (chain.has(key)) {
83
+ resolved.set(key, null);
84
+ return null;
85
+ }
86
+ const prop = props[key];
87
+ if (!prop) return null;
88
+ if (!containsPlaceholder(prop.val)) {
89
+ resolved.set(key, prop.val);
90
+ return prop.val;
91
+ }
92
+ chain.add(key);
93
+ let isCircular = false;
94
+ const val = prop.val.replace(regEx(/\$\{([^}]+)}/g), (match, refKey) => {
95
+ const refResult = resolveKey(refKey, props, resolved, chain);
96
+ if (refResult === null) {
97
+ isCircular = true;
98
+ return match;
99
+ }
100
+ return refResult;
101
+ });
102
+ chain.delete(key);
103
+ if (isCircular) {
104
+ resolved.set(key, null);
105
+ return null;
106
+ }
107
+ resolved.set(key, val);
108
+ prop.val = val;
109
+ return val;
110
+ }
111
+ /**
112
+ * Resolve chained property references within the property map itself.
113
+ * E.g., if prop A = "${B}" and prop B = "1.0", resolve A to "1.0".
114
+ * Marks circular properties by setting val to a placeholder that will be caught later.
115
+ */
116
+ function resolveChainedProps(props) {
117
+ const resolved = /* @__PURE__ */ new Map();
118
+ for (const key of Object.keys(props)) resolveKey(key, props, resolved, /* @__PURE__ */ new Set());
119
+ }
120
+ //#endregion
121
+ export { applyProps, findAttrValuePosition, parsePropertiesFile, resolveChainedProps };
122
+
123
+ //# sourceMappingURL=properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.js","names":[],"sources":["../../../../lib/modules/manager/ant/properties.ts"],"sourcesContent":["import type { XmlElement } from 'xmldoc';\nimport { escapeRegExp, regEx } from '../../../util/regex.ts';\nimport type { PackageDependency } from '../types.ts';\nimport type { AntProp } from './types.ts';\n\nconst fullPlaceholderRegex = regEx(/^\\$\\{([^}]+)}$/);\nconst placeholderTestRegex = regEx(/\\$\\{[^}]+}/);\nconst propertySeparatorRegex = regEx(/^([^=:\\s]+)\\s*[=:\\s]\\s*(.*)$/);\n\nexport function containsPlaceholder(str: string | null | undefined): boolean {\n return !!str && placeholderTestRegex.test(str);\n}\n\n/**\n * Find the byte offset of an attribute's value in raw XML content.\n * Returns the offset of the first character of the value (after the opening quote).\n */\nexport function findAttrValuePosition(\n content: string,\n node: XmlElement,\n attrName: string,\n): number {\n const startTag = node.startTagPosition!;\n const tagEnd = content.indexOf('>', startTag);\n const tagContent = content.slice(startTag, tagEnd + 1);\n\n const attrPattern = regEx(\n `${escapeRegExp(attrName)}\\\\s*=\\\\s*(?:\"([^\"]*)\"|'([^']*)')`,\n );\n const match = attrPattern.exec(tagContent)!;\n\n const valueInMatch = match[1] ?? match[2];\n const valueOffset = match[0].indexOf(valueInMatch);\n return startTag + match.index + valueOffset;\n}\n\n/**\n * Parse a .properties file into a map of property names to AntProp.\n * Implements first-definition-wins: if a key already exists in the map, it is not overwritten.\n */\nexport function parsePropertiesFile(\n content: string,\n packageFile: string,\n props: Record<string, AntProp>,\n): void {\n let offset = 0;\n for (const rawLine of content.split('\\n')) {\n const line = rawLine.trim();\n // Skip comments and blank lines\n if (line.startsWith('#') || line.startsWith('!') || line === '') {\n offset += rawLine.length + 1; // +1 for newline\n continue;\n }\n\n // Match key=value, key:value, or key value (first separator wins)\n const separatorMatch = propertySeparatorRegex.exec(line);\n if (separatorMatch) {\n const key = separatorMatch[1];\n const val = separatorMatch[2].trim();\n\n // First-definition-wins\n if (!(key in props)) {\n // fileReplacePosition points to the start of the value in the raw content\n const lineStart = offset + rawLine.indexOf(line);\n const keyEnd = line.indexOf(separatorMatch[2]);\n const fileReplacePosition = lineStart + keyEnd;\n\n props[key] = { val, fileReplacePosition, packageFile };\n }\n }\n\n offset += rawLine.length + 1;\n }\n}\n\n/**\n * Apply property resolution to a dependency.\n * Handles chained references with circular detection.\n */\nexport function applyProps(\n dep: PackageDependency,\n depPackageFile: string,\n props: Record<string, AntProp>,\n): PackageDependency {\n const currentValue = dep.currentValue;\n\n if (!currentValue || !containsPlaceholder(currentValue)) {\n return dep;\n }\n\n // Check if the entire version is a single property reference\n const fullMatch = fullPlaceholderRegex.exec(currentValue);\n if (!fullMatch) {\n // Partial placeholder in version string - not supported for updates\n dep.skipReason = 'version-placeholder';\n return dep;\n }\n\n const propKey = fullMatch[1];\n const prop = props[propKey];\n if (!prop) {\n dep.skipReason = 'version-placeholder';\n return dep;\n }\n\n // After resolveChainedProps, prop.val is either fully resolved or still contains\n // placeholders (meaning circular or unresolvable)\n if (containsPlaceholder(prop.val)) {\n dep.skipReason = 'recursive-placeholder';\n return dep;\n }\n\n dep.currentValue = prop.val;\n dep.sharedVariableName = propKey;\n dep.fileReplacePosition = prop.fileReplacePosition;\n if (prop.packageFile !== depPackageFile) {\n dep.editFile = prop.packageFile;\n }\n // propSource is used to route deps to the correct PackageFile\n dep.propSource = prop.packageFile;\n return dep;\n}\n\n/**\n * Resolve a single property key, following chained references.\n * Returns the resolved value or null if circular/unresolvable.\n */\nfunction resolveKey(\n key: string,\n props: Record<string, AntProp>,\n resolved: Map<string, string | null>,\n chain: Set<string>,\n): string | null {\n if (resolved.has(key)) {\n return resolved.get(key)!;\n }\n if (chain.has(key)) {\n // Circular reference detected\n resolved.set(key, null);\n return null;\n }\n const prop = props[key];\n if (!prop) {\n return null;\n }\n if (!containsPlaceholder(prop.val)) {\n resolved.set(key, prop.val);\n return prop.val;\n }\n\n chain.add(key);\n let isCircular = false;\n const val = prop.val.replace(\n regEx(/\\$\\{([^}]+)}/g),\n (match, refKey: string) => {\n const refResult = resolveKey(refKey, props, resolved, chain);\n if (refResult === null) {\n isCircular = true;\n return match;\n }\n return refResult;\n },\n );\n chain.delete(key);\n\n if (isCircular) {\n resolved.set(key, null);\n return null;\n }\n\n resolved.set(key, val);\n prop.val = val;\n return val;\n}\n\n/**\n * Resolve chained property references within the property map itself.\n * E.g., if prop A = \"${B}\" and prop B = \"1.0\", resolve A to \"1.0\".\n * Marks circular properties by setting val to a placeholder that will be caught later.\n */\nexport function resolveChainedProps(props: Record<string, AntProp>): void {\n const resolved = new Map<string, string | null>(); // null = circular\n\n for (const key of Object.keys(props)) {\n resolveKey(key, props, resolved, new Set());\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { logger } from "../../../logger/index.js";
2
+ //#region lib/modules/manager/ant/update.ts
3
+ /** For external .properties files: updateDependency is necessary because extractPackageFile can't reconstruct dep metadata from a .properties file alone */
4
+ function updateDependency({ fileContent, upgrade }) {
5
+ const { depName, currentValue, newValue, fileReplacePosition } = upgrade;
6
+ if (fileReplacePosition === void 0 || fileReplacePosition === null) {
7
+ logger.debug({ depName }, "No fileReplacePosition for ant dependency");
8
+ return null;
9
+ }
10
+ const leftPart = fileContent.slice(0, fileReplacePosition);
11
+ const rightPart = fileContent.slice(fileReplacePosition);
12
+ let endIndex;
13
+ const quoteChar = leftPart.at(-1);
14
+ if (quoteChar === "\"" || quoteChar === "'") endIndex = rightPart.indexOf(quoteChar);
15
+ else {
16
+ const newlineIndex = rightPart.indexOf("\n");
17
+ endIndex = newlineIndex === -1 ? rightPart.length : newlineIndex;
18
+ }
19
+ const currentFound = rightPart.slice(0, endIndex);
20
+ if (currentFound === newValue) return fileContent;
21
+ if (currentFound === currentValue || upgrade.sharedVariableName) return `${leftPart}${newValue}${rightPart.slice(endIndex)}`;
22
+ logger.debug({
23
+ depName,
24
+ currentFound,
25
+ currentValue,
26
+ newValue
27
+ }, "ant: unexpected value at fileReplacePosition");
28
+ return null;
29
+ }
30
+ //#endregion
31
+ export { updateDependency };
32
+
33
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","names":[],"sources":["../../../../lib/modules/manager/ant/update.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport type { UpdateDependencyConfig } from '../types.ts';\n\n/** For external .properties files: updateDependency is necessary because extractPackageFile can't reconstruct dep metadata from a .properties file alone */\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n const { depName, currentValue, newValue, fileReplacePosition } = upgrade;\n\n if (fileReplacePosition === undefined || fileReplacePosition === null) {\n logger.debug({ depName }, 'No fileReplacePosition for ant dependency');\n return null;\n }\n\n const leftPart = fileContent.slice(0, fileReplacePosition);\n const rightPart = fileContent.slice(fileReplacePosition);\n\n // Find the end of the value (closing quote or end of line for .properties files)\n let endIndex: number;\n const quoteChar = leftPart.at(-1);\n if (quoteChar === '\"' || quoteChar === \"'\") {\n endIndex = rightPart.indexOf(quoteChar);\n } else {\n // .properties file: value ends at newline or EOF\n const newlineIndex = rightPart.indexOf('\\n');\n endIndex = newlineIndex === -1 ? rightPart.length : newlineIndex;\n }\n\n const currentFound = rightPart.slice(0, endIndex);\n\n if (currentFound === newValue) {\n return fileContent;\n }\n\n if (currentFound === currentValue || upgrade.sharedVariableName) {\n return `${leftPart}${newValue}${rightPart.slice(endIndex)}`;\n }\n\n logger.debug(\n { depName, currentFound, currentValue, newValue },\n 'ant: unexpected value at fileReplacePosition',\n );\n return null;\n}\n"],"mappings":";;;AAIA,SAAgB,iBAAiB,EAC/B,aACA,WACwC;CACxC,MAAM,EAAE,SAAS,cAAc,UAAU,wBAAwB;AAEjE,KAAI,wBAAwB,KAAA,KAAa,wBAAwB,MAAM;AACrE,SAAO,MAAM,EAAE,SAAS,EAAE,4CAA4C;AACtE,SAAO;;CAGT,MAAM,WAAW,YAAY,MAAM,GAAG,oBAAoB;CAC1D,MAAM,YAAY,YAAY,MAAM,oBAAoB;CAGxD,IAAI;CACJ,MAAM,YAAY,SAAS,GAAG,GAAG;AACjC,KAAI,cAAc,QAAO,cAAc,IACrC,YAAW,UAAU,QAAQ,UAAU;MAClC;EAEL,MAAM,eAAe,UAAU,QAAQ,KAAK;AAC5C,aAAW,iBAAiB,KAAK,UAAU,SAAS;;CAGtD,MAAM,eAAe,UAAU,MAAM,GAAG,SAAS;AAEjD,KAAI,iBAAiB,SACnB,QAAO;AAGT,KAAI,iBAAiB,gBAAgB,QAAQ,mBAC3C,QAAO,GAAG,WAAW,WAAW,UAAU,MAAM,SAAS;AAG3D,QAAO,MACL;EAAE;EAAS;EAAc;EAAc;EAAU,EACjD,+CACD;AACD,QAAO"}
@@ -15,7 +15,7 @@ var bitbucket_pipelines_exports = /* @__PURE__ */ __exportAll({
15
15
  const url = "https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines";
16
16
  const categories = ["ci"];
17
17
  const urls = ["https://support.atlassian.com/bitbucket-cloud/docs/bitbucket-pipelines-configuration-reference"];
18
- const defaultConfig = { managerFilePatterns: ["/(^|/)\\.?bitbucket-pipelines\\.ya?ml$/"] };
18
+ const defaultConfig = { managerFilePatterns: ["**/*-pipelines.yml"] };
19
19
  const supportedDatasources = [DockerDatasource.id];
20
20
  //#endregion
21
21
  export { bitbucket_pipelines_exports };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/manager/bitbucket-pipelines/index.ts"],"sourcesContent":["import type { Category } from '../../../constants/index.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { extractPackageFile } from './extract.ts';\n\nexport { knownDepTypes } from './dep-types.ts';\nexport { extractPackageFile };\n\nexport const url =\n 'https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines';\nexport const categories: Category[] = ['ci'];\nexport const urls = [\n 'https://support.atlassian.com/bitbucket-cloud/docs/bitbucket-pipelines-configuration-reference',\n];\n\nexport const defaultConfig = {\n managerFilePatterns: ['/(^|/)\\\\.?bitbucket-pipelines\\\\.ya?ml$/'],\n};\n\nexport const supportedDatasources = [DockerDatasource.id];\n"],"mappings":";;;;;;;;;;;;;;AAOA,MAAa,MACX;AACF,MAAa,aAAyB,CAAC,KAAK;AAC5C,MAAa,OAAO,CAClB,iGACD;AAED,MAAa,gBAAgB,EAC3B,qBAAqB,CAAC,0CAA0C,EACjE;AAED,MAAa,uBAAuB,CAAC,iBAAiB,GAAG"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/manager/bitbucket-pipelines/index.ts"],"sourcesContent":["import type { Category } from '../../../constants/index.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { extractPackageFile } from './extract.ts';\n\nexport { knownDepTypes } from './dep-types.ts';\nexport { extractPackageFile };\n\nexport const url =\n 'https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines';\nexport const categories: Category[] = ['ci'];\nexport const urls = [\n 'https://support.atlassian.com/bitbucket-cloud/docs/bitbucket-pipelines-configuration-reference',\n];\n\nexport const defaultConfig = {\n managerFilePatterns: ['**/*-pipelines.yml'],\n};\n\nexport const supportedDatasources = [DockerDatasource.id];\n"],"mappings":";;;;;;;;;;;;;;AAOA,MAAa,MACX;AACF,MAAa,aAAyB,CAAC,KAAK;AAC5C,MAAa,OAAO,CAClB,iGACD;AAED,MAAa,gBAAgB,EAC3B,qBAAqB,CAAC,qBAAqB,EAC5C;AAED,MAAa,uBAAuB,CAAC,iBAAiB,GAAG"}
@@ -2,7 +2,7 @@
2
2
  const hashMap = /* @__PURE__ */ new Map();
3
3
  hashMap.set("ansible", "1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04");
4
4
  hashMap.set("ansible-galaxy", "8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f");
5
- hashMap.set("ant", "7d6414a195345c60a25a9d92c4b17c0b6df90be086fc5559150e2e5496976890");
5
+ hashMap.set("ant", "0a356fc5ff43659fc81edb74f868ddd7213235512181da875c09caa94c6e3070");
6
6
  hashMap.set("argocd", "5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce");
7
7
  hashMap.set("asdf", "1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9");
8
8
  hashMap.set("azure-pipelines", "4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796");
@@ -12,7 +12,7 @@ hashMap.set("bazel", "c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81
12
12
  hashMap.set("bazel-module", "ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931");
13
13
  hashMap.set("bazelisk", "b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac");
14
14
  hashMap.set("bicep", "7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db");
15
- hashMap.set("bitbucket-pipelines", "09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963");
15
+ hashMap.set("bitbucket-pipelines", "59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd");
16
16
  hashMap.set("bitrise", "478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42");
17
17
  hashMap.set("buildkite", "a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407");
18
18
  hashMap.set("buildpacks", "6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f");
@@ -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','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\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','d8f83c65da1e80b639ad44a0d8641e7e97b1d93a1b6c873603333d337ad02011');\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','38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\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','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\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','0a356fc5ff43659fc81edb74f868ddd7213235512181da875c09caa94c6e3070');\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','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\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','d8f83c65da1e80b639ad44a0d8641e7e97b1d93a1b6c873603333d337ad02011');\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','38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\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','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\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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"}
@@ -14,7 +14,7 @@ declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.
14
14
  };
15
15
  security_vulnerability: {
16
16
  package: {
17
- ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "nuget" | "actions" | "pip" | "rubygems";
17
+ ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "actions" | "nuget" | "pip" | "rubygems";
18
18
  name: string;
19
19
  };
20
20
  vulnerable_version_range: string;
@@ -39,7 +39,7 @@ declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.
39
39
  };
40
40
  security_vulnerability: {
41
41
  package: {
42
- ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "nuget" | "actions" | "pip" | "rubygems";
42
+ ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "actions" | "nuget" | "pip" | "rubygems";
43
43
  name: string;
44
44
  };
45
45
  vulnerable_version_range: string;
@@ -4,6 +4,7 @@ import { PackageCacheBase } from "./base.js";
4
4
  import { DateTime } from "luxon";
5
5
  import upath from "upath";
6
6
  import cacache from "cacache";
7
+ import { LRUCache } from "lru-cache";
7
8
  //#region lib/util/cache/package/impl/file.ts
8
9
  var PackageCacheFile = class PackageCacheFile extends PackageCacheBase {
9
10
  static create(cacheDir) {
@@ -12,6 +13,7 @@ var PackageCacheFile = class PackageCacheFile extends PackageCacheBase {
12
13
  return new PackageCacheFile(cacheFileName);
13
14
  }
14
15
  cacheFileName;
16
+ expiryMap = new LRUCache({ max: 1e5 });
15
17
  constructor(cacheFileName) {
16
18
  super();
17
19
  this.cacheFileName = cacheFileName;
@@ -33,6 +35,7 @@ var PackageCacheFile = class PackageCacheFile extends PackageCacheBase {
33
35
  namespace,
34
36
  key
35
37
  }, "Returning cached value");
38
+ this.expiryMap.set(this.getKey(namespace, key), expiry);
36
39
  if (!cached.compress) return cached.value;
37
40
  const json = await decompressFromBase64(cached.value);
38
41
  return JSON.parse(json);
@@ -57,6 +60,7 @@ var PackageCacheFile = class PackageCacheFile extends PackageCacheBase {
57
60
  expiry
58
61
  });
59
62
  await cacache.put(this.cacheFileName, this.getKey(namespace, key), payload);
63
+ this.expiryMap.set(this.getKey(namespace, key), expiry);
60
64
  }
61
65
  async destroy() {
62
66
  logger.debug("Checking file package cache for expired items");
@@ -67,6 +71,15 @@ var PackageCacheFile = class PackageCacheFile extends PackageCacheBase {
67
71
  for await (const item of cacache.ls.stream(this.cacheFileName)) try {
68
72
  totalCount += 1;
69
73
  const cacheEntry = item;
74
+ const cachedExpiry = this.expiryMap.get(cacheEntry.key);
75
+ if (cachedExpiry !== void 0) {
76
+ if (DateTime.local() <= cachedExpiry) continue;
77
+ await cacache.rm.entry(this.cacheFileName, cacheEntry.key);
78
+ await cacache.rm.content(this.cacheFileName, cacheEntry.integrity);
79
+ this.expiryMap.delete(cacheEntry.key);
80
+ deletedCount += 1;
81
+ continue;
82
+ }
70
83
  const entry = await cacache.get(this.cacheFileName, cacheEntry.key);
71
84
  let cached;
72
85
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","names":[],"sources":["../../../../../lib/util/cache/package/impl/file.ts"],"sourcesContent":["import cacache from 'cacache';\nimport { DateTime } from 'luxon';\nimport upath from 'upath';\nimport { logger } from '../../../../logger/index.ts';\nimport { compressToBase64, decompressFromBase64 } from '../../../compress.ts';\nimport type { PackageCacheNamespace } from '../types.ts';\nimport { PackageCacheBase } from './base.ts';\n\nexport class PackageCacheFile extends PackageCacheBase {\n static create(cacheDir: string): PackageCacheFile {\n const cacheFileName = upath.join(cacheDir, '/renovate/renovate-cache-v1');\n logger.debug(`Initializing Renovate internal cache into ${cacheFileName}`);\n return new PackageCacheFile(cacheFileName);\n }\n\n private readonly cacheFileName: string;\n\n private constructor(cacheFileName: string) {\n super();\n this.cacheFileName = cacheFileName;\n }\n\n private getKey(namespace: PackageCacheNamespace, key: string): string {\n return `${namespace}-${key}`;\n }\n\n override async get<T = unknown>(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<T | undefined> {\n try {\n const entry = await cacache.get(\n this.cacheFileName,\n this.getKey(namespace, key),\n );\n const raw = entry.data.toString();\n const cached = JSON.parse(raw);\n\n if (!cached) {\n return undefined;\n }\n\n const expiry = DateTime.fromISO(cached.expiry);\n if (!expiry.isValid || DateTime.local() >= expiry) {\n await this.rm(namespace, key);\n return undefined;\n }\n\n logger.trace({ namespace, key }, 'Returning cached value');\n\n if (!cached.compress) {\n return cached.value;\n }\n\n const json = await decompressFromBase64(cached.value);\n return JSON.parse(json);\n } catch {\n logger.trace({ namespace, key }, 'Cache miss');\n }\n return undefined;\n }\n\n override async set(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n hardTtlMinutes: number,\n ): Promise<void> {\n logger.trace({ namespace, key, hardTtlMinutes }, 'Saving cached value');\n const serialized = JSON.stringify(value);\n const compressedValue = await compressToBase64(serialized);\n const expiry = DateTime.local().plus({ minutes: hardTtlMinutes });\n const payload = JSON.stringify({\n compress: true,\n value: compressedValue,\n expiry,\n });\n await cacache.put(this.cacheFileName, this.getKey(namespace, key), payload);\n }\n\n override async destroy(): Promise<void> {\n logger.debug('Checking file package cache for expired items');\n let totalCount = 0;\n let deletedCount = 0;\n let errorCount = 0;\n const startTime = Date.now();\n for await (const item of cacache.ls.stream(this.cacheFileName)) {\n try {\n totalCount += 1;\n const cacheEntry = item as unknown as cacache.CacheObject;\n const entry = await cacache.get(this.cacheFileName, cacheEntry.key);\n let cached: { expiry?: string } | undefined;\n try {\n const raw = entry.data.toString();\n cached = JSON.parse(raw);\n } catch {\n logger.debug('Error parsing cached value - deleting');\n }\n\n if (cached) {\n if (!cached.expiry) {\n continue;\n }\n const expiry = DateTime.fromISO(cached.expiry);\n if (expiry.isValid && DateTime.local() <= expiry) {\n continue;\n }\n }\n\n await cacache.rm.entry(this.cacheFileName, cacheEntry.key);\n await cacache.rm.content(this.cacheFileName, cacheEntry.integrity);\n deletedCount += 1;\n } catch (err) {\n logger.trace({ err }, 'Error cleaning up cache entry');\n errorCount += 1;\n }\n }\n if (errorCount > 0) {\n logger.debug(`Error count cleaning up cache: ${errorCount}`);\n }\n const durationMs = Date.now() - startTime;\n logger.debug(\n `Deleted ${deletedCount} of ${totalCount} file cached entries in ${durationMs}ms`,\n );\n }\n\n private async rm(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<void> {\n logger.trace({ namespace, key }, 'Removing cache entry');\n await cacache.rm.entry(this.cacheFileName, this.getKey(namespace, key));\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,mBAAb,MAAa,yBAAyB,iBAAiB;CACrD,OAAO,OAAO,UAAoC;EAChD,MAAM,gBAAgB,MAAM,KAAK,UAAU,8BAA8B;AACzE,SAAO,MAAM,6CAA6C,gBAAgB;AAC1E,SAAO,IAAI,iBAAiB,cAAc;;CAG5C;CAEA,YAAoB,eAAuB;AACzC,SAAO;AACP,OAAK,gBAAgB;;CAGvB,OAAe,WAAkC,KAAqB;AACpE,SAAO,GAAG,UAAU,GAAG;;CAGzB,MAAe,IACb,WACA,KACwB;AACxB,MAAI;GAKF,MAAM,OAJQ,MAAM,QAAQ,IAC1B,KAAK,eACL,KAAK,OAAO,WAAW,IAAI,CAC5B,EACiB,KAAK,UAAU;GACjC,MAAM,SAAS,KAAK,MAAM,IAAI;AAE9B,OAAI,CAAC,OACH;GAGF,MAAM,SAAS,SAAS,QAAQ,OAAO,OAAO;AAC9C,OAAI,CAAC,OAAO,WAAW,SAAS,OAAO,IAAI,QAAQ;AACjD,UAAM,KAAK,GAAG,WAAW,IAAI;AAC7B;;AAGF,UAAO,MAAM;IAAE;IAAW;IAAK,EAAE,yBAAyB;AAE1D,OAAI,CAAC,OAAO,SACV,QAAO,OAAO;GAGhB,MAAM,OAAO,MAAM,qBAAqB,OAAO,MAAM;AACrD,UAAO,KAAK,MAAM,KAAK;UACjB;AACN,UAAO,MAAM;IAAE;IAAW;IAAK,EAAE,aAAa;;;CAKlD,MAAe,IACb,WACA,KACA,OACA,gBACe;AACf,SAAO,MAAM;GAAE;GAAW;GAAK;GAAgB,EAAE,sBAAsB;EAEvE,MAAM,kBAAkB,MAAM,iBADX,KAAK,UAAU,MAAM,CACkB;EAC1D,MAAM,SAAS,SAAS,OAAO,CAAC,KAAK,EAAE,SAAS,gBAAgB,CAAC;EACjE,MAAM,UAAU,KAAK,UAAU;GAC7B,UAAU;GACV,OAAO;GACP;GACD,CAAC;AACF,QAAM,QAAQ,IAAI,KAAK,eAAe,KAAK,OAAO,WAAW,IAAI,EAAE,QAAQ;;CAG7E,MAAe,UAAyB;AACtC,SAAO,MAAM,gDAAgD;EAC7D,IAAI,aAAa;EACjB,IAAI,eAAe;EACnB,IAAI,aAAa;EACjB,MAAM,YAAY,KAAK,KAAK;AAC5B,aAAW,MAAM,QAAQ,QAAQ,GAAG,OAAO,KAAK,cAAc,CAC5D,KAAI;AACF,iBAAc;GACd,MAAM,aAAa;GACnB,MAAM,QAAQ,MAAM,QAAQ,IAAI,KAAK,eAAe,WAAW,IAAI;GACnE,IAAI;AACJ,OAAI;IACF,MAAM,MAAM,MAAM,KAAK,UAAU;AACjC,aAAS,KAAK,MAAM,IAAI;WAClB;AACN,WAAO,MAAM,wCAAwC;;AAGvD,OAAI,QAAQ;AACV,QAAI,CAAC,OAAO,OACV;IAEF,MAAM,SAAS,SAAS,QAAQ,OAAO,OAAO;AAC9C,QAAI,OAAO,WAAW,SAAS,OAAO,IAAI,OACxC;;AAIJ,SAAM,QAAQ,GAAG,MAAM,KAAK,eAAe,WAAW,IAAI;AAC1D,SAAM,QAAQ,GAAG,QAAQ,KAAK,eAAe,WAAW,UAAU;AAClE,mBAAgB;WACT,KAAK;AACZ,UAAO,MAAM,EAAE,KAAK,EAAE,gCAAgC;AACtD,iBAAc;;AAGlB,MAAI,aAAa,EACf,QAAO,MAAM,kCAAkC,aAAa;EAE9D,MAAM,aAAa,KAAK,KAAK,GAAG;AAChC,SAAO,MACL,WAAW,aAAa,MAAM,WAAW,0BAA0B,WAAW,IAC/E;;CAGH,MAAc,GACZ,WACA,KACe;AACf,SAAO,MAAM;GAAE;GAAW;GAAK,EAAE,uBAAuB;AACxD,QAAM,QAAQ,GAAG,MAAM,KAAK,eAAe,KAAK,OAAO,WAAW,IAAI,CAAC"}
1
+ {"version":3,"file":"file.js","names":[],"sources":["../../../../../lib/util/cache/package/impl/file.ts"],"sourcesContent":["import cacache from 'cacache';\nimport { LRUCache } from 'lru-cache';\nimport { DateTime } from 'luxon';\nimport upath from 'upath';\nimport { logger } from '../../../../logger/index.ts';\nimport { compressToBase64, decompressFromBase64 } from '../../../compress.ts';\nimport type { PackageCacheNamespace } from '../types.ts';\nimport { PackageCacheBase } from './base.ts';\n\nexport class PackageCacheFile extends PackageCacheBase {\n static create(cacheDir: string): PackageCacheFile {\n const cacheFileName = upath.join(cacheDir, '/renovate/renovate-cache-v1');\n logger.debug(`Initializing Renovate internal cache into ${cacheFileName}`);\n return new PackageCacheFile(cacheFileName);\n }\n\n private readonly cacheFileName: string;\n\n private readonly expiryMap = new LRUCache<string, DateTime>({\n // Assuming 50 bytes per entry, this limits the memory footprint of this\n // to around 5MB.\n max: 100000,\n });\n\n private constructor(cacheFileName: string) {\n super();\n this.cacheFileName = cacheFileName;\n }\n\n private getKey(namespace: PackageCacheNamespace, key: string): string {\n return `${namespace}-${key}`;\n }\n\n override async get<T = unknown>(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<T | undefined> {\n try {\n const entry = await cacache.get(\n this.cacheFileName,\n this.getKey(namespace, key),\n );\n const raw = entry.data.toString();\n const cached = JSON.parse(raw);\n\n if (!cached) {\n return undefined;\n }\n\n const expiry = DateTime.fromISO(cached.expiry);\n if (!expiry.isValid || DateTime.local() >= expiry) {\n await this.rm(namespace, key);\n return undefined;\n }\n\n logger.trace({ namespace, key }, 'Returning cached value');\n this.expiryMap.set(this.getKey(namespace, key), expiry);\n\n if (!cached.compress) {\n return cached.value;\n }\n\n const json = await decompressFromBase64(cached.value);\n return JSON.parse(json);\n } catch {\n logger.trace({ namespace, key }, 'Cache miss');\n }\n return undefined;\n }\n\n override async set(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n hardTtlMinutes: number,\n ): Promise<void> {\n logger.trace({ namespace, key, hardTtlMinutes }, 'Saving cached value');\n const serialized = JSON.stringify(value);\n const compressedValue = await compressToBase64(serialized);\n const expiry = DateTime.local().plus({ minutes: hardTtlMinutes });\n const payload = JSON.stringify({\n compress: true,\n value: compressedValue,\n expiry,\n });\n await cacache.put(this.cacheFileName, this.getKey(namespace, key), payload);\n this.expiryMap.set(this.getKey(namespace, key), expiry);\n }\n\n override async destroy(): Promise<void> {\n logger.debug('Checking file package cache for expired items');\n let totalCount = 0;\n let deletedCount = 0;\n let errorCount = 0;\n const startTime = Date.now();\n for await (const item of cacache.ls.stream(this.cacheFileName)) {\n try {\n totalCount += 1;\n const cacheEntry = item as unknown as cacache.CacheObject;\n const cachedExpiry = this.expiryMap.get(cacheEntry.key);\n if (cachedExpiry !== undefined) {\n if (DateTime.local() <= cachedExpiry) {\n continue;\n }\n await cacache.rm.entry(this.cacheFileName, cacheEntry.key);\n await cacache.rm.content(this.cacheFileName, cacheEntry.integrity);\n this.expiryMap.delete(cacheEntry.key);\n deletedCount += 1;\n continue;\n }\n const entry = await cacache.get(this.cacheFileName, cacheEntry.key);\n let cached: { expiry?: string } | undefined;\n try {\n const raw = entry.data.toString();\n cached = JSON.parse(raw);\n } catch {\n logger.debug('Error parsing cached value - deleting');\n }\n\n if (cached) {\n if (!cached.expiry) {\n continue;\n }\n const expiry = DateTime.fromISO(cached.expiry);\n if (expiry.isValid && DateTime.local() <= expiry) {\n continue;\n }\n }\n\n await cacache.rm.entry(this.cacheFileName, cacheEntry.key);\n await cacache.rm.content(this.cacheFileName, cacheEntry.integrity);\n deletedCount += 1;\n } catch (err) {\n logger.trace({ err }, 'Error cleaning up cache entry');\n errorCount += 1;\n }\n }\n if (errorCount > 0) {\n logger.debug(`Error count cleaning up cache: ${errorCount}`);\n }\n const durationMs = Date.now() - startTime;\n logger.debug(\n `Deleted ${deletedCount} of ${totalCount} file cached entries in ${durationMs}ms`,\n );\n }\n\n private async rm(\n namespace: PackageCacheNamespace,\n key: string,\n ): Promise<void> {\n logger.trace({ namespace, key }, 'Removing cache entry');\n await cacache.rm.entry(this.cacheFileName, this.getKey(namespace, key));\n }\n}\n"],"mappings":"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"}
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.116.1",
4
+ "version": "43.118.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -170,6 +170,7 @@
170
170
  "jsonata": "2.1.0",
171
171
  "jsonc-weaver": "0.2.4",
172
172
  "klona": "2.0.6",
173
+ "lru-cache": "11.3.5",
173
174
  "luxon": "3.7.2",
174
175
  "markdown-it": "14.1.1",
175
176
  "markdown-table": "3.0.4",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 43.116.1 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 43.118.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "43.116.1",
5
+ "x-renovate-version": "43.118.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "properties": {
@@ -842,7 +842,7 @@
842
842
  "type": "object",
843
843
  "default": {
844
844
  "managerFilePatterns": [
845
- "/(^|/)\\.?bitbucket-pipelines\\.ya?ml$/"
845
+ "**/*-pipelines.yml"
846
846
  ]
847
847
  },
848
848
  "$ref": "#",