@amityco/ts-sdk 0.0.1-beta.10 → 0.0.1-beta.14

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 (148) hide show
  1. package/dist/@types/core/cache.d.ts +2 -2
  2. package/dist/@types/core/cache.d.ts.map +1 -1
  3. package/dist/@types/core/events.d.ts +6 -6
  4. package/dist/@types/core/events.d.ts.map +1 -1
  5. package/dist/@types/core/paging.d.ts +19 -38
  6. package/dist/@types/core/paging.d.ts.map +1 -1
  7. package/dist/@types/core/payload.d.ts +2 -2
  8. package/dist/@types/core/payload.d.ts.map +1 -1
  9. package/dist/@types/core/query.d.ts +12 -4
  10. package/dist/@types/core/query.d.ts.map +1 -1
  11. package/dist/@types/domains/client.d.ts +1 -1
  12. package/dist/@types/domains/client.d.ts.map +1 -1
  13. package/dist/@types/domains/comment.d.ts +1 -1
  14. package/dist/@types/domains/comment.d.ts.map +1 -1
  15. package/dist/@types/domains/file.d.ts +2 -2
  16. package/dist/@types/domains/file.d.ts.map +1 -1
  17. package/dist/@types/domains/mention.d.ts +23 -0
  18. package/dist/@types/domains/mention.d.ts.map +1 -0
  19. package/dist/@types/domains/message.d.ts +1 -1
  20. package/dist/@types/domains/message.d.ts.map +1 -1
  21. package/dist/@types/domains/post.d.ts +2 -2
  22. package/dist/@types/domains/post.d.ts.map +1 -1
  23. package/dist/@types/index.d.ts +1 -0
  24. package/dist/@types/index.d.ts.map +1 -1
  25. package/dist/category/api/queryCategories.d.ts +3 -3
  26. package/dist/channel/api/getChannels.d.ts.map +1 -1
  27. package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
  28. package/dist/channel/api/queryChannels.d.ts +1 -1
  29. package/dist/channel/events/onChannelCreated.d.ts.map +1 -1
  30. package/dist/client/api/disconnectClient.d.ts.map +1 -1
  31. package/dist/comment/api/createComment.d.ts +1 -1
  32. package/dist/comment/api/createComment.d.ts.map +1 -1
  33. package/dist/comment/api/getComments.d.ts.map +1 -1
  34. package/dist/comment/api/updateComment.d.ts +1 -1
  35. package/dist/comment/api/updateComment.d.ts.map +1 -1
  36. package/dist/comment/events/onCommentReactionAdded.d.ts.map +1 -1
  37. package/dist/comment/events/onCommentReactionRemoved.d.ts.map +1 -1
  38. package/dist/comment/events/utils.d.ts.map +1 -1
  39. package/dist/community/api/addCommunityMembers.d.ts.map +1 -1
  40. package/dist/community/api/joinCommunity.d.ts.map +1 -1
  41. package/dist/community/api/leaveCommunity.d.ts.map +1 -1
  42. package/dist/community/api/queryCommunities.d.ts +1 -1
  43. package/dist/community/api/removeCommunityMembers.d.ts.map +1 -1
  44. package/dist/community/events/utils.d.ts.map +1 -1
  45. package/dist/core/debug.d.ts.map +1 -1
  46. package/dist/core/device.d.ts.map +1 -1
  47. package/dist/core/events.d.ts.map +1 -1
  48. package/dist/core/microtasks.d.ts +13 -0
  49. package/dist/core/microtasks.d.ts.map +1 -0
  50. package/dist/core/query/paging.d.ts +2 -13
  51. package/dist/core/query/paging.d.ts.map +1 -1
  52. package/dist/core/query/query.d.ts +1 -1
  53. package/dist/core/query/query.d.ts.map +1 -1
  54. package/dist/feed/api/queryGlobalFeed.d.ts +22 -4
  55. package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
  56. package/dist/index.cjs.js +138 -148
  57. package/dist/index.esm.js +139 -147
  58. package/dist/index.umd.js +5 -5
  59. package/dist/message/api/createMessage.d.ts +2 -2
  60. package/dist/message/api/createMessage.d.ts.map +1 -1
  61. package/dist/message/api/updateMessage.d.ts +2 -2
  62. package/dist/message/api/updateMessage.d.ts.map +1 -1
  63. package/dist/post/api/createPost.d.ts +7 -3
  64. package/dist/post/api/createPost.d.ts.map +1 -1
  65. package/dist/post/api/getPosts.d.ts.map +1 -1
  66. package/dist/post/api/queryPosts.d.ts +3 -3
  67. package/dist/post/api/queryPosts.d.ts.map +1 -1
  68. package/dist/post/api/updatePost.d.ts +1 -1
  69. package/dist/post/api/updatePost.d.ts.map +1 -1
  70. package/dist/post/events/onPostReactionAdded.d.ts.map +1 -1
  71. package/dist/post/events/onPostReactionRemoved.d.ts.map +1 -1
  72. package/dist/post/events/utils.d.ts.map +1 -1
  73. package/dist/role/api/queryRoles.d.ts +1 -1
  74. package/dist/stream/api/queryStreams.d.ts +1 -1
  75. package/dist/user/api/getUsers.d.ts.map +1 -1
  76. package/dist/utils/env.d.ts +5 -0
  77. package/dist/utils/env.d.ts.map +1 -0
  78. package/dist/version.d.ts.map +1 -1
  79. package/package.json +1 -3
  80. package/rollup.config.js +3 -0
  81. package/src/@types/core/cache.ts +2 -2
  82. package/src/@types/core/events.ts +6 -6
  83. package/src/@types/core/paging.ts +29 -44
  84. package/src/@types/core/payload.ts +2 -2
  85. package/src/@types/core/query.ts +7 -3
  86. package/src/@types/domains/client.ts +1 -1
  87. package/src/@types/domains/comment.ts +1 -0
  88. package/src/@types/domains/file.ts +2 -1
  89. package/src/@types/domains/mention.ts +26 -0
  90. package/src/@types/domains/message.ts +1 -0
  91. package/src/@types/domains/post.ts +2 -1
  92. package/src/@types/index.ts +2 -0
  93. package/src/channel/api/addChannelMembers.ts +1 -1
  94. package/src/channel/api/addChannelMembersRole.ts +1 -1
  95. package/src/channel/api/deleteChannel.ts +1 -1
  96. package/src/channel/api/getChannel.ts +1 -1
  97. package/src/channel/api/getChannels.ts +3 -1
  98. package/src/channel/api/joinChannel.ts +1 -1
  99. package/src/channel/api/leaveChannel.ts +1 -1
  100. package/src/channel/api/queryChannelMembers.ts +3 -2
  101. package/src/channel/api/removeChannelMembers.ts +1 -1
  102. package/src/channel/api/removeChannelMembersRole.ts +1 -1
  103. package/src/channel/api/updateChannel.ts +1 -1
  104. package/src/channel/events/onChannelCreated.ts +1 -3
  105. package/src/client/api/connectClient.ts +1 -1
  106. package/src/client/api/disconnectClient.ts +0 -1
  107. package/src/client/events/onConnectionError.ts +1 -1
  108. package/src/comment/api/createComment.ts +1 -2
  109. package/src/comment/api/deleteComment.ts +1 -1
  110. package/src/comment/api/getComment.ts +1 -1
  111. package/src/comment/api/getComments.ts +3 -1
  112. package/src/comment/api/updateComment.ts +2 -2
  113. package/src/comment/events/onCommentReactionAdded.ts +0 -7
  114. package/src/comment/events/onCommentReactionRemoved.ts +0 -7
  115. package/src/comment/events/utils.ts +3 -10
  116. package/src/community/api/addCommunityMembers.ts +3 -5
  117. package/src/community/api/joinCommunity.ts +1 -3
  118. package/src/community/api/leaveCommunity.ts +1 -3
  119. package/src/community/api/queryCommunityMembers.ts +1 -1
  120. package/src/community/api/removeCommunityMembers.ts +1 -3
  121. package/src/community/events/utils.ts +19 -33
  122. package/src/core/debug.ts +3 -1
  123. package/src/core/device.ts +3 -2
  124. package/src/core/events.ts +3 -1
  125. package/src/core/microtasks.ts +27 -0
  126. package/src/core/query/paging.ts +6 -41
  127. package/src/core/query/query.ts +5 -5
  128. package/src/core/subscription.ts +4 -4
  129. package/src/feed/api/queryGlobalFeed.ts +58 -5
  130. package/src/message/api/createMessage.ts +2 -2
  131. package/src/message/api/deleteMessage.ts +1 -1
  132. package/src/message/api/getMessage.ts +1 -1
  133. package/src/message/api/updateMessage.ts +3 -3
  134. package/src/post/api/createPost.ts +6 -5
  135. package/src/post/api/deletePost.ts +1 -1
  136. package/src/post/api/getPost.ts +1 -1
  137. package/src/post/api/getPosts.ts +3 -1
  138. package/src/post/api/queryPosts.ts +5 -5
  139. package/src/post/api/updatePost.ts +2 -2
  140. package/src/post/events/onPostReactionAdded.ts +0 -7
  141. package/src/post/events/onPostReactionRemoved.ts +0 -7
  142. package/src/post/events/utils.ts +2 -10
  143. package/src/report/api/createReport.ts +2 -2
  144. package/src/report/api/deleteReport.ts +2 -2
  145. package/src/user/api/getUser.ts +1 -1
  146. package/src/user/api/getUsers.ts +3 -1
  147. package/src/utils/env.ts +7 -0
  148. package/src/version.ts +3 -1
