@amityco/ts-sdk 7.11.1-1768ac5d.0 → 7.11.1-1fc6ef75.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 (30) hide show
  1. package/dist/@types/core/permissions.d.ts +5 -1
  2. package/dist/@types/core/permissions.d.ts.map +1 -1
  3. package/dist/@types/domains/event.d.ts +18 -3
  4. package/dist/@types/domains/event.d.ts.map +1 -1
  5. package/dist/eventRepository/events/index.d.ts +3 -0
  6. package/dist/eventRepository/events/index.d.ts.map +1 -1
  7. package/dist/eventRepository/events/onLocalEventCreated.d.ts +17 -0
  8. package/dist/eventRepository/events/onLocalEventCreated.d.ts.map +1 -0
  9. package/dist/eventRepository/events/onLocalEventDeleted.d.ts +17 -0
  10. package/dist/eventRepository/events/onLocalEventDeleted.d.ts.map +1 -0
  11. package/dist/eventRepository/events/onLocalEventUpdated.d.ts +17 -0
  12. package/dist/eventRepository/events/onLocalEventUpdated.d.ts.map +1 -0
  13. package/dist/eventRepository/observers/getEvent.d.ts.map +1 -1
  14. package/dist/eventRepository/observers/getEvents/LiveCollectionController.d.ts.map +1 -1
  15. package/dist/eventRepository/observers/getMyEvents/LiveCollectionController.d.ts +13 -0
  16. package/dist/eventRepository/observers/getMyEvents/LiveCollectionController.d.ts.map +1 -0
  17. package/dist/eventRepository/observers/getMyEvents/PaginationController.d.ts +5 -0
  18. package/dist/eventRepository/observers/getMyEvents/PaginationController.d.ts.map +1 -0
  19. package/dist/eventRepository/observers/getMyEvents/QueryStreamController.d.ts +15 -0
  20. package/dist/eventRepository/observers/getMyEvents/QueryStreamController.d.ts.map +1 -0
  21. package/dist/eventRepository/observers/getMyEvents.d.ts +12 -0
  22. package/dist/eventRepository/observers/getMyEvents.d.ts.map +1 -0
  23. package/dist/eventRepository/observers/index.d.ts +1 -0
  24. package/dist/eventRepository/observers/index.d.ts.map +1 -1
  25. package/dist/eventRepository/utils/createEventEventSubscriber.d.ts +1 -1
  26. package/dist/eventRepository/utils/createEventEventSubscriber.d.ts.map +1 -1
  27. package/dist/index.cjs.js +200 -5
  28. package/dist/index.esm.js +201 -6
  29. package/dist/index.umd.js +3 -3
  30. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -194,6 +194,12 @@ var AmityEventStatus;
194
194
  AmityEventStatus["Ended"] = "ended";
195
195
  AmityEventStatus["Cancelled"] = "cancelled";
196
196
  })(AmityEventStatus || (AmityEventStatus = {}));
197
+ var AmityEventResponseStatus;
198
+ (function (AmityEventResponseStatus) {
199
+ AmityEventResponseStatus["Going"] = "going";
200
+ AmityEventResponseStatus["Interested"] = "interested";
201
+ AmityEventResponseStatus["NotGoing"] = "not_going";
202
+ })(AmityEventResponseStatus || (AmityEventResponseStatus = {}));
197
203
 
