@iveri/contracts 0.54.0 → 0.60.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 (139) hide show
  1. package/dist/api/gym/gym-booking-refusal.enum.d.ts +14 -0
  2. package/dist/api/gym/gym-booking-refusal.enum.js +15 -0
  3. package/dist/api/gym/gym-booking-status.enum.d.ts +9 -0
  4. package/dist/api/gym/gym-booking-status.enum.js +10 -0
  5. package/dist/api/gym/gym-branch.type.d.ts +47 -0
  6. package/dist/api/gym/gym-branch.type.js +1 -0
  7. package/dist/api/gym/gym-busy-level.enum.d.ts +5 -0
  8. package/dist/api/gym/gym-busy-level.enum.js +6 -0
  9. package/dist/api/gym/gym-check-in-outcome.enum.d.ts +6 -0
  10. package/dist/api/gym/gym-check-in-outcome.enum.js +7 -0
  11. package/dist/api/gym/gym-check-in-refusal.enum.d.ts +12 -0
  12. package/dist/api/gym/gym-check-in-refusal.enum.js +13 -0
  13. package/dist/api/gym/gym-class-access.enum.d.ts +6 -0
  14. package/dist/api/gym/gym-class-access.enum.js +7 -0
  15. package/dist/api/gym/gym-class-level.enum.d.ts +6 -0
  16. package/dist/api/gym/gym-class-level.enum.js +7 -0
  17. package/dist/api/gym/gym-class-type.type.d.ts +35 -0
  18. package/dist/api/gym/gym-class-type.type.js +1 -0
  19. package/dist/api/gym/gym-common.type.d.ts +14 -0
  20. package/dist/api/gym/gym-common.type.js +1 -0
  21. package/dist/api/gym/gym-door.type.d.ts +65 -0
  22. package/dist/api/gym/gym-door.type.js +1 -0
  23. package/dist/api/gym/gym-duration-unit.enum.d.ts +4 -0
  24. package/dist/api/gym/gym-duration-unit.enum.js +5 -0
  25. package/dist/api/gym/gym-entry-kind.enum.d.ts +6 -0
  26. package/dist/api/gym/gym-entry-kind.enum.js +7 -0
  27. package/dist/api/gym/gym-equipment.enum.d.ts +11 -0
  28. package/dist/api/gym/gym-equipment.enum.js +12 -0
  29. package/dist/api/gym/gym-exercise-category.enum.d.ts +5 -0
  30. package/dist/api/gym/gym-exercise-category.enum.js +6 -0
  31. package/dist/api/gym/gym-exercise-measure.enum.d.ts +7 -0
  32. package/dist/api/gym/gym-exercise-measure.enum.js +8 -0
  33. package/dist/api/gym/gym-gallery.type.d.ts +17 -0
  34. package/dist/api/gym/gym-gallery.type.js +1 -0
  35. package/dist/api/gym/gym-lead-kind.enum.d.ts +5 -0
  36. package/dist/api/gym/gym-lead-kind.enum.js +6 -0
  37. package/dist/api/gym/gym-lead-status.enum.d.ts +7 -0
  38. package/dist/api/gym/gym-lead-status.enum.js +8 -0
  39. package/dist/api/gym/gym-lead.type.d.ts +32 -0
  40. package/dist/api/gym/gym-lead.type.js +1 -0
  41. package/dist/api/gym/gym-me.type.d.ts +115 -0
  42. package/dist/api/gym/gym-me.type.js +1 -0
  43. package/dist/api/gym/gym-member.type.d.ts +55 -0
  44. package/dist/api/gym/gym-member.type.js +1 -0
  45. package/dist/api/gym/gym-membership-status.enum.d.ts +14 -0
  46. package/dist/api/gym/gym-membership-status.enum.js +15 -0
  47. package/dist/api/gym/gym-membership.type.d.ts +93 -0
  48. package/dist/api/gym/gym-membership.type.js +1 -0
  49. package/dist/api/gym/gym-muscle-group.enum.d.ts +13 -0
  50. package/dist/api/gym/gym-muscle-group.enum.js +14 -0
  51. package/dist/api/gym/gym-payment-kind.enum.d.ts +4 -0
  52. package/dist/api/gym/gym-payment-kind.enum.js +5 -0
  53. package/dist/api/gym/gym-payment-method.enum.d.ts +6 -0
  54. package/dist/api/gym/gym-payment-method.enum.js +7 -0
  55. package/dist/api/gym/gym-payment.type.d.ts +59 -0
  56. package/dist/api/gym/gym-payment.type.js +1 -0
  57. package/dist/api/gym/gym-plan-activation.enum.d.ts +5 -0
  58. package/dist/api/gym/gym-plan-activation.enum.js +6 -0
  59. package/dist/api/gym/gym-plan.type.d.ts +72 -0
  60. package/dist/api/gym/gym-plan.type.js +1 -0
  61. package/dist/api/gym/gym-profile.type.d.ts +65 -0
  62. package/dist/api/gym/gym-profile.type.js +1 -0
  63. package/dist/api/gym/gym-promo-code.type.d.ts +33 -0
  64. package/dist/api/gym/gym-promo-code.type.js +1 -0
  65. package/dist/api/gym/gym-public.type.d.ts +114 -0
  66. package/dist/api/gym/gym-public.type.js +1 -0
  67. package/dist/api/gym/gym-record-kind.enum.d.ts +7 -0
  68. package/dist/api/gym/gym-record-kind.enum.js +8 -0
  69. package/dist/api/gym/gym-report.type.d.ts +73 -0
  70. package/dist/api/gym/gym-report.type.js +1 -0
  71. package/dist/api/gym/gym-resource-status.enum.d.ts +5 -0
  72. package/dist/api/gym/gym-resource-status.enum.js +6 -0
  73. package/dist/api/gym/gym-room.type.d.ts +27 -0
  74. package/dist/api/gym/gym-room.type.js +1 -0
  75. package/dist/api/gym/gym-schedule.type.d.ts +122 -0
  76. package/dist/api/gym/gym-schedule.type.js +1 -0
  77. package/dist/api/gym/gym-session-kind.enum.d.ts +4 -0
  78. package/dist/api/gym/gym-session-kind.enum.js +5 -0
  79. package/dist/api/gym/gym-session-status.enum.d.ts +4 -0
  80. package/dist/api/gym/gym-session-status.enum.js +5 -0
  81. package/dist/api/gym/gym-signature-method.enum.d.ts +4 -0
  82. package/dist/api/gym/gym-signature-method.enum.js +5 -0
  83. package/dist/api/gym/gym-staff.type.d.ts +46 -0
  84. package/dist/api/gym/gym-staff.type.js +1 -0
  85. package/dist/api/gym/gym-training.type.d.ts +179 -0
  86. package/dist/api/gym/gym-training.type.js +1 -0
  87. package/dist/api/gym/gym-waiver.type.d.ts +32 -0
  88. package/dist/api/gym/gym-waiver.type.js +1 -0
  89. package/dist/api/gym/index.d.ts +44 -0
  90. package/dist/api/gym/index.js +44 -0
  91. package/dist/api/realtime/realtime-event-type.enum.d.ts +7 -1
  92. package/dist/api/realtime/realtime-event-type.enum.js +6 -0
  93. package/dist/api/realtime/realtime-resource-type.enum.d.ts +7 -1
  94. package/dist/api/realtime/realtime-resource-type.enum.js +6 -0
  95. package/dist/api/social/index.d.ts +20 -0
  96. package/dist/api/social/index.js +20 -0
  97. package/dist/api/social/social-account.type.d.ts +24 -0
  98. package/dist/api/social/social-account.type.js +1 -0
  99. package/dist/api/social/social-activity-kind.enum.d.ts +13 -0
  100. package/dist/api/social/social-activity-kind.enum.js +14 -0
  101. package/dist/api/social/social-activity.type.d.ts +26 -0
  102. package/dist/api/social/social-activity.type.js +1 -0
  103. package/dist/api/social/social-appeal-status.enum.d.ts +7 -0
  104. package/dist/api/social/social-appeal-status.enum.js +8 -0
  105. package/dist/api/social/social-case-decision.enum.d.ts +13 -0
  106. package/dist/api/social/social-case-decision.enum.js +14 -0
  107. package/dist/api/social/social-case-status.enum.d.ts +4 -0
  108. package/dist/api/social/social-case-status.enum.js +5 -0
  109. package/dist/api/social/social-conversation.type.d.ts +45 -0
  110. package/dist/api/social/social-conversation.type.js +1 -0
  111. package/dist/api/social/social-export-status.enum.d.ts +6 -0
  112. package/dist/api/social/social-export-status.enum.js +7 -0
  113. package/dist/api/social/social-follow-state.enum.d.ts +7 -0
  114. package/dist/api/social/social-follow-state.enum.js +8 -0
  115. package/dist/api/social/social-image.type.d.ts +28 -0
  116. package/dist/api/social/social-image.type.js +1 -0
  117. package/dist/api/social/social-limits.constant.d.ts +23 -0
  118. package/dist/api/social/social-limits.constant.js +23 -0
  119. package/dist/api/social/social-member-status.enum.d.ts +12 -0
  120. package/dist/api/social/social-member-status.enum.js +13 -0
  121. package/dist/api/social/social-member.type.d.ts +79 -0
  122. package/dist/api/social/social-member.type.js +1 -0
  123. package/dist/api/social/social-moderation-reason.enum.d.ts +13 -0
  124. package/dist/api/social/social-moderation-reason.enum.js +14 -0
  125. package/dist/api/social/social-moderation.type.d.ts +166 -0
  126. package/dist/api/social/social-moderation.type.js +1 -0
  127. package/dist/api/social/social-post.type.d.ts +58 -0
  128. package/dist/api/social/social-post.type.js +1 -0
  129. package/dist/api/social/social-refusal.enum.d.ts +37 -0
  130. package/dist/api/social/social-refusal.enum.js +38 -0
  131. package/dist/api/social/social-report-reason.enum.d.ts +18 -0
  132. package/dist/api/social/social-report-reason.enum.js +19 -0
  133. package/dist/api/social/social-report-target.enum.d.ts +8 -0
  134. package/dist/api/social/social-report-target.enum.js +9 -0
  135. package/dist/api/social/social-story.type.d.ts +30 -0
  136. package/dist/api/social/social-story.type.js +1 -0
  137. package/dist/enum/user-permission.enum.d.ts +53 -1
  138. package/dist/enum/user-permission.enum.js +52 -0
  139. package/package.json +9 -1
