diff --git a/registry-index.json b/registry-index.json index 90e4516..8fd7e4a 100644 --- a/registry-index.json +++ b/registry-index.json @@ -1 +1 @@ -{"packages":{"auth":[{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":true},"released":"2026-04-24","tier":"free","description":"Authentication for DAW projects -- API key auth, JWT (no cookies)","requires":{"system":{"openssl":{"min":3.0}}},"version":"0.2.0+bedb8476"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14","tier":"free","description":"Authentication for DAW projects -- API key auth, JWT (no cookies)","requires":{"system":{"openssl":{"min":3}}},"version":"0.1.0+a905842c"}],"tax-calc":[{"supports":{"stapul":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"stapul":true,"steurjan":true,"kaupapi":true,"raidjan":true},"released":"2026-05-01","tier":"free","description":"Decimal-accurate net/gross price calculation for DAW systems","requires":{"system":[]},"version":"0.1.1+ace89389"},{"supports":{"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"steurjan":false},"released":"2026-05-01","tier":"free","description":"One-line description","requires":{"system":[]},"version":"0.1.0+3097a54a"}],"fragjan-check-filehassiblingdir":[{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"released":"2026-05-31","tier":"free","description":"fragjan primitive: check if a file has a sibling directory with the same name","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.1+c7fe8ae0"}],"api":[{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":true},"released":"2026-04-24","tier":"free","description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook","requires":{"system":[]},"version":"0.2.0+f6586377"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14","tier":"free","description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook","requires":{"system":{}},"version":"0.1.0+7d291211"}],"storage-sqlite":[{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"openbookregister":true,"steurjan":true},"released":"2026-04-22","tier":"free","description":"SQLite storage backend","requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"version":"0.2.0+de4d5c96"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"openbookregister":false,"steurjan":false},"released":"2026-04-17","tier":"free","description":"SQLite storage backend","requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"version":"0.1.3+b47cc6aa"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-17","tier":"free","description":"SQLite storage backend","requires":{"system":{"lua-sql-sqlite3":{"min":"0.9.0"}}},"version":"0.1.2+2ea11433"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-17","tier":"free","description":"SQLite storage backend","requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"version":"0.1.1+243bf884"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"1.0.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"openbookregister":false,"steurjan":false},"released":"2026-04-17","tier":"free","description":"SQLite storage backend","requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"version":"0.1.0+65568170"}],"daw-modul-product":[{"supports":{"raidjan":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"raidjan":true,"stapul":true,"redan":true,"steurjan":true,"kaupapi":true},"released":"2026-05-01","tier":"free","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","requires":{"system":[]},"version":"0.1.1+b7154039"}],"fragjan-check-markdown":[{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"released":"2026-05-27","tier":"free","description":"fragjan primitive: extract structured content from Markdown files","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.1+1b35432c"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-24","tier":"free","description":"fragjan primitive: extract structured content from Markdown files","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.0+4906b51e"}],"fragjan-check-pattern":[{"supports":{"fragjan":{"min":"0.1.0"}},"requires":{"system":{"lua":{"min":5.1}}},"released":"2026-05-31","tier":"free","description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":true},"version":"0.1.7+cb860de3"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-27","tier":"free","description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.6+f7bc85d1"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-27","tier":"free","description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.5+a223b94f"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-27","tier":"free","description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.3+d80f1857"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free","description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.2+ef98877a"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free","description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.1+0eaf02b0"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-18","tier":"free","description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.0+b370900b"}],"http-server":[{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":true},"released":"2026-04-22","tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","requires":{"system":{"socket":{"min":3.0}}},"version":"0.2.0+77253d3d"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14","tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","requires":{"system":{"socket":{"min":3}}},"version":"0.1.3+81faed66"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14","tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","requires":{"system":{"socket":{"min":3}}},"version":"0.1.2+eb857c68"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14","tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","requires":{"system":{"lua-socket":{"min":3}}},"version":"0.1.1+c696c6cf"},{"supports":{},"latest":{},"released":"2026-04-14","tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","requires":{"system":{"lua-socket":{"min":3}}},"version":"0.1.0+ca749c8a"},{"supports":{},"latest":{},"released":"2026-04-14","tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","requires":{"system":{"lua-socket":{"min":3}}},"version":"0.1.0+ca749c8a-dirty"}],"fragjan-check-exists":[{"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":true},"released":"2026-05-27","tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.3+981615c3"},{"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"released":"2026-05-27","tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.2+89db1135"},{"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"released":"2026-05-23","tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.1+d6d3ba9a"},{"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.0+6ea950a6"}],"fragjan-check-contains":[{"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":true},"released":"2026-05-27","tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.5+a223b94f"},{"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-27","tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.4+0ba69437"},{"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-27","tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.3+d80f1857"},{"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.2+60af72cd"},{"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.1+b61170f5"},{"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.0+4e20f780"}],"fragjan-check-listvalues":[{"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"released":"2026-05-26","tier":"free","description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"version":"0.1.3+4fda08f2"},{"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":false},"released":"2026-05-26","tier":"free","description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"version":"0.1.2+5a1ea021"},{"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":false},"released":"2026-05-26","tier":"free","description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"version":"0.1.1+2b52665d"}],"fragjan-check-multi-exists":[{"supports":{"fragjan":{"min":"0.2.5"}},"latest":{"fragjan":true},"released":"2026-05-28","tier":"free","description":"Check existence of multiple files or directories (any/all)","requires":{"system":[]},"version":"0.1.1+a617a13b"}],"federation-sync":[{"supports":{"raidjan":{"max":"<2.0.0","min":"0.1.0"},"obr":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"raidjan":true,"obr":true,"steurjan":true,"kaupapi":true,"redan":true},"released":"2026-05-03","tier":"free","description":"Block-based federation sync protocol for DAW instances","requires":{"system":[]},"version":"0.1.0+56f7ba6d"}],"fragjan-check-linecount":[{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"released":"2026-05-27","tier":"free","description":"fragjan primitive: count lines in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.3+0338d557"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free","description":"fragjan primitive: count lines in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.1+880e75e3"},{"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-18","tier":"free","description":"fragjan primitive: count lines in a file","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.0+e89ecf2d"}],"git":[{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":true},"released":"2026-05-24","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.9+4a244af3"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-23","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.8+b1d364d6"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-22","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.7+ce04a3db"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-18","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.6+421b7bc3"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-18","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.5+f1f408ed"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-18","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.4+9d9dc1ba"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.3+8f74be4f"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.2+e9ea50cc"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.1+4b8784fb"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"1.0.0+e69ea947-dirty"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-11","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"0.2.4+20b37df9"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-10","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"0.2.3+9f0c258a"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-10","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"0.2.2+69947086"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-10","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"0.2.1+d72bb814"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-04-18","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2.0}}},"version":"0.2.0+f7281c13"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-04-03","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2}}},"version":"0.1.6+b4f9258c"},{"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"kaupapi":true,"steurjan":false},"released":"2026-03-24","tier":"free","description":"Git VCS adapter for DAW projects","requires":{"system":{"git":{"min":2}}},"version":"0.1.5+6fe653cc"}],"storage-pg":[{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":true},"released":"2026-04-24","tier":"free","description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"postgresql":{"min":17.0},"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}}}},"version":"0.3.0+833cfe38"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-24","tier":"free","description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"postgresql":{"min":17.0},"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}}}},"version":"0.2.0+0531bc3c-dirty"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-13","tier":"free","description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"postgresql":{"min":17},"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}}}},"version":"0.2.0+e6c1a475"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-12","tier":"free","description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"psql":{"min":17},"libpq":{"min":17}}},"version":"0.1.1+cd594238"},{"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-12","tier":"free","description":"PostgreSQL storage backend for DAW projects","requires":{"system":{}},"version":"0.1.0+e9622390-dirty"}],"fragjan-check-linemultipattern":[{"supports":{"fragjan":{"min":"0.2.9"}},"requires":{"system":[]},"released":"2026-05-30","tier":"free","description":"Check if a line contains all given patterns simultaneously (AND semantics)","latest":{"fragjan":true},"version":"0.1.1+64c9de56"},{"supports":{"fragjan":{"min":"0.2.9"}},"latest":{"fragjan":false},"released":"2026-05-30","tier":"free","description":"Check if a line contains all given patterns simultaneously (AND semantics)","requires":{"system":[]},"version":"0.1.1+53fda3ce"}],"fragjan-check-list-values":[{"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"released":"2026-05-26","tier":"free","description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"version":"0.1.0+61e08ab6"}],"fragjan-check-linepattern":[{"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"released":"2026-05-27","tier":"free","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.2+5920794a"},{"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":false},"released":"2026-05-26","tier":"free","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","requires":{"system":{"lua":{"min":5.1}}},"version":"0.1.1+09b9c01b"}],"product":[{"supports":{"raidjan":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"raidjan":true,"stapul":true,"redan":true,"steurjan":true,"kaupapi":true},"released":"2026-05-03","tier":"free","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","requires":{"system":[]},"version":"0.2.0+69bf06a6"},{"supports":{"raidjan":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"raidjan":false,"stapul":false,"redan":false,"steurjan":false,"kaupapi":false},"released":"2026-05-03","tier":"free","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","requires":{"system":[]},"version":"0.1.2+570bdf80"}]}} \ No newline at end of file +{"packages":{"fragjan-check-markdown":[{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":true},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.1+1b35432c","description":"fragjan primitive: extract structured content from Markdown files"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-24","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.0+4906b51e","description":"fragjan primitive: extract structured content from Markdown files"}],"fragjan-check-linemultipattern":[{"requires":{"system":[]},"tier":"free","supports":{"fragjan":{"min":"0.2.9"}},"released":"2026-05-30","latest":{"fragjan":true},"version":"0.1.1+64c9de56","description":"Check if a line contains all given patterns simultaneously (AND semantics)"},{"requires":{"system":[]},"tier":"free","latest":{"fragjan":false},"released":"2026-05-30","supports":{"fragjan":{"min":"0.2.9"}},"version":"0.1.1+53fda3ce","description":"Check if a line contains all given patterns simultaneously (AND semantics)"}],"fragjan-check-filehassiblingdir":[{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":true},"released":"2026-05-31","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.1+c7fe8ae0","description":"fragjan primitive: check if a file has a sibling directory with the same name"}],"git":[{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":true},"released":"2026-05-24","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.9+4a244af3","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-23","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.8+b1d364d6","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-22","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.7+ce04a3db","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-18","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.6+421b7bc3","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-18","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.5+f1f408ed","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-18","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.4+9d9dc1ba","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-16","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.3+8f74be4f","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-16","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.2+e9ea50cc","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-16","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.1+4b8784fb","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-16","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"1.0.0+e69ea947-dirty","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-11","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.4+20b37df9","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-10","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.3+9f0c258a","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-10","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.2+69947086","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-05-10","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.1+d72bb814","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2.0}}},"tier":"free","latest":{"steurjan":false},"released":"2026-04-18","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.0+f7281c13","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2}}},"tier":"free","latest":{"steurjan":false},"released":"2026-04-03","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.6+b4f9258c","description":"Git VCS adapter for DAW projects"},{"requires":{"system":{"git":{"min":2}}},"tier":"free","latest":{"kaupapi":true,"steurjan":false},"released":"2026-03-24","supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.5+6fe653cc","description":"Git VCS adapter for DAW projects"}],"fragjan-check-contains":[{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":true},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.3"}},"version":"0.1.5+a223b94f","description":"fragjan primitive: check if a file contains or does not contain a pattern"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.3"}},"version":"0.1.4+0ba69437","description":"fragjan primitive: check if a file contains or does not contain a pattern"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.3"}},"version":"0.1.3+d80f1857","description":"fragjan primitive: check if a file contains or does not contain a pattern"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-19","supports":{"fragjan":{"min":"0.1.3"}},"version":"0.1.2+60af72cd","description":"fragjan primitive: check if a file contains or does not contain a pattern"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-19","supports":{"fragjan":{"min":"0.1.3"}},"version":"0.1.1+b61170f5","description":"fragjan primitive: check if a file contains or does not contain a pattern"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-19","supports":{"fragjan":{"min":"0.1.3"}},"version":"0.1.0+4e20f780","description":"fragjan primitive: check if a file contains or does not contain a pattern"}],"fragjan-check-linepattern":[{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":true},"released":"2026-05-27","supports":{"fragjan":{"min":"0.2.0"}},"version":"0.1.2+5920794a","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-26","supports":{"fragjan":{"min":"0.2.0"}},"version":"0.1.1+09b9c01b","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion"}],"api":[{"requires":{"system":[]},"tier":"free","latest":{"openbookregister":true},"released":"2026-04-24","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.0+f6586377","description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook"},{"requires":{"system":{}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-14","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.0+7d291211","description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook"}],"storage-pg":[{"requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17.0}}},"tier":"free","latest":{"openbookregister":true},"released":"2026-04-24","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.3.0+833cfe38","description":"PostgreSQL storage backend for DAW projects"},{"requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17.0}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-24","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.0+0531bc3c-dirty","description":"PostgreSQL storage backend for DAW projects"},{"requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-13","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.0+e6c1a475","description":"PostgreSQL storage backend for DAW projects"},{"requires":{"system":{"libpq":{"min":17},"psql":{"min":17}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-12","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.1+cd594238","description":"PostgreSQL storage backend for DAW projects"},{"requires":{"system":{}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-12","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.0+e9622390-dirty","description":"PostgreSQL storage backend for DAW projects"}],"fragjan-check-filecorrelation":[{"requires":{"system":[]},"tier":"free","latest":{"fragjan":true},"released":"2026-05-31","supports":{"fragjan":{"min":"0.2.10"}},"version":"0.1.0+ccc8b03a","description":"Correlate two patterns within a file (if A present, B must/must-not be present)"}],"fragjan-check-linecount":[{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":true},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.3+0338d557","description":"fragjan primitive: count lines in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-19","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.1+880e75e3","description":"fragjan primitive: count lines in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-18","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.0+e89ecf2d","description":"fragjan primitive: count lines in a file"}],"federation-sync":[{"requires":{"system":[]},"tier":"free","latest":{"obr":true,"redan":true,"raidjan":true,"kaupapi":true,"steurjan":true},"released":"2026-05-03","supports":{"obr":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.0+56f7ba6d","description":"Block-based federation sync protocol for DAW instances"}],"tax-calc":[{"requires":{"system":[]},"tier":"free","latest":{"raidjan":true,"kaupapi":true,"stapul":true,"steurjan":true},"released":"2026-05-01","supports":{"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.1+ace89389","description":"Decimal-accurate net/gross price calculation for DAW systems"},{"requires":{"system":[]},"tier":"free","latest":{"steurjan":false},"released":"2026-05-01","supports":{"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"version":"0.1.0+3097a54a","description":"One-line description"}],"product":[{"requires":{"system":[]},"tier":"free","latest":{"stapul":true,"kaupapi":true,"raidjan":true,"redan":true,"steurjan":true},"released":"2026-05-03","supports":{"stapul":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.0+69bf06a6","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion"},{"requires":{"system":[]},"tier":"free","latest":{"stapul":false,"kaupapi":false,"raidjan":false,"redan":false,"steurjan":false},"released":"2026-05-03","supports":{"stapul":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.2+570bdf80","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion"}],"fragjan-check-listvalues":[{"requires":{"system":[]},"tier":"free","latest":{"fragjan":true},"released":"2026-05-26","supports":{"fragjan":{"min":"0.2.0"}},"version":"0.1.3+4fda08f2","description":"Validate table literal values against allowed or forbidden list"},{"requires":{"system":[]},"tier":"free","latest":{"fragjan":false},"released":"2026-05-26","supports":{"fragjan":{"min":"0.2.0"}},"version":"0.1.2+5a1ea021","description":"Validate table literal values against allowed or forbidden list"},{"requires":{"system":[]},"tier":"free","latest":{"fragjan":false},"released":"2026-05-26","supports":{"fragjan":{"min":"0.2.0"}},"version":"0.1.1+2b52665d","description":"Validate table literal values against allowed or forbidden list"}],"http-server":[{"requires":{"system":{"socket":{"min":3.0}}},"tier":"free","latest":{"openbookregister":true},"released":"2026-04-22","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.0+77253d3d","description":"Generic TCP-based HTTP server with URL param routing and static file serving"},{"requires":{"system":{"socket":{"min":3}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-14","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.3+81faed66","description":"Generic TCP-based HTTP server with URL param routing and static file serving"},{"requires":{"system":{"socket":{"min":3}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-14","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.2+eb857c68","description":"Generic TCP-based HTTP server with URL param routing and static file serving"},{"requires":{"system":{"lua-socket":{"min":3}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-14","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.1+c696c6cf","description":"Generic TCP-based HTTP server with URL param routing and static file serving"},{"requires":{"system":{"lua-socket":{"min":3}}},"tier":"free","latest":{},"released":"2026-04-14","supports":{},"version":"0.1.0+ca749c8a","description":"Generic TCP-based HTTP server with URL param routing and static file serving"},{"requires":{"system":{"lua-socket":{"min":3}}},"tier":"free","latest":{},"released":"2026-04-14","supports":{},"version":"0.1.0+ca749c8a-dirty","description":"Generic TCP-based HTTP server with URL param routing and static file serving"}],"fragjan-check-pattern":[{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","supports":{"fragjan":{"min":"0.1.0"}},"released":"2026-05-31","latest":{"fragjan":true},"version":"0.1.7+cb860de3","description":"fragjan primitive: search for a pattern in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.6+f7bc85d1","description":"fragjan primitive: search for a pattern in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.5+a223b94f","description":"fragjan primitive: search for a pattern in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.3+d80f1857","description":"fragjan primitive: search for a pattern in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-19","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.2+ef98877a","description":"fragjan primitive: search for a pattern in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-19","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.1+0eaf02b0","description":"fragjan primitive: search for a pattern in a file"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-18","supports":{"fragjan":{"min":"0.1.0"}},"version":"0.1.0+b370900b","description":"fragjan primitive: search for a pattern in a file"}],"fragjan-check-exists":[{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":true},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.2"}},"version":"0.1.3+981615c3","description":"fragjan primitive: check if a file or directory exists in a project"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-27","supports":{"fragjan":{"min":"0.1.2"}},"version":"0.1.2+89db1135","description":"fragjan primitive: check if a file or directory exists in a project"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-23","supports":{"fragjan":{"min":"0.1.2"}},"version":"0.1.1+d6d3ba9a","description":"fragjan primitive: check if a file or directory exists in a project"},{"requires":{"system":{"lua":{"min":5.1}}},"tier":"free","latest":{"fragjan":false},"released":"2026-05-19","supports":{"fragjan":{"min":"0.1.2"}},"version":"0.1.0+6ea950a6","description":"fragjan primitive: check if a file or directory exists in a project"}],"auth":[{"requires":{"system":{"openssl":{"min":3.0}}},"tier":"free","latest":{"openbookregister":true},"released":"2026-04-24","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.2.0+bedb8476","description":"Authentication for DAW projects -- API key auth, JWT (no cookies)"},{"requires":{"system":{"openssl":{"min":3}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-14","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.0+a905842c","description":"Authentication for DAW projects -- API key auth, JWT (no cookies)"}],"fragjan-check-multi-exists":[{"requires":{"system":[]},"tier":"free","latest":{"fragjan":true},"released":"2026-05-28","supports":{"fragjan":{"min":"0.2.5"}},"version":"0.1.1+a617a13b","description":"Check existence of multiple files or directories (any/all)"}],"storage-sqlite":[{"requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"tier":"free","latest":{"openbookregister":true,"steurjan":true},"released":"2026-04-22","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"version":"0.2.0+de4d5c96","description":"SQLite storage backend"},{"requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"tier":"free","latest":{"openbookregister":false,"steurjan":false},"released":"2026-04-17","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"version":"0.1.3+b47cc6aa","description":"SQLite storage backend"},{"requires":{"system":{"lua-sql-sqlite3":{"min":"0.9.0"}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-17","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.2+2ea11433","description":"SQLite storage backend"},{"requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"tier":"free","latest":{"openbookregister":false},"released":"2026-04-17","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.1+243bf884","description":"SQLite storage backend"},{"requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"tier":"free","latest":{"openbookregister":false,"steurjan":false},"released":"2026-04-17","supports":{"openbookregister":{"max":"<2.0.0","min":"1.0.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"version":"0.1.0+65568170","description":"SQLite storage backend"}],"daw-modul-product":[{"requires":{"system":[]},"tier":"free","latest":{"stapul":true,"kaupapi":true,"raidjan":true,"redan":true,"steurjan":true},"released":"2026-05-01","supports":{"stapul":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"version":"0.1.1+b7154039","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion"}],"fragjan-check-list-values":[{"requires":{"system":[]},"tier":"free","latest":{"fragjan":true},"released":"2026-05-26","supports":{"fragjan":{"min":"0.2.0"}},"version":"0.1.0+61e08ab6","description":"Validate table literal values against allowed or forbidden list"}]}} \ No newline at end of file diff --git a/registry-index.json.minisig b/registry-index.json.minisig index 062835f..cc318c1 100644 --- a/registry-index.json.minisig +++ b/registry-index.json.minisig @@ -1,4 +1,4 @@ untrusted comment: signature from minisign secret key -RUQBsYbloFAfPgjShwoKmSHwInZtCcSKtJGywi7PuVyIP2qh0AGlTTI+lnBfjQyKjkTC2U3W52UHWrjr/6zoWLO5vORMMk7PaQg= -trusted comment: timestamp:1780236274 file:registry-index.json hashed -G11O4qE3ezryfgGAfJuOy9c/KSElZ5+iu6EfzUbhn1CDvXopl2lLhTGIenvsJQa0VVJpitCxVQL+K+EHJGsdBg== +RUQBsYbloFAfPp5ZfQDZNIzqqRXwDmCiNYd/JaU/rMLu3J+nuEchQOS8VGS7/Ny0KSO4q3vu2VHu4IDVvX5VyM02PbPeNVt0nQQ= +trusted comment: timestamp:1780242165 file:registry-index.json hashed +3ArX5ylZ2y6h/nYg42fPcXB9JP2eNYWkUscuYBGQNvGGwrLAynctW/7cJefmSKqVzZWVyyAxOveuziCDCHj4CQ==