renovate 42.3.0 → 42.4.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.
Files changed (42) hide show
  1. package/dist/modules/manager/copier/artifacts.js +1 -1
  2. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  3. package/dist/modules/manager/fingerprint.generated.js +1 -1
  4. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  5. package/dist/modules/manager/homebrew/extract.js +1 -1
  6. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  7. package/dist/modules/manager/pep621/schema.d.ts +1 -1
  8. package/dist/modules/manager/pep621/schema.js +1 -0
  9. package/dist/modules/manager/pep621/schema.js.map +1 -1
  10. package/dist/modules/manager/poetry/schema.d.ts +4 -0
  11. package/dist/modules/manager/poetry/schema.js +5 -1
  12. package/dist/modules/manager/poetry/schema.js.map +1 -1
  13. package/dist/modules/platform/bitbucket-server/pr-cache.js +1 -1
  14. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -1
  15. package/dist/modules/platform/forgejo/pr-cache.js +1 -1
  16. package/dist/modules/platform/forgejo/pr-cache.js.map +1 -1
  17. package/dist/modules/platform/gitea/pr-cache.js +1 -1
  18. package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
  19. package/dist/modules/versioning/ivy/parse.js +1 -1
  20. package/dist/modules/versioning/ivy/parse.js.map +1 -1
  21. package/dist/modules/versioning/maven/index.js +1 -1
  22. package/dist/modules/versioning/maven/index.js.map +1 -1
  23. package/dist/modules/versioning/nuget/index.js +1 -1
  24. package/dist/modules/versioning/nuget/index.js.map +1 -1
  25. package/dist/util/git/behind-base-branch-cache.js +2 -1
  26. package/dist/util/git/behind-base-branch-cache.js.map +1 -1
  27. package/dist/util/git/conflicts-cache.js +2 -1
  28. package/dist/util/git/conflicts-cache.js.map +1 -1
  29. package/dist/util/git/index.js +2 -2
  30. package/dist/util/git/index.js.map +1 -1
  31. package/dist/util/github/graphql/datasource-fetcher.js +2 -1
  32. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  33. package/dist/util/http/retry-after.js +3 -4
  34. package/dist/util/http/retry-after.js.map +1 -1
  35. package/dist/workers/repository/onboarding/branch/check.js +2 -1
  36. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  37. package/dist/workers/repository/onboarding/branch/index.js +2 -2
  38. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  39. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +3 -3
  40. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  41. package/package.json +5 -5
  42. package/renovate-schema.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/forgejo/pr-cache.ts"],"names":[],"mappings":";;;;AAAA,mCAAgC;AAChC,iCAAiC;AACjC,sEAAoE;AACpE,4CAAyC;AACzC,6EAAuD;AACvD,+DAA0D;AAG1D,2CAA8E;AAG9E,mCAAiD;AAEjD,MAAa,cAAc;IAKf;IACS;IACT;IANF,KAAK,CAAqB;IAC1B,KAAK,GAAS,EAAE,CAAC;IAEzB,YACU,IAAY,EACH,cAAuB,EAChC,MAAqB;QAFrB,SAAI,GAAJ,IAAI,CAAQ;QACH,mBAAc,GAAd,cAAc,CAAS;QAChC,WAAM,GAAN,MAAM,CAAe;QAE7B,MAAM,SAAS,GAAG,IAAA,qBAAQ,GAAE,CAAC;QAC7B,SAAS,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,KAAK,EAAE,CAAC;QAClC,IAAI,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAErC,CAAC;QACd,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5D,gBAAgB,GAAG;gBACjB,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,MAAM;aACP,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAS;QACd,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,IAAI,CACvB,IAAiB,EACjB,IAAY,EACZ,cAAuB,EACvB,MAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAmB,yBAAyB,CAAC,CAAC;QAE3E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,MAAM;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAiB,EACjB,IAAY,EACZ,cAAuB,EACvB,MAAc;QAEd,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CACvC,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,MAAM,CACP,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,IAAQ;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,IAAiB,EACjB,IAAY,EACZ,cAAuB,EACvB,MAAc,EACd,IAAQ;QAER,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CACvC,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,MAAM,CACP,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEO,SAAS,CAAC,QAAuB;QACvC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnE,IAAI,YAAY,GAAG,IAAI,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,eAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBAC7D,yEAAyE;gBACzE,uHAAuH;gBACvH,MAAM,IAAI,KAAK,CAAC,gCAAe,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAE1B,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,IAAA,eAAM,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC7B,YAAY,GAAG,KAAK,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;YAEpB,MAAM,QAAQ,GAAG,gBAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;gBACvC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAClC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAEnC,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAiB;QAClC,IAAI,KAAK,GAAkB,IAAA,oBAAc,EAAC;YACxC,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,cAAc;YACpB,wEAAwE;YACxE,0EAA0E;YAC1E,qEAAqE;YACrE,oEAAoE;YACpE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;YACnC,mCAAmC;YACnC,sCAAsC;YACtC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;SACxD,CAAC,CAAC;QAEH,OAAO,KAAK,EAAE,CAAC;YACb,wEAAwE;YACxE,MAAM,GAAG,GAAgC,MAAM,IAAI,CAAC,gBAAgB,CAClE,GAAG,gBAAQ,UAAU,IAAI,CAAC,IAAI,UAAU,KAAK,EAAE,EAC/C;gBACE,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,KAAK;aAChB,CACF,CAAC;YAEF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM;YACR,CAAC;YAED,MAAM,GAAG,GAAG,IAAA,cAAQ,EAAC,IAAA,qBAAe,EAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACnE,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,WAAW;QACjB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC;CACF;AA7KD,wCA6KC","sourcesContent":["import { dequal } from 'dequal';\nimport { DateTime } from 'luxon';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport * as memCache from '../../../util/cache/memory';\nimport { getCache } from '../../../util/cache/repository';\nimport type { ForgejoHttp } from '../../../util/http/forgejo';\nimport type { HttpResponse } from '../../../util/http/types';\nimport { getQueryString, parseLinkHeader, parseUrl } from '../../../util/url';\nimport type { Pr } from '../types';\nimport type { ForgejoPrCacheData, PR } from './types';\nimport { API_PATH, toRenovatePR } from './utils';\n\nexport class ForgejoPrCache {\n private cache: ForgejoPrCacheData;\n private items: Pr[] = [];\n\n private constructor(\n private repo: string,\n private readonly ignorePrAuthor: boolean,\n private author: string | null,\n ) {\n const repoCache = getCache();\n repoCache.platform ??= {};\n repoCache.platform.forgejo ??= {};\n let pullRequestCache = repoCache.platform.forgejo.pullRequestsCache as\n | ForgejoPrCacheData\n | undefined;\n if (!pullRequestCache || pullRequestCache.author !== author) {\n pullRequestCache = {\n items: {},\n updated_at: null,\n author,\n };\n }\n repoCache.platform.forgejo.pullRequestsCache = pullRequestCache;\n this.cache = pullRequestCache;\n this.updateItems();\n }\n\n static forceSync(): void {\n memCache.set('forgejo-pr-cache-synced', false);\n }\n\n private static async init(\n http: ForgejoHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string | null,\n ): Promise<ForgejoPrCache> {\n const res = new ForgejoPrCache(repo, ignorePrAuthor, author);\n const isSynced = memCache.get<true | undefined>('forgejo-pr-cache-synced');\n\n if (!isSynced) {\n await res.sync(http);\n memCache.set('forgejo-pr-cache-synced', true);\n }\n\n return res;\n }\n\n private getPrs(): Pr[] {\n return this.items;\n }\n\n static async getPrs(\n http: ForgejoHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n ): Promise<Pr[]> {\n const prCache = await ForgejoPrCache.init(\n http,\n repo,\n ignorePrAuthor,\n author,\n );\n return prCache.getPrs();\n }\n\n private setPr(item: Pr): void {\n this.cache.items[item.number] = item;\n this.updateItems();\n }\n\n static async setPr(\n http: ForgejoHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n item: Pr,\n ): Promise<void> {\n const prCache = await ForgejoPrCache.init(\n http,\n repo,\n ignorePrAuthor,\n author,\n );\n prCache.setPr(item);\n }\n\n private reconcile(rawItems: (PR | null)[]): boolean {\n const { items } = this.cache;\n let { updated_at } = this.cache;\n const cacheTime = updated_at ? DateTime.fromISO(updated_at) : null;\n\n let needNextPage = true;\n\n for (const rawItem of rawItems) {\n if (!rawItem) {\n logger.warn('Forgejo PR is empty, throwing temporary error');\n // Forgejo API sometimes returns empty PRs, so we throw a temporary error\n // https://github.com/go-forgejo/forgejo/blob/fcd096231ac2deaefbca10a7db1b9b01f1da93d7/services/convert/pull.go#L34-L52\n throw new Error(TEMPORARY_ERROR);\n }\n const id = rawItem.number;\n\n const newItem = toRenovatePR(rawItem, this.author);\n if (!newItem) {\n continue;\n }\n\n const oldItem = items[id];\n if (dequal(oldItem, newItem)) {\n needNextPage = false;\n continue;\n }\n\n items[id] = newItem;\n\n const itemTime = DateTime.fromISO(rawItem.updated_at);\n if (!cacheTime || itemTime > cacheTime) {\n updated_at = rawItem.updated_at;\n }\n }\n\n this.cache.updated_at = updated_at;\n\n return needNextPage;\n }\n\n private async sync(http: ForgejoHttp): Promise<ForgejoPrCache> {\n let query: string | null = getQueryString({\n state: 'all',\n sort: 'recentupdate',\n // Fetch 100 PRs on the first run to ensure we have the most recent PRs.\n // Forgejo will cap appropriate (50 by default, see `MAX_RESPONSE_ITEMS`).\n // https://docs.forgejo.com/administration/config-cheat-sheet#api-api\n // https://forgejo.org/docs/latest/admin/config-cheat-sheet/#api-api\n limit: this.items.length ? 20 : 100,\n // Supported since Forgejo v10.0.0.\n // Will be ignored by older instances.\n ...(this.ignorePrAuthor ? {} : { poster: this.author }),\n });\n\n while (query) {\n // TODO: use zod, typescript can't infer the type of the response #22198\n const res: HttpResponse<(PR | null)[]> = await http.getJsonUnchecked(\n `${API_PATH}/repos/${this.repo}/pulls?${query}`,\n {\n memCache: false,\n paginate: false,\n },\n );\n\n const needNextPage = this.reconcile(res.body);\n if (!needNextPage) {\n break;\n }\n\n const uri = parseUrl(parseLinkHeader(res.headers.link)?.next?.url);\n query = uri ? uri.search : null;\n }\n\n this.updateItems();\n\n return this;\n }\n\n /**\n * Ensure the pr cache starts with the most recent PRs.\n * JavaScript ensures that the cache is sorted by PR number.\n */\n private updateItems(): void {\n this.items = Object.values(this.cache.items).reverse();\n }\n}\n"]}
1
+ {"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/forgejo/pr-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { dequal } from 'dequal';\nimport { DateTime } from 'luxon';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport * as memCache from '../../../util/cache/memory';\nimport { getCache } from '../../../util/cache/repository';\nimport type { ForgejoHttp } from '../../../util/http/forgejo';\nimport type { HttpResponse } from '../../../util/http/types';\nimport { getQueryString, parseLinkHeader, parseUrl } from '../../../util/url';\nimport type { Pr } from '../types';\nimport type { ForgejoPrCacheData, PR } from './types';\nimport { API_PATH, toRenovatePR } from './utils';\n\nexport class ForgejoPrCache {\n private cache: ForgejoPrCacheData;\n private items: Pr[] = [];\n\n private constructor(\n private repo: string,\n private readonly ignorePrAuthor: boolean,\n private author: string | null,\n ) {\n const repoCache = getCache();\n repoCache.platform ??= {};\n repoCache.platform.forgejo ??= {};\n let pullRequestCache = repoCache.platform.forgejo.pullRequestsCache as\n | ForgejoPrCacheData\n | undefined;\n if (pullRequestCache?.author !== author) {\n pullRequestCache = {\n items: {},\n updated_at: null,\n author,\n };\n }\n repoCache.platform.forgejo.pullRequestsCache = pullRequestCache;\n this.cache = pullRequestCache;\n this.updateItems();\n }\n\n static forceSync(): void {\n memCache.set('forgejo-pr-cache-synced', false);\n }\n\n private static async init(\n http: ForgejoHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string | null,\n ): Promise<ForgejoPrCache> {\n const res = new ForgejoPrCache(repo, ignorePrAuthor, author);\n const isSynced = memCache.get<true | undefined>('forgejo-pr-cache-synced');\n\n if (!isSynced) {\n await res.sync(http);\n memCache.set('forgejo-pr-cache-synced', true);\n }\n\n return res;\n }\n\n private getPrs(): Pr[] {\n return this.items;\n }\n\n static async getPrs(\n http: ForgejoHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n ): Promise<Pr[]> {\n const prCache = await ForgejoPrCache.init(\n http,\n repo,\n ignorePrAuthor,\n author,\n );\n return prCache.getPrs();\n }\n\n private setPr(item: Pr): void {\n this.cache.items[item.number] = item;\n this.updateItems();\n }\n\n static async setPr(\n http: ForgejoHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n item: Pr,\n ): Promise<void> {\n const prCache = await ForgejoPrCache.init(\n http,\n repo,\n ignorePrAuthor,\n author,\n );\n prCache.setPr(item);\n }\n\n private reconcile(rawItems: (PR | null)[]): boolean {\n const { items } = this.cache;\n let { updated_at } = this.cache;\n const cacheTime = updated_at ? DateTime.fromISO(updated_at) : null;\n\n let needNextPage = true;\n\n for (const rawItem of rawItems) {\n if (!rawItem) {\n logger.warn('Forgejo PR is empty, throwing temporary error');\n // Forgejo API sometimes returns empty PRs, so we throw a temporary error\n // https://github.com/go-forgejo/forgejo/blob/fcd096231ac2deaefbca10a7db1b9b01f1da93d7/services/convert/pull.go#L34-L52\n throw new Error(TEMPORARY_ERROR);\n }\n const id = rawItem.number;\n\n const newItem = toRenovatePR(rawItem, this.author);\n if (!newItem) {\n continue;\n }\n\n const oldItem = items[id];\n if (dequal(oldItem, newItem)) {\n needNextPage = false;\n continue;\n }\n\n items[id] = newItem;\n\n const itemTime = DateTime.fromISO(rawItem.updated_at);\n if (!cacheTime || itemTime > cacheTime) {\n updated_at = rawItem.updated_at;\n }\n }\n\n this.cache.updated_at = updated_at;\n\n return needNextPage;\n }\n\n private async sync(http: ForgejoHttp): Promise<ForgejoPrCache> {\n let query: string | null = getQueryString({\n state: 'all',\n sort: 'recentupdate',\n // Fetch 100 PRs on the first run to ensure we have the most recent PRs.\n // Forgejo will cap appropriate (50 by default, see `MAX_RESPONSE_ITEMS`).\n // https://docs.forgejo.com/administration/config-cheat-sheet#api-api\n // https://forgejo.org/docs/latest/admin/config-cheat-sheet/#api-api\n limit: this.items.length ? 20 : 100,\n // Supported since Forgejo v10.0.0.\n // Will be ignored by older instances.\n ...(this.ignorePrAuthor ? {} : { poster: this.author }),\n });\n\n while (query) {\n // TODO: use zod, typescript can't infer the type of the response #22198\n const res: HttpResponse<(PR | null)[]> = await http.getJsonUnchecked(\n `${API_PATH}/repos/${this.repo}/pulls?${query}`,\n {\n memCache: false,\n paginate: false,\n },\n );\n\n const needNextPage = this.reconcile(res.body);\n if (!needNextPage) {\n break;\n }\n\n const uri = parseUrl(parseLinkHeader(res.headers.link)?.next?.url);\n query = uri ? uri.search : null;\n }\n\n this.updateItems();\n\n return this;\n }\n\n /**\n * Ensure the pr cache starts with the most recent PRs.\n * JavaScript ensures that the cache is sorted by PR number.\n */\n private updateItems(): void {\n this.items = Object.values(this.cache.items).reverse();\n }\n}\n"]}
@@ -24,7 +24,7 @@ class GiteaPrCache {
24
24
  repoCache.platform ??= {};
25
25
  repoCache.platform.gitea ??= {};
26
26
  let pullRequestCache = repoCache.platform.gitea.pullRequestsCache;
27
- if (!pullRequestCache || pullRequestCache.author !== author) {
27
+ if (pullRequestCache?.author !== author) {
28
28
  pullRequestCache = {
29
29
  items: {},
30
30
  updated_at: null,
@@ -1 +1 @@
1
- {"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gitea/pr-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { dequal } from 'dequal';\nimport { DateTime } from 'luxon';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport * as memCache from '../../../util/cache/memory';\nimport { getCache } from '../../../util/cache/repository';\nimport type { GiteaHttp } from '../../../util/http/gitea';\nimport type { HttpResponse } from '../../../util/http/types';\nimport { getQueryString, parseLinkHeader, parseUrl } from '../../../util/url';\nimport type { Pr } from '../types';\nimport type { GiteaPrCacheData, PR } from './types';\nimport { API_PATH, toRenovatePR } from './utils';\n\nexport class GiteaPrCache {\n private cache: GiteaPrCacheData;\n private items: Pr[] = [];\n\n private constructor(\n private repo: string,\n private readonly ignorePrAuthor: boolean,\n private author: string | null,\n ) {\n const repoCache = getCache();\n repoCache.platform ??= {};\n repoCache.platform.gitea ??= {};\n let pullRequestCache = repoCache.platform.gitea.pullRequestsCache as\n | GiteaPrCacheData\n | undefined;\n if (!pullRequestCache || pullRequestCache.author !== author) {\n pullRequestCache = {\n items: {},\n updated_at: null,\n author,\n };\n }\n repoCache.platform.gitea.pullRequestsCache = pullRequestCache;\n this.cache = pullRequestCache;\n this.updateItems();\n }\n\n static forceSync(): void {\n memCache.set('gitea-pr-cache-synced', false);\n }\n\n private static async init(\n http: GiteaHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string | null,\n ): Promise<GiteaPrCache> {\n const res = new GiteaPrCache(repo, ignorePrAuthor, author);\n const isSynced = memCache.get<true | undefined>('gitea-pr-cache-synced');\n\n if (!isSynced) {\n await res.sync(http);\n memCache.set('gitea-pr-cache-synced', true);\n }\n\n return res;\n }\n\n private getPrs(): Pr[] {\n return this.items;\n }\n\n static async getPrs(\n http: GiteaHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n ): Promise<Pr[]> {\n const prCache = await GiteaPrCache.init(http, repo, ignorePrAuthor, author);\n return prCache.getPrs();\n }\n\n private setPr(item: Pr): void {\n this.cache.items[item.number] = item;\n this.updateItems();\n }\n\n static async setPr(\n http: GiteaHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n item: Pr,\n ): Promise<void> {\n const prCache = await GiteaPrCache.init(http, repo, ignorePrAuthor, author);\n prCache.setPr(item);\n }\n\n private reconcile(rawItems: (PR | null)[]): boolean {\n const { items } = this.cache;\n let { updated_at } = this.cache;\n const cacheTime = updated_at ? DateTime.fromISO(updated_at) : null;\n\n let needNextPage = true;\n\n for (const rawItem of rawItems) {\n if (!rawItem) {\n logger.warn('Gitea PR is empty, throwing temporary error');\n // Gitea API sometimes returns empty PRs, so we throw a temporary error\n // https://github.com/go-gitea/gitea/blob/fcd096231ac2deaefbca10a7db1b9b01f1da93d7/services/convert/pull.go#L34-L52\n throw new Error(TEMPORARY_ERROR);\n }\n const id = rawItem.number;\n\n const newItem = toRenovatePR(rawItem, this.author);\n if (!newItem) {\n continue;\n }\n\n const oldItem = items[id];\n if (dequal(oldItem, newItem)) {\n needNextPage = false;\n continue;\n }\n\n items[id] = newItem;\n\n const itemTime = DateTime.fromISO(rawItem.updated_at);\n if (!cacheTime || itemTime > cacheTime) {\n updated_at = rawItem.updated_at;\n }\n }\n\n this.cache.updated_at = updated_at;\n\n return needNextPage;\n }\n\n private async sync(http: GiteaHttp): Promise<GiteaPrCache> {\n let query: string | null = getQueryString({\n state: 'all',\n sort: 'recentupdate',\n // Fetch 100 PRs on the first run to ensure we have the most recent PRs.\n // Gitea / Forgejo will cap appropriate (50 by default, see `MAX_RESPONSE_ITEMS`).\n // https://docs.gitea.com/administration/config-cheat-sheet#api-api\n // https://forgejo.org/docs/latest/admin/config-cheat-sheet/#api-api\n limit: this.items.length ? 20 : 100,\n // Supported since Gitea 1.23.0 and Forgejo v10.0.0.\n // Will be ignoded by older instances.\n ...(this.ignorePrAuthor ? {} : { poster: this.author }),\n });\n\n while (query) {\n // TODO: use zod, typescript can't infer the type of the response #22198\n const res: HttpResponse<(PR | null)[]> = await http.getJsonUnchecked(\n `${API_PATH}/repos/${this.repo}/pulls?${query}`,\n {\n memCache: false,\n paginate: false,\n },\n );\n\n const needNextPage = this.reconcile(res.body);\n if (!needNextPage) {\n break;\n }\n\n const uri = parseUrl(parseLinkHeader(res.headers.link)?.next?.url);\n query = uri ? uri.search : null;\n }\n\n this.updateItems();\n\n return this;\n }\n\n /**\n * Ensure the pr cache starts with the most recent PRs.\n * JavaScript ensures that the cache is sorted by PR number.\n */\n private updateItems(): void {\n this.items = Object.values(this.cache.items).reverse();\n }\n}\n"]}
1
+ {"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gitea/pr-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { dequal } from 'dequal';\nimport { DateTime } from 'luxon';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport * as memCache from '../../../util/cache/memory';\nimport { getCache } from '../../../util/cache/repository';\nimport type { GiteaHttp } from '../../../util/http/gitea';\nimport type { HttpResponse } from '../../../util/http/types';\nimport { getQueryString, parseLinkHeader, parseUrl } from '../../../util/url';\nimport type { Pr } from '../types';\nimport type { GiteaPrCacheData, PR } from './types';\nimport { API_PATH, toRenovatePR } from './utils';\n\nexport class GiteaPrCache {\n private cache: GiteaPrCacheData;\n private items: Pr[] = [];\n\n private constructor(\n private repo: string,\n private readonly ignorePrAuthor: boolean,\n private author: string | null,\n ) {\n const repoCache = getCache();\n repoCache.platform ??= {};\n repoCache.platform.gitea ??= {};\n let pullRequestCache = repoCache.platform.gitea.pullRequestsCache as\n | GiteaPrCacheData\n | undefined;\n if (pullRequestCache?.author !== author) {\n pullRequestCache = {\n items: {},\n updated_at: null,\n author,\n };\n }\n repoCache.platform.gitea.pullRequestsCache = pullRequestCache;\n this.cache = pullRequestCache;\n this.updateItems();\n }\n\n static forceSync(): void {\n memCache.set('gitea-pr-cache-synced', false);\n }\n\n private static async init(\n http: GiteaHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string | null,\n ): Promise<GiteaPrCache> {\n const res = new GiteaPrCache(repo, ignorePrAuthor, author);\n const isSynced = memCache.get<true | undefined>('gitea-pr-cache-synced');\n\n if (!isSynced) {\n await res.sync(http);\n memCache.set('gitea-pr-cache-synced', true);\n }\n\n return res;\n }\n\n private getPrs(): Pr[] {\n return this.items;\n }\n\n static async getPrs(\n http: GiteaHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n ): Promise<Pr[]> {\n const prCache = await GiteaPrCache.init(http, repo, ignorePrAuthor, author);\n return prCache.getPrs();\n }\n\n private setPr(item: Pr): void {\n this.cache.items[item.number] = item;\n this.updateItems();\n }\n\n static async setPr(\n http: GiteaHttp,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n item: Pr,\n ): Promise<void> {\n const prCache = await GiteaPrCache.init(http, repo, ignorePrAuthor, author);\n prCache.setPr(item);\n }\n\n private reconcile(rawItems: (PR | null)[]): boolean {\n const { items } = this.cache;\n let { updated_at } = this.cache;\n const cacheTime = updated_at ? DateTime.fromISO(updated_at) : null;\n\n let needNextPage = true;\n\n for (const rawItem of rawItems) {\n if (!rawItem) {\n logger.warn('Gitea PR is empty, throwing temporary error');\n // Gitea API sometimes returns empty PRs, so we throw a temporary error\n // https://github.com/go-gitea/gitea/blob/fcd096231ac2deaefbca10a7db1b9b01f1da93d7/services/convert/pull.go#L34-L52\n throw new Error(TEMPORARY_ERROR);\n }\n const id = rawItem.number;\n\n const newItem = toRenovatePR(rawItem, this.author);\n if (!newItem) {\n continue;\n }\n\n const oldItem = items[id];\n if (dequal(oldItem, newItem)) {\n needNextPage = false;\n continue;\n }\n\n items[id] = newItem;\n\n const itemTime = DateTime.fromISO(rawItem.updated_at);\n if (!cacheTime || itemTime > cacheTime) {\n updated_at = rawItem.updated_at;\n }\n }\n\n this.cache.updated_at = updated_at;\n\n return needNextPage;\n }\n\n private async sync(http: GiteaHttp): Promise<GiteaPrCache> {\n let query: string | null = getQueryString({\n state: 'all',\n sort: 'recentupdate',\n // Fetch 100 PRs on the first run to ensure we have the most recent PRs.\n // Gitea / Forgejo will cap appropriate (50 by default, see `MAX_RESPONSE_ITEMS`).\n // https://docs.gitea.com/administration/config-cheat-sheet#api-api\n // https://forgejo.org/docs/latest/admin/config-cheat-sheet/#api-api\n limit: this.items.length ? 20 : 100,\n // Supported since Gitea 1.23.0 and Forgejo v10.0.0.\n // Will be ignoded by older instances.\n ...(this.ignorePrAuthor ? {} : { poster: this.author }),\n });\n\n while (query) {\n // TODO: use zod, typescript can't infer the type of the response #22198\n const res: HttpResponse<(PR | null)[]> = await http.getJsonUnchecked(\n `${API_PATH}/repos/${this.repo}/pulls?${query}`,\n {\n memCache: false,\n paginate: false,\n },\n );\n\n const needNextPage = this.reconcile(res.body);\n if (!needNextPage) {\n break;\n }\n\n const uri = parseUrl(parseLinkHeader(res.headers.link)?.next?.url);\n query = uri ? uri.search : null;\n }\n\n this.updateItems();\n\n return this;\n }\n\n /**\n * Ensure the pr cache starts with the most recent PRs.\n * JavaScript ensures that the cache is sorted by PR number.\n */\n private updateItems(): void {\n this.items = Object.values(this.cache.items).reverse();\n }\n}\n"]}
@@ -33,7 +33,7 @@ function parseDynamicRevision(str) {
33
33
  }
34
34
  }
35
35
  const range = (0, compare_1.parseRange)(str);
36
- if (range && range.length === 1) {
36
+ if (range?.length === 1) {
37
37
  const rangeValue = (0, compare_1.rangeToStr)(range);
38
38
  if (rangeValue) {
39
39
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/ivy/parse.ts"],"names":[],"mappings":";;;AAyDE,oDAAoB;AAzDtB,+CAA4C;AAC5C,8CAA2E;AAE3E,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAmDxC,0CAAe;AAlDjB,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAmD7C,0CAAe;AAlDjB,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAmDtC,wCAAc;AA3CH,QAAA,YAAY,GAAG,IAAA,aAAK,EAAC,qBAAqB,CAAC,CAAC;AAEzD,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,oBAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAY,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAChE,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,aAAK,EAAC,OAAO,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,IAAA,yBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,KAAK;aACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,UAAU;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { regEx } from '../../../util/regex';\nimport { isSingleVersion, parseRange, rangeToStr } from '../maven/compare';\n\nconst REV_TYPE_LATEST = 'REV_TYPE_LATEST';\nconst REV_TYPE_SUBREV = 'REV_TYPE_SUBREVISION';\nconst REV_TYPE_RANGE = 'REV_TYPE_RANGE';\n\nexport interface Revision {\n type: typeof REV_TYPE_LATEST | typeof REV_TYPE_RANGE | typeof REV_TYPE_SUBREV;\n\n value: string;\n}\n\nexport const LATEST_REGEX = regEx(/^latest\\.|^latest$/i);\n\nfunction parseDynamicRevision(str: string): Revision | null {\n if (!str) {\n return null;\n }\n\n if (LATEST_REGEX.test(str)) {\n const value = str.replace(LATEST_REGEX, '').toLowerCase() || '';\n return {\n type: REV_TYPE_LATEST,\n value: value === 'integration' ? '' : value,\n };\n }\n\n const SUBREV_REGEX = regEx(/\\.\\+$/);\n if (str.endsWith('.+')) {\n const value = str.replace(SUBREV_REGEX, '');\n if (isSingleVersion(value)) {\n return {\n type: REV_TYPE_SUBREV,\n value,\n };\n }\n }\n\n const range = parseRange(str);\n if (range && range.length === 1) {\n const rangeValue = rangeToStr(range);\n if (rangeValue) {\n return {\n type: REV_TYPE_RANGE,\n value: rangeValue,\n };\n }\n }\n\n return null;\n}\n\nexport {\n REV_TYPE_LATEST,\n REV_TYPE_SUBREV,\n REV_TYPE_RANGE,\n parseDynamicRevision,\n};\n"]}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/ivy/parse.ts"],"names":[],"mappings":";;;AAyDE,oDAAoB;AAzDtB,+CAA4C;AAC5C,8CAA2E;AAE3E,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAmDxC,0CAAe;AAlDjB,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAmD7C,0CAAe;AAlDjB,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAmDtC,wCAAc;AA3CH,QAAA,YAAY,GAAG,IAAA,aAAK,EAAC,qBAAqB,CAAC,CAAC;AAEzD,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,oBAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAY,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAChE,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,aAAK,EAAC,OAAO,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,IAAA,yBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,KAAK;aACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,UAAU;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { regEx } from '../../../util/regex';\nimport { isSingleVersion, parseRange, rangeToStr } from '../maven/compare';\n\nconst REV_TYPE_LATEST = 'REV_TYPE_LATEST';\nconst REV_TYPE_SUBREV = 'REV_TYPE_SUBREVISION';\nconst REV_TYPE_RANGE = 'REV_TYPE_RANGE';\n\nexport interface Revision {\n type: typeof REV_TYPE_LATEST | typeof REV_TYPE_RANGE | typeof REV_TYPE_SUBREV;\n\n value: string;\n}\n\nexport const LATEST_REGEX = regEx(/^latest\\.|^latest$/i);\n\nfunction parseDynamicRevision(str: string): Revision | null {\n if (!str) {\n return null;\n }\n\n if (LATEST_REGEX.test(str)) {\n const value = str.replace(LATEST_REGEX, '').toLowerCase() || '';\n return {\n type: REV_TYPE_LATEST,\n value: value === 'integration' ? '' : value,\n };\n }\n\n const SUBREV_REGEX = regEx(/\\.\\+$/);\n if (str.endsWith('.+')) {\n const value = str.replace(SUBREV_REGEX, '');\n if (isSingleVersion(value)) {\n return {\n type: REV_TYPE_SUBREV,\n value,\n };\n }\n }\n\n const range = parseRange(str);\n if (range?.length === 1) {\n const rangeValue = rangeToStr(range);\n if (rangeValue) {\n return {\n type: REV_TYPE_RANGE,\n value: rangeValue,\n };\n }\n }\n\n return null;\n}\n\nexport {\n REV_TYPE_LATEST,\n REV_TYPE_SUBREV,\n REV_TYPE_RANGE,\n parseDynamicRevision,\n};\n"]}
@@ -64,7 +64,7 @@ const getMinor = (version) => {
64
64
  if ((0, compare_1.isVersion)(version)) {
65
65
  const tokens = (0, compare_1.tokenize)(version);
66
66
  const minorToken = tokens[1];
67
- if (minorToken && minorToken.type === compare_1.TYPE_NUMBER) {
67
+ if (minorToken?.type === compare_1.TYPE_NUMBER) {
68
68
  return +minorToken.val;
69
69
  }
70
70
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/maven/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RangeStrategy } from '../../../types/versioning';\nimport { coerceString } from '../../../util/string';\nimport type { NewValueConfig, VersioningApi } from '../types';\nimport {\n EXCLUDING_POINT,\n QualifierTypes,\n TYPE_NUMBER,\n TYPE_QUALIFIER,\n autoExtendMavenRange,\n compare,\n isSingleVersion,\n isValid,\n isVersion,\n parseRange,\n qualifierType,\n tokenize,\n} from './compare';\n\nexport const id = 'maven';\nexport const displayName = 'Maven';\nexport const urls = [\n 'https://maven.apache.org/pom.html#Dependency_Version_Requirement_Specification',\n 'https://octopus.com/blog/maven-versioning-explained',\n 'https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'pin',\n 'replace',\n];\n\nconst equals = (a: string, b: string): boolean => compare(a, b) === 0;\n\nfunction matches(a: string, b: string): boolean {\n if (!b) {\n return false;\n }\n if (isVersion(b)) {\n return equals(a, b);\n }\n const ranges = parseRange(b);\n if (!ranges) {\n return false;\n }\n return ranges.reduce((result, range): any => {\n if (result) {\n return result;\n }\n\n const { leftType, leftValue, rightType, rightValue } = range;\n\n let leftResult = true;\n let rightResult = true;\n\n if (leftValue) {\n leftResult =\n leftType === EXCLUDING_POINT\n ? compare(leftValue, a) === -1\n : compare(leftValue, a) !== 1;\n }\n\n if (rightValue) {\n rightResult =\n rightType === EXCLUDING_POINT\n ? compare(a, rightValue) === -1\n : compare(a, rightValue) !== 1;\n }\n\n return leftResult && rightResult;\n }, false);\n}\n\nconst getMajor = (version: string): number | null => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n const majorToken = tokens[0];\n return +majorToken.val;\n }\n return null;\n};\n\nconst getMinor = (version: string): number | null => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n const minorToken = tokens[1];\n if (minorToken && minorToken.type === TYPE_NUMBER) {\n return +minorToken.val;\n }\n return 0;\n }\n return null;\n};\n\nconst getPatch = (version: string): number | null => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n const minorToken = tokens[1];\n const patchToken = tokens[2];\n if (\n patchToken &&\n minorToken.type === TYPE_NUMBER &&\n patchToken.type === TYPE_NUMBER\n ) {\n return +patchToken.val;\n }\n return 0;\n }\n return null;\n};\n\nconst isGreaterThan = (a: string, b: string): boolean => compare(a, b) === 1;\n\nconst isStable = (version: string): boolean => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n for (const token of tokens) {\n if (token.type === TYPE_QUALIFIER) {\n const qualType = qualifierType(token);\n if (qualType && qualType < QualifierTypes.Release) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n};\n\n// istanbul ignore next\nconst getSatisfyingVersion = (\n versions: string[],\n range: string,\n): string | null =>\n versions.reduce((result: string | null, version) => {\n if (matches(version, range)) {\n if (!result) {\n return version;\n }\n if (isGreaterThan(version, result)) {\n return version;\n }\n }\n return result;\n }, null);\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n newVersion,\n}: NewValueConfig): string {\n if (isVersion(currentValue) || rangeStrategy === 'pin') {\n return newVersion;\n }\n return coerceString(\n autoExtendMavenRange(currentValue, newVersion),\n currentValue,\n );\n}\n\nexport { isValid };\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion: getSatisfyingVersion,\n getNewValue,\n sortVersions: compare,\n};\n\nexport default api;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/maven/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RangeStrategy } from '../../../types/versioning';\nimport { coerceString } from '../../../util/string';\nimport type { NewValueConfig, VersioningApi } from '../types';\nimport {\n EXCLUDING_POINT,\n QualifierTypes,\n TYPE_NUMBER,\n TYPE_QUALIFIER,\n autoExtendMavenRange,\n compare,\n isSingleVersion,\n isValid,\n isVersion,\n parseRange,\n qualifierType,\n tokenize,\n} from './compare';\n\nexport const id = 'maven';\nexport const displayName = 'Maven';\nexport const urls = [\n 'https://maven.apache.org/pom.html#Dependency_Version_Requirement_Specification',\n 'https://octopus.com/blog/maven-versioning-explained',\n 'https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'pin',\n 'replace',\n];\n\nconst equals = (a: string, b: string): boolean => compare(a, b) === 0;\n\nfunction matches(a: string, b: string): boolean {\n if (!b) {\n return false;\n }\n if (isVersion(b)) {\n return equals(a, b);\n }\n const ranges = parseRange(b);\n if (!ranges) {\n return false;\n }\n return ranges.reduce((result, range): any => {\n if (result) {\n return result;\n }\n\n const { leftType, leftValue, rightType, rightValue } = range;\n\n let leftResult = true;\n let rightResult = true;\n\n if (leftValue) {\n leftResult =\n leftType === EXCLUDING_POINT\n ? compare(leftValue, a) === -1\n : compare(leftValue, a) !== 1;\n }\n\n if (rightValue) {\n rightResult =\n rightType === EXCLUDING_POINT\n ? compare(a, rightValue) === -1\n : compare(a, rightValue) !== 1;\n }\n\n return leftResult && rightResult;\n }, false);\n}\n\nconst getMajor = (version: string): number | null => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n const majorToken = tokens[0];\n return +majorToken.val;\n }\n return null;\n};\n\nconst getMinor = (version: string): number | null => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n const minorToken = tokens[1];\n if (minorToken?.type === TYPE_NUMBER) {\n return +minorToken.val;\n }\n return 0;\n }\n return null;\n};\n\nconst getPatch = (version: string): number | null => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n const minorToken = tokens[1];\n const patchToken = tokens[2];\n if (\n patchToken &&\n minorToken.type === TYPE_NUMBER &&\n patchToken.type === TYPE_NUMBER\n ) {\n return +patchToken.val;\n }\n return 0;\n }\n return null;\n};\n\nconst isGreaterThan = (a: string, b: string): boolean => compare(a, b) === 1;\n\nconst isStable = (version: string): boolean => {\n if (isVersion(version)) {\n const tokens = tokenize(version);\n for (const token of tokens) {\n if (token.type === TYPE_QUALIFIER) {\n const qualType = qualifierType(token);\n if (qualType && qualType < QualifierTypes.Release) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n};\n\n// istanbul ignore next\nconst getSatisfyingVersion = (\n versions: string[],\n range: string,\n): string | null =>\n versions.reduce((result: string | null, version) => {\n if (matches(version, range)) {\n if (!result) {\n return version;\n }\n if (isGreaterThan(version, result)) {\n return version;\n }\n }\n return result;\n }, null);\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n newVersion,\n}: NewValueConfig): string {\n if (isVersion(currentValue) || rangeStrategy === 'pin') {\n return newVersion;\n }\n return coerceString(\n autoExtendMavenRange(currentValue, newVersion),\n currentValue,\n );\n}\n\nexport { isValid };\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion: getSatisfyingVersion,\n getNewValue,\n sortVersions: compare,\n};\n\nexport default api;\n"]}
@@ -29,7 +29,7 @@ class NugetVersioningApi {
29
29
  return !v.prerelease;
30
30
  }
31
31
  const r = (0, parser_1.parseRange)(version);
32
- if (!r || r.type !== 'nuget-exact-range') {
32
+ if (r?.type !== 'nuget-exact-range') {
33
33
  return false;
34
34
  }
35
35
  return !r.version.prerelease;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/nuget/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NewValueConfig, VersioningApi } from '../types';\nimport { parseRange, parseVersion } from './parser';\nimport {\n coerceFloatingComponent,\n getFloatingRangeLowerBound,\n matches,\n rangeToString,\n tryBump,\n} from './range';\nimport type {\n NugetBracketRange,\n NugetFloatingRange,\n NugetVersion,\n} from './types';\nimport { compare, versionToString } from './version';\n\nexport const id = 'nuget';\nexport const displayName = 'NuGet';\nexport const urls = [\n 'https://learn.microsoft.com/nuget/concepts/package-versioning',\n 'https://nugettools.azurewebsites.net/',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies = ['bump'];\n\nclass NugetVersioningApi implements VersioningApi {\n isCompatible(version: string, _current?: string): boolean {\n return this.isValid(version);\n }\n\n isSingleVersion(version: string): boolean {\n const r = parseRange(version);\n if (!r) {\n return false;\n }\n\n return r.type === 'nuget-exact-range';\n }\n\n isStable(version: string): boolean {\n const v = parseVersion(version);\n if (v) {\n return !v.prerelease;\n }\n\n const r = parseRange(version);\n if (!r || r.type !== 'nuget-exact-range') {\n return false;\n }\n\n return !r.version.prerelease;\n }\n\n isValid(input: string): boolean {\n const v = parseVersion(input);\n if (v) {\n return true;\n }\n\n const r = parseRange(input);\n if (r) {\n return true;\n }\n\n return false;\n }\n\n isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n\n const v = parseVersion(input);\n if (!v) {\n return false;\n }\n\n return true;\n }\n\n getMajor(version: string): number | null {\n const v = parseVersion(version);\n if (!v) {\n return null;\n }\n\n return v.major;\n }\n\n getMinor(version: string): number | null {\n const v = parseVersion(version);\n if (!v) {\n return null;\n }\n\n return v.minor ?? null;\n }\n\n getPatch(version: string): number | null {\n const v = parseVersion(version);\n if (!v) {\n return null;\n }\n\n return v.patch ?? null;\n }\n\n equals(version: string, other: string): boolean {\n const x = parseVersion(version);\n const y = parseVersion(other);\n if (!x || !y) {\n return false;\n }\n\n return compare(x, y) === 0;\n }\n\n isGreaterThan(version: string, other: string): boolean {\n const x = parseVersion(version);\n const y = parseVersion(other);\n if (!x || !y) {\n return false;\n }\n\n return compare(x, y) > 0;\n }\n\n isLessThanRange(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const u = parseVersion(range);\n if (u) {\n return compare(v, u) < 0;\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n if (r.type === 'nuget-exact-range') {\n return compare(v, r.version) < 0;\n }\n\n if (r.type === 'nuget-bracket-range') {\n if (!r.min) {\n return false;\n }\n\n const minBound =\n r.min.type === 'nuget-version'\n ? r.min\n : getFloatingRangeLowerBound(r.min);\n const cmp = compare(v, minBound);\n return r.minInclusive ? cmp < 0 : cmp <= 0;\n }\n\n const minBound = getFloatingRangeLowerBound(r);\n return compare(v, minBound) < 0;\n }\n\n getSatisfyingVersion(versions: string[], range: string): string | null {\n const r = parseRange(range);\n if (r) {\n let result: string | null = null;\n let vMax: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (!matches(v, r)) {\n continue;\n }\n\n if (!vMax || compare(v, vMax) > 0) {\n vMax = v;\n result = version;\n }\n }\n\n return result;\n }\n\n const u = parseVersion(range);\n if (u) {\n let result: string | null = null;\n let vMax: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (compare(v, u) < 0) {\n continue;\n }\n\n if (!vMax || compare(v, vMax) > 0) {\n vMax = v;\n result = version;\n }\n }\n\n return result;\n }\n\n return null;\n }\n\n minSatisfyingVersion(versions: string[], range: string): string | null {\n const r = parseRange(range);\n if (r) {\n let result: string | null = null;\n let vMin: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (!matches(v, r)) {\n continue;\n }\n\n if (!vMin || compare(v, vMin) < 0) {\n result = version;\n vMin = v;\n }\n }\n\n return result;\n }\n\n const u = parseVersion(range);\n if (u) {\n let result: string | null = null;\n let vMin: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (compare(v, u) < 0) {\n continue;\n }\n\n if (!vMin || compare(v, vMin) < 0) {\n result = version;\n vMin = v;\n }\n }\n\n return result;\n }\n\n return null;\n }\n\n getPinnedValue(newVersion: string): string {\n const v = parseVersion(newVersion);\n if (!v) {\n return '';\n }\n return rangeToString({ type: 'nuget-exact-range', version: v });\n }\n\n getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n }: NewValueConfig): string | null {\n const v = parseVersion(newVersion);\n if (!v) {\n return null;\n }\n\n if (this.isVersion(currentValue)) {\n return newVersion;\n }\n\n const r = parseRange(currentValue);\n if (!r) {\n return null;\n }\n\n if (this.isLessThanRange(newVersion, currentValue)) {\n return currentValue;\n }\n\n if (r.type === 'nuget-exact-range') {\n return rangeToString({ type: 'nuget-exact-range', version: v });\n }\n\n if (r.type === 'nuget-floating-range') {\n const floating = r.floating;\n if (!floating) {\n return versionToString(v);\n }\n\n const res: NugetFloatingRange = { ...r };\n\n if (floating === 'major') {\n res.major = coerceFloatingComponent(v.major);\n return tryBump(res, v, currentValue);\n }\n res.major = v.major;\n\n if (floating === 'minor') {\n res.minor = coerceFloatingComponent(v.minor);\n return tryBump(res, v, currentValue);\n }\n res.minor = v.minor ?? 0;\n\n if (floating === 'patch') {\n res.patch = coerceFloatingComponent(v.patch);\n return tryBump(res, v, currentValue);\n }\n res.patch = v.patch ?? 0;\n\n res.revision = coerceFloatingComponent(v.revision);\n return tryBump(res, v, currentValue);\n }\n\n const res: NugetBracketRange = { ...r };\n\n if (!r.max) {\n res.min = v;\n res.minInclusive = true;\n return rangeToString(res);\n }\n\n if (matches(v, r)) {\n return currentValue;\n }\n\n if (!r.min) {\n res.max = v;\n res.maxInclusive = true;\n return rangeToString(res);\n }\n\n res.max = v;\n res.maxInclusive = true;\n return rangeToString(res);\n }\n\n sortVersions(version: string, other: string): number {\n const x = parseVersion(version);\n const y = parseVersion(other);\n if (!x || !y) {\n return 0;\n }\n\n return compare(x, y);\n }\n\n matches(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const u = parseVersion(range);\n if (u) {\n return compare(v, u) >= 0;\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n return matches(v, r);\n }\n}\n\nexport const api: VersioningApi = new NugetVersioningApi();\n\nexport default api;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/nuget/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NewValueConfig, VersioningApi } from '../types';\nimport { parseRange, parseVersion } from './parser';\nimport {\n coerceFloatingComponent,\n getFloatingRangeLowerBound,\n matches,\n rangeToString,\n tryBump,\n} from './range';\nimport type {\n NugetBracketRange,\n NugetFloatingRange,\n NugetVersion,\n} from './types';\nimport { compare, versionToString } from './version';\n\nexport const id = 'nuget';\nexport const displayName = 'NuGet';\nexport const urls = [\n 'https://learn.microsoft.com/nuget/concepts/package-versioning',\n 'https://nugettools.azurewebsites.net/',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies = ['bump'];\n\nclass NugetVersioningApi implements VersioningApi {\n isCompatible(version: string, _current?: string): boolean {\n return this.isValid(version);\n }\n\n isSingleVersion(version: string): boolean {\n const r = parseRange(version);\n if (!r) {\n return false;\n }\n\n return r.type === 'nuget-exact-range';\n }\n\n isStable(version: string): boolean {\n const v = parseVersion(version);\n if (v) {\n return !v.prerelease;\n }\n\n const r = parseRange(version);\n if (r?.type !== 'nuget-exact-range') {\n return false;\n }\n\n return !r.version.prerelease;\n }\n\n isValid(input: string): boolean {\n const v = parseVersion(input);\n if (v) {\n return true;\n }\n\n const r = parseRange(input);\n if (r) {\n return true;\n }\n\n return false;\n }\n\n isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n\n const v = parseVersion(input);\n if (!v) {\n return false;\n }\n\n return true;\n }\n\n getMajor(version: string): number | null {\n const v = parseVersion(version);\n if (!v) {\n return null;\n }\n\n return v.major;\n }\n\n getMinor(version: string): number | null {\n const v = parseVersion(version);\n if (!v) {\n return null;\n }\n\n return v.minor ?? null;\n }\n\n getPatch(version: string): number | null {\n const v = parseVersion(version);\n if (!v) {\n return null;\n }\n\n return v.patch ?? null;\n }\n\n equals(version: string, other: string): boolean {\n const x = parseVersion(version);\n const y = parseVersion(other);\n if (!x || !y) {\n return false;\n }\n\n return compare(x, y) === 0;\n }\n\n isGreaterThan(version: string, other: string): boolean {\n const x = parseVersion(version);\n const y = parseVersion(other);\n if (!x || !y) {\n return false;\n }\n\n return compare(x, y) > 0;\n }\n\n isLessThanRange(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const u = parseVersion(range);\n if (u) {\n return compare(v, u) < 0;\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n if (r.type === 'nuget-exact-range') {\n return compare(v, r.version) < 0;\n }\n\n if (r.type === 'nuget-bracket-range') {\n if (!r.min) {\n return false;\n }\n\n const minBound =\n r.min.type === 'nuget-version'\n ? r.min\n : getFloatingRangeLowerBound(r.min);\n const cmp = compare(v, minBound);\n return r.minInclusive ? cmp < 0 : cmp <= 0;\n }\n\n const minBound = getFloatingRangeLowerBound(r);\n return compare(v, minBound) < 0;\n }\n\n getSatisfyingVersion(versions: string[], range: string): string | null {\n const r = parseRange(range);\n if (r) {\n let result: string | null = null;\n let vMax: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (!matches(v, r)) {\n continue;\n }\n\n if (!vMax || compare(v, vMax) > 0) {\n vMax = v;\n result = version;\n }\n }\n\n return result;\n }\n\n const u = parseVersion(range);\n if (u) {\n let result: string | null = null;\n let vMax: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (compare(v, u) < 0) {\n continue;\n }\n\n if (!vMax || compare(v, vMax) > 0) {\n vMax = v;\n result = version;\n }\n }\n\n return result;\n }\n\n return null;\n }\n\n minSatisfyingVersion(versions: string[], range: string): string | null {\n const r = parseRange(range);\n if (r) {\n let result: string | null = null;\n let vMin: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (!matches(v, r)) {\n continue;\n }\n\n if (!vMin || compare(v, vMin) < 0) {\n result = version;\n vMin = v;\n }\n }\n\n return result;\n }\n\n const u = parseVersion(range);\n if (u) {\n let result: string | null = null;\n let vMin: NugetVersion | undefined;\n for (const version of versions) {\n const v = parseVersion(version);\n if (!v) {\n continue;\n }\n\n if (compare(v, u) < 0) {\n continue;\n }\n\n if (!vMin || compare(v, vMin) < 0) {\n result = version;\n vMin = v;\n }\n }\n\n return result;\n }\n\n return null;\n }\n\n getPinnedValue(newVersion: string): string {\n const v = parseVersion(newVersion);\n if (!v) {\n return '';\n }\n return rangeToString({ type: 'nuget-exact-range', version: v });\n }\n\n getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n }: NewValueConfig): string | null {\n const v = parseVersion(newVersion);\n if (!v) {\n return null;\n }\n\n if (this.isVersion(currentValue)) {\n return newVersion;\n }\n\n const r = parseRange(currentValue);\n if (!r) {\n return null;\n }\n\n if (this.isLessThanRange(newVersion, currentValue)) {\n return currentValue;\n }\n\n if (r.type === 'nuget-exact-range') {\n return rangeToString({ type: 'nuget-exact-range', version: v });\n }\n\n if (r.type === 'nuget-floating-range') {\n const floating = r.floating;\n if (!floating) {\n return versionToString(v);\n }\n\n const res: NugetFloatingRange = { ...r };\n\n if (floating === 'major') {\n res.major = coerceFloatingComponent(v.major);\n return tryBump(res, v, currentValue);\n }\n res.major = v.major;\n\n if (floating === 'minor') {\n res.minor = coerceFloatingComponent(v.minor);\n return tryBump(res, v, currentValue);\n }\n res.minor = v.minor ?? 0;\n\n if (floating === 'patch') {\n res.patch = coerceFloatingComponent(v.patch);\n return tryBump(res, v, currentValue);\n }\n res.patch = v.patch ?? 0;\n\n res.revision = coerceFloatingComponent(v.revision);\n return tryBump(res, v, currentValue);\n }\n\n const res: NugetBracketRange = { ...r };\n\n if (!r.max) {\n res.min = v;\n res.minInclusive = true;\n return rangeToString(res);\n }\n\n if (matches(v, r)) {\n return currentValue;\n }\n\n if (!r.min) {\n res.max = v;\n res.maxInclusive = true;\n return rangeToString(res);\n }\n\n res.max = v;\n res.maxInclusive = true;\n return rangeToString(res);\n }\n\n sortVersions(version: string, other: string): number {\n const x = parseVersion(version);\n const y = parseVersion(other);\n if (!x || !y) {\n return 0;\n }\n\n return compare(x, y);\n }\n\n matches(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const u = parseVersion(range);\n if (u) {\n return compare(v, u) >= 0;\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n return matches(v, r);\n }\n}\n\nexport const api: VersioningApi = new NugetVersioningApi();\n\nexport default api;\n"]}
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCachedBehindBaseResult = getCachedBehindBaseResult;
4
4
  exports.setCachedBehindBaseResult = setCachedBehindBaseResult;
