-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.eslintcache
1 lines (1 loc) · 23 KB
/
.eslintcache
1
[{"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/index.js":"1","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/App.js":"2","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/reportWebVitals.js":"3","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/ListScreen.js":"4","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/DiscogsListContext.js":"5","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Count.js":"6","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Detail.js":"7","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/BottomNav.js":"8","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/TopBar.js":"9","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Spinner.js":"10","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/SignUp.js":"11","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Login.js":"12","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/firebase.js":"13","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/config.js":"14","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/PrivateRoute.js":"15","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Card.js":"16","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/AuthContex.js":"17","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/ThemeContext.js":"18","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/MyCssBaseline.js":"19","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/MyFavList.js":"20","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/ChatContext.js":"21","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Chatroom.js":"22"},{"size":454,"mtime":1613891343483,"results":"23","hashOfConfig":"24"},{"size":2376,"mtime":1614780560448,"results":"25","hashOfConfig":"24"},{"size":362,"mtime":1610179545532,"results":"26","hashOfConfig":"24"},{"size":1371,"mtime":1613983630920,"results":"27","hashOfConfig":"24"},{"size":1378,"mtime":1613891673456,"results":"28","hashOfConfig":"24"},{"size":641,"mtime":1613987294539,"results":"29","hashOfConfig":"24"},{"size":2025,"mtime":1613747618238,"results":"30","hashOfConfig":"24"},{"size":1776,"mtime":1613746837782,"results":"31","hashOfConfig":"24"},{"size":9048,"mtime":1614780537559,"results":"32","hashOfConfig":"24"},{"size":470,"mtime":1611761128431,"results":"33","hashOfConfig":"24"},{"size":4180,"mtime":1613891217993,"results":"34","hashOfConfig":"24"},{"size":3328,"mtime":1613890923508,"results":"35","hashOfConfig":"24"},{"size":231,"mtime":1612352638599,"results":"36","hashOfConfig":"24"},{"size":345,"mtime":1613887177466,"results":"37","hashOfConfig":"24"},{"size":506,"mtime":1612337558812,"results":"38","hashOfConfig":"24"},{"size":6952,"mtime":1614780515274,"results":"39","hashOfConfig":"24"},{"size":4903,"mtime":1613911164650,"results":"40","hashOfConfig":"24"},{"size":1818,"mtime":1613910930862,"results":"41","hashOfConfig":"24"},{"size":639,"mtime":1613423472123,"results":"42","hashOfConfig":"24"},{"size":910,"mtime":1613986934769,"results":"43","hashOfConfig":"24"},{"size":1626,"mtime":1613890643330,"results":"44","hashOfConfig":"24"},{"size":1738,"mtime":1613747051993,"results":"45","hashOfConfig":"24"},{"filePath":"46","messages":"47","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},"1xy2419",{"filePath":"49","messages":"50","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"51","messages":"52","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"53"},{"filePath":"54","messages":"55","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"56","usedDeprecatedRules":"48"},{"filePath":"57","messages":"58","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"59","usedDeprecatedRules":"48"},{"filePath":"60","messages":"61","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"66","messages":"67","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"70","messages":"71","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"74","messages":"75","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"76","messages":"77","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"78","messages":"79","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"80"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"83","messages":"84","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"85","usedDeprecatedRules":"48"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"88","messages":"89","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"48"},{"filePath":"90","messages":"91","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"92","usedDeprecatedRules":"48"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"95","usedDeprecatedRules":"48"},{"filePath":"96","messages":"97","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"98","usedDeprecatedRules":"48"},"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/index.js",[],["99","100"],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/App.js",["101"],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/reportWebVitals.js",[],["102","103"],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/ListScreen.js",["104"],"import React, { useContext } from \"react\";\nimport \"fontsource-roboto\";\nimport Cards from \"./Card\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Box from \"@material-ui/core/Box\";\nimport { DiscogsListContext } from \"../context/DiscogsListContext\";\nimport Spinner from \"./Spinner\";\n// import { makeStyles } from \"@material-ui/core/styles\";\nimport Container from \"@material-ui/core/Container\";\n\n/* const useStyles = makeStyles((theme) => ({\n root: {\n \"& .MuiContainer-maxWidthLg\": {\n maxWidth: \"100%\",\n },\n },\n})) */\n\nfunction ListScreen() {\n // const classes = useStyles();\n const { results, loading, type } = useContext(DiscogsListContext);\n\n const newResult = results.filter((result) => {\n return result.type === type;\n });\n\n const style = {\n marginTop: \"10px\",\n display: \"flex\",\n // margin: \"auto\",\n };\n\n return (\n // <Box ml={2} pt={1}>\n <Container component=\"div\" maxWidth=\"lg\" align=\"center\">\n <Grid\n container\n style={style}\n justify=\"center\"\n alignItems=\"center\"\n /* alignItems=\"flex-start\" */\n spacing={4}\n >\n {loading ? (\n <Spinner />\n ) : (\n newResult.map((result) => {\n return <Cards key={result.id} result={result} />;\n })\n )}\n </Grid>\n </Container>\n // </Box>\n );\n}\n\nexport default ListScreen;\n","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/DiscogsListContext.js",["105"],"import React, { useState, createContext, useEffect } from \"react\";\n\nexport const DiscogsListContext = createContext();\n\nexport const DiscogsProvider = (props) => {\n const [item, setItem] = useState([]);\n const [results, setResults] = useState([]);\n const [pagination, setPagination] = useState({});\n const [loading, setLoading] = useState(false);\n const [type, setType] = useState(\"artist\");\n\n useEffect(() => {\n fetchData(\"\");\n }, []);\n\n const fetchData = async (search) => {\n try {\n setLoading(true);\n const response = await fetch(\n `https://api.discogs.com//database/search?q=${search}&key=${process.env.REACT_APP_API_KEY}&secret=${process.env.REACT_APP_API_SECRET}`\n );\n const data = await response.json();\n setLoading(false);\n const pagination = data.pagination;\n // console.log(\"p\", pagination);\n const results = data.results;\n // console.log(\"resultsperpage\", results);\n\n setResults(results);\n setPagination(pagination);\n setItem(item);\n } catch (err) {\n alert(err);\n }\n };\n\n const value = {\n results,\n setResults,\n item,\n setItem,\n pagination,\n setPagination,\n fetchData,\n loading,\n setLoading,\n type,\n setType,\n };\n\n return (\n <DiscogsListContext.Provider value={value}>\n {props.children}\n </DiscogsListContext.Provider>\n );\n};\n","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Count.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Detail.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/BottomNav.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/TopBar.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Spinner.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/SignUp.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Login.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/firebase.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/config.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/PrivateRoute.js",[],["106","107"],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Card.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/AuthContex.js",["108"],"import React, { useState, createContext, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport app from \"../components/firebase\";\n\nconst initContext = {\n user: null,\n signUp: () => {\n throw new Error(\"login() not implemented\");\n },\n logIn: () => {\n throw new Error(\"register() not implemented\");\n },\n addFavorite: () => {\n throw new Error(\"addToFavorite() not implemented\");\n },\n};\n\nexport const AuthContext = createContext(initContext);\n\nexport const AuthProvider = ({ children }) => {\n const [user, setUser] = useState(null);\n const [loggedIn, setLoggedIn] = useState(false);\n const [favList, setFavList] = useState([]);\n const history = useHistory();\n const db = app.firestore();\n // const [trigerAdd, setTrigerAdd] = useState(false);\n\n useEffect(() => {\n app.auth().onAuthStateChanged((user) => {\n if (user) {\n setUser(user);\n // console.log(\"user\", user);\n setLoggedIn(true);\n getFavorites();\n }\n });\n }, []);\n\n const signUp = ({ email, password, username }) => {\n app\n .auth()\n .createUserWithEmailAndPassword(email, password)\n .then((userCredential) => {\n // Signed in\n let user = userCredential.user;\n console.log(\"user\", user);\n // alert(\"User sign up successfully!\");\n\n user\n .updateProfile({\n displayName: username,\n photoURL: \"https://example.com/jane-q-user/profile.jpg\",\n })\n .then(function () {\n setUser(user);\n // setUser(user);\n setLoggedIn(true);\n })\n .catch(function (error) {});\n\n db.collection(\"users\")\n .doc(user.uid)\n .set({\n username,\n favorites: [],\n })\n .then(() => {\n console.log(\"User sign up successfully!\");\n })\n .catch((error) => {\n console.error(\"Error when writing user document\", error);\n });\n })\n .catch((error) => {\n const errorCode = error.code;\n const errorMessage = error.message;\n console.log(errorCode);\n console.log(errorMessage);\n alert(\"Error creating user...\");\n });\n };\n\n const logIn = async ({ email, password }) => {\n app\n .auth()\n .signInWithEmailAndPassword(email, password)\n .then((userCredential) => {\n // Signed in\n const user = userCredential.user;\n console.log(\"user\", user);\n setUser(user);\n setLoggedIn(true);\n })\n .catch((error) => {\n const errorCode = error.code;\n const errorMessage = error.message;\n console.log(errorCode);\n console.log(errorMessage);\n alert(\"There is an error when logging\");\n });\n };\n\n const addFavorite = (favorite) => {\n app.auth().onAuthStateChanged((user) => {\n if (user) {\n const userRef = db.collection(\"users\").doc(user.uid);\n return userRef\n .update({\n favorites: app.firestore.FieldValue.arrayUnion(favorite),\n })\n .then(() => {\n getFavorites();\n alert(`${favorite.title} added!`);\n })\n .catch((error) => {\n console.log(\"Error when adding item\", error);\n });\n } else {\n history.push(\"/login\");\n }\n });\n };\n\n const handleLogout = () => {\n app.auth().signOut();\n console.log(\"logout\", handleLogout);\n alert(\"Log out successfully\");\n history.push(\"/login\");\n };\n\n const getFavorites = () => {\n app.auth().onAuthStateChanged((user) => {\n const FavoritesRef = db.collection(\"users\").doc(user.uid);\n\n FavoritesRef.get()\n .then((doc) => {\n if (doc.exists) {\n // console.log(\"Favorites:\", doc.data());\n setFavList(doc.data().favorites);\n } else {\n console.log(\"No such document!\");\n }\n })\n .catch((error) => {\n console.log(\"Error getting document:\", error);\n });\n });\n };\n\n const removeFav = (favorite) => {\n app.auth().onAuthStateChanged((user) => {\n if (user) {\n const userRef = db.collection(\"users\").doc(user.uid);\n return userRef\n .update({\n favorites: app.firestore.FieldValue.arrayRemove(favorite),\n })\n .then(() => {\n alert(`${favorite.title} removed!`);\n getFavorites();\n })\n .catch((error) => {\n console.log(\"Error when removing item\", error);\n });\n } else {\n history.push(\"/login\");\n }\n });\n };\n\n return (\n <AuthContext.Provider\n value={{\n user,\n loggedIn,\n logIn,\n signUp,\n addFavorite,\n handleLogout,\n favList,\n getFavorites,\n removeFav,\n }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\n","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/ThemeContext.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/MyCssBaseline.js",[],"/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/MyFavList.js",["109"],"import React, { useContext } from \"react\";\nimport { AuthContext } from \"../context/AuthContex\";\nimport Cards from \"./Card\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Box from \"@material-ui/core/Box\";\nimport Container from \"@material-ui/core/Container\";\n\nfunction MyFavList() {\n const { favList } = useContext(AuthContext);\n console.log(\"V\", favList);\n\n const style = {\n marginTop: \"10px\",\n display: \"flex\",\n };\n\n return (\n // <Box ml={8} pt={3}>\n <Container component=\"div\" maxWidth=\"lg\" align=\"center\">\n <Grid\n container\n style={style}\n justify=\"center\"\n alignItems=\"start\"\n /* alignItems=\"flex-start\" */\n spacing={4}\n >\n {favList &&\n favList.map((result) => {\n return <Cards key={result.id} result={result} />;\n })}\n </Grid>\n </Container>\n // </Box>\n );\n}\n\nexport default MyFavList;\n","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/context/ChatContext.js",["110"],"import React, { useState, createContext, useContext, useEffect } from \"react\";\nimport app from \"../components/firebase\";\nimport { AuthContext } from \"./AuthContex\";\n\nconst initContext = {\n messages: [],\n writeMessages: () => {\n throw new Error(\"writeMessages() not implemented\");\n },\n readMessages: () => {\n throw new Error(\"readMessages() not implemented\");\n },\n};\n\nexport const ChatContext = createContext(initContext);\n\nexport const ChatProvider = ({ children }) => {\n const db = app.firestore();\n const { user } = useContext(AuthContext);\n const [messages, setMessages] = useState(initContext.messages);\n\n useEffect(() => {\n readMessages();\n }, []);\n\n const writeMessages = async (body) => {\n console.log(\"user\", user);\n db.collection(\"messages\")\n .add({\n username: user.displayName,\n timestamp: new Date(),\n body,\n })\n .then((docRef) => {\n console.log(\"Document written with ID: \", docRef.id);\n readMessages();\n })\n .catch((error) => {\n console.error(\"Error adding document: \", error);\n });\n };\n\n const readMessages = () => {\n db.collection(\"messages\")\n .orderBy(\"timestamp\")\n .limit(10)\n .get()\n .then((querySnapshot) => {\n const messageArray = [];\n\n querySnapshot.forEach((doc) => {\n // console.log(doc.id, \" => \", doc.data());\n messageArray.push(doc.data());\n });\n setMessages(messageArray);\n });\n };\n\n return (\n <ChatContext.Provider value={{ messages, readMessages, writeMessages }}>\n {children}\n </ChatContext.Provider>\n );\n};\n","/Users/ellenpan/Documents/CABerlin/Module-1/discogs-app/src/components/Chatroom.js",["111","112"],"import React, { useContext, useState } from \"react\";\nimport { ChatContext } from \"../context/ChatContext\";\nimport { AuthContext } from \"../context/AuthContex\";\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n bottom: 0,\n // position: \"fixed\" // remove this so we can apply flex design\n },\n bubbleContainer: {\n width: \"100%\",\n display: \"flex\", //new added flex so we can put div at left and right side\n //check style.css for left and right classnaeme based on your data\n },\n bubble: {\n border: \"0.5px solid black\",\n borderRadius: \"10px\",\n margin: \"5px\",\n padding: \"10px\",\n display: \"inline-block\",\n },\n}));\n\nfunction Chatroom() {\n const classes = useStyles();\n const { messages, readMessages, writeMessages } = useContext(ChatContext);\n const { loggedIn } = useContext(AuthContext);\n const [body, setBody] = useState(\"\");\n\n const handleInput = (e) => {\n setBody(e.target.value);\n };\n\n const handleWriteMsg = () => {\n writeMessages(body);\n };\n\n console.log(\"messages\", messages);\n\n return (\n <div>\n <input\n type=\"text\"\n placeholder=\"message\"\n value={body}\n onChange={handleInput}\n />\n <button onClick={handleWriteMsg}>SEND</button>\n {loggedIn ? <p>User looged in</p> : <p>Please log in first</p>}\n {messages ? (\n messages.map((message, index) => {\n return (\n <div>\n <h6>{message.userName}</h6>\n <h6>{message.timestamp.toString()}</h6>\n <p>{message.body}</p>\n </div>\n );\n })\n ) : (\n <h2>Loading...</h2>\n )}\n </div>\n );\n}\n\nexport default Chatroom;\n",{"ruleId":"113","replacedBy":"114"},{"ruleId":"115","replacedBy":"116"},{"ruleId":"117","severity":1,"message":"118","line":6,"column":8,"nodeType":"119","messageId":"120","endLine":6,"endColumn":13},{"ruleId":"113","replacedBy":"121"},{"ruleId":"115","replacedBy":"122"},{"ruleId":"117","severity":1,"message":"123","line":5,"column":8,"nodeType":"119","messageId":"120","endLine":5,"endColumn":11},{"ruleId":"124","severity":1,"message":"125","line":14,"column":6,"nodeType":"126","endLine":14,"endColumn":8,"suggestions":"127"},{"ruleId":"113","replacedBy":"128"},{"ruleId":"115","replacedBy":"129"},{"ruleId":"124","severity":1,"message":"130","line":37,"column":6,"nodeType":"126","endLine":37,"endColumn":8,"suggestions":"131"},{"ruleId":"117","severity":1,"message":"123","line":5,"column":8,"nodeType":"119","messageId":"120","endLine":5,"endColumn":11},{"ruleId":"124","severity":1,"message":"132","line":24,"column":6,"nodeType":"126","endLine":24,"endColumn":8,"suggestions":"133"},{"ruleId":"117","severity":1,"message":"134","line":26,"column":9,"nodeType":"119","messageId":"120","endLine":26,"endColumn":16},{"ruleId":"117","severity":1,"message":"135","line":27,"column":21,"nodeType":"119","messageId":"120","endLine":27,"endColumn":33},"no-native-reassign",["136"],"no-negated-in-lhs",["137"],"no-unused-vars","'Count' is defined but never used.","Identifier","unusedVar",["136"],["137"],"'Box' is defined but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'fetchData'. Either include it or remove the dependency array.","ArrayExpression",["138"],["136"],["137"],"React Hook useEffect has a missing dependency: 'getFavorites'. Either include it or remove the dependency array.",["139"],"React Hook useEffect has a missing dependency: 'readMessages'. Either include it or remove the dependency array.",["140"],"'classes' is assigned a value but never used.","'readMessages' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"141","fix":"142"},{"desc":"143","fix":"144"},{"desc":"145","fix":"146"},"Update the dependencies array to be: [fetchData]",{"range":"147","text":"148"},"Update the dependencies array to be: [getFavorites]",{"range":"149","text":"150"},"Update the dependencies array to be: [readMessages]",{"range":"151","text":"152"},[442,444],"[fetchData]",[1004,1006],"[getFavorites]",[668,670],"[readMessages]"]