pms-domain-model 0.0.9.0 → 0.1.0.0
raw patch · 4 files changed
+31/−23 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- PMS.Domain.Model.DS.Utility: invalidChars :: [Text]
- PMS.Domain.Model.DS.Utility: invalidCmds :: [String]
+ PMS.Domain.Model.DM.Type: [_invalidCharsDomainData] :: DomainData -> [String]
+ PMS.Domain.Model.DM.Type: [_invalidCmdsDomainData] :: DomainData -> [String]
+ PMS.Domain.Model.DM.Type: invalidCharsDomainData :: Lens' DomainData [String]
+ PMS.Domain.Model.DM.Type: invalidCmdsDomainData :: Lens' DomainData [String]
- PMS.Domain.Model.DM.Type: DomainData :: Maybe String -> LogLevel -> String -> String -> String -> TQueue McpRequest -> TQueue McpResponse -> TQueue McpNotification -> TQueue Command -> TQueue CmdRunCommand -> TQueue WatchCommand -> TQueue ProcSpawnCommand -> TQueue SocketCommand -> TQueue SerialCommand -> [String] -> DomainData
+ PMS.Domain.Model.DM.Type: DomainData :: Maybe String -> LogLevel -> String -> String -> String -> TQueue McpRequest -> TQueue McpResponse -> TQueue McpNotification -> TQueue Command -> TQueue CmdRunCommand -> TQueue WatchCommand -> TQueue ProcSpawnCommand -> TQueue SocketCommand -> TQueue SerialCommand -> [String] -> [String] -> [String] -> DomainData
- PMS.Domain.Model.DS.Utility: validateArg :: String -> IO String
+ PMS.Domain.Model.DS.Utility: validateArg :: [String] -> String -> IO String
- PMS.Domain.Model.DS.Utility: validateArgs :: [String] -> IO [String]
+ PMS.Domain.Model.DS.Utility: validateArgs :: [String] -> [String] -> IO [String]
- PMS.Domain.Model.DS.Utility: validateCommand :: String -> IO String
+ PMS.Domain.Model.DS.Utility: validateCommand :: [String] -> [String] -> String -> IO String
- PMS.Domain.Model.DS.Utility: validateMessage :: String -> IO String
+ PMS.Domain.Model.DS.Utility: validateMessage :: [String] -> [String] -> String -> IO String
Files
- CHANGELOG.md +4/−0
- pms-domain-model.cabal +1/−1
- src/PMS/Domain/Model/DM/Type.hs +4/−0
- src/PMS/Domain/Model/DS/Utility.hs +22/−22
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for pms-domain-model +## 0.1.0.0 -- 2025-09-07++* Support invalidChars configs.+ ## 0.0.9.0 -- 2025-08-17 * Fixed proc-message.
pms-domain-model.cabal view
@@ -20,7 +20,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.0.9.0+version: 0.1.0.0 -- A short (one-line) description of the package. synopsis: pms-domain-model
src/PMS/Domain/Model/DM/Type.hs view
@@ -1464,6 +1464,8 @@ , _socketQueueDomainData :: TQueue SocketCommand , _serialQueueDomainData :: TQueue SerialCommand , _promptsDomainData :: [String]+ , _invalidCharsDomainData :: [String]+ , _invalidCmdsDomainData :: [String] } makeLenses ''DomainData@@ -1504,6 +1506,8 @@ , _socketQueueDomainData = socketQ , _serialQueueDomainData = serialQ , _promptsDomainData = def+ , _invalidCharsDomainData = def+ , _invalidCmdsDomainData = def } -- |
src/PMS/Domain/Model/DS/Utility.hs view
@@ -79,38 +79,38 @@ -- | -- [ ";", "&&", "|", "$", "`", "<", ">", "\\", "\"", "..", "/"] ---invalidChars :: [T.Text]-invalidChars = [ "&&", "||", "|", "..", "reboot", "shutdown", "restart", "kill"]+-- invalidChars :: [String]+-- invalidChars = [ "&&", "||", "..", "reboot", "shutdown", "restart", "kill"] -- | ---invalidCmds :: [String]-invalidCmds = [- "del", "erase", "rd", "rmdir", "format"- , "shutdown", "restart", "taskkill"- , "rm", "mv", "dd", "chmod", "chown"- , "reboot", "kill", "nc", "sudo", "su"- ]+-- invalidCmds :: [String]+-- invalidCmds = [+-- "del", "erase", "rd", "rmdir", "format"+-- , "shutdown", "restart", "taskkill"+-- , "rm", "mv", "dd", "chmod", "chown"+-- , "reboot", "kill", "nc", "sudo", "su"+-- ] -- | ---validateMessage :: String -> IO String-validateMessage cmd = case words cmd of+validateMessage :: [String] -> [String] -> String -> IO String+validateMessage invalidChars invalidCmds cmd = case words cmd of [] -> return cmd (c : args) -> do- _ <- validateCommand c- _ <- validateArgs args+ _ <- validateCommand invalidChars invalidCmds c+ _ <- validateArgs invalidChars args return cmd -- | ---validateCommand :: String -> IO String-validateCommand cmd = do+validateCommand :: [String] -> [String] -> String -> IO String+validateCommand invalidChars invalidCmds cmd = do let tcmd = T.pack cmd mapM_ (\seqStr ->- when (seqStr `T.isInfixOf` tcmd) $- E.throwString $ "Command contains forbidden sequence: " ++ T.unpack seqStr+ when (T.pack seqStr `T.isInfixOf` tcmd) $+ E.throwString $ "Command contains forbidden sequence: " ++ seqStr ) invalidChars when (cmd `elem` invalidCmds) $@@ -127,15 +127,15 @@ -- | ---validateArgs :: [String] -> IO [String]-validateArgs = mapM validateArg+validateArgs :: [String] -> [String] -> IO [String]+validateArgs invalidChars = mapM (validateArg invalidChars) -- | ---validateArg :: String -> IO String-validateArg arg = do+validateArg :: [String] -> String -> IO String+validateArg invalidChars arg = do let tArg = T.pack arg- when (any (`T.isInfixOf` tArg) invalidChars) $+ when (any (\s -> T.pack s `T.isInfixOf` tArg) invalidChars) $ E.throwString $ "Argument contains forbidden sequences: " ++ arg return arg