@amityco/ts-sdk 0.0.1-beta.17 → 0.0.1-beta.18

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 (55) hide show
  1. package/dist/@types/core/model.d.ts +2 -0
  2. package/dist/@types/core/model.d.ts.map +1 -1
  3. package/dist/@types/core/payload.d.ts +5 -0
  4. package/dist/@types/core/payload.d.ts.map +1 -1
  5. package/dist/@types/domains/poll.d.ts +27 -0
  6. package/dist/@types/domains/poll.d.ts.map +1 -0
  7. package/dist/@types/domains/post.d.ts +1 -1
  8. package/dist/@types/domains/post.d.ts.map +1 -1
  9. package/dist/@types/index.d.ts +1 -0
  10. package/dist/@types/index.d.ts.map +1 -1
  11. package/dist/channel/api/deleteChannel.d.ts.map +1 -1
  12. package/dist/core/model/idResolvers.d.ts.map +1 -1
  13. package/dist/core/model/identifyModel.d.ts.map +1 -1
  14. package/dist/core/model/index.d.ts.map +1 -1
  15. package/dist/core/subscription.d.ts.map +1 -1
  16. package/dist/file/api/createFile.d.ts +1 -1
  17. package/dist/file/api/createFile.d.ts.map +1 -1
  18. package/dist/index.cjs.js +187 -9
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.esm.js +183 -10
  22. package/dist/index.umd.js +5 -5
  23. package/dist/poll/api/closePoll.d.ts +16 -0
  24. package/dist/poll/api/closePoll.d.ts.map +1 -0
  25. package/dist/poll/api/createPoll.d.ts +23 -0
  26. package/dist/poll/api/createPoll.d.ts.map +1 -0
  27. package/dist/poll/api/deletePoll.d.ts +16 -0
  28. package/dist/poll/api/deletePoll.d.ts.map +1 -0
  29. package/dist/poll/api/getPoll.d.ts +32 -0
  30. package/dist/poll/api/getPoll.d.ts.map +1 -0
  31. package/dist/poll/api/index.d.ts +6 -0
  32. package/dist/poll/api/index.d.ts.map +1 -0
  33. package/dist/poll/api/votePoll.d.ts +17 -0
  34. package/dist/poll/api/votePoll.d.ts.map +1 -0
  35. package/dist/utils/env.d.ts.map +1 -1
  36. package/package.json +1 -1
  37. package/src/@types/core/model.ts +2 -0
  38. package/src/@types/core/payload.ts +6 -0
  39. package/src/@types/domains/poll.ts +32 -0
  40. package/src/@types/domains/post.ts +1 -1
  41. package/src/@types/index.ts +2 -0
  42. package/src/channel/api/deleteChannel.ts +0 -1
  43. package/src/core/model/idResolvers.ts +1 -0
  44. package/src/core/model/identifyModel.ts +1 -0
  45. package/src/core/model/index.ts +1 -0
  46. package/src/core/subscription.ts +1 -3
  47. package/src/file/api/createFile.ts +5 -5
  48. package/src/index.ts +2 -0
  49. package/src/poll/api/closePoll.ts +39 -0
  50. package/src/poll/api/createPoll.ts +43 -0
  51. package/src/poll/api/deletePoll.ts +36 -0
  52. package/src/poll/api/getPoll.ts +64 -0
  53. package/src/poll/api/index.ts +7 -0
  54. package/src/poll/api/votePoll.ts +41 -0
  55. package/src/utils/env.ts +3 -1
package/dist/index.esm.js CHANGED
@@ -8,7 +8,9 @@ import AsyncStorage from '@react-native-async-storage/async-storage';
8
8
 
9
9
  var _a$1;
10
10
  /* eslint-disable no-undef */
11
- const theGlobal = globalThis || global || window;
11
+ const theGlobal =
12
+ // eslint-disable-next-line no-nested-ternary
13
+ typeof globalThis === 'object' ? globalThis : typeof global === 'object' ? global : window;
12
14
  const { process: safeProcess = {} } = theGlobal;
13
15
  const isProduction = ((_a$1 = safeProcess.env) === null || _a$1 === void 0 ? void 0 : _a$1.NODE_ENV) === 'production';
14
16
 
@@ -15142,9 +15144,7 @@ const getCommunityUserTopic = (path, level) => {
15142
15144
  }
15143
15145
  };
15144
15146
  const getCommunityTopic = ({ path }, level = SubscriptionLevels.COMMUNITY) => getCommunityUserTopic(path, level);
