sidechat.js 2.5.3 → 2.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/classes/SidechatAPIClient.d.ts +17 -1
  2. package/dist/classes/SidechatAPIClient.d.ts.map +1 -1
  3. package/dist/index.cjs +87 -5
  4. package/dist/index.mjs +87 -5
  5. package/dist/types/SidechatTypes.d.ts +51 -1
  6. package/dist/types/SidechatTypes.d.ts.map +1 -1
  7. package/docs/sidechat.js/2.5.4/SidechatAPIClient.html +3 -0
  8. package/docs/sidechat.js/2.5.4/SidechatAPIError.html +3 -0
  9. package/docs/sidechat.js/2.5.4/SidechatColorList.html +3 -0
  10. package/docs/sidechat.js/2.5.4/classes_SidechatAPIClient.js.html +1240 -0
  11. package/docs/sidechat.js/2.5.4/classes_SidechatAPIError.js.html +16 -0
  12. package/docs/sidechat.js/2.5.4/classes_SidechatColorList.js.html +79 -0
  13. package/docs/sidechat.js/2.5.4/data/search.json +1 -0
  14. package/docs/sidechat.js/2.5.4/fonts/Inconsolata-Regular.ttf +0 -0
  15. package/docs/sidechat.js/2.5.4/fonts/OpenSans-Regular.ttf +0 -0
  16. package/docs/sidechat.js/2.5.4/fonts/WorkSans-Bold.ttf +0 -0
  17. package/docs/sidechat.js/2.5.4/global.html +3 -0
  18. package/docs/sidechat.js/2.5.4/index.html +4 -0
  19. package/docs/sidechat.js/2.5.4/scripts/core.js +726 -0
  20. package/docs/sidechat.js/2.5.4/scripts/core.min.js +23 -0
  21. package/docs/sidechat.js/2.5.4/scripts/resize.js +90 -0
  22. package/docs/sidechat.js/2.5.4/scripts/search.js +265 -0
  23. package/docs/sidechat.js/2.5.4/scripts/search.min.js +6 -0
  24. package/docs/sidechat.js/2.5.4/scripts/third-party/Apache-License-2.0.txt +202 -0
  25. package/docs/sidechat.js/2.5.4/scripts/third-party/fuse.js +9 -0
  26. package/docs/sidechat.js/2.5.4/scripts/third-party/hljs-line-num-original.js +369 -0
  27. package/docs/sidechat.js/2.5.4/scripts/third-party/hljs-line-num.js +1 -0
  28. package/docs/sidechat.js/2.5.4/scripts/third-party/hljs-original.js +5171 -0
  29. package/docs/sidechat.js/2.5.4/scripts/third-party/hljs.js +1 -0
  30. package/docs/sidechat.js/2.5.4/scripts/third-party/popper.js +5 -0
  31. package/docs/sidechat.js/2.5.4/scripts/third-party/tippy.js +1 -0
  32. package/docs/sidechat.js/2.5.4/scripts/third-party/tocbot.js +672 -0
  33. package/docs/sidechat.js/2.5.4/scripts/third-party/tocbot.min.js +1 -0
  34. package/docs/sidechat.js/2.5.4/styles/clean-jsdoc-theme-base.css +1159 -0
  35. package/docs/sidechat.js/2.5.4/styles/clean-jsdoc-theme-dark.css +412 -0
  36. package/docs/sidechat.js/2.5.4/styles/clean-jsdoc-theme-light.css +482 -0
  37. package/docs/sidechat.js/2.5.4/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  38. package/docs/sidechat.js/2.5.4/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  39. package/docs/sidechat.js/2.5.4/styles/clean-jsdoc-theme.min.css +1 -0
  40. package/docs/sidechat.js/2.5.4/tutorial-Authentication.html +14 -0
  41. package/docs/sidechat.js/2.5.4/tutorial-Email Registration.html +6 -0
  42. package/docs/sidechat.js/2.5.4/types_SidechatTypes.js.html +180 -0
  43. package/docs/sidechat.js/2.5.5/SidechatAPIClient.html +3 -0
  44. package/docs/sidechat.js/2.5.5/SidechatAPIError.html +3 -0
  45. package/docs/sidechat.js/2.5.5/SidechatColorList.html +3 -0
  46. package/docs/sidechat.js/2.5.5/classes_SidechatAPIClient.js.html +1242 -0
  47. package/docs/sidechat.js/2.5.5/classes_SidechatAPIError.js.html +16 -0
  48. package/docs/sidechat.js/2.5.5/classes_SidechatColorList.js.html +79 -0
  49. package/docs/sidechat.js/2.5.5/data/search.json +1 -0
  50. package/docs/sidechat.js/2.5.5/fonts/Inconsolata-Regular.ttf +0 -0
  51. package/docs/sidechat.js/2.5.5/fonts/OpenSans-Regular.ttf +0 -0
  52. package/docs/sidechat.js/2.5.5/fonts/WorkSans-Bold.ttf +0 -0
  53. package/docs/sidechat.js/2.5.5/global.html +3 -0
  54. package/docs/sidechat.js/2.5.5/index.html +4 -0
  55. package/docs/sidechat.js/2.5.5/scripts/core.js +726 -0
  56. package/docs/sidechat.js/2.5.5/scripts/core.min.js +23 -0
  57. package/docs/sidechat.js/2.5.5/scripts/resize.js +90 -0
  58. package/docs/sidechat.js/2.5.5/scripts/search.js +265 -0
  59. package/docs/sidechat.js/2.5.5/scripts/search.min.js +6 -0
  60. package/docs/sidechat.js/2.5.5/scripts/third-party/Apache-License-2.0.txt +202 -0
  61. package/docs/sidechat.js/2.5.5/scripts/third-party/fuse.js +9 -0
  62. package/docs/sidechat.js/2.5.5/scripts/third-party/hljs-line-num-original.js +369 -0
  63. package/docs/sidechat.js/2.5.5/scripts/third-party/hljs-line-num.js +1 -0
  64. package/docs/sidechat.js/2.5.5/scripts/third-party/hljs-original.js +5171 -0
  65. package/docs/sidechat.js/2.5.5/scripts/third-party/hljs.js +1 -0
  66. package/docs/sidechat.js/2.5.5/scripts/third-party/popper.js +5 -0
  67. package/docs/sidechat.js/2.5.5/scripts/third-party/tippy.js +1 -0
  68. package/docs/sidechat.js/2.5.5/scripts/third-party/tocbot.js +672 -0
  69. package/docs/sidechat.js/2.5.5/scripts/third-party/tocbot.min.js +1 -0
  70. package/docs/sidechat.js/2.5.5/styles/clean-jsdoc-theme-base.css +1159 -0
  71. package/docs/sidechat.js/2.5.5/styles/clean-jsdoc-theme-dark.css +412 -0
  72. package/docs/sidechat.js/2.5.5/styles/clean-jsdoc-theme-light.css +482 -0
  73. package/docs/sidechat.js/2.5.5/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  74. package/docs/sidechat.js/2.5.5/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  75. package/docs/sidechat.js/2.5.5/styles/clean-jsdoc-theme.min.css +1 -0
  76. package/docs/sidechat.js/2.5.5/tutorial-Authentication.html +14 -0
  77. package/docs/sidechat.js/2.5.5/tutorial-Email Registration.html +6 -0
  78. package/docs/sidechat.js/2.5.5/types_SidechatTypes.js.html +180 -0
  79. package/package.json +4 -4
  80. package/src/classes/SidechatAPIClient.js +66 -4
  81. package/src/tests/commentTest.js +22 -0
  82. package/src/tests/postTest.js +1 -1
  83. package/src/tests/updatesTest.js +19 -0
  84. package/src/types/SidechatTypes.js +21 -1