198
204
  function getVersion() {
199
205
  try {
@@ -46481,7 +46487,7 @@ const createEvent = async (bundle) => {
46481
46487
  const client = getActiveClient();
46482
46488
  client.log('event/createEvent', bundle);
46483
46489
  const { data: payload } = await client.http.post('/api/v1/events', bundle);
46484
- fireEvent('event.created', payload);
46490
+ fireEvent('local.event.created', payload);
46485
46491
  const preparedPayload = prepareEventPayload(payload);
46486
46492
  const cachedAt = client.cache && Date.now();
46487
46493
  if (client.cache)
@@ -46515,7 +46521,7 @@ const updateEvent = async (eventId, bundle) => {
46515
46521
  const client = getActiveClient();
46516
46522
  client.log('event/updateEvent', eventId, bundle);
46517
46523
  const { data: payload } = await client.http.put(`/api/v1/events/${eventId}`, bundle);
46518
- fireEvent('event.updated', payload);
46524
+ fireEvent('local.event.updated', payload);
46519
46525
  const preparedPayload = prepareEventPayload(payload);
46520
46526
  const cachedAt = client.cache && Date.now();
46521
46527
  if (client.cache)
@@ -46608,7 +46614,7 @@ const deleteEvent = async (eventId) => {
46608
46614
  await client.http.delete(`/api/v3/events/${eventId}`);
46609
46615
  const deletedEvent = Object.assign(Object.assign({}, event.data), { isDeleted: true });
46610
46616
  upsertInCache(['event', 'get', eventId], deletedEvent);
46611
- fireEvent('event.deleted', {
46617
+ fireEvent('local.event.deleted', {
46612
46618
  users: [],
46613
46619
  files: [],
46614
46620
  communities: [],
@@ -46670,6 +46676,57 @@ const onEventUpdated = (callback) => createEventEventSubscriber('event.updated',
46670
46676
  */
46671
46677
  const onEventDeleted = (callback) => createEventEventSubscriber('event.deleted', callback);
46672
46678
 
46679
+ /**
46680
+ * ```js
46681
+ * import { EventRepository } from '@amityco/ts-sdk'
46682
+ * const dispose = EventRepository.onLocalEventCreated(event => {
46683
+ * // ...
46684
+ * })
46685
+ * ```
46686
+ *
46687
+ * Fired when a {@link Amity.Event} has been created
46688
+ *
46689
+ * @param callback The function to call when the event was fired
46690
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
46691
+ *
46692
+ * @category Event Events
46693
+ */
46694
+ const onLocalEventCreated = (callback) => createEventEventSubscriber('local.event.created', callback);
46695
+
46696
+ /**
46697
+ * ```js
46698
+ * import { EventRepository } from '@amityco/ts-sdk'
46699
+ * const dispose = EventRepository.onLocalEventUpdated(event => {
46700
+ * // ...
46701
+ * })
46702
+ * ```
46703
+ *
46704
+ * Fired when a {@link Amity.Event} has been updated
46705
+ *
46706
+ * @param callback The function to call when the event was fired
46707
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
46708
+ *
46709
+ * @category Event Events
46710
+ */
46711
+ const onLocalEventUpdated = (callback) => createEventEventSubscriber('local.event.updated', callback);
46712
+
46713
+ /**
46714
+ * ```js
46715
+ * import { EventRepository } from '@amityco/ts-sdk'
46716
+ * const dispose = EventRepository.onLocalEventDeleted(event => {
46717
+ * // ...
46718
+ * })
46719
+ * ```
46720
+ *
46721
+ * Fired when a {@link Amity.Event} has been deleted
46722
+ *
46723
+ * @param callback The function to call when the event was fired
46724
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
46725
+ *
46726
+ * @category Event Events
46727
+ */
46728
+ const onLocalEventDeleted = (callback) => createEventEventSubscriber('local.event.deleted', callback);
46729
+
46673
46730
  /* begin_public_function
46674
46731
  id: event.get
46675
46732
  */
@@ -46693,7 +46750,7 @@ const onEventDeleted = (callback) => createEventEventSubscriber('event.deleted',
46693
46750
  * @category Event Live Object
46694
46751
  */
46695
46752
  const getEvent = (eventId, callback) => {
46696
- return liveObject(eventId, callback, 'eventId', getEvent$1, [onEventCreated, onEventUpdated, onEventDeleted], {
46753
+ return liveObject(eventId, callback, 'eventId', getEvent$1, [onEventUpdated, onEventDeleted, onLocalEventUpdated, onLocalEventDeleted], {
46697
46754
  callbackDataSelector: (data) => (data ? eventLinkedObject(data) : data),
46698
46755
  });
46699
46756
  };
@@ -46788,6 +46845,9 @@ class EventLiveCollectionController extends LiveCollectionController {
46788
46845
  { fn: onEventCreated, action: EventActionsEnum.OnEventCreated },
46789
46846
  { fn: onEventUpdated, action: EventActionsEnum.OnEventUpdated },
46790
46847
  { fn: onEventDeleted, action: EventActionsEnum.OnEventDeleted },
46848
+ { fn: onLocalEventCreated, action: EventActionsEnum.OnEventCreated },
46849
+ { fn: onLocalEventUpdated, action: EventActionsEnum.OnEventUpdated },
46850
+ { fn: onLocalEventDeleted, action: EventActionsEnum.OnEventDeleted },
46791
46851
  ]);
46792
46852
  }
46793
46853
  notifyChange({ origin, loading, error }) {
@@ -46837,6 +46897,137 @@ const getEvents = (params, callback, config) => {
46837
46897
  };
46838
46898
  };
46839
46899
 
46900
+ class MyEventPaginationController extends PaginationController {
46901
+ async getRequest(queryParams, token) {
46902
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT } = queryParams, params = __rest(queryParams, ["limit"]);
46903
+ const options = token ? { token } : { limit };
46904
+ const { data: response } = await this.http.get(`/api/v1/events/me/rsvps`, { params: Object.assign(Object.assign({}, params), { options }) });
46905
+ return response;
46906
+ }
46907
+ }
46908
+
46909
+ class MyEventQueryStreamController extends QueryStreamController {
46910
+ constructor(query, cacheKey, notifyChange, preparePayload) {
46911
+ super(query, cacheKey);
46912
+ this.notifyChange = notifyChange;
46913
+ this.preparePayload = preparePayload;
46914
+ }
46915
+ async saveToMainDB(response) {
46916
+ const processedPayload = this.preparePayload(response);
46917
+ const client = getActiveClient();
46918
+ const cachedAt = client.cache && Date.now();
46919
+ if (client.cache)
46920
+ ingestInCache(processedPayload, { cachedAt });
46921
+ }
46922
+ appendToQueryStream(response, direction, refresh = false) {
46923
+ var _a, _b;
46924
+ if (refresh) {
46925
+ pushToCache(this.cacheKey, { data: response.events.map(getResolver('event')) });
46926
+ }
46927
+ else {
46928
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
46929
+ const events = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
46930
+ pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...events, ...response.events.map(getResolver('event'))])] }));
46931
+ }
46932
+ }
46933
+ reactor(action) {
46934
+ return (event) => {
46935
+ var _a;
46936
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
46937
+ if (!collection)
46938
+ return;
46939
+ if (action === EventActionsEnum.OnEventDeleted) {
46940
+ collection.data = collection.data.filter(eventId => eventId !== event.eventId);
46941
+ }
46942
+ pushToCache(this.cacheKey, collection);
46943
+ this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
46944
+ };
46945
+ }
46946
+ subscribeRTE(createSubscriber) {
46947
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
46948
+ }
46949
+ }
46950
+
46951
+ class MyEventLiveCollectionController extends LiveCollectionController {
46952
+ constructor(query, callback) {
46953
+ const queryStreamId = hash(query);
46954
+ const cacheKey = ['event', 'collection', queryStreamId];
46955
+ const paginationController = new MyEventPaginationController(query);
46956
+ super(paginationController, queryStreamId, cacheKey, callback);
46957
+ this.query = query;
46958
+ this.queryStreamController = new MyEventQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), prepareEventPayload);
46959
+ this.callback = callback.bind(this);
46960
+ this.loadPage({ initial: true });
46961
+ }
46962
+ setup() {
46963
+ var _a;
46964
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
46965
+ if (!collection)
46966
+ pushToCache(this.cacheKey, { data: [], params: {} });
46967
+ }
46968
+ async persistModel(queryPayload) {
46969
+ await this.queryStreamController.saveToMainDB(queryPayload);
46970
+ }
46971
+ persistQueryStream({ response, direction, refresh, }) {
46972
+ this.queryStreamController.appendToQueryStream(response, direction, refresh);
46973
+ }
46974
+ startSubscription() {
46975
+ return this.queryStreamController.subscribeRTE([
46976
+ { fn: onEventCreated, action: EventActionsEnum.OnEventCreated },
46977
+ { fn: onEventUpdated, action: EventActionsEnum.OnEventUpdated },
46978
+ { fn: onEventDeleted, action: EventActionsEnum.OnEventDeleted },
46979
+ { fn: onLocalEventCreated, action: EventActionsEnum.OnEventCreated },
46980
+ { fn: onLocalEventUpdated, action: EventActionsEnum.OnEventUpdated },
46981
+ { fn: onLocalEventDeleted, action: EventActionsEnum.OnEventDeleted },
46982
+ ]);
46983
+ }
46984
+ notifyChange({ origin, loading, error }) {
46985
+ var _a, _b;
46986
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
46987
+ if (!collection)
46988
+ return;
46989
+ const data = ((_b = collection.data
46990
+ .map(eventId => pullFromCache(['event', 'get', eventId]))
46991
+ .filter(isNonNullable)
46992
+ .map(({ data }) => data)) !== null && _b !== void 0 ? _b : []).map(LinkedObject.event);
46993
+ if (!this.shouldNotify(data) && origin === 'event')
46994
+ return;
46995
+ this.callback({
46996
+ data,
46997
+ error,
46998
+ loading,
46999
+ hasNextPage: !!this.paginationController.getNextToken(),
47000
+ onNextPage: () => this.loadPage({ direction: "next" /* Amity.LiveCollectionPageDirection.NEXT */ }),
47001
+ });
47002
+ }
47003
+ }
47004
+
47005
+ /**
47006
+ * Get my events
47007
+ *
47008
+ * @param params the query parameters
47009
+ * @param callback the callback to be called when the events are updated
47010
+ * @returns events
47011
+ *
47012
+ * @category Event Live Collection
47013
+ *
47014
+ */
47015
+ const getMyEvents = (params, callback, config) => {
47016
+ const { log, cache } = getActiveClient();
47017
+ if (!cache)
47018
+ console.log(ENABLE_CACHE_MESSAGE);
47019
+ const timestamp = Date.now();
47020
+ log(`getMyEvents: (tmpid: ${timestamp}) > listen`);
47021
+ const myEventLiveCollection = new MyEventLiveCollectionController(params, callback);
47022
+ const disposers = myEventLiveCollection.startSubscription();
47023
+ const cacheKey = myEventLiveCollection.getCacheKey();
47024
+ disposers.push(() => dropFromCache(cacheKey));
47025
+ return () => {
47026
+ log(`getMyEvents (tmpid: ${timestamp}) > dispose`);
47027
+ disposers.forEach(fn => fn());
47028
+ };
47029
+ };
47030
+
46840
47031
  var index = /*#__PURE__*/Object.freeze({
46841
47032
  __proto__: null,
46842
47033
  createEvent: createEvent,
@@ -46845,8 +47036,12 @@ var index = /*#__PURE__*/Object.freeze({
46845
47036
  onEventCreated: onEventCreated,
46846
47037
  onEventUpdated: onEventUpdated,
46847
47038
  onEventDeleted: onEventDeleted,
47039
+ onLocalEventCreated: onLocalEventCreated,
47040
+ onLocalEventUpdated: onLocalEventUpdated,
47041
+ onLocalEventDeleted: onLocalEventDeleted,
46848
47042
  getEvent: getEvent,
46849
- getEvents: getEvents
47043
+ getEvents: getEvents,
47044
+ getMyEvents: getMyEvents
46850
47045
  });
46851
47046
 
46852
- export { API_REGIONS, index$4 as AdRepository, AmityEventOriginType, AmityEventStatus, AmityEventType, index$c as CategoryRepository, index$g as ChannelRepository, index$p as Client, index$b as CommentRepository, CommunityPostSettingMaps, CommunityPostSettings, index$d as CommunityRepository, ContentFeedType, ContentFlagReasonEnum, DefaultCommunityPostSetting, index as EventRepository, FeedDataTypeEnum, index$a as FeedRepository, FeedSortByEnum, FeedSourceEnum, FileAccessTypeEnum, index$m as FileRepository, FileType, GET_WATCHER_URLS, index$2 as InvitationRepository, InvitationSortByEnum, InvitationStatusEnum, InvitationTypeEnum, JoinRequestStatusEnum, JoinResultStatusEnum, index$1 as LiveReactionRepository, index$6 as LiveStreamPlayer, MembershipAcceptanceTypeEnum, MessageContentType, index$k as MessageRepository, index$7 as PollRepository, PostContentType, index$9 as PostRepository, PostStructureType, index$l as ReactionRepository, index$5 as StoryRepository, index$8 as StreamRepository, index$j as SubChannelRepository, SubscriptionLevels, index$n as UserRepository, UserTypeEnum, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, getChannelTopic, getCommentTopic, getCommunityStoriesTopic, getCommunityTopic, getLiveReactionTopic, getLiveStreamTopic, getMarkedMessageTopic, getMarkerUserFeedTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkTopic, getPostTopic, getRole, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getStoryTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, index$3 as notificationTray, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, onUserMarkerFetchedLegacy, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByLocalSortingDate, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, wipeCache };
47047
+ export { API_REGIONS, index$4 as AdRepository, AmityEventOriginType, AmityEventResponseStatus, AmityEventStatus, AmityEventType, index$c as CategoryRepository, index$g as ChannelRepository, index$p as Client, index$b as CommentRepository, CommunityPostSettingMaps, CommunityPostSettings, index$d as CommunityRepository, ContentFeedType, ContentFlagReasonEnum, DefaultCommunityPostSetting, index as EventRepository, FeedDataTypeEnum, index$a as FeedRepository, FeedSortByEnum, FeedSourceEnum, FileAccessTypeEnum, index$m as FileRepository, FileType, GET_WATCHER_URLS, index$2 as InvitationRepository, InvitationSortByEnum, InvitationStatusEnum, InvitationTypeEnum, JoinRequestStatusEnum, JoinResultStatusEnum, index$1 as LiveReactionRepository, index$6 as LiveStreamPlayer, MembershipAcceptanceTypeEnum, MessageContentType, index$k as MessageRepository, index$7 as PollRepository, PostContentType, index$9 as PostRepository, PostStructureType, index$l as ReactionRepository, index$5 as StoryRepository, index$8 as StreamRepository, index$j as SubChannelRepository, SubscriptionLevels, index$n as UserRepository, UserTypeEnum, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, getChannelTopic, getCommentTopic, getCommunityStoriesTopic, getCommunityTopic, getLiveReactionTopic, getLiveStreamTopic, getMarkedMessageTopic, getMarkerUserFeedTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkTopic, getPostTopic, getRole, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getStoryTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, index$3 as notificationTray, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, onUserMarkerFetchedLegacy, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByLocalSortingDate, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, wipeCache };