sidechat.js 2.3.3 → 2.3.6

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 (48) hide show
  1. package/dist/classes/SidechatAPIClient.d.ts +39 -2
  2. package/dist/classes/SidechatAPIClient.d.ts.map +1 -1
  3. package/dist/classes/SidechatColorList.d.ts +25 -0
  4. package/dist/classes/SidechatColorList.d.ts.map +1 -0
  5. package/dist/index.cjs +246 -2
  6. package/dist/index.d.mts +2 -1
  7. package/dist/index.d.ts +2 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.mjs +246 -3
  10. package/docs/sidechat.js/2.3.6/SidechatAPIClient.html +3 -0
  11. package/docs/sidechat.js/2.3.6/SidechatAPIError.html +3 -0
  12. package/docs/sidechat.js/2.3.6/classes_SidechatAPIClient.js.html +919 -0
  13. package/docs/sidechat.js/2.3.6/classes_SidechatAPIError.js.html +16 -0
  14. package/docs/sidechat.js/2.3.6/classes_SidechatColorList.js.html +80 -0
  15. package/docs/sidechat.js/2.3.6/data/search.json +1 -0
  16. package/docs/sidechat.js/2.3.6/fonts/Inconsolata-Regular.ttf +0 -0
  17. package/docs/sidechat.js/2.3.6/fonts/OpenSans-Regular.ttf +0 -0
  18. package/docs/sidechat.js/2.3.6/fonts/WorkSans-Bold.ttf +0 -0
  19. package/docs/sidechat.js/2.3.6/global.html +3 -0
  20. package/docs/sidechat.js/2.3.6/index.html +4 -0
  21. package/docs/sidechat.js/2.3.6/scripts/core.js +702 -0
  22. package/docs/sidechat.js/2.3.6/scripts/core.min.js +23 -0
  23. package/docs/sidechat.js/2.3.6/scripts/resize.js +90 -0
  24. package/docs/sidechat.js/2.3.6/scripts/search.js +265 -0
  25. package/docs/sidechat.js/2.3.6/scripts/search.min.js +6 -0
  26. package/docs/sidechat.js/2.3.6/scripts/third-party/Apache-License-2.0.txt +202 -0
  27. package/docs/sidechat.js/2.3.6/scripts/third-party/fuse.js +9 -0
  28. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs-line-num-original.js +369 -0
  29. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs-line-num.js +1 -0
  30. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs-original.js +5171 -0
  31. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs.js +1 -0
  32. package/docs/sidechat.js/2.3.6/scripts/third-party/popper.js +5 -0
  33. package/docs/sidechat.js/2.3.6/scripts/third-party/tippy.js +1 -0
  34. package/docs/sidechat.js/2.3.6/scripts/third-party/tocbot.js +672 -0
  35. package/docs/sidechat.js/2.3.6/scripts/third-party/tocbot.min.js +1 -0
  36. package/docs/sidechat.js/2.3.6/styles/clean-jsdoc-theme-base.css +975 -0
  37. package/docs/sidechat.js/2.3.6/styles/clean-jsdoc-theme-dark.css +407 -0
  38. package/docs/sidechat.js/2.3.6/styles/clean-jsdoc-theme-light.css +388 -0
  39. package/docs/sidechat.js/2.3.6/styles/clean-jsdoc-theme.min.css +1 -0
  40. package/docs/sidechat.js/2.3.6/tutorial-Authentication.html +14 -0
  41. package/docs/sidechat.js/2.3.6/tutorial-Email Registration.html +6 -0
  42. package/docs/sidechat.js/2.3.6/types_SidechatTypes.js.html +134 -0
  43. package/jsdoc.json +2 -1
  44. package/package.json +1 -1
  45. package/src/classes/SidechatAPIClient.js +169 -2
  46. package/src/classes/SidechatColorList.js +77 -0
  47. package/src/index.js +2 -1
  48. package/src/tests/colorTest.js +1 -0