@@ -10,5 +10,11 @@ export declare enum RealtimeResourceType {
10
10
  MOBILITY_WORKER = "mobility.worker",
11
11
  MOBILITY_DISPATCH = "mobility.dispatch",
12
12
  RESTAURANT_BRANCH = "restaurant.branch",
13
- RESTAURANT_ORDER = "restaurant.order"
13
+ RESTAURANT_ORDER = "restaurant.order",
14
+ /**
15
+ * One Ezo member's own room. They subscribe to themselves, the one thing they can name before a
16
+ * message or a like has happened, and the events on it say what became stale.
17
+ */
18
+ SOCIAL_MEMBER = "social.member",
19
+ GYM_BRANCH = "gym.branch"
14
20
  }
@@ -12,4 +12,10 @@ export var RealtimeResourceType;
12
12
  RealtimeResourceType["MOBILITY_DISPATCH"] = "mobility.dispatch";
13
13
  RealtimeResourceType["RESTAURANT_BRANCH"] = "restaurant.branch";
14
14
  RealtimeResourceType["RESTAURANT_ORDER"] = "restaurant.order";
15
+ /**
16
+ * One Ezo member's own room. They subscribe to themselves, the one thing they can name before a
17
+ * message or a like has happened, and the events on it say what became stale.
18
+ */
19
+ RealtimeResourceType["SOCIAL_MEMBER"] = "social.member";
20
+ RealtimeResourceType["GYM_BRANCH"] = "gym.branch";
15
21
  })(RealtimeResourceType || (RealtimeResourceType = {}));
