Files
Florian Arens f340b1a9e9 feat(datasource): add elm-package datasource (#41000)
* feat(datasource): add elm-package datasource

* refactor(elm): inline test fixtures

* fix(elm): correct import ordering in test file

* fix(elm): use zod/v3 import to match codebase conventions

* refactor(elm): rename types.ts to schema.ts

Follow project convention of using schema.ts for zod schema files.

* test(elm): add test for invalid JSON response

Use v8 ignore if directive and add test covering the null result
path when the API returns invalid JSON.

* refactor(elm): remove unreachable null check

* test(elm): add test for default registry URL fallback

* refactor(elm): guard against missing registryUrl instead of fallback

* fix(elm): handle ZodError gracefully instead of throwing

* feat(elm): add package cache for elm-package datasource
2026-03-28 13:23:00 +00:00

6 lines
640 B
Markdown

This datasource uses the [Elm Package Registry API](https://package.elm-lang.org) to fetch versions for published Elm packages.
Elm packages use strict semantic versioning. The datasource fetches release timestamps from the registry's per-package releases endpoint.
By design, all Elm packages must be published from GitHub repositories. The package name is the GitHub repository path (e.g., `elm/core` is published from `github.com/elm/core`). This is enforced by the `elm publish` command, which requires packages to be tagged and pushed to GitHub before publishing. Therefore, the source URL is reliably derived from the package name.