@kimdaegyu/babmukdang-shared 1.0.6 → 1.1.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 (106) hide show
  1. package/dist/chunk-2GRWCRTV.js +328 -0
  2. package/dist/chunk-2SJCUQNN.js +40 -0
  3. package/dist/chunk-34EKPNPX.js +0 -0
  4. package/dist/chunk-35QGRA2X.js +0 -0
  5. package/dist/chunk-3YMV26OY.js +0 -0
  6. package/dist/chunk-4DAOP35P.js +74 -0
  7. package/dist/chunk-6NZPEF4K.js +34 -0
  8. package/dist/chunk-7MGHUZXI.js +25 -0
  9. package/dist/chunk-BVTYAILQ.js +0 -0
  10. package/dist/chunk-EJKRR2MZ.js +184 -0
  11. package/dist/chunk-F24BT6H4.js +23 -0
  12. package/dist/chunk-FCE6KXNO.js +30 -0
  13. package/dist/chunk-HRM3FQPL.js +12 -0
  14. package/dist/chunk-IJMADVK5.js +27 -0
  15. package/dist/chunk-IYCA6KHR.js +0 -0
  16. package/dist/chunk-JCN37ARR.js +52 -0
  17. package/dist/chunk-JXYRJKRV.js +0 -0
  18. package/dist/chunk-LCMNVWSP.js +0 -0
  19. package/dist/chunk-MP7TEKEI.js +72 -0
  20. package/dist/chunk-NCVWB52E.js +0 -0
  21. package/dist/chunk-NW5O4R7M.js +37 -0
  22. package/dist/chunk-O6DYRCFN.js +0 -0
  23. package/dist/chunk-PDGMGLYH.js +0 -0
  24. package/dist/chunk-PFSZSKD5.js +0 -0
  25. package/dist/chunk-TA4BB3UC.js +0 -0
  26. package/dist/chunk-UFVPFUMI.js +35 -0
  27. package/dist/chunk-UN7KYFMV.js +0 -0
  28. package/dist/chunk-UXA4FHST.js +19 -0
  29. package/dist/chunk-WNY6POLW.js +0 -0
  30. package/dist/chunk-YVACD5IG.js +127 -0
  31. package/dist/chunk-Z2UFF3MA.js +212 -0
  32. package/dist/chunk-ZNAAA53X.js +45 -0
  33. package/dist/chunk-ZSZ3ETY7.js +32 -0
  34. package/dist/domain/article/index.cjs +250 -0
  35. package/dist/domain/article/index.d.cts +1026 -0
  36. package/dist/domain/article/index.d.ts +1026 -0
  37. package/dist/domain/article/index.js +32 -0
  38. package/dist/domain/auth/index.cjs +135 -0
  39. package/dist/domain/auth/index.d.cts +73 -0
  40. package/dist/domain/auth/index.d.ts +73 -0
  41. package/dist/domain/auth/index.js +17 -0
  42. package/dist/domain/challenge/index.cjs +65 -0
  43. package/dist/domain/challenge/index.d.cts +104 -0
  44. package/dist/domain/challenge/index.d.ts +104 -0
  45. package/dist/domain/challenge/index.js +18 -0
  46. package/dist/domain/common/index.cjs +769 -0
  47. package/dist/domain/common/index.d.cts +2576 -0
  48. package/dist/domain/common/index.d.ts +2576 -0
  49. package/dist/domain/common/index.js +107 -0
  50. package/dist/domain/coupon/index.cjs +74 -0
  51. package/dist/domain/coupon/index.d.cts +38 -0
  52. package/dist/domain/coupon/index.d.ts +38 -0
  53. package/dist/domain/coupon/index.js +14 -0
  54. package/dist/domain/friend/index.cjs +152 -0
  55. package/dist/domain/friend/index.d.cts +148 -0
  56. package/dist/domain/friend/index.d.ts +148 -0
  57. package/dist/domain/friend/index.js +25 -0
  58. package/dist/domain/index.cjs +997 -0
  59. package/dist/domain/index.d.cts +17 -0
  60. package/dist/domain/index.d.ts +17 -0
  61. package/dist/domain/index.js +334 -0
  62. package/dist/domain/invitation/index.cjs +104 -0
  63. package/dist/domain/invitation/index.d.cts +67 -0
  64. package/dist/domain/invitation/index.d.ts +67 -0
  65. package/dist/domain/invitation/index.js +17 -0
  66. package/dist/domain/meal/index.cjs +59 -0
  67. package/dist/domain/meal/index.d.cts +38 -0
  68. package/dist/domain/meal/index.d.ts +38 -0
  69. package/dist/domain/meal/index.js +15 -0
  70. package/dist/domain/member/index.cjs +127 -0
  71. package/dist/domain/member/index.d.cts +225 -0
  72. package/dist/domain/member/index.d.ts +225 -0
  73. package/dist/domain/member/index.js +30 -0
  74. package/dist/domain/plan/index.cjs +269 -0
  75. package/dist/domain/plan/index.d.cts +189 -0
  76. package/dist/domain/plan/index.d.ts +189 -0
  77. package/dist/domain/plan/index.js +19 -0
  78. package/dist/domain/preference/index.cjs +69 -0
  79. package/dist/domain/preference/index.d.cts +31 -0
  80. package/dist/domain/preference/index.d.ts +31 -0
  81. package/dist/domain/preference/index.js +12 -0
  82. package/dist/domain/recruit/index.cjs +138 -0
  83. package/dist/domain/recruit/index.d.cts +130 -0
  84. package/dist/domain/recruit/index.d.ts +130 -0
  85. package/dist/domain/recruit/index.js +19 -0
  86. package/dist/domain/referral/index.cjs +78 -0
  87. package/dist/domain/referral/index.d.cts +51 -0
  88. package/dist/domain/referral/index.d.ts +51 -0
  89. package/dist/domain/referral/index.js +14 -0
  90. package/dist/domain/restaurant/index.cjs +79 -0
  91. package/dist/domain/restaurant/index.d.cts +85 -0
  92. package/dist/domain/restaurant/index.d.ts +85 -0
  93. package/dist/domain/restaurant/index.js +11 -0
  94. package/dist/domain/room/index.cjs +332 -0
  95. package/dist/domain/room/index.d.cts +1482 -0
  96. package/dist/domain/room/index.d.ts +1482 -0
  97. package/dist/domain/room/index.js +74 -0
  98. package/dist/id-B-8M90Ef.d.cts +43 -0
  99. package/dist/id-B-8M90Ef.d.ts +43 -0
  100. package/dist/index-BuInbhtG.d.cts +305 -0
  101. package/dist/index-CKRUOupn.d.ts +305 -0
  102. package/dist/index.cjs +845 -21
  103. package/dist/index.d.cts +113 -569
  104. package/dist/index.d.ts +113 -569
  105. package/dist/index.js +50 -30
  106. package/package.json +50 -39
