{"packages":{"fragjan-check-list-values":[{"version":"0.1.0+61e08ab6","supports":{"fragjan":{"min":"0.2.0"}},"description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"latest":{"fragjan":true},"released":"2026-05-26","tier":"free"}],"fragjan-check-pattern":[{"version":"0.1.3+d80f1857","supports":{"fragjan":{"min":"0.1.0"}},"description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":true},"released":"2026-05-27","tier":"free"},{"version":"0.1.2+ef98877a","supports":{"fragjan":{"min":"0.1.0"}},"description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free"},{"version":"0.1.1+0eaf02b0","supports":{"fragjan":{"min":"0.1.0"}},"description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free"},{"version":"0.1.0+b370900b","supports":{"fragjan":{"min":"0.1.0"}},"description":"fragjan primitive: search for a pattern in a file","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":false},"released":"2026-05-18","tier":"free"}],"fragjan-check-contains":[{"version":"0.1.2+60af72cd","supports":{"fragjan":{"min":"0.1.3"}},"description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":true},"released":"2026-05-19","tier":"free"},{"version":"0.1.1+b61170f5","supports":{"fragjan":{"min":"0.1.3"}},"description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free"},{"version":"0.1.0+4e20f780","supports":{"fragjan":{"min":"0.1.3"}},"description":"fragjan primitive: check if a file contains or does not contain a pattern","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free"}],"product":[{"version":"0.2.0+69bf06a6","supports":{"raidjan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"redan":{"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"}},"description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","requires":{"system":[]},"latest":{"raidjan":true,"steurjan":true,"redan":true,"kaupapi":true,"stapul":true},"released":"2026-05-03","tier":"free"},{"version":"0.1.2+570bdf80","supports":{"raidjan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"redan":{"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"}},"description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","requires":{"system":[]},"latest":{"raidjan":false,"steurjan":false,"redan":false,"kaupapi":false,"stapul":false},"released":"2026-05-03","tier":"free"}],"fragjan-check-exists":[{"version":"0.1.1+d6d3ba9a","supports":{"fragjan":{"min":"0.1.2"}},"description":"fragjan primitive: check if a file or directory exists in a project","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":true},"released":"2026-05-23","tier":"free"},{"version":"0.1.0+6ea950a6","supports":{"fragjan":{"min":"0.1.2"}},"description":"fragjan primitive: check if a file or directory exists in a project","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":false},"released":"2026-05-19","tier":"free"}],"fragjan-check-markdown":[{"version":"0.1.0+4906b51e","supports":{"fragjan":{"min":"0.1.0"}},"description":"fragjan primitive: extract structured content from Markdown files","requires":{"system":{"lua":{"min":5.1}}},"latest":{"fragjan":true},"released":"2026-05-24","tier":"free"}],"http-server":[{"version":"0.2.0+77253d3d","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"description":"GenericTCP-basedHTTPserverwithURLparamrou