wedance-shared 1.0.234 → 1.0.236

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 (38) hide show
  1. package/dist/types/wedancePosts.d.ts +9 -9
  2. package/package.json +2 -2
  3. package/dist/types/festivals/activity.d.ts +0 -22
  4. package/dist/types/festivals/activity.js +0 -2
  5. package/dist/types/festivals/activity.js.map +0 -1
  6. package/dist/types/festivals/conversations.d.ts +0 -36
  7. package/dist/types/festivals/conversations.js +0 -2
  8. package/dist/types/festivals/conversations.js.map +0 -1
  9. package/dist/types/festivals/festival.d.ts +0 -58
  10. package/dist/types/festivals/festival.js +0 -2
  11. package/dist/types/festivals/festival.js.map +0 -1
  12. package/dist/types/festivals/general.d.ts +0 -14
  13. package/dist/types/festivals/general.js +0 -2
  14. package/dist/types/festivals/general.js.map +0 -1
  15. package/dist/types/festivals/generated.d.ts +0 -169
  16. package/dist/types/festivals/generated.js +0 -4
  17. package/dist/types/festivals/generated.js.map +0 -1
  18. package/dist/types/festivals/genre.d.ts +0 -6
  19. package/dist/types/festivals/genre.js +0 -2
  20. package/dist/types/festivals/genre.js.map +0 -1
  21. package/dist/types/festivals/index.d.ts +0 -10
  22. package/dist/types/festivals/index.js +0 -11
  23. package/dist/types/festivals/index.js.map +0 -1
  24. package/dist/types/festivals/marketing.d.ts +0 -6
  25. package/dist/types/festivals/marketing.js +0 -2
  26. package/dist/types/festivals/marketing.js.map +0 -1
  27. package/dist/types/festivals/notifications.d.ts +0 -40
  28. package/dist/types/festivals/notifications.js +0 -2
  29. package/dist/types/festivals/notifications.js.map +0 -1
  30. package/dist/types/festivals/posts.d.ts +0 -45
  31. package/dist/types/festivals/posts.js +0 -2
  32. package/dist/types/festivals/posts.js.map +0 -1
  33. package/dist/types/festivals/support.d.ts +0 -14
  34. package/dist/types/festivals/support.js +0 -2
  35. package/dist/types/festivals/support.js.map +0 -1
  36. package/dist/types/festivals/user.d.ts +0 -80
  37. package/dist/types/festivals/user.js +0 -2
  38. package/dist/types/festivals/user.js.map +0 -1
@@ -1,19 +1,19 @@
1
1
  import { User } from "./user.js";
2
- export type PostType = "post" | "comment" | "reply";
2
+ export type PostType = "activity_comment" | "post" | "reply";
3
3
  export interface WedancePost {
4
4
  id: string;
5
5
  userId: string;
6
- eventId?: string;
7
- parentPostId?: string;
8
- body?: string;
6
+ eventId: string | null;
7
+ parentPostId: string | null;
8
+ body: string;
9
9
  createdAt: string;
10
- editedAt?: string;
11
- deletedAt?: string;
10
+ editedAt: string | null;
11
+ deletedAt: string | null;
12
12
  lastActivityAt: string;
13
13
  postType: PostType;
14
- activityId?: string;
15
- tags?: string[];
16
- mentions?: string[];
14
+ activityId: string | null;
15
+ tags: string[];
16
+ mentions: string[];
17
17
  }
18
18
  export type WedanceActivityType = "NEW_POST" | "POST_REPLY" | "ACTIVITY_COMMENT";
19
19
  export interface WedanceActivity {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wedance-shared",
3
- "version": "1.0.234",
3
+ "version": "1.0.236",
4
4
  "description": "This repository contains shared TypeScript types and interfaces used across multiple WeDance applications:",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "version:patch": "script/incrementVersion.sh patch",
29
29
  "version:minor": "script/incrementVersion.sh minor",
30
30
  "version:major": "script/incrementVersion.sh major",
31
- "publish:patch": "npm run build && npm run \"version:patch\" && git add . && git commit -m \"chore: update version\" && git push && npm publish --access public"
31
+ "publish:patch": "npm run build:clean && npm run \"version:patch\" && git add . && git commit -m \"chore: update version\" && git push && npm publish --access public"
32
32
  },