package/dist/index.d.cts CHANGED
@@ -1,24 +1,57 @@
1
- type RestaurantId = string;
2
- interface KakaoRestaurantResponseDto {
3
- id: RestaurantId;
4
- place_name: string;
5
- category_name: string;
6
- category_group_name: string;
7
- distance: string;
8
- road_address_name: string;
9
- address_name: string;
10
- phone: string;
11
- place_url?: string;
12
- lat: number;
13
- lng: number;
1
+ export { i as domain } from './index-BuInbhtG.cjs';
2
+ import { ArticleSummaryResponseDto, CommentResponseSchema, ArticlePostRequest } from './domain/article/index.cjs';
3
+ export { ArticleDetailResponse as ArticleDetailResponseDto, ArticleSummaryResponse as ArticleSummaryResponseDto, CommentPostRequest as CommentPostRequestDto, CreateCommentResponse, FoodAnalysisResult as FoodAnalysisResultDto, PageArticleSummaryResponse, PresignArticleResponse, PresignProfileResponse } from './domain/article/index.cjs';
4
+ import * as zod from 'zod';
5
+ import { z } from 'zod';
6
+ import { M as MemberId, m as RestaurantId, o as RoomId, U as UserId } from './id-B-8M90Ef.cjs';
7
+ import { RestaurantResponse, KakaoRestaurantResponseDto } from './domain/restaurant/index.cjs';
8
+ export { KakaoPlaceRaw, RestaurantDto } from './domain/restaurant/index.cjs';
9
+ export { TokenResponse } from './domain/auth/index.cjs';
10
+ export { ApiFailure as ApiErrorResponse, ApiFailure, ApiResponse, ApiSuccess, BaseResponse, ISODateString, ISODateTimeString, NoContent, PageableObject, SortObject, TimeHHmmString } from './domain/common/index.cjs';
11
+ import { RecruitRequest } from './domain/recruit/index.cjs';
12
+ export { CreateRecruitResponse as CreateRecruitResponseDto, RecruitParticipant as RecruitParticipantDto, RecruitResponse as RecruitResponseDto, RecruitStatus } from './domain/recruit/index.cjs';
13
+ import { ProfileDetailResponse, MemberResponse } from './domain/member/index.cjs';
14
+ export { MemberSummaryResponse, OnboardingPreferenceRequest, OnboardingRequest, ProfilePreferenceItem as PreferenceItem, PreferenceMetaResponse, UpdateProfileRequest } from './domain/member/index.cjs';
15
+ import { AnnouncementStage, InvitationRoomStage, Menu, LocationCandidate, ChatMessageResponse, PickTimesRequestSchema, PickDateRequestSchema, AddLocationCandidateRequestSchema, VoteLocationRequestSchema, ExcludeMenuRequestSchema, PickMenuRequestSchema, PickRestaurantRequestSchema, DatePicksUpdateResponseSchema, ExcludeMenuUpdateResponseSchema, LocationCandidateAddUpdateResponseSchema, LocationCandidateVoteUpdateResponseSchema, MenuPickUpdateResponseSchema, RestaurantPickUpdateResponseSchema, TimePicksUpdateResponseSchema, ChatMessageResponseSchema, ReadyStateChangedSchema, PhaseDataBroadcastSchema, RoomInitialStateSchema, LocationId, MenuCode, Participant, FinalState, RoomServerToClientEvents, RoomClientToServerEvents, ChatMessageRequest, ReadyStateRequest } from './domain/room/index.cjs';
16
+ export { RecruitRoomStage, RoomSocketClientEventSchemas, RoomSocketServerEventSchemas } from './domain/room/index.cjs';
17
+ export { AcceptInvitationResponse, InvitationPostRequest, InvitationResponse, RejectInvitationResponse, SendInvitationResponse } from './domain/invitation/index.cjs';
18
+ export { FoodPreferenceResponse as FoodPreferenceResponseDto, FoodPreferenceType } from './domain/preference/index.cjs';
19
+ export { MealStatus, MealStatusAction, MealStatusResponse, UpdateMealStatusRequest } from './domain/meal/index.cjs';
20
+ export { RedeemReferralRequest, ReferralCreateResponse, ReferralItemResponse } from './domain/referral/index.cjs';
21
+ export { ChallengeStatusResponse, ClaimChallengeRewardRequest, MonthProgress, RewardType, WeekProgress } from './domain/challenge/index.cjs';
22
+ export { CouponResponse, CouponStatus, CouponType } from './domain/coupon/index.cjs';
23
+ export { CreatePlanRequest, MeetingResponse, PlanResponse as PlanResponseDto, PlanStatus, PlanType } from './domain/plan/index.cjs';
24
+ import './domain/friend/index.cjs';
25
+
26
+ /** @deprecated Use ArticleSummaryResponseDto or ArticleDetailResponseDto. */
27
+ type Article = ArticleSummaryResponseDto;
28
+
29
+ type CommentResponseDto = z.infer<typeof CommentResponseSchema>;
30
+ interface Comment extends CommentResponseDto {
31
+ replies?: CommentResponseDto[];
14
32
  }
15
33
 
16
- interface TokenResponse {
17
- accessToken: string;
18
- refreshToken: string;
19
- accessTokenMaxAge: number;
34
+ interface LikePostResponseDto {
35
+ liked: boolean;
36
+ likeCount: number;
20
37
  }
21
38
 
39
+ type UploadAndPostVars = {
40
+ currentMemberId: number;
41
+ file: File;
42
+ buildRequest: (cdnUrl: string) => ArticlePostRequest;
43
+ };
44
+ type UploadAndRegisterVars = {
45
+ currentMemberId: number;
46
+ file: File;
47
+ buildRequest: (cdnUrl: string) => {
48
+ imageUrl: string;
49
+ username: string;
50
+ preferences: string[];
51
+ cantEat: string[];
52
+ };
53
+ };
54
+
22
55
  /**
23
56
  * 음식 카테고리 이미지 manifest 항목.
24
57
  *
@@ -60,211 +93,100 @@ interface Item {
60
93
  priority?: boolean;
61
94
  }
62
95
 
63
- type ISODateString = string;
64
- type ISODateTimeString = string;
65
-
66
- interface BaseResponse<T> {
67
- code: number;
68
- message: string;
69
- data: T;
70
- }
96
+ /** @deprecated Use RecruitRequestDto. */
97
+ type Recruit = RecruitRequest;
71
98
 
72
- interface ApiErrorResponse {
73
- success: false;
74
- status: number;
75
- code: string;
76
- message: string;
77
- }
78
-
79
- type UserId = string;
80
- interface User {
81
- userId: UserId;
82
- username: string;
83
- profileImageUrl: string;
84
- }
85
-
86
- type MenuCode = string;
87
- interface Menu {
88
- code: MenuCode;
89
- label: string;
90
- }
91
- type LocationId = string;
92
- interface LocationCandidate {
93
- id: LocationId;
94
- placeName: string;
95
- lat: number;
96
- lng: number;
97
- address: string;
98
- }
99
+ declare const AnnouncementStageMap: Record<AnnouncementStage, number>;
100
+ declare const InvitationStageMap: Record<InvitationRoomStage, number>;
99
101
  interface UserMenuCategory {
100
- userId: string;
102
+ memberId: number;
101
103
  menuList: Menu[];
102
104
  }
103
- interface ChatMessage {
104
- messageId: string;
105
- user: User;
106
- text?: string;
107
- createdAt: string;
108
- }
109
- interface FinalState {
110
- location: LocationCandidate | undefined;
111
- excludeMenu: Menu[] | undefined;
112
- menu: Menu | undefined;
113
- restaurant: KakaoRestaurantResponseDto | undefined;
114
- time: string | undefined;
115
- date: string | undefined;
116
- }
117
- interface Participant extends User {
118
- ready: boolean;
119
- }
120
- type AnnouncementStage = "waiting" | "location" | "location-vote" | "exclude-menu" | "menu" | "restaurant" | "finish";
121
- type InvitationStage = "waiting" | "date" | "time" | "location" | "location-vote" | "exclude-menu" | "menu" | "restaurant" | "finish";
122
- declare const AnnouncementStageMap: Record<AnnouncementStage, number>;
123
- declare const InvitationStageMap: Record<InvitationStage, number>;
105
+ /** @deprecated Use LocationCandidate.locationId. */
106
+ type LegacyLocationCandidate = LocationCandidate & {
107
+ id?: string;
108
+ };
109
+ /** @deprecated Use ChatMessageResponse. */
110
+ type ChatMessage = ChatMessageResponse;
124
111
 
125
- interface TimePicksRequestDto {
126
- times: string[];
127
- }
128
- interface DatePicksRequestDto {
129
- dates: string[];
130
- }
131
- interface LocationCandidateAddRequestDto {
132
- id: LocationId;
133
- placeName: string;
134
- lat: number;
135
- lng: number;
136
- address?: string;
137
- }
138
- interface LocationCandidateVoteRequestDto {
139
- locationId: LocationId;
140
- }
141
- interface ExcludeMenuRequestDto {
142
- menu: Menu;
143
- }
144
- interface MenuPickRequestDto {
145
- menuCode: MenuCode;
146
- }
147
- interface RestaurantPickRequestDto {
148
- restaurantId: RestaurantId;
149
- }
150
- interface ChatMessageRequestDto {
151
- text: string;
152
- }
153
- interface ReadyStateRequestDto {
154
- isReady: boolean;
155
- }
112
+ type TimePicksRequestDto = zod.infer<typeof PickTimesRequestSchema>;
113
+ type DatePicksRequestDto = zod.infer<typeof PickDateRequestSchema>;
114
+ type LocationCandidateAddRequestDto = zod.infer<typeof AddLocationCandidateRequestSchema>;
115
+ type LocationCandidateVoteRequestDto = zod.infer<typeof VoteLocationRequestSchema>;
116
+ type ExcludeMenuRequestDto = zod.infer<typeof ExcludeMenuRequestSchema>;
117
+ type MenuPickRequestDto = zod.infer<typeof PickMenuRequestSchema>;
118
+ type RestaurantPickRequestDto = zod.infer<typeof PickRestaurantRequestSchema>;
156
119
 
157
- interface ChatMessageResponseItem extends ChatMessage {
158
- }
159
- interface TimePicksUpdateResponseItem {
160
- userId: UserId;
161
- times: string[];
162
- }
163
- interface DatePicksUpdateResponseItem {
164
- userId: UserId;
165
- dates: string[];
166
- }
167
- interface LocationCandidateAddUpdateResponseItem extends LocationCandidate {
168
- author: UserId;
169
- }
170
- interface LocationCandidateVoteUpdateResponseItem {
171
- locationId: LocationId;
172
- votes: UserId[];
173
- }
174
- interface ExcludeMenuUpdateResponseItem {
175
- userId: UserId;
176
- exclusions: Menu[];
177
- }
178
- interface MenuPickUpdateResponseItem {
179
- menuCode: MenuCode;
180
- selectedUsers: UserId[];
181
- }
182
- interface RestaurantPickUpdateResponseItem {
183
- restaurantId: RestaurantId;
184
- selectedUsers: UserId[];
185
- }
186
- interface ReadyStateChangedDto {
187
- readyCount: number;
188
- participantCount: number;
189
- }
190
- type TimePicksUpdateResponseDto = TimePicksUpdateResponseItem[];
191
- type DatePicksUpdateResponseDto = DatePicksUpdateResponseItem[];
192
- type LocationCandidateAddUpdateResponseDto = LocationCandidateAddUpdateResponseItem[];
193
- type LocationCandidateVoteUpdateResponseDto = LocationCandidateVoteUpdateResponseItem[];
194
- type ExcludeMenuUpdateResponseDto = ExcludeMenuUpdateResponseItem[];
195
- type MenuPickUpdateResponseDto = MenuPickUpdateResponseItem[];
196
- type RestaurantPickUpdateResponseDto = RestaurantPickUpdateResponseItem[];
120
+ type ChatMessageResponseItem = z.infer<typeof ChatMessageResponseSchema>;
121
+ type TimePicksUpdateResponseDto = z.infer<typeof TimePicksUpdateResponseSchema>;
122
+ type DatePicksUpdateResponseDto = z.infer<typeof DatePicksUpdateResponseSchema>;
123
+ type LocationCandidateAddUpdateResponseDto = z.infer<typeof LocationCandidateAddUpdateResponseSchema>;
124
+ type LocationCandidateVoteUpdateResponseDto = z.infer<typeof LocationCandidateVoteUpdateResponseSchema>;
125
+ type ExcludeMenuUpdateResponseDto = z.infer<typeof ExcludeMenuUpdateResponseSchema>;
126
+ type MenuPickUpdateResponseDto = z.infer<typeof MenuPickUpdateResponseSchema>;
127
+ type RestaurantPickUpdateResponseDto = z.infer<typeof RestaurantPickUpdateResponseSchema>;
128
+ type RestaurantPickUpdateResponseItem = RestaurantPickUpdateResponseDto[number];
129
+ type ReadyStateChangedDto = z.infer<typeof ReadyStateChangedSchema>;
197
130
 
198
- interface TimeInitialState extends TimePicksUpdateResponseDto {
199
- }
200
- interface DateInitialState extends DatePicksUpdateResponseDto {
201
- }
202
- interface LocationAddInitialState extends LocationCandidateAddUpdateResponseDto {
203
- }
131
+ type TimeInitialState = TimePicksUpdateResponseDto;
132
+ type DateInitialState = DatePicksUpdateResponseDto;
133
+ type LocationAddInitialState = LocationCandidateAddUpdateResponseDto;
204
134
  interface LocationVoteInitialState {
205
135
  locations: LocationCandidateAddUpdateResponseDto;
206
136
  votes?: LocationCandidateVoteUpdateResponseDto;
207
137
  }
208
138
  interface ExcludeMenuInitialState {
209
139
  recentMenus: {
210
- userId: UserId;
211
- menuList: Menu[];
140
+ memberId: number;
141
+ menuList: unknown[];
212
142
  }[];
213
143
  excludedMenuList?: ExcludeMenuUpdateResponseDto;
214
144
  }
215
145
  interface MenuInitialState {
216
- initialMenus: Menu[];
146
+ initialMenus: unknown[];
217
147
  menuPick?: MenuPickUpdateResponseDto;
218
148
  }
219
149
  interface RestaurantInitialState {
220
- initialRestaurants: KakaoRestaurantResponseDto[];
150
+ initialRestaurants: unknown[];
221
151
  restaurantUserList?: RestaurantPickUpdateResponseDto;
222
152
  }
223
153
  interface WaitingInitialState {
224
154
  locationInitial?: string;
225
155
  meetingAt?: string;
226
156
  }
227
- interface RoomInitialState {
228
- participants: Participant[];
229
- chat: ChatMessage[];
230
- final: FinalState;
231
- }
232
- interface PhaseDataBroadcastDto {
233
- phase: AnnouncementStage | InvitationStage;
234
- data: WaitingInitialState | TimeInitialState | DateInitialState | LocationAddInitialState | LocationVoteInitialState | ExcludeMenuInitialState | MenuInitialState | RestaurantInitialState;
235
- }
157
+ type RoomInitialState = z.infer<typeof RoomInitialStateSchema>;
158
+ type PhaseDataBroadcastDto = z.infer<typeof PhaseDataBroadcastSchema>;
236
159
 
237
160
  interface TimeStore {
238
- pickedByUser: Map<UserId, string[]>;
161
+ pickedByMember: Map<MemberId, string[]>;
239
162
  }
240
163
  interface DateStore {
241
- pickedByUser: Map<UserId, string[]>;
164
+ pickedByMember: Map<MemberId, string[]>;
242
165
  }
243
166
  interface LocationStore {
244
167
  candidates: Map<LocationId, LocationCandidate & {
245
- author: UserId;
168
+ authorMemberId: MemberId;
246
169
  }>;
247
- votes: Map<LocationId, Set<UserId>>;
170
+ votes: Map<LocationId, Set<MemberId>>;
248
171
  }
249
172
  interface ExcludeMenuStore {
250
- userExclusions: Map<UserId, Map<MenuCode, Menu>>;
173
+ memberExclusions: Map<MemberId, Map<MenuCode, Menu>>;
251
174
  }
252
175
  interface MenuStore {
253
176
  availableMenus: Menu[];
254
- menuPerUserSelections: Map<MenuCode, Set<UserId>>;
177
+ menuPerMemberSelections: Map<MenuCode, Set<MemberId>>;
255
178
  }
256
179
  interface RestaurantStore {
257
- initialRestaurants: KakaoRestaurantResponseDto[];
258
- restaurantUserList: Map<UserId, RestaurantId>;
180
+ initialRestaurants: RestaurantResponse[];
181
+ restaurantMemberList: Map<MemberId, RestaurantId>;
259
182
  }
260
- type RoomId = string;
261
183
  interface RoomStore {
262
184
  roomId: RoomId;
263
185
  version: number;
264
186
  updatedAt: number;
265
- stage: AnnouncementStage | InvitationStage;
266
- participants: Map<UserId, Participant>;
267
- recentMenu: Map<UserId, Menu[]>;
187
+ stage: AnnouncementStage | InvitationRoomStage;
188
+ participants: Map<MemberId, Participant>;
189
+ recentMenu: Map<MemberId, Menu[]>;
268
190
  timeout?: NodeJS.Timeout;
269
191
  chat: ChatMessage[];
270
192
  meetingAt?: string;
@@ -278,83 +200,18 @@ interface RoomStore {
278
200
  final: FinalState;
279
201
  }
280
202
 
281
- interface SocketClientEventMap {
282
- any: [event: string, ...args: any[]];
283
- "ready-state-changed": ReadyStateChangedDto;
284
- "stage-changed": PhaseDataBroadcastDto;
285
- "join-room": RoomInitialState;
286
- "room-assigned": {
287
- roomId: string;
288
- };
289
- "waiting-initial-state": WaitingInitialState;
290
- "time-initial-state": TimeInitialState;
291
- "date-initial-state": DateInitialState;
292
- "location-add-initial-state": LocationAddInitialState;
293
- "location-vote-initial-state": LocationVoteInitialState;
294
- "exclude-menu-initial-state": ExcludeMenuInitialState;
295
- "menu-initial-state": MenuInitialState;
296
- "restaurant-initial-state": RestaurantInitialState;
297
- "time-updated": TimePicksUpdateResponseDto;
298
- "date-updated": DatePicksUpdateResponseDto;
299
- "location-add-updated": LocationCandidateAddUpdateResponseDto;
300
- "location-vote-updated": LocationCandidateVoteUpdateResponseDto;
301
- "exclude-menu-updated": ExcludeMenuUpdateResponseDto;
302
- "menu-pick-updated": MenuPickUpdateResponseDto;
303
- "restaurant-pick-updated": RestaurantPickUpdateResponseDto;
304
- "final-state-response": FinalState;
305
- "chat-message": ChatMessageResponseItem;
306
- }
307
- interface InitialStateEventPayloadMap {
308
- "waiting-initial-state": WaitingInitialState;
309
- "time-initial-state": TimeInitialState;
310
- "date-initial-state": DateInitialState;
311
- "location-add-initial-state": LocationAddInitialState;
312
- "location-vote-initial-state": LocationVoteInitialState;
313
- "exclude-menu-initial-state": ExcludeMenuInitialState;
314
- "menu-initial-state": MenuInitialState;
315
- "restaurant-initial-state": RestaurantInitialState;
316
- }
317
- type SocketServerEventMap = {
318
- "ready-state": ReadyStateRequestDto;
319
- "chat-message": ChatMessageRequestDto;
320
- "add-location-candidate": LocationCandidateAddRequestDto;
321
- "vote-location": LocationCandidateVoteRequestDto;
322
- "exclude-menu": ExcludeMenuRequestDto;
323
- "pick-menu": MenuPickRequestDto;
324
- "pick-restaurant": RestaurantPickRequestDto;
325
- "pick-times": TimePicksRequestDto;
326
- "pick-date": DatePicksRequestDto;
327
- };
328
- /**
329
- * socket.io `Socket<ListenEvents, EmitEvents>` 제네릭에 그대로 넣을 수 있는
330
- * 함수 시그니처 이벤트 맵. 클라이언트는 서버가 보내는 이벤트를 수신(listen)하므로
331
- * `SocketClientEventMap`을 ListenEvents로, 서버로 보내는 이벤트는
332
- * `SocketServerEventMap`을 EmitEvents로 사용한다.
333
- *
334
- * `any`(onAny 디버그용 튜플)는 실제 이벤트가 아니므로 제외한다.
335
- */
336
- type ServerToClientEvents = {
337
- [K in keyof Omit<SocketClientEventMap, "any">]: (data: SocketClientEventMap[K]) => void;
338
- };
339
- type ClientToServerEvents = {
340
- [K in keyof SocketServerEventMap]: (data: SocketServerEventMap[K]) => void;
341
- };
342
- type SocketRequestHandler<K extends keyof SocketServerEventMap> = (data: SocketServerEventMap[K]) => void;
343
- type SocketRequestHandlers = {
344
- [K in keyof SocketServerEventMap]?: SocketRequestHandler<K>;
345
- };
346
- type SocketResponseHandler<K extends keyof SocketClientEventMap> = (data: SocketClientEventMap[K]) => void;
347
- type SocketResponseHandlers = {
348
- [K in keyof SocketClientEventMap]?: SocketResponseHandler<K>;
349
- };
203
+ type SocketClientEventMap = RoomServerToClientEvents;
204
+ type SocketServerEventMap = RoomClientToServerEvents;
205
+ type InitialStateEventPayloadMap = Pick<SocketClientEventMap, "join-room">;
206
+ type SocketRequestHandlers = Partial<SocketServerEventMap>;
207
+ type SocketResponseHandlers = Partial<SocketClientEventMap>;
350
208
 
351
209
  interface Onboarding {
352
210
  likedCodes: string[];
353
211
  dislikedCodes: string[];
354
212
  allergyCodes: string[];
355
213
  }
356
- interface OnboardingPreferenceRequest extends Onboarding {
357
- }
214
+
358
215
  interface OnboardingPreferenceResponse extends Onboarding {
359
216
  }
360
217
  interface PreferenceSummaryResponse {
@@ -362,252 +219,12 @@ interface PreferenceSummaryResponse {
362
219
  dislikes: Menu[];
363
220
  allergies: Menu[];
364
221
  }
365
- interface PreferenceMetaResponse {
366
- onboardedAt: ISODateTimeString | null;
367
- lastUpdatedAt: ISODateTimeString | null;
368
- revision: number;
369
- }
370
- interface ProfileResponse {
371
- member: {
372
- userId: number;
373
- username: string;
374
- profileImageUrl: string;
375
- bio: string;
376
- meetingCount: number;
377
- createdAt: string;
378
- updatedAt: string;
379
- email: string;
380
- age: number;
381
- role: string;
382
- preferredMenus: string[];
383
- dislikedMenus: string[];
384
- };
385
- mealStatus: boolean;
386
- }
387
- interface ProfileDetailResponse {
388
- memberId: number;
389
- userName: string;
390
- profileImageUrl: string;
391
- bio: string;
392
- meetingCount: number;
393
- likes: PreferenceItem[];
394
- dislikes: PreferenceItem[];
395
- allergies: PreferenceItem[];
396
- }
397
- interface PreferenceItem {
398
- code: string;
399
- label: string;
400
- }
401
- interface UpdateProfileRequest {
402
- userName: string;
403
- profileImageUrl: string;
404
- bio: string;
405
- }
406
- interface MemberSummaryResponse {
407
- memberId: number;
408
- username: string;
409
- profileImageUrl: string;
410
- friends: number;
411
- completedMeetings: number;
412
- uncompletedMeetings: number;
413
- }
414
- interface OnboardingRequest extends Onboarding, UpdateProfileRequest {
415
- }
416
-
417
- interface Article {
418
- id: number;
419
- author: User;
420
- imageUrl: string;
421
- mealDate: Date;
422
- restaurant: KakaoRestaurantResponseDto;
423
- createdAt: Date;
424
- updatedAt: Date;
425
- expiresAt: Date;
426
- taggedMembers: User[];
427
- }
428
- interface ArticleSummaryResponseDto extends Article {
429
- likeCount: number;
430
- commentCount: number;
431
- likedByMe: boolean;
432
- }
433
- interface PageArticleSummaryResponse {
434
- totalElements: number;
435
- totalPages: number;
436
- first: boolean;
437
- size: number;
438
- content: ArticleSummaryResponseDto[];
439
- number: number;
440
- sort: SortObject;
441
- numberOfElements: number;
442
- pageable: PageableObject;
443
- last: boolean;
444
- empty: boolean;
445
- }
446
- interface SortObject {
447
- empty: boolean;
448
- sorted: boolean;
449
- unsorted: boolean;
450
- }
451
- interface PageableObject {
452
- offset: number;
453
- sort: SortObject;
454
- paged: boolean;
455
- pageNumber: number;
456
- pageSize: number;
457
- unpaged: boolean;
458
- }
459
- interface ArticleDetailResponseDto {
460
- id: number;
461
- author: User;
462
- imageUrl: string;
463
- mealDate: Date;
464
- restaurant: KakaoRestaurantResponseDto;
465
- likeCount: number;
466
- commentCount: number;
467
- likedByMe: boolean;
468
- createdAt: Date;
469
- expiresAt: Date;
470
- }
471
- interface ArticlePostRequestDto {
472
- imageUrl: string;
473
- mealDate: ISODateString;
474
- restaurant: KakaoRestaurantResponseDto;
475
- taggedMembersId: number[];
476
- foodAnalysis?: FoodAnalysisResultDto;
477
- }
478
- interface FoodAnalysisResultDto {
479
- code: string;
480
- label: string;
481
- confidence: number;
482
- tsUtc?: string;
483
- }
484
-
485
- interface CommentResponseDto {
486
- commentId: number;
487
- author: User;
488
- parentCommentId: number | null;
489
- content: string;
490
- createdAt: Date;
491
- updatedAt: Date;
492
- }
493
- interface CommentPostRequestDto {
494
- content: string;
495
- parentCommentId?: number;
496
- }
497
- interface Comment extends CommentResponseDto {
498
- replies?: CommentResponseDto[];
499
- }
500
-
501
- interface LikePostResponseDto {
502
- liked: boolean;
503
- likeCount: number;
504
- }
505
-
506
- type UploadAndPostVars = {
507
- currentUserId: string;
508
- file: File;
509
- buildRequest: (cdnUrl: string) => ArticlePostRequestDto;
510
- };
511
- type UploadAndRegisterVars = {
512
- currentUserId: string;
513
- file: File;
514
- buildRequest: (cdnUrl: string) => {
515
- imageUrl: string;
516
- username: string;
517
- preferences: string[];
518
- cantEat: string[];
519
- };
520
- };
521
- interface PresingArticleResponse {
522
- key: string;
523
- putUrl: string;
524
- cdnUrl: string;
525
- }
526
- interface PresingProfileResponse {
527
- key: string;
528
- putUrl: string;
529
- cdnUrl: string;
530
- }
531
222
 
532
- type RecruitStatus = "OPEN" | "CLOSED" | "EXPIRED";
533
- interface Recruit {
534
- targetCount: number;
535
- meetingAt: ISODateTimeString;
536
- location: string;
537
- message: string;
538
- }
539
- interface RecruitRequestDto extends Recruit {
540
- }
541
- interface RecruitParticipantDto extends User {
542
- }
543
- interface RecruitResponseDto extends Recruit {
544
- id: number;
545
- postId: number;
546
- status: RecruitStatus;
547
- createdAt: ISODateTimeString;
548
- expiredAt: ISODateTimeString;
549
- updatedAt: ISODateTimeString;
550
- author: User;
551
- participants: RecruitParticipantDto[];
552
- }
553
- interface CreateRecruitResponseDto {
554
- recruitId: number;
555
- postId: number;
556
- }
557
-
558
- interface InvitationPostRequest {
559
- inviteeId: number;
560
- message: string;
561
- }
562
- interface InvitationResponse {
563
- invitationId: number;
564
- inviterName: string;
565
- inviterProfileImageUrl?: string;
566
- }
223
+ /** @deprecated Use ProfileDetailResponse. */
224
+ type ProfileResponse = ProfileDetailResponse;
567
225
 
568
- declare enum PlanStatus {
569
- PLANNING = "PLANNING",
570
- COMPLETED = "COMPLETED"
571
- }
572
- declare enum PlanType {
573
- ANNOUNCEMENT = "ANNOUNCEMENT",
574
- INVITATION = "INVITATION"
575
- }
576
- interface MeetingParticipant {
577
- userId: string;
578
- username: string;
579
- profileImageUrl: string;
580
- }
581
- interface MeetingResponse {
582
- id: number;
583
- author: MeetingParticipant;
584
- participants: MeetingParticipant[];
585
- location: string;
586
- meetingAt: ISODateTimeString;
587
- restaurant: string;
588
- isCompleted: boolean;
589
- restaurantType: string;
590
- status: PlanStatus;
591
- type: PlanType;
592
- createdAt: ISODateTimeString;
593
- updatedAt: ISODateTimeString;
594
- }
595
- interface CreatePlanRequest {
596
- meetingDate: string;
597
- meetingTime: string;
598
- }
599
- interface PlanResponseDto {
600
- id: number;
601
- meetingAt: ISODateTimeString;
602
- location: LocationCandidate | null;
603
- restaurant: KakaoRestaurantResponseDto | null;
604
- author: User | null;
605
- participants: User[];
606
- status: PlanStatus;
607
- type: PlanType;
608
- createdAt: ISODateTimeString;
609
- updatedAt: ISODateTimeString;
610
- }
226
+ /** @deprecated Use PlanResponseDto. */
227
+ type MeetingParticipant = MemberResponse;
611
228
 
612
229
  interface LocalNewsNoti {
613
230
  id: number;
@@ -713,79 +330,6 @@ interface FriendRequestItemResponse {
713
330
  requestedAt: string;
714
331
  }
715
332
 
716
- type FoodPreferenceType = "LIKE" | "DISLIKE" | "ALLERGY";
717
- interface FoodPreferenceResponseDto {
718
- id: number;
719
- memberId: number;
720
- foodCode: string;
721
- type: FoodPreferenceType;
722
- createdAt: ISODateTimeString;
723
- updatedAt: ISODateTimeString;
724
- }
725
-
726
- type MealStatus = "FED" | "FASTING";
727
- type MealStatusAction = "ATE_NOW" | "SET_OFF";
728
- interface UpdateMealStatusRequest {
729
- action: MealStatusAction;
730
- }
731
- interface MealStatusResponse {
732
- status: MealStatus;
733
- lastMealAt: ISODateTimeString | null;
734
- fastingMinutes: number;
735
- fastingHours: number;
736
- secondsToAutoOff: number;
737
- }
738
-
739
- interface ReferralCreateResponse {
740
- code: string;
741
- link: string;
742
- expiresAt: ISODateTimeString;
743
- }
744
- interface ReferralItemResponse {
745
- code: string;
746
- createdAt: ISODateTimeString;
747
- expiresAt: ISODateTimeString;
748
- used: boolean;
749
- usedByMemberId: number | null;
750
- usedByUserName: string | null;
751
- }
752
- interface RedeemReferralRequest {
753
- code: string;
754
- }
755
-
756
- type RewardType = "WEEK" | "MONTH";
757
- interface WeekProgress {
758
- days: boolean[];
759
- completed: number;
760
- goal: number;
761
- }
762
- interface MonthProgress {
763
- count: number;
764
- goal: number;
765
- }
766
- interface ChallengeStatusResponse {
767
- week: WeekProgress;
768
- month: MonthProgress;
769
- weekRewardAvailable: boolean;
770
- monthRewardAvailable: boolean;
771
- }
772
- interface ClaimChallengeRewardRequest {
773
- type: RewardType;
774
- }
775
-
776
- type CouponType = "DISCOUNT" | "SERVICE";
777
- type CouponStatus = "UNUSED" | "USED";
778
- interface CouponResponse {
779
- couponId: number;
780
- title: string;
781
- shopName: string;
782
- type: CouponType;
783
- condition: string;
784
- expiresAt: ISODateString;
785
- used: boolean;
786
- thumbnailUrl: string;
787
- }
788
-
789
333
  declare class RestaurantPickRequestDtoServer implements RestaurantPickRequestDto {
790
334
  restaurantId: RestaurantId;
791
335
  }
@@ -796,7 +340,7 @@ declare class TimePicksRequestDtoServer implements TimePicksRequestDto {
796
340
  times: string[];
797
341
  }
798
342
  declare class LocationCandidateAddRequestDtoServer implements LocationCandidateAddRequestDto {
799
- id: LocationId;
343
+ locationId: LocationId;
800
344
  placeName: string;
801
345
  lat: number;
802
346
  lng: number;
@@ -811,10 +355,10 @@ declare class ExcludeMenuRequestDtoServer implements ExcludeMenuRequestDto {
811
355
  declare class MenuPickRequestDtoServer implements MenuPickRequestDto {
812
356
  menuCode: MenuCode;
813
357
  }
814
- declare class ChatMessageRequestDtoServer implements ChatMessageRequestDto {
815
- text: string;
358
+ declare class ChatMessageRequestDtoServer implements ChatMessageRequest {
359
+ message: string;
816
360
  }
817
- declare class ReadyStateRequestDtoServer implements ReadyStateRequestDto {
361
+ declare class ReadyStateRequestDtoServer implements ReadyStateRequest {
818
362
  isReady: boolean;
819
363
  }
820
364
 
@@ -850,4 +394,4 @@ declare class InvitationResultRequestDto {
850
394
  restaurant: KakaoRestaurantResponseDto;
851
395
  }
852
396
 
853
- export { AnnouncementRequestDto, AnnouncementResultRequestDto, type AnnouncementStage, AnnouncementStageMap, type ApiErrorResponse, type Article, type ArticleDetailResponseDto, type ArticlePostRequestDto, type ArticleSummaryResponseDto, type BaseResponse, type Category, type ChallengeStatusResponse, type ChatMessage, type ChatMessageRequestDto, ChatMessageRequestDtoServer, type ChatMessageResponseItem, type ClaimChallengeRewardRequest, type ClientToServerEvents, type Comment, type CommentPostRequestDto, type CommentResponseDto, type CouponResponse, type CouponStatus, type CouponType, type CreatePlanRequest, type CreateRecruitResponseDto, type DateInitialState, type DatePicksRequestDto, DatePicksRequestDtoServer, type DatePicksUpdateResponseDto, type DatePicksUpdateResponseItem, type DateStore, type ExcludeMenuInitialState, type ExcludeMenuRequestDto, ExcludeMenuRequestDtoServer, type ExcludeMenuStore, type ExcludeMenuUpdateResponseDto, type ExcludeMenuUpdateResponseItem, type FinalState, type FoodAnalysisResultDto, type FoodPreferenceResponseDto, type FoodPreferenceType, type Friend, type FriendBlockItemResponse, type FriendListItemResponse, type FriendMealFilter, type FriendMealItemResponse, type FriendRequestItemResponse, type FriendRequestStatus, type ISODateString, type ISODateTimeString, type InitialStateEventPayloadMap, type InvitationPostRequest, InvitationRequestDto, type InvitationResponse, InvitationResultRequestDto, type InvitationStage, InvitationStageMap, type Item, type KakaoRestaurantResponseDto, type LikePostResponseDto, type LocalNewsNoti, type LocationAddInitialState, type LocationCandidate, type LocationCandidateAddRequestDto, LocationCandidateAddRequestDtoServer, type LocationCandidateAddUpdateResponseDto, type LocationCandidateAddUpdateResponseItem, type LocationCandidateVoteRequestDto, LocationCandidateVoteRequestDtoServer, type LocationCandidateVoteUpdateResponseDto, type LocationCandidateVoteUpdateResponseItem, type LocationId, type LocationStore, type LocationVoteInitialState, type MatchingInviteNoti, type MealStatus, type MealStatusAction, type MealStatusResponse, type MeetingParticipant, type MeetingResponse, type MemberScores, type MemberSummaryResponse, type Menu, type MenuCode, type MenuInitialState, type MenuPickRequestDto, MenuPickRequestDtoServer, type MenuPickUpdateResponseDto, type MenuPickUpdateResponseItem, MenuRecommendationAIResponseDto, type MenuStore, type MonthProgress, type Onboarding, type OnboardingPreferenceRequest, type OnboardingPreferenceResponse, type OnboardingRequest, type PageArticleSummaryResponse, type PageableObject, type Participant, type PhaseDataBroadcastDto, type PlanResponseDto, PlanStatus, PlanType, type PreferenceItem, type PreferenceMetaResponse, type PreferenceSummaryResponse, type PresingArticleResponse, type PresingProfileResponse, type ProfileDetailResponse, type ProfileResponse, type ReadyStateChangedDto, type ReadyStateRequestDto, ReadyStateRequestDtoServer, type Recommendation, type Recruit, type RecruitParticipantDto, type RecruitRequestDto, type RecruitResponseDto, type RecruitStatus, type RedeemReferralRequest, type ReferralCreateResponse, type ReferralItemResponse, type RestaurantId, type RestaurantInitialState, type RestaurantPickRequestDto, RestaurantPickRequestDtoServer, type RestaurantPickUpdateResponseDto, type RestaurantPickUpdateResponseItem, type RestaurantStore, type RewardType, type RoomId, type RoomInitialState, type RoomStore, type ServerToClientEvents, type SocketClientEventMap, type SocketRequestHandlers, type SocketResponseHandlers, type SocketServerEventMap, type SortObject, type TimeInitialState, type TimePicksRequestDto, TimePicksRequestDtoServer, type TimePicksUpdateResponseDto, type TimePicksUpdateResponseItem, type TimeStore, type TokenResponse, type UpdateMealStatusRequest, type UpdateProfileRequest, type UploadAndPostVars, type UploadAndRegisterVars, type User, type UserId, type UserMenuCategory, type WaitingInitialState, type WeekProgress };
397
+ export { AnnouncementRequestDto, AnnouncementResultRequestDto, AnnouncementStage, AnnouncementStageMap, type Article, ArticlePostRequest as ArticlePostRequestDto, type Category, type ChatMessage, ChatMessageRequest as ChatMessageRequestDto, ChatMessageRequestDtoServer, type ChatMessageResponseItem, RoomClientToServerEvents as ClientToServerEvents, type Comment, type CommentResponseDto, type DateInitialState, type DatePicksRequestDto, DatePicksRequestDtoServer, type DatePicksUpdateResponseDto, type DateStore, type ExcludeMenuInitialState, type ExcludeMenuRequestDto, ExcludeMenuRequestDtoServer, type ExcludeMenuStore, type ExcludeMenuUpdateResponseDto, FinalState, type Friend, type FriendBlockItemResponse, type FriendListItemResponse, type FriendMealFilter, type FriendMealItemResponse, type FriendRequestItemResponse, type FriendRequestStatus, type InitialStateEventPayloadMap, InvitationRequestDto, InvitationResultRequestDto, InvitationRoomStage as InvitationStage, InvitationStageMap, type Item, KakaoRestaurantResponseDto, type LegacyLocationCandidate, type LikePostResponseDto, type LocalNewsNoti, type LocationAddInitialState, LocationCandidate, type LocationCandidateAddRequestDto, LocationCandidateAddRequestDtoServer, type LocationCandidateAddUpdateResponseDto, type LocationCandidateVoteRequestDto, LocationCandidateVoteRequestDtoServer, type LocationCandidateVoteUpdateResponseDto, LocationId, type LocationStore, type LocationVoteInitialState, type MatchingInviteNoti, type MeetingParticipant, MemberId, MemberResponse, type MemberScores, Menu, MenuCode, type MenuInitialState, type MenuPickRequestDto, MenuPickRequestDtoServer, type MenuPickUpdateResponseDto, MenuRecommendationAIResponseDto, type MenuStore, type Onboarding, type OnboardingPreferenceResponse, Participant, type PhaseDataBroadcastDto, type PreferenceSummaryResponse, ProfileDetailResponse, type ProfileResponse, type ReadyStateChangedDto, ReadyStateRequest as ReadyStateRequestDto, ReadyStateRequestDtoServer, type Recommendation, type Recruit, RecruitRequest as RecruitRequestDto, RestaurantId, type RestaurantInitialState, type RestaurantPickRequestDto, RestaurantPickRequestDtoServer, type RestaurantPickUpdateResponseDto, type RestaurantPickUpdateResponseItem, RestaurantResponse, type RestaurantStore, type RoomInitialState, type RoomStore, RoomServerToClientEvents as ServerToClientEvents, type SocketClientEventMap, type SocketRequestHandlers, type SocketResponseHandlers, type SocketServerEventMap, type TimeInitialState, type TimePicksRequestDto, TimePicksRequestDtoServer, type TimePicksUpdateResponseDto, type TimeStore, type UploadAndPostVars, type UploadAndRegisterVars, MemberResponse as User, UserId, type UserMenuCategory, type WaitingInitialState };