@globalscoutme/api-client 1.1.9 → 1.1.10

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/README.md ADDED
@@ -0,0 +1,298 @@
1
+ # @globalscoutme/api-client
2
+
3
+ Auto-generated TypeScript HTTP client for the GlobalScoutMe API, built with [`@hey-api/openapi-ts`](https://heyapi.dev/) and axios.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @globalscoutme/api-client
9
+ ```
10
+
11
+ ## Setup
12
+
13
+ Configure the client once at app startup with your API base URL and auth token:
14
+
15
+ ```ts
16
+ import { client } from '@globalscoutme/api-client';
17
+
18
+ client.setConfig({
19
+ baseURL: 'https://your-api-url.com',
20
+ headers: {
21
+ Authorization: `Bearer ${yourSupabaseAccessToken}`,
22
+ },
23
+ });
24
+ ```
25
+
26
+ ## Usage
27
+
28
+ All endpoints are grouped by controller and fully typed:
29
+
30
+ ```ts
31
+ import {
32
+ Auth,
33
+ Dashboard,
34
+ Players,
35
+ Profile,
36
+ Documents,
37
+ Videos,
38
+ Achievements,
39
+ Body,
40
+ Index,
41
+ Kyc,
42
+ Offers,
43
+ Organizations,
44
+ Clubs,
45
+ Challenges,
46
+ Training,
47
+ Invitations,
48
+ Storage,
49
+ Subscriptions,
50
+ } from '@globalscoutme/api-client';
51
+
52
+ // Auth
53
+ const authMe = await Auth.getAuthMe();
54
+ // Returns { id: string, userType: string | null }
55
+
56
+ // Players
57
+ const player = await Players.getMe();
58
+ await Players.patchMe({ body: { fullName: 'John Doe' } });
59
+ await Players.deleteMe();
60
+ const dashboard = await Players.getMyDashboard();
61
+ await Players.heartbeat({ body: { timezone: 'Europe/Bucharest' } });
62
+ const results = await Players.searchPlayers({
63
+ body: {
64
+ search: 'John',
65
+ page: 1,
66
+ pageSize: 20,
67
+ sortBy: 'age_asc',
68
+ nationalities: ['EG', 'MA'],
69
+ positions: ['CM', 'CB'],
70
+ baseFoot: 'right',
71
+ isFreeAgent: true,
72
+ hasVideo: true,
73
+ heightOperator: 'gte',
74
+ heightCm: 180,
75
+ },
76
+ });
77
+ const playerProfile = await Players.getPlayerById({
78
+ path: { id: 'player-uuid' },
79
+ });
80
+ const playerMeasurements = await Players.getPlayerMeasurementProfile({
81
+ path: { id: 'player-uuid' },
82
+ });
83
+ // Returns { status, body, cmj, session, updatedAt } — accessible to all roles (no player-only restriction)
84
+ // status: 'missing' | 'partial' | 'ready' | 'needs_update'
85
+ const playerVideoMetrics = await Players.getPlayerVideoMetrics({
86
+ path: { id: 'player-uuid' },
87
+ });
88
+ // Returns { id, createdAt, videoDurationS, physicalMetrics, trackingQuality, trackedFrames, totalFrames }
89
+ // physicalMetrics: { totalDistance, sprintDistance, maxSpeed, averageSpeed, highIntensityRuns, sprints }
90
+ // Speed/distance values are strings with units already included (e.g. "31.0 km/h", "21.4 m")
91
+ // trackingQuality: confidence label from the analysis service (e.g. "High Confidence") — null if unavailable
92
+ // Returns 404 if the player has no completed video analysis yet
93
+ const playerReport = await Players.getPlayerReport({
94
+ path: { id: 'player-uuid' },
95
+ });
96
+ // Returns { reportReferenceId, generatedAt, scouterView: { technicalPillar, physicalPillar, tacticalPillar, mentalPillar } }
97
+ // Returns 404 if the player has no completed AI report yet
98
+
99
+ // Profile
100
+ const profile = await Profile.getProfileMe();
101
+ await Profile.updateProfileMe({ body: { dominantFoot: 'Right' } });
102
+
103
+ // Documents
104
+ const docs = await Documents.getMyDocuments();
105
+ await Documents.createDocument({ body: { type: 'license' } });
106
+
107
+ // Videos
108
+ const videos = await Videos.getMyVideos();
109
+ await Videos.createVideo({
110
+ body: { type: 'cmj', storagePath: 'path/to/video' },
111
+ });
112
+ const playUrl = await Videos.getVideoPlayUrl({ path: { id: 'video-uuid' } });
113
+ await Videos.deleteVideo({ path: { id: 'video-uuid' } });
114
+
115
+ // Achievements
116
+ const catalog = await Achievements.getAchievementsCatalog();
117
+ const myAchievements = await Achievements.getMyAchievements();
118
+
119
+ // Body measurements
120
+ const measurement = await Body.getMyMeasurements();
121
+ await Body.createMeasurement({ body: { heightCm: 180 } });
122
+
123
+ // Index (lookup tables)
124
+ const positions = await Index.getIndexItems({
125
+ path: { tableName: 'positions' },
126
+ });
127
+ const countries = await Index.getCountries();
128
+ // Returns [{ code: 'BR', name: 'Brazil', nationalityName: 'Brazilian', flagEmoji: '🇧🇷' }, ...]
129
+
130
+ // Dashboard (scout/club portal — single aggregated call)
131
+ const dashboard = await Dashboard.getScoutDashboard();
132
+ // Returns: stats (watchlisted, offersSent, playersViewed, videosWatched),
133
+ // lastPlayersViewed (last 6 distinct players),
134
+ // lastVideosWatched (last 6 distinct videos with player info)
135
+
136
+ const videoUrl = await Dashboard.getScoutVideoPlayUrl({
137
+ path: { id: 'video-uuid' },
138
+ });
139
+ // Returns signed play URL + records the view in video_views
140
+
141
+ // Offers (conversations between scouts and players)
142
+ const conversations = await Offers.listConversations({
143
+ query: { filter: 'all', page: 1, pageSize: 20 },
144
+ });
145
+ const conversation = await Offers.createConversation({
146
+ body: { playerId: 'player-uuid', initialMessage: 'Hi!' },
147
+ });
148
+ const messages = await Offers.listMessages({
149
+ path: { id: 'conversation-uuid' },
150
+ query: { page: 1, pageSize: 20 },
151
+ });
152
+ await Offers.sendMessage({
153
+ path: { id: 'conversation-uuid' },
154
+ body: { body: 'Looking forward to it!' },
155
+ });
156
+ await Offers.markConversationRead({ path: { id: 'conversation-uuid' } });
157
+
158
+ // Organizations
159
+ const org = await Organizations.getMyOrganization();
160
+ await Organizations.updateMyOrganization({ body: { name: 'FC Example' } });
161
+ await Organizations.registerClub({
162
+ body: { name: 'FC Example', email: 'admin@example.com' },
163
+ });
164
+
165
+ // Clubs (coach/admin club entries within an organization)
166
+ const clubs = await Clubs.getMyClubs();
167
+ const club = await Clubs.createMyClub({ body: { name: 'U19 Team' } });
168
+ await Clubs.updateMyClub({
169
+ path: { id: 'club-uuid' },
170
+ body: { name: 'U21 Team' },
171
+ });
172
+ await Clubs.deleteMyClub({ path: { id: 'club-uuid' } });
173
+
174
+ // Challenges
175
+ const challengeCatalog = await Challenges.getChallengesCatalog();
176
+ const myChallenges = await Challenges.getMyChallenges();
177
+
178
+ // Training
179
+ const grouped = await Training.getTrainingGrouped();
180
+ const trainingList = await Training.getTrainingList({
181
+ query: { categoryCode: 'fitness', page: 1, pageSize: 20 },
182
+ });
183
+ const trainingItem = await Training.getTrainingById({
184
+ path: { id: 'training-uuid' },
185
+ });
186
+
187
+ // Invitations (org admin invites members)
188
+ await Invitations.sendInvitation({
189
+ body: { email: 'coach@example.com', role: 'coach' },
190
+ });
191
+ const invitations = await Invitations.listInvitations();
192
+ await Invitations.resendInvitation({ path: { id: 'invitation-uuid' } });
193
+ await Invitations.deleteInvitation({ path: { id: 'invitation-uuid' } });
194
+ await Invitations.acceptInvitation(); // called after Supabase auth callback
195
+
196
+ // KYC — SmileID Enhanced Document Verification
197
+ //
198
+ // Two integration options:
199
+
200
+ // Option A — Smile Links (recommended for web)
201
+ // Backend returns a hosted SmileID URL; redirect the user to it.
202
+ // SmileID handles the full capture UI and fires the webhook when done.
203
+ const linkResult = await Kyc.startSmileLink({
204
+ body: {
205
+ country: 'gh', // stored on the verification record; does NOT filter the SmileID dropdown
206
+ channel: 'web',
207
+ returnUrl: 'https://yourapp.com/onboarding/kyc/callback',
208
+ },
209
+ });
210
+ // linkResult: { url, jobId, status, retriesRemaining }
211
+ // url is null when no redirect is needed (approved / blocked / processing).
212
+ if (linkResult.data.url) {
213
+ window.location.href = linkResult.data.url; // redirect user to SmileID
214
+ }
215
+ // The SmileID hosted page shows all countries configured in index.kyc_supported_id_types.
216
+ // The user selects their country and document type on that page.
217
+ // After the user returns to returnUrl, poll getKycStatus to confirm the result.
218
+ // markSubmittedKyc is NOT needed for Smile Links — SmileID fires the webhook directly.
219
+
220
+ // Option B — SDK widget (embedded, for mobile / advanced web)
221
+ const kycResult = await Kyc.startKyc({
222
+ body: { country: 'gh', channel: 'web' },
223
+ });
224
+ // kycResult: { token, partnerId, jobId, status, retriesRemaining }
225
+ // Pass token + partnerId to the SmileID web SDK widget to start document capture.
226
+ // After the SDK reports successful submission, call markSubmittedKyc with jobId.
227
+ await Kyc.markSubmittedKyc({ body: { jobId: kycResult.data.jobId! } });
228
+ // SmileID also calls POST /kyc/webhook under the configured API base/prefix
229
+ // (for staging: https://staging.globalscoutme.com/api/kyc/webhook).
230
+
231
+ const kycStatus = await Kyc.getKycStatus({
232
+ path: { userId: supabaseAuthUuid },
233
+ });
234
+ // kycStatus: { status, retryCount, retriesRemaining }
235
+ // status: 'pending' | 'capture_started' | 'processing' | 'approved' | 'rejected' | 'blocked'
236
+ // Older API clients may still see legacy 'in_progress', which maps to 'capture_started'.
237
+
238
+ // Subscriptions (Stripe recurring billing)
239
+ const plans = await Subscriptions.getSubscriptionPlans();
240
+ // Returns: { plans: [{ id, code, name, price, currency, billingInterval, trialDays, features, displayOrder }] }
241
+
242
+ const mySubscription = await Subscriptions.getMySubscription();
243
+ // Returns: { status, isActive, planId, planName, billingInterval,
244
+ // currentPeriodStart, currentPeriodEnd, cancelAtPeriodEnd, canceledAt, gracePeriodUntil }
245
+ // status: 'inactive' when the user has never subscribed
246
+
247
+ // Start a subscription — redirect the user to the returned URL
248
+ const checkout = await Subscriptions.createCheckout({
249
+ body: {
250
+ providerProductId: 'billing-provider-products-uuid', // pick from billing_provider_products table
251
+ successUrl: 'https://yourapp.com/subscription/success', // or a mobile deep-link
252
+ cancelUrl: 'https://yourapp.com/subscription/cancel',
253
+ },
254
+ });
255
+ // redirect user to checkout.url
256
+
257
+ // Open the Stripe Billing Portal (manage / cancel subscription)
258
+ const portal = await Subscriptions.createPortal({
259
+ body: { returnUrl: 'https://yourapp.com/account' },
260
+ });
261
+ // redirect user to portal.url
262
+
263
+ // Storage — get a signed upload URL, then PUT the file directly to Supabase Storage
264
+ const { uploadUrl, token, path, bucket, expiresIn } =
265
+ await Storage.createUploadUrl({
266
+ body: { bucket: 'avatars', contentType: 'image/jpeg', sizeBytes: 204800 },
267
+ });
268
+ await fetch(uploadUrl, {
269
+ method: 'PUT',
270
+ body: fileBlob,
271
+ headers: { 'Content-Type': 'image/jpeg' },
272
+ });
273
+ // persist `path` on the player record (e.g. patchMe with avatarPath: path)
274
+ ```
275
+
276
+ ## Updating auth token
277
+
278
+ Update the Bearer token after sign-in or token refresh:
279
+
280
+ ```ts
281
+ client.setConfig({
282
+ headers: {
283
+ Authorization: `Bearer ${newAccessToken}`,
284
+ },
285
+ });
286
+ ```
287
+
288
+ ## Versioning
289
+
290
+ This package is auto-generated from the backend OpenAPI spec. Version increments follow semver:
291
+
292
+ - **patch** — no API shape changes
293
+ - **minor** — new endpoints added
294
+ - **major** — breaking changes (renamed/removed endpoints or fields)
295
+
296
+ ## Package format
297
+
298
+ The published package ships compiled JavaScript (`dist/`) alongside the raw TypeScript source. `main` points to `dist/index.js` so all bundlers work without extra configuration.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { Achievements, Auth, Billing, Body, Challenges, Clubs, Cmj, Dashboard, Documents, GlobalScoutMeClient, Index, Invitations, Kyc, Measurements, Notifications, Offers, type Options, Organizations, Players, Profile, Storage, Subscriptions, Training, VideoLinks, VideoMetrics, Videos, } from './sdk.gen.js';
2
- export type { AchievementCatalogDto, AiReportClipDto, AiReportClipTargetDto, AiReportGsiAthleticSourceInputDto, AiReportGsiBodySourceInputDto, AiReportGsiComponentDto, AiReportGsiReasonDto, AiReportGsiSnapshotDto, AiReportGsiSourceInputsDto, AiReportGsiVideoSourceInputDto, AiReportImprovementAreaDto, AiReportMetaDto, AiReportPillarDetailDto, AiReportResultResponseDto, AiReportSubcategoryDto, AiReportVideoAttributeScoresDto, AiReportViewDto, AuthMeResponseDto, BillingEntitlementResponseDto, BillingManageActionDto, BillingPlanDto, BillingPlansResponseDto, BillingProductDto, BillingProductsResponseDto, BillingProviderProductDto, BodyMeasurementProfileDto, BodyMeasurementResponseDto, CancelKycRequestDto, CareerAchievementDto, ChallengeCatalogDto, CheckoutResultDto, ClientOptions, ClubResponseDto, CmjMeasurementProfileDto, CmjMeasurementResponseDto, ConversationDetailDto, ConversationItemDto, ConversationListResultDto, ConversationOrganizationDto, ConversationParticipantDto, CountryDto, CreateBodyMeasurementDto, CreateCheckoutDto, CreateClubDto, CreateConversationDto, CreateDocumentDto, CreateMeasurementPlayerSessionDto, CreatePortalDto, CreateUploadUrlDto, CreateVideoDto, CreateVideoLinkDto, DashboardResponseDto, DashboardStatsDto, DashboardVideoCardDto, DeactivatePushDeviceDto, DeleteApiClubsMeByIdData, DeleteApiClubsMeByIdErrors, DeleteApiClubsMeByIdResponse, DeleteApiClubsMeByIdResponses, DeleteApiDocumentsByIdData, DeleteApiDocumentsByIdErrors, DeleteApiDocumentsByIdResponse, DeleteApiDocumentsByIdResponses, DeleteApiInvitationsByIdData, DeleteApiInvitationsByIdErrors, DeleteApiInvitationsByIdResponse, DeleteApiInvitationsByIdResponses, DeleteApiNotificationsDevicesCurrentData, DeleteApiNotificationsDevicesCurrentResponse, DeleteApiNotificationsDevicesCurrentResponses, DeleteApiPlayersMeData, DeleteApiPlayersMeErrors, DeleteApiPlayersMeResponse, DeleteApiPlayersMeResponses, DeleteApiVideoLinksByIdData, DeleteApiVideoLinksByIdErrors, DeleteApiVideoLinksByIdResponse, DeleteApiVideoLinksByIdResponses, DeleteApiVideosByIdData, DeleteApiVideosByIdErrors, DeleteApiVideosByIdResponse, DeleteApiVideosByIdResponses, DivisionDto, DocumentResponseDto, GetApiAchievementsData, GetApiAchievementsMeData, GetApiAchievementsMeErrors, GetApiAchievementsMeResponse, GetApiAchievementsMeResponses, GetApiAchievementsResponse, GetApiAchievementsResponses, GetApiAuthMeData, GetApiAuthMeErrors, GetApiAuthMeResponse, GetApiAuthMeResponses, GetApiBillingMeData, GetApiBillingMeResponse, GetApiBillingMeResponses, GetApiBillingPlansData, GetApiBillingPlansResponse, GetApiBillingPlansResponses, GetApiBillingProductsData, GetApiBillingProductsResponse, GetApiBillingProductsResponses, GetApiBillingReportPurchasesByIdReportData, GetApiBillingReportPurchasesByIdReportResponse, GetApiBillingReportPurchasesByIdReportResponses, GetApiBillingReportPurchasesCurrentData, GetApiBillingReportPurchasesCurrentResponse, GetApiBillingReportPurchasesCurrentResponses, GetApiBillingReportPurchasesHistoryData, GetApiBillingReportPurchasesHistoryResponse, GetApiBillingReportPurchasesHistoryResponses, GetApiBodyMeasurementsMeData, GetApiBodyMeasurementsMeErrors, GetApiBodyMeasurementsMeResponse, GetApiBodyMeasurementsMeResponses, GetApiChallengesData, GetApiChallengesErrors, GetApiChallengesMeData, GetApiChallengesMeErrors, GetApiChallengesMeResponse, GetApiChallengesMeResponses, GetApiChallengesResponse, GetApiChallengesResponses, GetApiClubsMeData, GetApiClubsMeErrors, GetApiClubsMeResponse, GetApiClubsMeResponses, GetApiCmjMeasurementsMeData, GetApiCmjMeasurementsMeErrors, GetApiCmjMeasurementsMeResponse, GetApiCmjMeasurementsMeResponses, GetApiDashboardMeData, GetApiDashboardMeErrors, GetApiDashboardMeResponse, GetApiDashboardMeResponses, GetApiDashboardVideosByIdPlayUrlData, GetApiDashboardVideosByIdPlayUrlErrors, GetApiDashboardVideosByIdPlayUrlResponse, GetApiDashboardVideosByIdPlayUrlResponses, GetApiDocumentsMeData, GetApiDocumentsMeErrors, GetApiDocumentsMeResponse, GetApiDocumentsMeResponses, GetApiIndexByTableNameData, GetApiIndexByTableNameErrors, GetApiIndexByTableNameResponse, GetApiIndexByTableNameResponses, GetApiIndexCountriesData, GetApiIndexCountriesErrors, GetApiIndexCountriesResponse, GetApiIndexCountriesResponses, GetApiInvitationsData, GetApiInvitationsResponse, GetApiInvitationsResponses, GetApiKycStatusByUserIdData, GetApiKycStatusByUserIdErrors, GetApiKycStatusByUserIdResponse, GetApiKycStatusByUserIdResponses, GetApiMeasurementsProfileMeData, GetApiMeasurementsProfileMeErrors, GetApiMeasurementsProfileMeResponse, GetApiMeasurementsProfileMeResponses, GetApiNotificationsPreferencesData, GetApiNotificationsPreferencesResponse, GetApiNotificationsPreferencesResponses, GetApiOffersConversationsByIdMessagesData, GetApiOffersConversationsByIdMessagesErrors, GetApiOffersConversationsByIdMessagesResponse, GetApiOffersConversationsByIdMessagesResponses, GetApiOffersConversationsData, GetApiOffersConversationsErrors, GetApiOffersConversationsResponse, GetApiOffersConversationsResponses, GetApiOrganizationsMeData, GetApiOrganizationsMeErrors, GetApiOrganizationsMeResponse, GetApiOrganizationsMeResponses, GetApiPlayersByIdData, GetApiPlayersByIdErrors, GetApiPlayersByIdMeasurementsData, GetApiPlayersByIdMeasurementsErrors, GetApiPlayersByIdMeasurementsResponse, GetApiPlayersByIdMeasurementsResponses, GetApiPlayersByIdReportData, GetApiPlayersByIdReportErrors, GetApiPlayersByIdReportResponse, GetApiPlayersByIdReportResponses, GetApiPlayersByIdResponse, GetApiPlayersByIdResponses, GetApiPlayersByIdVideoMetricsData, GetApiPlayersByIdVideoMetricsErrors, GetApiPlayersByIdVideoMetricsResponse, GetApiPlayersByIdVideoMetricsResponses, GetApiPlayersMeDashboardData, GetApiPlayersMeDashboardErrors, GetApiPlayersMeDashboardResponse, GetApiPlayersMeDashboardResponses, GetApiPlayersMeData, GetApiPlayersMeErrors, GetApiPlayersMeResponse, GetApiPlayersMeResponses, GetApiProfileMeData, GetApiProfileMeErrors, GetApiProfileMeResponse, GetApiProfileMeResponses, GetApiSubscriptionsMeData, GetApiSubscriptionsMeResponse, GetApiSubscriptionsMeResponses, GetApiSubscriptionsPlansData, GetApiSubscriptionsPlansResponse, GetApiSubscriptionsPlansResponses, GetApiTrainingByIdData, GetApiTrainingByIdErrors, GetApiTrainingByIdResponse, GetApiTrainingByIdResponses, GetApiTrainingData, GetApiTrainingErrors, GetApiTrainingGroupedData, GetApiTrainingGroupedErrors, GetApiTrainingGroupedResponse, GetApiTrainingGroupedResponses, GetApiTrainingResponse, GetApiTrainingResponses, GetApiVideoLinksMeData, GetApiVideoLinksMeErrors, GetApiVideoLinksMeResponse, GetApiVideoLinksMeResponses, GetApiVideoMetricsMeData, GetApiVideoMetricsMeErrors, GetApiVideoMetricsMeResponse, GetApiVideoMetricsMeResponses, GetApiVideosByIdPlayUrlData, GetApiVideosByIdPlayUrlErrors, GetApiVideosByIdPlayUrlResponse, GetApiVideosByIdPlayUrlResponses, GetApiVideosMeData, GetApiVideosMeErrors, GetApiVideosMeResponse, GetApiVideosMeResponses, HeartbeatDto, HeartbeatResponseDto, IndexItemDto, InvitationResponseDto, KycStatusDto, KycWebhookDto, MarkSubmittedKycRequestDto, MeasurementProfileResponseDto, MeasurementSessionDto, MeasurementSessionMetricsDto, MeasurementTagEvaluationDto, MessageItemDto, MessageListResultDto, MessageSenderDto, MyChallengeDto, MySubscriptionDto, NotificationPreferencesDto, OkDto, OrganizationResponseDto, PaginatedTrainingContentDto, PatchApiClubsMeByIdData, PatchApiClubsMeByIdErrors, PatchApiClubsMeByIdResponse, PatchApiClubsMeByIdResponses, PatchApiNotificationsPreferencesData, PatchApiNotificationsPreferencesResponse, PatchApiNotificationsPreferencesResponses, PatchApiOffersConversationsByIdReadData, PatchApiOffersConversationsByIdReadErrors, PatchApiOffersConversationsByIdReadResponses, PatchApiPlayersMeData, PatchApiPlayersMeErrors, PatchApiPlayersMeResponse, PatchApiPlayersMeResponses, PlansListDto, PlayerAchievementDto, PlayerByIdDto, PlayerClubDto, PlayerReportResponseDto, PlayerReportViewDto, PlayerResponseDto, PlayerSearchItemDto, PlayerSearchRequestDto, PlayerSearchResultDto, PlayerVideoDto, PlayUrlResponseDto, PortalResultDto, PostApiBillingAccessCodesRedeemData, PostApiBillingAccessCodesRedeemResponse, PostApiBillingAccessCodesRedeemResponses, PostApiBillingAppleSyncPurchaseData, PostApiBillingAppleSyncPurchaseResponses, PostApiBillingGoogleSyncPurchaseData, PostApiBillingGoogleSyncPurchaseResponses, PostApiBillingReportPurchasesByIdStartGenerationData, PostApiBillingReportPurchasesByIdStartGenerationResponse, PostApiBillingReportPurchasesByIdStartGenerationResponses, PostApiBillingReportPurchasesPlayerCandidatesData, PostApiBillingReportPurchasesPlayerCandidatesResponse, PostApiBillingReportPurchasesPlayerCandidatesResponses, PostApiBillingStripeCheckoutSessionData, PostApiBillingStripeCheckoutSessionResponses, PostApiBillingStripePortalSessionData, PostApiBillingStripePortalSessionResponses, PostApiBodyMeasurementsData, PostApiBodyMeasurementsErrors, PostApiBodyMeasurementsResponse, PostApiBodyMeasurementsResponses, PostApiClubsMeData, PostApiClubsMeErrors, PostApiClubsMeResponse, PostApiClubsMeResponses, PostApiDocumentsData, PostApiDocumentsErrors, PostApiDocumentsResponse, PostApiDocumentsResponses, PostApiInvitationsAcceptData, PostApiInvitationsAcceptResponse, PostApiInvitationsAcceptResponses, PostApiInvitationsByIdResendData, PostApiInvitationsByIdResendErrors, PostApiInvitationsByIdResendResponse, PostApiInvitationsByIdResendResponses, PostApiInvitationsData, PostApiInvitationsErrors, PostApiInvitationsResponse, PostApiInvitationsResponses, PostApiKycCancelData, PostApiKycCancelErrors, PostApiKycCancelResponse, PostApiKycCancelResponses, PostApiKycMarkSubmittedData, PostApiKycMarkSubmittedErrors, PostApiKycMarkSubmittedResponse, PostApiKycMarkSubmittedResponses, PostApiKycSmileLinkData, PostApiKycSmileLinkErrors, PostApiKycSmileLinkResponse, PostApiKycSmileLinkResponses, PostApiKycStartData, PostApiKycStartErrors, PostApiKycStartResponse, PostApiKycStartResponses, PostApiKycWebhookData, PostApiKycWebhookErrors, PostApiKycWebhookResponses, PostApiMeasurementsPlayerSessionMeData, PostApiMeasurementsPlayerSessionMeErrors, PostApiMeasurementsPlayerSessionMeResponse, PostApiMeasurementsPlayerSessionMeResponses, PostApiNotificationsDevicesData, PostApiNotificationsDevicesResponse, PostApiNotificationsDevicesResponses, PostApiOffersConversationsByIdMessagesData, PostApiOffersConversationsByIdMessagesErrors, PostApiOffersConversationsByIdMessagesResponse, PostApiOffersConversationsByIdMessagesResponses, PostApiOffersConversationsData, PostApiOffersConversationsErrors, PostApiOffersConversationsResponse, PostApiOffersConversationsResponses, PostApiOrganizationsRegisterAgentData, PostApiOrganizationsRegisterAgentErrors, PostApiOrganizationsRegisterAgentResponse, PostApiOrganizationsRegisterAgentResponses, PostApiOrganizationsRegisterClubData, PostApiOrganizationsRegisterClubErrors, PostApiOrganizationsRegisterClubResponse, PostApiOrganizationsRegisterClubResponses, PostApiPlayersMeHeartbeatData, PostApiPlayersMeHeartbeatErrors, PostApiPlayersMeHeartbeatResponse, PostApiPlayersMeHeartbeatResponses, PostApiPlayersSearchData, PostApiPlayersSearchErrors, PostApiPlayersSearchResponse, PostApiPlayersSearchResponses, PostApiStorageUploadUrlData, PostApiStorageUploadUrlErrors, PostApiStorageUploadUrlResponse, PostApiStorageUploadUrlResponses, PostApiSubscriptionsCheckoutData, PostApiSubscriptionsCheckoutErrors, PostApiSubscriptionsCheckoutResponse, PostApiSubscriptionsCheckoutResponses, PostApiSubscriptionsPortalData, PostApiSubscriptionsPortalErrors, PostApiSubscriptionsPortalResponse, PostApiSubscriptionsPortalResponses, PostApiSubscriptionsWebhookData, PostApiSubscriptionsWebhookErrors, PostApiSubscriptionsWebhookResponses, PostApiVideoLinksData, PostApiVideoLinksErrors, PostApiVideoLinksResponse, PostApiVideoLinksResponses, PostApiVideosData, PostApiVideosErrors, PostApiVideosResponse, PostApiVideosResponses, PreviousClubDto, ProfileResponseDto, ProviderCheckoutRequestDto, PushDeviceRegistrationResultDto, PutApiOrganizationsMeData, PutApiOrganizationsMeErrors, PutApiOrganizationsMeResponse, PutApiOrganizationsMeResponses, PutApiProfileMeData, PutApiProfileMeErrors, PutApiProfileMeResponse, PutApiProfileMeResponses, RedeemAccessCodeDto, RegisterAgentDto, RegisterAgentResponseDto, RegisterClubDto, RegisterClubResponseDto, RegisterPushDeviceDto, ReportGenerationStartResponseDto, ReportPlayerCandidateBboxDto, ReportPlayerCandidateDto, ReportPlayerCandidatesRequestDto, ReportPlayerCandidatesResponseDto, ReportPlayerCandidateTargetDto, ReportPrerequisiteDto, ReportPurchaseDto, ReportPurchaseHistoryItemDto, ReportPurchaseHistoryResponseDto, ReportPurchaseStatusResponseDto, ReportVideoCandidatesDto, ScoutDashboardResponseDto, SendInvitationRequestDto, SendMessageDto, SmileLinkRequestDto, SmileLinkResponseDto, StartKycRequestDto, StartKycResponseDto, StartReportGenerationClipDto, StartReportGenerationRequestDto, StorePurchaseSyncRequestDto, SubscriptionPlanDto, TrainingCategoryGroupDto, TrainingContentDetailDto, TrainingContentListItemDto, UpdateClubDto, UpdateNotificationPreferencesDto, UpdateOrganizationDto, UpdatePlayerDto, UpdateProfileDto, UploadUrlResponseDto, UserAchievementResponseDto, VideoLinkResponseDto, VideoMetricsMeResponseDto, VideoMetricsPhysicalMetricsDto, VideoResponseDto, WatchingOrgDto, WebhookPartnerParamsDto, } from './types.gen.js';
2
+ export type { AchievementCatalogDto, AiReportClipDto, AiReportClipTargetDto, AiReportGsiBodySourceInputDto, AiReportGsiComponentDto, AiReportGsiJumpSourceInputDto, AiReportGsiMeasurementsSourceInputsDto, AiReportGsiReasonDto, AiReportGsiRepairMetadataDto, AiReportGsiSnapshotDto, AiReportGsiSourceInputsDto, AiReportGsiSpeedSourceInputDto, AiReportGsiSubcomponentDto, AiReportGsiVideoSourceInputDto, AiReportImprovementAreaDto, AiReportMetaDto, AiReportPillarDetailDto, AiReportResultResponseDto, AiReportSubcategoryDto, AiReportVideoAttributeScoresDto, AiReportViewDto, AuthMeResponseDto, BillingEntitlementResponseDto, BillingManageActionDto, BillingPlanDto, BillingPlansResponseDto, BillingProductDto, BillingProductsResponseDto, BillingProviderProductDto, BodyMeasurementProfileDto, BodyMeasurementResponseDto, CancelKycRequestDto, CareerAchievementDto, ChallengeCatalogDto, CheckoutResultDto, ClientOptions, ClubResponseDto, CmjMeasurementProfileDto, CmjMeasurementResponseDto, ConversationDetailDto, ConversationItemDto, ConversationListResultDto, ConversationOrganizationDto, ConversationParticipantDto, CountryDto, CreateBodyMeasurementDto, CreateCheckoutDto, CreateClubDto, CreateConversationDto, CreateDocumentDto, CreateMeasurementPlayerSessionDto, CreatePortalDto, CreateUploadUrlDto, CreateVideoDto, CreateVideoLinkDto, DashboardResponseDto, DashboardStatsDto, DashboardVideoCardDto, DeactivatePushDeviceDto, DeleteApiClubsMeByIdData, DeleteApiClubsMeByIdErrors, DeleteApiClubsMeByIdResponse, DeleteApiClubsMeByIdResponses, DeleteApiDocumentsByIdData, DeleteApiDocumentsByIdErrors, DeleteApiDocumentsByIdResponse, DeleteApiDocumentsByIdResponses, DeleteApiInvitationsByIdData, DeleteApiInvitationsByIdErrors, DeleteApiInvitationsByIdResponse, DeleteApiInvitationsByIdResponses, DeleteApiNotificationsDevicesCurrentData, DeleteApiNotificationsDevicesCurrentResponse, DeleteApiNotificationsDevicesCurrentResponses, DeleteApiPlayersMeData, DeleteApiPlayersMeErrors, DeleteApiPlayersMeResponse, DeleteApiPlayersMeResponses, DeleteApiVideoLinksByIdData, DeleteApiVideoLinksByIdErrors, DeleteApiVideoLinksByIdResponse, DeleteApiVideoLinksByIdResponses, DeleteApiVideosByIdData, DeleteApiVideosByIdErrors, DeleteApiVideosByIdResponse, DeleteApiVideosByIdResponses, DivisionDto, DocumentResponseDto, GetApiAchievementsData, GetApiAchievementsMeData, GetApiAchievementsMeErrors, GetApiAchievementsMeResponse, GetApiAchievementsMeResponses, GetApiAchievementsResponse, GetApiAchievementsResponses, GetApiAuthMeData, GetApiAuthMeErrors, GetApiAuthMeResponse, GetApiAuthMeResponses, GetApiBillingMeData, GetApiBillingMeResponse, GetApiBillingMeResponses, GetApiBillingPlansData, GetApiBillingPlansResponse, GetApiBillingPlansResponses, GetApiBillingProductsData, GetApiBillingProductsResponse, GetApiBillingProductsResponses, GetApiBillingReportPurchasesByIdReportData, GetApiBillingReportPurchasesByIdReportResponse, GetApiBillingReportPurchasesByIdReportResponses, GetApiBillingReportPurchasesCurrentData, GetApiBillingReportPurchasesCurrentResponse, GetApiBillingReportPurchasesCurrentResponses, GetApiBillingReportPurchasesHistoryData, GetApiBillingReportPurchasesHistoryResponse, GetApiBillingReportPurchasesHistoryResponses, GetApiBodyMeasurementsMeData, GetApiBodyMeasurementsMeErrors, GetApiBodyMeasurementsMeResponse, GetApiBodyMeasurementsMeResponses, GetApiChallengesData, GetApiChallengesErrors, GetApiChallengesMeData, GetApiChallengesMeErrors, GetApiChallengesMeResponse, GetApiChallengesMeResponses, GetApiChallengesResponse, GetApiChallengesResponses, GetApiClubsMeData, GetApiClubsMeErrors, GetApiClubsMeResponse, GetApiClubsMeResponses, GetApiCmjMeasurementsMeData, GetApiCmjMeasurementsMeErrors, GetApiCmjMeasurementsMeResponse, GetApiCmjMeasurementsMeResponses, GetApiDashboardMeData, GetApiDashboardMeErrors, GetApiDashboardMeResponse, GetApiDashboardMeResponses, GetApiDashboardVideosByIdPlayUrlData, GetApiDashboardVideosByIdPlayUrlErrors, GetApiDashboardVideosByIdPlayUrlResponse, GetApiDashboardVideosByIdPlayUrlResponses, GetApiDocumentsMeData, GetApiDocumentsMeErrors, GetApiDocumentsMeResponse, GetApiDocumentsMeResponses, GetApiIndexByTableNameData, GetApiIndexByTableNameErrors, GetApiIndexByTableNameResponse, GetApiIndexByTableNameResponses, GetApiIndexCountriesData, GetApiIndexCountriesErrors, GetApiIndexCountriesResponse, GetApiIndexCountriesResponses, GetApiInvitationsData, GetApiInvitationsResponse, GetApiInvitationsResponses, GetApiKycStatusByUserIdData, GetApiKycStatusByUserIdErrors, GetApiKycStatusByUserIdResponse, GetApiKycStatusByUserIdResponses, GetApiMeasurementsProfileMeData, GetApiMeasurementsProfileMeErrors, GetApiMeasurementsProfileMeResponse, GetApiMeasurementsProfileMeResponses, GetApiNotificationsPreferencesData, GetApiNotificationsPreferencesResponse, GetApiNotificationsPreferencesResponses, GetApiOffersConversationsByIdMessagesData, GetApiOffersConversationsByIdMessagesErrors, GetApiOffersConversationsByIdMessagesResponse, GetApiOffersConversationsByIdMessagesResponses, GetApiOffersConversationsData, GetApiOffersConversationsErrors, GetApiOffersConversationsResponse, GetApiOffersConversationsResponses, GetApiOrganizationsMeData, GetApiOrganizationsMeErrors, GetApiOrganizationsMeResponse, GetApiOrganizationsMeResponses, GetApiPlayersByIdData, GetApiPlayersByIdErrors, GetApiPlayersByIdMeasurementsData, GetApiPlayersByIdMeasurementsErrors, GetApiPlayersByIdMeasurementsResponse, GetApiPlayersByIdMeasurementsResponses, GetApiPlayersByIdReportData, GetApiPlayersByIdReportErrors, GetApiPlayersByIdReportResponse, GetApiPlayersByIdReportResponses, GetApiPlayersByIdResponse, GetApiPlayersByIdResponses, GetApiPlayersByIdVideoMetricsData, GetApiPlayersByIdVideoMetricsErrors, GetApiPlayersByIdVideoMetricsResponse, GetApiPlayersByIdVideoMetricsResponses, GetApiPlayersMeDashboardData, GetApiPlayersMeDashboardErrors, GetApiPlayersMeDashboardResponse, GetApiPlayersMeDashboardResponses, GetApiPlayersMeData, GetApiPlayersMeErrors, GetApiPlayersMeResponse, GetApiPlayersMeResponses, GetApiProfileMeData, GetApiProfileMeErrors, GetApiProfileMeResponse, GetApiProfileMeResponses, GetApiSubscriptionsMeData, GetApiSubscriptionsMeResponse, GetApiSubscriptionsMeResponses, GetApiSubscriptionsPlansData, GetApiSubscriptionsPlansResponse, GetApiSubscriptionsPlansResponses, GetApiTrainingByIdData, GetApiTrainingByIdErrors, GetApiTrainingByIdResponse, GetApiTrainingByIdResponses, GetApiTrainingData, GetApiTrainingErrors, GetApiTrainingGroupedData, GetApiTrainingGroupedErrors, GetApiTrainingGroupedResponse, GetApiTrainingGroupedResponses, GetApiTrainingResponse, GetApiTrainingResponses, GetApiVideoLinksMeData, GetApiVideoLinksMeErrors, GetApiVideoLinksMeResponse, GetApiVideoLinksMeResponses, GetApiVideoMetricsMeData, GetApiVideoMetricsMeErrors, GetApiVideoMetricsMeResponse, GetApiVideoMetricsMeResponses, GetApiVideosByIdPlayUrlData, GetApiVideosByIdPlayUrlErrors, GetApiVideosByIdPlayUrlResponse, GetApiVideosByIdPlayUrlResponses, GetApiVideosMeData, GetApiVideosMeErrors, GetApiVideosMeResponse, GetApiVideosMeResponses, HeartbeatDto, HeartbeatResponseDto, IndexItemDto, InvitationResponseDto, KycStatusDto, KycWebhookDto, MarkSubmittedKycRequestDto, MeasurementProfileResponseDto, MeasurementSessionDto, MeasurementSessionMetricsDto, MeasurementTagEvaluationDto, MessageItemDto, MessageListResultDto, MessageSenderDto, MyChallengeDto, MySubscriptionDto, NotificationPreferencesDto, OkDto, OrganizationResponseDto, PaginatedTrainingContentDto, PatchApiClubsMeByIdData, PatchApiClubsMeByIdErrors, PatchApiClubsMeByIdResponse, PatchApiClubsMeByIdResponses, PatchApiNotificationsPreferencesData, PatchApiNotificationsPreferencesResponse, PatchApiNotificationsPreferencesResponses, PatchApiOffersConversationsByIdReadData, PatchApiOffersConversationsByIdReadErrors, PatchApiOffersConversationsByIdReadResponses, PatchApiPlayersMeData, PatchApiPlayersMeErrors, PatchApiPlayersMeResponse, PatchApiPlayersMeResponses, PlansListDto, PlayerAchievementDto, PlayerByIdDto, PlayerClubDto, PlayerReportResponseDto, PlayerReportViewDto, PlayerResponseDto, PlayerSearchItemDto, PlayerSearchRequestDto, PlayerSearchResultDto, PlayerVideoDto, PlayUrlResponseDto, PortalResultDto, PostApiBillingAccessCodesRedeemData, PostApiBillingAccessCodesRedeemResponse, PostApiBillingAccessCodesRedeemResponses, PostApiBillingAppleSyncPurchaseData, PostApiBillingAppleSyncPurchaseResponses, PostApiBillingGoogleSyncPurchaseData, PostApiBillingGoogleSyncPurchaseResponses, PostApiBillingReportPurchasesByIdStartGenerationData, PostApiBillingReportPurchasesByIdStartGenerationResponse, PostApiBillingReportPurchasesByIdStartGenerationResponses, PostApiBillingReportPurchasesPlayerCandidatesData, PostApiBillingReportPurchasesPlayerCandidatesResponse, PostApiBillingReportPurchasesPlayerCandidatesResponses, PostApiBillingStripeCheckoutSessionData, PostApiBillingStripeCheckoutSessionResponses, PostApiBillingStripePortalSessionData, PostApiBillingStripePortalSessionResponses, PostApiBodyMeasurementsData, PostApiBodyMeasurementsErrors, PostApiBodyMeasurementsResponse, PostApiBodyMeasurementsResponses, PostApiClubsMeData, PostApiClubsMeErrors, PostApiClubsMeResponse, PostApiClubsMeResponses, PostApiDocumentsData, PostApiDocumentsErrors, PostApiDocumentsResponse, PostApiDocumentsResponses, PostApiInvitationsAcceptData, PostApiInvitationsAcceptResponse, PostApiInvitationsAcceptResponses, PostApiInvitationsByIdResendData, PostApiInvitationsByIdResendErrors, PostApiInvitationsByIdResendResponse, PostApiInvitationsByIdResendResponses, PostApiInvitationsData, PostApiInvitationsErrors, PostApiInvitationsResponse, PostApiInvitationsResponses, PostApiKycCancelData, PostApiKycCancelErrors, PostApiKycCancelResponse, PostApiKycCancelResponses, PostApiKycMarkSubmittedData, PostApiKycMarkSubmittedErrors, PostApiKycMarkSubmittedResponse, PostApiKycMarkSubmittedResponses, PostApiKycSmileLinkData, PostApiKycSmileLinkErrors, PostApiKycSmileLinkResponse, PostApiKycSmileLinkResponses, PostApiKycStartData, PostApiKycStartErrors, PostApiKycStartResponse, PostApiKycStartResponses, PostApiKycWebhookData, PostApiKycWebhookErrors, PostApiKycWebhookResponses, PostApiMeasurementsPlayerSessionMeData, PostApiMeasurementsPlayerSessionMeErrors, PostApiMeasurementsPlayerSessionMeResponse, PostApiMeasurementsPlayerSessionMeResponses, PostApiNotificationsDevicesData, PostApiNotificationsDevicesResponse, PostApiNotificationsDevicesResponses, PostApiOffersConversationsByIdMessagesData, PostApiOffersConversationsByIdMessagesErrors, PostApiOffersConversationsByIdMessagesResponse, PostApiOffersConversationsByIdMessagesResponses, PostApiOffersConversationsData, PostApiOffersConversationsErrors, PostApiOffersConversationsResponse, PostApiOffersConversationsResponses, PostApiOrganizationsRegisterAgentData, PostApiOrganizationsRegisterAgentErrors, PostApiOrganizationsRegisterAgentResponse, PostApiOrganizationsRegisterAgentResponses, PostApiOrganizationsRegisterClubData, PostApiOrganizationsRegisterClubErrors, PostApiOrganizationsRegisterClubResponse, PostApiOrganizationsRegisterClubResponses, PostApiPlayersMeHeartbeatData, PostApiPlayersMeHeartbeatErrors, PostApiPlayersMeHeartbeatResponse, PostApiPlayersMeHeartbeatResponses, PostApiPlayersSearchData, PostApiPlayersSearchErrors, PostApiPlayersSearchResponse, PostApiPlayersSearchResponses, PostApiStorageUploadUrlData, PostApiStorageUploadUrlErrors, PostApiStorageUploadUrlResponse, PostApiStorageUploadUrlResponses, PostApiSubscriptionsCheckoutData, PostApiSubscriptionsCheckoutErrors, PostApiSubscriptionsCheckoutResponse, PostApiSubscriptionsCheckoutResponses, PostApiSubscriptionsPortalData, PostApiSubscriptionsPortalErrors, PostApiSubscriptionsPortalResponse, PostApiSubscriptionsPortalResponses, PostApiSubscriptionsWebhookData, PostApiSubscriptionsWebhookErrors, PostApiSubscriptionsWebhookResponses, PostApiVideoLinksData, PostApiVideoLinksErrors, PostApiVideoLinksResponse, PostApiVideoLinksResponses, PostApiVideosData, PostApiVideosErrors, PostApiVideosResponse, PostApiVideosResponses, PreviousClubDto, ProfileResponseDto, ProviderCheckoutRequestDto, PushDeviceRegistrationResultDto, PutApiOrganizationsMeData, PutApiOrganizationsMeErrors, PutApiOrganizationsMeResponse, PutApiOrganizationsMeResponses, PutApiProfileMeData, PutApiProfileMeErrors, PutApiProfileMeResponse, PutApiProfileMeResponses, RedeemAccessCodeDto, RegisterAgentDto, RegisterAgentResponseDto, RegisterClubDto, RegisterClubResponseDto, RegisterPushDeviceDto, ReportGenerationStartResponseDto, ReportPlayerCandidateBboxDto, ReportPlayerCandidateDto, ReportPlayerCandidatesRequestDto, ReportPlayerCandidatesResponseDto, ReportPlayerCandidateTargetDto, ReportPrerequisiteDto, ReportPurchaseDto, ReportPurchaseHistoryItemDto, ReportPurchaseHistoryResponseDto, ReportPurchaseStatusResponseDto, ReportVideoCandidatesDto, ScoutDashboardResponseDto, SendInvitationRequestDto, SendMessageDto, SmileLinkRequestDto, SmileLinkResponseDto, StartKycRequestDto, StartKycResponseDto, StartReportGenerationClipDto, StartReportGenerationRequestDto, StorePurchaseSyncRequestDto, SubscriptionPlanDto, TrainingCategoryGroupDto, TrainingContentDetailDto, TrainingContentListItemDto, UpdateClubDto, UpdateNotificationPreferencesDto, UpdateOrganizationDto, UpdatePlayerDto, UpdateProfileDto, UploadUrlResponseDto, UserAchievementResponseDto, VideoLinkResponseDto, VideoMetricsMeResponseDto, VideoMetricsPhysicalMetricsDto, VideoResponseDto, WatchingOrgDto, WebhookPartnerParamsDto, } from './types.gen.js';
3
3
  export { client, type CreateClientConfig } from './client.gen.js';
4
4
  export type { GetApiOffersConversationsData as GetOffersConversationsData } from './types.gen.js';
@@ -133,17 +133,21 @@ export type DashboardResponseDto = {
133
133
  */
134
134
  gsiVideoScore?: number | null;
135
135
  /**
136
- * GSI athletic subscore, 0-10
136
+ * GSI measurements subscore, 0-10
137
137
  */
138
- gsiAthleticScore?: number | null;
138
+ gsiMeasurementsScore?: number | null;
139
139
  /**
140
- * GSI body-fit subscore, 0-10
140
+ * GSI speed subscore, 0-10
141
141
  */
142
- gsiBodyScore?: number | null;
142
+ gsiSpeedScore?: number | null;
143
143
  /**
144
144
  * Number of score components included in the current GSI
145
145
  */
146
146
  gsiDataCompleteness?: number | null;
147
+ /**
148
+ * Current GSI scoring revision
149
+ */
150
+ gsiScoringRevision?: string | null;
147
151
  /**
148
152
  * When the GSI profile score was last computed
149
153
  */
@@ -684,13 +688,30 @@ export type ReportPurchaseStatusResponseDto = {
684
688
  latestFulfilledPurchase?: ReportPurchaseDto | null;
685
689
  prerequisites: Array<ReportPrerequisiteDto>;
686
690
  };
691
+ export type AiReportGsiSubcomponentDto = {
692
+ key: 'body_fit' | 'jump';
693
+ label: string;
694
+ score: number | null;
695
+ baseWeight: number;
696
+ effectiveWeight: number;
697
+ weight: number;
698
+ included: boolean;
699
+ status: 'included' | 'missing';
700
+ missingReason?: 'no_body_measurements' | 'not_enough_body_fields' | 'no_cmj' | 'no_speed' | 'invalid_source';
701
+ summary: string;
702
+ };
687
703
  export type AiReportGsiComponentDto = {
688
- key: 'video' | 'athletic' | 'body';
704
+ key: 'video' | 'measurements' | 'speed';
689
705
  label: string;
690
706
  score: number | null;
707
+ baseWeight: number;
708
+ effectiveWeight: number;
691
709
  weight: number;
692
710
  included: boolean;
711
+ status: 'included' | 'missing';
712
+ missingReason?: 'no_body_measurements' | 'not_enough_body_fields' | 'no_cmj' | 'no_speed' | 'invalid_source';
693
713
  summary: string;
714
+ subcomponents?: Array<AiReportGsiSubcomponentDto>;
694
715
  };
695
716
  export type AiReportVideoAttributeScoresDto = {
696
717
  technical: number;
@@ -703,39 +724,68 @@ export type AiReportGsiVideoSourceInputDto = {
703
724
  analysisId: string;
704
725
  createdAt: string;
705
726
  };
706
- export type AiReportGsiAthleticSourceInputDto = {
707
- cmjSessionId: string | null;
708
- cmjCreatedAt: string | null;
709
- sprintResultId: string | null;
710
- sprintCreatedAt: string | null;
711
- verticalJumpCm: number | null;
712
- maxSpeedKmh: number | null;
713
- };
714
727
  export type AiReportGsiBodySourceInputDto = {
715
- sessionId: string;
728
+ bodyMeasurementId: string;
729
+ sessionId: string | null;
730
+ sessionCreatedAt: string | null;
716
731
  createdAt: string;
717
- fitScore: number;
732
+ validFieldCount: number;
733
+ measurementCompletenessScore: number;
734
+ positionFitScore: number | null;
735
+ positionFitContributionScore: number;
736
+ positionFitStatus: 'available' | 'missing' | 'suppressed';
737
+ bodyFitScore: number;
738
+ };
739
+ export type AiReportGsiJumpSourceInputDto = {
740
+ jumpMeasurementId: string;
741
+ cmjSessionId: string;
742
+ cmjCreatedAt: string;
743
+ verticalJumpCm: number;
744
+ jumpScore: number;
745
+ };
746
+ export type AiReportGsiMeasurementsSourceInputsDto = {
747
+ body: AiReportGsiBodySourceInputDto | null;
748
+ jump: AiReportGsiJumpSourceInputDto | null;
749
+ };
750
+ export type AiReportGsiSpeedSourceInputDto = {
751
+ sprintResultId: string;
752
+ sprintCreatedAt: string;
753
+ maxSpeedKmh: number;
754
+ speedScore: number;
718
755
  };
719
756
  export type AiReportGsiSourceInputsDto = {
720
757
  video: AiReportGsiVideoSourceInputDto;
721
- athletic: AiReportGsiAthleticSourceInputDto | null;
722
- body: AiReportGsiBodySourceInputDto | null;
758
+ measurements: AiReportGsiMeasurementsSourceInputsDto;
759
+ speed: AiReportGsiSpeedSourceInputDto | null;
723
760
  };
724
761
  export type AiReportGsiReasonDto = {
725
762
  title: string;
726
763
  detail: string;
727
- source: 'video' | 'athletic' | 'body' | 'report';
764
+ source: 'video' | 'measurements' | 'body_fit' | 'jump' | 'speed' | 'report';
765
+ };
766
+ export type AiReportGsiRepairMetadataDto = {
767
+ version: string | null;
768
+ scoringRevision: string | null;
769
+ score: number | null;
770
+ computedAt: string | null;
771
+ repairedAt: string;
772
+ reason: 'missing_revision' | 'old_revision' | 'malformed_snapshot';
728
773
  };
729
774
  export type AiReportGsiSnapshotDto = {
730
775
  version: 'gsi-v1';
776
+ scoringRevision: 'gsi-v1.1-flow-components';
731
777
  score: number;
732
778
  computedAt: string;
733
779
  reportReferenceId: string;
780
+ reportCutoffAt: string;
734
781
  dataCompleteness: number;
782
+ dataCompletenessTotal: number;
783
+ inputCoverage: number;
735
784
  components: Array<AiReportGsiComponentDto>;
736
785
  videoAttributes: AiReportVideoAttributeScoresDto | null;
737
786
  sourceInputs: AiReportGsiSourceInputsDto;
738
787
  improvementReasons: Array<AiReportGsiReasonDto>;
788
+ repairedFrom?: AiReportGsiRepairMetadataDto;
739
789
  };
740
790
  export type ReportPurchaseHistoryItemDto = {
741
791
  id: string;
package/index.ts CHANGED
@@ -32,12 +32,16 @@ export type {
32
32
  AchievementCatalogDto,
33
33
  AiReportClipDto,
34
34
  AiReportClipTargetDto,
35
- AiReportGsiAthleticSourceInputDto,
36
35
  AiReportGsiBodySourceInputDto,
37
36
  AiReportGsiComponentDto,
37
+ AiReportGsiJumpSourceInputDto,
38
+ AiReportGsiMeasurementsSourceInputsDto,
38
39
  AiReportGsiReasonDto,
40
+ AiReportGsiRepairMetadataDto,
39
41
  AiReportGsiSnapshotDto,
40
42
  AiReportGsiSourceInputsDto,
43
+ AiReportGsiSpeedSourceInputDto,
44
+ AiReportGsiSubcomponentDto,
41
45
  AiReportGsiVideoSourceInputDto,
42
46
  AiReportImprovementAreaDto,
43
47
  AiReportMetaDto,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@globalscoutme/api-client",
3
- "version": "1.1.9",
3
+ "version": "1.1.10",
4
4
  "description": "GlobalScoutMe API client (generated)",
5
5
  "author": "GlobalScoutMe",
6
6
  "license": "UNLICENSED",
@@ -15,7 +15,7 @@
15
15
  "default": "./dist/index.js"
16
16
  }
17
17
  },
18
- "keywords": ["api-client", "typescript"],
18
+ "keywords": ["api-client","typescript"],
19
19
  "dependencies": {
20
20
  "@hey-api/client-axios": "^0.2.5",
21
21
  "axios": "^1.6.1"
package/tsconfig.json CHANGED
@@ -8,8 +8,7 @@
8
8
  "strict": false,
9
9
  "skipLibCheck": true,
10
10
  "esModuleInterop": true,
11
- "allowSyntheticDefaultImports": true,
12
- "noEmitOnError": false
11
+ "allowSyntheticDefaultImports": true
13
12
  },
14
13
  "include": ["./**/*.ts"],
15
14
  "exclude": ["dist", "node_modules"]
package/types.gen.ts CHANGED
@@ -139,17 +139,21 @@ export type DashboardResponseDto = {
139
139
  */
140
140
  gsiVideoScore?: number | null;
141
141
  /**
142
- * GSI athletic subscore, 0-10
142
+ * GSI measurements subscore, 0-10
143
143
  */
144
- gsiAthleticScore?: number | null;
144
+ gsiMeasurementsScore?: number | null;
145
145
  /**
146
- * GSI body-fit subscore, 0-10
146
+ * GSI speed subscore, 0-10
147
147
  */
148
- gsiBodyScore?: number | null;
148
+ gsiSpeedScore?: number | null;
149
149
  /**
150
150
  * Number of score components included in the current GSI
151
151
  */
152
152
  gsiDataCompleteness?: number | null;
153
+ /**
154
+ * Current GSI scoring revision
155
+ */
156
+ gsiScoringRevision?: string | null;
153
157
  /**
154
158
  * When the GSI profile score was last computed
155
159
  */
@@ -737,13 +741,41 @@ export type ReportPurchaseStatusResponseDto = {
737
741
  prerequisites: Array<ReportPrerequisiteDto>;
738
742
  };
739
743
 
744
+ export type AiReportGsiSubcomponentDto = {
745
+ key: 'body_fit' | 'jump';
746
+ label: string;
747
+ score: number | null;
748
+ baseWeight: number;
749
+ effectiveWeight: number;
750
+ weight: number;
751
+ included: boolean;
752
+ status: 'included' | 'missing';
753
+ missingReason?:
754
+ | 'no_body_measurements'
755
+ | 'not_enough_body_fields'
756
+ | 'no_cmj'
757
+ | 'no_speed'
758
+ | 'invalid_source';
759
+ summary: string;
760
+ };
761
+
740
762
  export type AiReportGsiComponentDto = {
741
- key: 'video' | 'athletic' | 'body';
763
+ key: 'video' | 'measurements' | 'speed';
742
764
  label: string;
743
765
  score: number | null;
766
+ baseWeight: number;
767
+ effectiveWeight: number;
744
768
  weight: number;
745
769
  included: boolean;
770
+ status: 'included' | 'missing';
771
+ missingReason?:
772
+ | 'no_body_measurements'
773
+ | 'not_enough_body_fields'
774
+ | 'no_cmj'
775
+ | 'no_speed'
776
+ | 'invalid_source';
746
777
  summary: string;
778
+ subcomponents?: Array<AiReportGsiSubcomponentDto>;
747
779
  };
748
780
 
749
781
  export type AiReportVideoAttributeScoresDto = {
@@ -759,43 +791,75 @@ export type AiReportGsiVideoSourceInputDto = {
759
791
  createdAt: string;
760
792
  };
761
793
 
762
- export type AiReportGsiAthleticSourceInputDto = {
763
- cmjSessionId: string | null;
764
- cmjCreatedAt: string | null;
765
- sprintResultId: string | null;
766
- sprintCreatedAt: string | null;
767
- verticalJumpCm: number | null;
768
- maxSpeedKmh: number | null;
769
- };
770
-
771
794
  export type AiReportGsiBodySourceInputDto = {
772
- sessionId: string;
795
+ bodyMeasurementId: string;
796
+ sessionId: string | null;
797
+ sessionCreatedAt: string | null;
773
798
  createdAt: string;
774
- fitScore: number;
799
+ validFieldCount: number;
800
+ measurementCompletenessScore: number;
801
+ positionFitScore: number | null;
802
+ positionFitContributionScore: number;
803
+ positionFitStatus: 'available' | 'missing' | 'suppressed';
804
+ bodyFitScore: number;
805
+ };
806
+
807
+ export type AiReportGsiJumpSourceInputDto = {
808
+ jumpMeasurementId: string;
809
+ cmjSessionId: string;
810
+ cmjCreatedAt: string;
811
+ verticalJumpCm: number;
812
+ jumpScore: number;
813
+ };
814
+
815
+ export type AiReportGsiMeasurementsSourceInputsDto = {
816
+ body: AiReportGsiBodySourceInputDto | null;
817
+ jump: AiReportGsiJumpSourceInputDto | null;
818
+ };
819
+
820
+ export type AiReportGsiSpeedSourceInputDto = {
821
+ sprintResultId: string;
822
+ sprintCreatedAt: string;
823
+ maxSpeedKmh: number;
824
+ speedScore: number;
775
825
  };
776
826
 
777
827
  export type AiReportGsiSourceInputsDto = {
778
828
  video: AiReportGsiVideoSourceInputDto;
779
- athletic: AiReportGsiAthleticSourceInputDto | null;
780
- body: AiReportGsiBodySourceInputDto | null;
829
+ measurements: AiReportGsiMeasurementsSourceInputsDto;
830
+ speed: AiReportGsiSpeedSourceInputDto | null;
781
831
  };
782
832
 
783
833
  export type AiReportGsiReasonDto = {
784
834
  title: string;
785
835
  detail: string;
786
- source: 'video' | 'athletic' | 'body' | 'report';
836
+ source: 'video' | 'measurements' | 'body_fit' | 'jump' | 'speed' | 'report';
837
+ };
838
+
839
+ export type AiReportGsiRepairMetadataDto = {
840
+ version: string | null;
841
+ scoringRevision: string | null;
842
+ score: number | null;
843
+ computedAt: string | null;
844
+ repairedAt: string;
845
+ reason: 'missing_revision' | 'old_revision' | 'malformed_snapshot';
787
846
  };
788
847
 
789
848
  export type AiReportGsiSnapshotDto = {
790
849
  version: 'gsi-v1';
850
+ scoringRevision: 'gsi-v1.1-flow-components';
791
851
  score: number;
792
852
  computedAt: string;
793
853
  reportReferenceId: string;
854
+ reportCutoffAt: string;
794
855
  dataCompleteness: number;
856
+ dataCompletenessTotal: number;
857
+ inputCoverage: number;
795
858
  components: Array<AiReportGsiComponentDto>;
796
859
  videoAttributes: AiReportVideoAttributeScoresDto | null;
797
860
  sourceInputs: AiReportGsiSourceInputsDto;
798
861
  improvementReasons: Array<AiReportGsiReasonDto>;
862
+ repairedFrom?: AiReportGsiRepairMetadataDto;
799
863
  };
800
864
 
801
865
  export type ReportPurchaseHistoryItemDto = {