@sunsteel/contracts 0.54.0 → 0.56.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.
- package/dist/index.cjs +44 -2
- package/dist/index.d.cts +232 -4
- package/dist/index.d.ts +232 -4
- package/dist/index.js +36 -2
- package/package.json +40 -40
package/dist/index.cjs
CHANGED
|
@@ -23,6 +23,9 @@ __export(index_exports, {
|
|
|
23
23
|
ACHIEVEMENT_CATEGORIES: () => ACHIEVEMENT_CATEGORIES,
|
|
24
24
|
ACHIEVEMENT_DEFINITIONS: () => ACHIEVEMENT_DEFINITIONS,
|
|
25
25
|
ACTIVITY_CAPS: () => ACTIVITY_CAPS,
|
|
26
|
+
ACTIVITY_COMMENTS_PAGE_SIZE: () => ACTIVITY_COMMENTS_PAGE_SIZE,
|
|
27
|
+
ACTIVITY_COMMENTS_PER_DAY_MAX: () => ACTIVITY_COMMENTS_PER_DAY_MAX,
|
|
28
|
+
ACTIVITY_COMMENT_MAX_LENGTH: () => ACTIVITY_COMMENT_MAX_LENGTH,
|
|
26
29
|
ACTIVITY_DEFAULT_AUDIENCE: () => ACTIVITY_DEFAULT_AUDIENCE,
|
|
27
30
|
ACTIVITY_ENTRY_ID_MAX_LENGTH: () => ACTIVITY_ENTRY_ID_MAX_LENGTH,
|
|
28
31
|
ACTIVITY_FEED_FOLLOWED_MAX: () => ACTIVITY_FEED_FOLLOWED_MAX,
|
|
@@ -51,6 +54,10 @@ __export(index_exports, {
|
|
|
51
54
|
MEASURABLE_GOAL_DIRECTIONS: () => MEASURABLE_GOAL_DIRECTIONS,
|
|
52
55
|
MEASURABLE_GOAL_TYPES: () => MEASURABLE_GOAL_TYPES,
|
|
53
56
|
MINUTES_IN_DAY: () => MINUTES_IN_DAY,
|
|
57
|
+
MODERATION_ACTION_KINDS: () => MODERATION_ACTION_KINDS,
|
|
58
|
+
MODERATION_HISTORY_PAGE_SIZE: () => MODERATION_HISTORY_PAGE_SIZE,
|
|
59
|
+
MODERATION_NOTE_MAX_LENGTH: () => MODERATION_NOTE_MAX_LENGTH,
|
|
60
|
+
MODERATION_QUEUE_PAGE_SIZE: () => MODERATION_QUEUE_PAGE_SIZE,
|
|
54
61
|
MOVEMENT_PATTERNS: () => MOVEMENT_PATTERNS,
|
|
55
62
|
MUSCLE_GROUPS: () => MUSCLE_GROUPS,
|
|
56
63
|
NOTIFICATIONS_LIST_LIMIT: () => NOTIFICATIONS_LIST_LIMIT,
|
|
@@ -82,6 +89,7 @@ __export(index_exports, {
|
|
|
82
89
|
REPORTS_PER_DAY_MAX: () => REPORTS_PER_DAY_MAX,
|
|
83
90
|
REPORT_DETAILS_MAX_LENGTH: () => REPORT_DETAILS_MAX_LENGTH,
|
|
84
91
|
REPORT_REASONS: () => REPORT_REASONS,
|
|
92
|
+
REPORT_STATUSES: () => REPORT_STATUSES,
|
|
85
93
|
REPORT_SUBJECT_KINDS: () => REPORT_SUBJECT_KINDS,
|
|
86
94
|
REP_TYPES: () => REP_TYPES,
|
|
87
95
|
RESERVED_USERNAMES: () => RESERVED_USERNAMES,
|
|
@@ -260,7 +268,16 @@ var FOLLOW_SUGGESTION_REASONS = [
|
|
|
260
268
|
|
|
261
269
|
// src/moderation.ts
|
|
262
270
|
var BLOCKED_MEMBERS_MAX = 500;
|
|
263
|
-
var REPORT_SUBJECT_KINDS = [
|
|
271
|
+
var REPORT_SUBJECT_KINDS = [
|
|
272
|
+
"MEMBER",
|
|
273
|
+
"ROUTINE",
|
|
274
|
+
"SESSION",
|
|
275
|
+
// SOC-06. The first reportable thing a member wrote rather than did, and the
|
|
276
|
+
// first one the TRUST-04 queue is likely to see in volume: everything above
|
|
277
|
+
// is content its owner created for themselves and shared, where a comment is
|
|
278
|
+
// aimed at somebody else.
|
|
279
|
+
"COMMENT"
|
|
280
|
+
];
|
|
264
281
|
var REPORT_REASONS = [
|
|
265
282
|
"SPAM",
|
|
266
283
|
"HARASSMENT",
|
|
@@ -271,6 +288,16 @@ var REPORT_REASONS = [
|
|
|
271
288
|
];
|
|
272
289
|
var REPORT_DETAILS_MAX_LENGTH = 500;
|
|
273
290
|
var REPORTS_PER_DAY_MAX = 20;
|
|
291
|
+
var REPORT_STATUSES = ["OPEN", "DISMISSED", "ACTIONED"];
|
|
292
|
+
var MODERATION_ACTION_KINDS = [
|
|
293
|
+
"VIEW_SUBJECT",
|
|
294
|
+
"DISMISS_REPORT",
|
|
295
|
+
"HIDE_SUBJECT",
|
|
296
|
+
"RESTORE_SUBJECT"
|
|
297
|
+
];
|
|
298
|
+
var MODERATION_NOTE_MAX_LENGTH = 500;
|
|
299
|
+
var MODERATION_QUEUE_PAGE_SIZE = 20;
|
|
300
|
+
var MODERATION_HISTORY_PAGE_SIZE = 20;
|
|
274
301
|
|
|
275
302
|
// src/exercise.ts
|
|
276
303
|
var MOVEMENT_PATTERNS = [
|
|
@@ -513,6 +540,9 @@ var ACTIVITY_FEED_FOLLOWED_MAX = 500;
|
|
|
513
540
|
var ACTIVITY_ENTRY_ID_MAX_LENGTH = 200;
|
|
514
541
|
var ACTIVITY_CAPS = ["SECTION", "ROUTINE"];
|
|
515
542
|
var ACTIVITY_PREVIEW_AUDIENCES = ["FOLLOWERS", "PUBLIC"];
|
|
543
|
+
var ACTIVITY_COMMENT_MAX_LENGTH = 500;
|
|
544
|
+
var ACTIVITY_COMMENTS_PER_DAY_MAX = 100;
|
|
545
|
+
var ACTIVITY_COMMENTS_PAGE_SIZE = 20;
|
|
516
546
|
|
|
517
547
|
// src/schedule.ts
|
|
518
548
|
var SCHEDULE_OVERRIDE_KINDS = ["MOVE", "SKIP"];
|
|
@@ -560,7 +590,11 @@ var PLATEAU_MIN_SESSIONS_MAX = 8;
|
|
|
560
590
|
var NOTIFICATION_KINDS = [
|
|
561
591
|
"ACHIEVEMENT",
|
|
562
592
|
"SESSION_PROGRESS",
|
|
563
|
-
"NEW_FOLLOWER"
|
|
593
|
+
"NEW_FOLLOWER",
|
|
594
|
+
// SOC-06. The first kind another member causes on purpose. The three above
|
|
595
|
+
// are the account's own training, or a follow; a comment is somebody
|
|
596
|
+
// addressing you, which is why it is worth a notification at all.
|
|
597
|
+
"ACTIVITY_COMMENT"
|
|
564
598
|
];
|
|
565
599
|
var NOTIFICATIONS_LOOKBACK_DAYS = 30;
|
|
566
600
|
var NOTIFICATIONS_RETENTION_DAYS = 90;
|
|
@@ -607,6 +641,9 @@ var STREAK_MAX_GAP_DAYS = 3;
|
|
|
607
641
|
ACHIEVEMENT_CATEGORIES,
|
|
608
642
|
ACHIEVEMENT_DEFINITIONS,
|
|
609
643
|
ACTIVITY_CAPS,
|
|
644
|
+
ACTIVITY_COMMENTS_PAGE_SIZE,
|
|
645
|
+
ACTIVITY_COMMENTS_PER_DAY_MAX,
|
|
646
|
+
ACTIVITY_COMMENT_MAX_LENGTH,
|
|
610
647
|
ACTIVITY_DEFAULT_AUDIENCE,
|
|
611
648
|
ACTIVITY_ENTRY_ID_MAX_LENGTH,
|
|
612
649
|
ACTIVITY_FEED_FOLLOWED_MAX,
|
|
@@ -635,6 +672,10 @@ var STREAK_MAX_GAP_DAYS = 3;
|
|
|
635
672
|
MEASURABLE_GOAL_DIRECTIONS,
|
|
636
673
|
MEASURABLE_GOAL_TYPES,
|
|
637
674
|
MINUTES_IN_DAY,
|
|
675
|
+
MODERATION_ACTION_KINDS,
|
|
676
|
+
MODERATION_HISTORY_PAGE_SIZE,
|
|
677
|
+
MODERATION_NOTE_MAX_LENGTH,
|
|
678
|
+
MODERATION_QUEUE_PAGE_SIZE,
|
|
638
679
|
MOVEMENT_PATTERNS,
|
|
639
680
|
MUSCLE_GROUPS,
|
|
640
681
|
NOTIFICATIONS_LIST_LIMIT,
|
|
@@ -666,6 +707,7 @@ var STREAK_MAX_GAP_DAYS = 3;
|
|
|
666
707
|
REPORTS_PER_DAY_MAX,
|
|
667
708
|
REPORT_DETAILS_MAX_LENGTH,
|
|
668
709
|
REPORT_REASONS,
|
|
710
|
+
REPORT_STATUSES,
|
|
669
711
|
REPORT_SUBJECT_KINDS,
|
|
670
712
|
REP_TYPES,
|
|
671
713
|
RESERVED_USERNAMES,
|
package/dist/index.d.cts
CHANGED
|
@@ -257,6 +257,13 @@ interface SessionShare {
|
|
|
257
257
|
token: string;
|
|
258
258
|
fields: SessionShareField[];
|
|
259
259
|
createdAt: IsoDateString;
|
|
260
|
+
/**
|
|
261
|
+
* TRUST-04: a moderator has hidden the shared workout, so the link stops
|
|
262
|
+
* resolving for everyone but its owner. The link is not revoked and the
|
|
263
|
+
* session is untouched; the owner is told because a live-looking link that
|
|
264
|
+
* opens for nobody is worse than one that says why.
|
|
265
|
+
*/
|
|
266
|
+
isHiddenByModeration?: boolean;
|
|
260
267
|
}
|
|
261
268
|
/** Stable successful response of GET /workouts/sessions/:id/shares. */
|
|
262
269
|
interface SessionShareListResponse {
|
|
@@ -839,7 +846,7 @@ interface MemberModerationState {
|
|
|
839
846
|
/** The viewer has blocked this member. */
|
|
840
847
|
isBlocked: boolean;
|
|
841
848
|
}
|
|
842
|
-
declare const REPORT_SUBJECT_KINDS: readonly ["MEMBER", "ROUTINE", "SESSION"];
|
|
849
|
+
declare const REPORT_SUBJECT_KINDS: readonly ["MEMBER", "ROUTINE", "SESSION", "COMMENT"];
|
|
843
850
|
type ReportSubjectKind = (typeof REPORT_SUBJECT_KINDS)[number];
|
|
844
851
|
/**
|
|
845
852
|
* Why something was reported. The list is short and fixed on purpose: a free
|
|
@@ -867,6 +874,119 @@ interface CreateReportResponse {
|
|
|
867
874
|
id: string;
|
|
868
875
|
createdAt: IsoDateString;
|
|
869
876
|
}
|
|
877
|
+
/** Whether the signed-in account may open the queue at all. */
|
|
878
|
+
interface ModeratorState {
|
|
879
|
+
isModerator: boolean;
|
|
880
|
+
}
|
|
881
|
+
declare const REPORT_STATUSES: readonly ["OPEN", "DISMISSED", "ACTIONED"];
|
|
882
|
+
type ReportStatus = (typeof REPORT_STATUSES)[number];
|
|
883
|
+
/**
|
|
884
|
+
* Every moderator power, each one a record. `VIEW_SUBJECT` is here for the
|
|
885
|
+
* same reason the others are: it is a thing a moderator did to somebody's
|
|
886
|
+
* content, and it is the only one that leaves no other trace.
|
|
887
|
+
*/
|
|
888
|
+
declare const MODERATION_ACTION_KINDS: readonly ["VIEW_SUBJECT", "DISMISS_REPORT", "HIDE_SUBJECT", "RESTORE_SUBJECT"];
|
|
889
|
+
type ModerationActionKind = (typeof MODERATION_ACTION_KINDS)[number];
|
|
890
|
+
declare const MODERATION_NOTE_MAX_LENGTH = 500;
|
|
891
|
+
declare const MODERATION_QUEUE_PAGE_SIZE = 20;
|
|
892
|
+
declare const MODERATION_HISTORY_PAGE_SIZE = 20;
|
|
893
|
+
/**
|
|
894
|
+
* What the reviewer may actually learn about a reported subject, resolved
|
|
895
|
+
* server-side through the rules that already govern the subject. A reviewer
|
|
896
|
+
* who may not read it is told so; the queue never fills the gap in.
|
|
897
|
+
*/
|
|
898
|
+
interface ReportSubjectPreview {
|
|
899
|
+
kind: ReportSubjectKind;
|
|
900
|
+
/** As the reporter named it: a member id or username, a routine id, a token. */
|
|
901
|
+
id: string;
|
|
902
|
+
/**
|
|
903
|
+
* The member id, routine id or session-share token this resolves to, which
|
|
904
|
+
* is what a review action is recorded against. Null when the subject is
|
|
905
|
+
* gone.
|
|
906
|
+
*/
|
|
907
|
+
resolvedId: string | null;
|
|
908
|
+
/** Present only when the reviewer may read the subject. */
|
|
909
|
+
title: string | null;
|
|
910
|
+
/** The subject's owner, when the reviewer may read the subject. */
|
|
911
|
+
owner: UserSearchResponse | null;
|
|
912
|
+
/** The subject no longer exists; only dismissing is left. */
|
|
913
|
+
isMissing: boolean;
|
|
914
|
+
/**
|
|
915
|
+
* The shipped `PROF-06`/`PROF-10` rules deny this reviewer this subject.
|
|
916
|
+
* It can still be hidden or dismissed on the strength of the report; it
|
|
917
|
+
* cannot be read, and no moderator flag changes that.
|
|
918
|
+
*/
|
|
919
|
+
isWithheld: boolean;
|
|
920
|
+
/** A `HIDE_SUBJECT` is currently in force. */
|
|
921
|
+
isHidden: boolean;
|
|
922
|
+
}
|
|
923
|
+
/** One row of the queue. */
|
|
924
|
+
interface ModerationReport {
|
|
925
|
+
id: string;
|
|
926
|
+
status: ReportStatus;
|
|
927
|
+
reason: ReportReason;
|
|
928
|
+
details: string | null;
|
|
929
|
+
createdAt: IsoDateString;
|
|
930
|
+
reporter: UserSearchResponse;
|
|
931
|
+
subject: ReportSubjectPreview;
|
|
932
|
+
/** Other reports still open about the same subject, this one excluded. */
|
|
933
|
+
otherOpenReports: number;
|
|
934
|
+
resolvedAt: IsoDateString | null;
|
|
935
|
+
}
|
|
936
|
+
interface ModerationQueueQuery {
|
|
937
|
+
/** Omitted means `OPEN`, which is the queue's reason to exist. */
|
|
938
|
+
status?: ReportStatus;
|
|
939
|
+
cursor?: string;
|
|
940
|
+
limit?: number;
|
|
941
|
+
}
|
|
942
|
+
/** Stable successful response of GET /moderation/queue. */
|
|
943
|
+
interface ModerationQueueResponse {
|
|
944
|
+
reports: ModerationReport[];
|
|
945
|
+
nextCursor: string | null;
|
|
946
|
+
/** Open reports in total, independent of the page or the filter. */
|
|
947
|
+
openCount: number;
|
|
948
|
+
}
|
|
949
|
+
/**
|
|
950
|
+
* One enforcement record. It is written once and never updated or deleted —
|
|
951
|
+
* including when a hide is undone, which appends a `RESTORE_SUBJECT` record
|
|
952
|
+
* rather than editing the `HIDE_SUBJECT` one.
|
|
953
|
+
*/
|
|
954
|
+
interface ModerationActionRecord {
|
|
955
|
+
id: string;
|
|
956
|
+
kind: ModerationActionKind;
|
|
957
|
+
moderator: UserSearchResponse;
|
|
958
|
+
/** The report the action was taken from, when it was taken from one. */
|
|
959
|
+
reportId: string | null;
|
|
960
|
+
subjectKind: ReportSubjectKind;
|
|
961
|
+
subjectId: string;
|
|
962
|
+
note: string | null;
|
|
963
|
+
createdAt: IsoDateString;
|
|
964
|
+
}
|
|
965
|
+
interface ModerationHistoryQuery {
|
|
966
|
+
cursor?: string;
|
|
967
|
+
limit?: number;
|
|
968
|
+
/** Narrow to one subject's records, newest first. */
|
|
969
|
+
subjectKind?: ReportSubjectKind;
|
|
970
|
+
subjectId?: string;
|
|
971
|
+
}
|
|
972
|
+
/** Stable successful response of GET /moderation/actions. */
|
|
973
|
+
interface ModerationHistoryResponse {
|
|
974
|
+
actions: ModerationActionRecord[];
|
|
975
|
+
nextCursor: string | null;
|
|
976
|
+
}
|
|
977
|
+
/**
|
|
978
|
+
* POST /moderation/reports/:id/dismiss, /hide and /restore. The note is the
|
|
979
|
+
* reviewer's own record of why; it is never shown to the reporter or to the
|
|
980
|
+
* subject's owner, because neither is promised an explanation.
|
|
981
|
+
*/
|
|
982
|
+
interface ReviewReportRequest {
|
|
983
|
+
note?: string | null;
|
|
984
|
+
}
|
|
985
|
+
/** Stable successful response of every review action, including a view. */
|
|
986
|
+
interface ReviewReportResponse {
|
|
987
|
+
report: ModerationReport;
|
|
988
|
+
action: ModerationActionRecord;
|
|
989
|
+
}
|
|
870
990
|
|
|
871
991
|
/**
|
|
872
992
|
* ROUT-11: a WEEKLY routine ties each day to a weekday; a ROTATION routine
|
|
@@ -981,6 +1101,13 @@ interface Routine {
|
|
|
981
1101
|
*/
|
|
982
1102
|
goal?: TrainingGoal | null;
|
|
983
1103
|
experienceLevel?: TrainingExperienceLevel | null;
|
|
1104
|
+
/**
|
|
1105
|
+
* TRUST-04: a moderator has hidden this routine from everyone but its
|
|
1106
|
+
* owner. Owner-only field, and true on the owner's own read alone: a
|
|
1107
|
+
* routine nobody else can open while its own visibility still reads
|
|
1108
|
+
* "Public" would be a control with nothing behind it.
|
|
1109
|
+
*/
|
|
1110
|
+
isHiddenByModeration?: boolean;
|
|
984
1111
|
days: RoutineDay[];
|
|
985
1112
|
createdAt: IsoDateString;
|
|
986
1113
|
updatedAt: IsoDateString;
|
|
@@ -1317,6 +1444,12 @@ interface UserProfile {
|
|
|
1317
1444
|
weightUnit: WeightUnit;
|
|
1318
1445
|
privacySettings: ProfilePrivacySettings;
|
|
1319
1446
|
discoverySettings: ProfileDiscoverySettings;
|
|
1447
|
+
/**
|
|
1448
|
+
* TRUST-04: whether this account may open the moderation queue. It is on
|
|
1449
|
+
* the owner's own profile only and never on `PublicUserProfile` — who
|
|
1450
|
+
* moderates is not a fact other members are owed.
|
|
1451
|
+
*/
|
|
1452
|
+
isModerator: boolean;
|
|
1320
1453
|
followerCount: number;
|
|
1321
1454
|
followingCount: number;
|
|
1322
1455
|
createdAt: IsoDateString;
|
|
@@ -1728,6 +1861,13 @@ interface ActivityEntryBase {
|
|
|
1728
1861
|
* read decides both.
|
|
1729
1862
|
*/
|
|
1730
1863
|
reactions: ActivityReactionSummary;
|
|
1864
|
+
/**
|
|
1865
|
+
* `SOC-06`. Travels inside the entry for the same reason reactions do. Only
|
|
1866
|
+
* the count and what this viewer may do; the comments themselves are a
|
|
1867
|
+
* separate read, because a feed page must not carry every comment on every
|
|
1868
|
+
* entry.
|
|
1869
|
+
*/
|
|
1870
|
+
comments: ActivityCommentSummary;
|
|
1731
1871
|
}
|
|
1732
1872
|
interface SessionCompletedActivity extends ActivityEntryBase {
|
|
1733
1873
|
type: 'SESSION_COMPLETED';
|
|
@@ -1896,6 +2036,73 @@ interface SetActivityEntryAudienceResponse {
|
|
|
1896
2036
|
entryId: string;
|
|
1897
2037
|
sharing: ActivityEntrySharing;
|
|
1898
2038
|
}
|
|
2039
|
+
/** One comment may be at most this long. Enforced by the server. */
|
|
2040
|
+
declare const ACTIVITY_COMMENT_MAX_LENGTH = 500;
|
|
2041
|
+
/** One account writes at most this many comments a day, across all entries. */
|
|
2042
|
+
declare const ACTIVITY_COMMENTS_PER_DAY_MAX = 100;
|
|
2043
|
+
/** One page of comments on one entry. */
|
|
2044
|
+
declare const ACTIVITY_COMMENTS_PAGE_SIZE = 20;
|
|
2045
|
+
/**
|
|
2046
|
+
* What a viewer may see of an entry's comments without reading them: how many,
|
|
2047
|
+
* and whether they may add one. The count excludes members either side of a
|
|
2048
|
+
* block and any comment a moderator has hidden, so it always matches what a
|
|
2049
|
+
* read of the list would return for this viewer -- a count that disagreed
|
|
2050
|
+
* would advertise a comment they cannot see.
|
|
2051
|
+
*/
|
|
2052
|
+
interface ActivityCommentSummary {
|
|
2053
|
+
count: number;
|
|
2054
|
+
/**
|
|
2055
|
+
* False on your own entry only because the server still accepts it -- an
|
|
2056
|
+
* owner may reply on their own activity. It is false when the viewer has
|
|
2057
|
+
* spent `ACTIVITY_COMMENTS_PER_DAY_MAX`.
|
|
2058
|
+
*/
|
|
2059
|
+
canComment: boolean;
|
|
2060
|
+
}
|
|
2061
|
+
/**
|
|
2062
|
+
* One comment as a viewer receives it. `canDelete` is resolved server-side and
|
|
2063
|
+
* is true for two people: the comment's author, and the owner of the activity
|
|
2064
|
+
* it hangs from -- it is their workout it is attached to.
|
|
2065
|
+
*/
|
|
2066
|
+
interface ActivityComment {
|
|
2067
|
+
id: string;
|
|
2068
|
+
entryId: string;
|
|
2069
|
+
author: UserSearchResponse;
|
|
2070
|
+
body: string;
|
|
2071
|
+
createdAt: IsoDateString;
|
|
2072
|
+
canDelete: boolean;
|
|
2073
|
+
}
|
|
2074
|
+
interface ActivityCommentsQuery {
|
|
2075
|
+
entryId: string;
|
|
2076
|
+
cursor?: string;
|
|
2077
|
+
limit?: number;
|
|
2078
|
+
}
|
|
2079
|
+
/** Stable successful response of GET /activity/entries/comments. */
|
|
2080
|
+
interface ActivityCommentsResponse {
|
|
2081
|
+
entryId: string;
|
|
2082
|
+
comments: ActivityComment[];
|
|
2083
|
+
nextCursor: string | null;
|
|
2084
|
+
/** Repeated here so a reader of the list needs no second request. */
|
|
2085
|
+
summary: ActivityCommentSummary;
|
|
2086
|
+
}
|
|
2087
|
+
/**
|
|
2088
|
+
* POST /activity/entries/comments. The entry is identified the way `SOC-05`
|
|
2089
|
+
* identifies it, by the stable activity key, and the same read decides whether
|
|
2090
|
+
* this viewer may comment at all: an entry they may not see answers **404**,
|
|
2091
|
+
* never 403, which would confirm it exists.
|
|
2092
|
+
*/
|
|
2093
|
+
interface CreateActivityCommentRequest {
|
|
2094
|
+
entryId: string;
|
|
2095
|
+
body: string;
|
|
2096
|
+
}
|
|
2097
|
+
interface CreateActivityCommentResponse {
|
|
2098
|
+
comment: ActivityComment;
|
|
2099
|
+
summary: ActivityCommentSummary;
|
|
2100
|
+
}
|
|
2101
|
+
/** DELETE /activity/entries/comments/:id. A real delete, not a flag. */
|
|
2102
|
+
interface DeleteActivityCommentResponse {
|
|
2103
|
+
entryId: string;
|
|
2104
|
+
summary: ActivityCommentSummary;
|
|
2105
|
+
}
|
|
1899
2106
|
|
|
1900
2107
|
/** A local calendar date, YYYY-MM-DD. */
|
|
1901
2108
|
type CalendarDate = string;
|
|
@@ -1958,7 +2165,7 @@ interface SkipOccurrenceRequest {
|
|
|
1958
2165
|
* history), a finished session that set records or changed loads, and a new
|
|
1959
2166
|
* follower.
|
|
1960
2167
|
*/
|
|
1961
|
-
declare const NOTIFICATION_KINDS: readonly ["ACHIEVEMENT", "SESSION_PROGRESS", "NEW_FOLLOWER"];
|
|
2168
|
+
declare const NOTIFICATION_KINDS: readonly ["ACHIEVEMENT", "SESSION_PROGRESS", "NEW_FOLLOWER", "ACTIVITY_COMMENT"];
|
|
1962
2169
|
type NotificationKind = (typeof NOTIFICATION_KINDS)[number];
|
|
1963
2170
|
/** Sources older than this many days are never gathered. */
|
|
1964
2171
|
declare const NOTIFICATIONS_LOOKBACK_DAYS = 30;
|
|
@@ -2004,8 +2211,29 @@ interface NewFollowerNotification extends NotificationBase {
|
|
|
2004
2211
|
isFollowedByMe: boolean;
|
|
2005
2212
|
};
|
|
2006
2213
|
}
|
|
2214
|
+
/**
|
|
2215
|
+
* SOC-06: somebody commented on one of the recipient's activity entries.
|
|
2216
|
+
*
|
|
2217
|
+
* It carries no comment body. The notification centre is gathered on read and
|
|
2218
|
+
* its rows outlive what they describe, so quoting text that can be deleted by
|
|
2219
|
+
* its author, by the recipient, or by a moderator would leave a copy nobody
|
|
2220
|
+
* can take back. The row names the commenter and the entry, and the comment
|
|
2221
|
+
* itself is read where it lives.
|
|
2222
|
+
*/
|
|
2223
|
+
interface ActivityCommentNotification extends NotificationBase {
|
|
2224
|
+
kind: 'ACTIVITY_COMMENT';
|
|
2225
|
+
actor: {
|
|
2226
|
+
id: string;
|
|
2227
|
+
username: string;
|
|
2228
|
+
name: string;
|
|
2229
|
+
lastName: string | null;
|
|
2230
|
+
avatarUrl: string | null;
|
|
2231
|
+
};
|
|
2232
|
+
/** The activity entry commented on, for the link back to it. */
|
|
2233
|
+
entryId: string;
|
|
2234
|
+
}
|
|
2007
2235
|
/** Named to stay clear of the DOM's `Notification`. */
|
|
2008
|
-
type AppNotification = AchievementNotification | SessionProgressNotification | NewFollowerNotification;
|
|
2236
|
+
type AppNotification = AchievementNotification | SessionProgressNotification | NewFollowerNotification | ActivityCommentNotification;
|
|
2009
2237
|
/** GET /notifications */
|
|
2010
2238
|
interface NotificationsResponse {
|
|
2011
2239
|
notifications: AppNotification[];
|
|
@@ -2221,4 +2449,4 @@ interface PlannedReminder {
|
|
|
2221
2449
|
routineNames: string[];
|
|
2222
2450
|
}
|
|
2223
2451
|
|
|
2224
|
-
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, type DeletePushSubscriptionRequest, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportSubjectKind, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetLog, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingReminderPreference, type TrainingReminderPushPayload, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse, isWithinQuietHours, routineDayLabel };
|
|
2452
|
+
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetLog, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingReminderPreference, type TrainingReminderPushPayload, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse, isWithinQuietHours, routineDayLabel };
|
package/dist/index.d.ts
CHANGED
|
@@ -257,6 +257,13 @@ interface SessionShare {
|
|
|
257
257
|
token: string;
|
|
258
258
|
fields: SessionShareField[];
|
|
259
259
|
createdAt: IsoDateString;
|
|
260
|
+
/**
|
|
261
|
+
* TRUST-04: a moderator has hidden the shared workout, so the link stops
|
|
262
|
+
* resolving for everyone but its owner. The link is not revoked and the
|
|
263
|
+
* session is untouched; the owner is told because a live-looking link that
|
|
264
|
+
* opens for nobody is worse than one that says why.
|
|
265
|
+
*/
|
|
266
|
+
isHiddenByModeration?: boolean;
|
|
260
267
|
}
|
|
261
268
|
/** Stable successful response of GET /workouts/sessions/:id/shares. */
|
|
262
269
|
interface SessionShareListResponse {
|
|
@@ -839,7 +846,7 @@ interface MemberModerationState {
|
|
|
839
846
|
/** The viewer has blocked this member. */
|
|
840
847
|
isBlocked: boolean;
|
|
841
848
|
}
|
|
842
|
-
declare const REPORT_SUBJECT_KINDS: readonly ["MEMBER", "ROUTINE", "SESSION"];
|
|
849
|
+
declare const REPORT_SUBJECT_KINDS: readonly ["MEMBER", "ROUTINE", "SESSION", "COMMENT"];
|
|
843
850
|
type ReportSubjectKind = (typeof REPORT_SUBJECT_KINDS)[number];
|
|
844
851
|
/**
|
|
845
852
|
* Why something was reported. The list is short and fixed on purpose: a free
|
|
@@ -867,6 +874,119 @@ interface CreateReportResponse {
|
|
|
867
874
|
id: string;
|
|
868
875
|
createdAt: IsoDateString;
|
|
869
876
|
}
|
|
877
|
+
/** Whether the signed-in account may open the queue at all. */
|
|
878
|
+
interface ModeratorState {
|
|
879
|
+
isModerator: boolean;
|
|
880
|
+
}
|
|
881
|
+
declare const REPORT_STATUSES: readonly ["OPEN", "DISMISSED", "ACTIONED"];
|
|
882
|
+
type ReportStatus = (typeof REPORT_STATUSES)[number];
|
|
883
|
+
/**
|
|
884
|
+
* Every moderator power, each one a record. `VIEW_SUBJECT` is here for the
|
|
885
|
+
* same reason the others are: it is a thing a moderator did to somebody's
|
|
886
|
+
* content, and it is the only one that leaves no other trace.
|
|
887
|
+
*/
|
|
888
|
+
declare const MODERATION_ACTION_KINDS: readonly ["VIEW_SUBJECT", "DISMISS_REPORT", "HIDE_SUBJECT", "RESTORE_SUBJECT"];
|
|
889
|
+
type ModerationActionKind = (typeof MODERATION_ACTION_KINDS)[number];
|
|
890
|
+
declare const MODERATION_NOTE_MAX_LENGTH = 500;
|
|
891
|
+
declare const MODERATION_QUEUE_PAGE_SIZE = 20;
|
|
892
|
+
declare const MODERATION_HISTORY_PAGE_SIZE = 20;
|
|
893
|
+
/**
|
|
894
|
+
* What the reviewer may actually learn about a reported subject, resolved
|
|
895
|
+
* server-side through the rules that already govern the subject. A reviewer
|
|
896
|
+
* who may not read it is told so; the queue never fills the gap in.
|
|
897
|
+
*/
|
|
898
|
+
interface ReportSubjectPreview {
|
|
899
|
+
kind: ReportSubjectKind;
|
|
900
|
+
/** As the reporter named it: a member id or username, a routine id, a token. */
|
|
901
|
+
id: string;
|
|
902
|
+
/**
|
|
903
|
+
* The member id, routine id or session-share token this resolves to, which
|
|
904
|
+
* is what a review action is recorded against. Null when the subject is
|
|
905
|
+
* gone.
|
|
906
|
+
*/
|
|
907
|
+
resolvedId: string | null;
|
|
908
|
+
/** Present only when the reviewer may read the subject. */
|
|
909
|
+
title: string | null;
|
|
910
|
+
/** The subject's owner, when the reviewer may read the subject. */
|
|
911
|
+
owner: UserSearchResponse | null;
|
|
912
|
+
/** The subject no longer exists; only dismissing is left. */
|
|
913
|
+
isMissing: boolean;
|
|
914
|
+
/**
|
|
915
|
+
* The shipped `PROF-06`/`PROF-10` rules deny this reviewer this subject.
|
|
916
|
+
* It can still be hidden or dismissed on the strength of the report; it
|
|
917
|
+
* cannot be read, and no moderator flag changes that.
|
|
918
|
+
*/
|
|
919
|
+
isWithheld: boolean;
|
|
920
|
+
/** A `HIDE_SUBJECT` is currently in force. */
|
|
921
|
+
isHidden: boolean;
|
|
922
|
+
}
|
|
923
|
+
/** One row of the queue. */
|
|
924
|
+
interface ModerationReport {
|
|
925
|
+
id: string;
|
|
926
|
+
status: ReportStatus;
|
|
927
|
+
reason: ReportReason;
|
|
928
|
+
details: string | null;
|
|
929
|
+
createdAt: IsoDateString;
|
|
930
|
+
reporter: UserSearchResponse;
|
|
931
|
+
subject: ReportSubjectPreview;
|
|
932
|
+
/** Other reports still open about the same subject, this one excluded. */
|
|
933
|
+
otherOpenReports: number;
|
|
934
|
+
resolvedAt: IsoDateString | null;
|
|
935
|
+
}
|
|
936
|
+
interface ModerationQueueQuery {
|
|
937
|
+
/** Omitted means `OPEN`, which is the queue's reason to exist. */
|
|
938
|
+
status?: ReportStatus;
|
|
939
|
+
cursor?: string;
|
|
940
|
+
limit?: number;
|
|
941
|
+
}
|
|
942
|
+
/** Stable successful response of GET /moderation/queue. */
|
|
943
|
+
interface ModerationQueueResponse {
|
|
944
|
+
reports: ModerationReport[];
|
|
945
|
+
nextCursor: string | null;
|
|
946
|
+
/** Open reports in total, independent of the page or the filter. */
|
|
947
|
+
openCount: number;
|
|
948
|
+
}
|
|
949
|
+
/**
|
|
950
|
+
* One enforcement record. It is written once and never updated or deleted —
|
|
951
|
+
* including when a hide is undone, which appends a `RESTORE_SUBJECT` record
|
|
952
|
+
* rather than editing the `HIDE_SUBJECT` one.
|
|
953
|
+
*/
|
|
954
|
+
interface ModerationActionRecord {
|
|
955
|
+
id: string;
|
|
956
|
+
kind: ModerationActionKind;
|
|
957
|
+
moderator: UserSearchResponse;
|
|
958
|
+
/** The report the action was taken from, when it was taken from one. */
|
|
959
|
+
reportId: string | null;
|
|
960
|
+
subjectKind: ReportSubjectKind;
|
|
961
|
+
subjectId: string;
|
|
962
|
+
note: string | null;
|
|
963
|
+
createdAt: IsoDateString;
|
|
964
|
+
}
|
|
965
|
+
interface ModerationHistoryQuery {
|
|
966
|
+
cursor?: string;
|
|
967
|
+
limit?: number;
|
|
968
|
+
/** Narrow to one subject's records, newest first. */
|
|
969
|
+
subjectKind?: ReportSubjectKind;
|
|
970
|
+
subjectId?: string;
|
|
971
|
+
}
|
|
972
|
+
/** Stable successful response of GET /moderation/actions. */
|
|
973
|
+
interface ModerationHistoryResponse {
|
|
974
|
+
actions: ModerationActionRecord[];
|
|
975
|
+
nextCursor: string | null;
|
|
976
|
+
}
|
|
977
|
+
/**
|
|
978
|
+
* POST /moderation/reports/:id/dismiss, /hide and /restore. The note is the
|
|
979
|
+
* reviewer's own record of why; it is never shown to the reporter or to the
|
|
980
|
+
* subject's owner, because neither is promised an explanation.
|
|
981
|
+
*/
|
|
982
|
+
interface ReviewReportRequest {
|
|
983
|
+
note?: string | null;
|
|
984
|
+
}
|
|
985
|
+
/** Stable successful response of every review action, including a view. */
|
|
986
|
+
interface ReviewReportResponse {
|
|
987
|
+
report: ModerationReport;
|
|
988
|
+
action: ModerationActionRecord;
|
|
989
|
+
}
|
|
870
990
|
|
|
871
991
|
/**
|
|
872
992
|
* ROUT-11: a WEEKLY routine ties each day to a weekday; a ROTATION routine
|
|
@@ -981,6 +1101,13 @@ interface Routine {
|
|
|
981
1101
|
*/
|
|
982
1102
|
goal?: TrainingGoal | null;
|
|
983
1103
|
experienceLevel?: TrainingExperienceLevel | null;
|
|
1104
|
+
/**
|
|
1105
|
+
* TRUST-04: a moderator has hidden this routine from everyone but its
|
|
1106
|
+
* owner. Owner-only field, and true on the owner's own read alone: a
|
|
1107
|
+
* routine nobody else can open while its own visibility still reads
|
|
1108
|
+
* "Public" would be a control with nothing behind it.
|
|
1109
|
+
*/
|
|
1110
|
+
isHiddenByModeration?: boolean;
|
|
984
1111
|
days: RoutineDay[];
|
|
985
1112
|
createdAt: IsoDateString;
|
|
986
1113
|
updatedAt: IsoDateString;
|
|
@@ -1317,6 +1444,12 @@ interface UserProfile {
|
|
|
1317
1444
|
weightUnit: WeightUnit;
|
|
1318
1445
|
privacySettings: ProfilePrivacySettings;
|
|
1319
1446
|
discoverySettings: ProfileDiscoverySettings;
|
|
1447
|
+
/**
|
|
1448
|
+
* TRUST-04: whether this account may open the moderation queue. It is on
|
|
1449
|
+
* the owner's own profile only and never on `PublicUserProfile` — who
|
|
1450
|
+
* moderates is not a fact other members are owed.
|
|
1451
|
+
*/
|
|
1452
|
+
isModerator: boolean;
|
|
1320
1453
|
followerCount: number;
|
|
1321
1454
|
followingCount: number;
|
|
1322
1455
|
createdAt: IsoDateString;
|
|
@@ -1728,6 +1861,13 @@ interface ActivityEntryBase {
|
|
|
1728
1861
|
* read decides both.
|
|
1729
1862
|
*/
|
|
1730
1863
|
reactions: ActivityReactionSummary;
|
|
1864
|
+
/**
|
|
1865
|
+
* `SOC-06`. Travels inside the entry for the same reason reactions do. Only
|
|
1866
|
+
* the count and what this viewer may do; the comments themselves are a
|
|
1867
|
+
* separate read, because a feed page must not carry every comment on every
|
|
1868
|
+
* entry.
|
|
1869
|
+
*/
|
|
1870
|
+
comments: ActivityCommentSummary;
|
|
1731
1871
|
}
|
|
1732
1872
|
interface SessionCompletedActivity extends ActivityEntryBase {
|
|
1733
1873
|
type: 'SESSION_COMPLETED';
|
|
@@ -1896,6 +2036,73 @@ interface SetActivityEntryAudienceResponse {
|
|
|
1896
2036
|
entryId: string;
|
|
1897
2037
|
sharing: ActivityEntrySharing;
|
|
1898
2038
|
}
|
|
2039
|
+
/** One comment may be at most this long. Enforced by the server. */
|
|
2040
|
+
declare const ACTIVITY_COMMENT_MAX_LENGTH = 500;
|
|
2041
|
+
/** One account writes at most this many comments a day, across all entries. */
|
|
2042
|
+
declare const ACTIVITY_COMMENTS_PER_DAY_MAX = 100;
|
|
2043
|
+
/** One page of comments on one entry. */
|
|
2044
|
+
declare const ACTIVITY_COMMENTS_PAGE_SIZE = 20;
|
|
2045
|
+
/**
|
|
2046
|
+
* What a viewer may see of an entry's comments without reading them: how many,
|
|
2047
|
+
* and whether they may add one. The count excludes members either side of a
|
|
2048
|
+
* block and any comment a moderator has hidden, so it always matches what a
|
|
2049
|
+
* read of the list would return for this viewer -- a count that disagreed
|
|
2050
|
+
* would advertise a comment they cannot see.
|
|
2051
|
+
*/
|
|
2052
|
+
interface ActivityCommentSummary {
|
|
2053
|
+
count: number;
|
|
2054
|
+
/**
|
|
2055
|
+
* False on your own entry only because the server still accepts it -- an
|
|
2056
|
+
* owner may reply on their own activity. It is false when the viewer has
|
|
2057
|
+
* spent `ACTIVITY_COMMENTS_PER_DAY_MAX`.
|
|
2058
|
+
*/
|
|
2059
|
+
canComment: boolean;
|
|
2060
|
+
}
|
|
2061
|
+
/**
|
|
2062
|
+
* One comment as a viewer receives it. `canDelete` is resolved server-side and
|
|
2063
|
+
* is true for two people: the comment's author, and the owner of the activity
|
|
2064
|
+
* it hangs from -- it is their workout it is attached to.
|
|
2065
|
+
*/
|
|
2066
|
+
interface ActivityComment {
|
|
2067
|
+
id: string;
|
|
2068
|
+
entryId: string;
|
|
2069
|
+
author: UserSearchResponse;
|
|
2070
|
+
body: string;
|
|
2071
|
+
createdAt: IsoDateString;
|
|
2072
|
+
canDelete: boolean;
|
|
2073
|
+
}
|
|
2074
|
+
interface ActivityCommentsQuery {
|
|
2075
|
+
entryId: string;
|
|
2076
|
+
cursor?: string;
|
|
2077
|
+
limit?: number;
|
|
2078
|
+
}
|
|
2079
|
+
/** Stable successful response of GET /activity/entries/comments. */
|
|
2080
|
+
interface ActivityCommentsResponse {
|
|
2081
|
+
entryId: string;
|
|
2082
|
+
comments: ActivityComment[];
|
|
2083
|
+
nextCursor: string | null;
|
|
2084
|
+
/** Repeated here so a reader of the list needs no second request. */
|
|
2085
|
+
summary: ActivityCommentSummary;
|
|
2086
|
+
}
|
|
2087
|
+
/**
|
|
2088
|
+
* POST /activity/entries/comments. The entry is identified the way `SOC-05`
|
|
2089
|
+
* identifies it, by the stable activity key, and the same read decides whether
|
|
2090
|
+
* this viewer may comment at all: an entry they may not see answers **404**,
|
|
2091
|
+
* never 403, which would confirm it exists.
|
|
2092
|
+
*/
|
|
2093
|
+
interface CreateActivityCommentRequest {
|
|
2094
|
+
entryId: string;
|
|
2095
|
+
body: string;
|
|
2096
|
+
}
|
|
2097
|
+
interface CreateActivityCommentResponse {
|
|
2098
|
+
comment: ActivityComment;
|
|
2099
|
+
summary: ActivityCommentSummary;
|
|
2100
|
+
}
|
|
2101
|
+
/** DELETE /activity/entries/comments/:id. A real delete, not a flag. */
|
|
2102
|
+
interface DeleteActivityCommentResponse {
|
|
2103
|
+
entryId: string;
|
|
2104
|
+
summary: ActivityCommentSummary;
|
|
2105
|
+
}
|
|
1899
2106
|
|
|
1900
2107
|
/** A local calendar date, YYYY-MM-DD. */
|
|
1901
2108
|
type CalendarDate = string;
|
|
@@ -1958,7 +2165,7 @@ interface SkipOccurrenceRequest {
|
|
|
1958
2165
|
* history), a finished session that set records or changed loads, and a new
|
|
1959
2166
|
* follower.
|
|
1960
2167
|
*/
|
|
1961
|
-
declare const NOTIFICATION_KINDS: readonly ["ACHIEVEMENT", "SESSION_PROGRESS", "NEW_FOLLOWER"];
|
|
2168
|
+
declare const NOTIFICATION_KINDS: readonly ["ACHIEVEMENT", "SESSION_PROGRESS", "NEW_FOLLOWER", "ACTIVITY_COMMENT"];
|
|
1962
2169
|
type NotificationKind = (typeof NOTIFICATION_KINDS)[number];
|
|
1963
2170
|
/** Sources older than this many days are never gathered. */
|
|
1964
2171
|
declare const NOTIFICATIONS_LOOKBACK_DAYS = 30;
|
|
@@ -2004,8 +2211,29 @@ interface NewFollowerNotification extends NotificationBase {
|
|
|
2004
2211
|
isFollowedByMe: boolean;
|
|
2005
2212
|
};
|
|
2006
2213
|
}
|
|
2214
|
+
/**
|
|
2215
|
+
* SOC-06: somebody commented on one of the recipient's activity entries.
|
|
2216
|
+
*
|
|
2217
|
+
* It carries no comment body. The notification centre is gathered on read and
|
|
2218
|
+
* its rows outlive what they describe, so quoting text that can be deleted by
|
|
2219
|
+
* its author, by the recipient, or by a moderator would leave a copy nobody
|
|
2220
|
+
* can take back. The row names the commenter and the entry, and the comment
|
|
2221
|
+
* itself is read where it lives.
|
|
2222
|
+
*/
|
|
2223
|
+
interface ActivityCommentNotification extends NotificationBase {
|
|
2224
|
+
kind: 'ACTIVITY_COMMENT';
|
|
2225
|
+
actor: {
|
|
2226
|
+
id: string;
|
|
2227
|
+
username: string;
|
|
2228
|
+
name: string;
|
|
2229
|
+
lastName: string | null;
|
|
2230
|
+
avatarUrl: string | null;
|
|
2231
|
+
};
|
|
2232
|
+
/** The activity entry commented on, for the link back to it. */
|
|
2233
|
+
entryId: string;
|
|
2234
|
+
}
|
|
2007
2235
|
/** Named to stay clear of the DOM's `Notification`. */
|
|
2008
|
-
type AppNotification = AchievementNotification | SessionProgressNotification | NewFollowerNotification;
|
|
2236
|
+
type AppNotification = AchievementNotification | SessionProgressNotification | NewFollowerNotification | ActivityCommentNotification;
|
|
2009
2237
|
/** GET /notifications */
|
|
2010
2238
|
interface NotificationsResponse {
|
|
2011
2239
|
notifications: AppNotification[];
|
|
@@ -2221,4 +2449,4 @@ interface PlannedReminder {
|
|
|
2221
2449
|
routineNames: string[];
|
|
2222
2450
|
}
|
|
2223
2451
|
|
|
2224
|
-
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, type DeletePushSubscriptionRequest, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportSubjectKind, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetLog, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingReminderPreference, type TrainingReminderPushPayload, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse, isWithinQuietHours, routineDayLabel };
|
|
2452
|
+
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetLog, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingReminderPreference, type TrainingReminderPushPayload, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse, isWithinQuietHours, routineDayLabel };
|
package/dist/index.js
CHANGED
|
@@ -132,7 +132,16 @@ var FOLLOW_SUGGESTION_REASONS = [
|
|
|
132
132
|
|
|
133
133
|
// src/moderation.ts
|
|
134
134
|
var BLOCKED_MEMBERS_MAX = 500;
|
|
135
|
-
var REPORT_SUBJECT_KINDS = [
|
|
135
|
+
var REPORT_SUBJECT_KINDS = [
|
|
136
|
+
"MEMBER",
|
|
137
|
+
"ROUTINE",
|
|
138
|
+
"SESSION",
|
|
139
|
+
// SOC-06. The first reportable thing a member wrote rather than did, and the
|
|
140
|
+
// first one the TRUST-04 queue is likely to see in volume: everything above
|
|
141
|
+
// is content its owner created for themselves and shared, where a comment is
|
|
142
|
+
// aimed at somebody else.
|
|
143
|
+
"COMMENT"
|
|
144
|
+
];
|
|
136
145
|
var REPORT_REASONS = [
|
|
137
146
|
"SPAM",
|
|
138
147
|
"HARASSMENT",
|
|
@@ -143,6 +152,16 @@ var REPORT_REASONS = [
|
|
|
143
152
|
];
|
|
144
153
|
var REPORT_DETAILS_MAX_LENGTH = 500;
|
|
145
154
|
var REPORTS_PER_DAY_MAX = 20;
|
|
155
|
+
var REPORT_STATUSES = ["OPEN", "DISMISSED", "ACTIONED"];
|
|
156
|
+
var MODERATION_ACTION_KINDS = [
|
|
157
|
+
"VIEW_SUBJECT",
|
|
158
|
+
"DISMISS_REPORT",
|
|
159
|
+
"HIDE_SUBJECT",
|
|
160
|
+
"RESTORE_SUBJECT"
|
|
161
|
+
];
|
|
162
|
+
var MODERATION_NOTE_MAX_LENGTH = 500;
|
|
163
|
+
var MODERATION_QUEUE_PAGE_SIZE = 20;
|
|
164
|
+
var MODERATION_HISTORY_PAGE_SIZE = 20;
|
|
146
165
|
|
|
147
166
|
// src/exercise.ts
|
|
148
167
|
var MOVEMENT_PATTERNS = [
|
|
@@ -385,6 +404,9 @@ var ACTIVITY_FEED_FOLLOWED_MAX = 500;
|
|
|
385
404
|
var ACTIVITY_ENTRY_ID_MAX_LENGTH = 200;
|
|
386
405
|
var ACTIVITY_CAPS = ["SECTION", "ROUTINE"];
|
|
387
406
|
var ACTIVITY_PREVIEW_AUDIENCES = ["FOLLOWERS", "PUBLIC"];
|
|
407
|
+
var ACTIVITY_COMMENT_MAX_LENGTH = 500;
|
|
408
|
+
var ACTIVITY_COMMENTS_PER_DAY_MAX = 100;
|
|
409
|
+
var ACTIVITY_COMMENTS_PAGE_SIZE = 20;
|
|
388
410
|
|
|
389
411
|
// src/schedule.ts
|
|
390
412
|
var SCHEDULE_OVERRIDE_KINDS = ["MOVE", "SKIP"];
|
|
@@ -432,7 +454,11 @@ var PLATEAU_MIN_SESSIONS_MAX = 8;
|
|
|
432
454
|
var NOTIFICATION_KINDS = [
|
|
433
455
|
"ACHIEVEMENT",
|
|
434
456
|
"SESSION_PROGRESS",
|
|
435
|
-
"NEW_FOLLOWER"
|
|
457
|
+
"NEW_FOLLOWER",
|
|
458
|
+
// SOC-06. The first kind another member causes on purpose. The three above
|
|
459
|
+
// are the account's own training, or a follow; a comment is somebody
|
|
460
|
+
// addressing you, which is why it is worth a notification at all.
|
|
461
|
+
"ACTIVITY_COMMENT"
|
|
436
462
|
];
|
|
437
463
|
var NOTIFICATIONS_LOOKBACK_DAYS = 30;
|
|
438
464
|
var NOTIFICATIONS_RETENTION_DAYS = 90;
|
|
@@ -478,6 +504,9 @@ export {
|
|
|
478
504
|
ACHIEVEMENT_CATEGORIES,
|
|
479
505
|
ACHIEVEMENT_DEFINITIONS,
|
|
480
506
|
ACTIVITY_CAPS,
|
|
507
|
+
ACTIVITY_COMMENTS_PAGE_SIZE,
|
|
508
|
+
ACTIVITY_COMMENTS_PER_DAY_MAX,
|
|
509
|
+
ACTIVITY_COMMENT_MAX_LENGTH,
|
|
481
510
|
ACTIVITY_DEFAULT_AUDIENCE,
|
|
482
511
|
ACTIVITY_ENTRY_ID_MAX_LENGTH,
|
|
483
512
|
ACTIVITY_FEED_FOLLOWED_MAX,
|
|
@@ -506,6 +535,10 @@ export {
|
|
|
506
535
|
MEASURABLE_GOAL_DIRECTIONS,
|
|
507
536
|
MEASURABLE_GOAL_TYPES,
|
|
508
537
|
MINUTES_IN_DAY,
|
|
538
|
+
MODERATION_ACTION_KINDS,
|
|
539
|
+
MODERATION_HISTORY_PAGE_SIZE,
|
|
540
|
+
MODERATION_NOTE_MAX_LENGTH,
|
|
541
|
+
MODERATION_QUEUE_PAGE_SIZE,
|
|
509
542
|
MOVEMENT_PATTERNS,
|
|
510
543
|
MUSCLE_GROUPS,
|
|
511
544
|
NOTIFICATIONS_LIST_LIMIT,
|
|
@@ -537,6 +570,7 @@ export {
|
|
|
537
570
|
REPORTS_PER_DAY_MAX,
|
|
538
571
|
REPORT_DETAILS_MAX_LENGTH,
|
|
539
572
|
REPORT_REASONS,
|
|
573
|
+
REPORT_STATUSES,
|
|
540
574
|
REPORT_SUBJECT_KINDS,
|
|
541
575
|
REP_TYPES,
|
|
542
576
|
RESERVED_USERNAMES,
|
package/package.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sunsteel/contracts",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"repository": {
|
|
5
|
-
"type": "git",
|
|
6
|
-
"url": "git+https://github.com/ezee969/sunsteel-contracts.git"
|
|
7
|
-
},
|
|
8
|
-
"private": false,
|
|
9
|
-
"engines": {
|
|
10
|
-
"node": ">=20.11"
|
|
11
|
-
},
|
|
12
|
-
"type": "module",
|
|
13
|
-
"sideEffects": false,
|
|
14
|
-
"main": "./dist/index.cjs",
|
|
15
|
-
"module": "./dist/index.js",
|
|
16
|
-
"types": "./dist/index.d.ts",
|
|
17
|
-
"exports": {
|
|
18
|
-
".": {
|
|
19
|
-
"types": "./dist/index.d.ts",
|
|
20
|
-
"import": "./dist/index.js",
|
|
21
|
-
"require": "./dist/index.cjs"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"files": [
|
|
25
|
-
"dist"
|
|
26
|
-
],
|
|
27
|
-
"scripts": {
|
|
28
|
-
"build": "tsup src/index.ts --format esm,cjs --dts --clean",
|
|
29
|
-
"dev": "tsup src/index.ts --format esm,cjs --dts --watch",
|
|
30
|
-
"typecheck": "tsc --noEmit",
|
|
31
|
-
"lint": "npm run typecheck",
|
|
32
|
-
"verify": "npm run typecheck && npm run build",
|
|
33
|
-
"verify:security": "npm audit",
|
|
34
|
-
"prepublishOnly": "npm run build"
|
|
35
|
-
},
|
|
36
|
-
"devDependencies": {
|
|
37
|
-
"tsup": "^8.3.5",
|
|
38
|
-
"typescript": "^5.7.3"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sunsteel/contracts",
|
|
3
|
+
"version": "0.56.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/ezee969/sunsteel-contracts.git"
|
|
7
|
+
},
|
|
8
|
+
"private": false,
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=20.11"
|
|
11
|
+
},
|
|
12
|
+
"type": "module",
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"main": "./dist/index.cjs",
|
|
15
|
+
"module": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js",
|
|
21
|
+
"require": "./dist/index.cjs"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsup src/index.ts --format esm,cjs --dts --clean",
|
|
29
|
+
"dev": "tsup src/index.ts --format esm,cjs --dts --watch",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"lint": "npm run typecheck",
|
|
32
|
+
"verify": "npm run typecheck && npm run build",
|
|
33
|
+
"verify:security": "npm audit",
|
|
34
|
+
"prepublishOnly": "npm run build"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"tsup": "^8.3.5",
|
|
38
|
+
"typescript": "^5.7.3"
|
|
39
|
+
}
|
|
40
|
+
}
|