@@ -0,0 +1,20 @@
1
+ export * from './social-account.type.js';
2
+ export * from './social-activity-kind.enum.js';
3
+ export * from './social-activity.type.js';
4
+ export * from './social-appeal-status.enum.js';
5
+ export * from './social-case-decision.enum.js';
6
+ export * from './social-case-status.enum.js';
7
+ export * from './social-conversation.type.js';
8
+ export * from './social-export-status.enum.js';
9
+ export * from './social-follow-state.enum.js';
10
+ export * from './social-image.type.js';
11
+ export * from './social-limits.constant.js';
12
+ export * from './social-member-status.enum.js';
13
+ export * from './social-member.type.js';
14
+ export * from './social-moderation-reason.enum.js';
15
+ export * from './social-moderation.type.js';
16
+ export * from './social-post.type.js';
17
+ export * from './social-refusal.enum.js';
18
+ export * from './social-report-reason.enum.js';
19
+ export * from './social-report-target.enum.js';
20
+ export * from './social-story.type.js';
@@ -0,0 +1,20 @@
1
+ export * from './social-account.type.js';
2
+ export * from './social-activity-kind.enum.js';
3
+ export * from './social-activity.type.js';
4
+ export * from './social-appeal-status.enum.js';
5
+ export * from './social-case-decision.enum.js';
6
+ export * from './social-case-status.enum.js';
7
+ export * from './social-conversation.type.js';
8
+ export * from './social-export-status.enum.js';
9
+ export * from './social-follow-state.enum.js';
10
+ export * from './social-image.type.js';
11
+ export * from './social-limits.constant.js';
12
+ export * from './social-member-status.enum.js';
13
+ export * from './social-member.type.js';
14
+ export * from './social-moderation-reason.enum.js';
15
+ export * from './social-moderation.type.js';
16
+ export * from './social-post.type.js';
17
+ export * from './social-refusal.enum.js';
18
+ export * from './social-report-reason.enum.js';
19
+ export * from './social-report-target.enum.js';
20
+ export * from './social-story.type.js';
@@ -0,0 +1,24 @@
1
+ import type { IsoDateTime } from '../../type/iso-date-time.type.js';
2
+ import type { Nullable } from '../../type/nil.type.js';
3
+ import type { UUID } from '../../type/uuid.type.js';
4
+ import type { SocialExportStatus } from './social-export-status.enum.js';
5
+ export interface SocialDeletionState {
6
+ deletionScheduledFor: Nullable<IsoDateTime>;
7
+ }
8
+ export interface SocialDataExport {
9
+ id: UUID;
10
+ status: SocialExportStatus;
11
+ requestedAt: IsoDateTime;
12
+ readyAt: Nullable<IsoDateTime>;
13
+ expiresAt: Nullable<IsoDateTime>;
14
+ downloadUrl: Nullable<string>;
15
+ sizeBytes: Nullable<number>;
16
+ }
17
+ export interface ConfirmSocialEmailRequest {
18
+ token: string;
19
+ }
20
+ export interface SocialRealtimeGrant {
21
+ grant: string;
22
+ expiresAt: IsoDateTime;
23
+ memberId: UUID;
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ /** What happened, for one line of a member's activity. */
2
+ export declare enum SocialActivityKind {
3
+ POST_LIKED = "post-liked",
4
+ COMMENT_LIKED = "comment-liked",
5
+ POST_COMMENTED = "post-commented",
6
+ COMMENT_REPLIED = "comment-replied",
7
+ MENTIONED = "mentioned",
8
+ FOLLOWED = "followed",
9
+ FOLLOW_REQUESTED = "follow-requested",
10
+ FOLLOW_ACCEPTED = "follow-accepted",
11
+ /** Staff decided something about this member or what they posted. */
12
+ MODERATION_NOTICE = "moderation-notice"
13
+ }
@@ -0,0 +1,14 @@
1
+ /** What happened, for one line of a member's activity. */
2
+ export var SocialActivityKind;
3
+ (function (SocialActivityKind) {
4
+ SocialActivityKind["POST_LIKED"] = "post-liked";
5
+ SocialActivityKind["COMMENT_LIKED"] = "comment-liked";
6
+ SocialActivityKind["POST_COMMENTED"] = "post-commented";
7
+ SocialActivityKind["COMMENT_REPLIED"] = "comment-replied";
8
+ SocialActivityKind["MENTIONED"] = "mentioned";
9
+ SocialActivityKind["FOLLOWED"] = "followed";
10
+ SocialActivityKind["FOLLOW_REQUESTED"] = "follow-requested";
11
+ SocialActivityKind["FOLLOW_ACCEPTED"] = "follow-accepted";
12
+ /** Staff decided something about this member or what they posted. */
13
+ SocialActivityKind["MODERATION_NOTICE"] = "moderation-notice";
14
+ })(SocialActivityKind || (SocialActivityKind = {}));
@@ -0,0 +1,26 @@
1
+ import type { IsoDateTime } from '../../type/iso-date-time.type.js';
2
+ import type { Nullable } from '../../type/nil.type.js';
3
+ import type { UUID } from '../../type/uuid.type.js';
4
+ import type { SocialActivityKind } from './social-activity-kind.enum.js';
5
+ import type { SocialMemberCard } from './social-member.type.js';
6
+ /** One line of activity, which can stand for many people doing the same thing. */
7
+ export interface SocialActivityItem {
8
+ id: UUID;
9
+ kind: SocialActivityKind;
10
+ /** The most recent few, for drawing faces and names. */
11
+ actors: SocialMemberCard[];
12
+ actorCount: number;
13
+ postId: Nullable<UUID>;
14
+ postThumbnailUrl: Nullable<string>;
15
+ commentId: Nullable<UUID>;
16
+ excerpt: Nullable<string>;
17
+ /** For a moderation notice, the decision it announces. */
18
+ noticeId: Nullable<UUID>;
19
+ latestAt: IsoDateTime;
20
+ isRead: boolean;
21
+ }
22
+ export interface SocialUnreadCounts {
23
+ activity: number;
24
+ messages: number;
25
+ followRequests: number;
26
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export declare enum SocialAppealStatus {
2
+ PENDING = "pending",
3
+ /** The decision stands. */
4
+ UPHELD = "upheld",
5
+ /** The decision was wrong, and what it did has been undone. */
6
+ REVERSED = "reversed"
7
+ }
@@ -0,0 +1,8 @@
1
+ export var SocialAppealStatus;
2
+ (function (SocialAppealStatus) {
3
+ SocialAppealStatus["PENDING"] = "pending";
4
+ /** The decision stands. */
5
+ SocialAppealStatus["UPHELD"] = "upheld";
6
+ /** The decision was wrong, and what it did has been undone. */
7
+ SocialAppealStatus["REVERSED"] = "reversed";
8
+ })(SocialAppealStatus || (SocialAppealStatus = {}));
@@ -0,0 +1,13 @@
1
+ /** What a moderator decided about a case. */
2
+ export declare enum SocialCaseDecision {
3
+ /** Nothing was wrong. */
4
+ DISMISS = "dismiss",
5
+ /** The content comes down and the member is told why. */
6
+ REMOVE = "remove",
7
+ /** The content comes down and it goes on the member's record as a warning. */
8
+ WARN = "warn",
9
+ /** The content comes down and the member cannot use Ezo until a date. */
10
+ SUSPEND = "suspend",
11
+ /** The content comes down and the member cannot use Ezo at all. */
12
+ BAN = "ban"
13
+ }
@@ -0,0 +1,14 @@
1
+ /** What a moderator decided about a case. */
2
+ export var SocialCaseDecision;
3
+ (function (SocialCaseDecision) {
4
+ /** Nothing was wrong. */
5
+ SocialCaseDecision["DISMISS"] = "dismiss";
6
+ /** The content comes down and the member is told why. */
7
+ SocialCaseDecision["REMOVE"] = "remove";
8
+ /** The content comes down and it goes on the member's record as a warning. */
9
+ SocialCaseDecision["WARN"] = "warn";
10
+ /** The content comes down and the member cannot use Ezo until a date. */
11
+ SocialCaseDecision["SUSPEND"] = "suspend";
12
+ /** The content comes down and the member cannot use Ezo at all. */
13
+ SocialCaseDecision["BAN"] = "ban";
14
+ })(SocialCaseDecision || (SocialCaseDecision = {}));
@@ -0,0 +1,4 @@
1
+ export declare enum SocialCaseStatus {
2
+ OPEN = "open",
3
+ RESOLVED = "resolved"
4
+ }
@@ -0,0 +1,5 @@
1
+ export var SocialCaseStatus;
2
+ (function (SocialCaseStatus) {
3
+ SocialCaseStatus["OPEN"] = "open";
4
+ SocialCaseStatus["RESOLVED"] = "resolved";
5
+ })(SocialCaseStatus || (SocialCaseStatus = {}));
@@ -0,0 +1,45 @@
1
+ import type { IsoDateTime } from '../../type/iso-date-time.type.js';
2
+ import type { Nullable } from '../../type/nil.type.js';
3
+ import type { UUID } from '../../type/uuid.type.js';
4
+ import type { SocialImage } from './social-image.type.js';
5
+ import type { SocialMemberCard } from './social-member.type.js';
6
+ export interface SocialMessagePreview {
7
+ excerpt: Nullable<string>;
8
+ hasImage: boolean;
9
+ isOwn: boolean;
10
+ sentAt: IsoDateTime;
11
+ }
12
+ export interface SocialConversation {
13
+ id: UUID;
14
+ /** Null once the other person has left Ezo. */
15
+ other: Nullable<SocialMemberCard>;
16
+ /** Waiting for this member to accept it. */
17
+ isRequest: boolean;
18
+ unreadCount: number;
19
+ lastMessage: Nullable<SocialMessagePreview>;
20
+ /** Whether this member can send here now: false after a block or when the other has left. */
21
+ canSend: boolean;
22
+ /** Up to where the other person has read. Absent while a request is unanswered. */
23
+ otherReadAt: Nullable<IsoDateTime>;
24
+ }
25
+ export interface SocialMessage {
26
+ id: UUID;
27
+ conversationId: UUID;
28
+ /** Null once the sender has left Ezo. */
29
+ senderId: Nullable<UUID>;
30
+ body: Nullable<string>;
31
+ image: Nullable<SocialImage>;
32
+ isOwn: boolean;
33
+ /** The sender took it back. */
34
+ isDeleted: boolean;
35
+ sentAt: IsoDateTime;
36
+ }
37
+ export interface StartSocialConversationRequest {
38
+ memberId: UUID;
39
+ }
40
+ export interface SendSocialMessageRequest {
41
+ /** Chosen by the client per message, so a retry cannot send it twice. */
42
+ clientId: UUID;
43
+ body?: Nullable<string>;
44
+ mediaId?: Nullable<UUID>;
45
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare enum SocialExportStatus {
2
+ PENDING = "pending",
3
+ READY = "ready",
4
+ FAILED = "failed",
5
+ EXPIRED = "expired"
6
+ }
@@ -0,0 +1,7 @@
1
+ export var SocialExportStatus;
2
+ (function (SocialExportStatus) {
3
+ SocialExportStatus["PENDING"] = "pending";
4
+ SocialExportStatus["READY"] = "ready";
5
+ SocialExportStatus["FAILED"] = "failed";
6
+ SocialExportStatus["EXPIRED"] = "expired";
7
+ })(SocialExportStatus || (SocialExportStatus = {}));
@@ -0,0 +1,7 @@
1
+ /** One direction of the follow graph, as one member sees it. */
2
+ export declare enum SocialFollowState {
3
+ NONE = "none",
4
+ /** Waiting for a private account to answer. */
5
+ REQUESTED = "requested",
6
+ FOLLOWING = "following"
7
+ }
@@ -0,0 +1,8 @@
1
+ /** One direction of the follow graph, as one member sees it. */
2
+ export var SocialFollowState;
3
+ (function (SocialFollowState) {
4
+ SocialFollowState["NONE"] = "none";
5
+ /** Waiting for a private account to answer. */
6
+ SocialFollowState["REQUESTED"] = "requested";
7
+ SocialFollowState["FOLLOWING"] = "following";
8
+ })(SocialFollowState || (SocialFollowState = {}));
@@ -0,0 +1,28 @@
1
+ import type { Nullable } from '../../type/nil.type.js';
2
+ import type { UUID } from '../../type/uuid.type.js';
3
+ /** Addresses of one photograph. Signed, and only good for about two hours after the response. */
4
+ export interface SocialImageUrls {
5
+ /** 320 wide. */
6
+ small: string;
7
+ /** 800 wide. */
8
+ medium: string;
9
+ /** 1600 wide. */
10
+ large: string;
11
+ }
12
+ export interface SocialImage {
13
+ id: UUID;
14
+ width: number;
15
+ height: number;
16
+ /** A solid colour to paint while the photograph loads. */
17
+ placeholderColor: string;
18
+ altText: Nullable<string>;
19
+ urls: SocialImageUrls;
20
+ }
21
+ /** What an upload answers, before anything has used it. */
22
+ export interface SocialMediaUpload {
23
+ id: UUID;
24
+ width: number;
25
+ height: number;
26
+ placeholderColor: string;
27
+ previewUrl: string;
28
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ /** Limits a form and the API have to agree on. */
2
+ export declare const SOCIAL_LIMITS: {
3
+ readonly HANDLE_MIN: 3;
4
+ readonly HANDLE_MAX: 30;
5
+ readonly DISPLAY_NAME_MAX: 60;
6
+ readonly BIO_MAX: 300;
7
+ readonly WEBSITE_MAX: 300;
8
+ readonly CAPTION_MAX: 2200;
9
+ readonly COMMENT_MAX: 1000;
10
+ readonly STORY_CAPTION_MAX: 200;
11
+ readonly MESSAGE_MAX: 2000;
12
+ readonly ALT_TEXT_MAX: 500;
13
+ readonly POST_IMAGES_MAX: 10;
14
+ readonly REPORT_DETAIL_MAX: 1000;
15
+ readonly APPEAL_STATEMENT_MAX: 2000;
16
+ readonly MODERATION_NOTE_MAX: 2000;
17
+ readonly IMAGE_BYTES_MAX: number;
18
+ readonly MINIMUM_AGE: 16;
19
+ };
20
+ /** The characters a handle may use, in the form they are stored. */
21
+ export declare const SOCIAL_HANDLE_PATTERN: RegExp;
22
+ /** The version of the terms a new member accepts. A placeholder until the real terms exist. */
23
+ export declare const SOCIAL_TERMS_VERSION = "2026-11-draft";
@@ -0,0 +1,23 @@
1
+ /** Limits a form and the API have to agree on. */
2
+ export const SOCIAL_LIMITS = {
3
+ HANDLE_MIN: 3,
4
+ HANDLE_MAX: 30,
5
+ DISPLAY_NAME_MAX: 60,
6
+ BIO_MAX: 300,
7
+ WEBSITE_MAX: 300,
8
+ CAPTION_MAX: 2200,
9
+ COMMENT_MAX: 1000,
10
+ STORY_CAPTION_MAX: 200,
11
+ MESSAGE_MAX: 2000,
12
+ ALT_TEXT_MAX: 500,
13
+ POST_IMAGES_MAX: 10,
14
+ REPORT_DETAIL_MAX: 1000,
15
+ APPEAL_STATEMENT_MAX: 2000,
16
+ MODERATION_NOTE_MAX: 2000,
17
+ IMAGE_BYTES_MAX: 15 * 1024 * 1024,
18
+ MINIMUM_AGE: 16,
19
+ };
20
+ /** The characters a handle may use, in the form they are stored. */
21
+ export const SOCIAL_HANDLE_PATTERN = /^[a-z0-9](?:[a-z0-9._]*[a-z0-9])?$/;
22
+ /** The version of the terms a new member accepts. A placeholder until the real terms exist. */
23
+ export const SOCIAL_TERMS_VERSION = '2026-11-draft';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Whether a member can use Ezo.
3
+ *
4
+ * `deleting` is the grace period after somebody asks to leave: the account is already invisible to
5
+ * everyone else, and signing in during it cancels the request.
6
+ */
7
+ export declare enum SocialMemberStatus {
8
+ ACTIVE = "active",
9
+ SUSPENDED = "suspended",
10
+ BANNED = "banned",
11
+ DELETING = "deleting"
12
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Whether a member can use Ezo.
3
+ *
4
+ * `deleting` is the grace period after somebody asks to leave: the account is already invisible to
5
+ * everyone else, and signing in during it cancels the request.
6
+ */
7
+ export var SocialMemberStatus;
8
+ (function (SocialMemberStatus) {
9
+ SocialMemberStatus["ACTIVE"] = "active";
10
+ SocialMemberStatus["SUSPENDED"] = "suspended";
11
+ SocialMemberStatus["BANNED"] = "banned";
12
+ SocialMemberStatus["DELETING"] = "deleting";
13
+ })(SocialMemberStatus || (SocialMemberStatus = {}));
@@ -0,0 +1,79 @@
1
+ import type { IsoDateTime } from '../../type/iso-date-time.type.js';
2
+ import type { Nullable } from '../../type/nil.type.js';
3
+ import type { UUID } from '../../type/uuid.type.js';
4
+ import type { SocialFollowState } from './social-follow-state.enum.js';
5
+ import type { SocialMemberStatus } from './social-member-status.enum.js';
6
+ /** The smallest face of a person: what appears beside a post, a comment or a message. */
7
+ export interface SocialMemberCard {
8
+ id: UUID;
9
+ handle: string;
10
+ displayName: string;
11
+ avatarUrl: Nullable<string>;
12
+ isPrivate: boolean;
13
+ }
14
+ export interface SocialRelationship {
15
+ /** Whether the viewer follows this member. */
16
+ following: SocialFollowState;
17
+ /** Whether this member follows the viewer. */
18
+ followedBy: SocialFollowState;
19
+ isMuted: boolean;
20
+ isBlocked: boolean;
21
+ }
22
+ export interface SocialProfile extends SocialMemberCard {
23
+ bio: Nullable<string>;
24
+ websiteUrl: Nullable<string>;
25
+ followerCount: number;
26
+ followingCount: number;
27
+ postCount: number;
28
+ joinedAt: IsoDateTime;
29
+ isSelf: boolean;
30
+ /** Absent for your own profile and for a visitor with no account. */
31
+ relationship: Nullable<SocialRelationship>;
32
+ /** False for a private account the viewer does not follow, whose posts stay out of reach. */
33
+ canViewContent: boolean;
34
+ hasStory: boolean;
35
+ }
36
+ /** A member reading about themselves. */
37
+ export interface SocialMe extends SocialProfile {
38
+ status: SocialMemberStatus;
39
+ suspendedUntil: Nullable<IsoDateTime>;
40
+ /** The day this member turns 18. Absent for an adult. */
41
+ minorUntil: Nullable<string>;
42
+ isEmailConfirmed: boolean;
43
+ deletionScheduledFor: Nullable<IsoDateTime>;
44
+ acceptedTermsVersion: string;
45
+ unreadActivityCount: number;
46
+ unreadMessageCount: number;
47
+ }
48
+ export interface CreateSocialProfileRequest {
49
+ handle: string;
50
+ displayName: string;
51
+ /** `YYYY-MM-DD`. Checked and not stored. */
52
+ birthDate: string;
53
+ acceptedTermsVersion: string;
54
+ }
55
+ export interface UpdateSocialProfileRequest {
56
+ handle?: string;
57
+ displayName?: string;
58
+ bio?: Nullable<string>;
59
+ websiteUrl?: Nullable<string>;
60
+ isPrivate?: boolean;
61
+ }
62
+ export interface SocialHandleAvailability {
63
+ handle: string;
64
+ isAvailable: boolean;
65
+ }
66
+ /** One line of a followers list, a following list or a follow-request list. */
67
+ export interface SocialMemberListItem {
68
+ member: SocialMemberCard;
69
+ relationship: Nullable<SocialRelationship>;
70
+ since: IsoDateTime;
71
+ }
72
+ export interface SocialPreferences {
73
+ emailOnMessage: boolean;
74
+ emailOnFollow: boolean;
75
+ emailOnMention: boolean;
76
+ emailOnComment: boolean;
77
+ /** Whether somebody you do not follow can start a conversation at all. */
78
+ allowMessageRequests: boolean;
79
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ /** The rule a moderator says was broken. Shown to the member in their own language. */
2
+ export declare enum SocialModerationReason {
3
+ SPAM = "spam",
4
+ HARASSMENT = "harassment",
5
+ HATE = "hate",
6
+ VIOLENCE = "violence",
7
+ NUDITY = "nudity",
8
+ CHILD_SAFETY = "child-safety",
9
+ SELF_HARM = "self-harm",
10
+ IMPERSONATION = "impersonation",
11
+ ILLEGAL = "illegal",
12
+ OTHER = "other"
13
+ }
@@ -0,0 +1,14 @@
1
+ /** The rule a moderator says was broken. Shown to the member in their own language. */
2
+ export var SocialModerationReason;
3
+ (function (SocialModerationReason) {
4
+ SocialModerationReason["SPAM"] = "spam";
5
+ SocialModerationReason["HARASSMENT"] = "harassment";
6
+ SocialModerationReason["HATE"] = "hate";
7
+ SocialModerationReason["VIOLENCE"] = "violence";
8
+ SocialModerationReason["NUDITY"] = "nudity";
9
+ SocialModerationReason["CHILD_SAFETY"] = "child-safety";
10
+ SocialModerationReason["SELF_HARM"] = "self-harm";
11
+ SocialModerationReason["IMPERSONATION"] = "impersonation";
12
+ SocialModerationReason["ILLEGAL"] = "illegal";
13
+ SocialModerationReason["OTHER"] = "other";
14
+ })(SocialModerationReason || (SocialModerationReason = {}));