packages feed

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 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