@oxyfoo/whymeet-types 0.0.28 → 0.0.30

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.
@@ -0,0 +1,45 @@
1
+ export type AnalyticsSystemEventName = 'session.start' | 'session.end' | 'screen_view';
2
+ export type AnalyticsFeatureEventName = 'feature.profile.edit_started' | 'feature.profile.complete' | 'feature.match.like' | 'feature.match.pass' | 'feature.match.create' | 'feature.message.send' | 'feature.discovery.search' | 'feature.activity.create' | 'feature.activity.join' | 'onboarding.step_completed';
3
+ export type AnalyticsEventName = AnalyticsSystemEventName | AnalyticsFeatureEventName;
4
+ export interface AnalyticsScreenViewProps {
5
+ screen: string;
6
+ }
7
+ export interface AnalyticsOnboardingStepProps {
8
+ step: number;
9
+ totalSteps: number;
10
+ }
11
+ export interface AnalyticsEventPropsMap {
12
+ 'session.start': Record<string, never>;
13
+ 'session.end': Record<string, never>;
14
+ screen_view: AnalyticsScreenViewProps;
15
+ 'feature.profile.edit_started': Record<string, never>;
16
+ 'feature.profile.complete': Record<string, never>;
17
+ 'feature.match.like': Record<string, never>;
18
+ 'feature.match.pass': Record<string, never>;
19
+ 'feature.match.create': Record<string, never>;
20
+ 'feature.message.send': Record<string, never>;
21
+ 'feature.discovery.search': Record<string, never>;
22
+ 'feature.activity.create': Record<string, never>;
23
+ 'feature.activity.join': Record<string, never>;
24
+ 'onboarding.step_completed': AnalyticsOnboardingStepProps;
25
+ }
26
+ export type AnalyticsPlatform = 'ios' | 'android';
27
+ export interface AnalyticsClientEvent<N extends AnalyticsEventName = AnalyticsEventName> {
28
+ name: N;
29
+ ts: number;
30
+ platform: AnalyticsPlatform;
31
+ appVersion: string;
32
+ props?: AnalyticsEventPropsMap[N];
33
+ }
34
+ export declare const ANALYTICS_MAX_EVENTS_PER_BATCH = 100;
35
+ export declare const ANALYTICS_MAX_PROPS_BYTES = 2048;
36
+ export declare const ANALYTICS_CLIENT_FLUSH_THRESHOLD = 50;
37
+ export declare const ANALYTICS_CLIENT_FLUSH_INTERVAL_MS = 30000;
38
+ export declare const ANALYTICS_RAW_RETENTION_DAYS = 60;
39
+ export interface AnalyticsDailyMetricRow {
40
+ date: string;
41
+ name: AnalyticsEventName;
42
+ dimension: string;
43
+ count: number;
44
+ uniqueDevices: number;
45
+ }
@@ -0,0 +1,5 @@
1
+ export const ANALYTICS_MAX_EVENTS_PER_BATCH = 100;
2
+ export const ANALYTICS_MAX_PROPS_BYTES = 2048;
3
+ export const ANALYTICS_CLIENT_FLUSH_THRESHOLD = 50;
4
+ export const ANALYTICS_CLIENT_FLUSH_INTERVAL_MS = 30_000;
5
+ export const ANALYTICS_RAW_RETENTION_DAYS = 60;
@@ -1,7 +1,7 @@
1
1
  import type { InterestCategoryKey } from './InterestCategory.js';
2
2
  export declare const INTENTION_CATEGORY_KEYS: readonly ["do_something_together", "go_out_or_move", "talk_and_share", "build_connection", "see_if_it_clicks", "grow_or_build"];
3
3
  export type IntentionCategoryKey = (typeof INTENTION_CATEGORY_KEYS)[number];
