diff --git a/versions.lua b/versions.lua new file mode 100644 index 0000000..3dce55d --- /dev/null +++ b/versions.lua @@ -0,0 +1,36 @@ +-- versions.lua +-- Modul zur Versionspruefung gemaess LMCP-Vertrag + +local M = {} + +M.SUPPORTED = {"2025-06-18"} + +--- Prueft, ob eine Version unterstuetzt wird. +-- @param version Die zu pruefende Version (String oder nil) +-- @return boolean true wenn unterstuetzt, sonst false +-- @return table|nil Fehlerdetails bei Nichtunterstuetzung +function M.check(version) + -- (a) version == nil oder "" -> true, nil + if version == nil or version == "" then + return true, nil + end + + -- (b) exakter Treffer in M.SUPPORTED -> true, nil + for _, supported_version in ipairs(M.SUPPORTED) do + if version == supported_version then + return true, nil + end + end + + -- (c) alles andere -> false, { code = -32022, data = { supported = M.SUPPORTED } } + return false, { + code = -32022, + data = { + supported = M.SUPPORTED + } + } +end + +-- Keine neuen Globalen, keine Seiteneffekte, M.SUPPORTED wird nicht geaendert + +return M