5
+ const is_1 = require("@sindresorhus/is");
5
6
  const logger_1 = require("../../logger");
6
7
  const repository_1 = require("../cache/repository");
7
8
  function getCachedBehindBaseResult(branchName, branchSha, baseBranch, baseBranchSha) {
8
9
  const cache = (0, repository_1.getCache)();
9
10
  const branch = cache.branches?.find((branch) => branch.branchName === branchName);
10
- if (branch &&
11
+ if ((0, is_1.isNonEmptyObject)(branch) &&
11
12
  branch.sha === branchSha &&
12
13
  branch.baseBranch === baseBranch &&
13
14
  branch.baseBranchSha === baseBranchSha &&
@@ -1 +1 @@
1
- {"version":3,"file":"behind-base-branch-cache.js","sourceRoot":"","sources":["../../../lib/util/git/behind-base-branch-cache.ts"],"names":[],"mappings":";;AAIA,8DAsBC;AAED,8DAeC;AA3CD,yCAAsC;AACtC,oDAA+C;AAG/C,SAAgB,yBAAyB,CACvC,UAAkB,EAClB,SAA+B,EAC/B,UAAkB,EAClB,aAAmC;IAEnC,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAC7C,CAAC;IAEF,IACE,MAAM;QACN,MAAM,CAAC,GAAG,KAAK,SAAS;QACxB,MAAM,CAAC,UAAU,KAAK,UAAU;QAChC,MAAM,CAAC,aAAa,KAAK,aAAa;QACtC,MAAM,CAAC,YAAY,KAAK,SAAS,EACjC,CAAC;QACD,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,yBAAyB,CACvC,UAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAC7C,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,CAAC","sourcesContent":["import { logger } from '../../logger';\nimport { getCache } from '../cache/repository';\nimport type { LongCommitSha } from './types';\n\nexport function getCachedBehindBaseResult(\n branchName: string,\n branchSha: LongCommitSha | null,\n baseBranch: string,\n baseBranchSha: LongCommitSha | null,\n): boolean | null {\n const cache = getCache();\n const branch = cache.branches?.find(\n (branch) => branch.branchName === branchName,\n );\n\n if (\n branch &&\n branch.sha === branchSha &&\n branch.baseBranch === baseBranch &&\n branch.baseBranchSha === baseBranchSha &&\n branch.isBehindBase !== undefined\n ) {\n return branch.isBehindBase;\n }\n\n return null;\n}\n\nexport function setCachedBehindBaseResult(\n branchName: string,\n isBehindBase: boolean,\n): void {\n const cache = getCache();\n const branch = cache.branches?.find(\n (branch) => branch.branchName === branchName,\n );\n\n if (!branch) {\n logger.debug(`setCachedBehindBaseResult(): Branch cache not present`);\n return;\n }\n\n branch.isBehindBase = isBehindBase;\n}\n"]}
1
+ {"version":3,"file":"behind-base-branch-cache.js","sourceRoot":"","sources":["../../../lib/util/git/behind-base-branch-cache.ts"],"names":[],"mappings":";;AAKA,8DAsBC;AAED,8DAeC;AA5CD,yCAAoD;AACpD,yCAAsC;AACtC,oDAA+C;AAG/C,SAAgB,yBAAyB,CACvC,UAAkB,EAClB,SAA+B,EAC/B,UAAkB,EAClB,aAAmC;IAEnC,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAC7C,CAAC;IAEF,IACE,IAAA,qBAAgB,EAAC,MAAM,CAAC;QACxB,MAAM,CAAC,GAAG,KAAK,SAAS;QACxB,MAAM,CAAC,UAAU,KAAK,UAAU;QAChC,MAAM,CAAC,aAAa,KAAK,aAAa;QACtC,MAAM,CAAC,YAAY,KAAK,SAAS,EACjC,CAAC;QACD,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,yBAAyB,CACvC,UAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAC7C,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,CAAC","sourcesContent":["import { isNonEmptyObject } from '@sindresorhus/is';\nimport { logger } from '../../logger';\nimport { getCache } from '../cache/repository';\nimport type { LongCommitSha } from './types';\n\nexport function getCachedBehindBaseResult(\n branchName: string,\n branchSha: LongCommitSha | null,\n baseBranch: string,\n baseBranchSha: LongCommitSha | null,\n): boolean | null {\n const cache = getCache();\n const branch = cache.branches?.find(\n (branch) => branch.branchName === branchName,\n );\n\n if (\n isNonEmptyObject(branch) &&\n branch.sha === branchSha &&\n branch.baseBranch === baseBranch &&\n branch.baseBranchSha === baseBranchSha &&\n branch.isBehindBase !== undefined\n ) {\n return branch.isBehindBase;\n }\n\n return null;\n}\n\nexport function setCachedBehindBaseResult(\n branchName: string,\n isBehindBase: boolean,\n): void {\n const cache = getCache();\n const branch = cache.branches?.find(\n (branch) => branch.branchName === branchName,\n );\n\n if (!branch) {\n logger.debug(`setCachedBehindBaseResult(): Branch cache not present`);\n return;\n }\n\n branch.isBehindBase = isBehindBase;\n}\n"]}
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCachedConflictResult = getCachedConflictResult;
4
4
  exports.setCachedConflictResult = setCachedConflictResult;
5
+ const is_1 = require("@sindresorhus/is");
5
6
  const logger_1 = require("../../logger");
6
7
  const repository_1 = require("../cache/repository");
7
8
  function getCachedConflictResult(branchName, branchSha, baseBranch, baseBranchSha) {
8
9
  const cache = (0, repository_1.getCache)();
9
10
  const branch = cache?.branches?.find((br) => br.branchName === branchName);
10
- if (branch &&
11
+ if ((0, is_1.isNonEmptyObject)(branch) &&
11
12
  branch.baseBranch === baseBranch &&
12
13
  branch.baseBranchSha === baseBranchSha &&
13
14
  branch.sha === branchSha &&
@@ -1 +1 @@
1
- {"version":3,"file":"conflicts-cache.js","sourceRoot":"","sources":["../../../lib/util/git/conflicts-cache.ts"],"names":[],"mappings":";;AAGA,0DAmBC;AAED,0DAaC;AArCD,yCAAsC;AACtC,oDAA+C;AAE/C,SAAgB,uBAAuB,CACrC,UAAkB,EAClB,SAAiB,EACjB,UAAkB,EAClB,aAAqB;IAErB,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IAC3E,IACE,MAAM;QACN,MAAM,CAAC,UAAU,KAAK,UAAU;QAChC,MAAM,CAAC,aAAa,KAAK,aAAa;QACtC,MAAM,CAAC,GAAG,KAAK,SAAS;QACxB,MAAM,CAAC,YAAY,KAAK,SAAS,EACjC,CAAC;QACD,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,uBAAuB,CACrC,UAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IAE3E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,CAAC","sourcesContent":["import { logger } from '../../logger';\nimport { getCache } from '../cache/repository';\n\nexport function getCachedConflictResult(\n branchName: string,\n branchSha: string,\n baseBranch: string,\n baseBranchSha: string,\n): boolean | null {\n const cache = getCache();\n const branch = cache?.branches?.find((br) => br.branchName === branchName);\n if (\n branch &&\n branch.baseBranch === baseBranch &&\n branch.baseBranchSha === baseBranchSha &&\n branch.sha === branchSha &&\n branch.isConflicted !== undefined\n ) {\n return branch.isConflicted;\n }\n\n return null;\n}\n\nexport function setCachedConflictResult(\n branchName: string,\n isConflicted: boolean,\n): void {\n const cache = getCache();\n const branch = cache?.branches?.find((br) => br.branchName === branchName);\n\n if (!branch) {\n logger.debug(`setCachedConflictResult(): Branch cache not present`);\n return;\n }\n\n branch.isConflicted = isConflicted;\n}\n"]}
1
+ {"version":3,"file":"conflicts-cache.js","sourceRoot":"","sources":["../../../lib/util/git/conflicts-cache.ts"],"names":[],"mappings":";;AAIA,0DAmBC;AAED,0DAaC;AAtCD,yCAAoD;AACpD,yCAAsC;AACtC,oDAA+C;AAE/C,SAAgB,uBAAuB,CACrC,UAAkB,EAClB,SAAiB,EACjB,UAAkB,EAClB,aAAqB;IAErB,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IAC3E,IACE,IAAA,qBAAgB,EAAC,MAAM,CAAC;QACxB,MAAM,CAAC,UAAU,KAAK,UAAU;QAChC,MAAM,CAAC,aAAa,KAAK,aAAa;QACtC,MAAM,CAAC,GAAG,KAAK,SAAS;QACxB,MAAM,CAAC,YAAY,KAAK,SAAS,EACjC,CAAC;QACD,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,uBAAuB,CACrC,UAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IAE3E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,CAAC","sourcesContent":["import { isNonEmptyObject } from '@sindresorhus/is';\nimport { logger } from '../../logger';\nimport { getCache } from '../cache/repository';\n\nexport function getCachedConflictResult(\n branchName: string,\n branchSha: string,\n baseBranch: string,\n baseBranchSha: string,\n): boolean | null {\n const cache = getCache();\n const branch = cache?.branches?.find((br) => br.branchName === branchName);\n if (\n isNonEmptyObject(branch) &&\n branch.baseBranch === baseBranch &&\n branch.baseBranchSha === baseBranchSha &&\n branch.sha === branchSha &&\n branch.isConflicted !== undefined\n ) {\n return branch.isConflicted;\n }\n\n return null;\n}\n\nexport function setCachedConflictResult(\n branchName: string,\n isConflicted: boolean,\n): void {\n const cache = getCache();\n const branch = cache?.branches?.find((br) => br.branchName === branchName);\n\n if (!branch) {\n logger.debug(`setCachedConflictResult(): Branch cache not present`);\n return;\n }\n\n branch.isConflicted = isConflicted;\n}\n"]}
@@ -48,7 +48,7 @@ exports.getRemotes = getRemotes;
48
48
  const tslib_1 = require("tslib");
49
49
  const node_url_1 = tslib_1.__importDefault(require("node:url"));
50
50
  const promises_1 = require("timers/promises");
51
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
51
+ const is_1 = tslib_1.__importStar(require("@sindresorhus/is"));
52
52
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
53
53
  const semver_1 = tslib_1.__importDefault(require("semver"));
54
54
  const simple_git_1 = require("simple-git");
@@ -1030,7 +1030,7 @@ async function prepareCommit({ branchName, files, message, force = false, }) {
1030
1030
  commitOptions['--no-verify'] = null;
1031
1031
  }
1032
1032
  const commitRes = await git.commit(message, [], commitOptions);
1033
- if (commitRes.summary &&
1033
+ if ((0, is_1.isNonEmptyObject)(commitRes.summary) &&
1034
1034
  commitRes.summary.changes === 0 &&
1035
1035
  commitRes.summary.insertions === 0 &&
1036
1036
  commitRes.summary.deletions === 0) {