4
- export declare const INTENTION_KEYS: readonly ["go_out_coffee", "go_out_drink", "go_out_meal", "go_out_walk", "go_out_tonight", "go_out_discover", "activity_sports", "activity_play", "activity_play_video_games", "activity_play_board_games", "activity_culture", "activity_creative", "activity_food", "activity_outdoor", "talk_light", "talk_deep", "talk_topic", "talk_media", "talk_language_exchange", "talk_online", "meet_make_acquaintance", "meet_feeling", "meet_simple_first_date", "meet_relaxed_date", "meet_spontaneous", "meet_online_first", "regular_sports_partner", "regular_game_partner", "regular_talk_buddy", "regular_social_habit", "regular_small_group", "regular_go_out_often", "build_coworking", "build_project", "build_entrepreneurship", "build_create_together", "build_learn_together", "build_mentoring", "build_collaboration"];
4
+ export declare const INTENTION_KEYS: readonly ["go_out_coffee", "go_out_drink", "go_out_meal", "go_out_walk", "go_out_tonight", "go_out_discover", "activity_sports", "activity_play", "activity_play_video_games", "activity_play_board_games", "activity_play_chess", "activity_culture", "activity_creative", "activity_food", "activity_outdoor", "talk_light", "talk_deep", "talk_topic", "talk_media", "talk_language_exchange", "talk_online", "meet_make_acquaintance", "meet_feeling", "meet_simple_first_date", "meet_relaxed_date", "meet_spontaneous", "meet_online_first", "regular_sports_partner", "regular_game_partner", "regular_talk_buddy", "regular_social_habit", "regular_small_group", "regular_go_out_often", "build_coworking", "build_project", "build_entrepreneurship", "build_create_together", "build_learn_together", "build_mentoring", "build_collaboration"];
5
5
  export type IntentionKey = (typeof INTENTION_KEYS)[number];
6
6
  export type IntentionParentKey = IntentionCategoryKey | IntentionKey;
7
7
  export type SupportedLocale = 'fr' | 'en';
@@ -89,4 +89,7 @@ export declare function getParentKeyForIntention(intentionKey: IntentionKey): In
89
89
  export declare function getCategoryKeyForIntention(intentionKey: IntentionKey): IntentionCategoryKey;
90
90
  export declare function getAncestorIntentionKeys(intentionKey: IntentionKey): IntentionKey[];
91
91
  export declare function getDescendantIntentionKeys(parentKey: IntentionParentKey): IntentionKey[];
92
+ export declare function isTaggableIntention(intentionKey: IntentionKey): boolean;
93
+ export declare function isTaggableCategory(categoryKey: IntentionCategoryKey): boolean;
94
+ export declare function getDisplayLeafIntentions(categoryKey: IntentionCategoryKey): readonly Intention[];
92
95
  export declare function normalizeIntentionSelection(selection: IntentionSelection): IntentionSelection | null;
