releaseLexicon
The codes.tcm.release lexicon.
export const releaseLexicon = { lexicon: 1, id: "codes.tcm.release", description: "A release of a tcm package, announced on the AT Protocol by its author.", defs: { main: { type: "record", description: "A release of a tcm package, announced by its author: the namespace hash a version is, and tcm servers it can be fetched from. Its key is <package>:<version> (with any other character as ~), so a version is one record.", key: "any", record: { type: "object", required: [ "package", "version", "namespace", "entry", "hashFormat", "notes", "sources", "createdAt", ], properties: { package: { type: "string", minLength: 1, maxLength: 214, description: "The package's name, as its manifest gives it: an npm package name.", }, version: { type: "string", minLength: 5, maxLength: 64, description: "The version: major.minor.patch, semver.", }, namespace: { type: "string", minLength: 8, maxLength: 128, description: "The package's namespace hash, as released: what `tcm lib add` mounts.", }, entry: { type: "string", minLength: 8, maxLength: 128, description: "The hash of the history entry the release names.", }, hashFormat: { type: "integer", minimum: 1, description: "The hash format the hashes are in (tcm's IR version).", }, notes: { type: "string", maxLength: 100000, description: "The release notes, as markdown.", }, sources: { type: "array", maxLength: 16, items: { type: "string", format: "uri", maxLength: 2048, description: "A tcm server's URL (http or https), as `tcm serve` serves it.", }, description: "tcm servers to fetch it from, in order. What they send is re-hashed, so they need no trust.", }, createdAt: { type: "string", format: "datetime", description: "When the release was made.", }, }, }, }, }, } as const