@@ -24,7 +24,7 @@ import { fireEvent } from '~/core/events'
24
24
  * @async
25
25
  */
26
26
  export const createMessage = async <T extends Amity.MessageContentType>(
27
- bundle: Pick<Amity.Message<T>, 'channelId' | 'type' | 'data' | 'metadata'>
27
+ bundle: Pick<Amity.Message<T>, 'channelId' | 'type' | 'data' | 'metadata' | 'mentionees'>
28
28
  ): Promise<Amity.Cached<Amity.Message>> => {
29
29
  const client = getActiveClient()
30
30
  client.log('user/createMessage', bundle)
@@ -62,7 +62,7 @@ export const createMessage = async <T extends Amity.MessageContentType>(
62
62
  * @category Message API
63
63
  */
64
64
  createMessage.optimistically = (
65
- bundle: Pick<Amity.Message, 'channelId' | 'type' | 'data' | 'metadata'>
65
+ bundle: Pick<Amity.Message, 'channelId' | 'type' | 'data' | 'metadata' | 'mentionees'>
66
66
  ): Amity.Cached<Amity.Message> | undefined => {
67
67
  const client = getActiveClient()
68
68
  client.log('user/createMessage.locally', bundle)
@@ -27,7 +27,7 @@ export const deleteMessage = async (
27
27
 
28
28
  // API-FIX: This endpoint has not been implemented yet.
29
29
  await client.http.delete<{ success: boolean }>(
30
- `/api/v3/messages/${messageId}`
30
+ `/api/v3/messages/${encodeURIComponent(messageId)}`
31
31
  )
32
32
 
33
33
  const deleted = await getMessage(messageId)
@@ -25,7 +25,7 @@ export const getMessage = async (
25
25
 
26
26
  // API-FIX: endpoint should not be /list, parameters should be querystring.
27
27
  const { data } = await client.http.get<Amity.MessagePayload>(
28
- `/api/v3/messages/${messageId}`,
28
+ `/api/v3/messages/${encodeURIComponent(messageId)}`,
29
29
  )
30
30
 
31
31
  const cachedAt = client.cache && Date.now()
@@ -23,13 +23,13 @@ import { fireEvent } from '~/core/events'
23
23
  */
24
24
  export const updateMessage = async (
25
25
  messageId: Amity.Message['messageId'],
26
- patch: Patch<Amity.Message, 'data' | 'metadata'>,
26
+ patch: Patch<Amity.Message, 'data' | 'metadata' | 'mentionees'>,
27
27
  ): Promise<Amity.Cached<Amity.Message>> => {
28
28
  const client = getActiveClient()
29
29
  client.log('user/updateMessage', patch)
30
30
 
31
31
  const { data } = await client.http.put<Amity.MessagePayload>(
32
- `/api/v3/messages/${messageId}`, patch,
32
+ `/api/v3/messages/${encodeURIComponent(messageId)}`, patch,
33
33
  )
34
34
 
35
35
  const cachedAt = client.cache && Date.now()
@@ -61,7 +61,7 @@ export const updateMessage = async (
61
61
  */
62
62
  updateMessage.optimistically = (
63
63
  messageId: Amity.Message['messageId'],
64
- patch: Patch<Amity.Message, 'data' | 'metadata'>,
64
+ patch: Patch<Amity.Message, 'data' | 'metadata' | 'mentionees'>,
65
65
  ): Amity.Cached<Amity.Message> | undefined => {
66
66
  const client = getActiveClient()
67
67
  client.log('user/updateMessage', patch)
@@ -22,25 +22,26 @@ import { fireEvent } from '~/core/events'
22
22
  * @async
23
23
  */
24
24
  export const createPost = async <T extends Amity.PostContentType | string>(
25
- bundle: Pick<Amity.Post, 'targetType' | 'targetId' | 'metadata'> & {
26
- dataType?: T, data: { [k: string]: any }
25
+ bundle: Pick<Amity.Post, 'targetType' | 'targetId' | 'metadata' | 'mentionees'> & {
26
+ dataType?: T,
27
+ data?: { [k: string]: any },
28
+ attachments?: { type: T, fileId: Amity.File['fileId'] }[]
27
29
  },
28
30
  ): Promise<Amity.Cached<Amity.Post>> => {
29
31
  const client = getActiveClient()
30
32
  client.log('post/createPost', bundle)
31
33
 
32
34
  // API-FIX: backend rejects that we pass the dataType manually T_T
33
- if (!bundle.dataType || ['text', 'image', 'file'].includes(bundle.dataType))
35
+ if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType))
34
36
  delete bundle.dataType
35
37
 
36
38
  const { data } = await client.http.post<Amity.PostPayload>(
37
- '/api/v3/posts', bundle
39
+ '/api/v4/posts', bundle
38
40
  )
39
41
 
40
42
  const cachedAt = client.cache && Date.now()
41
43
  if (client.cache) ingestInCache(data, { cachedAt })
42
44
 
43
- fireEvent('community.updated', { communities: data.communities! })
44
45
  fireEvent('post.created', data)
45
46
 
46
47
  const { posts } = data
@@ -32,7 +32,7 @@ export const deletePost = async (
32
32
 
33
33
  // API-FIX: This endpoint has not been implemented yet.
34
34
  await client.http.delete<{ success: boolean }>(
35
- `/api/v4/posts/${postId}`, {
35
+ `/api/v4/posts/${encodeURIComponent(postId)}`, {
36
36
  params: {
37
37
  postId,
38
38
  permanent,
@@ -28,7 +28,7 @@ export const getPost = async (
28
28
  try {
29
29
  // API-FIX: endpoint should not be /list, parameters should be querystring.
30
30
  const response = await client.http.get<Amity.PostPayload>(
31
- `/api/v3/posts/${postId}`,
31
+ `/api/v3/posts/${encodeURIComponent(postId)}`,
32
32
  )
33
33
 
34
34
  data = response.data;
@@ -23,10 +23,12 @@ export const getPosts = async (
23
23
  const client = getActiveClient()
24
24
  client.log('post/getPosts', postIds)
25
25
 
26
+ const encodedPostIds = postIds.map(postId => encodeURIComponent(postId));
27
+
26
28
  // API-FIX: endpoint should not be /list, parameters should be querystring.
27
29
  const { data } = await client.http.get<Amity.PostPayload>(
28
30
  `/api/v3/posts/list`,
29
- { params: { postIds } }
31
+ { params: { postIds: encodedPostIds } }
30
32
  )
31
33
 
32
34
  const cachedAt = client.cache && Date.now()
@@ -1,6 +1,6 @@
1
1
  import { getActiveClient } from '~/client/api'
2
2
 
3
- import { toPageRaw, toToken } from '~/core/query'
3
+ import { toToken, toPageRaw } from '~/core/query'
4
4
 
5
5
  import { pullFromCache, pushToCache } from '~/cache/api'
6
6
  import { ingestInCache } from '~/cache/api/ingestInCache'
@@ -31,9 +31,9 @@ export const queryPosts = async (
31
31
  feedType?: 'reviewing' | 'published'
32
32
  tags?: Amity.Taggable['tags'],
33
33
  matchingOnlyParentPost?: boolean
34
- page?: Amity.Page
34
+ page?: Amity.PageRaw
35
35
  }
36
- ): Promise<Amity.Cached<Amity.PagedRaw<Amity.Post>>> => {
36
+ ): Promise<Amity.Cached<Amity.Paged<Amity.Post>>> => {
37
37
  const client = getActiveClient()
38
38
  client.log('post/queryPosts', query)
39
39
 
@@ -41,7 +41,7 @@ export const queryPosts = async (
41
41
 
42
42
  // API-FIX: parameters should be querystring. (1)
43
43
  // API-FIX: backend should answer Amity.Response (2)
44
- // const { data } = await client.http.get<Amity.Response<Amity.PagedRawResponse<Amity.PostPayload>>>(
44
+ // const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
45
45
  const { data } = await client.http.get<Amity.PostPayload & Amity.Pagination>(
46
46
  `/api/v4/posts`, { params: {
47
47
  ...params,
@@ -87,7 +87,7 @@ export const queryPosts = async (
87
87
  */
88
88
  queryPosts.locally = (
89
89
  query: Parameters<typeof queryPosts>[0],
90
- ): Amity.Cached<Amity.PagedRaw<Amity.Post>> | undefined => {
90
+ ): Amity.Cached<Amity.Paged<Amity.Post>> | undefined => {
91
91
  const client = getActiveClient()
92
92
  client.log('post/queryPosts.locally', query)
93
93
 
@@ -22,13 +22,13 @@ import { fireEvent } from '~/core/events'
22
22
  */
23
23
  export const updatePost = async (
24
24
  postId: Amity.Post['postId'],
25
- patch: Patch<Amity.Post, 'data' | 'metadata'>,
25
+ patch: Patch<Amity.Post, 'data' | 'metadata' | 'mentionees'>,
26
26
  ): Promise<Amity.Cached<Amity.Post>> => {
27
27
  const client = getActiveClient()
28
28
  client.log('user/updatePost', patch)
29
29
 
30
30
  const { data } = await client.http.put<Amity.PostPayload>(
31
- `/api/v3/posts/${postId}`, patch,
31
+ `/api/v4/posts/${encodeURIComponent(postId)}`, patch,
32
32
  )
33
33
 
34
34
  const cachedAt = client.cache && Date.now()
@@ -1,4 +1,3 @@
1
- import isMatch from 'lodash.ismatch'
2
1
  import { getActiveClient } from '~/client/api'
3
2
  import { pullFromCache } from '~/cache/api'
4
3
  import { ingestInCache } from '~/cache/api/ingestInCache'
@@ -27,8 +26,6 @@ export const onPostReactionAdded = (callback: Amity.Listener<Amity.Post>): Amity
27
26
  if (!client.cache) {
28
27
  callback(payload.posts[0])
29
28
  } else {
30
- const cached = pullFromCache<Amity.Post>(['post', 'get', payload.posts[0].postId])
31
-
32
29
  preparePayloadForCache('post.addReaction', payload)
33
30
  const { reactor, ...postPayload } = payload;
34
31
 
@@ -36,10 +33,6 @@ export const onPostReactionAdded = (callback: Amity.Listener<Amity.Post>): Amity
36
33
 
37
34
  const post = pullFromCache<Amity.Post>(['post', 'get', payload.posts[0].postId])!
38
35
 
39
- if (cached && isMatch(cached.data, post.data)) {
40
- return
41
- }
42
-
43
36
  callback(post.data)
44
37
  }
45
38
  }
@@ -1,4 +1,3 @@
1
- import isMatch from 'lodash.ismatch'
2
1
  import { getActiveClient } from '~/client/api'
3
2
  import { pullFromCache } from '~/cache/api'
4
3
  import { ingestInCache } from '~/cache/api/ingestInCache'
@@ -27,8 +26,6 @@ export const onPostReactionRemoved = (callback: Amity.Listener<Amity.Post>): Ami
27
26
  if (!client.cache) {
28
27
  callback(payload.posts[0])
29
28
  } else {
30
- const cached = pullFromCache<Amity.Post>(['post', 'get', payload.posts[0].postId])
31
-
32
29
  preparePayloadForCache('post.removeReaction', payload)
33
30
  const { reactor, ...postPayload } = payload;
34
31
 
@@ -36,10 +33,6 @@ export const onPostReactionRemoved = (callback: Amity.Listener<Amity.Post>): Ami
36
33
 
37
34
  const post = pullFromCache<Amity.Post>(['post', 'get', payload.posts[0].postId])!
38
35
 
39
- if (cached && isMatch(cached.data, post.data)) {
40
- return
41
- }
42
-
43
36
  callback(post.data)
44
37
  }
45
38
  }
@@ -1,9 +1,7 @@
1
- import isMatch from 'lodash.ismatch'
2
1
  import { getActiveClient } from '~/client/api'
3
- import { pullFromCache } from '~/cache/api'
4
2
  import { ingestInCache } from '~/cache/api/ingestInCache'
5
3
  import { createEventSubscriber, fireEvent } from '~/core/events'
6
- import { queryCache, upsertInCache } from '~/cache/api'
4
+ import { queryCache, upsertInCache, pullFromCache } from '~/cache/api'
7
5
 
8
6
  export const createPostEventSubscriber = (
9
7
  event: keyof Amity.MqttPostMessageEvents,
@@ -15,22 +13,16 @@ export const createPostEventSubscriber = (
15
13
  if (!client.cache) {
16
14
  callback(payload.posts[0])
17
15
  } else {
18
- const cached = pullFromCache<Amity.Post>(['post', 'get', payload.posts[0].postId])
19
-
20
16
  const { communities, ...others } = payload
21
17
 
22
18
  ingestInCache(others as Amity.PostPayload)
23
19
 
24
- if (communities?.[0]) {
20
+ if (communities?.[0] && !['post.updated'].includes(event)) {
25
21
  fireEvent('community.updated', { communities })
26
22
  }
27
23
 
28
24
  const post = pullFromCache<Amity.Post>(['post', 'get', payload.posts[0].postId])!
29
25
 
30
- if (cached && isMatch(cached.data, post.data)) {
31
- return
32
- }
33
-
34
26
  if (['post.created', 'post.approved', 'post.declined'].includes(event)) {
35
27
  let queries = queryCache(['post', 'query'])
36
28
  // @ts-ignore
@@ -28,14 +28,14 @@ export const createReport = async (
28
28
  const { domainName } = REFERENCE_TYPES[referenceType]
29
29
 
30
30
  const { data } = await client.http.post<Amity.PostPayload | Amity.CommentPayload | Amity.MessagePayload | Amity.UserPayload>(
31
- `/api/v3/${domainName}/${referenceId}/flag`
31
+ `/api/v3/${domainName}/${(encodeURIComponent(referenceId))}/flag`
32
32
  )
33
33
 
34
34
  if (client.cache) ingestInCache(data)
35
35
 
36
36
  const event = referenceType === 'message'
37
37
  ? 'v3.message.didUpdate' as const
38
- : `${referenceType}.updated` as const
38
+ : `${referenceType}.flagged` as const
39
39
 
40
40
  fireEvent(event, data)
41
41
 
@@ -28,14 +28,14 @@ export const deleteReport = async (
28
28
  const { domainName } = REFERENCE_TYPES[referenceType]
29
29
 
30
30
  const { data } = await client.http.delete<Amity.PostPayload | Amity.CommentPayload | Amity.MessagePayload | Amity.UserPayload>(
31
- `/api/v3/${domainName}/${referenceId}/unflag`
31
+ `/api/v3/${domainName}/${encodeURIComponent(referenceId)}/unflag`
32
32
  )
33
33
 
34
34
  if (client.cache) ingestInCache(data)
35
35
 
36
36
  const event = referenceType === 'message'
37
37
  ? 'v3.message.didUpdate' as const
38
- : `${referenceType}.updated` as const
38
+ : `${referenceType}.unflagged` as const
39
39
 
40
40
  fireEvent(event, data)
41
41
 
@@ -25,7 +25,7 @@ export const getUser = async (
25
25
 
26
26
  // API-FIX: endpoint should not be /list, parameters should be querystring.
27
27
  const { data } = await client.http.get<Amity.UserPayload>(
28
- `/api/v3/users/${userId}`,
28
+ `/api/v3/users/${encodeURIComponent(userId)}`,
29
29
  )
30
30
 
31
31
  const cachedAt = client.cache && Date.now()
@@ -23,10 +23,12 @@ export const getUsers = async (
23
23
  const client = getActiveClient()
24
24
  client.log('user/getUsers', userIds)
25
25
 
26
+ const encodedUserIds = userIds.map(userId => encodeURIComponent(userId));
27
+
26
28
  // API-FIX: endpoint should not be /list, parameters should be querystring.
27
29
  const { data } = await client.http.get<Amity.UserPayload>(
28
30
  `/api/v3/users/list`,
29
- { params: { userIds } },
31
+ { params: { userIds: encodedUserIds } },
30
32
  )
31
33
 
32
34
  const cachedAt = client.cache && Date.now()
@@ -0,0 +1,7 @@
1
+ const theGlobal = globalThis || global || window;
2
+
3
+ export const { process: safeProcess = {} }: { process: Partial<NodeJS.Process> } = theGlobal
4
+
5
+ export function getEnv() { return safeProcess.env ?? {} }
6
+
7
+ export const isProduction = safeProcess.env?.NODE_ENV === 'production'
package/src/version.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  // used in createClient
2
- export const VERSION = process.env.VERSION ?? '__dev__'
2
+ import { safeProcess } from '~/utils/env'
3
+
4
+ export const VERSION = safeProcess.env?.VERSION ?? '__dev__'