sidechat.js 2.5.5 → 2.6.0

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 (234) hide show
  1. package/dist/classes/SidechatAPIClient.d.ts +40 -3
  2. package/dist/classes/SidechatAPIClient.d.ts.map +1 -1
  3. package/dist/index.cjs +151 -12
  4. package/dist/index.mjs +151 -12
  5. package/dist/types/SidechatTypes.d.ts +69 -3
  6. package/dist/types/SidechatTypes.d.ts.map +1 -1
  7. package/docs/sidechat.js/2.5.6/SidechatAPIClient.html +3 -0
  8. package/docs/sidechat.js/2.5.6/SidechatAPIError.html +3 -0
  9. package/docs/sidechat.js/2.5.6/SidechatColorList.html +3 -0
  10. package/docs/sidechat.js/{2.4.6 → 2.5.6}/classes_SidechatAPIClient.js.html +181 -11
  11. package/docs/sidechat.js/2.5.6/classes_SidechatAPIError.js.html +16 -0
  12. package/docs/sidechat.js/2.5.6/classes_SidechatColorList.js.html +79 -0
  13. package/docs/sidechat.js/2.5.6/data/search.json +1 -0
  14. package/docs/sidechat.js/2.5.6/global.html +3 -0
  15. package/docs/sidechat.js/2.5.6/index.html +4 -0
  16. package/docs/sidechat.js/2.5.6/tutorial-Authentication.html +14 -0
  17. package/docs/sidechat.js/2.5.6/tutorial-Email Registration.html +6 -0
  18. package/docs/sidechat.js/{2.4.6 → 2.5.6}/types_SidechatTypes.js.html +23 -3
  19. package/docs/sidechat.js/2.6.0/SidechatAPIClient.html +3 -0
  20. package/docs/sidechat.js/2.6.0/SidechatAPIError.html +3 -0
  21. package/docs/sidechat.js/2.6.0/SidechatColorList.html +3 -0
  22. package/docs/sidechat.js/{2.4.7 → 2.6.0}/classes_SidechatAPIClient.js.html +268 -11
  23. package/docs/sidechat.js/2.6.0/classes_SidechatAPIError.js.html +16 -0
  24. package/docs/sidechat.js/2.6.0/classes_SidechatColorList.js.html +79 -0
  25. package/docs/sidechat.js/2.6.0/data/search.json +1 -0
  26. package/docs/sidechat.js/2.6.0/global.html +3 -0
  27. package/docs/sidechat.js/2.6.0/index.html +4 -0
  28. package/docs/sidechat.js/{2.4.6 → 2.6.0}/scripts/core.js +1 -1
  29. package/docs/sidechat.js/{2.4.6 → 2.6.0}/scripts/core.min.js +1 -1
  30. package/docs/sidechat.js/{2.4.6 → 2.6.0}/styles/clean-jsdoc-theme-base.css +3 -5
  31. package/docs/sidechat.js/2.6.0/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  32. package/docs/sidechat.js/2.6.0/styles/clean-jsdoc-theme.min.css +1 -0
  33. package/docs/sidechat.js/2.6.0/tutorial-Authentication.html +14 -0
  34. package/docs/sidechat.js/2.6.0/tutorial-Email Registration.html +6 -0
  35. package/docs/sidechat.js/{2.4.7 → 2.6.0}/types_SidechatTypes.js.html +51 -7
  36. package/jsdoc.json +10 -0
  37. package/package.json +2 -2
  38. package/src/classes/SidechatAPIClient.js +120 -6
  39. package/src/types/SidechatTypes.js +31 -6
  40. package/docs/sidechat.js/1.0.0/data/search.json +0 -1
  41. package/docs/sidechat.js/1.0.0/global.html +0 -3
  42. package/docs/sidechat.js/1.0.0/index.html +0 -4
  43. package/docs/sidechat.js/1.0.0/index.js.html +0 -363
  44. package/docs/sidechat.js/1.0.0/scripts/core.js +0 -702
  45. package/docs/sidechat.js/1.0.0/scripts/core.min.js +0 -23
  46. package/docs/sidechat.js/1.0.0/styles/clean-jsdoc-theme-base.css +0 -975
  47. package/docs/sidechat.js/1.0.0/styles/clean-jsdoc-theme-dark.css +0 -407
  48. package/docs/sidechat.js/1.0.0/styles/clean-jsdoc-theme-light.css +0 -388
  49. package/docs/sidechat.js/1.0.0/styles/clean-jsdoc-theme.min.css +0 -1
  50. package/docs/sidechat.js/1.0.0/types_SidechatTypes.js.html +0 -82
  51. package/docs/sidechat.js/2.0.0-alpha.0/SidechatAPIClient.html +0 -3
  52. package/docs/sidechat.js/2.0.0-alpha.0/SidechatAPIError.html +0 -3
  53. package/docs/sidechat.js/2.0.0-alpha.0/classes_SidechatAPIClient.js.html +0 -418
  54. package/docs/sidechat.js/2.0.0-alpha.0/classes_SidechatAPIError.js.html +0 -16
  55. package/docs/sidechat.js/2.0.0-alpha.0/data/search.json +0 -1
  56. package/docs/sidechat.js/2.0.0-alpha.0/global.html +0 -3
  57. package/docs/sidechat.js/2.0.0-alpha.0/index.html +0 -4
  58. package/docs/sidechat.js/2.0.0-alpha.0/scripts/core.js +0 -702
  59. package/docs/sidechat.js/2.0.0-alpha.0/scripts/core.min.js +0 -23
  60. package/docs/sidechat.js/2.0.0-alpha.0/styles/clean-jsdoc-theme-base.css +0 -975
  61. package/docs/sidechat.js/2.0.0-alpha.0/styles/clean-jsdoc-theme-dark.css +0 -407
  62. package/docs/sidechat.js/2.0.0-alpha.0/styles/clean-jsdoc-theme-light.css +0 -388
  63. package/docs/sidechat.js/2.0.0-alpha.0/styles/clean-jsdoc-theme.min.css +0 -1
  64. package/docs/sidechat.js/2.0.0-alpha.0/tutorial-Authentication.html +0 -13
  65. package/docs/sidechat.js/2.0.0-alpha.0/tutorial-Email Registration.html +0 -6
  66. package/docs/sidechat.js/2.0.0-alpha.0/tutorial-Email Verification.html +0 -6
  67. package/docs/sidechat.js/2.0.0-alpha.0/types_SidechatTypes.js.html +0 -98
  68. package/docs/sidechat.js/2.4.0/SidechatAPIClient.html +0 -3
  69. package/docs/sidechat.js/2.4.0/SidechatAPIError.html +0 -3
  70. package/docs/sidechat.js/2.4.0/SidechatColorList.html +0 -3
  71. package/docs/sidechat.js/2.4.0/classes_SidechatAPIClient.js.html +0 -956
  72. package/docs/sidechat.js/2.4.0/classes_SidechatAPIError.js.html +0 -16
  73. package/docs/sidechat.js/2.4.0/classes_SidechatColorList.js.html +0 -79
  74. package/docs/sidechat.js/2.4.0/data/search.json +0 -1
  75. package/docs/sidechat.js/2.4.0/fonts/Inconsolata-Regular.ttf +0 -0
  76. package/docs/sidechat.js/2.4.0/fonts/OpenSans-Regular.ttf +0 -0
  77. package/docs/sidechat.js/2.4.0/fonts/WorkSans-Bold.ttf +0 -0
  78. package/docs/sidechat.js/2.4.0/global.html +0 -3
  79. package/docs/sidechat.js/2.4.0/index.html +0 -4
  80. package/docs/sidechat.js/2.4.0/scripts/core.js +0 -702
  81. package/docs/sidechat.js/2.4.0/scripts/core.min.js +0 -23
  82. package/docs/sidechat.js/2.4.0/scripts/resize.js +0 -90
  83. package/docs/sidechat.js/2.4.0/scripts/search.js +0 -265
  84. package/docs/sidechat.js/2.4.0/scripts/search.min.js +0 -6
  85. package/docs/sidechat.js/2.4.0/scripts/third-party/Apache-License-2.0.txt +0 -202
  86. package/docs/sidechat.js/2.4.0/scripts/third-party/fuse.js +0 -9
  87. package/docs/sidechat.js/2.4.0/scripts/third-party/hljs-line-num-original.js +0 -369
  88. package/docs/sidechat.js/2.4.0/scripts/third-party/hljs-line-num.js +0 -1
  89. package/docs/sidechat.js/2.4.0/scripts/third-party/hljs-original.js +0 -5171
  90. package/docs/sidechat.js/2.4.0/scripts/third-party/hljs.js +0 -1
  91. package/docs/sidechat.js/2.4.0/scripts/third-party/popper.js +0 -5
  92. package/docs/sidechat.js/2.4.0/scripts/third-party/tippy.js +0 -1
  93. package/docs/sidechat.js/2.4.0/scripts/third-party/tocbot.js +0 -672
  94. package/docs/sidechat.js/2.4.0/scripts/third-party/tocbot.min.js +0 -1
  95. package/docs/sidechat.js/2.4.0/styles/clean-jsdoc-theme-base.css +0 -975
  96. package/docs/sidechat.js/2.4.0/styles/clean-jsdoc-theme-dark.css +0 -407
  97. package/docs/sidechat.js/2.4.0/styles/clean-jsdoc-theme-light.css +0 -388
  98. package/docs/sidechat.js/2.4.0/styles/clean-jsdoc-theme.min.css +0 -1
  99. package/docs/sidechat.js/2.4.0/tutorial-Authentication.html +0 -14
  100. package/docs/sidechat.js/2.4.0/tutorial-Email Registration.html +0 -6
  101. package/docs/sidechat.js/2.4.0/types_SidechatTypes.js.html +0 -134
  102. package/docs/sidechat.js/2.4.4/SidechatAPIClient.html +0 -3
  103. package/docs/sidechat.js/2.4.4/SidechatAPIError.html +0 -3
  104. package/docs/sidechat.js/2.4.4/SidechatColorList.html +0 -3
  105. package/docs/sidechat.js/2.4.4/classes_SidechatAPIClient.js.html +0 -1100
  106. package/docs/sidechat.js/2.4.4/classes_SidechatAPIError.js.html +0 -16
  107. package/docs/sidechat.js/2.4.4/classes_SidechatColorList.js.html +0 -79
  108. package/docs/sidechat.js/2.4.4/data/search.json +0 -1
  109. package/docs/sidechat.js/2.4.4/fonts/Inconsolata-Regular.ttf +0 -0
  110. package/docs/sidechat.js/2.4.4/fonts/OpenSans-Regular.ttf +0 -0
  111. package/docs/sidechat.js/2.4.4/fonts/WorkSans-Bold.ttf +0 -0
  112. package/docs/sidechat.js/2.4.4/global.html +0 -3
  113. package/docs/sidechat.js/2.4.4/index.html +0 -4
  114. package/docs/sidechat.js/2.4.4/scripts/core.js +0 -726
  115. package/docs/sidechat.js/2.4.4/scripts/core.min.js +0 -23
  116. package/docs/sidechat.js/2.4.4/scripts/resize.js +0 -90
  117. package/docs/sidechat.js/2.4.4/scripts/search.js +0 -265
  118. package/docs/sidechat.js/2.4.4/scripts/search.min.js +0 -6
  119. package/docs/sidechat.js/2.4.4/scripts/third-party/Apache-License-2.0.txt +0 -202
  120. package/docs/sidechat.js/2.4.4/scripts/third-party/fuse.js +0 -9
  121. package/docs/sidechat.js/2.4.4/scripts/third-party/hljs-line-num-original.js +0 -369
  122. package/docs/sidechat.js/2.4.4/scripts/third-party/hljs-line-num.js +0 -1
  123. package/docs/sidechat.js/2.4.4/scripts/third-party/hljs-original.js +0 -5171
  124. package/docs/sidechat.js/2.4.4/scripts/third-party/hljs.js +0 -1
  125. package/docs/sidechat.js/2.4.4/scripts/third-party/popper.js +0 -5
  126. package/docs/sidechat.js/2.4.4/scripts/third-party/tippy.js +0 -1
  127. package/docs/sidechat.js/2.4.4/scripts/third-party/tocbot.js +0 -672
  128. package/docs/sidechat.js/2.4.4/scripts/third-party/tocbot.min.js +0 -1
  129. package/docs/sidechat.js/2.4.4/styles/clean-jsdoc-theme-base.css +0 -1161
  130. package/docs/sidechat.js/2.4.4/styles/clean-jsdoc-theme-without-scrollbar.min.css +0 -1
  131. package/docs/sidechat.js/2.4.4/styles/clean-jsdoc-theme.min.css +0 -1
  132. package/docs/sidechat.js/2.4.4/tutorial-Authentication.html +0 -14
  133. package/docs/sidechat.js/2.4.4/tutorial-Email Registration.html +0 -6
  134. package/docs/sidechat.js/2.4.4/types_SidechatTypes.js.html +0 -160
  135. package/docs/sidechat.js/2.4.6/SidechatAPIClient.html +0 -3
  136. package/docs/sidechat.js/2.4.6/SidechatAPIError.html +0 -3
  137. package/docs/sidechat.js/2.4.6/SidechatColorList.html +0 -3
  138. package/docs/sidechat.js/2.4.6/classes_SidechatAPIError.js.html +0 -16
  139. package/docs/sidechat.js/2.4.6/classes_SidechatColorList.js.html +0 -79
  140. package/docs/sidechat.js/2.4.6/data/search.json +0 -1
  141. package/docs/sidechat.js/2.4.6/fonts/Inconsolata-Regular.ttf +0 -0
  142. package/docs/sidechat.js/2.4.6/fonts/OpenSans-Regular.ttf +0 -0
  143. package/docs/sidechat.js/2.4.6/fonts/WorkSans-Bold.ttf +0 -0
  144. package/docs/sidechat.js/2.4.6/global.html +0 -3
  145. package/docs/sidechat.js/2.4.6/index.html +0 -4
  146. package/docs/sidechat.js/2.4.6/scripts/resize.js +0 -90
  147. package/docs/sidechat.js/2.4.6/scripts/search.js +0 -265
  148. package/docs/sidechat.js/2.4.6/scripts/search.min.js +0 -6
  149. package/docs/sidechat.js/2.4.6/scripts/third-party/Apache-License-2.0.txt +0 -202
  150. package/docs/sidechat.js/2.4.6/scripts/third-party/fuse.js +0 -9
  151. package/docs/sidechat.js/2.4.6/scripts/third-party/hljs-line-num-original.js +0 -369
  152. package/docs/sidechat.js/2.4.6/scripts/third-party/hljs-line-num.js +0 -1
  153. package/docs/sidechat.js/2.4.6/scripts/third-party/hljs-original.js +0 -5171
  154. package/docs/sidechat.js/2.4.6/scripts/third-party/hljs.js +0 -1
  155. package/docs/sidechat.js/2.4.6/scripts/third-party/popper.js +0 -5
  156. package/docs/sidechat.js/2.4.6/scripts/third-party/tippy.js +0 -1
  157. package/docs/sidechat.js/2.4.6/scripts/third-party/tocbot.js +0 -672
  158. package/docs/sidechat.js/2.4.6/scripts/third-party/tocbot.min.js +0 -1
  159. package/docs/sidechat.js/2.4.6/styles/clean-jsdoc-theme-without-scrollbar.min.css +0 -1
  160. package/docs/sidechat.js/2.4.6/styles/clean-jsdoc-theme.min.css +0 -1
  161. package/docs/sidechat.js/2.4.6/tutorial-Authentication.html +0 -14
  162. package/docs/sidechat.js/2.4.6/tutorial-Email Registration.html +0 -6
  163. package/docs/sidechat.js/2.4.7/SidechatAPIClient.html +0 -3
  164. package/docs/sidechat.js/2.4.7/SidechatAPIError.html +0 -3
  165. package/docs/sidechat.js/2.4.7/SidechatColorList.html +0 -3
  166. package/docs/sidechat.js/2.4.7/classes_SidechatAPIError.js.html +0 -16
  167. package/docs/sidechat.js/2.4.7/classes_SidechatColorList.js.html +0 -79
  168. package/docs/sidechat.js/2.4.7/data/search.json +0 -1
  169. package/docs/sidechat.js/2.4.7/fonts/Inconsolata-Regular.ttf +0 -0
  170. package/docs/sidechat.js/2.4.7/fonts/OpenSans-Regular.ttf +0 -0
  171. package/docs/sidechat.js/2.4.7/fonts/WorkSans-Bold.ttf +0 -0
  172. package/docs/sidechat.js/2.4.7/global.html +0 -3
  173. package/docs/sidechat.js/2.4.7/index.html +0 -4
  174. package/docs/sidechat.js/2.4.7/scripts/resize.js +0 -90
  175. package/docs/sidechat.js/2.4.7/scripts/search.js +0 -265
  176. package/docs/sidechat.js/2.4.7/scripts/search.min.js +0 -6
  177. package/docs/sidechat.js/2.4.7/scripts/third-party/Apache-License-2.0.txt +0 -202
  178. package/docs/sidechat.js/2.4.7/scripts/third-party/fuse.js +0 -9
  179. package/docs/sidechat.js/2.4.7/scripts/third-party/hljs-line-num-original.js +0 -369
  180. package/docs/sidechat.js/2.4.7/scripts/third-party/hljs-line-num.js +0 -1
  181. package/docs/sidechat.js/2.4.7/scripts/third-party/hljs-original.js +0 -5171
  182. package/docs/sidechat.js/2.4.7/scripts/third-party/hljs.js +0 -1
  183. package/docs/sidechat.js/2.4.7/scripts/third-party/popper.js +0 -5
  184. package/docs/sidechat.js/2.4.7/scripts/third-party/tippy.js +0 -1
  185. package/docs/sidechat.js/2.4.7/scripts/third-party/tocbot.js +0 -672
  186. package/docs/sidechat.js/2.4.7/scripts/third-party/tocbot.min.js +0 -1
  187. package/docs/sidechat.js/2.4.7/styles/clean-jsdoc-theme-dark.css +0 -412
  188. package/docs/sidechat.js/2.4.7/styles/clean-jsdoc-theme-light.css +0 -482
  189. package/docs/sidechat.js/2.4.7/styles/clean-jsdoc-theme-scrollbar.css +0 -30
  190. package/docs/sidechat.js/2.4.7/tutorial-Authentication.html +0 -14
  191. package/docs/sidechat.js/2.4.7/tutorial-Email Registration.html +0 -6
  192. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/fonts/Inconsolata-Regular.ttf +0 -0
  193. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/fonts/OpenSans-Regular.ttf +0 -0
  194. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/fonts/WorkSans-Bold.ttf +0 -0
  195. /package/docs/sidechat.js/{2.4.7 → 2.5.6}/scripts/core.js +0 -0
  196. /package/docs/sidechat.js/{2.4.7 → 2.5.6}/scripts/core.min.js +0 -0
  197. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/resize.js +0 -0
  198. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/search.js +0 -0
  199. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/search.min.js +0 -0
  200. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/Apache-License-2.0.txt +0 -0
  201. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/fuse.js +0 -0
  202. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/hljs-line-num-original.js +0 -0
  203. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/hljs-line-num.js +0 -0
  204. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/hljs-original.js +0 -0
  205. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/hljs.js +0 -0
  206. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/popper.js +0 -0
  207. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/tippy.js +0 -0
  208. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/tocbot.js +0 -0
  209. /package/docs/sidechat.js/{1.0.0 → 2.5.6}/scripts/third-party/tocbot.min.js +0 -0
  210. /package/docs/sidechat.js/{2.4.7 → 2.5.6}/styles/clean-jsdoc-theme-base.css +0 -0
  211. /package/docs/sidechat.js/{2.4.4 → 2.5.6}/styles/clean-jsdoc-theme-dark.css +0 -0
  212. /package/docs/sidechat.js/{2.4.4 → 2.5.6}/styles/clean-jsdoc-theme-light.css +0 -0
  213. /package/docs/sidechat.js/{2.4.4 → 2.5.6}/styles/clean-jsdoc-theme-scrollbar.css +0 -0
  214. /package/docs/sidechat.js/{2.4.7 → 2.5.6}/styles/clean-jsdoc-theme-without-scrollbar.min.css +0 -0
  215. /package/docs/sidechat.js/{2.4.7 → 2.5.6}/styles/clean-jsdoc-theme.min.css +0 -0
  216. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/fonts/Inconsolata-Regular.ttf +0 -0
  217. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/fonts/OpenSans-Regular.ttf +0 -0
  218. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/fonts/WorkSans-Bold.ttf +0 -0
  219. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/resize.js +0 -0
  220. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/search.js +0 -0
  221. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/search.min.js +0 -0
  222. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/Apache-License-2.0.txt +0 -0
  223. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/fuse.js +0 -0
  224. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/hljs-line-num-original.js +0 -0
  225. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/hljs-line-num.js +0 -0
  226. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/hljs-original.js +0 -0
  227. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/hljs.js +0 -0
  228. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/popper.js +0 -0
  229. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/tippy.js +0 -0
  230. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/tocbot.js +0 -0
  231. /package/docs/sidechat.js/{2.0.0-alpha.0 → 2.6.0}/scripts/third-party/tocbot.min.js +0 -0
  232. /package/docs/sidechat.js/{2.4.6 → 2.6.0}/styles/clean-jsdoc-theme-dark.css +0 -0
  233. /package/docs/sidechat.js/{2.4.6 → 2.6.0}/styles/clean-jsdoc-theme-light.css +0 -0
  234. /package/docs/sidechat.js/{2.4.6 → 2.6.0}/styles/clean-jsdoc-theme-scrollbar.css +0 -0
