@@ -60,7 +60,7 @@ import Numeric.Natural
60import GHC.Exts (IsList (..), Constraint)
60import GHC.Exts (IsList (..), Constraint)
61import GHC.Generics
61import GHC.Generics
62import GHC.TypeLits
62import GHC.TypeLits
63−import URI.ByteString (urlEncodeQuery, urlDecodeQuery)
63+import Network.HTTP.Types.URI (urlEncodeBuilder, urlDecode)
65import Web.Internal.HttpApiData
65import Web.Internal.HttpApiData
@@ -543,7 +543,7 @@ urlEncodeFormStable = urlEncodeParams . sortOn fst . toList
543urlEncodeParams :: [(Text, Text)] -> BSL.ByteString
543urlEncodeParams :: [(Text, Text)] -> BSL.ByteString
544urlEncodeParams = toLazyByteString . mconcat . intersperse (shortByteString "&") . map encodePair
544urlEncodeParams = toLazyByteString . mconcat . intersperse (shortByteString "&") . map encodePair
546− escape = urlEncodeQuery . Text.encodeUtf8
546+ escape = urlEncodeBuilder True . Text.encodeUtf8
548 encodePair (k, "") = escape k
548 encodePair (k, "") = escape k
549 encodePair (k, v) = escape k <> shortByteString "=" <> escape v
549 encodePair (k, v) = escape k <> shortByteString "=" <> escape v
@@ -590,7 +590,7 @@ urlDecodeParams bs = traverse parsePair pairs
591 pairs = map (BSL8.split '=') (BSL8.split '&' bs)
591 pairs = map (BSL8.split '=') (BSL8.split '&' bs)
593− unescape = Text.decodeUtf8With lenientDecode . urlDecodeQuery . BSL.toStrict
593+ unescape = Text.decodeUtf8With lenientDecode . urlDecode True . BSL.toStrict
595 parsePair p =
595 parsePair p =
596 case map unescape p of
596 case map unescape p of