artisan-build/crate-contracts

The thin, versioned package contract shared between crate-client and crate-server.

Maintainers

Package info

github.com/artisan-build/crate-contracts

pkg:composer/artisan-build/crate-contracts

Transparency log

Statistics

Installs: 0

Dependents: 2

Suggesters: 0

Stars: 0

v0.1.0 2026-07-08 10:38 UTC

This package is auto-updated.

Last update: 2026-07-08 12:17:45 UTC


README

Framework-free value objects shared by Crate's client and server packages.

This package keeps the wire shapes stable without making either side depend on the other implementation package.

DTOs

  • ArtisanBuild\CrateContracts\ServedRepo: name, url, type, and status for a repository served by Crate.
  • ArtisanBuild\CrateContracts\Credential: name, one-time plaintext, and nullable expires_at for credential issue responses.

Both DTOs support:

  • make(...)
  • toArray()
  • fromArray(...)
  • toJson()
  • fromJson(...)

Invalid payloads throw package exceptions instead of silently accepting malformed data.

Enums

  • RepoStatus: pending, building, active, failed, disabled.
  • BuildStatus: queued, running, succeeded, failed.
  • RepoType: vcs, git, path.

Compatibility

Contracts are additive within a major version. Existing fields are not removed or repurposed inside the same major line, so client and server releases can round-trip known payloads safely.