renovate 43.24.2 → 43.24.3
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.
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/logger/utils.d.ts +1 -1
- package/dist/logger/utils.js +1 -1
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/azure-bicep-resource/schema.js +1 -1
- package/dist/modules/datasource/azure-bicep-resource/schema.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
- package/dist/modules/datasource/bazel/schema.js +1 -1
- package/dist/modules/datasource/bazel/schema.js.map +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/index.js +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/schema.js +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -1
- package/dist/modules/datasource/bitrise/schema.js +1 -1
- package/dist/modules/datasource/bitrise/schema.js.map +1 -1
- package/dist/modules/datasource/buildpacks-registry/index.js +1 -1
- package/dist/modules/datasource/buildpacks-registry/index.js.map +1 -1
- package/dist/modules/datasource/buildpacks-registry/schema.js +1 -1
- package/dist/modules/datasource/buildpacks-registry/schema.js.map +1 -1
- package/dist/modules/datasource/cdnjs/index.js +1 -1
- package/dist/modules/datasource/cdnjs/index.js.map +1 -1
- package/dist/modules/datasource/cdnjs/schema.js +1 -1
- package/dist/modules/datasource/cdnjs/schema.js.map +1 -1
- package/dist/modules/datasource/conan/schema.js +1 -1
- package/dist/modules/datasource/conan/schema.js.map +1 -1
- package/dist/modules/datasource/conda/schema/prefix-dev.js +1 -1
- package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -1
- package/dist/modules/datasource/cpan/schema.js +1 -1
- package/dist/modules/datasource/cpan/schema.js.map +1 -1
- package/dist/modules/datasource/crate/schema.js +1 -1
- package/dist/modules/datasource/crate/schema.js.map +1 -1
- package/dist/modules/datasource/custom/schema.js +1 -1
- package/dist/modules/datasource/custom/schema.js.map +1 -1
- package/dist/modules/datasource/deno/schema.js +1 -1
- package/dist/modules/datasource/deno/schema.js.map +1 -1
- package/dist/modules/datasource/devbox/schema.js +1 -1
- package/dist/modules/datasource/devbox/schema.js.map +1 -1
- package/dist/modules/datasource/docker/schema.js +1 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/dotnet-version/schema.js +1 -1
- package/dist/modules/datasource/dotnet-version/schema.js.map +1 -1
- package/dist/modules/datasource/endoflife-date/schema.js +1 -1
- package/dist/modules/datasource/endoflife-date/schema.js.map +1 -1
- package/dist/modules/datasource/forgejo-releases/schema.js +1 -1
- package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -1
- package/dist/modules/datasource/forgejo-tags/schema.js +1 -1
- package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -1
- package/dist/modules/datasource/galaxy/schema.js +1 -1
- package/dist/modules/datasource/galaxy/schema.js.map +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.js +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.js.map +1 -1
- package/dist/modules/datasource/gitea-releases/schema.js +1 -1
- package/dist/modules/datasource/gitea-releases/schema.js.map +1 -1
- package/dist/modules/datasource/gitea-tags/schema.js +1 -1
- package/dist/modules/datasource/gitea-tags/schema.js.map +1 -1
- package/dist/modules/datasource/glasskube-packages/schema.js +1 -1
- package/dist/modules/datasource/glasskube-packages/schema.js.map +1 -1
- package/dist/modules/datasource/hackage/schema.js +1 -1
- package/dist/modules/datasource/hackage/schema.js.map +1 -1
- package/dist/modules/datasource/helm/schema.js +1 -1
- package/dist/modules/datasource/helm/schema.js.map +1 -1
- package/dist/modules/datasource/hex/schema.js +1 -1
- package/dist/modules/datasource/hex/schema.js.map +1 -1
- package/dist/modules/datasource/jsr/schema.js +1 -1
- package/dist/modules/datasource/jsr/schema.js.map +1 -1
- package/dist/modules/datasource/nextcloud/schema.js +1 -1
- package/dist/modules/datasource/nextcloud/schema.js.map +1 -1
- package/dist/modules/datasource/npm/get.js +1 -1
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/packagist/index.js +1 -1
- package/dist/modules/datasource/packagist/index.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.js +1 -1
- package/dist/modules/datasource/packagist/schema.js.map +1 -1
- package/dist/modules/datasource/python-version/schema.js +1 -1
- package/dist/modules/datasource/python-version/schema.js.map +1 -1
- package/dist/modules/datasource/rubygems/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/schema.js +1 -1
- package/dist/modules/datasource/rubygems/schema.js.map +1 -1
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +1 -1
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
- package/dist/modules/datasource/schema.js +1 -1
- package/dist/modules/datasource/schema.js.map +1 -1
- package/dist/modules/datasource/typst/schema.js +1 -1
- package/dist/modules/datasource/typst/schema.js.map +1 -1
- package/dist/modules/datasource/unity3d/schema.js +1 -1
- package/dist/modules/datasource/unity3d/schema.js.map +1 -1
- package/dist/modules/datasource/unity3d-packages/schema.js +1 -1
- package/dist/modules/datasource/unity3d-packages/schema.js.map +1 -1
- package/dist/modules/manager/argocd/schema.js +1 -1
- package/dist/modules/manager/argocd/schema.js.map +1 -1
- package/dist/modules/manager/azure-pipelines/schema.js +1 -1
- package/dist/modules/manager/azure-pipelines/schema.js.map +1 -1
- package/dist/modules/manager/batect/schema.js +1 -1
- package/dist/modules/manager/batect/schema.js.map +1 -1
- package/dist/modules/manager/bazel/rules/docker.js +1 -1
- package/dist/modules/manager/bazel/rules/docker.js.map +1 -1
- package/dist/modules/manager/bazel/rules/git.js +1 -1
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel/rules/go.js +1 -1
- package/dist/modules/manager/bazel/rules/go.js.map +1 -1
- package/dist/modules/manager/bazel/rules/http.js +1 -1
- package/dist/modules/manager/bazel/rules/http.js.map +1 -1
- package/dist/modules/manager/bazel/rules/index.js +1 -1
- package/dist/modules/manager/bazel/rules/index.js.map +1 -1
- package/dist/modules/manager/bazel/rules/maven.js +1 -1
- package/dist/modules/manager/bazel/rules/maven.js.map +1 -1
- package/dist/modules/manager/bazel/rules/oci.js +1 -1
- package/dist/modules/manager/bazel/rules/oci.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/fragments.js +1 -1
- package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/maven.js +1 -1
- package/dist/modules/manager/bazel-module/parser/maven.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/oci.js +1 -1
- package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
- package/dist/modules/manager/bazel-module/rules-img.js +1 -1
- package/dist/modules/manager/bazel-module/rules-img.js.map +1 -1
- package/dist/modules/manager/bazel-module/rules.js +1 -1
- package/dist/modules/manager/bazel-module/rules.js.map +1 -1
- package/dist/modules/manager/bitrise/schema.js +1 -1
- package/dist/modules/manager/bitrise/schema.js.map +1 -1
- package/dist/modules/manager/buildpacks/schema.js +1 -1
- package/dist/modules/manager/buildpacks/schema.js.map +1 -1
- package/dist/modules/manager/cargo/schema.js +1 -1
- package/dist/modules/manager/cargo/schema.js.map +1 -1
- package/dist/modules/manager/circleci/schema.js +1 -1
- package/dist/modules/manager/circleci/schema.js.map +1 -1
- package/dist/modules/manager/cloudbuild/schema.js +1 -1
- package/dist/modules/manager/cloudbuild/schema.js.map +1 -1
- package/dist/modules/manager/composer/artifacts.js +1 -1
- package/dist/modules/manager/composer/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/schema.js +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/copier/schema.js +1 -1
- package/dist/modules/manager/copier/schema.js.map +1 -1
- package/dist/modules/manager/crossplane/schema.js +1 -1
- package/dist/modules/manager/crossplane/schema.js.map +1 -1
- package/dist/modules/manager/crow/schema.js +1 -1
- package/dist/modules/manager/crow/schema.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/schema.js +1 -1
- package/dist/modules/manager/custom/jsonata/schema.js.map +1 -1
- package/dist/modules/manager/devbox/schema.js +1 -1
- package/dist/modules/manager/devbox/schema.js.map +1 -1
- package/dist/modules/manager/devcontainer/schema.js +1 -1
- package/dist/modules/manager/devcontainer/schema.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.js +1 -1
- package/dist/modules/manager/docker-compose/schema.js.map +1 -1
- package/dist/modules/manager/fleet/schema.js +1 -1
- package/dist/modules/manager/fleet/schema.js.map +1 -1
- package/dist/modules/manager/flux/schema.js +1 -1
- package/dist/modules/manager/flux/schema.js.map +1 -1
- package/dist/modules/manager/fvm/schema.js +1 -1
- package/dist/modules/manager/fvm/schema.js.map +1 -1
- package/dist/modules/manager/github-actions/community.js +1 -1
- package/dist/modules/manager/github-actions/community.js.map +1 -1
- package/dist/modules/manager/github-actions/schema.js +1 -1
- package/dist/modules/manager/github-actions/schema.js.map +1 -1
- package/dist/modules/manager/gitlabci/schema.js +1 -1
- package/dist/modules/manager/gitlabci/schema.js.map +1 -1
- package/dist/modules/manager/gitlabci-include/schema.js +1 -1
- package/dist/modules/manager/gitlabci-include/schema.js.map +1 -1
- package/dist/modules/manager/glasskube/schema.js +1 -1
- package/dist/modules/manager/glasskube/schema.js.map +1 -1
- package/dist/modules/manager/gleam/schema.js +1 -1
- package/dist/modules/manager/gleam/schema.js.map +1 -1
- package/dist/modules/manager/helmfile/schema.js +1 -1
- package/dist/modules/manager/helmfile/schema.js.map +1 -1
- package/dist/modules/manager/kubernetes/schema.js +1 -1
- package/dist/modules/manager/kubernetes/schema.js.map +1 -1
- package/dist/modules/manager/mise/schema.js +1 -1
- package/dist/modules/manager/mise/schema.js.map +1 -1
- package/dist/modules/manager/nix/schema.js +1 -1
- package/dist/modules/manager/nix/schema.js.map +1 -1
- package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/schema.js +1 -1
- package/dist/modules/manager/npm/schema.js.map +1 -1
- package/dist/modules/manager/nuget/schema.js +1 -1
- package/dist/modules/manager/nuget/schema.js.map +1 -1
- package/dist/modules/manager/ocb/schema.js +1 -1
- package/dist/modules/manager/ocb/schema.js.map +1 -1
- package/dist/modules/manager/pep621/schema.js +1 -1
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pep723/schema.js +1 -1
- package/dist/modules/manager/pep723/schema.js.map +1 -1
- package/dist/modules/manager/pixi/extract.js +1 -1
- package/dist/modules/manager/pixi/extract.js.map +1 -1
- package/dist/modules/manager/pixi/schema.js +1 -1
- package/dist/modules/manager/pixi/schema.js.map +1 -1
- package/dist/modules/manager/poetry/schema.js +1 -1
- package/dist/modules/manager/poetry/schema.js.map +1 -1
- package/dist/modules/manager/pub/schema.js +1 -1
- package/dist/modules/manager/pub/schema.js.map +1 -1
- package/dist/modules/manager/quadlet/schema.js +1 -1
- package/dist/modules/manager/quadlet/schema.js.map +1 -1
- package/dist/modules/manager/renovate-config-presets/schema.js +1 -1
- package/dist/modules/manager/renovate-config-presets/schema.js.map +1 -1
- package/dist/modules/manager/sveltos/schema.js +1 -1
- package/dist/modules/manager/sveltos/schema.js.map +1 -1
- package/dist/modules/manager/vendir/schema.js +1 -1
- package/dist/modules/manager/vendir/schema.js.map +1 -1
- package/dist/modules/platform/azure/schema.js +1 -1
- package/dist/modules/platform/azure/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.js +1 -1
- package/dist/modules/platform/bitbucket/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/schema.js +1 -1
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/gerrit/client.js +1 -1
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gitea/schema.js +1 -1
- package/dist/modules/platform/gitea/schema.js.map +1 -1
- package/dist/modules/platform/github/branch.js +1 -1
- package/dist/modules/platform/github/branch.js.map +1 -1
- package/dist/modules/platform/github/issue.js +1 -1
- package/dist/modules/platform/github/issue.js.map +1 -1
- package/dist/modules/platform/github/schema.js +1 -1
- package/dist/modules/platform/github/schema.js.map +1 -1
- package/dist/modules/platform/gitlab/schema.js +1 -1
- package/dist/modules/platform/gitlab/schema.js.map +1 -1
- package/dist/modules/versioning/schema.js +1 -1
- package/dist/modules/versioning/schema.js.map +1 -1
- package/dist/util/cache/repository/schema.js +1 -1
- package/dist/util/cache/repository/schema.js.map +1 -1
- package/dist/util/emoji.js +1 -1
- package/dist/util/emoji.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/branches-query-adapter.js +1 -1
- package/dist/util/github/graphql/query-adapters/branches-query-adapter.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.js +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.js +1 -1
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.js.map +1 -1
- package/dist/util/http/cache/schema.js +1 -1
- package/dist/util/http/cache/schema.js.map +1 -1
- package/dist/util/http/http.d.ts +1 -1
- package/dist/util/http/http.js +1 -1
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/http/types.d.ts +1 -1
- package/dist/util/result.d.ts +1 -1
- package/dist/util/result.js +1 -1
- package/dist/util/result.js.map +1 -1
- package/dist/util/schema-utils/index.d.ts +1 -1
- package/dist/util/schema-utils/index.js +1 -1
- package/dist/util/schema-utils/index.js.map +1 -1
- package/dist/util/timestamp.d.ts +1 -1
- package/dist/util/timestamp.js +1 -1
- package/dist/util/timestamp.js.map +1 -1
- package/dist/util/toml.js +1 -1
- package/dist/util/toml.js.map +1 -1
- package/dist/util/yaml.d.ts +1 -1
- package/dist/util/yaml.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +1 -1
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/package.json +19 -19
- package/renovate-schema.json +2 -2
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../lib/config/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Json } from '../util/schema-utils/index.ts';\n\nexport const DecryptedObject = Json.pipe(\n z.object({\n o: z.string().optional(),\n r: z.string().optional(),\n v: z.string().optional(),\n }),\n);\n"],"mappings":";;;;AAGA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACzB,CAAC,CACH"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../lib/config/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { Json } from '../util/schema-utils/index.ts';\n\nexport const DecryptedObject = Json.pipe(\n z.object({\n o: z.string().optional(),\n r: z.string().optional(),\n v: z.string().optional(),\n }),\n);\n"],"mappings":";;;;AAGA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACzB,CAAC,CACH"}
|
package/dist/logger/utils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BunyanRecord } from "./types.js";
|
|
2
2
|
import bunyan from "bunyan";
|
|
3
3
|
import { Stream } from "node:stream";
|
|
4
|
-
import { ZodError } from "zod";
|
|
4
|
+
import { ZodError } from "zod/v3";
|
|
5
5
|
|
|
6
6
|
//#region lib/logger/utils.d.ts
|
|
7
7
|
declare class ProblemStream extends Stream {
|
package/dist/logger/utils.js
CHANGED
|
@@ -6,7 +6,7 @@ import { isArray, isBuffer, isDate, isEmptyObject, isError, isFunction, isNonEmp
|
|
|
6
6
|
import bunyan from "bunyan";
|
|
7
7
|
import { Stream } from "node:stream";
|
|
8
8
|
import { RequestError } from "got";
|
|
9
|
-
import { ZodError } from "zod";
|
|
9
|
+
import { ZodError } from "zod/v3";
|
|
10
10
|
|
|
11
11
|
//#region lib/logger/utils.ts
|
|
12
12
|
const excludeProps = [
|
package/dist/logger/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["HttpError"],"sources":["../../lib/logger/utils.ts"],"sourcesContent":["import { Stream } from 'node:stream';\nimport {\n isArray,\n isBuffer,\n isDate,\n isEmptyObject,\n isError,\n isFunction,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isObject,\n isPlainObject,\n isString,\n isUndefined,\n} from '@sindresorhus/is';\nimport bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { RequestError as HttpError } from 'got';\nimport { ZodError } from 'zod';\nimport { ExecError } from '../util/exec/exec-error.ts';\nimport { regEx } from '../util/regex.ts';\nimport { redactedFields, sanitize } from '../util/sanitize.ts';\nimport type { BunyanRecord, BunyanStream } from './types.ts';\n\nconst excludeProps = ['pid', 'time', 'v', 'hostname'];\n\nexport class ProblemStream extends Stream {\n private _problems: BunyanRecord[] = [];\n\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = false;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n const problem = { ...data };\n for (const prop of excludeProps) {\n delete problem[prop];\n }\n this._problems.push(problem);\n return true;\n }\n\n getProblems(): BunyanRecord[] {\n return this._problems;\n }\n\n clearProblems(): void {\n this._problems = [];\n }\n}\n\nconst contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n];\n\ntype ZodShortenedIssue =\n | null\n | string\n | string[]\n | {\n [key: string]: ZodShortenedIssue;\n };\n\nexport function prepareZodIssues(input: unknown): ZodShortenedIssue {\n if (!isPlainObject(input)) {\n return null;\n }\n\n let err: null | string | string[] = null;\n // v8 ignore else -- TODO: add test #40625\n if (isArray(input._errors, isString)) {\n if (input._errors.length === 1) {\n err = input._errors[0];\n } else if (input._errors.length > 1) {\n err = input._errors;\n } else {\n err = null;\n }\n }\n delete input._errors;\n\n if (isEmptyObject(input)) {\n return err;\n }\n\n const output: Record<string, ZodShortenedIssue> = {};\n const entries = Object.entries(input);\n for (const [key, value] of entries.slice(0, 3)) {\n const child = prepareZodIssues(value);\n // v8 ignore else -- TODO: add test #40625\n if (child !== null) {\n output[key] = child;\n }\n }\n\n if (entries.length > 3) {\n output.___ = `... ${entries.length - 3} more`;\n }\n\n return output;\n}\n\nexport function prepareZodError(err: ZodError): Record<string, unknown> {\n Object.defineProperty(err, 'message', {\n get: () => 'Schema error',\n /* v8 ignore start -- TODO: drop set? */\n set: () => {\n /* intentionally empty */\n },\n // v8 ignore stop -- TODO: drop set? */\n });\n\n return {\n message: err.message,\n stack: err.stack,\n issues: prepareZodIssues(err.format()),\n };\n}\n\nexport default function prepareError(err: Error): Record<string, unknown> {\n if (err instanceof ZodError) {\n return prepareZodError(err);\n }\n\n const response: Record<string, unknown> = {\n ...err,\n };\n\n // Required as message is non-enumerable\n if (!response.message && err.message) {\n response.message = err.message;\n }\n\n // Required as stack is non-enumerable\n if (!response.stack && err.stack) {\n response.stack = err.stack;\n }\n\n if (err instanceof AggregateError) {\n response.errors = err.errors.map((error) => prepareError(error));\n }\n\n // handle rawExec error\n if (err instanceof ExecError && isNonEmptyObject(err.options?.env)) {\n const env = Object.keys(err.options.env);\n response.options = { ...err.options, env };\n }\n\n // handle got error\n if (err instanceof HttpError) {\n const options: Record<string, unknown> = {\n headers: structuredClone(err.options.headers),\n url: err.options.url?.toString(),\n hostType: err.options.context.hostType,\n };\n response.options = options;\n\n options.username = err.options.username;\n options.password = err.options.password;\n options.method = err.options.method;\n options.http2 = err.options.http2;\n\n // v8 ignore else -- TODO: add test #40625\n if (err.response) {\n response.response = {\n statusCode: err.response.statusCode,\n statusMessage: err.response.statusMessage,\n body:\n err.name === 'TimeoutError'\n ? undefined\n : structuredClone(err.response.body),\n headers: structuredClone(err.response.headers),\n httpVersion: err.response.httpVersion,\n retryCount: err.response.retryCount,\n };\n }\n }\n\n return response;\n}\n\ntype NestedValue = unknown[] | object;\n\nfunction isNested(value: unknown): value is NestedValue {\n return isArray(value) || isObject(value);\n}\n\nexport function sanitizeValue(\n value: unknown,\n seen = new WeakMap<NestedValue, unknown>(),\n): any {\n if (isString(value)) {\n return sanitize(sanitizeUrls(value));\n }\n\n if (isDate(value)) {\n return value;\n }\n\n if (isFunction(value)) {\n return '[function]';\n }\n\n if (isBuffer(value)) {\n return '[content]';\n }\n\n if (isError(value)) {\n const err = prepareError(value);\n return sanitizeValue(err, seen);\n }\n\n if (isArray(value)) {\n const length = value.length;\n const arrayResult = Array(length);\n seen.set(value, arrayResult);\n for (let idx = 0; idx < length; idx += 1) {\n const val = value[idx];\n arrayResult[idx] =\n isNested(val) && seen.has(val)\n ? seen.get(val)\n : sanitizeValue(val, seen);\n }\n return arrayResult;\n }\n\n if (isObject(value)) {\n const objectResult: Record<string, any> = {};\n seen.set(value, objectResult);\n for (const [key, val] of Object.entries<any>(value)) {\n let curValue: any;\n if (!val) {\n curValue = val;\n } else if (redactedFields.includes(key)) {\n // Do not mask/sanitize secrets templates\n if (isString(val) && regEx(/^{{\\s*secrets\\..*}}$/).test(val)) {\n curValue = val;\n } else {\n curValue = '***********';\n }\n } else if (contentFields.includes(key)) {\n curValue = '[content]';\n } else if (key === 'secrets') {\n curValue = {};\n Object.keys(val).forEach((secretKey) => {\n curValue[secretKey] = '***********';\n });\n } else {\n curValue = seen.has(val) ? seen.get(val) : sanitizeValue(val, seen);\n }\n\n const sanitizedKey = sanitizeValue(key, seen);\n objectResult[sanitizedKey] = curValue;\n }\n\n return objectResult;\n }\n\n return value;\n}\n\nexport function withSanitizer(streamConfig: bunyan.Stream): bunyan.Stream {\n if (streamConfig.type === 'rotating-file') {\n throw new Error(\"Rotating files aren't supported\");\n }\n\n const stream = streamConfig.stream as BunyanStream;\n if (stream?.writable) {\n const write = (\n chunk: BunyanRecord,\n enc: BufferEncoding,\n cb: (err?: Error | null) => void,\n ): void => {\n const raw = sanitizeValue(chunk);\n const result =\n streamConfig.type === 'raw'\n ? raw\n : JSON.stringify(raw, bunyan.safeCycles()).replace(\n regEx(/\\n?$/),\n '\\n',\n );\n stream.write(result, enc, cb);\n };\n\n return {\n ...streamConfig,\n type: 'raw',\n stream: { write },\n } as bunyan.Stream;\n }\n\n if (streamConfig.path) {\n const fileStream = fs.createWriteStream(streamConfig.path, {\n flags: 'a',\n encoding: 'utf8',\n });\n\n return withSanitizer({ ...streamConfig, stream: fileStream });\n }\n\n throw new Error(\"Missing 'stream' or 'path' for bunyan stream\");\n}\n\n/**\n * A function that terminates execution if the log level that was entered is\n * not a valid value for the Bunyan logger.\n * @param logLevelToCheck\n * @returns returns the logLevel when the logLevelToCheck is valid or the defaultLevel passed as argument when it is undefined. Else it stops execution.\n */\nexport function validateLogLevel(\n logLevelToCheck: string | undefined,\n defaultLevel: bunyan.LogLevelString,\n): bunyan.LogLevelString {\n const allowedValues: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n ];\n\n if (\n isUndefined(logLevelToCheck) ||\n (isString(logLevelToCheck) &&\n allowedValues.includes(logLevelToCheck as bunyan.LogLevelString))\n ) {\n // log level is in the allowed values or its undefined\n return (logLevelToCheck as bunyan.LogLevelString) ?? defaultLevel;\n }\n\n const logger = bunyan.createLogger({\n name: 'renovate',\n streams: [\n {\n level: 'fatal',\n stream: process.stdout,\n },\n ],\n });\n logger.fatal({ logLevel: logLevelToCheck }, 'Invalid log level');\n process.exit(1);\n}\n\n// Can't use `util/regex` because of circular reference to logger\nconst urlRe = /[a-z]{3,9}:\\/\\/[^@/]+@[a-z0-9.-]+/gi;\nconst urlCredRe = /\\/\\/[^@]+@/g;\nconst dataUriCredRe = /^(data:[0-9a-z-]+\\/[0-9a-z-]+;).+/i;\n\nexport function sanitizeUrls(text: string): string {\n return text\n .replace(urlRe, (url) => {\n return url.replace(urlCredRe, '//**redacted**@');\n })\n .replace(dataUriCredRe, '$1**redacted**');\n}\n\nexport function getEnv(key: string): string | undefined {\n return [process.env[`RENOVATE_${key}`], process.env[key]]\n .map((v) => v?.toLowerCase().trim())\n .find(isNonEmptyStringAndNotWhitespace);\n}\n\nexport function getMessage(\n p1: string | Record<string, any>,\n p2?: string,\n): string | undefined {\n return isString(p1) ? p1 : p2;\n}\n\nexport function toMeta(\n p1: string | Record<string, any>,\n): Record<string, unknown> {\n return isObject(p1) ? p1 : {};\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["HttpError"],"sources":["../../lib/logger/utils.ts"],"sourcesContent":["import { Stream } from 'node:stream';\nimport {\n isArray,\n isBuffer,\n isDate,\n isEmptyObject,\n isError,\n isFunction,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isObject,\n isPlainObject,\n isString,\n isUndefined,\n} from '@sindresorhus/is';\nimport bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { RequestError as HttpError } from 'got';\nimport { ZodError } from 'zod/v3';\nimport { ExecError } from '../util/exec/exec-error.ts';\nimport { regEx } from '../util/regex.ts';\nimport { redactedFields, sanitize } from '../util/sanitize.ts';\nimport type { BunyanRecord, BunyanStream } from './types.ts';\n\nconst excludeProps = ['pid', 'time', 'v', 'hostname'];\n\nexport class ProblemStream extends Stream {\n private _problems: BunyanRecord[] = [];\n\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = false;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n const problem = { ...data };\n for (const prop of excludeProps) {\n delete problem[prop];\n }\n this._problems.push(problem);\n return true;\n }\n\n getProblems(): BunyanRecord[] {\n return this._problems;\n }\n\n clearProblems(): void {\n this._problems = [];\n }\n}\n\nconst contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n];\n\ntype ZodShortenedIssue =\n | null\n | string\n | string[]\n | {\n [key: string]: ZodShortenedIssue;\n };\n\nexport function prepareZodIssues(input: unknown): ZodShortenedIssue {\n if (!isPlainObject(input)) {\n return null;\n }\n\n let err: null | string | string[] = null;\n // v8 ignore else -- TODO: add test #40625\n if (isArray(input._errors, isString)) {\n if (input._errors.length === 1) {\n err = input._errors[0];\n } else if (input._errors.length > 1) {\n err = input._errors;\n } else {\n err = null;\n }\n }\n delete input._errors;\n\n if (isEmptyObject(input)) {\n return err;\n }\n\n const output: Record<string, ZodShortenedIssue> = {};\n const entries = Object.entries(input);\n for (const [key, value] of entries.slice(0, 3)) {\n const child = prepareZodIssues(value);\n // v8 ignore else -- TODO: add test #40625\n if (child !== null) {\n output[key] = child;\n }\n }\n\n if (entries.length > 3) {\n output.___ = `... ${entries.length - 3} more`;\n }\n\n return output;\n}\n\nexport function prepareZodError(err: ZodError): Record<string, unknown> {\n Object.defineProperty(err, 'message', {\n get: () => 'Schema error',\n /* v8 ignore start -- TODO: drop set? */\n set: () => {\n /* intentionally empty */\n },\n // v8 ignore stop -- TODO: drop set? */\n });\n\n return {\n message: err.message,\n stack: err.stack,\n issues: prepareZodIssues(err.format()),\n };\n}\n\nexport default function prepareError(err: Error): Record<string, unknown> {\n if (err instanceof ZodError) {\n return prepareZodError(err);\n }\n\n const response: Record<string, unknown> = {\n ...err,\n };\n\n // Required as message is non-enumerable\n if (!response.message && err.message) {\n response.message = err.message;\n }\n\n // Required as stack is non-enumerable\n if (!response.stack && err.stack) {\n response.stack = err.stack;\n }\n\n if (err instanceof AggregateError) {\n response.errors = err.errors.map((error) => prepareError(error));\n }\n\n // handle rawExec error\n if (err instanceof ExecError && isNonEmptyObject(err.options?.env)) {\n const env = Object.keys(err.options.env);\n response.options = { ...err.options, env };\n }\n\n // handle got error\n if (err instanceof HttpError) {\n const options: Record<string, unknown> = {\n headers: structuredClone(err.options.headers),\n url: err.options.url?.toString(),\n hostType: err.options.context.hostType,\n };\n response.options = options;\n\n options.username = err.options.username;\n options.password = err.options.password;\n options.method = err.options.method;\n options.http2 = err.options.http2;\n\n // v8 ignore else -- TODO: add test #40625\n if (err.response) {\n response.response = {\n statusCode: err.response.statusCode,\n statusMessage: err.response.statusMessage,\n body:\n err.name === 'TimeoutError'\n ? undefined\n : structuredClone(err.response.body),\n headers: structuredClone(err.response.headers),\n httpVersion: err.response.httpVersion,\n retryCount: err.response.retryCount,\n };\n }\n }\n\n return response;\n}\n\ntype NestedValue = unknown[] | object;\n\nfunction isNested(value: unknown): value is NestedValue {\n return isArray(value) || isObject(value);\n}\n\nexport function sanitizeValue(\n value: unknown,\n seen = new WeakMap<NestedValue, unknown>(),\n): any {\n if (isString(value)) {\n return sanitize(sanitizeUrls(value));\n }\n\n if (isDate(value)) {\n return value;\n }\n\n if (isFunction(value)) {\n return '[function]';\n }\n\n if (isBuffer(value)) {\n return '[content]';\n }\n\n if (isError(value)) {\n const err = prepareError(value);\n return sanitizeValue(err, seen);\n }\n\n if (isArray(value)) {\n const length = value.length;\n const arrayResult = Array(length);\n seen.set(value, arrayResult);\n for (let idx = 0; idx < length; idx += 1) {\n const val = value[idx];\n arrayResult[idx] =\n isNested(val) && seen.has(val)\n ? seen.get(val)\n : sanitizeValue(val, seen);\n }\n return arrayResult;\n }\n\n if (isObject(value)) {\n const objectResult: Record<string, any> = {};\n seen.set(value, objectResult);\n for (const [key, val] of Object.entries<any>(value)) {\n let curValue: any;\n if (!val) {\n curValue = val;\n } else if (redactedFields.includes(key)) {\n // Do not mask/sanitize secrets templates\n if (isString(val) && regEx(/^{{\\s*secrets\\..*}}$/).test(val)) {\n curValue = val;\n } else {\n curValue = '***********';\n }\n } else if (contentFields.includes(key)) {\n curValue = '[content]';\n } else if (key === 'secrets') {\n curValue = {};\n Object.keys(val).forEach((secretKey) => {\n curValue[secretKey] = '***********';\n });\n } else {\n curValue = seen.has(val) ? seen.get(val) : sanitizeValue(val, seen);\n }\n\n const sanitizedKey = sanitizeValue(key, seen);\n objectResult[sanitizedKey] = curValue;\n }\n\n return objectResult;\n }\n\n return value;\n}\n\nexport function withSanitizer(streamConfig: bunyan.Stream): bunyan.Stream {\n if (streamConfig.type === 'rotating-file') {\n throw new Error(\"Rotating files aren't supported\");\n }\n\n const stream = streamConfig.stream as BunyanStream;\n if (stream?.writable) {\n const write = (\n chunk: BunyanRecord,\n enc: BufferEncoding,\n cb: (err?: Error | null) => void,\n ): void => {\n const raw = sanitizeValue(chunk);\n const result =\n streamConfig.type === 'raw'\n ? raw\n : JSON.stringify(raw, bunyan.safeCycles()).replace(\n regEx(/\\n?$/),\n '\\n',\n );\n stream.write(result, enc, cb);\n };\n\n return {\n ...streamConfig,\n type: 'raw',\n stream: { write },\n } as bunyan.Stream;\n }\n\n if (streamConfig.path) {\n const fileStream = fs.createWriteStream(streamConfig.path, {\n flags: 'a',\n encoding: 'utf8',\n });\n\n return withSanitizer({ ...streamConfig, stream: fileStream });\n }\n\n throw new Error(\"Missing 'stream' or 'path' for bunyan stream\");\n}\n\n/**\n * A function that terminates execution if the log level that was entered is\n * not a valid value for the Bunyan logger.\n * @param logLevelToCheck\n * @returns returns the logLevel when the logLevelToCheck is valid or the defaultLevel passed as argument when it is undefined. Else it stops execution.\n */\nexport function validateLogLevel(\n logLevelToCheck: string | undefined,\n defaultLevel: bunyan.LogLevelString,\n): bunyan.LogLevelString {\n const allowedValues: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n ];\n\n if (\n isUndefined(logLevelToCheck) ||\n (isString(logLevelToCheck) &&\n allowedValues.includes(logLevelToCheck as bunyan.LogLevelString))\n ) {\n // log level is in the allowed values or its undefined\n return (logLevelToCheck as bunyan.LogLevelString) ?? defaultLevel;\n }\n\n const logger = bunyan.createLogger({\n name: 'renovate',\n streams: [\n {\n level: 'fatal',\n stream: process.stdout,\n },\n ],\n });\n logger.fatal({ logLevel: logLevelToCheck }, 'Invalid log level');\n process.exit(1);\n}\n\n// Can't use `util/regex` because of circular reference to logger\nconst urlRe = /[a-z]{3,9}:\\/\\/[^@/]+@[a-z0-9.-]+/gi;\nconst urlCredRe = /\\/\\/[^@]+@/g;\nconst dataUriCredRe = /^(data:[0-9a-z-]+\\/[0-9a-z-]+;).+/i;\n\nexport function sanitizeUrls(text: string): string {\n return text\n .replace(urlRe, (url) => {\n return url.replace(urlCredRe, '//**redacted**@');\n })\n .replace(dataUriCredRe, '$1**redacted**');\n}\n\nexport function getEnv(key: string): string | undefined {\n return [process.env[`RENOVATE_${key}`], process.env[key]]\n .map((v) => v?.toLowerCase().trim())\n .find(isNonEmptyStringAndNotWhitespace);\n}\n\nexport function getMessage(\n p1: string | Record<string, any>,\n p2?: string,\n): string | undefined {\n return isString(p1) ? p1 : p2;\n}\n\nexport function toMeta(\n p1: string | Record<string, any>,\n): Record<string, unknown> {\n return isObject(p1) ? p1 : {};\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-bicep-resource/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const BicepResourceVersionIndex = z\n .object({\n resources: z.record(z.string(), z.unknown()),\n })\n .transform(({ resources }) => {\n const releaseMap = new Map<string, string[]>();\n\n for (const resourceReference of Object.keys(resources)) {\n const [type, version] = resourceReference.toLowerCase().split('@', 2);\n const versions = releaseMap.get(type) ?? [];\n versions.push(version);\n releaseMap.set(type, versions);\n }\n\n return Object.fromEntries(releaseMap);\n });\n\nexport type BicepResourceVersionIndex = z.infer<\n typeof BicepResourceVersionIndex\n>;\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EACtC,OAAO,EACN,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC7C,CAAC,CACD,WAAW,EAAE,gBAAgB;CAC5B,MAAM,6BAAa,IAAI,KAAuB;AAE9C,MAAK,MAAM,qBAAqB,OAAO,KAAK,UAAU,EAAE;EACtD,MAAM,CAAC,MAAM,WAAW,kBAAkB,aAAa,CAAC,MAAM,KAAK,EAAE;EACrE,MAAM,WAAW,WAAW,IAAI,KAAK,IAAI,EAAE;AAC3C,WAAS,KAAK,QAAQ;AACtB,aAAW,IAAI,MAAM,SAAS;;AAGhC,QAAO,OAAO,YAAY,WAAW;EACrC"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-bicep-resource/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const BicepResourceVersionIndex = z\n .object({\n resources: z.record(z.string(), z.unknown()),\n })\n .transform(({ resources }) => {\n const releaseMap = new Map<string, string[]>();\n\n for (const resourceReference of Object.keys(resources)) {\n const [type, version] = resourceReference.toLowerCase().split('@', 2);\n const versions = releaseMap.get(type) ?? [];\n versions.push(version);\n releaseMap.set(type, versions);\n }\n\n return Object.fromEntries(releaseMap);\n });\n\nexport type BicepResourceVersionIndex = z.infer<\n typeof BicepResourceVersionIndex\n>;\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EACtC,OAAO,EACN,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC7C,CAAC,CACD,WAAW,EAAE,gBAAgB;CAC5B,MAAM,6BAAa,IAAI,KAAuB;AAE9C,MAAK,MAAM,qBAAqB,OAAO,KAAK,UAAU,EAAE;EACtD,MAAM,CAAC,MAAM,WAAW,kBAAkB,aAAa,CAAC,MAAM,KAAK,EAAE;EACrE,MAAM,WAAW,WAAW,IAAI,KAAK,IAAI,EAAE;AAC3C,WAAS,KAAK,QAAQ;AACtB,aAAW,IAAI,MAAM,SAAS;;AAGhC,QAAO,OAAO,YAAY,WAAW;EACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["versioning","hostRules.find"],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport type { HttpOptions } from '../../../util/http/types.ts';\nimport { id as versioning } from '../../versioning/loose/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema.ts';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\nconst BUILT_IN_TASKS_CHANGELOG_URL =\n 'https://github.com/microsoft/azure-pipelines-tasks/releases';\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n const release: Release = {\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n changelogContent: task.releaseNotes,\n isDeprecated: task.deprecated,\n };\n\n if (task.serverOwned) {\n release.changelogUrl = BUILT_IN_TASKS_CHANGELOG_URL;\n }\n\n result.releases.push(release);\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n private async _getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n return withCache(\n {\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: url,\n ttlMinutes: 24 * 60,\n },\n () => this._getTasks(url, opts, schema),\n );\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"],"mappings":";;;;;;;;AAcA,MAAM,iBACJ;AACF,MAAM,qBAAqB,GAAG,eAAe;AAC7C,MAAM,wBAAwB,GAAG,eAAe;AAChD,MAAM,+BACJ;AAEF,IAAa,gCAAb,MAAa,sCAAsC,WAAW;CAC5D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,8BAA8B,GAAG;;CAGzC,AAAkB,wBAAwB;CAE1C,AAAkB,oBAAoBA;CAEtC,MAAM,YAAY,EAChB,eACmD;EACnD,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,EAAE,UAAUC,KAAe;GAC/B,UAAU,8BAA8B;GACxC,KAAK;GACN,CAAC;AAEF,MAAI,aAAa,WAAW,YAAY,OAAO;GAE7C,MAAM,OAAoB,EACxB,SAAS,EAAE,eAAe,SAFf,OAAO,KAAK,YAAY,QAAQ,CAAC,SAAS,SAAS,IAEnB,EAC5C;GACD,MAAM,UAAU,MAAM,KAAK,SACzB,GAAG,SAAS,gCACZ,MACA,mBACD;GAED,MAAM,SAAwB,EAAE,UAAU,EAAE,EAAE;AAE9C,WAAQ,MACL,QAAQ,SAAS;AAShB,WARiB;KACf,KAAK,OAAO;KACZ,KAAK,SAAS;KACd,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,SAAS;KAClD,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,WAAW;KACrD,CACe,MAAM,UAAU,MAAM;KACtC,CACD,KAAK,8BAA8B,wBAAwB,UAAU,CAAC,CACtE,SAAS,SAAS;IACjB,MAAM,UAAmB;KACvB,SAAS,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS;KACxE,kBAAkB,KAAK;KACvB,cAAc,KAAK;KACpB;AAED,QAAI,KAAK,YACP,SAAQ,eAAe;AAGzB,WAAO,SAAS,KAAK,QAAQ;KAC7B;AAEJ,UAAO;SACF;GACL,MAAM,YAEF,MAAM,KAAK,SACT,oBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa,MAEzB,MAAM,KAAK,SACT,uBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa;AAE7B,OAAI,SAEF,QAAO,EAAE,UADQ,SAAS,KAAK,aAAa,EAAE,SAAS,EAAE,EACtC;;AAIvB,SAAO;;CAGT,MAAc,UACZ,KACA,MACA,QACyB;EACzB,MAAM,EAAE,SAAS,MAAM,KAAK,KAAK,QAAQ,KAAK,MAAM,OAAO;AAC3D,SAAO;;CAGT,SACE,KACA,MACA,QACyB;AACzB,SAAO,UACL;GACE,WAAW,cAAc,8BAA8B;GACvD,KAAK;GACL,YAAY;GACb,QACK,KAAK,UAAU,KAAK,MAAM,OAAO,CACxC;;CAGH,OAAO,2BAA2B,SAAiB,GAAQ,MAAW;EACpE,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAC9D,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAE9D,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EACzD,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EAEzD,MAAM,MAAM,KAAK,IAAI,GAAG,QAAQ,GAAG,OAAO;AAE1C,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK;GAC5B,MAAM,KAAK,CAAC,GAAG,MAAM;GACrB,MAAM,KAAK,CAAC,GAAG,MAAM;AAErB,OAAI,OAAO,GACT,QAAO,KAAK,KAAK,IAAI;;AAIzB,SAAO,GAAG,SAAS,GAAG"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["versioning","hostRules.find"],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"sourcesContent":["import type { TypeOf, ZodType } from 'zod/v3';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport type { HttpOptions } from '../../../util/http/types.ts';\nimport { id as versioning } from '../../versioning/loose/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema.ts';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\nconst BUILT_IN_TASKS_CHANGELOG_URL =\n 'https://github.com/microsoft/azure-pipelines-tasks/releases';\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n const release: Release = {\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n changelogContent: task.releaseNotes,\n isDeprecated: task.deprecated,\n };\n\n if (task.serverOwned) {\n release.changelogUrl = BUILT_IN_TASKS_CHANGELOG_URL;\n }\n\n result.releases.push(release);\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n private async _getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n return withCache(\n {\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: url,\n ttlMinutes: 24 * 60,\n },\n () => this._getTasks(url, opts, schema),\n );\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"],"mappings":";;;;;;;;AAcA,MAAM,iBACJ;AACF,MAAM,qBAAqB,GAAG,eAAe;AAC7C,MAAM,wBAAwB,GAAG,eAAe;AAChD,MAAM,+BACJ;AAEF,IAAa,gCAAb,MAAa,sCAAsC,WAAW;CAC5D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,8BAA8B,GAAG;;CAGzC,AAAkB,wBAAwB;CAE1C,AAAkB,oBAAoBA;CAEtC,MAAM,YAAY,EAChB,eACmD;EACnD,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,EAAE,UAAUC,KAAe;GAC/B,UAAU,8BAA8B;GACxC,KAAK;GACN,CAAC;AAEF,MAAI,aAAa,WAAW,YAAY,OAAO;GAE7C,MAAM,OAAoB,EACxB,SAAS,EAAE,eAAe,SAFf,OAAO,KAAK,YAAY,QAAQ,CAAC,SAAS,SAAS,IAEnB,EAC5C;GACD,MAAM,UAAU,MAAM,KAAK,SACzB,GAAG,SAAS,gCACZ,MACA,mBACD;GAED,MAAM,SAAwB,EAAE,UAAU,EAAE,EAAE;AAE9C,WAAQ,MACL,QAAQ,SAAS;AAShB,WARiB;KACf,KAAK,OAAO;KACZ,KAAK,SAAS;KACd,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,SAAS;KAClD,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,WAAW;KACrD,CACe,MAAM,UAAU,MAAM;KACtC,CACD,KAAK,8BAA8B,wBAAwB,UAAU,CAAC,CACtE,SAAS,SAAS;IACjB,MAAM,UAAmB;KACvB,SAAS,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS;KACxE,kBAAkB,KAAK;KACvB,cAAc,KAAK;KACpB;AAED,QAAI,KAAK,YACP,SAAQ,eAAe;AAGzB,WAAO,SAAS,KAAK,QAAQ;KAC7B;AAEJ,UAAO;SACF;GACL,MAAM,YAEF,MAAM,KAAK,SACT,oBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa,MAEzB,MAAM,KAAK,SACT,uBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa;AAE7B,OAAI,SAEF,QAAO,EAAE,UADQ,SAAS,KAAK,aAAa,EAAE,SAAS,EAAE,EACtC;;AAIvB,SAAO;;CAGT,MAAc,UACZ,KACA,MACA,QACyB;EACzB,MAAM,EAAE,SAAS,MAAM,KAAK,KAAK,QAAQ,KAAK,MAAM,OAAO;AAC3D,SAAO;;CAGT,SACE,KACA,MACA,QACyB;AACzB,SAAO,UACL;GACE,WAAW,cAAc,8BAA8B;GACvD,KAAK;GACL,YAAY;GACb,QACK,KAAK,UAAU,KAAK,MAAM,OAAO,CACxC;;CAGH,OAAO,2BAA2B,SAAiB,GAAQ,MAAW;EACpE,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAC9D,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAE9D,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EACzD,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EAEzD,MAAM,MAAM,KAAK,IAAI,GAAG,QAAQ,GAAG,OAAO;AAE1C,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK;GAC5B,MAAM,KAAK,CAAC,GAAG,MAAM;GACrB,MAAM,KAAK,CAAC,GAAG,MAAM;AAErB,OAAI,OAAO,GACT,QAAO,KAAK,KAAK,IAAI;;AAIzB,SAAO,GAAG,SAAS,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n releaseNotes: z.string().optional(),\n serverOwned: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EAAE,OAAO;CAChD,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO;CACzC,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ;CAChB,YAAY,EAAE,SAAS,CAAC,UAAU;CAClC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,aAAa,EAAE,SAAS,CAAC,UAAU;CACnC,SAAS,0BAA0B,UAAU;CAC7C,wBAAwB,EAAE,QAAQ,CAAC,UAAU;CAC9C,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO,EACzC,OAAO,mBAAmB,OAAO,EAClC,CAAC;AAEF,MAAa,8BAA8B,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n releaseNotes: z.string().optional(),\n serverOwned: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EAAE,OAAO;CAChD,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO;CACzC,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ;CAChB,YAAY,EAAE,SAAS,CAAC,UAAU;CAClC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,aAAa,EAAE,SAAS,CAAC,UAAU;CACnC,SAAS,0BAA0B,UAAU;CAC7C,wBAAwB,EAAE,QAAQ,CAAC,UAAU;CAC9C,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO,EACzC,OAAO,mBAAmB,OAAO,EAClC,CAAC;AAEF,MAAa,8BAA8B,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bazel/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const BazelModuleMetadata = z.object({\n homepage: z.string().optional().nullable(),\n versions: z.array(z.string()),\n yanked_versions: z.record(z.string(), z.string()).optional(),\n});\n\nexport type BazelModuleMetadata = z.infer<typeof BazelModuleMetadata>;\n"],"mappings":";;;AAEA,MAAa,sBAAsB,EAAE,OAAO;CAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC7B,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bazel/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const BazelModuleMetadata = z.object({\n homepage: z.string().optional().nullable(),\n versions: z.array(z.string()),\n yanked_versions: z.record(z.string(), z.string()).optional(),\n});\n\nexport type BazelModuleMetadata = z.infer<typeof BazelModuleMetadata>;\n"],"mappings":";;;AAEA,MAAa,sBAAsB,EAAE,OAAO;CAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC7B,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CAC7D,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { Datasource } from "../datasource.js";
|
|
|
7
7
|
import { DigestsConfig, ReleasesConfig } from "../schema.js";
|
|
8
8
|
import { BitbucketServerHttp } from "../../../util/http/bitbucket-server.js";
|
|
9
9
|
import { BitbucketServerCommits, BitbucketServerTag, BitbucketServerTags } from "./schema.js";
|
|
10
|
-
import { ZodError } from "zod";
|
|
10
|
+
import { ZodError } from "zod/v3";
|
|
11
11
|
|
|
12
12
|
//#region lib/modules/datasource/bitbucket-server-tags/index.ts
|
|
13
13
|
var BitbucketServerTagsDatasource = class BitbucketServerTagsDatasource extends Datasource {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/index.ts"],"sourcesContent":["import { ZodError } from 'zod';\nimport { logger } from '../../../logger/index.ts';\nimport type { PackageCacheNamespace } from '../../../util/cache/package/types.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { BitbucketServerHttp } from '../../../util/http/bitbucket-server.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from '../types.ts';\nimport {\n BitbucketServerCommits,\n BitbucketServerTag,\n BitbucketServerTags,\n} from './schema.ts';\n\nexport class BitbucketServerTagsDatasource extends Datasource {\n static readonly id = 'bitbucket-server-tags';\n\n override http = new BitbucketServerHttp(BitbucketServerTagsDatasource.id);\n\n static readonly sourceUrlSupport = 'package';\n static readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n static readonly cacheNamespace: PackageCacheNamespace = `datasource-${BitbucketServerTagsDatasource.id}`;\n\n constructor() {\n super(BitbucketServerTagsDatasource.id);\n }\n\n static getRegistryURL(registryUrl: string): string {\n return registryUrl?.replace(regEx(/\\/rest\\/api\\/1.0$/), '');\n }\n\n static getSourceUrl(\n projectKey: string,\n repositorySlug: string,\n registryUrl: string,\n ): string {\n const url = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(url)}projects/${projectKey}/repos/${repositorySlug}`;\n }\n\n static getApiUrl(registryUrl: string): string {\n const res = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(res)}rest/api/1.0/`;\n }\n\n static getCacheKey(\n registryUrl: string | undefined,\n repo: string,\n type: string,\n ): string {\n return `${BitbucketServerTagsDatasource.getRegistryURL(registryUrl ?? '')}:${repo}:${type}`;\n }\n\n // getReleases fetches list of tags for the repository\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ registryUrl }) => {\n const url = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}/tags`;\n\n return this.http.getJsonSafe(\n url,\n { paginate: true },\n BitbucketServerTags,\n );\n })\n .transform((tags) =>\n tags.map(({ displayId, hash }) => ({\n version: displayId,\n gitRef: displayId,\n newDigest: hash ?? undefined,\n })),\n )\n .transform((versions): ReleaseResult => {\n return {\n sourceUrl: BitbucketServerTagsDatasource.getSourceUrl(\n projectKey,\n repositorySlug,\n registryUrl,\n ),\n registryUrl:\n BitbucketServerTagsDatasource.getRegistryURL(registryUrl),\n releases: versions,\n };\n });\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'tags',\n ),\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n // getTagCommit fetches the commit hash for the specified tag\n private async _getTagCommit(\n baseUrl: string,\n tag: string,\n ): Promise<string | null> {\n const bitbucketServerTag = (\n await this.http.getJson(`${baseUrl}/tags/${tag}`, BitbucketServerTag)\n ).body;\n\n return bitbucketServerTag.hash ?? null;\n }\n\n getTagCommit(\n baseUrl: string,\n tag: string,\n config: DigestConfig,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n `tag-${tag}`,\n ),\n },\n () => this._getTagCommit(baseUrl, tag),\n );\n }\n\n // getDigest fetches the latest commit for repository main branch.\n // If newValue is provided, then getTagCommit is called\n private async _getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const baseUrl = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}`;\n\n if (newValue?.length) {\n return this.getTagCommit(baseUrl, newValue, config);\n }\n\n const result = Result.parse(config, DigestsConfig)\n .transform(() => {\n const url = `${baseUrl}/commits?ignoreMissing=true`;\n\n return this.http.getJsonSafe(\n url,\n {\n paginate: true,\n limit: 1,\n maxPages: 1,\n },\n BitbucketServerCommits,\n );\n })\n .transform((commits) => {\n return commits[0]?.id;\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'digest',\n ),\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/index.ts"],"sourcesContent":["import { ZodError } from 'zod/v3';\nimport { logger } from '../../../logger/index.ts';\nimport type { PackageCacheNamespace } from '../../../util/cache/package/types.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { BitbucketServerHttp } from '../../../util/http/bitbucket-server.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from '../types.ts';\nimport {\n BitbucketServerCommits,\n BitbucketServerTag,\n BitbucketServerTags,\n} from './schema.ts';\n\nexport class BitbucketServerTagsDatasource extends Datasource {\n static readonly id = 'bitbucket-server-tags';\n\n override http = new BitbucketServerHttp(BitbucketServerTagsDatasource.id);\n\n static readonly sourceUrlSupport = 'package';\n static readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n static readonly cacheNamespace: PackageCacheNamespace = `datasource-${BitbucketServerTagsDatasource.id}`;\n\n constructor() {\n super(BitbucketServerTagsDatasource.id);\n }\n\n static getRegistryURL(registryUrl: string): string {\n return registryUrl?.replace(regEx(/\\/rest\\/api\\/1.0$/), '');\n }\n\n static getSourceUrl(\n projectKey: string,\n repositorySlug: string,\n registryUrl: string,\n ): string {\n const url = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(url)}projects/${projectKey}/repos/${repositorySlug}`;\n }\n\n static getApiUrl(registryUrl: string): string {\n const res = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(res)}rest/api/1.0/`;\n }\n\n static getCacheKey(\n registryUrl: string | undefined,\n repo: string,\n type: string,\n ): string {\n return `${BitbucketServerTagsDatasource.getRegistryURL(registryUrl ?? '')}:${repo}:${type}`;\n }\n\n // getReleases fetches list of tags for the repository\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ registryUrl }) => {\n const url = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}/tags`;\n\n return this.http.getJsonSafe(\n url,\n { paginate: true },\n BitbucketServerTags,\n );\n })\n .transform((tags) =>\n tags.map(({ displayId, hash }) => ({\n version: displayId,\n gitRef: displayId,\n newDigest: hash ?? undefined,\n })),\n )\n .transform((versions): ReleaseResult => {\n return {\n sourceUrl: BitbucketServerTagsDatasource.getSourceUrl(\n projectKey,\n repositorySlug,\n registryUrl,\n ),\n registryUrl:\n BitbucketServerTagsDatasource.getRegistryURL(registryUrl),\n releases: versions,\n };\n });\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'tags',\n ),\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n // getTagCommit fetches the commit hash for the specified tag\n private async _getTagCommit(\n baseUrl: string,\n tag: string,\n ): Promise<string | null> {\n const bitbucketServerTag = (\n await this.http.getJson(`${baseUrl}/tags/${tag}`, BitbucketServerTag)\n ).body;\n\n return bitbucketServerTag.hash ?? null;\n }\n\n getTagCommit(\n baseUrl: string,\n tag: string,\n config: DigestConfig,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n `tag-${tag}`,\n ),\n },\n () => this._getTagCommit(baseUrl, tag),\n );\n }\n\n // getDigest fetches the latest commit for repository main branch.\n // If newValue is provided, then getTagCommit is called\n private async _getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const baseUrl = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}`;\n\n if (newValue?.length) {\n return this.getTagCommit(baseUrl, newValue, config);\n }\n\n const result = Result.parse(config, DigestsConfig)\n .transform(() => {\n const url = `${baseUrl}/commits?ignoreMissing=true`;\n\n return this.http.getJsonSafe(\n url,\n {\n paginate: true,\n limit: 1,\n maxPages: 1,\n },\n BitbucketServerCommits,\n );\n })\n .transform((commits) => {\n return commits[0]?.id;\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'digest',\n ),\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const BitbucketServerTag = z.object({\n displayId: z.string(),\n hash: z.string().nullish(),\n});\n\nexport const BitbucketServerTags = z.array(BitbucketServerTag);\n\nexport const BitbucketServerCommits = z.array(\n z.object({\n id: z.string(),\n }),\n);\n"],"mappings":";;;AAEA,MAAa,qBAAqB,EAAE,OAAO;CACzC,WAAW,EAAE,QAAQ;CACrB,MAAM,EAAE,QAAQ,CAAC,SAAS;CAC3B,CAAC;AAEF,MAAa,sBAAsB,EAAE,MAAM,mBAAmB;AAE9D,MAAa,yBAAyB,EAAE,MACtC,EAAE,OAAO,EACP,IAAI,EAAE,QAAQ,EACf,CAAC,CACH"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const BitbucketServerTag = z.object({\n displayId: z.string(),\n hash: z.string().nullish(),\n});\n\nexport const BitbucketServerTags = z.array(BitbucketServerTag);\n\nexport const BitbucketServerCommits = z.array(\n z.object({\n id: z.string(),\n }),\n);\n"],"mappings":";;;AAEA,MAAa,qBAAqB,EAAE,OAAO;CACzC,WAAW,EAAE,QAAQ;CACrB,MAAM,EAAE,QAAQ,CAAC,SAAS;CAC3B,CAAC;AAEF,MAAa,sBAAsB,EAAE,MAAM,mBAAmB;AAE9D,MAAa,yBAAyB,EAAE,MACtC,EAAE,OAAO,EACP,IAAI,EAAE,QAAQ,EACf,CAAC,CACH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Yaml } from "../../../util/schema-utils/index.js";
|
|
2
2
|
import { MaybeTimestamp } from "../../../util/timestamp.js";
|
|
3
|
-
import { z } from "zod";
|
|
3
|
+
import { z } from "zod/v3";
|
|
4
4
|
|
|
5
5
|
//#region lib/modules/datasource/bitrise/schema.ts
|
|
6
6
|
const BitriseStepFile = Yaml.pipe(z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitrise/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Yaml } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const BitriseStepFile = Yaml.pipe(\n z.object({\n published_at: MaybeTimestamp,\n source_code_url: z.string().optional(),\n }),\n);\n"],"mappings":";;;;;AAIA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,cAAc;CACd,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACvC,CAAC,CACH"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitrise/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { Yaml } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const BitriseStepFile = Yaml.pipe(\n z.object({\n published_at: MaybeTimestamp,\n source_code_url: z.string().optional(),\n }),\n);\n"],"mappings":";;;;;AAIA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,cAAc;CACd,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACvC,CAAC,CACH"}
|
|
@@ -4,7 +4,7 @@ import { Result } from "../../../util/result.js";
|
|
|
4
4
|
import { Datasource } from "../datasource.js";
|
|
5
5
|
import { ReleasesConfig } from "../schema.js";
|
|
6
6
|
import { BuildpacksRegistryResponse } from "./schema.js";
|
|
7
|
-
import { ZodError } from "zod";
|
|
7
|
+
import { ZodError } from "zod/v3";
|
|
8
8
|
import urlJoin from "url-join";
|
|
9
9
|
|
|
10
10
|
//#region lib/modules/datasource/buildpacks-registry/index.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/index.ts"],"sourcesContent":["import urlJoin from 'url-join';\nimport { ZodError } from 'zod';\nimport { logger } from '../../../logger/index.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { ReleasesConfig } from '../schema.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport { BuildpacksRegistryResponse } from './schema.ts';\n\nexport class BuildpacksRegistryDatasource extends Datasource {\n static readonly id = 'buildpacks-registry';\n\n constructor() {\n super(BuildpacksRegistryDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://registry.buildpacks.io'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `source_code_url` field of the release object in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const url = urlJoin(\n registryUrl,\n 'api',\n 'v1',\n 'buildpacks',\n packageName,\n );\n\n return this.http.getJsonSafe(url, BuildpacksRegistryResponse);\n })\n .transform(({ versions, latest }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (latest?.homepage) {\n res.homepage = latest.homepage;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'buildpacks: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${BuildpacksRegistryDatasource.id}`,\n key: `${config.registryUrl}:${config.packageName}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAUA,IAAa,+BAAb,MAAa,qCAAqC,WAAW;CAC3D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,6BAA6B,GAAG;;CAGxC,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,iCAAiC;CAE1E,AAAkB,0BAA0B;CAC5C,AAAkB,uBAChB;CACF,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EAyB/B,MAAM,EAAE,KAAK,QAAQ,MAxBN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,MAAM,QACV,aACA,OACA,MACA,cACA,YACD;AAED,UAAO,KAAK,KAAK,YAAY,KAAK,2BAA2B;IAC7D,CACD,WAAW,EAAE,UAAU,aAA4B;GAGlD,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,QAAQ,SACV,KAAI,WAAW,OAAO;AAGxB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,+BAA+B;AACrD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;AACpE,SAAO,UACL;GACE,WAAW,cAAc,6BAA6B;GACtD,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/index.ts"],"sourcesContent":["import urlJoin from 'url-join';\nimport { ZodError } from 'zod/v3';\nimport { logger } from '../../../logger/index.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { ReleasesConfig } from '../schema.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport { BuildpacksRegistryResponse } from './schema.ts';\n\nexport class BuildpacksRegistryDatasource extends Datasource {\n static readonly id = 'buildpacks-registry';\n\n constructor() {\n super(BuildpacksRegistryDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://registry.buildpacks.io'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `source_code_url` field of the release object in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const url = urlJoin(\n registryUrl,\n 'api',\n 'v1',\n 'buildpacks',\n packageName,\n );\n\n return this.http.getJsonSafe(url, BuildpacksRegistryResponse);\n })\n .transform(({ versions, latest }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (latest?.homepage) {\n res.homepage = latest.homepage;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'buildpacks: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${BuildpacksRegistryDatasource.id}`,\n key: `${config.registryUrl}:${config.packageName}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAUA,IAAa,+BAAb,MAAa,qCAAqC,WAAW;CAC3D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,6BAA6B,GAAG;;CAGxC,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,iCAAiC;CAE1E,AAAkB,0BAA0B;CAC5C,AAAkB,uBAChB;CACF,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EAyB/B,MAAM,EAAE,KAAK,QAAQ,MAxBN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,MAAM,QACV,aACA,OACA,MACA,cACA,YACD;AAED,UAAO,KAAK,KAAK,YAAY,KAAK,2BAA2B;IAC7D,CACD,WAAW,EAAE,UAAU,aAA4B;GAGlD,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,QAAQ,SACV,KAAI,WAAW,OAAO;AAGxB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,+BAA+B;AACrD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;AACpE,SAAO,UACL;GACE,WAAW,cAAc,6BAA6B;GACtD,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * Response from registry.buildpacks.io\n */\nexport const BuildpacksRegistryResponse = z.object({\n latest: z\n .object({\n homepage: z.string().optional(),\n })\n .optional(),\n versions: z\n .object({\n version: z.string(),\n })\n .array(),\n});\n"],"mappings":";;;;;;AAKA,MAAa,6BAA6B,EAAE,OAAO;CACjD,QAAQ,EACL,OAAO,EACN,UAAU,EAAE,QAAQ,CAAC,UAAU,EAChC,CAAC,CACD,UAAU;CACb,UAAU,EACP,OAAO,EACN,SAAS,EAAE,QAAQ,EACpB,CAAC,CACD,OAAO;CACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\n/**\n * Response from registry.buildpacks.io\n */\nexport const BuildpacksRegistryResponse = z.object({\n latest: z\n .object({\n homepage: z.string().optional(),\n })\n .optional(),\n versions: z\n .object({\n version: z.string(),\n })\n .array(),\n});\n"],"mappings":";;;;;;AAKA,MAAa,6BAA6B,EAAE,OAAO;CACjD,QAAQ,EACL,OAAO,EACN,UAAU,EAAE,QAAQ,CAAC,UAAU,EAChC,CAAC,CACD,UAAU;CACb,UAAU,EACP,OAAO,EACN,SAAS,EAAE,QAAQ,EACpB,CAAC,CACD,OAAO;CACX,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { Result } from "../../../util/result.js";
|
|
|
6
6
|
import { Datasource } from "../datasource.js";
|
|
7
7
|
import { DigestsConfig, ReleasesConfig } from "../schema.js";
|
|
8
8
|
import { CdnjsAPISriResponse, CdnjsAPIVersionResponse } from "./schema.js";
|
|
9
|
-
import { ZodError } from "zod";
|
|
9
|
+
import { ZodError } from "zod/v3";
|
|
10
10
|
|
|
11
11
|
//#region lib/modules/datasource/cdnjs/index.ts
|
|
12
12
|
var CdnjsDatasource = class CdnjsDatasource extends Datasource {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/index.ts"],"sourcesContent":["import { ZodError } from 'zod';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport type { HttpError } from '../../../util/http/index.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types.ts';\nimport { CdnjsAPISriResponse, CdnjsAPIVersionResponse } from './schema.ts';\n\nexport class CdnjsDatasource extends Datasource {\n static readonly id = 'cdnjs';\n\n constructor() {\n super(CdnjsDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://api.cdnjs.com/'];\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `repository` field in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const [library] = packageName.split('/');\n\n const url = `${registryUrl}libraries/${library}?fields=homepage,repository,versions`;\n\n return this.http.getJsonSafe(\n url,\n { cacheProvider: memCacheProvider },\n CdnjsAPIVersionResponse,\n );\n })\n .transform(({ versions, homepage, repository }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (homepage) {\n res.homepage = homepage;\n }\n\n if (repository) {\n res.sourceUrl = repository;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const library = config.packageName.split('/')[0];\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getReleases:${library}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n private async _getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n const { packageName } = config;\n const [library] = packageName.split('/');\n const assetName = packageName.replace(`${library}/`, '');\n\n const result = Result.parse(config, DigestsConfig)\n .transform(({ registryUrl }) => {\n const url = `${registryUrl}libraries/${library}/${newValue}?fields=sri`;\n\n return this.http.getJsonSafe(url, CdnjsAPISriResponse);\n })\n .transform(({ sri }): string => {\n return sri?.[assetName];\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getDigest:${config.registryUrl}:${config.packageName}:${newValue}`,\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n\n override handleHttpErrors(err: HttpError): void {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AAiBA,IAAa,kBAAb,MAAa,wBAAwB,WAAW;CAC9C,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,gBAAgB,GAAG;;CAG3B,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,yBAAyB;CAElE,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EA6B/B,MAAM,EAAE,KAAK,QAAQ,MA5BN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;GAExC,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ;AAE/C,UAAO,KAAK,KAAK,YACf,KACA,EAAE,eAAe,kBAAkB,EACnC,wBACD;IACD,CACD,WAAW,EAAE,UAAU,UAAU,iBAAgC;GAGhE,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,SACF,KAAI,WAAW;AAGjB,OAAI,WACF,KAAI,YAAY;AAGlB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;EACpE,MAAM,UAAU,OAAO,YAAY,MAAM,IAAI,CAAC;AAC9C,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,eAAe;GACpB,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC;;CAGH,MAAc,WACZ,QACA,UACwB;EACxB,MAAM,EAAE,gBAAgB;EACxB,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;EACxC,MAAM,YAAY,YAAY,QAAQ,GAAG,QAAQ,IAAI,GAAG;EAYxD,MAAM,EAAE,MAAM,MAAM,QAAQ,MAVb,OAAO,MAAM,QAAQ,cAAc,CAC/C,WAAW,EAAE,kBAAkB;GAC9B,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ,GAAG,SAAS;AAE3D,UAAO,KAAK,KAAK,YAAY,KAAK,oBAAoB;IACtD,CACD,WAAW,EAAE,UAAkB;AAC9B,UAAO,MAAM;IACb,CAEqC,QAAQ;AAEjD,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,AAAS,UACP,QACA,UACwB;AACxB,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,aAAa,OAAO,YAAY,GAAG,OAAO,YAAY,GAAG;GAC9D,UAAU;GACX,QACK,KAAK,WAAW,QAAQ,SAAS,CACxC;;CAGH,AAAS,iBAAiB,KAAsB;AAC9C,MAAI,IAAI,UAAU,eAAe,IAC/B,OAAM,IAAI,kBAAkB,IAAI"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/index.ts"],"sourcesContent":["import { ZodError } from 'zod/v3';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport type { HttpError } from '../../../util/http/index.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types.ts';\nimport { CdnjsAPISriResponse, CdnjsAPIVersionResponse } from './schema.ts';\n\nexport class CdnjsDatasource extends Datasource {\n static readonly id = 'cdnjs';\n\n constructor() {\n super(CdnjsDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://api.cdnjs.com/'];\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `repository` field in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const [library] = packageName.split('/');\n\n const url = `${registryUrl}libraries/${library}?fields=homepage,repository,versions`;\n\n return this.http.getJsonSafe(\n url,\n { cacheProvider: memCacheProvider },\n CdnjsAPIVersionResponse,\n );\n })\n .transform(({ versions, homepage, repository }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (homepage) {\n res.homepage = homepage;\n }\n\n if (repository) {\n res.sourceUrl = repository;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const library = config.packageName.split('/')[0];\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getReleases:${library}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n private async _getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n const { packageName } = config;\n const [library] = packageName.split('/');\n const assetName = packageName.replace(`${library}/`, '');\n\n const result = Result.parse(config, DigestsConfig)\n .transform(({ registryUrl }) => {\n const url = `${registryUrl}libraries/${library}/${newValue}?fields=sri`;\n\n return this.http.getJsonSafe(url, CdnjsAPISriResponse);\n })\n .transform(({ sri }): string => {\n return sri?.[assetName];\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getDigest:${config.registryUrl}:${config.packageName}:${newValue}`,\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n\n override handleHttpErrors(err: HttpError): void {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AAiBA,IAAa,kBAAb,MAAa,wBAAwB,WAAW;CAC9C,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,gBAAgB,GAAG;;CAG3B,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,yBAAyB;CAElE,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EA6B/B,MAAM,EAAE,KAAK,QAAQ,MA5BN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;GAExC,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ;AAE/C,UAAO,KAAK,KAAK,YACf,KACA,EAAE,eAAe,kBAAkB,EACnC,wBACD;IACD,CACD,WAAW,EAAE,UAAU,UAAU,iBAAgC;GAGhE,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,SACF,KAAI,WAAW;AAGjB,OAAI,WACF,KAAI,YAAY;AAGlB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;EACpE,MAAM,UAAU,OAAO,YAAY,MAAM,IAAI,CAAC;AAC9C,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,eAAe;GACpB,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC;;CAGH,MAAc,WACZ,QACA,UACwB;EACxB,MAAM,EAAE,gBAAgB;EACxB,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;EACxC,MAAM,YAAY,YAAY,QAAQ,GAAG,QAAQ,IAAI,GAAG;EAYxD,MAAM,EAAE,MAAM,MAAM,QAAQ,MAVb,OAAO,MAAM,QAAQ,cAAc,CAC/C,WAAW,EAAE,kBAAkB;GAC9B,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ,GAAG,SAAS;AAE3D,UAAO,KAAK,KAAK,YAAY,KAAK,oBAAoB;IACtD,CACD,WAAW,EAAE,UAAkB;AAC9B,UAAO,MAAM;IACb,CAEqC,QAAQ;AAEjD,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,AAAS,UACP,QACA,UACwB;AACxB,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,aAAa,OAAO,YAAY,GAAG,OAAO,YAAY,GAAG;GAC9D,UAAU;GACX,QACK,KAAK,WAAW,QAAQ,SAAS,CACxC;;CAGH,AAAS,iBAAiB,KAAsB;AAC9C,MAAI,IAAI,UAAU,eAAe,IAC/B,OAAM,IAAI,kBAAkB,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport type { Release } from '../types.ts';\n\nexport const Homepage = z.string().optional().catch(undefined);\n\nexport const Repository = z\n .object({\n type: z.literal('git'),\n url: z.string(),\n })\n .transform(({ url }) => url)\n .optional()\n .catch(undefined);\n\nexport const Versions = z\n .string()\n .transform((version): Release => ({ version }))\n .array();\n\nexport const Sri = z.record(z.string());\n\nexport const CdnjsAPIVersionResponse = z.object({\n homepage: Homepage,\n repository: Repository,\n versions: Versions,\n});\n\nexport const CdnjsAPISriResponse = z.object({\n sri: Sri,\n});\n"],"mappings":";;;AAGA,MAAa,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,OAAU;AAE9D,MAAa,aAAa,EACvB,OAAO;CACN,MAAM,EAAE,QAAQ,MAAM;CACtB,KAAK,EAAE,QAAQ;CAChB,CAAC,CACD,WAAW,EAAE,UAAU,IAAI,CAC3B,UAAU,CACV,MAAM,OAAU;AAEnB,MAAa,WAAW,EACrB,QAAQ,CACR,WAAW,aAAsB,EAAE,SAAS,EAAE,CAC9C,OAAO;AAEV,MAAa,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;AAEvC,MAAa,0BAA0B,EAAE,OAAO;CAC9C,UAAU;CACV,YAAY;CACZ,UAAU;CACX,CAAC;AAEF,MAAa,sBAAsB,EAAE,OAAO,EAC1C,KAAK,KACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport type { Release } from '../types.ts';\n\nexport const Homepage = z.string().optional().catch(undefined);\n\nexport const Repository = z\n .object({\n type: z.literal('git'),\n url: z.string(),\n })\n .transform(({ url }) => url)\n .optional()\n .catch(undefined);\n\nexport const Versions = z\n .string()\n .transform((version): Release => ({ version }))\n .array();\n\nexport const Sri = z.record(z.string());\n\nexport const CdnjsAPIVersionResponse = z.object({\n homepage: Homepage,\n repository: Repository,\n versions: Versions,\n});\n\nexport const CdnjsAPISriResponse = z.object({\n sri: Sri,\n});\n"],"mappings":";;;AAGA,MAAa,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,OAAU;AAE9D,MAAa,aAAa,EACvB,OAAO;CACN,MAAM,EAAE,QAAQ,MAAM;CACtB,KAAK,EAAE,QAAQ;CAChB,CAAC,CACD,WAAW,EAAE,UAAU,IAAI,CAC3B,UAAU,CACV,MAAM,OAAU;AAEnB,MAAa,WAAW,EACrB,QAAQ,CACR,WAAW,aAAsB,EAAE,SAAS,EAAE,CAC9C,OAAO;AAEV,MAAa,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;AAEvC,MAAa,0BAA0B,EAAE,OAAO;CAC9C,UAAU;CACV,YAAY;CACZ,UAAU;CACX,CAAC;AAEF,MAAa,sBAAsB,EAAE,OAAO,EAC1C,KAAK,KACN,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LooseArray } from "../../../util/schema-utils/index.js";
|
|
2
2
|
import { conanDatasourceRegex } from "./common.js";
|
|
3
|
-
import { z } from "zod";
|
|
3
|
+
import { z } from "zod/v3";
|
|
4
4
|
|
|
5
5
|
//#region lib/modules/datasource/conan/schema.ts
|
|
6
6
|
const ConanCenterReleases = z.object({ versions: z.record(z.string(), z.unknown()) }).transform(({ versions }) => ({ releases: Object.keys(versions).map((version) => ({ version })) })).nullable().catch(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/conan/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport type { ReleaseResult } from '../types.ts';\nimport { conanDatasourceRegex } from './common.ts';\n\nexport const ConanCenterReleases = z\n .object({\n versions: z.record(z.string(), z.unknown()),\n })\n .transform(\n ({ versions }): ReleaseResult => ({\n releases: Object.keys(versions).map((version) => ({ version })),\n }),\n )\n .nullable()\n .catch(null);\n\nexport const ConanJSON = z\n .object({\n results: z\n .string()\n .array()\n .transform((array) =>\n array.map((val) => val.match(conanDatasourceRegex)?.groups),\n )\n .pipe(\n LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n userChannel: z.string(),\n }),\n ),\n ),\n })\n .transform(({ results }) => results)\n .nullable()\n .catch(null);\n\nexport const ConanRevisionJSON = z.object({\n revision: z.string(),\n time: z.string(),\n});\n\nexport const ConanLatestRevision = z\n .object({ revisions: z.unknown().array() })\n .transform(({ revisions }) => revisions[0])\n .pipe(ConanRevisionJSON)\n .transform(({ revision }) => revision)\n .nullable()\n .catch(null);\n\nexport const ConanProperties = z\n .object({\n properties: z.object({\n 'conan.package.url': z.union([\n z.string().transform((url) => [url]),\n z.string().array(),\n ]),\n }),\n })\n .transform(({ properties }) => {\n const sourceUrl = properties['conan.package.url'][0];\n return { sourceUrl };\n });\n"],"mappings":";;;;;AAKA,MAAa,sBAAsB,EAChC,OAAO,EACN,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC5C,CAAC,CACD,WACE,EAAE,gBAA+B,EAChC,UAAU,OAAO,KAAK,SAAS,CAAC,KAAK,aAAa,EAAE,SAAS,EAAE,EAChE,EACF,CACA,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,YAAY,EACtB,OAAO,EACN,SAAS,EACN,QAAQ,CACR,OAAO,CACP,WAAW,UACV,MAAM,KAAK,QAAQ,IAAI,MAAM,qBAAqB,EAAE,OAAO,CAC5D,CACA,KACC,WACE,EAAE,OAAO;CACP,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ;CACnB,aAAa,EAAE,QAAQ;CACxB,CAAC,CACH,CACF,EACJ,CAAC,CACD,WAAW,EAAE,cAAc,QAAQ,CACnC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,oBAAoB,EAAE,OAAO;CACxC,UAAU,EAAE,QAAQ;CACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAa,sBAAsB,EAChC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAC1C,WAAW,EAAE,gBAAgB,UAAU,GAAG,CAC1C,KAAK,kBAAkB,CACvB,WAAW,EAAE,eAAe,SAAS,CACrC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,kBAAkB,EAC5B,OAAO,EACN,YAAY,EAAE,OAAO,EACnB,qBAAqB,EAAE,MAAM,CAC3B,EAAE,QAAQ,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,EACpC,EAAE,QAAQ,CAAC,OAAO,CACnB,CAAC,EACH,CAAC,EACH,CAAC,CACD,WAAW,EAAE,iBAAiB;AAE7B,QAAO,EAAE,WADS,WAAW,qBAAqB,IAC9B;EACpB"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/conan/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport type { ReleaseResult } from '../types.ts';\nimport { conanDatasourceRegex } from './common.ts';\n\nexport const ConanCenterReleases = z\n .object({\n versions: z.record(z.string(), z.unknown()),\n })\n .transform(\n ({ versions }): ReleaseResult => ({\n releases: Object.keys(versions).map((version) => ({ version })),\n }),\n )\n .nullable()\n .catch(null);\n\nexport const ConanJSON = z\n .object({\n results: z\n .string()\n .array()\n .transform((array) =>\n array.map((val) => val.match(conanDatasourceRegex)?.groups),\n )\n .pipe(\n LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n userChannel: z.string(),\n }),\n ),\n ),\n })\n .transform(({ results }) => results)\n .nullable()\n .catch(null);\n\nexport const ConanRevisionJSON = z.object({\n revision: z.string(),\n time: z.string(),\n});\n\nexport const ConanLatestRevision = z\n .object({ revisions: z.unknown().array() })\n .transform(({ revisions }) => revisions[0])\n .pipe(ConanRevisionJSON)\n .transform(({ revision }) => revision)\n .nullable()\n .catch(null);\n\nexport const ConanProperties = z\n .object({\n properties: z.object({\n 'conan.package.url': z.union([\n z.string().transform((url) => [url]),\n z.string().array(),\n ]),\n }),\n })\n .transform(({ properties }) => {\n const sourceUrl = properties['conan.package.url'][0];\n return { sourceUrl };\n });\n"],"mappings":";;;;;AAKA,MAAa,sBAAsB,EAChC,OAAO,EACN,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC5C,CAAC,CACD,WACE,EAAE,gBAA+B,EAChC,UAAU,OAAO,KAAK,SAAS,CAAC,KAAK,aAAa,EAAE,SAAS,EAAE,EAChE,EACF,CACA,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,YAAY,EACtB,OAAO,EACN,SAAS,EACN,QAAQ,CACR,OAAO,CACP,WAAW,UACV,MAAM,KAAK,QAAQ,IAAI,MAAM,qBAAqB,EAAE,OAAO,CAC5D,CACA,KACC,WACE,EAAE,OAAO;CACP,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ;CACnB,aAAa,EAAE,QAAQ;CACxB,CAAC,CACH,CACF,EACJ,CAAC,CACD,WAAW,EAAE,cAAc,QAAQ,CACnC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,oBAAoB,EAAE,OAAO;CACxC,UAAU,EAAE,QAAQ;CACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAa,sBAAsB,EAChC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAC1C,WAAW,EAAE,gBAAgB,UAAU,GAAG,CAC1C,KAAK,kBAAkB,CACvB,WAAW,EAAE,eAAe,SAAS,CACrC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,kBAAkB,EAC5B,OAAO,EACN,YAAY,EAAE,OAAO,EACnB,qBAAqB,EAAE,MAAM,CAC3B,EAAE,QAAQ,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,EACpC,EAAE,QAAQ,CAAC,OAAO,CACnB,CAAC,EACH,CAAC,EACH,CAAC,CACD,WAAW,EAAE,iBAAiB;AAE7B,QAAO,EAAE,WADS,WAAW,qBAAqB,IAC9B;EACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefix-dev.js","names":[],"sources":["../../../../../lib/modules/datasource/conda/schema/prefix-dev.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const File = z.object({\n version: z.string(),\n createdAt: z.string().nullable(),\n yankedReason: z.string().nullable(),\n urls: z\n .array(z.object({ url: z.string(), kind: z.string() }))\n .optional()\n .default([])\n .transform((urls) => {\n return Object.fromEntries(urls.map((url) => [url.kind, url.url]));\n }),\n});\n\nexport type File = z.infer<typeof File>;\n\nexport const PagedResponse = z.object({\n data: z.object({\n package: z\n .object({\n variants: z\n .object({\n pages: z.number(),\n page: z.array(File),\n })\n .nullable(),\n })\n .nullable(),\n }),\n});\n"],"mappings":";;;AAEA,MAAa,OAAO,EAAE,OAAO;CAC3B,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,MAAM,EACH,MAAM,EAAE,OAAO;EAAE,KAAK,EAAE,QAAQ;EAAE,MAAM,EAAE,QAAQ;EAAE,CAAC,CAAC,CACtD,UAAU,CACV,QAAQ,EAAE,CAAC,CACX,WAAW,SAAS;AACnB,SAAO,OAAO,YAAY,KAAK,KAAK,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC;GACjE;CACL,CAAC;AAIF,MAAa,gBAAgB,EAAE,OAAO,EACpC,MAAM,EAAE,OAAO,EACb,SAAS,EACN,OAAO,EACN,UAAU,EACP,OAAO;CACN,OAAO,EAAE,QAAQ;CACjB,MAAM,EAAE,MAAM,KAAK;CACpB,CAAC,CACD,UAAU,EACd,CAAC,CACD,UAAU,EACd,CAAC,EACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"prefix-dev.js","names":[],"sources":["../../../../../lib/modules/datasource/conda/schema/prefix-dev.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const File = z.object({\n version: z.string(),\n createdAt: z.string().nullable(),\n yankedReason: z.string().nullable(),\n urls: z\n .array(z.object({ url: z.string(), kind: z.string() }))\n .optional()\n .default([])\n .transform((urls) => {\n return Object.fromEntries(urls.map((url) => [url.kind, url.url]));\n }),\n});\n\nexport type File = z.infer<typeof File>;\n\nexport const PagedResponse = z.object({\n data: z.object({\n package: z\n .object({\n variants: z\n .object({\n pages: z.number(),\n page: z.array(File),\n })\n .nullable(),\n })\n .nullable(),\n }),\n});\n"],"mappings":";;;AAEA,MAAa,OAAO,EAAE,OAAO;CAC3B,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,MAAM,EACH,MAAM,EAAE,OAAO;EAAE,KAAK,EAAE,QAAQ;EAAE,MAAM,EAAE,QAAQ;EAAE,CAAC,CAAC,CACtD,UAAU,CACV,QAAQ,EAAE,CAAC,CACX,WAAW,SAAS;AACnB,SAAO,OAAO,YAAY,KAAK,KAAK,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC;GACjE;CACL,CAAC;AAIF,MAAa,gBAAgB,EAAE,OAAO,EACpC,MAAM,EAAE,OAAO,EACb,SAAS,EACN,OAAO,EACN,UAAU,EACP,OAAO;CACN,OAAO,EAAE,QAAQ;CACjB,MAAM,EAAE,MAAM,KAAK;CACpB,CAAC,CACD,UAAU,EACd,CAAC,CACD,UAAU,EACd,CAAC,EACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/cpan/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\nimport type { CpanRelease } from './types.ts';\n\n/**\n * https://fastapi.metacpan.org/v1/file/_mapping\n */\nconst MetaCpanApiFile = z\n .object({\n module: LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n }),\n ),\n distribution: z.string(),\n date: MaybeTimestamp,\n deprecated: z.boolean(),\n maturity: z.string(),\n status: z.union([\n z.literal('backpan'),\n z.literal('cpan'),\n z.literal('latest'),\n ]),\n })\n .transform(\n ({\n module,\n distribution,\n date,\n deprecated,\n maturity,\n status,\n }): CpanRelease | undefined => {\n if (!module[0]?.version) {\n return undefined;\n }\n return {\n version: module[0].version,\n distribution,\n isDeprecated: deprecated,\n isStable: maturity === 'released',\n releaseTimestamp: date,\n isLatest: status === 'latest',\n };\n },\n )\n .catch(undefined);\n/**\n * https://github.com/metacpan/metacpan-api/blob/master/docs/API-docs.md#available-fields\n */\nexport const MetaCpanApiFileSearchResponse = z\n .object({\n hits: z.object({\n hits: LooseArray(\n z.object({\n _source: MetaCpanApiFile,\n }),\n ),\n }),\n })\n .transform((data): CpanRelease[] => {\n // Extract all hits and filter out ones where _source transformed to undefined\n return data.hits.hits\n .map((hit) => hit._source)\n .filter((source) => source !== undefined);\n });\n"],"mappings":";;;;;;;;AAQA,MAAM,kBAAkB,EACrB,OAAO;CACN,QAAQ,WACN,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ;EAChB,SAAS,EAAE,QAAQ;EACpB,CAAC,CACH;CACD,cAAc,EAAE,QAAQ;CACxB,MAAM;CACN,YAAY,EAAE,SAAS;CACvB,UAAU,EAAE,QAAQ;CACpB,QAAQ,EAAE,MAAM;EACd,EAAE,QAAQ,UAAU;EACpB,EAAE,QAAQ,OAAO;EACjB,EAAE,QAAQ,SAAS;EACpB,CAAC;CACH,CAAC,CACD,WACE,EACC,QACA,cACA,MACA,YACA,UACA,aAC6B;AAC7B,KAAI,CAAC,OAAO,IAAI,QACd;AAEF,QAAO;EACL,SAAS,OAAO,GAAG;EACnB;EACA,cAAc;EACd,UAAU,aAAa;EACvB,kBAAkB;EAClB,UAAU,WAAW;EACtB;EAEJ,CACA,MAAM,OAAU;;;;AAInB,MAAa,gCAAgC,EAC1C,OAAO,EACN,MAAM,EAAE,OAAO,EACb,MAAM,WACJ,EAAE,OAAO,EACP,SAAS,iBACV,CAAC,CACH,EACF,CAAC,EACH,CAAC,CACD,WAAW,SAAwB;AAElC,QAAO,KAAK,KAAK,KACd,KAAK,QAAQ,IAAI,QAAQ,CACzB,QAAQ,WAAW,WAAW,OAAU;EAC3C"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/cpan/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\nimport type { CpanRelease } from './types.ts';\n\n/**\n * https://fastapi.metacpan.org/v1/file/_mapping\n */\nconst MetaCpanApiFile = z\n .object({\n module: LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n }),\n ),\n distribution: z.string(),\n date: MaybeTimestamp,\n deprecated: z.boolean(),\n maturity: z.string(),\n status: z.union([\n z.literal('backpan'),\n z.literal('cpan'),\n z.literal('latest'),\n ]),\n })\n .transform(\n ({\n module,\n distribution,\n date,\n deprecated,\n maturity,\n status,\n }): CpanRelease | undefined => {\n if (!module[0]?.version) {\n return undefined;\n }\n return {\n version: module[0].version,\n distribution,\n isDeprecated: deprecated,\n isStable: maturity === 'released',\n releaseTimestamp: date,\n isLatest: status === 'latest',\n };\n },\n )\n .catch(undefined);\n/**\n * https://github.com/metacpan/metacpan-api/blob/master/docs/API-docs.md#available-fields\n */\nexport const MetaCpanApiFileSearchResponse = z\n .object({\n hits: z.object({\n hits: LooseArray(\n z.object({\n _source: MetaCpanApiFile,\n }),\n ),\n }),\n })\n .transform((data): CpanRelease[] => {\n // Extract all hits and filter out ones where _source transformed to undefined\n return data.hits.hits\n .map((hit) => hit._source)\n .filter((source) => source !== undefined);\n });\n"],"mappings":";;;;;;;;AAQA,MAAM,kBAAkB,EACrB,OAAO;CACN,QAAQ,WACN,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ;EAChB,SAAS,EAAE,QAAQ;EACpB,CAAC,CACH;CACD,cAAc,EAAE,QAAQ;CACxB,MAAM;CACN,YAAY,EAAE,SAAS;CACvB,UAAU,EAAE,QAAQ;CACpB,QAAQ,EAAE,MAAM;EACd,EAAE,QAAQ,UAAU;EACpB,EAAE,QAAQ,OAAO;EACjB,EAAE,QAAQ,SAAS;EACpB,CAAC;CACH,CAAC,CACD,WACE,EACC,QACA,cACA,MACA,YACA,UACA,aAC6B;AAC7B,KAAI,CAAC,OAAO,IAAI,QACd;AAEF,QAAO;EACL,SAAS,OAAO,GAAG;EACnB;EACA,cAAc;EACd,UAAU,aAAa;EACvB,kBAAkB;EAClB,UAAU,WAAW;EACtB;EAEJ,CACA,MAAM,OAAU;;;;AAInB,MAAa,gCAAgC,EAC1C,OAAO,EACN,MAAM,EAAE,OAAO,EACb,MAAM,WACJ,EAAE,OAAO,EACP,SAAS,iBACV,CAAC,CACH,EACF,CAAC,EACH,CAAC,CACD,WAAW,SAAwB;AAElC,QAAO,KAAK,KAAK,KACd,KAAK,QAAQ,IAAI,QAAQ,CACzB,QAAQ,WAAW,WAAW,OAAU;EAC3C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MaybeTimestamp } from "../../../util/timestamp.js";
|
|
2
|
-
import { z } from "zod";
|
|
2
|
+
import { z } from "zod/v3";
|
|
3
3
|
|
|
4
4
|
//#region lib/modules/datasource/crate/schema.ts
|
|
5
5
|
const ReleaseTimestamp = z.object({ version: z.object({ created_at: MaybeTimestamp }) }).transform(({ version: { created_at } }) => created_at).nullable().catch(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/crate/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const ReleaseTimestamp = z\n .object({\n version: z.object({\n created_at: MaybeTimestamp,\n }),\n })\n .transform(({ version: { created_at } }) => created_at)\n .nullable()\n .catch(null);\n"],"mappings":";;;;AAGA,MAAa,mBAAmB,EAC7B,OAAO,EACN,SAAS,EAAE,OAAO,EAChB,YAAY,gBACb,CAAC,EACH,CAAC,CACD,WAAW,EAAE,SAAS,EAAE,mBAAmB,WAAW,CACtD,UAAU,CACV,MAAM,KAAK"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/crate/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const ReleaseTimestamp = z\n .object({\n version: z.object({\n created_at: MaybeTimestamp,\n }),\n })\n .transform(({ version: { created_at } }) => created_at)\n .nullable()\n .catch(null);\n"],"mappings":";;;;AAGA,MAAa,mBAAmB,EAC7B,OAAO,EACN,SAAS,EAAE,OAAO,EAChB,YAAY,gBACb,CAAC,EACH,CAAC,CACD,WAAW,EAAE,SAAS,EAAE,mBAAmB,WAAW,CACtD,UAAU,CACV,MAAM,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/custom/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const ReleaseResultZod = z.object({\n releases: z.array(\n z\n .object({\n version: z.string(),\n isDeprecated: z.boolean().optional(),\n releaseTimestamp: MaybeTimestamp,\n sourceUrl: z.string().optional(),\n sourceDirectory: z.string().optional(),\n changelogUrl: z.string().optional(),\n digest: z.string().optional(),\n isStable: z.boolean().optional(),\n })\n .transform((input) => {\n return {\n ...input,\n newDigest: input.digest,\n digest: undefined,\n };\n }),\n ),\n tags: z.record(z.string(), z.string()).optional(),\n sourceUrl: z.string().optional(),\n sourceDirectory: z.string().optional(),\n changelogUrl: z.string().optional(),\n homepage: z.string().optional(),\n});\n"],"mappings":";;;;AAGA,MAAa,mBAAmB,EAAE,OAAO;CACvC,UAAU,EAAE,MACV,EACG,OAAO;EACN,SAAS,EAAE,QAAQ;EACnB,cAAc,EAAE,SAAS,CAAC,UAAU;EACpC,kBAAkB;EAClB,WAAW,EAAE,QAAQ,CAAC,UAAU;EAChC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACtC,cAAc,EAAE,QAAQ,CAAC,UAAU;EACnC,QAAQ,EAAE,QAAQ,CAAC,UAAU;EAC7B,UAAU,EAAE,SAAS,CAAC,UAAU;EACjC,CAAC,CACD,WAAW,UAAU;AACpB,SAAO;GACL,GAAG;GACH,WAAW,MAAM;GACjB,QAAQ;GACT;GACD,CACL;CACD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CACjD,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/custom/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const ReleaseResultZod = z.object({\n releases: z.array(\n z\n .object({\n version: z.string(),\n isDeprecated: z.boolean().optional(),\n releaseTimestamp: MaybeTimestamp,\n sourceUrl: z.string().optional(),\n sourceDirectory: z.string().optional(),\n changelogUrl: z.string().optional(),\n digest: z.string().optional(),\n isStable: z.boolean().optional(),\n })\n .transform((input) => {\n return {\n ...input,\n newDigest: input.digest,\n digest: undefined,\n };\n }),\n ),\n tags: z.record(z.string(), z.string()).optional(),\n sourceUrl: z.string().optional(),\n sourceDirectory: z.string().optional(),\n changelogUrl: z.string().optional(),\n homepage: z.string().optional(),\n});\n"],"mappings":";;;;AAGA,MAAa,mBAAmB,EAAE,OAAO;CACvC,UAAU,EAAE,MACV,EACG,OAAO;EACN,SAAS,EAAE,QAAQ;EACnB,cAAc,EAAE,SAAS,CAAC,UAAU;EACpC,kBAAkB;EAClB,WAAW,EAAE,QAAQ,CAAC,UAAU;EAChC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACtC,cAAc,EAAE,QAAQ,CAAC,UAAU;EACnC,QAAQ,EAAE,QAAQ,CAAC,UAAU;EAC7B,UAAU,EAAE,SAAS,CAAC,UAAU;EACjC,CAAC,CACD,WAAW,UAAU;AACpB,SAAO;GACL,GAAG;GACH,WAAW,MAAM;GACjB,QAAQ;GACT;GACD,CACL;CACD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CACjD,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAChC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LooseArray } from "../../../util/schema-utils/index.js";
|
|
2
2
|
import { MaybeTimestamp } from "../../../util/timestamp.js";
|
|
3
3
|
import { getSourceUrl } from "../../../util/github/url.js";
|
|
4
|
-
import { z } from "zod";
|
|
4
|
+
import { z } from "zod/v3";
|
|
5
5
|
|
|
6
6
|
//#region lib/modules/datasource/deno/schema.ts
|
|
7
7
|
const DenoApiTag = z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":["getGithubSourceUrl"],"sources":["../../../../lib/modules/datasource/deno/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { getSourceUrl as getGithubSourceUrl } from '../../../util/github/url.ts';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\nimport type { Release } from '../types.ts';\n\nexport const DenoApiTag = z.object({\n kind: z.string(),\n value: z.string(),\n});\n\nexport const DenoAPIModuleResponse = z.object({\n tags: LooseArray(DenoApiTag)\n .transform((tags) => {\n const record: Record<string, string> = {};\n for (const { kind, value } of tags) {\n record[kind] = value;\n }\n return record;\n })\n .catch({}),\n versions: z.array(z.string()),\n});\n\nexport const DenoAPIUploadOptions = z.object({\n ref: z.string(),\n type: z.union([z.literal('github'), z.unknown()]),\n repository: z.string(),\n subdir: z.string().optional(),\n});\n\nexport const DenoAPIModuleVersionResponse = z\n .object({\n upload_options: DenoAPIUploadOptions,\n uploaded_at: MaybeTimestamp,\n version: z.string(),\n })\n .transform(\n ({ version, uploaded_at: releaseTimestamp, upload_options }): Release => {\n let sourceUrl: string | undefined = undefined;\n const { type, repository, ref: gitRef } = upload_options;\n if (type === 'github') {\n sourceUrl = getGithubSourceUrl(repository);\n }\n return {\n version,\n gitRef,\n releaseTimestamp,\n sourceUrl,\n };\n },\n );\n"],"mappings":";;;;;;AAMA,MAAa,aAAa,EAAE,OAAO;CACjC,MAAM,EAAE,QAAQ;CAChB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,wBAAwB,EAAE,OAAO;CAC5C,MAAM,WAAW,WAAW,CACzB,WAAW,SAAS;EACnB,MAAM,SAAiC,EAAE;AACzC,OAAK,MAAM,EAAE,MAAM,WAAW,KAC5B,QAAO,QAAQ;AAEjB,SAAO;GACP,CACD,MAAM,EAAE,CAAC;CACZ,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAa,uBAAuB,EAAE,OAAO;CAC3C,KAAK,EAAE,QAAQ;CACf,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;CACjD,YAAY,EAAE,QAAQ;CACtB,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC9B,CAAC;AAEF,MAAa,+BAA+B,EACzC,OAAO;CACN,gBAAgB;CAChB,aAAa;CACb,SAAS,EAAE,QAAQ;CACpB,CAAC,CACD,WACE,EAAE,SAAS,aAAa,kBAAkB,qBAA8B;CACvE,IAAI,YAAgC;CACpC,MAAM,EAAE,MAAM,YAAY,KAAK,WAAW;AAC1C,KAAI,SAAS,SACX,aAAYA,aAAmB,WAAW;AAE5C,QAAO;EACL;EACA;EACA;EACA;EACD;EAEJ"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":["getGithubSourceUrl"],"sources":["../../../../lib/modules/datasource/deno/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { getSourceUrl as getGithubSourceUrl } from '../../../util/github/url.ts';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\nimport type { Release } from '../types.ts';\n\nexport const DenoApiTag = z.object({\n kind: z.string(),\n value: z.string(),\n});\n\nexport const DenoAPIModuleResponse = z.object({\n tags: LooseArray(DenoApiTag)\n .transform((tags) => {\n const record: Record<string, string> = {};\n for (const { kind, value } of tags) {\n record[kind] = value;\n }\n return record;\n })\n .catch({}),\n versions: z.array(z.string()),\n});\n\nexport const DenoAPIUploadOptions = z.object({\n ref: z.string(),\n type: z.union([z.literal('github'), z.unknown()]),\n repository: z.string(),\n subdir: z.string().optional(),\n});\n\nexport const DenoAPIModuleVersionResponse = z\n .object({\n upload_options: DenoAPIUploadOptions,\n uploaded_at: MaybeTimestamp,\n version: z.string(),\n })\n .transform(\n ({ version, uploaded_at: releaseTimestamp, upload_options }): Release => {\n let sourceUrl: string | undefined = undefined;\n const { type, repository, ref: gitRef } = upload_options;\n if (type === 'github') {\n sourceUrl = getGithubSourceUrl(repository);\n }\n return {\n version,\n gitRef,\n releaseTimestamp,\n sourceUrl,\n };\n },\n );\n"],"mappings":";;;;;;AAMA,MAAa,aAAa,EAAE,OAAO;CACjC,MAAM,EAAE,QAAQ;CAChB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,wBAAwB,EAAE,OAAO;CAC5C,MAAM,WAAW,WAAW,CACzB,WAAW,SAAS;EACnB,MAAM,SAAiC,EAAE;AACzC,OAAK,MAAM,EAAE,MAAM,WAAW,KAC5B,QAAO,QAAQ;AAEjB,SAAO;GACP,CACD,MAAM,EAAE,CAAC;CACZ,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAa,uBAAuB,EAAE,OAAO;CAC3C,KAAK,EAAE,QAAQ;CACf,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;CACjD,YAAY,EAAE,QAAQ;CACtB,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC9B,CAAC;AAEF,MAAa,+BAA+B,EACzC,OAAO;CACN,gBAAgB;CAChB,aAAa;CACb,SAAS,EAAE,QAAQ;CACpB,CAAC,CACD,WACE,EAAE,SAAS,aAAa,kBAAkB,qBAA8B;CACvE,IAAI,YAAgC;CACpC,MAAM,EAAE,MAAM,YAAY,KAAK,WAAW;AAC1C,KAAI,SAAS,SACX,aAAYA,aAAmB,WAAW;AAE5C,QAAO;EACL;EACA;EACA;EACA;EACD;EAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/devbox/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const DevboxRelease = z.object({\n version: z.string(),\n last_updated: MaybeTimestamp,\n});\n\nexport const DevboxResponse = z\n .object({\n name: z.string(),\n summary: z.string().optional(),\n homepage_url: z.string().optional(),\n license: z.string().optional(),\n releases: DevboxRelease.array(),\n })\n .transform((response) => ({\n name: response.name,\n homepage: response.homepage_url,\n releases: response.releases.map((release) => ({\n version: release.version,\n releaseTimestamp: release.last_updated,\n })),\n }));\n"],"mappings":";;;;AAGA,MAAa,gBAAgB,EAAE,OAAO;CACpC,SAAS,EAAE,QAAQ;CACnB,cAAc;CACf,CAAC;AAEF,MAAa,iBAAiB,EAC3B,OAAO;CACN,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,UAAU,cAAc,OAAO;CAChC,CAAC,CACD,WAAW,cAAc;CACxB,MAAM,SAAS;CACf,UAAU,SAAS;CACnB,UAAU,SAAS,SAAS,KAAK,aAAa;EAC5C,SAAS,QAAQ;EACjB,kBAAkB,QAAQ;EAC3B,EAAE;CACJ,EAAE"}
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/devbox/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const DevboxRelease = z.object({\n version: z.string(),\n last_updated: MaybeTimestamp,\n});\n\nexport const DevboxResponse = z\n .object({\n name: z.string(),\n summary: z.string().optional(),\n homepage_url: z.string().optional(),\n license: z.string().optional(),\n releases: DevboxRelease.array(),\n })\n .transform((response) => ({\n name: response.name,\n homepage: response.homepage_url,\n releases: response.releases.map((release) => ({\n version: release.version,\n releaseTimestamp: release.last_updated,\n })),\n }));\n"],"mappings":";;;;AAGA,MAAa,gBAAgB,EAAE,OAAO;CACpC,SAAS,EAAE,QAAQ;CACnB,cAAc;CACf,CAAC;AAEF,MAAa,iBAAiB,EAC3B,OAAO;CACN,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,UAAU,cAAc,OAAO;CAChC,CAAC,CACD,WAAW,cAAc;CACxB,MAAM,SAAS;CACf,UAAU,SAAS;CACnB,UAAU,SAAS,SAAS,KAAK,aAAa;EAC5C,SAAS,QAAQ;EACjB,kBAAkB,QAAQ;EAC3B,EAAE;CACJ,EAAE"}
|