15145
- const getUserTopic = ({ path }, level = SubscriptionLevels.USER) => getCommunityUserTopic(level === SubscriptionLevels.USER
15146
- ? path
15147
- : path.replace(/^(?<networkId>\w*)/, '$<networkId>/social'), level);
15147
+ const getUserTopic = ({ path }, level = SubscriptionLevels.USER) => getCommunityUserTopic(level === SubscriptionLevels.USER ? path : path.replace(/^(\w*)/, '$1/social'), level);
15148
15148
  const getPostTopic = ({ path }, level = SubscriptionLevels.POST) => {
15149
15149
  switch (level) {
15150
15150
  case 'comment':
@@ -15576,6 +15576,7 @@ const idResolvers = {
15576
15576
  communityUsers: ({ communityId, userId }) => `${communityId}#${userId}`,
15577
15577
  post: ({ postId }) => postId,
15578
15578
  comment: ({ commentId }) => commentId,
15579
+ poll: ({ pollId }) => pollId,
15579
15580
  stream: ({ streamId }) => streamId,
15580
15581
  follow: ({ from, to }) => `${from}#${to}`,
15581
15582
  followCount: ({ userId }) => userId,
@@ -15605,6 +15606,7 @@ const PAYLOAD2MODEL = {
15605
15606
  posts: 'post',
15606
15607
  postChildren: 'post',
15607
15608
  comments: 'comment',
15609
+ polls: 'poll',
15608
15610
  videoStreamings: 'stream',
15609
15611
  follows: 'follow',
15610
15612
  followCounts: 'followCount',
@@ -16066,12 +16068,12 @@ getFile.locally = (fileId) => {
16066
16068
  const createFile = async (formData, onProgress) => {
16067
16069
  const client = getActiveClient();
16068
16070
  client.log('file/createFile', formData);
16069
- if (!formData.getAll('file').length)
16070
- throw new Error('The formData object must have a `file` key.');
16071
+ if (!formData.getAll('files').length)
16072
+ throw new Error('The formData object must have a `files` key.');
16071
16073
  const headers = 'getHeaders' in formData
16072
16074
  ? formData.getHeaders()
16073
16075
  : { 'content-type': 'multipart/form-data' };
16074
- const { data } = await client.http.post('/api/v3/files', formData, {
16076
+ const { data } = await client.http.post('/api/v4/files', formData, {
16075
16077
  headers,
16076
16078
  onUploadProgress({ loaded, total }) {
16077
16079
  onProgress && onProgress(Math.round((loaded * 100) / total));
@@ -16083,7 +16085,7 @@ const createFile = async (formData, onProgress) => {
16083
16085
  if (client.cache)
16084
16086
  ingestInCache({ files: data }, { cachedAt });
16085
16087
  return {
16086
- data: data[0],
16088
+ data,
16087
16089
  cachedAt,
16088
16090
  };
16089
16091
  };
@@ -18924,7 +18926,6 @@ const updateChannel = async (channelId, patch) => {
18924
18926
  const deleteChannel = async (channelId) => {
18925
18927
  const client = getActiveClient();
18926
18928
  client.log('channel/deleteChannel', channelId);
18927
- // API-FIX: This endpoint has not been implemented yet.
18928
18929
  await client.http.delete(`/api/v3/channels/${encodeURIComponent(channelId)}`);
18929
18930
  const deleted = await getChannel(channelId);
18930
18931
  // no need for event, fired by server
@@ -20693,6 +20694,178 @@ const observeComment = (commentId, callback, policy = 'cache_then_server') => {
20693
20694
  };
20694
20695
  };
20695
20696
 
20697
+ /**
20698
+ * ```js
20699
+ * import { getPoll } from '@amityco/ts-sdk'
20700
+ * const poll = await getPoll('foobar')
20701
+ * ```
20702
+ *
20703
+ * Fetches a {@link Amity.Poll} object
20704
+ *
20705
+ * @param pollId the ID of the {@link Amity.Poll} to fetch
20706
+ * @returns the associated {@link Amity.Poll} object
20707
+ *
20708
+ * @category Poll API
20709
+ * @async
20710
+ */
20711
+ const getPoll = async (pollId) => {
20712
+ const client = getActiveClient();
20713
+ client.log('poll/getPoll', pollId);
20714
+ const { data } = await client.http.get(`/api/v3/polls/${pollId}`);
20715
+ const cachedAt = client.cache && Date.now();
20716
+ if (client.cache)
20717
+ ingestInCache(data, { cachedAt });
20718
+ const { polls } = data;
20719
+ return {
20720
+ data: polls.find(poll => poll.pollId === pollId),
20721
+ cachedAt,
20722
+ };
20723
+ };
20724
+ /**
20725
+ * ```js
20726
+ * import { getPoll } from '@amityco/ts-sdk'
20727
+ * const poll = getPoll.locally('foobar')
20728
+ * ```
20729
+ *
20730
+ * Fetches a {@link Amity.Poll} object
20731
+ *
20732
+ * @param pollId the ID of the {@link Amity.Poll} to fetch
20733
+ * @returns the associated {@link Amity.Poll} object
20734
+ *
20735
+ * @category Poll API
20736
+ */
20737
+ getPoll.locally = (pollId) => {
20738
+ const client = getActiveClient();
20739
+ client.log('poll/getPoll', pollId);
20740
+ if (!client.cache)
20741
+ return;
20742
+ const cached = pullFromCache(['poll', 'get', pollId]);
20743
+ if (!cached)
20744
+ return;
20745
+ return {
20746
+ data: cached.data,
20747
+ cachedAt: cached.cachedAt,
20748
+ };
20749
+ };
20750
+
20751
+ /**
20752
+ * ```js
20753
+ * import { createPoll } from '@amityco/ts-sdk'
20754
+ * const created = await createPoll({
20755
+ * question: 'question',
20756
+ * answers: [
20757
+ * { dataType: 'text', data: 'answer1' },
20758
+ * { dataType: 'text', data: 'answer2' },
20759
+ * ],
20760
+ * closedIn: 1649136484
20761
+ * }))
20762
+ * ```
20763
+ *
20764
+ * Creates an {@link Amity.Poll}
20765
+ *
20766
+ * @param bundle The data necessary to create a new {@link Amity.Poll}
20767
+ * @returns The newly created {@link Amity.Poll}
20768
+ *
20769
+ * @category Poll API
20770
+ * @async
20771
+ */
20772
+ const createPoll = async (bundle) => {
20773
+ const client = getActiveClient();
20774
+ client.log('post/createPoll', bundle);
20775
+ const { data } = await client.http.post('/api/v3/polls', bundle);
20776
+ const cachedAt = client.cache && Date.now();
20777
+ if (client.cache)
20778
+ ingestInCache(data, { cachedAt });
20779
+ const { polls } = data;
20780
+ return {
20781
+ data: polls[0],
20782
+ cachedAt,
20783
+ };
20784
+ };
20785
+
20786
+ /**
20787
+ * ```js
20788
+ * import { closePoll } from '@amityco/ts-sdk'
20789
+ * const updated = await closePoll(pollId)
20790
+ * ```
20791
+ *
20792
+ * Updates an {@link Amity.Poll}
20793
+ *
20794
+ * @param pollId The ID of the {@link Amity.Poll} to close
20795
+ * @returns the updated {@link Amity.Poll} object
20796
+ *
20797
+ * @category Poll API
20798
+ * @async
20799
+ */
20800
+ const closePoll = async (pollId) => {
20801
+ const client = getActiveClient();
20802
+ client.log('user/closePoll', pollId);
20803
+ const { data } = await client.http.put(`/api/v3/polls/${encodeURIComponent(pollId)}`, { status: 'closed' });
20804
+ const cachedAt = client.cache && Date.now();
20805
+ if (client.cache)
20806
+ ingestInCache(data, { cachedAt });
20807
+ const { polls } = data;
20808
+ return {
20809
+ data: polls.find(poll => poll.pollId === pollId),
20810
+ cachedAt,
20811
+ };
20812
+ };
20813
+
20814
+ /**
20815
+ * ```js
20816
+ * import { deletePoll } from '@amityco/ts-sdk'
20817
+ * const success = await deletePoll(pollId)
20818
+ * ```
20819
+ *
20820
+ * Deletes a {@link Amity.Poll}
20821
+ *
20822
+ * @param pollId The {@link Amity.Poll} ID to delete
20823
+ * @return A success boolean if the {@link Amity.Poll} was deleted
20824
+ *
20825
+ * @category Poll API
20826
+ * @async
20827
+ */
20828
+ const deletePoll = async (pollId) => {
20829
+ const client = getActiveClient();
20830
+ client.log('poll/deletePoll', pollId);
20831
+ const poll = await getPoll(pollId);
20832
+ // API-FIX: it returns { success: boolean } but seems it should be Amity.Response<{ success: boolean }
20833
+ const { data } = await client.http.delete(`/api/v3/polls/${pollId}`);
20834
+ const { success } = data; // unwrapPayload(data)
20835
+ const deleted = Object.assign(Object.assign({}, poll.data), { isDeleted: true });
20836
+ upsertInCache(['poll', 'get', pollId], deleted);
20837
+ return success;
20838
+ };
20839
+
20840
+ /**
20841
+ * ```js
20842
+ * import { votePoll } from '@amityco/ts-sdk'
20843
+ * const voted = await votePoll(pollId)
20844
+ * ```
20845
+ *
20846
+ * Votes for an {@link Amity.Poll}
20847
+ *
20848
+ * @param pollId The ID of the {@link Amity.Poll} to vote
20849
+ * @param answerIds The IDs of the {@link Amity.Poll} answers to vote {@link Amity.Poll}
20850
+ * @returns the updated {@link Amity.Poll} object
20851
+ *
20852
+ * @category Poll API
20853
+ * @async
20854
+ */
20855
+ const votePoll = async (pollId, answerIds) => {
20856
+ const client = getActiveClient();
20857
+ client.log('user/votePoll', pollId);
20858
+ const { data } = await client.http.post(`/api/v3/polls/${encodeURIComponent(pollId)}/votes`, { pollId, answerIds });
20859
+ const cachedAt = client.cache && Date.now();
20860
+ if (client.cache)
20861
+ ingestInCache(data, { cachedAt });
20862
+ const { polls } = data;
20863
+ return {
20864
+ data: polls.find(poll => poll.pollId === pollId),
20865
+ cachedAt,
20866
+ };
20867
+ };
20868
+
20696
20869
  /**
20697
20870
  * ```js
20698
20871
  * import { getStream } from '@amityco/ts-sdk'
@@ -20986,4 +21159,4 @@ const onStreamRecorded = (callback) => {
20986
21159
  return createEventSubscriber(client, 'stream/onStreamRecorded', 'video-streaming.didRecord', filter);
20987
21160
  };
20988
21161
 
20989
- export { API_REGIONS, SubscriptionLevels, VERSION$1 as VERSION, acceptFollower, addChannelMembers, addChannelMembersRole, addCommunityMembers, addCommunityMembersRoles, addReaction, backupCache, connectClient, createChannel, createClient, createComment, createCommunity, createFile, createMessage, createPost, createQuery, createReport, createStream, createVideo, declineFollower, deleteChannel, deleteComment, deleteCommunity, deleteFile, deleteMessage, deletePost, deleteReport, deleteStream, disableCache, disconnectClient, disposeStream, dropFromCache, enableCache, fileUrlWithSize, filterByPropEquality, follow, getActiveClient, getCategory, getChannel, getChannels, getComment, getCommentTopic, getComments, getCommunities, getCommunity, getCommunityTopic, getFile, getFollowInfo, getMessage, getMessages, getMyFollowersTopic, getMyFollowingsTopic, getPost, getPostTopic, getPosts, getRecommendedCommunities, getRole, getStream, getTopTrendingCommunities, getUser, getUserTopic, getUsers, isAfterBefore, isAfterBeforeRaw, isCachable, isConnected, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkipLimit, joinChannel, joinCommunity, leaveChannel, leaveCommunity, mergeInCache, observeChannel, observeComment, observeComments, observeCommunity, observeFile, observeFollowInfo, observeFollowers, observeFollowings, observeMessage, observeMessages, observePost, observePosts, observeUser, onChannelDeleted, onChannelJoined, onChannelLeft, onChannelUpdated, onClientBanned, onClientDisconnected, onCommentCreated, onCommentDeleted, onCommentFlagged, onCommentReactionAdded, onCommentReactionRemoved, onCommentUnflagged, onCommentUpdated, onCommunityCreated, onCommunityDeleted, onCommunityJoined, onCommunityLeft, onCommunityUpdated, onCommunityUserAdded, onCommunityUserBanned, onCommunityUserRemoved, onCommunityUserUnbanned, onConnectionError, onFollowInfoUpdated, onFollowRequestAccepted, onFollowRequestCanceled, onFollowRequestDeclined, onFollowerDeleted, onFollowerRequested, onMemberAdded, onMemberRemoved, onMessageCreated, onMessageDeleted, onMessageUpdated, onPostApproved, onPostCreated, onPostDeclined, onPostDeleted, onPostFlagged, onPostReactionAdded, onPostReactionRemoved, onPostUnflagged, onPostUpdated, onReactionRemoved, onStreamRecorded, onStreamStarted, onStreamStopped, onUserFlagCleared, onUserFlagged, onUserFollowed, onUserUnflagged, onUserUnfollowed, onUserUpdated, pullFromCache, pushToCache, queryCache, queryCategories, queryChannelMembers, queryChannels, queryComments, queryCommunities, queryCommunityMembers, queryFollowers, queryFollowings, queryGlobalFeed, queryMessages, queryOptions, queryPosts, queryRoles, queryStreams, queryUsers, removeChannelMembers, removeChannelMembersRole, removeCommunityMembers, removeCommunityMembersRoles, removeReaction, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByLastActivity, sortByLastCreated, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, unfollow, updateChannel, updateComment, updateCommunity, updateMessage, updatePost, updateStream, updateUser, upsertInCache, wipeCache };
21162
+ export { API_REGIONS, SubscriptionLevels, VERSION$1 as VERSION, acceptFollower, addChannelMembers, addChannelMembersRole, addCommunityMembers, addCommunityMembersRoles, addReaction, backupCache, closePoll, connectClient, createChannel, createClient, createComment, createCommunity, createFile, createMessage, createPoll, createPost, createQuery, createReport, createStream, createVideo, declineFollower, deleteChannel, deleteComment, deleteCommunity, deleteFile, deleteMessage, deletePoll, deletePost, deleteReport, deleteStream, disableCache, disconnectClient, disposeStream, dropFromCache, enableCache, fileUrlWithSize, filterByPropEquality, follow, getActiveClient, getCategory, getChannel, getChannels, getComment, getCommentTopic, getComments, getCommunities, getCommunity, getCommunityTopic, getFile, getFollowInfo, getMessage, getMessages, getMyFollowersTopic, getMyFollowingsTopic, getPoll, getPost, getPostTopic, getPosts, getRecommendedCommunities, getRole, getStream, getTopTrendingCommunities, getUser, getUserTopic, getUsers, isAfterBefore, isAfterBeforeRaw, isCachable, isConnected, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkipLimit, joinChannel, joinCommunity, leaveChannel, leaveCommunity, mergeInCache, observeChannel, observeComment, observeComments, observeCommunity, observeFile, observeFollowInfo, observeFollowers, observeFollowings, observeMessage, observeMessages, observePost, observePosts, observeUser, onChannelDeleted, onChannelJoined, onChannelLeft, onChannelUpdated, onClientBanned, onClientDisconnected, onCommentCreated, onCommentDeleted, onCommentFlagged, onCommentReactionAdded, onCommentReactionRemoved, onCommentUnflagged, onCommentUpdated, onCommunityCreated, onCommunityDeleted, onCommunityJoined, onCommunityLeft, onCommunityUpdated, onCommunityUserAdded, onCommunityUserBanned, onCommunityUserRemoved, onCommunityUserUnbanned, onConnectionError, onFollowInfoUpdated, onFollowRequestAccepted, onFollowRequestCanceled, onFollowRequestDeclined, onFollowerDeleted, onFollowerRequested, onMemberAdded, onMemberRemoved, onMessageCreated, onMessageDeleted, onMessageUpdated, onPostApproved, onPostCreated, onPostDeclined, onPostDeleted, onPostFlagged, onPostReactionAdded, onPostReactionRemoved, onPostUnflagged, onPostUpdated, onReactionRemoved, onStreamRecorded, onStreamStarted, onStreamStopped, onUserFlagCleared, onUserFlagged, onUserFollowed, onUserUnflagged, onUserUnfollowed, onUserUpdated, pullFromCache, pushToCache, queryCache, queryCategories, queryChannelMembers, queryChannels, queryComments, queryCommunities, queryCommunityMembers, queryFollowers, queryFollowings, queryGlobalFeed, queryMessages, queryOptions, queryPosts, queryRoles, queryStreams, queryUsers, removeChannelMembers, removeChannelMembersRole, removeCommunityMembers, removeCommunityMembersRoles, removeReaction, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByLastActivity, sortByLastCreated, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, unfollow, updateChannel, updateComment, updateCommunity, updateMessage, updatePost, updateStream, updateUser, upsertInCache, votePoll, wipeCache };