33
33
  "keywords": [],
34
34
  "author": "",
@@ -1,22 +0,0 @@
1
- export type ActivityType = "GOING_TO_EVENTS";
2
- export type ActivityEvent = {
3
- id: string;
4
- title: string;
5
- imageUrl: string;
6
- };
7
- export type ActivityActor = {
8
- id: string;
9
- displayName: string;
10
- profilePicture: string;
11
- };
12
- export type Activity = {
13
- id: string;
14
- actor: ActivityActor;
15
- type: ActivityType;
16
- events: ActivityEvent[];
17
- likeCount: number;
18
- commentCount: number;
19
- likedByMe: boolean;
20
- createdAt: string;
21
- updatedAt: string;
22
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=activity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../src/types/festivals/activity.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- export type Conversation = {
2
- id: string;
3
- createdAt: string;
4
- updatedAt: string;
5
- lastReadAt: string | null;
6
- unreadCount: number;
7
- lastMessage: {
8
- body: string;
9
- createdAt: string | null;
10
- senderId: string | null;
11
- } | null;
12
- otherUser: {
13
- id: string;
14
- name: string;
15
- avatarUrl?: string;
16
- handle: string;
17
- };
18
- };
19
- export type Message = {
20
- id: string;
21
- conversationId: string;
22
- senderId: string;
23
- body: string;
24
- createdAt: string;
25
- sender: {
26
- id: string;
27
- name: string;
28
- avatarUrl?: string;
29
- };
30
- };
31
- export type CreateConversation = {
32
- userId: string;
33
- };
34
- export type SendMessage = {
35
- body: string;
36
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=conversations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../src/types/festivals/conversations.ts"],"names":[],"mappings":""}
@@ -1,58 +0,0 @@
1
- import { Links } from "../event.js";
2
- import { FestivalGenre } from "./genre.js";
3
- /**
4
- * This is the type of the data we get from the server
5
- * */
6
- export type FestivalData = {
7
- id: string;
8
- title: string;
9
- from: string;
10
- until: string;
11
- organizerId: string[];
12
- description: string;
13
- location: FestivalLocation[];
14
- genre: FestivalGenre[];
15
- tags: string[];
16
- imageData: FestivalImageData[];
17
- priceRange?: {
18
- min: number;
19
- max: number;
20
- currency: string;
21
- } | null;
22
- createdAt: string;
23
- updatedAt: string;
24
- deletedAt?: string;
25
- createdBy: string;
26
- updatedBy: string;
27
- links: Links;
28
- artists: FestivalArtist[];
29
- };
30
- type FestivalImageData = {
31
- url: string;
32
- alt?: string;
33
- blurhash?: string;
34
- };
35
- export type FestivalLocation = {
36
- city: string;
37
- countryCode: string;
38
- country: string;
39
- address?: string;
40
- venue?: string;
41
- geoLocation?: {
42
- lat: number;
43
- lng: number;
44
- };
45
- timeZone: string;
46
- region: Region[];
47
- };
48
- export type FestivalArtist = {
49
- id: string;
50
- name: string;
51
- image: string;
52
- imageUrl: string;
53
- role: FestivalArtistRole;
54
- };
55
- export type FestivalArtistRole = "dj" | "dancer" | "mc" | "guest-dancer" | "organizer" | "media";
56
- export type Region = "Nordics" | "Baltics" | "Western Europe" | "Eastern Europe" | "Southern Europe" | "Central Europe" | "Asia" | "Africa";
57
- export type CreateFestivalInput = Omit<FestivalData, "createdAt" | "updatedAt" | "createdBy" | "updatedBy">;
58
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=festival.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"festival.js","sourceRoot":"","sources":["../../../src/types/festivals/festival.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- export interface RemoteConfigDB {
2
- id: number;
3
- minimum_app_version: string;
4
- recommended_app_version: string;
5
- updated_at: string;
6
- extra_config: Record<string, unknown>;
7
- }
8
- export interface RemoteConfig {
9
- id: number;
10
- minimumAppVersion: string;
11
- recommendedAppVersion: string;
12
- updatedAt: string;
13
- extraConfig: Record<string, unknown>;
14
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=general.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../src/types/festivals/general.ts"],"names":[],"mappings":""}
@@ -1,169 +0,0 @@
1
- export interface ActivitiesDB {
2
- id: string;
3
- actor_id: string;
4
- type: string;
5
- event_ids: string[];
6
- created_at: string;
7
- updated_at: string;
8
- }
9
- export interface ActivityLikesDB {
10
- activity_id: string;
11
- user_id: string;
12
- created_at: string;
13
- }
14
- export interface AnalyticsDailyCountsDB {
15
- date: string;
16
- metric: string;
17
- count: number;
18
- }
19
- export interface EventAttendeesDB {
20
- event_id: string;
21
- user_id: string;
22
- status: string;
23
- created_at: string;
24
- }
25
- export interface EventsDB {
26
- id: string;
27
- title: string;
28
- from_date: string;
29
- until_date: string;
30
- organizer_ids: string[];
31
- description: string | null;
32
- city: string | null;
33
- country_code: string | null;
34
- country: string | null;
35
- address: string | null;
36
- venue: string | null;
37
- latitude: number | null;
38
- longitude: number | null;
39
- time_zone: string | null;
40
- regions: string[] | null;
41
- genre_ids: string[] | null;
42
- tags: string[] | null;
43
- image_url: string | null;
44
- image_alt: string | null;
45
- image_blurhash: string | null;
46
- price_min: number | null;
47
- price_max: number | null;
48
- price_currency: string | null;
49
- payment_link: string | null;
50
- instagram: string | null;
51
- facebook: string | null;
52
- website: string | null;
53
- other_link: string | null;
54
- artist_ids: string[] | null;
55
- created_at: string;
56
- updated_at: string;
57
- deleted_at: string | null;
58
- created_by: string;
59
- updated_by: string;
60
- }
61
- export interface GenresDB {
62
- id: string;
63
- name: string;
64
- primary_genre_id: string | null;
65
- created_at: string | null;
66
- }
67
- export interface LotteryEntriesDB {
68
- id: number;
69
- user_id: string;
70
- referral_code: string;
71
- created_at: string | null;
72
- }
73
- export interface NotificationsDB {
74
- id: string;
75
- type: string;
76
- recipient_id: string | null;
77
- actor_id: string | null;
78
- event_id: string | null;
79
- read_at: string | null;
80
- created_at: string | null;
81
- message: string | null;
82
- }
83
- export interface PostLikesDB {
84
- post_id: string;
85
- user_id: string;
86
- created_at: string;
87
- }
88
- export interface PostsDB {
89
- id: string;
90
- user_id: string;
91
- event_id: string | null;
92
- parent_post_id: string | null;
93
- body: string | null;
94
- created_at: string;
95
- edited_at: string | null;
96
- deleted_at: string | null;
97
- last_activity_at: string;
98
- post_type: string;
99
- activity_id: string | null;
100
- }
101
- export interface RemoteConfigDB {
102
- id: number;
103
- minimum_app_version: string;
104
- recommended_app_version: string;
105
- updated_at: string;
106
- extra_config: Record<string, unknown> | null;
107
- }
108
- export interface SupportTicketsDB {
109
- id: string;
110
- user_id: string | null;
111
- subject: string;
112
- message: string;
113
- status: string;
114
- created_at: string;
115
- updated_at: string;
116
- deleted_at: string | null;
117
- }
118
- export interface UserBlocksDB {
119
- blocker_id: string;
120
- blocked_id: string;
121
- created_at: string;
122
- }
123
- export interface UserEventRelationsDB {
124
- id: string;
125
- user_id: string;
126
- event_id: string;
127
- type: string;
128
- created_at: string;
129
- deleted_at: string | null;
130
- }
131
- export interface UserHandlesDB {
132
- user_id: string;
133
- handle: string;
134
- created_at: string;
135
- deleted_at: string | null;
136
- }
137
- export interface UserUserRelationsDB {
138
- id: string;
139
- follower_id: string;
140
- following_id: string;
141
- created_at: string;
142
- deleted_at: string | null;
143
- }
144
- export interface UsersDB {
145
- id: string;
146
- email: string;
147
- display_name: string;
148
- profile_picture: string | null;
149
- role: string;
150
- city: string | null;
151
- country: string | null;
152
- country_code: string | null;
153
- latitude: number | null;
154
- longitude: number | null;
155
- created_at: string;
156
- updated_at: string;
157
- connected_at: string | null;
158
- fcm_tokens: string[] | null;
159
- app_version: string | null;
160
- device_model: string | null;
161
- platform: string | null;
162
- email_verified: boolean | null;
163
- handle: string;
164
- bio: string | null;
165
- background_picture: string | null;
166
- referral_code: string | null;
167
- referred_by: string | null;
168
- notification_preferences_enabled: boolean;
169
- }
@@ -1,4 +0,0 @@
1
- // Auto-generated from schema.sql
2
- // Generated on 2026-03-13T11:05:58Z
3
- export {};
4
- //# sourceMappingURL=generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated.js","sourceRoot":"","sources":["../../../src/types/festivals/generated.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,oCAAoC"}
@@ -1,6 +0,0 @@
1
- export interface FestivalGenre {
2
- id: string;
3
- name: string;
4
- primaryGenreId: string | null;
5
- createdAt: string;
6
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=genre.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"genre.js","sourceRoot":"","sources":["../../../src/types/festivals/genre.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- export * from "./festival.js";
2
- export * from "./user.js";
3
- export * from "./genre.js";
4
- export * from "./general.js";
5
- export * from "./notifications.js";
6
- export * from "./posts.js";
7
- export * from "./marketing.js";
8
- export * from "./activity.js";
9
- export * from "./support.js";
10
- export * from "./conversations.js";
@@ -1,11 +0,0 @@
1
- export * from "./festival.js";
2
- export * from "./user.js";
3
- export * from "./genre.js";
4
- export * from "./general.js";
5
- export * from "./notifications.js";
6
- export * from "./posts.js";
7
- export * from "./marketing.js";
8
- export * from "./activity.js";
9
- export * from "./support.js";
10
- export * from "./conversations.js";
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/festivals/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -1,6 +0,0 @@
1
- export type LotteryEntry = {
2
- id: number;
3
- userId: string;
4
- referralCode: string;
5
- createdAt: Date;
6
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=marketing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marketing.js","sourceRoot":"","sources":["../../../src/types/festivals/marketing.ts"],"names":[],"mappings":""}
@@ -1,40 +0,0 @@
1
- import { EventData } from "../event.js";
2
- import { FestivalUser } from "./user.js";
3
- export type NotificationType = "NEW_FOLLOWER" | "USER_GOING_TO_EVENT" | "NEW_POST" | "POST_REPLY" | "POST_LIKE" | "ACTIVITY_COMMENT" | "ACTIVITY_LIKE" | "LOTTERY";
4
- type BaseNotification = {
5
- id: string;
6
- type: NotificationType;
7
- recipientId: string;
8
- createdAt: string;
9
- readAt?: string | null;
10
- };
11
- export type NewFollowerNotification = BaseNotification & {
12
- type: "NEW_FOLLOWER";
13
- actorId: string;
14
- actor: Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle">;
15
- };
16
- export type UserGoingToEventNotification = BaseNotification & {
17
- type: "USER_GOING_TO_EVENT";
18
- eventId: string;
19
- actorId: string;
20
- actor: Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle">;
21
- event: Pick<EventData, "id" | "title" | "imageData" | "from">;
22
- };
23
- export type LotteryNotification = BaseNotification & {
24
- type: "LOTTERY";
25
- message: string;
26
- };
27
- export type ActivityCommentNotification = BaseNotification & {
28
- type: "ACTIVITY_COMMENT";
29
- activityId: string;
30
- actorId: string;
31
- actor: Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle">;
32
- };
33
- export type ActivityLikeNotification = BaseNotification & {
34
- type: "ACTIVITY_LIKE";
35
- activityId: string;
36
- actorId: string;
37
- actor: Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle">;
38
- };
39
- export type Notification = NewFollowerNotification | UserGoingToEventNotification | LotteryNotification | ActivityCommentNotification | ActivityLikeNotification;
40
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=notifications.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/types/festivals/notifications.ts"],"names":[],"mappings":""}
@@ -1,45 +0,0 @@
1
- export interface Post {
2
- id: string;
3
- userId: string;
4
- eventId: string | null;
5
- parentPostId: string | null;
6
- body: string;
7
- createdAt: string;
8
- editedAt: string | null;
9
- deletedAt: string | null;
10
- postType: "activity_comment" | "post" | "reply";
11
- activityId: string | null;
12
- lastActivityAt: string;
13
- tags: string[];
14
- mentions: string[];
15
- }
16
- export interface InsertPost {
17
- userId: string;
18
- eventId?: string | null;
19
- parentPostId?: string | null;
20
- body: string | null;
21
- tags: string[] | null;
22
- mentions: string[] | null;
23
- }
24
- export interface UpdatePost {
25
- body?: string | null;
26
- editedAt?: string;
27
- deletedAt?: string | null;
28
- tags?: string[] | null;
29
- mentions?: string[] | null;
30
- }
31
- export interface PostWithUser extends Post {
32
- user: {
33
- id: string;
34
- name: string;
35
- avatarUrl?: string;
36
- };
37
- replyCount?: number;
38
- likeCount?: number;
39
- isLiked?: boolean;
40
- }
41
- export interface PostLike {
42
- postId: string;
43
- userId: string;
44
- createdAt: string;
45
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=posts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../../src/types/festivals/posts.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- export interface SupportTicket {
2
- id: string;
3
- user_id: string | null;
4
- subject: string;
5
- message: string;
6
- status: "open" | "in_progress" | "closed";
7
- created_at: string;
8
- updated_at: string;
9
- deleted_at: string | null;
10
- }
11
- export type SupportTicketInsert = Omit<SupportTicket, "id" | "created_at" | "updated_at" | "deleted_at"> & {
12
- status?: SupportTicket["status"];
13
- };
14
- export type SupportTicketUpdate = Partial<Pick<SupportTicket, "subject" | "message" | "status" | "deleted_at">>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=support.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/types/festivals/support.ts"],"names":[],"mappings":""}
@@ -1,80 +0,0 @@
1
- import { Timestamp } from "firebase/firestore";
2
- import { Role } from "../user.js";
3
- import { UserEventRelation } from "../organizer.js";
4
- export type FestivalUser = {
5
- id: string;
6
- email: string;
7
- displayName: string;
8
- profilePicture?: string | null | undefined;
9
- backgroundPicture?: string | null | undefined;
10
- handle: string;
11
- role: Role;
12
- location: {
13
- city: string;
14
- country: string;
15
- countryCode: string;
16
- coordinates: {
17
- latitude: number;
18
- longitude: number;
19
- };
20
- };
21
- createdAt: string;
22
- updatedAt: string;
23
- connectedAt: string;
24
- notificationPreferences: FestivalNotificationPreferences;
25
- fcmTokens: string[];
26
- appVersion: string;
27
- deviceModel: string;
28
- platform: string;
29
- emailVerified: boolean;
30
- bio: string | null | undefined;
31
- instagram?: string | null | undefined;
32
- referralCode: string;
33
- referredBy?: string | null | undefined;
34
- };
35
- export type LightFestivalUser = Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle"> & Pick<FestivalUser["location"], "city" | "country" | "countryCode"> & {
36
- type: UserEventRelation["type"];
37
- };
38
- export interface UserAttachment {
39
- id: string;
40
- userId: string;
41
- name: string;
42
- eventId: string;
43
- url: string;
44
- uploadedAt: Timestamp;
45
- type: "image" | "pdf";
46
- }
47
- export type UserHandle = {
48
- userId: string;
49
- handle: string;
50
- createdAt: string;
51
- deletedAt?: string | null;
52
- };
53
- export type UserToEventRelation = {
54
- id: string;
55
- userId: string;
56
- eventId: string;
57
- type: "going" | "saved";
58
- createdAt: string;
59
- deletedAt?: string;
60
- };
61
- export type UserToUserRelation = {
62
- id: string;
63
- followerId: string;
64
- followingId: string;
65
- createdAt: string;
66
- deletedAt?: string | null;
67
- };
68
- export type UserBlockRelation = {
69
- blockerId: string;
70
- blockedId: string;
71
- createdAt: string;
72
- };
73
- export type FriendData = UserToUserRelation & {
74
- follower: Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle">;
75
- following: Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle">;
76
- };
77
- export type UserSuggestion = Pick<FestivalUser, "id" | "displayName" | "profilePicture" | "handle"> & Pick<FestivalUser["location"], "countryCode">;
78
- export type FestivalNotificationPreferences = {
79
- enabled: boolean;
80
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/types/festivals/user.ts"],"names":[],"mappings":""}