@@ -0,0 +1,134 @@
1
+ <!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Source: types/SidechatTypes.js</title><!--[if lt IE 9]>
2
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
3
+ <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(baseURL=(baseURL="https://micahlindley.com/sidechat.js/").replace(/https?:\/\//i,"")).substr(baseURL.indexOf("/"))</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">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><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#SidechatColorList">SidechatColorList</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#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://github.com/micahlt/offsides#README.md" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section id="source-page" class="source-page"><header><h1 id="title" class="has-anchor">types_SidechatTypes.js</h1></header><article><pre class="prettyprint source lang-js"><code>/**
4
+ * A user-created post or comment, depending on the "type" prop
5
+ * @typedef {Object} SidechatPostOrComment
6
+ * @prop {"post"|"comment"} type - whether this object represents a post or a comment on a post
7
+ * @prop {String} id - alphanumeric ID of post or comment
8
+ * @prop {Boolean} authored_by_user - undocumented
9
+ * @prop {String} alias - post creator's name in-app
10
+ * @prop {String} group_id - alphanumeric ID of group
11
+ * @prop {SidechatGroup} group - group in which post or comment was created
12
+ * @prop {String} text - text content of post or comment
13
+ * @prop {String} created_at - date string of post or comment creation time
14
+ * @prop {Number} vote_total - sum of upvotes and downvotes
15
+ * @prop {SidechatVoteString} vote_status - current user's vote on post or comment
16
+ * @prop {SidechatSimpleAsset[]} assets - array of simple assets attached to post or comment
17
+ * @prop {Array} attachments - undocumented
18
+ * @prop {Boolean} dms_disabled - whether or not you can send a DM to creator of post
19
+ * @prop {Array} tags - undocumented
20
+ * @prop {SidechatIdentity} identity - creator's identity information
21
+ * @prop {Boolean} pinned - undocumented
22
+ * @prop {Boolean} is_saved - undocumented
23
+ * @prop {"following"|"not_following"} follow_status - undocumented
24
+ * @prop {"group"} [destination] - undocumented
25
+ * @prop {Number} [comment_count] - number of comments on post (only if type=post)
26
+ * @prop {Boolean} [comments_disabled] - whether or not you can comment on post (only if type=post)
27
+ * @prop {String} [parent_post_id] - alphanumeric ID of parent post (only if type=comment)
28
+ * @prop {String} [reply_post_id] - alphanumeric ID of comment being replied to, falls back to parent_post_id (only if type=comment)
29
+ * @prop {String} [context] - text content of comment being replied to, falls back to text (only if type=comment)
30
+ */
31
+
32
+ /**
33
+ * 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.
34
+ * @typedef {Object} SidechatGroup
35
+ * @prop {String} id - alphanumeric ID of group
36
+ * @prop {String} name - human-readable name of group
37
+ * @prop {String} analytics_name - name to file group under
38
+ * @prop {"non_member"|"member"} membership_type - whether or not current user is a member of group
39
+ * @prop {String} color - group's theme color as hex code (e.g., #FFFFFF)
40
+ * @prop {"open"|"closed"|"email_domain"} group_join_type - basis on which group accepts new members
41
+ * @prop {"private"|"public_to_all"|"public_to_schools"} group_visibility - group's visibility setting
42
+ * @prop {"show"|"hide"} asset_library_visibility - whether or not group's asset library is visible
43
+ * @prop {Array} [roles] - undocumented
44
+ * @prop {String} [description] - description of group
45
+ * @prop {SidechatPrivateAssetURL} [icon_url] - image URL for group icon
46
+ * @prop {Number} [member_count] - number of users in group
47
+ * @prop {Boolean} [should_show_leaderboard] - undocumented
48
+ */
49
+
50
+ /**
51
+ * An asset object, containing information about an image within a post or comment
52
+ * @typedef {Object} SidechatSimpleAsset
53
+ * @prop {String} id - alphanumeric ID of asset
54
+ * @prop {"image"} type - undocumented
55
+ * @prop {"jpeg"|"png"|"gif"} content_type - file type of asset
56
+ * @prop {Number} width - width of asset
57
+ * @prop {Number} height - height of asset
58
+ * @prop {SidechatPrivateAssetURL} [url] - URL string of asset's location
59
+ */
60
+
61
+ /**
62
+ * An asset object, containing information about an image from the asset library
63
+ * @typedef {Object} SidechatLibraryAsset
64
+ * @prop {String} id - alphanumeric ID of asset
65
+ * @prop {String} created_at - date string of asset creation time
66
+ * @prop {SidechatAssetMetadata} metadata - metadata associated with asset
67
+ * @prop {SidechatPrivateAssetURL} url - URL string of asset's location
68
+ */
69
+
70
+ /**
71
+ * An asset object, containing information about an image from the asset library
72
+ * @typedef {Object} SidechatAssetMetadata
73
+ * @prop {Number} width - width of asset
74
+ * @prop {Number} height - height of asset
75
+ * @prop {"image"} type - undocumented
76
+ * @prop {"jpeg"|"png"|"gif"} content_type - file type of asset
77
+ */
78
+
79
+ /**
80
+ * A user's anonymous identity information
81
+ * @typedef {Object} SidechatIdentity
82
+ * @prop {String} name - representation of user's name (varies across app)
83
+ * @prop {Boolean} posted_with_username - undocumented
84
+ */
85
+
86
+ /**
87
+ * The current user's information
88
+ * @typedef {Object} SidechatCurrentUser
89
+ * @prop {String} id - alphanumeric ID of current user
90
+ * @prop {String} hashedVerifiedEmail - verified email of current user in an unreadable hashed form
91
+ * @prop {Boolean} isGlobalModerator - whether or not user is a moderator
92
+ * @prop {Boolean} isGlobalAdmin - whether or not user is an admin
93
+ * @prop {SidechatMembership[]} memberships
94
+ * @prop {Array} roles - undocumented
95
+ * @prop {String} emailDomain - domain of verified email address on account
96
+ * @prop {String} wildcardEmailDomain - domain of verified email address on account, preceeded by *. to support subdomains
97
+ */
98
+
99
+ /**
100
+ * Representation of a group membership
101
+ * @typedef {Object} SidechatMembership
102
+ * @prop {String} groupId - alphanumeric ID of group
103
+ * @prop {String} type - role of current user in group
104
+ */
105
+
106
+ /**
107
+ * An asset URL that can only be accessed by making a request with a user's bearer token attached in the Authorization header
108
+ * @typedef {String} SidechatPrivateAssetURL
109
+ */
110
+
111
+ /**
112
+ * A cursor for paginating through post lists
113
+ * @typedef {String} SidechatCursorString
114
+ */
115
+
116
+ /**
117
+ * A vote on a comment or post
118
+ * @typedef {"upvote"|"downvote"|"none"} SidechatVoteString
119
+ */
120
+
121
+ /**
122
+ * A user's bearer authentication token needed for most requests
123
+ * @typedef {String} SidechatAuthToken
124
+ */
125
+
126
+ /**
127
+ * A list of posts and the associated cursor
128
+ * @typedef {Object} SidechatPostsAndCursor
129
+ * @prop {SidechatPostOrComment[]} posts
130
+ * @prop {SidechatCursorString} cursor
131
+ */
132
+
133
+ export default {};
134
+ </code></pre></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Home</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://github.com/micahlt/offsides#README.md" 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><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#SidechatColorList">SidechatColorList</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#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>
package/jsdoc.json CHANGED
@@ -6,7 +6,8 @@
6
6
  "README.md",
7
7
  "src/types/SidechatTypes.js",
8
8
  "src/classes/SidechatAPIClient.js",
9
- "src/classes/SidechatAPIError.js"
9
+ "src/classes/SidechatAPIError.js",
10
+ "src/classes/SidechatColorList.js"
10
11
  ],
11
12
  "includePattern": ".js$",
12
13
  "excludePattern": "(node_modules/|docs)"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sidechat.js",
3
- "version": "2.3.3",
3
+ "version": "2.3.6",
4
4
  "description": "A reverse-engineered API wrapper for Sidechat",
5
5
  "type": "module",
6
6
  "source": "./src/index.js",
@@ -373,6 +373,41 @@ class SidechatAPIClient {
373
373
  }
374
374
  };
