@globalscoutme/api-client 1.0.7 → 1.0.9
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.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/sdk.gen.d.ts +7 -1
- package/dist/sdk.gen.js +18 -0
- package/dist/types.gen.d.ts +127 -10
- package/index.ts +12 -0
- package/package.json +1 -1
- package/sdk.gen.ts +40 -0
- package/types.gen.ts +140 -10
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Achievements, Auth, Body, Documents, GlobalScoutMeClient, Index, type Options, Organizations, Players, Profile, Videos, } from './sdk.gen.js';
|
|
2
|
-
export type { AchievementCatalogDto, AuthMeResponseDto, BodyMeasurementResponseDto, CareerAchievementDto, ClientOptions, CreateBodyMeasurementDto, CreateDocumentDto, CreateVideoDto, DashboardResponseDto, DeletePlayersMeData, DeletePlayersMeErrors, DeletePlayersMeResponse, DeletePlayersMeResponses, DeleteVideosByIdData, DeleteVideosByIdErrors, DeleteVideosByIdResponse, DeleteVideosByIdResponses, DocumentResponseDto, GetAchievementsData, GetAchievementsMeData, GetAchievementsMeErrors, GetAchievementsMeResponse, GetAchievementsMeResponses, GetAchievementsResponse, GetAchievementsResponses, GetAuthMeData, GetAuthMeErrors, GetAuthMeResponse, GetAuthMeResponses, GetBodyMeasurementsMeData, GetBodyMeasurementsMeErrors, GetBodyMeasurementsMeResponse, GetBodyMeasurementsMeResponses, GetDocumentsMeData, GetDocumentsMeErrors, GetDocumentsMeResponse, GetDocumentsMeResponses, GetIndexByTableNameData, GetIndexByTableNameErrors, GetIndexByTableNameResponse, GetIndexByTableNameResponses, GetOrganizationsMeData, GetOrganizationsMeErrors, GetOrganizationsMeResponse, GetOrganizationsMeResponses, GetPlayersMeDashboardData, GetPlayersMeDashboardErrors, GetPlayersMeDashboardResponse, GetPlayersMeDashboardResponses, GetPlayersMeData, GetPlayersMeErrors, GetPlayersMeResponse, GetPlayersMeResponses, GetProfileMeData, GetProfileMeErrors, GetProfileMeResponse, GetProfileMeResponses, GetVideosMeData, GetVideosMeErrors, GetVideosMeResponse, GetVideosMeResponses, IndexItemDto, OrganizationResponseDto, PatchPlayersMeData, PatchPlayersMeErrors, PatchPlayersMeResponse, PatchPlayersMeResponses, PlayerResponseDto, PostBodyMeasurementsData, PostBodyMeasurementsErrors, PostBodyMeasurementsResponse, PostBodyMeasurementsResponses, PostDocumentsData, PostDocumentsErrors, PostDocumentsResponse, PostDocumentsResponses, PostOrganizationsRegisterClubData, PostOrganizationsRegisterClubErrors, PostOrganizationsRegisterClubResponse, PostOrganizationsRegisterClubResponses, PostVideosData, PostVideosErrors, PostVideosResponse, PostVideosResponses, PreviousClubDto, ProfileResponseDto, PutOrganizationsMeData, PutOrganizationsMeErrors, PutOrganizationsMeResponse, PutOrganizationsMeResponses, PutProfileMeData, PutProfileMeErrors, PutProfileMeResponse, PutProfileMeResponses, RegisterClubDto, RegisterClubResponseDto, UpdateOrganizationDto, UpdatePlayerDto, UpdateProfileDto, UserAchievementResponseDto, VideoResponseDto, } from './types.gen.js';
|
|
1
|
+
export { Achievements, Auth, Body, Documents, GlobalScoutMeClient, Index, type Options, Organizations, Players, Profile, Storage, Videos, } from './sdk.gen.js';
|
|
2
|
+
export type { AchievementCatalogDto, AuthMeResponseDto, BodyMeasurementResponseDto, CareerAchievementDto, ClientOptions, CreateBodyMeasurementDto, CreateDocumentDto, CreateUploadUrlDto, CreateVideoDto, DashboardResponseDto, DeletePlayersMeData, DeletePlayersMeErrors, DeletePlayersMeResponse, DeletePlayersMeResponses, DeleteVideosByIdData, DeleteVideosByIdErrors, DeleteVideosByIdResponse, DeleteVideosByIdResponses, DocumentResponseDto, GetAchievementsData, GetAchievementsMeData, GetAchievementsMeErrors, GetAchievementsMeResponse, GetAchievementsMeResponses, GetAchievementsResponse, GetAchievementsResponses, GetAuthMeData, GetAuthMeErrors, GetAuthMeResponse, GetAuthMeResponses, GetBodyMeasurementsMeData, GetBodyMeasurementsMeErrors, GetBodyMeasurementsMeResponse, GetBodyMeasurementsMeResponses, GetDocumentsMeData, GetDocumentsMeErrors, GetDocumentsMeResponse, GetDocumentsMeResponses, GetIndexByTableNameData, GetIndexByTableNameErrors, GetIndexByTableNameResponse, GetIndexByTableNameResponses, GetOrganizationsMeData, GetOrganizationsMeErrors, GetOrganizationsMeResponse, GetOrganizationsMeResponses, GetPlayersMeDashboardData, GetPlayersMeDashboardErrors, GetPlayersMeDashboardResponse, GetPlayersMeDashboardResponses, GetPlayersMeData, GetPlayersMeErrors, GetPlayersMeResponse, GetPlayersMeResponses, GetProfileMeData, GetProfileMeErrors, GetProfileMeResponse, GetProfileMeResponses, GetVideosByIdPlayUrlData, GetVideosByIdPlayUrlErrors, GetVideosByIdPlayUrlResponse, GetVideosByIdPlayUrlResponses, GetVideosMeData, GetVideosMeErrors, GetVideosMeResponse, GetVideosMeResponses, IndexItemDto, OrganizationResponseDto, PatchPlayersMeData, PatchPlayersMeErrors, PatchPlayersMeResponse, PatchPlayersMeResponses, PlayerResponseDto, PlayUrlResponseDto, PostBodyMeasurementsData, PostBodyMeasurementsErrors, PostBodyMeasurementsResponse, PostBodyMeasurementsResponses, PostDocumentsData, PostDocumentsErrors, PostDocumentsResponse, PostDocumentsResponses, PostOrganizationsRegisterClubData, PostOrganizationsRegisterClubErrors, PostOrganizationsRegisterClubResponse, PostOrganizationsRegisterClubResponses, PostStorageUploadUrlData, PostStorageUploadUrlErrors, PostStorageUploadUrlResponse, PostStorageUploadUrlResponses, PostVideosData, PostVideosErrors, PostVideosResponse, PostVideosResponses, PreviousClubDto, ProfileResponseDto, PutOrganizationsMeData, PutOrganizationsMeErrors, PutOrganizationsMeResponse, PutOrganizationsMeResponses, PutProfileMeData, PutProfileMeErrors, PutProfileMeResponse, PutProfileMeResponses, RegisterClubDto, RegisterClubResponseDto, UpdateOrganizationDto, UpdatePlayerDto, UpdateProfileDto, UploadUrlResponseDto, UserAchievementResponseDto, VideoResponseDto, } from './types.gen.js';
|
|
3
3
|
export { client, type CreateClientConfig } from './client.gen.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
-
export { Achievements, Auth, Body, Documents, GlobalScoutMeClient, Index, Organizations, Players, Profile, Videos, } from './sdk.gen.js';
|
|
2
|
+
export { Achievements, Auth, Body, Documents, GlobalScoutMeClient, Index, Organizations, Players, Profile, Storage, Videos, } from './sdk.gen.js';
|
|
3
3
|
export { client } from './client.gen.js';
|
package/dist/sdk.gen.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Client, Options as Options2, TDataShape } from './client/index.js';
|
|
2
|
-
import type { DeletePlayersMeData, DeletePlayersMeErrors, DeletePlayersMeResponses, DeleteVideosByIdData, DeleteVideosByIdErrors, DeleteVideosByIdResponses, GetAchievementsData, GetAchievementsMeData, GetAchievementsMeErrors, GetAchievementsMeResponses, GetAchievementsResponses, GetAuthMeData, GetAuthMeErrors, GetAuthMeResponses, GetBodyMeasurementsMeData, GetBodyMeasurementsMeErrors, GetBodyMeasurementsMeResponses, GetDocumentsMeData, GetDocumentsMeErrors, GetDocumentsMeResponses, GetIndexByTableNameData, GetIndexByTableNameErrors, GetIndexByTableNameResponses, GetOrganizationsMeData, GetOrganizationsMeErrors, GetOrganizationsMeResponses, GetPlayersMeDashboardData, GetPlayersMeDashboardErrors, GetPlayersMeDashboardResponses, GetPlayersMeData, GetPlayersMeErrors, GetPlayersMeResponses, GetProfileMeData, GetProfileMeErrors, GetProfileMeResponses, GetVideosMeData, GetVideosMeErrors, GetVideosMeResponses, PatchPlayersMeData, PatchPlayersMeErrors, PatchPlayersMeResponses, PostBodyMeasurementsData, PostBodyMeasurementsErrors, PostBodyMeasurementsResponses, PostDocumentsData, PostDocumentsErrors, PostDocumentsResponses, PostOrganizationsRegisterClubData, PostOrganizationsRegisterClubErrors, PostOrganizationsRegisterClubResponses, PostVideosData, PostVideosErrors, PostVideosResponses, PutOrganizationsMeData, PutOrganizationsMeErrors, PutOrganizationsMeResponses, PutProfileMeData, PutProfileMeErrors, PutProfileMeResponses } from './types.gen.js';
|
|
2
|
+
import type { DeletePlayersMeData, DeletePlayersMeErrors, DeletePlayersMeResponses, DeleteVideosByIdData, DeleteVideosByIdErrors, DeleteVideosByIdResponses, GetAchievementsData, GetAchievementsMeData, GetAchievementsMeErrors, GetAchievementsMeResponses, GetAchievementsResponses, GetAuthMeData, GetAuthMeErrors, GetAuthMeResponses, GetBodyMeasurementsMeData, GetBodyMeasurementsMeErrors, GetBodyMeasurementsMeResponses, GetDocumentsMeData, GetDocumentsMeErrors, GetDocumentsMeResponses, GetIndexByTableNameData, GetIndexByTableNameErrors, GetIndexByTableNameResponses, GetOrganizationsMeData, GetOrganizationsMeErrors, GetOrganizationsMeResponses, GetPlayersMeDashboardData, GetPlayersMeDashboardErrors, GetPlayersMeDashboardResponses, GetPlayersMeData, GetPlayersMeErrors, GetPlayersMeResponses, GetProfileMeData, GetProfileMeErrors, GetProfileMeResponses, GetVideosByIdPlayUrlData, GetVideosByIdPlayUrlErrors, GetVideosByIdPlayUrlResponses, GetVideosMeData, GetVideosMeErrors, GetVideosMeResponses, PatchPlayersMeData, PatchPlayersMeErrors, PatchPlayersMeResponses, PostBodyMeasurementsData, PostBodyMeasurementsErrors, PostBodyMeasurementsResponses, PostDocumentsData, PostDocumentsErrors, PostDocumentsResponses, PostOrganizationsRegisterClubData, PostOrganizationsRegisterClubErrors, PostOrganizationsRegisterClubResponses, PostStorageUploadUrlData, PostStorageUploadUrlErrors, PostStorageUploadUrlResponses, PostVideosData, PostVideosErrors, PostVideosResponses, PutOrganizationsMeData, PutOrganizationsMeErrors, PutOrganizationsMeResponses, PutProfileMeData, PutProfileMeErrors, PutProfileMeResponses } from './types.gen.js';
|
|
3
3
|
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
|
|
4
4
|
/**
|
|
5
5
|
* You can provide a client instance returned by `createClient()` instead of
|
|
@@ -58,9 +58,13 @@ export declare class Organizations extends HeyApiClient {
|
|
|
58
58
|
getMyOrganization<ThrowOnError extends boolean = false>(options?: Options<GetOrganizationsMeData, ThrowOnError>): import("./client/types.gen.js").RequestResult<GetOrganizationsMeResponses, GetOrganizationsMeErrors, ThrowOnError, "fields">;
|
|
59
59
|
updateMyOrganization<ThrowOnError extends boolean = false>(options: Options<PutOrganizationsMeData, ThrowOnError>): import("./client/types.gen.js").RequestResult<PutOrganizationsMeResponses, PutOrganizationsMeErrors, ThrowOnError, "fields">;
|
|
60
60
|
}
|
|
61
|
+
export declare class Storage extends HeyApiClient {
|
|
62
|
+
createUploadUrl<ThrowOnError extends boolean = false>(options: Options<PostStorageUploadUrlData, ThrowOnError>): import("./client/types.gen.js").RequestResult<PostStorageUploadUrlResponses, PostStorageUploadUrlErrors, ThrowOnError, "fields">;
|
|
63
|
+
}
|
|
61
64
|
export declare class Videos extends HeyApiClient {
|
|
62
65
|
getMyVideos<ThrowOnError extends boolean = false>(options: Options<GetVideosMeData, ThrowOnError>): import("./client/types.gen.js").RequestResult<GetVideosMeResponses, GetVideosMeErrors, ThrowOnError, "fields">;
|
|
63
66
|
createVideo<ThrowOnError extends boolean = false>(options: Options<PostVideosData, ThrowOnError>): import("./client/types.gen.js").RequestResult<PostVideosResponses, PostVideosErrors, ThrowOnError, "fields">;
|
|
67
|
+
getVideoPlayUrl<ThrowOnError extends boolean = false>(options: Options<GetVideosByIdPlayUrlData, ThrowOnError>): import("./client/types.gen.js").RequestResult<GetVideosByIdPlayUrlResponses, GetVideosByIdPlayUrlErrors, ThrowOnError, "fields">;
|
|
64
68
|
deleteVideo<ThrowOnError extends boolean = false>(options: Options<DeleteVideosByIdData, ThrowOnError>): import("./client/types.gen.js").RequestResult<DeleteVideosByIdResponses, DeleteVideosByIdErrors, ThrowOnError, "fields">;
|
|
65
69
|
}
|
|
66
70
|
export declare class GlobalScoutMeClient extends HeyApiClient {
|
|
@@ -85,6 +89,8 @@ export declare class GlobalScoutMeClient extends HeyApiClient {
|
|
|
85
89
|
get index(): Index;
|
|
86
90
|
private _organizations?;
|
|
87
91
|
get organizations(): Organizations;
|
|
92
|
+
private _storage?;
|
|
93
|
+
get storage(): Storage;
|
|
88
94
|
private _videos?;
|
|
89
95
|
get videos(): Videos;
|
|
90
96
|
}
|
package/dist/sdk.gen.js
CHANGED
|
@@ -130,6 +130,18 @@ export class Organizations extends HeyApiClient {
|
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
+
export class Storage extends HeyApiClient {
|
|
134
|
+
createUploadUrl(options) {
|
|
135
|
+
return (options.client ?? this.client).post({
|
|
136
|
+
url: '/storage/upload-url',
|
|
137
|
+
...options,
|
|
138
|
+
headers: {
|
|
139
|
+
'Content-Type': 'application/json',
|
|
140
|
+
...options.headers,
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
133
145
|
export class Videos extends HeyApiClient {
|
|
134
146
|
getMyVideos(options) {
|
|
135
147
|
return (options.client ?? this.client).get({ url: '/videos/me', ...options });
|
|
@@ -144,6 +156,9 @@ export class Videos extends HeyApiClient {
|
|
|
144
156
|
},
|
|
145
157
|
});
|
|
146
158
|
}
|
|
159
|
+
getVideoPlayUrl(options) {
|
|
160
|
+
return (options.client ?? this.client).get({ url: '/videos/{id}/play-url', ...options });
|
|
161
|
+
}
|
|
147
162
|
deleteVideo(options) {
|
|
148
163
|
return (options.client ?? this.client).delete({ url: '/videos/{id}', ...options });
|
|
149
164
|
}
|
|
@@ -177,6 +192,9 @@ export class GlobalScoutMeClient extends HeyApiClient {
|
|
|
177
192
|
get organizations() {
|
|
178
193
|
return (this._organizations ?? (this._organizations = new Organizations({ client: this.client })));
|
|
179
194
|
}
|
|
195
|
+
get storage() {
|
|
196
|
+
return (this._storage ?? (this._storage = new Storage({ client: this.client })));
|
|
197
|
+
}
|
|
180
198
|
get videos() {
|
|
181
199
|
return (this._videos ?? (this._videos = new Videos({ client: this.client })));
|
|
182
200
|
}
|
package/dist/types.gen.d.ts
CHANGED
|
@@ -238,6 +238,10 @@ export type ProfileResponseDto = {
|
|
|
238
238
|
* Preferred foot code
|
|
239
239
|
*/
|
|
240
240
|
preferredFoot?: string | null;
|
|
241
|
+
/**
|
|
242
|
+
* Preferred formation code (e.g. "4-3-3")
|
|
243
|
+
*/
|
|
244
|
+
preferredFormation?: string | null;
|
|
241
245
|
/**
|
|
242
246
|
* Height in cm
|
|
243
247
|
*/
|
|
@@ -329,13 +333,13 @@ export type UpdateProfileDto = {
|
|
|
329
333
|
*/
|
|
330
334
|
bio?: string;
|
|
331
335
|
/**
|
|
332
|
-
* Avatar URL
|
|
336
|
+
* Avatar URL, null to clear
|
|
333
337
|
*/
|
|
334
|
-
avatarUrl?: string;
|
|
338
|
+
avatarUrl?: string | null;
|
|
335
339
|
/**
|
|
336
|
-
* Cover image URL
|
|
340
|
+
* Cover image URL, null to clear
|
|
337
341
|
*/
|
|
338
|
-
coverImageUrl?: string;
|
|
342
|
+
coverImageUrl?: string | null;
|
|
339
343
|
/**
|
|
340
344
|
* Is free agent
|
|
341
345
|
*/
|
|
@@ -360,6 +364,10 @@ export type UpdateProfileDto = {
|
|
|
360
364
|
* Preferred foot code
|
|
361
365
|
*/
|
|
362
366
|
preferredFoot?: string;
|
|
367
|
+
/**
|
|
368
|
+
* Preferred formation code (e.g. "4-3-3"), null to clear
|
|
369
|
+
*/
|
|
370
|
+
preferredFormation?: string | null;
|
|
363
371
|
/**
|
|
364
372
|
* Height in cm
|
|
365
373
|
*/
|
|
@@ -620,11 +628,54 @@ export type UpdateOrganizationDto = {
|
|
|
620
628
|
*/
|
|
621
629
|
phone?: string;
|
|
622
630
|
};
|
|
631
|
+
export type CreateUploadUrlDto = {
|
|
632
|
+
/**
|
|
633
|
+
* Target storage bucket
|
|
634
|
+
*/
|
|
635
|
+
bucket: 'videos' | 'avatars' | 'documents';
|
|
636
|
+
/**
|
|
637
|
+
* MIME type of the file being uploaded
|
|
638
|
+
*/
|
|
639
|
+
contentType: string;
|
|
640
|
+
/**
|
|
641
|
+
* Size of the file in bytes
|
|
642
|
+
*/
|
|
643
|
+
sizeBytes: number;
|
|
644
|
+
/**
|
|
645
|
+
* Optional filename hint (not used for path)
|
|
646
|
+
*/
|
|
647
|
+
filenameHint?: string;
|
|
648
|
+
};
|
|
649
|
+
export type UploadUrlResponseDto = {
|
|
650
|
+
/**
|
|
651
|
+
* Signed URL the client PUTs raw bytes to
|
|
652
|
+
*/
|
|
653
|
+
uploadUrl: string;
|
|
654
|
+
/**
|
|
655
|
+
* Signed-upload token (opaque)
|
|
656
|
+
*/
|
|
657
|
+
token: string;
|
|
658
|
+
/**
|
|
659
|
+
* Storage path (persist this as video_path / file_path)
|
|
660
|
+
*/
|
|
661
|
+
path: string;
|
|
662
|
+
/**
|
|
663
|
+
* Bucket the upload targets
|
|
664
|
+
*/
|
|
665
|
+
bucket: string;
|
|
666
|
+
/**
|
|
667
|
+
* URL validity window in seconds
|
|
668
|
+
*/
|
|
669
|
+
expiresIn: number;
|
|
670
|
+
};
|
|
623
671
|
export type VideoResponseDto = {
|
|
624
672
|
id: string;
|
|
625
673
|
userId: string;
|
|
626
674
|
title: string;
|
|
627
|
-
|
|
675
|
+
/**
|
|
676
|
+
* Signed URL for the thumbnail image, valid for ~1 hour. Null if no thumbnail was uploaded.
|
|
677
|
+
*/
|
|
678
|
+
thumbnailUrl?: string | null;
|
|
628
679
|
videoType?: string | null;
|
|
629
680
|
durationSeconds?: number | null;
|
|
630
681
|
uploadStatus?: string | null;
|
|
@@ -634,19 +685,23 @@ export type VideoResponseDto = {
|
|
|
634
685
|
};
|
|
635
686
|
export type CreateVideoDto = {
|
|
636
687
|
/**
|
|
637
|
-
*
|
|
688
|
+
* Storage path of the uploaded video file
|
|
638
689
|
*/
|
|
639
|
-
|
|
690
|
+
videoPath: string;
|
|
640
691
|
/**
|
|
641
|
-
*
|
|
692
|
+
* Legacy video URL. Ignored for new uploads — BE issues a signed play URL on demand via GET /videos/:id/play-url.
|
|
642
693
|
*/
|
|
643
|
-
|
|
694
|
+
videoUrl?: string;
|
|
695
|
+
/**
|
|
696
|
+
* Storage path of the thumbnail image (uploaded alongside the video)
|
|
697
|
+
*/
|
|
698
|
+
thumbnailPath?: string;
|
|
644
699
|
/**
|
|
645
700
|
* Title
|
|
646
701
|
*/
|
|
647
702
|
title: string;
|
|
648
703
|
/**
|
|
649
|
-
* Video type code (e.g. best_moment, cmj)
|
|
704
|
+
* Video type code (e.g. best_moment, cmj, highlight)
|
|
650
705
|
*/
|
|
651
706
|
videoType?: string;
|
|
652
707
|
/**
|
|
@@ -658,6 +713,16 @@ export type CreateVideoDto = {
|
|
|
658
713
|
*/
|
|
659
714
|
isPublic?: boolean;
|
|
660
715
|
};
|
|
716
|
+
export type PlayUrlResponseDto = {
|
|
717
|
+
/**
|
|
718
|
+
* Short-lived signed URL for the video file
|
|
719
|
+
*/
|
|
720
|
+
url: string;
|
|
721
|
+
/**
|
|
722
|
+
* TTL of the signed URL in seconds
|
|
723
|
+
*/
|
|
724
|
+
expiresIn: number;
|
|
725
|
+
};
|
|
661
726
|
export type GetAuthMeData = {
|
|
662
727
|
body?: never;
|
|
663
728
|
path?: never;
|
|
@@ -971,6 +1036,33 @@ export type PutOrganizationsMeResponses = {
|
|
|
971
1036
|
200: OrganizationResponseDto;
|
|
972
1037
|
};
|
|
973
1038
|
export type PutOrganizationsMeResponse = PutOrganizationsMeResponses[keyof PutOrganizationsMeResponses];
|
|
1039
|
+
export type PostStorageUploadUrlData = {
|
|
1040
|
+
body: CreateUploadUrlDto;
|
|
1041
|
+
path?: never;
|
|
1042
|
+
query?: never;
|
|
1043
|
+
url: '/storage/upload-url';
|
|
1044
|
+
};
|
|
1045
|
+
export type PostStorageUploadUrlErrors = {
|
|
1046
|
+
/**
|
|
1047
|
+
* Unknown bucket or disallowed MIME
|
|
1048
|
+
*/
|
|
1049
|
+
400: unknown;
|
|
1050
|
+
/**
|
|
1051
|
+
* Unauthorized
|
|
1052
|
+
*/
|
|
1053
|
+
401: unknown;
|
|
1054
|
+
/**
|
|
1055
|
+
* File too large for bucket
|
|
1056
|
+
*/
|
|
1057
|
+
413: unknown;
|
|
1058
|
+
};
|
|
1059
|
+
export type PostStorageUploadUrlResponses = {
|
|
1060
|
+
/**
|
|
1061
|
+
* Signed upload URL issued
|
|
1062
|
+
*/
|
|
1063
|
+
201: UploadUrlResponseDto;
|
|
1064
|
+
};
|
|
1065
|
+
export type PostStorageUploadUrlResponse = PostStorageUploadUrlResponses[keyof PostStorageUploadUrlResponses];
|
|
974
1066
|
export type GetVideosMeData = {
|
|
975
1067
|
body?: never;
|
|
976
1068
|
path?: never;
|
|
@@ -1015,6 +1107,31 @@ export type PostVideosResponses = {
|
|
|
1015
1107
|
201: VideoResponseDto;
|
|
1016
1108
|
};
|
|
1017
1109
|
export type PostVideosResponse = PostVideosResponses[keyof PostVideosResponses];
|
|
1110
|
+
export type GetVideosByIdPlayUrlData = {
|
|
1111
|
+
body?: never;
|
|
1112
|
+
path: {
|
|
1113
|
+
id: string;
|
|
1114
|
+
};
|
|
1115
|
+
query?: never;
|
|
1116
|
+
url: '/videos/{id}/play-url';
|
|
1117
|
+
};
|
|
1118
|
+
export type GetVideosByIdPlayUrlErrors = {
|
|
1119
|
+
/**
|
|
1120
|
+
* Unauthorized
|
|
1121
|
+
*/
|
|
1122
|
+
401: unknown;
|
|
1123
|
+
/**
|
|
1124
|
+
* Video not found
|
|
1125
|
+
*/
|
|
1126
|
+
404: unknown;
|
|
1127
|
+
};
|
|
1128
|
+
export type GetVideosByIdPlayUrlResponses = {
|
|
1129
|
+
/**
|
|
1130
|
+
* Short-lived signed URL for video playback
|
|
1131
|
+
*/
|
|
1132
|
+
200: PlayUrlResponseDto;
|
|
1133
|
+
};
|
|
1134
|
+
export type GetVideosByIdPlayUrlResponse = GetVideosByIdPlayUrlResponses[keyof GetVideosByIdPlayUrlResponses];
|
|
1018
1135
|
export type DeleteVideosByIdData = {
|
|
1019
1136
|
body?: never;
|
|
1020
1137
|
path: {
|
package/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ export {
|
|
|
11
11
|
Organizations,
|
|
12
12
|
Players,
|
|
13
13
|
Profile,
|
|
14
|
+
Storage,
|
|
14
15
|
Videos,
|
|
15
16
|
} from './sdk.gen.js';
|
|
16
17
|
export type {
|
|
@@ -21,6 +22,7 @@ export type {
|
|
|
21
22
|
ClientOptions,
|
|
22
23
|
CreateBodyMeasurementDto,
|
|
23
24
|
CreateDocumentDto,
|
|
25
|
+
CreateUploadUrlDto,
|
|
24
26
|
CreateVideoDto,
|
|
25
27
|
DashboardResponseDto,
|
|
26
28
|
DeletePlayersMeData,
|
|
@@ -71,6 +73,10 @@ export type {
|
|
|
71
73
|
GetProfileMeErrors,
|
|
72
74
|
GetProfileMeResponse,
|
|
73
75
|
GetProfileMeResponses,
|
|
76
|
+
GetVideosByIdPlayUrlData,
|
|
77
|
+
GetVideosByIdPlayUrlErrors,
|
|
78
|
+
GetVideosByIdPlayUrlResponse,
|
|
79
|
+
GetVideosByIdPlayUrlResponses,
|
|
74
80
|
GetVideosMeData,
|
|
75
81
|
GetVideosMeErrors,
|
|
76
82
|
GetVideosMeResponse,
|
|
@@ -82,6 +88,7 @@ export type {
|
|
|
82
88
|
PatchPlayersMeResponse,
|
|
83
89
|
PatchPlayersMeResponses,
|
|
84
90
|
PlayerResponseDto,
|
|
91
|
+
PlayUrlResponseDto,
|
|
85
92
|
PostBodyMeasurementsData,
|
|
86
93
|
PostBodyMeasurementsErrors,
|
|
87
94
|
PostBodyMeasurementsResponse,
|
|
@@ -94,6 +101,10 @@ export type {
|
|
|
94
101
|
PostOrganizationsRegisterClubErrors,
|
|
95
102
|
PostOrganizationsRegisterClubResponse,
|
|
96
103
|
PostOrganizationsRegisterClubResponses,
|
|
104
|
+
PostStorageUploadUrlData,
|
|
105
|
+
PostStorageUploadUrlErrors,
|
|
106
|
+
PostStorageUploadUrlResponse,
|
|
107
|
+
PostStorageUploadUrlResponses,
|
|
97
108
|
PostVideosData,
|
|
98
109
|
PostVideosErrors,
|
|
99
110
|
PostVideosResponse,
|
|
@@ -113,6 +124,7 @@ export type {
|
|
|
113
124
|
UpdateOrganizationDto,
|
|
114
125
|
UpdatePlayerDto,
|
|
115
126
|
UpdateProfileDto,
|
|
127
|
+
UploadUrlResponseDto,
|
|
116
128
|
UserAchievementResponseDto,
|
|
117
129
|
VideoResponseDto,
|
|
118
130
|
} from './types.gen.js';
|
package/package.json
CHANGED
package/sdk.gen.ts
CHANGED
|
@@ -42,6 +42,9 @@ import type {
|
|
|
42
42
|
GetProfileMeData,
|
|
43
43
|
GetProfileMeErrors,
|
|
44
44
|
GetProfileMeResponses,
|
|
45
|
+
GetVideosByIdPlayUrlData,
|
|
46
|
+
GetVideosByIdPlayUrlErrors,
|
|
47
|
+
GetVideosByIdPlayUrlResponses,
|
|
45
48
|
GetVideosMeData,
|
|
46
49
|
GetVideosMeErrors,
|
|
47
50
|
GetVideosMeResponses,
|
|
@@ -57,6 +60,9 @@ import type {
|
|
|
57
60
|
PostOrganizationsRegisterClubData,
|
|
58
61
|
PostOrganizationsRegisterClubErrors,
|
|
59
62
|
PostOrganizationsRegisterClubResponses,
|
|
63
|
+
PostStorageUploadUrlData,
|
|
64
|
+
PostStorageUploadUrlErrors,
|
|
65
|
+
PostStorageUploadUrlResponses,
|
|
60
66
|
PostVideosData,
|
|
61
67
|
PostVideosErrors,
|
|
62
68
|
PostVideosResponses,
|
|
@@ -341,6 +347,25 @@ export class Organizations extends HeyApiClient {
|
|
|
341
347
|
}
|
|
342
348
|
}
|
|
343
349
|
|
|
350
|
+
export class Storage extends HeyApiClient {
|
|
351
|
+
public createUploadUrl<ThrowOnError extends boolean = false>(
|
|
352
|
+
options: Options<PostStorageUploadUrlData, ThrowOnError>,
|
|
353
|
+
) {
|
|
354
|
+
return (options.client ?? this.client).post<
|
|
355
|
+
PostStorageUploadUrlResponses,
|
|
356
|
+
PostStorageUploadUrlErrors,
|
|
357
|
+
ThrowOnError
|
|
358
|
+
>({
|
|
359
|
+
url: '/storage/upload-url',
|
|
360
|
+
...options,
|
|
361
|
+
headers: {
|
|
362
|
+
'Content-Type': 'application/json',
|
|
363
|
+
...options.headers,
|
|
364
|
+
},
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
344
369
|
export class Videos extends HeyApiClient {
|
|
345
370
|
public getMyVideos<ThrowOnError extends boolean = false>(
|
|
346
371
|
options: Options<GetVideosMeData, ThrowOnError>,
|
|
@@ -369,6 +394,16 @@ export class Videos extends HeyApiClient {
|
|
|
369
394
|
});
|
|
370
395
|
}
|
|
371
396
|
|
|
397
|
+
public getVideoPlayUrl<ThrowOnError extends boolean = false>(
|
|
398
|
+
options: Options<GetVideosByIdPlayUrlData, ThrowOnError>,
|
|
399
|
+
) {
|
|
400
|
+
return (options.client ?? this.client).get<
|
|
401
|
+
GetVideosByIdPlayUrlResponses,
|
|
402
|
+
GetVideosByIdPlayUrlErrors,
|
|
403
|
+
ThrowOnError
|
|
404
|
+
>({ url: '/videos/{id}/play-url', ...options });
|
|
405
|
+
}
|
|
406
|
+
|
|
372
407
|
public deleteVideo<ThrowOnError extends boolean = false>(
|
|
373
408
|
options: Options<DeleteVideosByIdData, ThrowOnError>,
|
|
374
409
|
) {
|
|
@@ -428,6 +463,11 @@ export class GlobalScoutMeClient extends HeyApiClient {
|
|
|
428
463
|
return (this._organizations ??= new Organizations({ client: this.client }));
|
|
429
464
|
}
|
|
430
465
|
|
|
466
|
+
private _storage?: Storage;
|
|
467
|
+
get storage(): Storage {
|
|
468
|
+
return (this._storage ??= new Storage({ client: this.client }));
|
|
469
|
+
}
|
|
470
|
+
|
|
431
471
|
private _videos?: Videos;
|
|
432
472
|
get videos(): Videos {
|
|
433
473
|
return (this._videos ??= new Videos({ client: this.client }));
|
package/types.gen.ts
CHANGED
|
@@ -253,6 +253,10 @@ export type ProfileResponseDto = {
|
|
|
253
253
|
* Preferred foot code
|
|
254
254
|
*/
|
|
255
255
|
preferredFoot?: string | null;
|
|
256
|
+
/**
|
|
257
|
+
* Preferred formation code (e.g. "4-3-3")
|
|
258
|
+
*/
|
|
259
|
+
preferredFormation?: string | null;
|
|
256
260
|
/**
|
|
257
261
|
* Height in cm
|
|
258
262
|
*/
|
|
@@ -345,13 +349,13 @@ export type UpdateProfileDto = {
|
|
|
345
349
|
*/
|
|
346
350
|
bio?: string;
|
|
347
351
|
/**
|
|
348
|
-
* Avatar URL
|
|
352
|
+
* Avatar URL, null to clear
|
|
349
353
|
*/
|
|
350
|
-
avatarUrl?: string;
|
|
354
|
+
avatarUrl?: string | null;
|
|
351
355
|
/**
|
|
352
|
-
* Cover image URL
|
|
356
|
+
* Cover image URL, null to clear
|
|
353
357
|
*/
|
|
354
|
-
coverImageUrl?: string;
|
|
358
|
+
coverImageUrl?: string | null;
|
|
355
359
|
/**
|
|
356
360
|
* Is free agent
|
|
357
361
|
*/
|
|
@@ -376,6 +380,10 @@ export type UpdateProfileDto = {
|
|
|
376
380
|
* Preferred foot code
|
|
377
381
|
*/
|
|
378
382
|
preferredFoot?: string;
|
|
383
|
+
/**
|
|
384
|
+
* Preferred formation code (e.g. "4-3-3"), null to clear
|
|
385
|
+
*/
|
|
386
|
+
preferredFormation?: string | null;
|
|
379
387
|
/**
|
|
380
388
|
* Height in cm
|
|
381
389
|
*/
|
|
@@ -648,11 +656,56 @@ export type UpdateOrganizationDto = {
|
|
|
648
656
|
phone?: string;
|
|
649
657
|
};
|
|
650
658
|
|
|
659
|
+
export type CreateUploadUrlDto = {
|
|
660
|
+
/**
|
|
661
|
+
* Target storage bucket
|
|
662
|
+
*/
|
|
663
|
+
bucket: 'videos' | 'avatars' | 'documents';
|
|
664
|
+
/**
|
|
665
|
+
* MIME type of the file being uploaded
|
|
666
|
+
*/
|
|
667
|
+
contentType: string;
|
|
668
|
+
/**
|
|
669
|
+
* Size of the file in bytes
|
|
670
|
+
*/
|
|
671
|
+
sizeBytes: number;
|
|
672
|
+
/**
|
|
673
|
+
* Optional filename hint (not used for path)
|
|
674
|
+
*/
|
|
675
|
+
filenameHint?: string;
|
|
676
|
+
};
|
|
677
|
+
|
|
678
|
+
export type UploadUrlResponseDto = {
|
|
679
|
+
/**
|
|
680
|
+
* Signed URL the client PUTs raw bytes to
|
|
681
|
+
*/
|
|
682
|
+
uploadUrl: string;
|
|
683
|
+
/**
|
|
684
|
+
* Signed-upload token (opaque)
|
|
685
|
+
*/
|
|
686
|
+
token: string;
|
|
687
|
+
/**
|
|
688
|
+
* Storage path (persist this as video_path / file_path)
|
|
689
|
+
*/
|
|
690
|
+
path: string;
|
|
691
|
+
/**
|
|
692
|
+
* Bucket the upload targets
|
|
693
|
+
*/
|
|
694
|
+
bucket: string;
|
|
695
|
+
/**
|
|
696
|
+
* URL validity window in seconds
|
|
697
|
+
*/
|
|
698
|
+
expiresIn: number;
|
|
699
|
+
};
|
|
700
|
+
|
|
651
701
|
export type VideoResponseDto = {
|
|
652
702
|
id: string;
|
|
653
703
|
userId: string;
|
|
654
704
|
title: string;
|
|
655
|
-
|
|
705
|
+
/**
|
|
706
|
+
* Signed URL for the thumbnail image, valid for ~1 hour. Null if no thumbnail was uploaded.
|
|
707
|
+
*/
|
|
708
|
+
thumbnailUrl?: string | null;
|
|
656
709
|
videoType?: string | null;
|
|
657
710
|
durationSeconds?: number | null;
|
|
658
711
|
uploadStatus?: string | null;
|
|
@@ -663,19 +716,23 @@ export type VideoResponseDto = {
|
|
|
663
716
|
|
|
664
717
|
export type CreateVideoDto = {
|
|
665
718
|
/**
|
|
666
|
-
*
|
|
719
|
+
* Storage path of the uploaded video file
|
|
667
720
|
*/
|
|
668
|
-
|
|
721
|
+
videoPath: string;
|
|
669
722
|
/**
|
|
670
|
-
*
|
|
723
|
+
* Legacy video URL. Ignored for new uploads — BE issues a signed play URL on demand via GET /videos/:id/play-url.
|
|
671
724
|
*/
|
|
672
|
-
|
|
725
|
+
videoUrl?: string;
|
|
726
|
+
/**
|
|
727
|
+
* Storage path of the thumbnail image (uploaded alongside the video)
|
|
728
|
+
*/
|
|
729
|
+
thumbnailPath?: string;
|
|
673
730
|
/**
|
|
674
731
|
* Title
|
|
675
732
|
*/
|
|
676
733
|
title: string;
|
|
677
734
|
/**
|
|
678
|
-
* Video type code (e.g. best_moment, cmj)
|
|
735
|
+
* Video type code (e.g. best_moment, cmj, highlight)
|
|
679
736
|
*/
|
|
680
737
|
videoType?: string;
|
|
681
738
|
/**
|
|
@@ -688,6 +745,17 @@ export type CreateVideoDto = {
|
|
|
688
745
|
isPublic?: boolean;
|
|
689
746
|
};
|
|
690
747
|
|
|
748
|
+
export type PlayUrlResponseDto = {
|
|
749
|
+
/**
|
|
750
|
+
* Short-lived signed URL for the video file
|
|
751
|
+
*/
|
|
752
|
+
url: string;
|
|
753
|
+
/**
|
|
754
|
+
* TTL of the signed URL in seconds
|
|
755
|
+
*/
|
|
756
|
+
expiresIn: number;
|
|
757
|
+
};
|
|
758
|
+
|
|
691
759
|
export type GetAuthMeData = {
|
|
692
760
|
body?: never;
|
|
693
761
|
path?: never;
|
|
@@ -1084,6 +1152,38 @@ export type PutOrganizationsMeResponses = {
|
|
|
1084
1152
|
export type PutOrganizationsMeResponse =
|
|
1085
1153
|
PutOrganizationsMeResponses[keyof PutOrganizationsMeResponses];
|
|
1086
1154
|
|
|
1155
|
+
export type PostStorageUploadUrlData = {
|
|
1156
|
+
body: CreateUploadUrlDto;
|
|
1157
|
+
path?: never;
|
|
1158
|
+
query?: never;
|
|
1159
|
+
url: '/storage/upload-url';
|
|
1160
|
+
};
|
|
1161
|
+
|
|
1162
|
+
export type PostStorageUploadUrlErrors = {
|
|
1163
|
+
/**
|
|
1164
|
+
* Unknown bucket or disallowed MIME
|
|
1165
|
+
*/
|
|
1166
|
+
400: unknown;
|
|
1167
|
+
/**
|
|
1168
|
+
* Unauthorized
|
|
1169
|
+
*/
|
|
1170
|
+
401: unknown;
|
|
1171
|
+
/**
|
|
1172
|
+
* File too large for bucket
|
|
1173
|
+
*/
|
|
1174
|
+
413: unknown;
|
|
1175
|
+
};
|
|
1176
|
+
|
|
1177
|
+
export type PostStorageUploadUrlResponses = {
|
|
1178
|
+
/**
|
|
1179
|
+
* Signed upload URL issued
|
|
1180
|
+
*/
|
|
1181
|
+
201: UploadUrlResponseDto;
|
|
1182
|
+
};
|
|
1183
|
+
|
|
1184
|
+
export type PostStorageUploadUrlResponse =
|
|
1185
|
+
PostStorageUploadUrlResponses[keyof PostStorageUploadUrlResponses];
|
|
1186
|
+
|
|
1087
1187
|
export type GetVideosMeData = {
|
|
1088
1188
|
body?: never;
|
|
1089
1189
|
path?: never;
|
|
@@ -1137,6 +1237,36 @@ export type PostVideosResponses = {
|
|
|
1137
1237
|
|
|
1138
1238
|
export type PostVideosResponse = PostVideosResponses[keyof PostVideosResponses];
|
|
1139
1239
|
|
|
1240
|
+
export type GetVideosByIdPlayUrlData = {
|
|
1241
|
+
body?: never;
|
|
1242
|
+
path: {
|
|
1243
|
+
id: string;
|
|
1244
|
+
};
|
|
1245
|
+
query?: never;
|
|
1246
|
+
url: '/videos/{id}/play-url';
|
|
1247
|
+
};
|
|
1248
|
+
|
|
1249
|
+
export type GetVideosByIdPlayUrlErrors = {
|
|
1250
|
+
/**
|
|
1251
|
+
* Unauthorized
|
|
1252
|
+
*/
|
|
1253
|
+
401: unknown;
|
|
1254
|
+
/**
|
|
1255
|
+
* Video not found
|
|
1256
|
+
*/
|
|
1257
|
+
404: unknown;
|
|
1258
|
+
};
|
|
1259
|
+
|
|
1260
|
+
export type GetVideosByIdPlayUrlResponses = {
|
|
1261
|
+
/**
|
|
1262
|
+
* Short-lived signed URL for video playback
|
|
1263
|
+
*/
|
|
1264
|
+
200: PlayUrlResponseDto;
|
|
1265
|
+
};
|
|
1266
|
+
|
|
1267
|
+
export type GetVideosByIdPlayUrlResponse =
|
|
1268
|
+
GetVideosByIdPlayUrlResponses[keyof GetVideosByIdPlayUrlResponses];
|
|
1269
|
+
|
|
1140
1270
|
export type DeleteVideosByIdData = {
|
|
1141
1271
|
body?: never;
|
|
1142
1272
|
path: {
|