@@ -0,0 +1,6 @@
1
+ <!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Tutorial: Email Registration</title><!--[if lt IE 9]>
2
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
3
+ <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(baseURL=(baseURL="https://micahlindley.com/sidechat.js/").replace(/https?:\/\//i,"")).substr(baseURL.indexOf("/"))</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">sidechat.js</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div><div class="sidebar-section-children"><a href="SidechatColorList.html">SidechatColorList</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectMessage">SidechatDirectMessage</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectThread">SidechatDirectThread</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPoll">SidechatPoll</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPollChoice">SidechatPollChoice</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://offsides.micahlindley.com" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><header><h2>Email Registration</h2></header><article><blockquote><p>You can only start this process once you have <a href="tutorial-Authentication.html">authenticated as a user</a>.</p></blockquote><p>Start by sending a verification email to the user:</p><pre class="prettyprint source lang-javascript"><code>const email = /* User's email address */;
4
+ await API.registerEmail(email);
5
+ </code></pre><p>Once the user has clicked the link in the verification email, verify that they've clicked it:</p><pre class="prettyprint source lang-javascript"><code>await API.checkEmailVerification();
6
+ </code></pre><p>You should be verified!</p></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">sidechat.js</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://offsides.micahlindley.com" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div><div class="sidebar-section-children"><a href="SidechatColorList.html">SidechatColorList</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectMessage">SidechatDirectMessage</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectThread">SidechatDirectThread</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPoll">SidechatPoll</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPollChoice">SidechatPollChoice</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
@@ -0,0 +1,180 @@
1
+ <!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Source: types/SidechatTypes.js</title><!--[if lt IE 9]>
2
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
3
+ <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(baseURL=(baseURL="https://micahlindley.com/sidechat.js/").replace(/https?:\/\//i,"")).substr(baseURL.indexOf("/"))</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">sidechat.js</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div><div class="sidebar-section-children"><a href="SidechatColorList.html">SidechatColorList</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectMessage">SidechatDirectMessage</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectThread">SidechatDirectThread</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPoll">SidechatPoll</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPollChoice">SidechatPollChoice</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://offsides.micahlindley.com" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section id="source-page" class="source-page"><header><h1 id="title" class="has-anchor">types_SidechatTypes.js</h1></header><article><pre class="prettyprint source lang-js"><code>/**
4
+ * A user-created post or comment, depending on the "type" prop
5
+ * @typedef {Object} SidechatPostOrComment
6
+ * @prop {"post"|"comment"} type - whether this object represents a post or a comment on a post
7
+ * @prop {String} id - alphanumeric ID of post or comment
8
+ * @prop {Boolean} authored_by_user - undocumented
9
+ * @prop {String} alias - post creator's name in-app
10
+ * @prop {String} group_id - alphanumeric ID of group
11
+ * @prop {SidechatGroup} group - group in which post or comment was created
12
+ * @prop {String} text - text content of post or comment
13
+ * @prop {String} created_at - date string of post or comment creation time
14
+ * @prop {Number} vote_total - sum of upvotes and downvotes
15
+ * @prop {SidechatVoteString} vote_status - current user's vote on post or comment
16
+ * @prop {SidechatSimpleAsset[]} assets - array of simple assets attached to post or comment
17
+ * @prop {Array} attachments - undocumented
18
+ * @prop {Boolean} dms_disabled - whether or not you can send a DM to creator of post
19
+ * @prop {String[]} tags - undocumented
20
+ * @prop {SidechatIdentity} identity - creator's identity information
21
+ * @prop {Boolean} pinned - undocumented
22
+ * @prop {Boolean} is_saved - undocumented
23
+ * @prop {"following"|"not_following"} follow_status - undocumented
24
+ * @prop {"group"} [destination] - undocumented
25
+ * @prop {Number} [comment_count] - number of comments on post (only if type=post)
26
+ * @prop {Boolean} [comments_disabled] - whether or not you can comment on post (only if type=post)
27
+ * @prop {SidechatPoll} [poll] - poll attached to post (only if the post has a poll)
28
+ * @prop {String} [parent_post_id] - alphanumeric ID of parent post (only if type=comment)
29
+ * @prop {String} [reply_post_id] - alphanumeric ID of comment being replied to, falls back to parent_post_id (only if type=comment)
30
+ * @prop {String} [context] - text content of comment being replied to, falls back to text (only if type=comment)
31
+ */
32
+
33
+ /**
34
+ * A group object, containing metadata about a group as well as its join conditions and states. Some properties vary based on the endpoint the object came from.
35
+ * @typedef {Object} SidechatGroup
36
+ * @prop {String} id - alphanumeric ID of group
37
+ * @prop {String} name - human-readable name of group
38
+ * @prop {String} analytics_name - name to file group under
39
+ * @prop {"non_member"|"member"} membership_type - whether or not current user is a member of group
40
+ * @prop {String} color - group's theme color as hex code (e.g., #FFFFFF)
41
+ * @prop {"open"|"closed"|"email_domain"} group_join_type - basis on which group accepts new members
42
+ * @prop {"private"|"public_to_all"|"public_to_schools"} group_visibility - group's visibility setting
43
+ * @prop {"show"|"hide"} asset_library_visibility - whether or not group's asset library is visible
44
+ * @prop {Array} [roles] - undocumented
45
+ * @prop {String} [description] - description of group
46
+ * @prop {SidechatPrivateAssetURL} [icon_url] - image URL for group icon
47
+ * @prop {Number} [member_count] - number of users in group
48
+ * @prop {Boolean} [should_show_leaderboard] - undocumented
49
+ */
50
+
51
+ /**
52
+ * An asset object, containing information about an image within a post or comment
53
+ * @typedef {Object} SidechatSimpleAsset
54
+ * @prop {String} id - alphanumeric ID of asset
55
+ * @prop {"image"} type - undocumented
56
+ * @prop {"jpeg"|"png"|"gif"} content_type - file type of asset
57
+ * @prop {Number} width - width of asset
58
+ * @prop {Number} height - height of asset
59
+ * @prop {SidechatPrivateAssetURL} [url] - URL string of asset's location
60
+ */
61
+
62
+ /**
63
+ * An asset object, containing information about an image from the asset library
64
+ * @typedef {Object} SidechatLibraryAsset
65
+ * @prop {String} id - alphanumeric ID of asset
66
+ * @prop {String} created_at - date string of asset creation time
67
+ * @prop {SidechatAssetMetadata} metadata - metadata associated with asset
68
+ * @prop {SidechatPrivateAssetURL} url - URL string of asset's location
69
+ */
70
+
71
+ /**
72
+ * An asset object, containing information about an image from the asset library
73
+ * @typedef {Object} SidechatAssetMetadata
74
+ * @prop {Number} width - width of asset
75
+ * @prop {Number} height - height of asset
76
+ * @prop {"image"} type - undocumented
77
+ * @prop {"jpeg"|"png"|"gif"} content_type - file type of asset
78
+ */
79
+
80
+ /**
81
+ * A user's anonymous identity information
82
+ * @typedef {Object} SidechatIdentity
83
+ * @prop {String} name - representation of user's name (varies across app)
84
+ * @prop {Boolean} posted_with_username - undocumented
85
+ */
86
+
87
+ /**
88
+ * The current user's information
89
+ * @typedef {Object} SidechatCurrentUser
90
+ * @prop {String} id - alphanumeric ID of current user
91
+ * @prop {String} hashedVerifiedEmail - verified email of current user in an unreadable hashed form
92
+ * @prop {Boolean} isGlobalModerator - whether or not user is a moderator
93
+ * @prop {Boolean} isGlobalAdmin - whether or not user is an admin
94
+ * @prop {SidechatMembership[]} memberships
95
+ * @prop {Array} roles - undocumented
96
+ * @prop {String} emailDomain - domain of verified email address on account
97
+ * @prop {String} wildcardEmailDomain - domain of verified email address on account, preceeded by *. to support subdomains
98
+ */
99
+
100
+ /**
101
+ * Representation of a group membership
102
+ * @typedef {Object} SidechatMembership
103
+ * @prop {String} groupId - alphanumeric ID of group
104
+ * @prop {String} type - role of current user in group
105
+ */
106
+
107
+ /**
108
+ * An asset URL that can only be accessed by making a request with a user's bearer token attached in the Authorization header
109
+ * @typedef {String} SidechatPrivateAssetURL
110
+ */
111
+
112
+ /**
113
+ * A cursor for paginating through post lists
114
+ * @typedef {String} SidechatCursorString
115
+ */
116
+
117
+ /**
118
+ * A vote on a comment or post
119
+ * @typedef {"upvote"|"downvote"|"none"} SidechatVoteString
120
+ */
121
+
122
+ /**
123
+ * A user's bearer authentication token needed for most requests
124
+ * @typedef {String} SidechatAuthToken
125
+ */
126
+
127
+ /**
128
+ * A list of posts and the associated cursor
129
+ * @typedef {Object} SidechatPostsAndCursor
130
+ * @prop {SidechatPostOrComment[]} posts
131
+ * @prop {SidechatCursorString} cursor
132
+ */
133
+
134
+ export default {};
135
+
136
+ /**
137
+ * A direct message thread
138
+ * @typedef {Object} SidechatDirectThread
139
+ * @prop {String} id - alphanumeric ID of thread
140
+ * @prop {String} group_id - alphanumeric ID of group in which the thread exists
141
+ * @prop {String} updated_at - date string of when the last message in the chat was sent
142
+ * @prop {String} post_id - post or comment from which the thread was originally sent
143
+ * @prop {String} post_context - the context of the DM thread (only "feed" is known at the moment)
144
+ * @prop {"accepted"} accept_status - whether or not the other user has accepted this DM
145
+ * @prop {"post"|"comment"} type - the type of the content from which the DM was originally sent
146
+ * @prop {SidechatDirectMessage[]} messages - array of direct message objects
147
+ */
148
+
149
+ /**
150
+ * A single direct message
151
+ * @typedef {Object} SidechatDirectMessage
152
+ * @prop {String} created_at - time at which the message was sent
153
+ * @prop {String} client_id - alphanumeric ID of the device the message was sent on
154
+ * @prop {String} obfuscatedUserId - obfuscated version of the sender's alphanumeric ID
155
+ * @prop {String} text - body text of the message
156
+ * @prop {String} id - alphanumeric ID of the message
157
+ * @prop {String} chat_id - alphanumeric ID of the thread in which the message resides
158
+ * @prop {Boolean} authored_by_user - whether or not the current user sent the message
159
+ * @prop {"message"} type - undocumented
160
+ */
161
+
162
+ /**
163
+ * Represents a poll with choices
164
+ * @typedef {Object} SidechatPoll
165
+ * @prop {String} id - alphanumeric ID of poll
166
+ * @prop {String} post_id - alphanumeric ID of post to which poll is attached
167
+ * @prop {SidechatPollChoice[]} choices - array of poll choices
168
+ * @prop {Boolean} allows_view_results - whether or not poll results are publicly visible
169
+ * @prop {Number} view_results_count - number of users who have viewed poll results
170
+ * @prop {Boolean} participated - whether or not current user has voted in poll
171
+ */
172
+
173
+ /**
174
+ * Represents a poll choice
175
+ * @typedef {Object} SidechatPollChoice
176
+ * @prop {Number} count - number of votes for choice
177
+ * @prop {String} text - user-visible text of choice
178
+ * @prop {Boolean} selected - whether or not current user has voted for choice
179
+ */
180
+ </code></pre></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">sidechat.js</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://offsides.micahlindley.com" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div><div class="sidebar-section-children"><a href="SidechatColorList.html">SidechatColorList</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectMessage">SidechatDirectMessage</a></div><div class="sidebar-section-children"><a href="global.html#SidechatDirectThread">SidechatDirectThread</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPoll">SidechatPoll</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPollChoice">SidechatPollChoice</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sidechat.js",
3
- "version": "2.5.3",
3
+ "version": "2.5.5",
4
4
  "description": "A reverse-engineered API wrapper for Sidechat",
5
5
  "type": "module",
6
6
  "source": "./src/index.js",
@@ -45,10 +45,10 @@
45
45
  },
46
46
  "devDependencies": {
47
47
  "clean-jsdoc-theme": "^4.3.0",
48
- "dotenv": "^16.4.5",
48
+ "dotenv": "^16.4.7",
49
49
  "prompt-sync": "^4.2.0",
50
- "rollup": "^2.79.1",
50
+ "rollup": "^2.79.2",
51
51
  "rollup-plugin-copy": "^3.5.0",
52
- "typescript": "^5.5.3"
52
+ "typescript": "^5.7.2"
53
53
  }
54
54
  }
@@ -327,8 +327,7 @@ class SidechatAPIClient {
327
327
  }
328
328
  try {
329
329
  const res = await fetch(
330
- `${this.apiRoot}/v1/posts?${
331
- cursor ? "cursor=" + encodeURIComponent(cursor) + "&" : ""
330
+ `${this.apiRoot}/v1/posts?${cursor ? "cursor=" + encodeURIComponent(cursor) + "&" : ""
332
331
  }group_id=${groupID}&type=${category}`,
333
332
  {
334
333
  method: "GET",
@@ -664,6 +663,7 @@ class SidechatAPIClient {
664
663
  * @param {String} text - text content of comment
665
664
  * @param {String} groupID - alphanumeric ID of group in which the parent post resides
666
665
  * @param {String} [replyCommentID] - alphanumeric ID of comment to reply to. Falls back to parentPostID
666
+ * @param {String} [topLevelReplyID] - alphanumeric ID of the top-level comment to reply to. Used only when replying to replies. Falls back to parentPostID
667
667
  * @param {SidechatSimpleAsset[]} [assetList] - list of assets to attach
668
668
  * @param {Boolean} [disableDMs] - prevent direct messages being sent to comment's author
669
669
  * @param {Boolean} [anonymous] - whether or not to hide user's name and icon on comment
@@ -673,7 +673,8 @@ class SidechatAPIClient {
673
673
  parentPostID,
674
674
  text,
675
675
  groupID,
676
- replyCommentID = parentPostID,
676
+ replyCommentID,
677
+ topLevelReplyID,
677
678
  assetList = [],
678
679
  disableDMs = false,
679
680
  anonymous = false
@@ -693,7 +694,8 @@ class SidechatAPIClient {
693
694
  assets: assetList,
694
695
  group_ids: [groupID],
695
696
  text: text,
696
- reply_post_id: replyCommentID,
697
+ reply_post_id: topLevelReplyID || replyCommentID || parentPostID,
698
+ reply_comment_post_id: replyCommentID || parentPostID,
697
699
  parent_post_id: parentPostID,
698
700
  dms_disabled: disableDMs,
699
701
  using_identity: !anonymous,
@@ -785,6 +787,66 @@ class SidechatAPIClient {
785
787
  }
786
788
  };
787
789
 
790
+ /**
791
+ * Votes on a poll attached to a post
792
+ * @method
793
+ * @param {String} pollId - alphanumeric ID of poll to vote on
794
+ * @param {Number} choiceIndex - index of the choice to vote on
795
+ * @since 2.5.4
796
+ */
797
+ voteOnPoll = async (pollId, choiceIndex) => {
798
+ if (!this.userToken) {
799
+ throw new SidechatAPIError("User is not authenticated.");
800
+ }
801
+ try {
802
+ const res = await fetch(`${this.apiRoot}/v1/polls/vote`, {
803
+ method: "POST",
804
+ headers: {
805
+ ...this.defaultHeaders,
806
+ Authorization: `Bearer ${this.userToken}`,
807
+ },
808
+ body: JSON.stringify({
809
+ poll_id: pollId,
810
+ choice: choiceIndex,
811
+ }),
812
+ });
813
+ const json = await res.json();
814
+ return await json;
815
+ } catch (err) {
816
+ console.error(err);
817
+ throw new SidechatAPIError(`Failed to vote on poll`);
818
+ }
819
+ };
820
+
821
+ /**
822
+ * Marks that the user has viewed results on a poll. Note that this does not actually return the results of the poll.
823
+ * @method
824
+ * @param {String} pollId - alphanumeric ID of poll to vote on
825
+ * @since 2.5.4
826
+ */
827
+ viewPollResults = async (pollId) => {
828
+ if (!this.userToken) {
829
+ throw new SidechatAPIError("User is not authenticated.");
830
+ }
831
+ try {
832
+ const res = await fetch(`${this.apiRoot}/v1/polls/view_results`, {
833
+ method: "POST",
834
+ headers: {
835
+ ...this.defaultHeaders,
836
+ Authorization: `Bearer ${this.userToken}`,
837
+ },
838
+ body: JSON.stringify({
839
+ poll_id: pollId,
840
+ }),
841
+ });
842
+ const json = await res.json();
843
+ return await json;
844
+ } catch (err) {
845
+ console.error(err);
846
+ throw new SidechatAPIError(`Failed to mark poll results as viewed.`);
847
+ }
848
+ };
849
+
788
850
  /**
789
851
  * Uploads an asset to AWS S3 for use in posts and comments. Currently photos only
790
852
  * @method
@@ -0,0 +1,22 @@
1
+ import { configDotenv } from "dotenv";
2
+ import { SidechatAPIClient } from "../index.js";
3
+ import PromptSync from "prompt-sync";
4
+ const prompt = new PromptSync();
5
+ configDotenv({ path: ".env.local", debug: true });
6
+
7
+ async function main() {
8
+ const API = new SidechatAPIClient(process.env.SIDECHAT_TOKEN);
9
+ if (!API.userToken) {
10
+ console.error("No token defined.");
11
+ return;
12
+ } else {
13
+ const id = prompt(
14
+ "Post ID? "
15
+ );
16
+ const post = await API.getPostComments(id);
17
+ console.log(post);
18
+
19
+ }
20
+ }
21
+
22
+ main();
@@ -35,7 +35,7 @@ async function main() {
35
35
  const id = prompt("ID of post to comment on? ");
36
36
  const group = prompt("Group ID of post? ");
37
37
  const replyID = prompt("Reply ID? (optional) ");
38
- const res = await API.createComment(id, "woah lol", group, replyID);
38
+ const res = await API.createComment(id, "ye", group, replyID);
39
39
  console.log(res);
40
40
  } else if (action == "get comments") {
41
41
  const id = prompt("ID of post to get comments from? ");
@@ -0,0 +1,19 @@
1
+ import { configDotenv } from "dotenv";
2
+ import { SidechatAPIClient } from "../index.js";
3
+ import PromptSync from "prompt-sync";
4
+ const prompt = new PromptSync();
5
+ configDotenv({ path: ".env.local", debug: true });
6
+
7
+ async function main() {
8
+ const API = new SidechatAPIClient(process.env.SIDECHAT_TOKEN);
9
+ if (!API.userToken) {
10
+ console.error("No token defined.");
11
+ return;
12
+ } else {
13
+
14
+ const post = await API.getUpdates(API);
15
+ console.log(post.user_posts);
16
+ }
17
+ }
18
+
19
+ main();
@@ -14,7 +14,7 @@
14
14
  * @prop {SidechatSimpleAsset[]} assets - array of simple assets attached to post or comment
15
15
  * @prop {Array} attachments - undocumented
16
16
  * @prop {Boolean} dms_disabled - whether or not you can send a DM to creator of post
17
- * @prop {Array} tags - undocumented
17
+ * @prop {String[]} tags - undocumented
18
18
  * @prop {SidechatIdentity} identity - creator's identity information
19
19
  * @prop {Boolean} pinned - undocumented
20
20
  * @prop {Boolean} is_saved - undocumented
@@ -22,6 +22,7 @@
22
22
  * @prop {"group"} [destination] - undocumented
23
23
  * @prop {Number} [comment_count] - number of comments on post (only if type=post)
24
24
  * @prop {Boolean} [comments_disabled] - whether or not you can comment on post (only if type=post)
25
+ * @prop {SidechatPoll} [poll] - poll attached to post (only if the post has a poll)
25
26
  * @prop {String} [parent_post_id] - alphanumeric ID of parent post (only if type=comment)
26
27
  * @prop {String} [reply_post_id] - alphanumeric ID of comment being replied to, falls back to parent_post_id (only if type=comment)
27
28
  * @prop {String} [context] - text content of comment being replied to, falls back to text (only if type=comment)
@@ -155,3 +156,22 @@ export default {};
155
156
  * @prop {Boolean} authored_by_user - whether or not the current user sent the message
156
157
  * @prop {"message"} type - undocumented
157
158
  */
159
+
160
+ /**
161
+ * Represents a poll with choices
162
+ * @typedef {Object} SidechatPoll
163
+ * @prop {String} id - alphanumeric ID of poll
164
+ * @prop {String} post_id - alphanumeric ID of post to which poll is attached
165
+ * @prop {SidechatPollChoice[]} choices - array of poll choices
166
+ * @prop {Boolean} allows_view_results - whether or not poll results are publicly visible
167
+ * @prop {Number} view_results_count - number of users who have viewed poll results
168
+ * @prop {Boolean} participated - whether or not current user has voted in poll
169
+ */
170
+
171
+ /**
172
+ * Represents a poll choice
173
+ * @typedef {Object} SidechatPollChoice
174
+ * @prop {Number} count - number of votes for choice
175
+ * @prop {String} text - user-visible text of choice
176
+ * @prop {Boolean} selected - whether or not current user has voted for choice
177
+ */