;4?P      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNONone &6:=BHKM)CSafeActions are actions that need to be protected from csrf attacks,%Configuration for the session manager2jYou can feed Spock with either a connection pool, or instructions on how to build a connection pool. See 66MThe ConnBuilder instructs Spock how to create or close a database connection.;fIf Spock should take care of connection pooling, you need to configure it depending on what you need.@{The SpockAction is the monad of all route-actions. You have access to the database, session and state of your application.A-Spock is supercharged Scotty, that's why the A_ is built on the ScottyT monad. Insive the SpockM monad, you may define routes and middleware.CPQRSTUVWXYZ[\]^_(`abcdefghi)*+jklmnop,-./0123456789:;<=>?@Aqrstuvwx>PQRSTUVWXYZ[\]^_(`abcdefghi)*+jklmnop,-./0123456789:;<=>?@AqrsPQRSTUVWXYZ[\]^_(`abcdefghi)*+jklmnpo,-./0125436789:;<=>?@AqutrsvwxNoneB?Read a cookie previously set in the users browser for your siteC1Set a cookie living for a given number of secondsD%Set a cookie living until a specific yBzCD{BzCD{BzCD{None24=BKFGive you access to a database connectin from the connection pool. The connection is released back to the pool once the function terminates.GRRead the application's state. If you wish to have mutable state, you could use a TVar from the STM packge.|Get the session managerHRead the heart of Spock. This is useful if you want to construct your own monads that work with runQuery and getState using "runSpockIO"IWRun an action inside of Spocks core monad. This allows you to use runQuery and getStateE}~FG|HI E}~FG|HI E}~FG|HINoneHMJnWire up a safe action: Safe actions are actions that are protected from csrf attacks. Here's a usage example: newtype DeleteUser = DeleteUser Int deriving (Hashable, Typeable, Eq) instance SafeAction DeleteUser where runSafeAction (DeleteUser i) = do runQuery $ deleteUserFromDb i redirect "/user-list" get "/user-details/:userId" $ do userId <- param "userId" deleteUrl <- safeActionPath (DeleteUser userId) html $ TL.concat [ "Click <a href='", TL.fromStrict deleteUrl, "'>here</a> to delete user!" ]CNote that safeActions currently only support GET and POST requests.JJJNone$03HMPQRSTUVWYZ[\]^_None$HMKRun a spock application using the warp server, a given db storageLayer and an initial state. Spock works with database libraries that already implement connection pooling and with those that don't come with it out of the box. For more see the 2 type.LWrite to the current session. Note that all data is stored on the server. The user only reciedes a sessionId to be identified.MModify the stored sessionNRead the stored sessionO8Same as "param", but the target type needs to implement  PathPieceKLMNOP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPKA@25436789:;<=>?EFG,-./01NLMCDB)*J  " !#&$%'OHI(+KLMNO      !"#$%&'()*+,-./0123456789::;<=>?@ABCCDEFGGHIJKLMNOPQRSTUVWXYZ[[\]^_`abccdefgh6ijkklmnno9pqrstuvwxyz{|}~ Spock-0.4.3.2 Web.SpockWeb.Spock.TypesWeb.Spock.CookieWeb.Spock.MonadWeb.Spock.SafeActionsWeb.Spock.SessionManagerhttp-types-0.8.6Network.HTTP.Types.MethodGETPOSTHEADPUTDELETETRACECONNECTOPTIONSPATCH StdMethod scotty-0.7.1Web.Scotty.Trans middlewareWeb.Scotty.RouteaddroutenotFoundmatchAnypatchdeleteputpostgetWeb.Scotty.Actionrawsourcejsonfilehtmltext setHeader addHeaderstatusparamsparamjsonDatabody reqHeaderfilesrequestredirectrescuenextraiseWeb.Scotty.Types RoutePattern WebStateM SafeAction runSafeActionWebState SessionCfg sc_cookieName sc_sessionTTLsc_sessionIdEntropysc_emptySession PoolOrConnPCConn PCConduitPoolPCPool ConnBuilder cb_createConncb_destroyConncb_poolConfigurationPoolCfg pc_stripespc_resPerStripepc_keepOpenTime SpockActionSpockM getCookie setCookie setCookie'HasSpockrunQuerygetState getSpockHeart runSpockIOsafeActionPathspock writeSession modifySession readSessionparamPathPieceSessionManagersm_readSessionsm_writeSessionsm_modifySession sm_middlewaresm_addSafeActionsm_lookupSafeAction UserSessionsSessionsess_idsess_validUntil sess_datasess_safeActions SessionId runWebStateMSafeActionHashSafeActionStore sas_forward sas_reversePackedSafeActionunpackSafeAction web_dbConnweb_sessionMgr web_stateConnectionPool ConduitPoolDataPool SpockErrorWStMunWStMTFCo:R:StMWebStateMa$fMonadBaseControlIOWebStateM$fMonadBaseIOWebStateM$fEqPackedSafeAction$fHashablePackedSafeAction time-1.4.2Data.Time.Clock.UTCUTCTimegetCookieFromReq renderCookie getSessMgr SpockConn SpockState SpockSessionwebM runQueryImpl getStateImplgetSessMgrImpl$fParsableUTCTime$fParsableByteString$fHasSpockWebStateM $fHasSpockthookSafeActionscreateSessionManagermodifySessionBasereadSessionBaseaddSafeActionImpllookupSafeActionImplreadSessionImplwriteSessionImplmodifySessionImplsessionMiddlewarenewSessionImplloadSessionImpldeleteSessionImpl createSession randomHash