375
375
 
376
+ /**
377
+ * Fetches the posts or comments that the user has created
378
+ * @method
379
+ * @since 2.3.5
380
+ * @param {"posts"|"comments"} contentType - type of user content to fetch
381
+ * @returns {SidechatPostOrComment[]} post object
382
+ */
383
+ getUserContent = async (contentType) => {
384
+ if (!this.userToken) {
385
+ throw new SidechatAPIError("User is not authenticated.");
386
+ }
387
+ if (contentType == "posts") {
388
+ contentType = "my_posts";
389
+ } else if (contentType == "comments") {
390
+ contentType = "my_comments";
391
+ }
392
+ try {
393
+ const res = await fetch(
394
+ `https://api.sidechat.lol/v1/posts&type=${contentType}`,
395
+ {
396
+ method: "GET",
397
+ headers: {
398
+ ...this.defaultHeaders,
399
+ Authorization: `Bearer ${this.userToken}`,
400
+ },
401
+ }
402
+ );
403
+ const json = await res.json();
404
+ return json.posts;
405
+ } catch (err) {
406
+ console.error(err);
407
+ throw new SidechatAPIError(`Failed to get content from user.`);
408
+ }
409
+ };
410
+
376
411
  /**
377
412
  * Get all the commments on a post
378
413
  * @method
@@ -613,6 +648,7 @@ class SidechatAPIClient {
613
648
  * @param {SidechatSimpleAsset[]} [assetList] - list of assets to attach.
614
649
  * @param {Boolean} [disableDMs] - prevent direct messages from being sent to post's author
615
650
  * @param {Boolean} [disableComments] - whether or not comments should be disabled on post
651
+ * @param {Boolean} [anonymous] - whether or not to hide user's name and icon on post
616
652
  * @returns {SidechatPostOrComment} the created post
617
653
  */