@@ -17,6 +17,7 @@ export const INTENTION_KEYS = [
17
17
  'activity_play',
18
18
  'activity_play_video_games',
19
19
  'activity_play_board_games',
20
+ 'activity_play_chess',
20
21
  'activity_culture',
21
22
  'activity_creative',
22
23
  'activity_food',
@@ -343,6 +344,28 @@ export const INTENTIONS = [
343
344
  domainKeys: ['gaming', 'culture'],
344
345
  order: 22
345
346
  },
347
+ {
348
+ key: 'activity_play_chess',
349
+ parentKey: 'activity_play',
350
+ categoryKey: 'do_something_together',
351
+ level: 3,
352
+ emoji: '♟️',
353
+ i18n: {
354
+ fr: {
355
+ label: 'Échecs',
356
+ shortLabel: 'Échecs',
357
+ description: 'Jouer aux échecs, du café tranquille au tournoi rapide.'
358
+ },
359
+ en: {
360
+ label: 'Chess',
361
+ shortLabel: 'Chess',
362
+ description: 'Play chess, from casual café games to fast tournaments.'
363
+ }
364
+ },
365
+ tags: ['Blitz', 'Rapide', 'Café échecs', 'Club', 'Débutant', 'Confirmé'],
366
+ domainKeys: ['gaming', 'culture'],
367
+ order: 23
368
+ },
346
369
  {
347
370
  key: 'activity_culture',
348
371
  parentKey: 'do_something_together',
@@ -1064,6 +1087,26 @@ export function getDescendantIntentionKeys(parentKey) {
1064
1087
  visit(parentKey);
1065
1088
  return descendants;
1066
1089
  }
1090
+ const NON_TAGGABLE_CATEGORY_KEYS = new Set(['talk_and_share', 'see_if_it_clicks']);
1091
+ export function isTaggableIntention(intentionKey) {
1092
+ return !NON_TAGGABLE_CATEGORY_KEYS.has(getCategoryKeyForIntention(intentionKey));
1093
+ }
1094
+ export function isTaggableCategory(categoryKey) {
1095
+ return !NON_TAGGABLE_CATEGORY_KEYS.has(categoryKey);
1096
+ }
1097
+ export function getDisplayLeafIntentions(categoryKey) {
1098
+ const leaves = [];
1099
+ for (const intention of getIntentionsForCategory(categoryKey)) {
1100
+ const children = getChildIntentions(intention.key);
1101
+ if (children.length > 0) {
1102
+ leaves.push(...children);
1103
+ }
1104
+ else {
1105
+ leaves.push(intention);
1106
+ }
1107
+ }
1108
+ return leaves.sort((a, b) => a.order - b.order);
1109
+ }
1067
1110
  export function normalizeIntentionSelection(selection) {
1068
1111
  if (!isIntentionKey(selection.intentionKey))
1069
1112
  return null;
@@ -6,6 +6,7 @@ export interface MatchCandidate {
6
6
  id: string;
7
7
  user: User;
8
8
  intentionKeys: IntentionKey[];
9
+ intentionCategoryKeys: IntentionCategoryKey[];
9
10
  intentionMatch?: IntentionMatchSummary;
10
11
  bio: string;
11
12
  interests: string[];
@@ -1,5 +1,5 @@
1
1
  import { User } from './User.js';
2
- import type { IntentionKey } from './Intention.js';
2
+ import type { IntentionCategoryKey, IntentionKey } from './Intention.js';
3
3
  import { Tag } from './Tag.js';
4
4
  import type { HostLevel } from './TrustScore.js';
5
5
  export type SocialVibe = 'reserved' | 'calm' | 'balanced' | 'outgoing' | 'very_social';
@@ -12,6 +12,7 @@ export interface Profile extends User {
12
12
  skills: Tag[];
13
13
  socialVibe: SocialVibe;
14
14
  intentionKeys: IntentionKey[];
15
+ intentionCategoryKeys: IntentionCategoryKey[];
15
16
  spokenLanguages: string[];
16
17
  preferredDiscoveryView: DiscoveryView;
17
18
  location: {
@@ -6,7 +6,7 @@ export { SOCIAL_VIBES } from './Profile.js';
6
6
  export type { InterestCategory, InterestCategoryKey } from './InterestCategory.js';
7
7
  export { INTEREST_CATEGORY_KEYS, INTEREST_CATEGORIES } from './InterestCategory.js';
8
8
  export type { IntentionFallbackLevel, IntentionMatchSummary, Intention, IntentionDomainMapping, IntentionKey, IntentionParentKey, IntentionSelection, IntentionTagMapping, IntentionCategory, IntentionCategoryKey } from './Intention.js';
9
- export { getAllIntentionsForCategory, getAncestorIntentionKeys, getChildIntentions, getDescendantIntentionKeys, getCategoryKeyForIntention, getParentKeyForIntention, getIntention, getIntentionsForCategory, hasChildIntentions, getIntentionCategory, isIntentionKey, isIntentionCategoryKey, normalizeIntentionKey, normalizeIntentionKeys, normalizeIntentionSelection, INTENTION_DOMAIN_MAPPINGS, INTENTION_KEYS, INTENTIONS_BY_PARENT, INTENTION_TAG_MAPPINGS, INTENTIONS, INTENTIONS_BY_KEY, INTENTIONS_BY_CATEGORY, NESTED_INTENTIONS_BY_CATEGORY, INTENTION_CATEGORY_KEYS, INTENTION_CATEGORIES, INTENTION_CATEGORIES_BY_KEY } from './Intention.js';
9
+ export { getAllIntentionsForCategory, getAncestorIntentionKeys, getChildIntentions, getDescendantIntentionKeys, getCategoryKeyForIntention, getDisplayLeafIntentions, getParentKeyForIntention, getIntention, getIntentionsForCategory, hasChildIntentions, getIntentionCategory, isIntentionKey, isIntentionCategoryKey, isTaggableCategory, isTaggableIntention, normalizeIntentionKey, normalizeIntentionKeys, normalizeIntentionSelection, INTENTION_DOMAIN_MAPPINGS, INTENTION_KEYS, INTENTIONS_BY_PARENT, INTENTION_TAG_MAPPINGS, INTENTIONS, INTENTIONS_BY_KEY, INTENTIONS_BY_CATEGORY, NESTED_INTENTIONS_BY_CATEGORY, INTENTION_CATEGORY_KEYS, INTENTION_CATEGORIES, INTENTION_CATEGORIES_BY_KEY } from './Intention.js';
10
10
  export type { Tag, TagMatchType, TagSuggestion } from './Tag.js';
11
11
  export type { SearchFilters } from './Search.js';
12
12
  export type { MatchCandidate, Match, MatchRequest } from './Match.js';
@@ -26,3 +26,5 @@ export type { HostLevelKey, HostLevel, HostLevelDefinition } from './TrustScore.
26
26
  export { HOST_LEVEL_KEYS, HOST_LEVELS, getHostLevel } from './TrustScore.js';
27
27
  export type { EmailTypeKey, EmailTypeDescriptor, EmailScope, EmailDelivery, EmailLogStatus } from './EmailType.js';
28
28
  export { EMAIL_TYPES, EMAIL_TYPE_KEYS, EMAIL_LOG_STATUSES, getEmailTypeDescriptor } from './EmailType.js';
29
+ export type { AnalyticsSystemEventName, AnalyticsFeatureEventName, AnalyticsEventName, AnalyticsScreenViewProps, AnalyticsOnboardingStepProps, AnalyticsEventPropsMap, AnalyticsPlatform, AnalyticsClientEvent, AnalyticsDailyMetricRow } from './Analytics.js';
30
+ export { ANALYTICS_MAX_EVENTS_PER_BATCH, ANALYTICS_MAX_PROPS_BYTES, ANALYTICS_CLIENT_FLUSH_THRESHOLD, ANALYTICS_CLIENT_FLUSH_INTERVAL_MS, ANALYTICS_RAW_RETENTION_DAYS } from './Analytics.js';
@@ -1,8 +1,9 @@
1
1
  export { SOCIAL_VIBES } from './Profile.js';
2
2
  export { INTEREST_CATEGORY_KEYS, INTEREST_CATEGORIES } from './InterestCategory.js';
3
- export { getAllIntentionsForCategory, getAncestorIntentionKeys, getChildIntentions, getDescendantIntentionKeys, getCategoryKeyForIntention, getParentKeyForIntention, getIntention, getIntentionsForCategory, hasChildIntentions, getIntentionCategory, isIntentionKey, isIntentionCategoryKey, normalizeIntentionKey, normalizeIntentionKeys, normalizeIntentionSelection, INTENTION_DOMAIN_MAPPINGS, INTENTION_KEYS, INTENTIONS_BY_PARENT, INTENTION_TAG_MAPPINGS, INTENTIONS, INTENTIONS_BY_KEY, INTENTIONS_BY_CATEGORY, NESTED_INTENTIONS_BY_CATEGORY, INTENTION_CATEGORY_KEYS, INTENTION_CATEGORIES, INTENTION_CATEGORIES_BY_KEY } from './Intention.js';
3
+ export { getAllIntentionsForCategory, getAncestorIntentionKeys, getChildIntentions, getDescendantIntentionKeys, getCategoryKeyForIntention, getDisplayLeafIntentions, getParentKeyForIntention, getIntention, getIntentionsForCategory, hasChildIntentions, getIntentionCategory, isIntentionKey, isIntentionCategoryKey, isTaggableCategory, isTaggableIntention, normalizeIntentionKey, normalizeIntentionKeys, normalizeIntentionSelection, INTENTION_DOMAIN_MAPPINGS, INTENTION_KEYS, INTENTIONS_BY_PARENT, INTENTION_TAG_MAPPINGS, INTENTIONS, INTENTIONS_BY_KEY, INTENTIONS_BY_CATEGORY, NESTED_INTENTIONS_BY_CATEGORY, INTENTION_CATEGORY_KEYS, INTENTION_CATEGORIES, INTENTION_CATEGORIES_BY_KEY } from './Intention.js';
4
4
  export { GENDERS, DEFAULT_PEOPLE, DEFAULT_ACTIVITY, DEFAULT_VISIBILITY } from './Settings.js';
5
5
  export { PREFERRED_PERIODS } from './Availability.js';
6
6
  export { SUBSCRIPTION_PLANS, SUBSCRIPTION_STATUSES, BOOST_PACKS, BOOST_DURATION_DAYS, PRODUCT_IDS, APP_CONFIG_KEYS } from './Subscription.js';
7
7
  export { HOST_LEVEL_KEYS, HOST_LEVELS, getHostLevel } from './TrustScore.js';
8
8
  export { EMAIL_TYPES, EMAIL_TYPE_KEYS, EMAIL_LOG_STATUSES, getEmailTypeDescriptor } from './EmailType.js';
9
+ export { ANALYTICS_MAX_EVENTS_PER_BATCH, ANALYTICS_MAX_PROPS_BYTES, ANALYTICS_CLIENT_FLUSH_THRESHOLD, ANALYTICS_CLIENT_FLUSH_INTERVAL_MS, ANALYTICS_RAW_RETENTION_DAYS } from './Analytics.js';
@@ -11,9 +11,10 @@ import type { FeedbackType } from '../Models/Feedback.js';
11
11
  import type { BlockedUser } from '../Models/Block.js';
12
12
  import type { Activity, ActivitySummary, ActivitySearchFilters } from '../Models/Activity.js';
13
13
  import type { InterestCategoryKey } from '../Models/InterestCategory.js';
14
- import type { Intention, IntentionSelection, IntentionCategory, IntentionCategoryKey } from '../Models/Intention.js';
14
+ import type { Intention, IntentionSelection, IntentionCategory, IntentionCategoryKey, IntentionKey } from '../Models/Intention.js';
15
15
  import type { UserBadge } from '../Models/Badge.js';
16
16
  import type { PlaceSuggestion, PlaceSuggestionLite } from '../Models/Place.js';
17
+ import type { AnalyticsClientEvent, AnalyticsEventName } from '../Models/Analytics.js';
17
18
  export interface WSRequest_Handshake {
18
19
  command: 'handshake';
19
20
  payload: {
@@ -61,6 +62,19 @@ export interface WSRequest_GetProfilePopularTags {
61
62
  command: 'get-profile-popular-tags';
62
63
  payload: Record<string, never>;
63
64
  }
65
+ export type RefinePopularTagsScope = {
66
+ type: 'category';
67
+ categoryKey: IntentionCategoryKey;
68
+ } | {
69
+ type: 'intention';
70
+ intentionKey: IntentionKey;
71
+ };
72
+ export interface WSRequest_GetRefinePopularTags {
73
+ command: 'get-refine-popular-tags';
74
+ payload: {
75
+ scope: RefinePopularTagsScope;
76
+ };
77
+ }
64
78
  export interface WSRequest_Like {
65
79
  command: 'like';
66
80
  payload: {
@@ -430,7 +444,13 @@ export interface WSRequest_SetDiscoveryView {
430
444
  view: DiscoveryView;
431
445
  };
432
446
  }
433
- export type WSClientRequest = WSRequest_Handshake | WSRequest_GetProfile | WSRequest_UpdateProfile | WSRequest_GetCandidates | WSRequest_GetCandidateCounts | WSRequest_GetIntentionCatalog | WSRequest_GetIntentionCounts | WSRequest_GetIntentionPopularTags | WSRequest_Like | WSRequest_Skip | WSRequest_Search | WSRequest_GetConversations | WSRequest_GetMessages | WSRequest_SendMessage | WSRequest_GetRequests | WSRequest_AcceptRequest | WSRequest_DeclineRequest | WSRequest_GetNotifications | WSRequest_SubmitFeedback | WSRequest_MarkNotificationRead | WSRequest_BlockUser | WSRequest_ReportUser | WSRequest_Unmatch | WSRequest_GetSettings | WSRequest_UpdateSettings | WSRequest_TagSuggest | WSRequest_GetPreferences | WSRequest_UpdatePreferences | WSRequest_DeleteAccount | WSRequest_RegisterPushToken | WSRequest_GetSubscription | WSRequest_ValidateReceipt | WSRequest_GetSearchQuota | WSRequest_SearchWithToken | WSRequest_PreviewSearch | WSRequest_PurchaseBoost | WSRequest_GetBoostStatus | WSRequest_MarkRead | WSRequest_GetUserProfile | WSRequest_CreateActivity | WSRequest_UpdateActivity | WSRequest_CancelActivity | WSRequest_GetActivity | WSRequest_JoinActivity | WSRequest_LeaveActivity | WSRequest_GetActivities | WSRequest_GetActivityCounts | WSRequest_SearchActivities | WSRequest_SearchActivitiesWithToken | WSRequest_PreviewSearchActivities | WSRequest_GetCandidateActivities | WSRequest_GetPopularActivityTags | WSRequest_ReportActivity | WSRequest_GetMyActivities | WSRequest_GetBlockedUsers | WSRequest_UnblockUser | WSRequest_GetProfilePopularTags | WSRequest_GetBadges | WSRequest_GetUserBadges | WSRequest_ClaimBadgeReward | WSRequest_ConfirmHostAttendance | WSRequest_ConfirmParticipation | WSRequest_SetDiscoveryView | WSRequest_PlacesSuggest | WSRequest_PlacesRetrieve;
447
+ export interface WSRequest_AnalyticsIngest {
448
+ command: 'analytics-ingest';
449
+ payload: {
450
+ events: AnalyticsClientEvent<AnalyticsEventName>[];
451
+ };
452
+ }
453
+ export type WSClientRequest = WSRequest_Handshake | WSRequest_GetProfile | WSRequest_UpdateProfile | WSRequest_GetCandidates | WSRequest_GetCandidateCounts | WSRequest_GetIntentionCatalog | WSRequest_GetIntentionCounts | WSRequest_GetIntentionPopularTags | WSRequest_Like | WSRequest_Skip | WSRequest_Search | WSRequest_GetConversations | WSRequest_GetMessages | WSRequest_SendMessage | WSRequest_GetRequests | WSRequest_AcceptRequest | WSRequest_DeclineRequest | WSRequest_GetNotifications | WSRequest_SubmitFeedback | WSRequest_MarkNotificationRead | WSRequest_BlockUser | WSRequest_ReportUser | WSRequest_Unmatch | WSRequest_GetSettings | WSRequest_UpdateSettings | WSRequest_TagSuggest | WSRequest_GetPreferences | WSRequest_UpdatePreferences | WSRequest_DeleteAccount | WSRequest_RegisterPushToken | WSRequest_GetSubscription | WSRequest_ValidateReceipt | WSRequest_GetSearchQuota | WSRequest_SearchWithToken | WSRequest_PreviewSearch | WSRequest_PurchaseBoost | WSRequest_GetBoostStatus | WSRequest_MarkRead | WSRequest_GetUserProfile | WSRequest_CreateActivity | WSRequest_UpdateActivity | WSRequest_CancelActivity | WSRequest_GetActivity | WSRequest_JoinActivity | WSRequest_LeaveActivity | WSRequest_GetActivities | WSRequest_GetActivityCounts | WSRequest_SearchActivities | WSRequest_SearchActivitiesWithToken | WSRequest_PreviewSearchActivities | WSRequest_GetCandidateActivities | WSRequest_GetPopularActivityTags | WSRequest_ReportActivity | WSRequest_GetMyActivities | WSRequest_GetBlockedUsers | WSRequest_UnblockUser | WSRequest_GetProfilePopularTags | WSRequest_GetRefinePopularTags | WSRequest_GetBadges | WSRequest_GetUserBadges | WSRequest_ClaimBadgeReward | WSRequest_ConfirmHostAttendance | WSRequest_ConfirmParticipation | WSRequest_SetDiscoveryView | WSRequest_PlacesSuggest | WSRequest_PlacesRetrieve | WSRequest_AnalyticsIngest;
434
454
  export type WSClientCommand = WSClientRequest['command'];
435
455
  export interface WSResponse_Handshake {
436
456
  command: 'handshake';
@@ -508,6 +528,14 @@ export interface WSResponse_GetProfilePopularTags {
508
528
  error: string;
509
529
  };
510
530
  }
531
+ export interface WSResponse_GetRefinePopularTags {
532
+ command: 'get-refine-popular-tags';
533
+ payload: {
534
+ tags: string[];
535
+ } | {
536
+ error: string;
537
+ };
538
+ }
511
539
  export interface WSResponse_Like {
512
540
  command: 'like';
513
541
  payload: {
@@ -984,7 +1012,16 @@ export interface WSResponse_PlacesRetrieve {
984
1012
  error: string;
985
1013
  };
986
1014
  }
987
- export type WSServerResponse = WSResponse_Handshake | WSResponse_GetProfile | WSResponse_UpdateProfile | WSResponse_GetCandidates | WSResponse_GetCandidateCounts | WSResponse_GetIntentionCatalog | WSResponse_GetIntentionCounts | WSResponse_GetIntentionPopularTags | WSResponse_Like | WSResponse_Skip | WSResponse_Search | WSResponse_GetConversations | WSResponse_GetMessages | WSResponse_SendMessage | WSResponse_GetRequests | WSResponse_AcceptRequest | WSResponse_DeclineRequest | WSResponse_SubmitFeedback | WSResponse_GetNotifications | WSResponse_MarkNotificationRead | WSResponse_BlockUser | WSResponse_ReportUser | WSResponse_Unmatch | WSResponse_GetSettings | WSResponse_UpdateSettings | WSResponse_TagSuggest | WSResponse_GetPreferences | WSResponse_UpdatePreferences | WSResponse_DeleteAccount | WSResponse_RegisterPushToken | WSResponse_GetSubscription | WSResponse_ValidateReceipt | WSResponse_GetSearchQuota | WSResponse_SearchWithToken | WSResponse_PreviewSearch | WSResponse_PurchaseBoost | WSResponse_GetBoostStatus | WSResponse_CreateActivity | WSResponse_UpdateActivity | WSResponse_CancelActivity | WSResponse_GetActivity | WSResponse_JoinActivity | WSResponse_LeaveActivity | WSResponse_GetActivities | WSResponse_GetActivityCounts | WSResponse_SearchActivities | WSResponse_SearchActivitiesWithToken | WSResponse_PreviewSearchActivities | WSResponse_GetCandidateActivities | WSResponse_GetPopularActivityTags | WSResponse_ReportActivity | WSResponse_GetMyActivities | WSResponse_MarkRead | WSResponse_GetUserProfile | WSResponse_GetBlockedUsers | WSResponse_UnblockUser | WSResponse_GetProfilePopularTags | WSResponse_GetBadges | WSResponse_GetUserBadges | WSResponse_ClaimBadgeReward | WSResponse_ConfirmHostAttendance | WSResponse_ConfirmParticipation | WSResponse_SetDiscoveryView | WSResponse_PlacesSuggest | WSResponse_PlacesRetrieve;
1015
+ export interface WSResponse_AnalyticsIngest {
1016
+ command: 'analytics-ingest';
1017
+ payload: {
1018
+ accepted: number;
1019
+ rejected: number;
1020
+ } | {
1021
+ error: string;
1022
+ };
1023
+ }
1024
+ export type WSServerResponse = WSResponse_Handshake | WSResponse_GetProfile | WSResponse_UpdateProfile | WSResponse_GetCandidates | WSResponse_GetCandidateCounts | WSResponse_GetIntentionCatalog | WSResponse_GetIntentionCounts | WSResponse_GetIntentionPopularTags | WSResponse_Like | WSResponse_Skip | WSResponse_Search | WSResponse_GetConversations | WSResponse_GetMessages | WSResponse_SendMessage | WSResponse_GetRequests | WSResponse_AcceptRequest | WSResponse_DeclineRequest | WSResponse_SubmitFeedback | WSResponse_GetNotifications | WSResponse_MarkNotificationRead | WSResponse_BlockUser | WSResponse_ReportUser | WSResponse_Unmatch | WSResponse_GetSettings | WSResponse_UpdateSettings | WSResponse_TagSuggest | WSResponse_GetPreferences | WSResponse_UpdatePreferences | WSResponse_DeleteAccount | WSResponse_RegisterPushToken | WSResponse_GetSubscription | WSResponse_ValidateReceipt | WSResponse_GetSearchQuota | WSResponse_SearchWithToken | WSResponse_PreviewSearch | WSResponse_PurchaseBoost | WSResponse_GetBoostStatus | WSResponse_CreateActivity | WSResponse_UpdateActivity | WSResponse_CancelActivity | WSResponse_GetActivity | WSResponse_JoinActivity | WSResponse_LeaveActivity | WSResponse_GetActivities | WSResponse_GetActivityCounts | WSResponse_SearchActivities | WSResponse_SearchActivitiesWithToken | WSResponse_PreviewSearchActivities | WSResponse_GetCandidateActivities | WSResponse_GetPopularActivityTags | WSResponse_ReportActivity | WSResponse_GetMyActivities | WSResponse_MarkRead | WSResponse_GetUserProfile | WSResponse_GetBlockedUsers | WSResponse_UnblockUser | WSResponse_GetProfilePopularTags | WSResponse_GetRefinePopularTags | WSResponse_GetBadges | WSResponse_GetUserBadges | WSResponse_ClaimBadgeReward | WSResponse_ConfirmHostAttendance | WSResponse_ConfirmParticipation | WSResponse_SetDiscoveryView | WSResponse_PlacesSuggest | WSResponse_PlacesRetrieve | WSResponse_AnalyticsIngest;
988
1025
  export interface WSEvent_NewMessage {
989
1026
  event: 'new-message';
990
1027
  payload: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyfoo/whymeet-types",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "description": "WhyMeet Types - Shared TypeScript types for the WhyMeet project.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",