@@ -1,3 +0,0 @@
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>Global</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">Home</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#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><article><div class="container-overview"></div><h2 id="type-definitions" class="subsection-title has-anchor">Type Definitions</h2><h3 class="name has-anchor" id="SidechatAssetMetadata">SidechatAssetMetadata</h3><div class="description"><p>An asset object, containing information about an image from the asset library</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>width</code></td><td class="type"><span class="param-type">Number</span></td><td class="description last"><p>width of asset</p></td></tr><tr><td class="name"><code>height</code></td><td class="type"><span class="param-type">Number</span></td><td class="description last"><p>height of asset</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"image"</span></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>content_type</code></td><td class="type"><span class="param-type">"jpeg"</span> |<wbr> <span class="param-type">"png"</span> |<wbr> <span class="param-type">"gif"</span></td><td class="description last"><p>file type of asset</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line68">line 68</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatAuthToken">SidechatAuthToken</h3><div class="description"><p>A user's bearer authentication token needed for most requests</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line119">line 119</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatColor">SidechatColor</h3><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>primary</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>hex code of primary color</p></td></tr><tr><td class="name"><code>secondary</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>hex code of secondary color</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatColorList.js.html">classes/SidechatColorList.js</a>, <a href="classes_SidechatColorList.js.html#line1">line 1</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatCurrentUser">SidechatCurrentUser</h3><div class="description"><p>The current user's information</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of current user</p></td></tr><tr><td class="name"><code>hashedVerifiedEmail</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>verified email of current user in an unreadable hashed form</p></td></tr><tr><td class="name"><code>isGlobalModerator</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>whether or not user is a moderator</p></td></tr><tr><td class="name"><code>isGlobalAdmin</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>whether or not user is an admin</p></td></tr><tr><td class="name"><code>memberships</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatMembership">SidechatMembership</a>></span></td><td class="description last"></td></tr><tr><td class="name"><code>roles</code></td><td class="type"><span class="param-type">Array</span></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>emailDomain</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>domain of verified email address on account</p></td></tr><tr><td class="name"><code>wildcardEmailDomain</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>domain of verified email address on account, preceeded by *. to support subdomains</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line84">line 84</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatCursorString">SidechatCursorString</h3><div class="description"><p>A cursor for paginating through post lists</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line109">line 109</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatDirectMessage">SidechatDirectMessage</h3><div class="description"><p>A single direct message</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>created_at</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>time at which the message was sent</p></td></tr><tr><td class="name"><code>client_id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of the device the message was sent on</p></td></tr><tr><td class="name"><code>obfuscatedUserId</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>obfuscated version of the sender's alphanumeric ID</p></td></tr><tr><td class="name"><code>text</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>body text of the message</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of the message</p></td></tr><tr><td class="name"><code>chat_id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of the thread in which the message resides</p></td></tr><tr><td class="name"><code>authored_by_user</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>whether or not the current user sent the message</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"message"</span></td><td class="description last"><p>undocumented</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line146">line 146</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatDirectThread">SidechatDirectThread</h3><div class="description"><p>A direct message thread</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of thread</p></td></tr><tr><td class="name"><code>group_id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of group in which the thread exists</p></td></tr><tr><td class="name"><code>updated_at</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>date string of when the last message in the chat was sent</p></td></tr><tr><td class="name"><code>post_id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>post or comment from which the thread was originally sent</p></td></tr><tr><td class="name"><code>post_context</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>the context of the DM thread (only &quot;feed&quot; is known at the moment)</p></td></tr><tr><td class="name"><code>accept_status</code></td><td class="type"><span class="param-type">"accepted"</span></td><td class="description last"><p>whether or not the other user has accepted this DM</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"post"</span> |<wbr> <span class="param-type">"comment"</span></td><td class="description last"><p>the type of the content from which the DM was originally sent</p></td></tr><tr><td class="name"><code>messages</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatDirectMessage">SidechatDirectMessage</a>></span></td><td class="description last"><p>array of direct message objects</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line133">line 133</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatGroup">SidechatGroup</h3><div class="description"><p>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.</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of group</p></td></tr><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>human-readable name of group</p></td></tr><tr><td class="name"><code>analytics_name</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>name to file group under</p></td></tr><tr><td class="name"><code>membership_type</code></td><td class="type"><span class="param-type">"non_member"</span> |<wbr> <span class="param-type">"member"</span></td><td class="attributes"></td><td class="description last"><p>whether or not current user is a member of group</p></td></tr><tr><td class="name"><code>color</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>group's theme color as hex code (e.g., #FFFFFF)</p></td></tr><tr><td class="name"><code>group_join_type</code></td><td class="type"><span class="param-type">"open"</span> |<wbr> <span class="param-type">"closed"</span> |<wbr> <span class="param-type">"email_domain"</span></td><td class="attributes"></td><td class="description last"><p>basis on which group accepts new members</p></td></tr><tr><td class="name"><code>group_visibility</code></td><td class="type"><span class="param-type">"private"</span> |<wbr> <span class="param-type">"public_to_all"</span> |<wbr> <span class="param-type">"public_to_schools"</span></td><td class="attributes"></td><td class="description last"><p>group's visibility setting</p></td></tr><tr><td class="name"><code>asset_library_visibility</code></td><td class="type"><span class="param-type">"show"</span> |<wbr> <span class="param-type">"hide"</span></td><td class="attributes"></td><td class="description last"><p>whether or not group's asset library is visible</p></td></tr><tr><td class="name"><code>roles</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>description</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>description of group</p></td></tr><tr><td class="name"><code>icon_url</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>image URL for group icon</p></td></tr><tr><td class="name"><code>member_count</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>number of users in group</p></td></tr><tr><td class="name"><code>should_show_leaderboard</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>undocumented</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line30">line 30</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatIdentity">SidechatIdentity</h3><div class="description"><p>A user's anonymous identity information</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>representation of user's name (varies across app)</p></td></tr><tr><td class="name"><code>posted_with_username</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>undocumented</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line77">line 77</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatLibraryAsset">SidechatLibraryAsset</h3><div class="description"><p>An asset object, containing information about an image from the asset library</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of asset</p></td></tr><tr><td class="name"><code>created_at</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>date string of asset creation time</p></td></tr><tr><td class="name"><code>metadata</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></span></td><td class="description last"><p>metadata associated with asset</p></td></tr><tr><td class="name"><code>url</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></span></td><td class="description last"><p>URL string of asset's location</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line59">line 59</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatMembership">SidechatMembership</h3><div class="description"><p>Representation of a group membership</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>groupId</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of group</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>role of current user in group</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line97">line 97</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatPostOrComment">SidechatPostOrComment</h3><div class="description"><p>A user-created post or comment, depending on the &quot;type&quot; prop</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"post"</span> |<wbr> <span class="param-type">"comment"</span></td><td class="attributes"></td><td class="description last"><p>whether this object represents a post or a comment on a post</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of post or comment</p></td></tr><tr><td class="name"><code>authored_by_user</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>alias</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>post creator's name in-app</p></td></tr><tr><td class="name"><code>group_id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of group</p></td></tr><tr><td class="name"><code>group</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatGroup">SidechatGroup</a></span></td><td class="attributes"></td><td class="description last"><p>group in which post or comment was created</p></td></tr><tr><td class="name"><code>text</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>text content of post or comment</p></td></tr><tr><td class="name"><code>created_at</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>date string of post or comment creation time</p></td></tr><tr><td class="name"><code>vote_total</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes"></td><td class="description last"><p>sum of upvotes and downvotes</p></td></tr><tr><td class="name"><code>vote_status</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatVoteString">SidechatVoteString</a></span></td><td class="attributes"></td><td class="description last"><p>current user's vote on post or comment</p></td></tr><tr><td class="name"><code>assets</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a>></span></td><td class="attributes"></td><td class="description last"><p>array of simple assets attached to post or comment</p></td></tr><tr><td class="name"><code>attachments</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>dms_disabled</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>whether or not you can send a DM to creator of post</p></td></tr><tr><td class="name"><code>tags</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>identity</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatIdentity">SidechatIdentity</a></span></td><td class="attributes"></td><td class="description last"><p>creator's identity information</p></td></tr><tr><td class="name"><code>pinned</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>is_saved</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>follow_status</code></td><td class="type"><span class="param-type">"following"</span> |<wbr> <span class="param-type">"not_following"</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>destination</code></td><td class="type"><span class="param-type">"group"</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>comment_count</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>number of comments on post (only if type=post)</p></td></tr><tr><td class="name"><code>comments_disabled</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>whether or not you can comment on post (only if type=post)</p></td></tr><tr><td class="name"><code>parent_post_id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>alphanumeric ID of parent post (only if type=comment)</p></td></tr><tr><td class="name"><code>reply_post_id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>alphanumeric ID of comment being replied to, falls back to parent_post_id (only if type=comment)</p></td></tr><tr><td class="name"><code>context</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>text content of comment being replied to, falls back to text (only if type=comment)</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line1">line 1</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatPostsAndCursor">SidechatPostsAndCursor</h3><div class="description"><p>A list of posts and the associated cursor</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>posts</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>></span></td><td class="description last"></td></tr><tr><td class="name"><code>cursor</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatCursorString">SidechatCursorString</a></span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line124">line 124</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatPrivateAssetURL">SidechatPrivateAssetURL</h3><div class="description"><p>An asset URL that can only be accessed by making a request with a user's bearer token attached in the Authorization header</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line104">line 104</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatSimpleAsset">SidechatSimpleAsset</h3><div class="description"><p>An asset object, containing information about an image within a post or comment</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of asset</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"image"</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>content_type</code></td><td class="type"><span class="param-type">"jpeg"</span> |<wbr> <span class="param-type">"png"</span> |<wbr> <span class="param-type">"gif"</span></td><td class="attributes"></td><td class="description last"><p>file type of asset</p></td></tr><tr><td class="name"><code>width</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes"></td><td class="description last"><p>width of asset</p></td></tr><tr><td class="name"><code>height</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes"></td><td class="description last"><p>height of asset</p></td></tr><tr><td class="name"><code>url</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>URL string of asset's location</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line48">line 48</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatVoteString">SidechatVoteString</h3><div class="description"><p>A vote on a comment or post</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">"upvote"</span> |<wbr> <span class="param-type">"downvote"</span> |<wbr> <span class="param-type">"none"</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line114">line 114</a></li></ul></dd></div></dl></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">Home</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#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>
@@ -1,4 +0,0 @@
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>Sidechat.js Documentation</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">Home</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#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 class="readme"><article><h1 id="sidechat.js">sidechat.js</h1><p><a href="https://www.npmjs.com/package/sidechat.js?activeTab=versions"><img src="https://img.shields.io/npm/v/sidechat.js" alt="NPM Version"></a><a href="https://github.com/micahlt/sidechat.js"><img src="https://img.shields.io/github/last-commit/micahlt/sidechat.js" alt="GitHub last commit"></a><a href=""><img src="https://img.shields.io/npm/l/sidechat.js" alt="NPM License"></a><a href="https://npmjs.com/package/sidechat.js"><img src="https://img.shields.io/npm/dt/sidechat.js?label=downloads" alt="NPM Downloads"></a><a href="https://www.npmjs.com/package/sidechat.js?activeTab=code"><img src="https://img.shields.io/bundlephobia/min/sidechat.js" alt="npm bundle size"></a></p><p>A reverse-engineered API wrapper for <a href="https://sidechat.lol">Sidechat/YikYak</a> in Node. Easy to use, documented with JSDoc, and kept up to date as much as possible. Designed for <a href="https://github.com/micahlt/offsides">Offsides</a>, a third-party Sidechat client for Android devices. Documentation can be found <a href="https://micahlindley.com/sidechat.js">here</a>.</p><h2 id="getting-started">Getting Started</h2><blockquote><p>Note: sidechat.js uses the Fetch API released in Node.js 18. If you're attempting to use it in a lower version of Node you will have to polyfill the fetch requests yourself.</p></blockquote><p>Install sidechat.js with your preferred package manager:</p><pre class="prettyprint source lang-bash"><code>$ npm install sidechat.js
4
- </code></pre><p>Next, take a look at the <a href="https://micahlindley.com/sidechat.js/tutorial-Authentication.html">authentication tutorial</a> to find out how to log your client in and begin making requests.</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">Home</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#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>
@@ -1,90 +0,0 @@
1
- /* global document */
2
- // This file is @deprecated
3
-
4
- var NAVBAR_OPTIONS = {};
5
-
6
- (function() {
7
- var NAVBAR_RESIZE_LOCAL_STORAGE_KEY = 'NAVBAR_RESIZE_LOCAL_STORAGE_KEY';
8
-
9
- var navbar = document.querySelector('#navbar');
10
- var footer = document.querySelector('#footer');
11
- var mainSection = document.querySelector('#main');
12
- var localStorageResizeObject = JSON.parse(
13
- // eslint-disable-next-line no-undef
14
- localStorage.getItem(NAVBAR_RESIZE_LOCAL_STORAGE_KEY)
15
- );
16
-
17
- /**
18
- * Check whether we have any resize value in local storage or not.
19
- * If we have resize value then resize the navbar.
20
- **/
21
- if (localStorageResizeObject) {
22
- navbar.style.width = localStorageResizeObject.width;
23
- mainSection.style.marginLeft = localStorageResizeObject.width;
24
- footer.style.marginLeft = localStorageResizeObject.width;
25
- }
26
-
27
- var navbarSlider = document.querySelector('#navbar-resize');
28
-
29
- function resizeNavbar(event) {
30
- var pageX = event.pageX,
31
- pageXPlusPx = event.pageX + 'px',
32
- min = Number.parseInt(NAVBAR_OPTIONS.min, 10) || 300,
33
- max = Number.parseInt(NAVBAR_OPTIONS.max, 10) || 600;
34
-
35
- /**
36
- * Just to add some checks. If min is smaller than 10 then
37
- * user may accidentally end up reducing the size of navbar
38
- * less than 10. In that case user will not able to resize navbar
39
- * because navbar slider will be hidden.
40
- */
41
- if (min < 10) {
42
- min = 10;
43
- }
44
-
45
- /**
46
- * Only resize if pageX in range between min and max
47
- * allowed value.
48
- */
49
- if (min < pageX && pageX < max) {
50
- navbar.style.width = pageXPlusPx;
51
- mainSection.style.marginLeft = pageXPlusPx;
52
- footer.style.marginLeft = pageXPlusPx;
53
- }
54
- }
55
-
56
- function setupEventListeners() {
57
- // eslint-disable-next-line no-undef
58
- window.addEventListener('mousemove', resizeNavbar);
59
- // eslint-disable-next-line no-undef
60
- window.addEventListener('touchmove', resizeNavbar);
61
- }
62
-
63
- function afterRemovingEventListeners() {
64
- // eslint-disable-next-line no-undef
65
- localStorage.setItem(
66
- NAVBAR_RESIZE_LOCAL_STORAGE_KEY,
67
- JSON.stringify({
68
- width: navbar.style.width
69
- })
70
- );
71
- }
72
-
73
- function removeEventListeners() {
74
- // eslint-disable-next-line no-undef
75
- window.removeEventListener('mousemove', resizeNavbar);
76
- // eslint-disable-next-line no-undef
77
- window.removeEventListener('touchend', resizeNavbar);
78
- afterRemovingEventListeners();
79
- }
80
-
81
- navbarSlider.addEventListener('mousedown', setupEventListeners);
82
- navbarSlider.addEventListener('touchstart', setupEventListeners);
83
- // eslint-disable-next-line no-undef
84
- window.addEventListener('mouseup', removeEventListeners);
85
- })();
86
-
87
- // eslint-disable-next-line no-unused-vars
88
- function setupResizeOptions(options) {
89
- NAVBAR_OPTIONS = options;
90
- }
@@ -1,265 +0,0 @@
1
- /* global document */
2
-
3
- const searchId = 'LiBfqbJVcV';
4
- const searchHash = '#' + searchId;
5
- const searchContainer = document.querySelector('#PkfLWpAbet');
6
- const searchWrapper = document.querySelector('#iCxFxjkHbP');
7
- const searchCloseButton = document.querySelector('#VjLlGakifb');
8
- const searchInput = document.querySelector('#vpcKVYIppa');
9
- const resultBox = document.querySelector('#fWwVHRuDuN');
10
-
11
- function showResultText(text) {
12
- resultBox.innerHTML = `<span class="search-result-c-text">${text}</span>`;
13
- }
14
-
15
- function hideSearch() {
16
- // eslint-disable-next-line no-undef
17
- if (window.location.hash === searchHash) {
18
- // eslint-disable-next-line no-undef
19
- history.go(-1);
20
- }
21
-
22
- // eslint-disable-next-line no-undef
23
- window.onhashchange = null;
24
-
25
- if (searchContainer) {
26
- searchContainer.style.display = 'none';
27
- }
28
- }
29
-
30
- function listenCloseKey(event) {
31
- if (event.key === 'Escape') {
32
- hideSearch();
33
- // eslint-disable-next-line no-undef
34
- window.removeEventListener('keyup', listenCloseKey);
35
- }
36
- }
37
-
38
- function showSearch() {
39
- try {
40
- // Closing mobile menu before opening
41
- // search box.
42
- // It is defined in core.js
43
- // eslint-disable-next-line no-undef
44
- hideMobileMenu();
45
- } catch (error) {
46
- console.error(error);
47
- }
48
-
49
- // eslint-disable-next-line no-undef
50
- window.onhashchange = hideSearch;
51
-
52
- // eslint-disable-next-line no-undef
53
- if (window.location.hash !== searchHash) {
54
- // eslint-disable-next-line no-undef
55
- history.pushState(null, null, searchHash);
56
- }
57
-
58
- if (searchContainer) {
59
- searchContainer.style.display = 'flex';
60
- // eslint-disable-next-line no-undef
61
- window.addEventListener('keyup', listenCloseKey);
62
- }
63
-
64
- if (searchInput) {
65
- searchInput.focus();
66
- }
67
- }
68
-
69
- async function fetchAllData() {
70
- // eslint-disable-next-line no-undef
71
- const { hostname, protocol, port } = location;
72
-
73
- // eslint-disable-next-line no-undef
74
- const base = protocol + '//' + hostname + (port !== '' ? ':' + port : '') + baseURL;
75
- // eslint-disable-next-line no-undef
76
- const url = new URL('data/search.json', base);
77
- const result = await fetch(url);
78
- const { list } = await result.json();
79
-
80
- return list;
81
- }
82
-
83
- // eslint-disable-next-line no-unused-vars
84
- function onClickSearchItem(event) {
85
- const target = event.currentTarget;
86
-
87
- if (target) {
88
- const href = target.getAttribute('href') || '';
89
- let elementId = href.split('#')[1] || '';
90
- let element = document.getElementById(elementId);
91
-
92
- if (!element) {
93
- elementId = decodeURI(elementId);
94
- element = document.getElementById(elementId);
95
- }
96
-
97
- if (element) {
98
- setTimeout(function() {
99
- // eslint-disable-next-line no-undef
100
- bringElementIntoView(element); // defined in core.js
101
- }, 100);
102
- }
103
- }
104
- }
105
-
106
- function buildSearchResult(result) {
107
- let output = '';
108
- const removeHTMLTagsRegExp = /(<([^>]+)>)/ig;
109
-
110
- for (const res of result) {
111
- const { title = '', description = '' } = res.item;
112
-
113
- const _link = res.item.link.replace('<a href="', '').replace(/">.*/, '');
114
- const _title = title.replace(removeHTMLTagsRegExp, "");
115
- const _description = description.replace(removeHTMLTagsRegExp, "");
116
-
117
- output += `
118
- <a onclick="onClickSearchItem(event)" href="${_link}" class="search-result-item">
119
- <div class="search-result-item-title">${_title}</div>
120
- <div class="search-result-item-p">${_description || 'No description available.'}</div>
121
- </a>
122
- `;
123
- }
124
-
125
- return output;
126
- }
127
-
128
- function getSearchResult(list, keys, searchKey) {
129
- const defaultOptions = {
130
- shouldSort: true,
131
- threshold: 0.4,
132
- location: 0,
133
- distance: 100,
134
- maxPatternLength: 32,
135
- minMatchCharLength: 1,
136
- keys: keys
137
- };
138
-
139
- const options = { ...defaultOptions };
140
-
141
- // eslint-disable-next-line no-undef
142
- const searchIndex = Fuse.createIndex(options.keys, list);
143
-
144
- // eslint-disable-next-line no-undef
145
- const fuse = new Fuse(list, options, searchIndex);
146
-
147
- const result = fuse.search(searchKey);
148
-
149
- if (result.length > 20) {
150
- return result.slice(0, 20);
151
- }
152
-
153
- return result;
154
- }
155
-
156
- function debounce(func, wait, immediate) {
157
- let timeout;
158
-
159
- return function() {
160
- const args = arguments;
161
-
162
- clearTimeout(timeout);
163
- timeout = setTimeout(() => {
164
- timeout = null;
165
- if (!immediate) {
166
- // eslint-disable-next-line consistent-this, no-invalid-this
167
- func.apply(this, args);
168
- }
169
- }, wait);
170
-
171
- if (immediate && !timeout) {
172
- // eslint-disable-next-line consistent-this, no-invalid-this
173
- func.apply(this, args);
174
- }
175
- };
176
- }
177
-
178
- let searchData;
179
-
180
- async function search(event) {
181
- const value = event.target.value;
182
- const keys = ['title', 'description'];
183
-
184
- if (!resultBox) {
185
- console.error('Search result container not found');
186
-
187
- return;
188
- }
189
-
190
- if (!value) {
191
- showResultText('Type anything to view search result');
192
-
193
- return;
194
- }
195
-
196
- if (!searchData) {
197
- showResultText('Loading...');
198
-
199
- try {
200
- // eslint-disable-next-line require-atomic-updates
201
- searchData = await fetchAllData();
202
- } catch (e) {
203
- console.log(e);
204
- showResultText('Failed to load result.');
205
-
206
- return;
207
- }
208
- }
209
-
210
- const result = getSearchResult(searchData, keys, value);
211
-
212
- if (!result.length) {
213
- showResultText('No result found! Try some different combination.');
214
-
215
- return;
216
- }
217
-
218
- // eslint-disable-next-line require-atomic-updates
219
- resultBox.innerHTML = buildSearchResult(result);
220
- }
221
-
222
- function onDomContentLoaded() {
223
- const searchButton = document.querySelectorAll('.search-button');
224
- const debouncedSearch = debounce(search, 300);
225
-
226
- if (searchCloseButton) {
227
- searchCloseButton.addEventListener('click', hideSearch);
228
- }
229
-
230
- if (searchButton) {
231
- searchButton.forEach(function(item) {
232
- item.addEventListener('click', showSearch);
233
- });
234
- }
235
-
236
- if (searchContainer) {
237
- searchContainer.addEventListener('click', hideSearch);
238
- }
239
-
240
- if (searchWrapper) {
241
- searchWrapper.addEventListener('click', function(event) {
242
- event.stopPropagation();
243
- });
244
- }
245
-
246
- if (searchInput) {
247
- searchInput.addEventListener('keyup', debouncedSearch);
248
- }
249
-
250
- // eslint-disable-next-line no-undef
251
- if (window.location.hash === searchHash) {
252
- showSearch();
253
- }
254
- }
255
-
256
- // eslint-disable-next-line no-undef
257
- window.addEventListener('DOMContentLoaded', onDomContentLoaded);
258
-
259
- // eslint-disable-next-line no-undef
260
- window.addEventListener('hashchange', function() {
261
- // eslint-disable-next-line no-undef
262
- if (window.location.hash === searchHash) {
263
- showSearch();
264
- }
265
- });
@@ -1,6 +0,0 @@
1
- const searchId="LiBfqbJVcV",searchHash="#"+searchId,searchContainer=document.querySelector("#PkfLWpAbet"),searchWrapper=document.querySelector("#iCxFxjkHbP"),searchCloseButton=document.querySelector("#VjLlGakifb"),searchInput=document.querySelector("#vpcKVYIppa"),resultBox=document.querySelector("#fWwVHRuDuN");function showResultText(e){resultBox.innerHTML=`<span class="search-result-c-text">${e}</span>`}function hideSearch(){window.location.hash===searchHash&&history.go(-1),window.onhashchange=null,searchContainer&&(searchContainer.style.display="none")}function listenCloseKey(e){"Escape"===e.key&&(hideSearch(),window.removeEventListener("keyup",listenCloseKey))}function showSearch(){try{hideMobileMenu()}catch(e){console.error(e)}window.onhashchange=hideSearch,window.location.hash!==searchHash&&history.pushState(null,null,searchHash),searchContainer&&(searchContainer.style.display="flex",window.addEventListener("keyup",listenCloseKey)),searchInput&&searchInput.focus()}async function fetchAllData(){var{hostname:e,protocol:t,port:n}=location,t=t+"//"+e+(""!==n?":"+n:"")+baseURL,e=new URL("data/search.json",t);const a=await fetch(e);n=(await a.json()).list;return n}function onClickSearchItem(t){const n=t.currentTarget;if(n){const a=n.getAttribute("href")||"";t=a.split("#")[1]||"";let e=document.getElementById(t);e||(t=decodeURI(t),e=document.getElementById(t)),e&&setTimeout(function(){bringElementIntoView(e)},100)}}function buildSearchResult(e){let t="";var n=/(<([^>]+)>)/gi;for(const s of e){const{title:c="",description:i=""}=s.item;var a=s.item.link.replace('<a href="',"").replace(/">.*/,""),o=c.replace(n,""),r=i.replace(n,"");t+=`
2
- <a onclick="onClickSearchItem(event)" href="${a}" class="search-result-item">
3
- <div class="search-result-item-title">${o}</div>
4
- <div class="search-result-item-p">${r||"No description available."}</div>
5
- </a>
6
- `}return t}function getSearchResult(e,t,n){var t={...{shouldSort:!0,threshold:.4,location:0,distance:100,maxPatternLength:32,minMatchCharLength:1,keys:t}},a=Fuse.createIndex(t.keys,e);const o=new Fuse(e,t,a),r=o.search(n);return 20<r.length?r.slice(0,20):r}function debounce(t,n,a){let o;return function(){const e=arguments;clearTimeout(o),o=setTimeout(()=>{o=null,a||t.apply(this,e)},n),a&&!o&&t.apply(this,e)}}let searchData;async function search(e){e=e.target.value;if(resultBox)if(e){if(!searchData){showResultText("Loading...");try{searchData=await fetchAllData()}catch(e){return console.log(e),void showResultText("Failed to load result.")}}e=getSearchResult(searchData,["title","description"],e);e.length?resultBox.innerHTML=buildSearchResult(e):showResultText("No result found! Try some different combination.")}else showResultText("Type anything to view search result");else console.error("Search result container not found")}function onDomContentLoaded(){const e=document.querySelectorAll(".search-button");var t=debounce(search,300);searchCloseButton&&searchCloseButton.addEventListener("click",hideSearch),e&&e.forEach(function(e){e.addEventListener("click",showSearch)}),searchContainer&&searchContainer.addEventListener("click",hideSearch),searchWrapper&&searchWrapper.addEventListener("click",function(e){e.stopPropagation()}),searchInput&&searchInput.addEventListener("keyup",t),window.location.hash===searchHash&&showSearch()}window.addEventListener("DOMContentLoaded",onDomContentLoaded),window.addEventListener("hashchange",function(){window.location.hash===searchHash&&showSearch()});