618
654
  createPost = async (
@@ -620,7 +656,8 @@ class SidechatAPIClient {
620
656
  groupID,
621
657
  assetList = [],
622
658
  disableDMs = false,
623
- disableComments = false
659
+ disableComments = false,
660
+ anonymous = false
624
661
  ) => {
625
662
  if (!this.userToken) {
626
663
  throw new SidechatAPIError("User is not authenticated.");
@@ -640,6 +677,7 @@ class SidechatAPIClient {
640
677
  attachments: [],
641
678
  dms_disabled: disableDMs,
642
679
  comments_disabled: disableComments,
680
+ using_identity: !anonymous,
643
681
  }),
644
682
  });
645
683
  const json = await res.json();
@@ -683,7 +721,7 @@ class SidechatAPIClient {
683
721
  * Sets the conversation icon of the current user
684
722
  * @method
685
723
  * @since 2.2.1
686
- * @param {String} userID - alphanumeric ID of the post to delete
724
+ * @param {String} userID - alphanumeric ID of user
687
725
  * @param {String} emoji - emoji to set as icon
688
726
  * @param {String} primaryColor - hex string (including #) of primary color
689
727
  * @param {String} secondaryColor - hex string (including #) of secondary color
@@ -697,6 +735,7 @@ class SidechatAPIClient {
697
735
  method: "PATCH",
698
736
  headers: {
699
737
  ...this.defaultHeaders,
738
+ "App-Version": "0",
700
739
  Authorization: `Bearer ${this.userToken}`,
701
740
  },
702
741
  body: JSON.stringify({
@@ -716,6 +755,69 @@ class SidechatAPIClient {
716
755
  }
717
756
  };
718
757
 
758
+ /**
759
+ * Checks if user can set their username to a string
760
+ * @method
761
+ * @since 2.3.6
762
+ * @param {String} username - string to check
763
+ * @returns {Boolean} whether or not username is valid and unused
764
+ */
765
+ checkUsername = async (username) => {
766
+ if (!this.userToken) {
767
+ throw new SidechatAPIError("User is not authenticated.");
768
+ }
769
+ try {
770
+ const res = await fetch(
771
+ `https://api.sidechat.lol/v1/users/username?username=${username}`,
772
+ {
773
+ method: "GET",
774
+ headers: {
775
+ ...this.defaultHeaders,
776
+ Authorization: `Bearer ${this.userToken}`,
777
+ },
778
+ }
779
+ );
780
+ if (res?.status == 200 || res?.status == 204) {
781
+ return true;
782
+ } else {
783
+ return false;
784
+ }
785
+ } catch (err) {
786
+ console.error(err);
787
+ throw new SidechatAPIError(`Failed to check username.`);
788
+ }
789
+ };
790
+
791
+ /**
792
+ * Changes the username of the current user
793
+ * @method
794
+ * @since 2.3.6
795
+ * @param {String} userID - alphanumeric ID of user
796
+ * @param {String} username - new username to set
797
+ */
798
+ setUsername = async (userID, username) => {
799
+ if (!this.userToken) {
800
+ throw new SidechatAPIError("User is not authenticated.");
801
+ }
802
+ try {
803
+ const res = await fetch(`https://api.sidechat.lol/v1/users/${userID}`, {
804
+ method: "PATCH",
805
+ headers: {
806
+ ...this.defaultHeaders,
807
+ Authorization: `Bearer ${this.userToken}`,
808
+ },
809
+ body: JSON.stringify({
810
+ username: username,
811
+ }),
812
+ });
813
+ const json = await res.json();
814
+ return await json.user;
815
+ } catch (err) {
816
+ console.error(err);
817
+ throw new SidechatAPIError(`Failed to set icon.`);
818
+ }
819
+ };
820
+
719
821
  /**
720
822
  * Marks an activity item as read
721
823
  * @method
@@ -744,6 +846,71 @@ class SidechatAPIClient {
744
846
  throw new SidechatAPIError(`Failed to mark activity as read.`);
745
847
  }
746
848
  };
849
+
850
+ /**
851
+ * Retrieves joinable group chats
852
+ * @method
853
+ * @since 2.3.5
854
+ */
855
+ getGroupChats = async () => {
856
+ if (!this.userToken) {
857
+ throw new SidechatAPIError("User is not authenticated.");
858
+ }
859
+ try {
860
+ const res = await fetch(`https://api.sidechat.lol/v1/chats/explore`, {
861
+ method: "GET",
862
+ headers: {
863
+ ...this.defaultHeaders,
864
+ Authorization: `Bearer ${this.userToken}`,
865
+ },
866
+ });
867
+ const json = await res.json();
868
+ return await json.chats;
869
+ } catch (err) {
870
+ console.error(err);
871
+ throw new SidechatAPIError(`Failed to get groupchats.`);
872
+ }
873
+ };
874
+
875
+ /**
876
+ * Joins a group chat
877
+ * @method
878
+ * @since 2.3.5
879
+ */
880
+ joinGroupChat = async (
881
+ groupChatID,
882
+ displayName,
883
+ emoji,
884
+ primaryColor,
885
+ secondaryColor
886
+ ) => {
887
+ if (!this.userToken) {
888
+ throw new SidechatAPIError("User is not authenticated.");
889
+ }
890
+ try {
891
+ const res = await fetch(`https://api.sidechat.lol/v1/chats/groups/join`, {
892
+ method: "GET",
893
+ headers: {
894
+ ...this.defaultHeaders,
895
+ Authorization: `Bearer ${this.userToken}`,
896
+ },
897
+ body: JSON.stringify({
898
+ chat_id: groupChatID,
899
+ identity: {
900
+ display_name: displayName,
901
+ emoji: emoji,
902
+ secondary_color: secondaryColor,
903
+ color: primaryColor,
904
+ },
905
+ }),
906
+ });
907
+ const json = await res.json();
908
+ return await json;
909
+ } catch (err) {
910
+ console.error(err);
911
+ throw new SidechatAPIError(`Failed to join groupchat.`);
912
+ }
913
+ };
747
914
  }
748
915
 
749
916
  export default SidechatAPIClient;
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @typedef SidechatColor
3
+ * @prop {String} primary - hex code of primary color
4
+ * @prop {String} secondary - hex code of secondary color
5
+ */
6
+
7
+ /**
8
+ * List of colors compatible with user conversation icons
9
+ * @constant
10
+ * @type {{ colors: SidechatColor[] }}
11
+ */
12
+ const SidechatColorList = {
13
+ colors: [
14
+ {
15
+ primary: "#74DEEE",
16
+ secondary: "#239EAB",
17
+ },
18
+ {
19
+ primary: "#15FF46",
20
+ secondary: "#3FC0FF",
21
+ },
22
+ {
23
+ primary: "#D9FB8A",
24
+ secondary: "#B1FD00",
25
+ },
26
+ {
27
+ primary: "#FC40FF",
28
+ secondary: "#0DD5B2",
29
+ },
30
+ {
31
+ primary: "#3E973C",
32
+ secondary: "#0F430E",
33
+ },
34
+ {
35
+ primary: "#FFD305",
36
+ secondary: "#F4B320",
37
+ },
38
+ {
39
+ primary: "#8483FF",
40
+ secondary: "#5857FF",
41
+ },
42
+ {
43
+ primary: "#FA81FF",
44
+ secondary: "#722DFF",
45
+ },
46
+ {
47
+ primary: "#00CBFE",
48
+ secondary: "#0D13D5",
49
+ },
50
+ {
51
+ primary: "#FF7B51",
52
+ secondary: "#B2431F",
53
+ },
54
+ {
55
+ primary: "#FF47CC",
56
+ secondary: "#69004C",
57
+ },
58
+ {
59
+ primary: "#00EE6E",
60
+ secondary: "#0C75E6",
61
+ },
62
+ {
63
+ primary: "#FF1885",
64
+ secondary: "#FA81FF",
65
+ },
66
+ {
67
+ primary: "#D8DC44",
68
+ secondary: "#228B3F",
69
+ },
70
+ {
71
+ primary: "#0968E5",
72
+ secondary: "#091970",
73
+ },
74
+ ],
75
+ };
76
+
77
+ export default SidechatColorList;
package/src/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import "./types/SidechatTypes.js";
2
2
  import SidechatAPIClient from "./classes/SidechatAPIClient.js";
3
3
  import SidechatAPIError from "./classes/SidechatAPIError.js";
4
+ import SidechatColorList from "./classes/SidechatColorList.js";
4
5
 
5
- export { SidechatAPIClient, SidechatAPIError };
6
+ export { SidechatAPIClient, SidechatAPIError, SidechatColorList };
@@ -39,4 +39,5 @@ KNOWN WORKING HEX CODE PAIRINGS
39
39
  #00EE6E - #0C75E6
40
40
  #FF1885 - #FA81FF
41
41
  #D8DC44 - #228B3F
42
+ #0968E5 - #091970
42
43
  */