rozod 6.7.1 → 6.8.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/LICENSE +1 -1
- package/README.md +75 -451
- package/lib/endpoints/assetdeliveryv1.d.ts +38 -0
- package/lib/endpoints/assetdeliveryv1.js +38 -0
- package/lib/endpoints/assetdeliveryv2.d.ts +26 -0
- package/lib/endpoints/assetdeliveryv2.js +26 -0
- package/lib/endpoints/authv1.d.ts +7 -2
- package/lib/endpoints/authv1.js +3 -1
- package/lib/endpoints/authv2.d.ts +1 -1
- package/lib/endpoints/authv2.js +1 -1
- package/lib/endpoints/badgesv1.d.ts +4 -0
- package/lib/endpoints/badgesv1.js +4 -0
- package/lib/endpoints/catalogv1.d.ts +2 -1
- package/lib/endpoints/catalogv1.js +2 -1
- package/lib/endpoints/catalogv2.d.ts +53 -45
- package/lib/endpoints/catalogv2.js +21 -17
- package/lib/endpoints/chatv2.d.ts +778 -778
- package/lib/endpoints/developv1.d.ts +3 -0
- package/lib/endpoints/developv1.js +3 -0
- package/lib/endpoints/developv2.d.ts +3 -1
- package/lib/endpoints/developv2.js +3 -1
- package/lib/endpoints/friendsv1.d.ts +222 -314
- package/lib/endpoints/friendsv1.js +213 -313
- package/lib/endpoints/gamejoinv1.d.ts +458 -458
- package/lib/endpoints/gamesv1.d.ts +2 -0
- package/lib/endpoints/gamesv1.js +2 -0
- package/lib/endpoints/gamesv2.d.ts +11 -0
- package/lib/endpoints/gamesv2.js +9 -0
- package/lib/endpoints/groupsv1.d.ts +42 -1
- package/lib/endpoints/groupsv1.js +48 -4
- package/lib/endpoints/groupsv2.d.ts +1 -0
- package/lib/endpoints/groupsv2.js +1 -0
- package/lib/endpoints/inventoryv1.d.ts +3 -1
- package/lib/endpoints/inventoryv1.js +3 -1
- package/lib/endpoints/inventoryv2.d.ts +2 -0
- package/lib/endpoints/inventoryv2.js +2 -0
- package/lib/endpoints/metricsv1.d.ts +88 -88
- package/lib/endpoints/thumbnailsv1.d.ts +44 -87
- package/lib/endpoints/thumbnailsv1.js +25 -0
- package/lib/index.d.ts +96 -3
- package/lib/index.js +114 -1
- package/lib/opencloud/v1/asset-permissions.d.ts +1 -1
- package/lib/opencloud/v1/assets.d.ts +9 -9
- package/lib/opencloud/v1/datastores-ordered.d.ts +6 -6
- package/lib/opencloud/v1/datastores.d.ts +8 -8
- package/lib/opencloud/v1/developer-products.d.ts +4 -4
- package/lib/opencloud/v1/game-passes.d.ts +4 -4
- package/lib/opencloud/v1/messaging.d.ts +1 -1
- package/lib/opencloud/v1/open-eval.d.ts +2 -2
- package/lib/opencloud/v1/secrets-store.d.ts +5 -5
- package/lib/opencloud/v1/toolbox.d.ts +2 -2
- package/lib/opencloud/v1/universes.d.ts +1 -1
- package/lib/opencloud/v2/cloud.d.ts +172 -84
- package/lib/opencloud/v2/cloud.js +25 -9
- package/package.json +1 -1
|
@@ -1,39 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { endpoint } from "..";
|
|
3
3
|
|
|
4
|
-
const Roblox_Web_Responses_Thumbnails_ThumbnailResponse = z.object({
|
|
5
|
-
targetId: z.number().int(),
|
|
6
|
-
state: z.enum([
|
|
7
|
-
"Error",
|
|
8
|
-
"Completed",
|
|
9
|
-
"InReview",
|
|
10
|
-
"Pending",
|
|
11
|
-
"Blocked",
|
|
12
|
-
"TemporarilyUnavailable",
|
|
13
|
-
]),
|
|
14
|
-
imageUrl: z.string(),
|
|
15
|
-
version: z.string(),
|
|
16
|
-
});
|
|
17
|
-
const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_ =
|
|
18
|
-
z.object({
|
|
19
|
-
data: z.array(Roblox_Web_Responses_Thumbnails_ThumbnailResponse),
|
|
20
|
-
});
|
|
21
|
-
const Roblox_Web_WebAPI_Models_ApiErrorModel = z.object({
|
|
22
|
-
code: z.number().int(),
|
|
23
|
-
message: z.string(),
|
|
24
|
-
userFacingMessage: z.string(),
|
|
25
|
-
field: z.string(),
|
|
26
|
-
fieldData: z.object({}),
|
|
27
|
-
});
|
|
28
|
-
const Roblox_Thumbnails_Api_Models_UniverseThumbnailsResponse = z.object({
|
|
29
|
-
universeId: z.number().int(),
|
|
30
|
-
error: Roblox_Web_WebAPI_Models_ApiErrorModel,
|
|
31
|
-
thumbnails: z.array(Roblox_Web_Responses_Thumbnails_ThumbnailResponse),
|
|
32
|
-
});
|
|
33
|
-
const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Thumbnails_Api_Models_UniverseThumbnailsResponse_ =
|
|
34
|
-
z.object({
|
|
35
|
-
data: z.array(Roblox_Thumbnails_Api_Models_UniverseThumbnailsResponse),
|
|
36
|
-
});
|
|
37
4
|
const Roblox_Thumbnails_Apis_Models_ThumbnailBatchRequest = z.object({
|
|
38
5
|
requestId: z.string(),
|
|
39
6
|
targetId: z.number().int(),
|
|
@@ -65,27 +32,8 @@ const Roblox_Thumbnails_Apis_Models_ThumbnailBatchRequest = z.object({
|
|
|
65
32
|
isCircular: z.boolean(),
|
|
66
33
|
accessContext: z.string(),
|
|
67
34
|
headShape: z.string(),
|
|
35
|
+
includeBackground: z.boolean(),
|
|
68
36
|
});
|
|
69
|
-
const Roblox_Web_Responses_Thumbnails_ThumbnailBatchResponse = z.object({
|
|
70
|
-
requestId: z.string(),
|
|
71
|
-
errorCode: z.number().int(),
|
|
72
|
-
errorMessage: z.string(),
|
|
73
|
-
targetId: z.number().int(),
|
|
74
|
-
state: z.enum([
|
|
75
|
-
"Error",
|
|
76
|
-
"Completed",
|
|
77
|
-
"InReview",
|
|
78
|
-
"Pending",
|
|
79
|
-
"Blocked",
|
|
80
|
-
"TemporarilyUnavailable",
|
|
81
|
-
]),
|
|
82
|
-
imageUrl: z.string(),
|
|
83
|
-
version: z.string(),
|
|
84
|
-
});
|
|
85
|
-
const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailBatchResponse_ =
|
|
86
|
-
z.object({
|
|
87
|
-
data: z.array(Roblox_Web_Responses_Thumbnails_ThumbnailBatchResponse),
|
|
88
|
-
});
|
|
89
37
|
|
|
90
38
|
/**
|
|
91
39
|
* @api GET https://thumbnails.roblox.com/v1/asset-thumbnail-animated
|
|
@@ -111,7 +59,7 @@ export const getAssetThumbnailAnimated = endpoint({
|
|
|
111
59
|
assetId: z.number().int(),
|
|
112
60
|
"Roblox-Place-Id": z.number().int().optional(),
|
|
113
61
|
},
|
|
114
|
-
response:
|
|
62
|
+
response: z.void(),
|
|
115
63
|
errors: [
|
|
116
64
|
{
|
|
117
65
|
status: 400,
|
|
@@ -208,8 +156,7 @@ export const getAssets = endpoint({
|
|
|
208
156
|
format: z.enum(["Png", "Jpeg", "Webp"]).optional().default("Png"),
|
|
209
157
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
210
158
|
},
|
|
211
|
-
response:
|
|
212
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
159
|
+
response: z.void(),
|
|
213
160
|
errors: [
|
|
214
161
|
{
|
|
215
162
|
status: 400,
|
|
@@ -256,7 +203,7 @@ export const getAssetsThumbnail3d = endpoint({
|
|
|
256
203
|
useGltf: z.boolean().optional(),
|
|
257
204
|
"Roblox-Place-Id": z.number().int().optional(),
|
|
258
205
|
},
|
|
259
|
-
response:
|
|
206
|
+
response: z.void(),
|
|
260
207
|
errors: [
|
|
261
208
|
{
|
|
262
209
|
status: 400,
|
|
@@ -300,8 +247,7 @@ export const getBadgesIcons = endpoint({
|
|
|
300
247
|
format: z.enum(["Png", "Webp"]).optional().default("Png"),
|
|
301
248
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
302
249
|
},
|
|
303
|
-
response:
|
|
304
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
250
|
+
response: z.void(),
|
|
305
251
|
errors: [
|
|
306
252
|
{
|
|
307
253
|
status: 400,
|
|
@@ -353,8 +299,7 @@ export const postBatch = endpoint({
|
|
|
353
299
|
"Roblox-Place-Id": z.number().int().optional(),
|
|
354
300
|
},
|
|
355
301
|
body: z.array(Roblox_Thumbnails_Apis_Models_ThumbnailBatchRequest),
|
|
356
|
-
response:
|
|
357
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailBatchResponse_,
|
|
302
|
+
response: z.void(),
|
|
358
303
|
errors: [
|
|
359
304
|
{
|
|
360
305
|
status: 400,
|
|
@@ -406,8 +351,7 @@ export const getBundlesThumbnails = endpoint({
|
|
|
406
351
|
format: z.enum(["Png", "Webp"]).optional().default("Png"),
|
|
407
352
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
408
353
|
},
|
|
409
|
-
response:
|
|
410
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
354
|
+
response: z.void(),
|
|
411
355
|
errors: [
|
|
412
356
|
{
|
|
413
357
|
status: 400,
|
|
@@ -455,8 +399,7 @@ export const getDeveloperProductsIcons = endpoint({
|
|
|
455
399
|
format: z.enum(["Png", "Webp"]).optional().default("Png"),
|
|
456
400
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
457
401
|
},
|
|
458
|
-
response:
|
|
459
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
402
|
+
response: z.void(),
|
|
460
403
|
errors: [
|
|
461
404
|
{
|
|
462
405
|
status: 400,
|
|
@@ -504,8 +447,7 @@ export const getGamePasses = endpoint({
|
|
|
504
447
|
format: z.enum(["Png", "Webp"]).optional().default("Png"),
|
|
505
448
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
506
449
|
},
|
|
507
|
-
response:
|
|
508
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
450
|
+
response: z.void(),
|
|
509
451
|
errors: [
|
|
510
452
|
{
|
|
511
453
|
status: 400,
|
|
@@ -561,8 +503,7 @@ export const getGamesUniverseidThumbnails = endpoint({
|
|
|
561
503
|
format: z.enum(["Png", "Jpeg", "Webp"]).optional().default("Png"),
|
|
562
504
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
563
505
|
},
|
|
564
|
-
response:
|
|
565
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
506
|
+
response: z.void(),
|
|
566
507
|
errors: [
|
|
567
508
|
{
|
|
568
509
|
status: 400,
|
|
@@ -633,8 +574,7 @@ export const getGamesIcons = endpoint({
|
|
|
633
574
|
format: z.enum(["Png", "Jpeg", "Webp"]).optional().default("Png"),
|
|
634
575
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
635
576
|
},
|
|
636
|
-
response:
|
|
637
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
577
|
+
response: z.void(),
|
|
638
578
|
errors: [
|
|
639
579
|
{
|
|
640
580
|
status: 400,
|
|
@@ -702,8 +642,7 @@ export const getGamesMultigetThumbnails = endpoint({
|
|
|
702
642
|
format: z.enum(["Png", "Jpeg", "Webp"]).optional().default("Png"),
|
|
703
643
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
704
644
|
},
|
|
705
|
-
response:
|
|
706
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Thumbnails_Api_Models_UniverseThumbnailsResponse_,
|
|
645
|
+
response: z.void(),
|
|
707
646
|
errors: [
|
|
708
647
|
{
|
|
709
648
|
status: 400,
|
|
@@ -751,8 +690,7 @@ export const getGroupsIcons = endpoint({
|
|
|
751
690
|
format: z.enum(["Png", "Webp"]).optional().default("Png"),
|
|
752
691
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
753
692
|
},
|
|
754
|
-
response:
|
|
755
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
693
|
+
response: z.void(),
|
|
756
694
|
errors: [
|
|
757
695
|
{
|
|
758
696
|
status: 400,
|
|
@@ -817,8 +755,7 @@ export const getPlacesGameicons = endpoint({
|
|
|
817
755
|
format: z.enum(["Png", "Jpeg", "Webp"]).optional().default("Png"),
|
|
818
756
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
819
757
|
},
|
|
820
|
-
response:
|
|
821
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
758
|
+
response: z.void(),
|
|
822
759
|
errors: [
|
|
823
760
|
{
|
|
824
761
|
status: 400,
|
|
@@ -839,6 +776,7 @@ export const getPlacesGameicons = endpoint({
|
|
|
839
776
|
* @api GET https://thumbnails.roblox.com/v1/users/avatar
|
|
840
777
|
* @summary Get Avatar Full body shots for the given CSV of userIds
|
|
841
778
|
* @param userIds CSV for the userIds to get avatar full body shots
|
|
779
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
842
780
|
* @param size The thumbnail size, formatted widthxheight
|
|
843
781
|
* @param format The thumbnail format
|
|
844
782
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
@@ -852,6 +790,10 @@ export const getUsersAvatar = endpoint({
|
|
|
852
790
|
userIds: {
|
|
853
791
|
style: "form",
|
|
854
792
|
},
|
|
793
|
+
includeBackground: {
|
|
794
|
+
style: "form",
|
|
795
|
+
explode: true,
|
|
796
|
+
},
|
|
855
797
|
size: {
|
|
856
798
|
style: "form",
|
|
857
799
|
explode: true,
|
|
@@ -867,6 +809,7 @@ export const getUsersAvatar = endpoint({
|
|
|
867
809
|
},
|
|
868
810
|
parameters: {
|
|
869
811
|
userIds: z.array(z.number()),
|
|
812
|
+
includeBackground: z.boolean().optional(),
|
|
870
813
|
size: z
|
|
871
814
|
.enum([
|
|
872
815
|
"30x30",
|
|
@@ -889,8 +832,7 @@ export const getUsersAvatar = endpoint({
|
|
|
889
832
|
format: z.enum(["Png", "Jpeg", "Webp"]).optional().default("Png"),
|
|
890
833
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
891
834
|
},
|
|
892
|
-
response:
|
|
893
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
835
|
+
response: z.void(),
|
|
894
836
|
errors: [
|
|
895
837
|
{
|
|
896
838
|
status: 400,
|
|
@@ -921,7 +863,7 @@ export const getUsersAvatar3d = endpoint({
|
|
|
921
863
|
parameters: {
|
|
922
864
|
userId: z.number().int(),
|
|
923
865
|
},
|
|
924
|
-
response:
|
|
866
|
+
response: z.void(),
|
|
925
867
|
errors: [
|
|
926
868
|
{
|
|
927
869
|
status: 400,
|
|
@@ -933,6 +875,7 @@ export const getUsersAvatar3d = endpoint({
|
|
|
933
875
|
* @api GET https://thumbnails.roblox.com/v1/users/avatar-bust
|
|
934
876
|
* @summary Get Avatar Busts for the given CSV of userIds
|
|
935
877
|
* @param userIds CSV for the userIds to get avatar headshots
|
|
878
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
936
879
|
* @param size The thumbnail size, formatted widthxheight
|
|
937
880
|
* @param format The thumbnail format
|
|
938
881
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
@@ -946,6 +889,10 @@ export const getUsersAvatarBust = endpoint({
|
|
|
946
889
|
userIds: {
|
|
947
890
|
style: "form",
|
|
948
891
|
},
|
|
892
|
+
includeBackground: {
|
|
893
|
+
style: "form",
|
|
894
|
+
explode: true,
|
|
895
|
+
},
|
|
949
896
|
size: {
|
|
950
897
|
style: "form",
|
|
951
898
|
explode: true,
|
|
@@ -961,6 +908,7 @@ export const getUsersAvatarBust = endpoint({
|
|
|
961
908
|
},
|
|
962
909
|
parameters: {
|
|
963
910
|
userIds: z.array(z.number()),
|
|
911
|
+
includeBackground: z.boolean().optional(),
|
|
964
912
|
size: z
|
|
965
913
|
.enum([
|
|
966
914
|
"48x48",
|
|
@@ -978,8 +926,7 @@ export const getUsersAvatarBust = endpoint({
|
|
|
978
926
|
format: z.enum(["Png", "Webp"]).optional().default("Png"),
|
|
979
927
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
980
928
|
},
|
|
981
|
-
response:
|
|
982
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
929
|
+
response: z.void(),
|
|
983
930
|
errors: [
|
|
984
931
|
{
|
|
985
932
|
status: 400,
|
|
@@ -995,6 +942,7 @@ export const getUsersAvatarBust = endpoint({
|
|
|
995
942
|
* @api GET https://thumbnails.roblox.com/v1/users/avatar-headshot
|
|
996
943
|
* @summary Get Avatar Headshots for the given CSV of userIds
|
|
997
944
|
* @param userIds CSV for the userIds to get avatar headshots
|
|
945
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
998
946
|
* @param size The thumbnail size, formatted widthxheight
|
|
999
947
|
* @param format The thumbnail format
|
|
1000
948
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
@@ -1008,6 +956,10 @@ export const getUsersAvatarHeadshot = endpoint({
|
|
|
1008
956
|
userIds: {
|
|
1009
957
|
style: "form",
|
|
1010
958
|
},
|
|
959
|
+
includeBackground: {
|
|
960
|
+
style: "form",
|
|
961
|
+
explode: true,
|
|
962
|
+
},
|
|
1011
963
|
size: {
|
|
1012
964
|
style: "form",
|
|
1013
965
|
explode: true,
|
|
@@ -1023,6 +975,7 @@ export const getUsersAvatarHeadshot = endpoint({
|
|
|
1023
975
|
},
|
|
1024
976
|
parameters: {
|
|
1025
977
|
userIds: z.array(z.number()),
|
|
978
|
+
includeBackground: z.boolean().optional(),
|
|
1026
979
|
size: z
|
|
1027
980
|
.enum([
|
|
1028
981
|
"48x48",
|
|
@@ -1042,8 +995,7 @@ export const getUsersAvatarHeadshot = endpoint({
|
|
|
1042
995
|
format: z.enum(["Png", "Jpeg", "Webp"]).optional().default("Png"),
|
|
1043
996
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
1044
997
|
},
|
|
1045
|
-
response:
|
|
1046
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
998
|
+
response: z.void(),
|
|
1047
999
|
errors: [
|
|
1048
1000
|
{
|
|
1049
1001
|
status: 400,
|
|
@@ -1074,13 +1026,14 @@ export const getUsersOutfit3d = endpoint({
|
|
|
1074
1026
|
parameters: {
|
|
1075
1027
|
outfitId: z.number().int(),
|
|
1076
1028
|
},
|
|
1077
|
-
response:
|
|
1029
|
+
response: z.void(),
|
|
1078
1030
|
errors: [],
|
|
1079
1031
|
});
|
|
1080
1032
|
/**
|
|
1081
1033
|
* @api GET https://thumbnails.roblox.com/v1/users/outfits
|
|
1082
1034
|
* @summary Get outfits for the given CSV of userOutfitIds
|
|
1083
1035
|
* @param userOutfitIds CSV for the userOutfitIds to get user outfits
|
|
1036
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
1084
1037
|
* @param size The thumbnail size, formatted widthxheight
|
|
1085
1038
|
* @param format The thumbnail format
|
|
1086
1039
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
@@ -1094,6 +1047,10 @@ export const getUsersOutfits = endpoint({
|
|
|
1094
1047
|
userOutfitIds: {
|
|
1095
1048
|
style: "form",
|
|
1096
1049
|
},
|
|
1050
|
+
includeBackground: {
|
|
1051
|
+
style: "form",
|
|
1052
|
+
explode: true,
|
|
1053
|
+
},
|
|
1097
1054
|
size: {
|
|
1098
1055
|
style: "form",
|
|
1099
1056
|
explode: true,
|
|
@@ -1109,12 +1066,12 @@ export const getUsersOutfits = endpoint({
|
|
|
1109
1066
|
},
|
|
1110
1067
|
parameters: {
|
|
1111
1068
|
userOutfitIds: z.array(z.number()),
|
|
1069
|
+
includeBackground: z.boolean().optional(),
|
|
1112
1070
|
size: z.enum(["150x150", "420x420"]).optional().default("150x150"),
|
|
1113
1071
|
format: z.enum(["Png", "Webp"]).optional().default("Png"),
|
|
1114
1072
|
isCircular: z.union([z.literal(true), z.literal(false)]).optional(),
|
|
1115
1073
|
},
|
|
1116
|
-
response:
|
|
1117
|
-
Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
1074
|
+
response: z.void(),
|
|
1118
1075
|
errors: [
|
|
1119
1076
|
{
|
|
1120
1077
|
status: 400,
|
|
@@ -58,6 +58,7 @@ const Roblox_Thumbnails_Apis_Models_ThumbnailBatchRequest = zod_1.z.object({
|
|
|
58
58
|
isCircular: zod_1.z.boolean(),
|
|
59
59
|
accessContext: zod_1.z.string(),
|
|
60
60
|
headShape: zod_1.z.string(),
|
|
61
|
+
includeBackground: zod_1.z.boolean(),
|
|
61
62
|
});
|
|
62
63
|
const Roblox_Web_Responses_Thumbnails_ThumbnailBatchResponse = zod_1.z.object({
|
|
63
64
|
requestId: zod_1.z.string(),
|
|
@@ -788,6 +789,7 @@ exports.getPlacesGameicons = (0, __1.endpoint)({
|
|
|
788
789
|
* @param size The thumbnail size, formatted widthxheight
|
|
789
790
|
* @param format The thumbnail format
|
|
790
791
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
792
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
791
793
|
*/
|
|
792
794
|
exports.getUsersAvatar = (0, __1.endpoint)({
|
|
793
795
|
method: 'GET',
|
|
@@ -810,6 +812,10 @@ exports.getUsersAvatar = (0, __1.endpoint)({
|
|
|
810
812
|
style: 'form',
|
|
811
813
|
explode: true,
|
|
812
814
|
},
|
|
815
|
+
includeBackground: {
|
|
816
|
+
style: 'form',
|
|
817
|
+
explode: true,
|
|
818
|
+
},
|
|
813
819
|
},
|
|
814
820
|
parameters: {
|
|
815
821
|
userIds: zod_1.z.array(zod_1.z.number()),
|
|
@@ -834,6 +840,7 @@ exports.getUsersAvatar = (0, __1.endpoint)({
|
|
|
834
840
|
.default('30x30'),
|
|
835
841
|
format: zod_1.z.enum(['Png', 'Jpeg', 'Webp']).optional().default('Png'),
|
|
836
842
|
isCircular: zod_1.z.union([zod_1.z.literal(true), zod_1.z.literal(false)]).optional(),
|
|
843
|
+
includeBackground: zod_1.z.boolean().optional(),
|
|
837
844
|
},
|
|
838
845
|
response: Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
839
846
|
errors: [
|
|
@@ -881,6 +888,7 @@ exports.getUsersAvatar3d = (0, __1.endpoint)({
|
|
|
881
888
|
* @param size The thumbnail size, formatted widthxheight
|
|
882
889
|
* @param format The thumbnail format
|
|
883
890
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
891
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
884
892
|
*/
|
|
885
893
|
exports.getUsersAvatarBust = (0, __1.endpoint)({
|
|
886
894
|
method: 'GET',
|
|
@@ -903,6 +911,10 @@ exports.getUsersAvatarBust = (0, __1.endpoint)({
|
|
|
903
911
|
style: 'form',
|
|
904
912
|
explode: true,
|
|
905
913
|
},
|
|
914
|
+
includeBackground: {
|
|
915
|
+
style: 'form',
|
|
916
|
+
explode: true,
|
|
917
|
+
},
|
|
906
918
|
},
|
|
907
919
|
parameters: {
|
|
908
920
|
userIds: zod_1.z.array(zod_1.z.number()),
|
|
@@ -912,6 +924,7 @@ exports.getUsersAvatarBust = (0, __1.endpoint)({
|
|
|
912
924
|
.default('48x48'),
|
|
913
925
|
format: zod_1.z.enum(['Png', 'Webp']).optional().default('Png'),
|
|
914
926
|
isCircular: zod_1.z.union([zod_1.z.literal(true), zod_1.z.literal(false)]).optional(),
|
|
927
|
+
includeBackground: zod_1.z.boolean().optional(),
|
|
915
928
|
},
|
|
916
929
|
response: Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
917
930
|
errors: [
|
|
@@ -932,6 +945,7 @@ exports.getUsersAvatarBust = (0, __1.endpoint)({
|
|
|
932
945
|
* @param size The thumbnail size, formatted widthxheight
|
|
933
946
|
* @param format The thumbnail format
|
|
934
947
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
948
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
935
949
|
*/
|
|
936
950
|
exports.getUsersAvatarHeadshot = (0, __1.endpoint)({
|
|
937
951
|
method: 'GET',
|
|
@@ -954,6 +968,10 @@ exports.getUsersAvatarHeadshot = (0, __1.endpoint)({
|
|
|
954
968
|
style: 'form',
|
|
955
969
|
explode: true,
|
|
956
970
|
},
|
|
971
|
+
includeBackground: {
|
|
972
|
+
style: 'form',
|
|
973
|
+
explode: true,
|
|
974
|
+
},
|
|
957
975
|
},
|
|
958
976
|
parameters: {
|
|
959
977
|
userIds: zod_1.z.array(zod_1.z.number()),
|
|
@@ -975,6 +993,7 @@ exports.getUsersAvatarHeadshot = (0, __1.endpoint)({
|
|
|
975
993
|
.default('48x48'),
|
|
976
994
|
format: zod_1.z.enum(['Png', 'Jpeg', 'Webp']).optional().default('Png'),
|
|
977
995
|
isCircular: zod_1.z.union([zod_1.z.literal(true), zod_1.z.literal(false)]).optional(),
|
|
996
|
+
includeBackground: zod_1.z.boolean().optional(),
|
|
978
997
|
},
|
|
979
998
|
response: Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
980
999
|
errors: [
|
|
@@ -1017,6 +1036,7 @@ exports.getUsersOutfit3d = (0, __1.endpoint)({
|
|
|
1017
1036
|
* @param size The thumbnail size, formatted widthxheight
|
|
1018
1037
|
* @param format The thumbnail format
|
|
1019
1038
|
* @param isCircular The circle thumbnail output parameter, true or false
|
|
1039
|
+
* @param includeBackground Whether to include a background in the thumbnail (defaults to false)
|
|
1020
1040
|
*/
|
|
1021
1041
|
exports.getUsersOutfits = (0, __1.endpoint)({
|
|
1022
1042
|
method: 'GET',
|
|
@@ -1039,12 +1059,17 @@ exports.getUsersOutfits = (0, __1.endpoint)({
|
|
|
1039
1059
|
style: 'form',
|
|
1040
1060
|
explode: true,
|
|
1041
1061
|
},
|
|
1062
|
+
includeBackground: {
|
|
1063
|
+
style: 'form',
|
|
1064
|
+
explode: true,
|
|
1065
|
+
},
|
|
1042
1066
|
},
|
|
1043
1067
|
parameters: {
|
|
1044
1068
|
userOutfitIds: zod_1.z.array(zod_1.z.number()),
|
|
1045
1069
|
size: zod_1.z.enum(['150x150', '420x420']).optional().default('150x150'),
|
|
1046
1070
|
format: zod_1.z.enum(['Png', 'Webp']).optional().default('Png'),
|
|
1047
1071
|
isCircular: zod_1.z.union([zod_1.z.literal(true), zod_1.z.literal(false)]).optional(),
|
|
1072
|
+
includeBackground: zod_1.z.boolean().optional(),
|
|
1048
1073
|
},
|
|
1049
1074
|
response: Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Thumbnails_ThumbnailResponse_,
|
|
1050
1075
|
errors: [
|
package/lib/index.d.ts
CHANGED
|
@@ -24,15 +24,22 @@ export type EndpointSchema = EndpointBase & {
|
|
|
24
24
|
parameters?: any;
|
|
25
25
|
body?: any;
|
|
26
26
|
response: any;
|
|
27
|
+
/**
|
|
28
|
+
* For long-running-operation endpoints (response is an `Operation`), the schema of the
|
|
29
|
+
* completed operation's `response` payload. Lets {@link pollOperation}/{@link fetchApiOperation}
|
|
30
|
+
* validate and type the result without an explicit schema. Populated by codegen.
|
|
31
|
+
*/
|
|
32
|
+
resultResponse?: any;
|
|
27
33
|
};
|
|
28
34
|
/**
|
|
29
35
|
* This is a hack to allow us to show the parameters and response types of an endpoint
|
|
30
36
|
* as the inferred types of the parameters and response properties.
|
|
31
37
|
*/
|
|
32
|
-
export type EndpointGeneric<T, U, E> = EndpointBase & {
|
|
38
|
+
export type EndpointGeneric<T, U, E, RR = undefined> = EndpointBase & {
|
|
33
39
|
parameters?: T;
|
|
34
40
|
body?: E;
|
|
35
41
|
response: U;
|
|
42
|
+
resultResponse?: RR;
|
|
36
43
|
};
|
|
37
44
|
type InferZodObjectOptional<T extends z.ZodRawShape> = {
|
|
38
45
|
[K in keyof T]: T[K] extends z.ZodOptional<any> | z.ZodDefault<any> ? K : never;
|
|
@@ -48,7 +55,7 @@ type InferNonEmpty<T extends Record<string, z.Schema<any>>> = Merge<{
|
|
|
48
55
|
}, {
|
|
49
56
|
[K in InferZodObjectOptional<T>]?: z.infer<T[K]>;
|
|
50
57
|
}>;
|
|
51
|
-
declare const endpoint: <T extends Record<string, z.Schema<any>>, U extends z.ZodTypeAny, E extends z.ZodTypeAny | undefined = undefined>(endpoint: EndpointGeneric<T, U, E>) => EndpointGeneric<InferNonEmpty<T>, z.infer<U>, E extends z.ZodTypeAny ? z.infer<E> : undefined>;
|
|
58
|
+
declare const endpoint: <T extends Record<string, z.Schema<any>>, U extends z.ZodTypeAny, E extends z.ZodTypeAny | undefined = undefined, RR extends z.ZodTypeAny | undefined = undefined>(endpoint: EndpointGeneric<T, U, E, RR>) => EndpointGeneric<InferNonEmpty<T>, z.infer<U>, E extends z.ZodTypeAny ? z.infer<E> : undefined, RR extends z.ZodTypeAny ? z.infer<RR> : undefined>;
|
|
52
59
|
type IsExactlyUndefined<T> = [T] extends [undefined] ? ([undefined] extends [T] ? true : false) : false;
|
|
53
60
|
type ExtractParams<S extends EndpointGeneric<any, any, any>> = S['parameters'] extends undefined ? IsExactlyUndefined<S['body']> extends true ? undefined : {
|
|
54
61
|
body: S['body'];
|
|
@@ -56,6 +63,7 @@ type ExtractParams<S extends EndpointGeneric<any, any, any>> = S['parameters'] e
|
|
|
56
63
|
body: S['body'];
|
|
57
64
|
};
|
|
58
65
|
type ExtractResponse<S extends EndpointGeneric<any, any, any>> = S['response'];
|
|
66
|
+
type ExtractOperationResult<S extends EndpointSchema> = [S['resultResponse']] extends [undefined] ? unknown : NonNullable<S['resultResponse']>;
|
|
59
67
|
type RetryOptions = {
|
|
60
68
|
retries?: number;
|
|
61
69
|
retryDelay?: number;
|
|
@@ -386,4 +394,89 @@ declare function fetchApiPages<S extends EndpointSchema>(endpoint: S, initialPar
|
|
|
386
394
|
* ```
|
|
387
395
|
*/
|
|
388
396
|
declare function fetchApiPagesGenerator<S extends EndpointSchema, R extends boolean>(endpoint: S, initialParams: ExtractParams<S>, requestOptions?: RequestOptions<R>, limit?: number): AsyncGenerator<ExtractResponse<S> | AnyError, void, unknown>;
|
|
389
|
-
|
|
397
|
+
/**
|
|
398
|
+
* Roblox Open Cloud long-running operation envelope. Endpoints such as
|
|
399
|
+
* `generateThumbnail` / `generateAsset` return this instead of the final
|
|
400
|
+
* result: `done` is false until the work completes, at which point `response`
|
|
401
|
+
* holds the payload. Fields are optional because the API omits `response`
|
|
402
|
+
* (and sometimes `done`) while the operation is still in progress.
|
|
403
|
+
*/
|
|
404
|
+
export declare const OperationSchema: z.ZodObject<{
|
|
405
|
+
path: z.ZodString;
|
|
406
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
407
|
+
done: z.ZodOptional<z.ZodBoolean>;
|
|
408
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
409
|
+
code: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
410
|
+
message: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
411
|
+
details: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodAny>>>;
|
|
412
|
+
}, z.core.$strip>>;
|
|
413
|
+
response: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
414
|
+
}, z.core.$strip>;
|
|
415
|
+
export type Operation = z.infer<typeof OperationSchema>;
|
|
416
|
+
/** Minimal shape accepted by {@link pollOperation} — assignable from any generated Operation response. */
|
|
417
|
+
type OperationLike = {
|
|
418
|
+
path: string;
|
|
419
|
+
done?: boolean;
|
|
420
|
+
response?: unknown;
|
|
421
|
+
error?: {
|
|
422
|
+
code?: number;
|
|
423
|
+
message?: string;
|
|
424
|
+
} | null;
|
|
425
|
+
};
|
|
426
|
+
type PollOperationOptions<R extends boolean = false> = {
|
|
427
|
+
/** Delay between polls in milliseconds. Default 1000. */
|
|
428
|
+
interval?: number;
|
|
429
|
+
/** Give up after this many milliseconds and throw. Default 30000. */
|
|
430
|
+
timeout?: number;
|
|
431
|
+
/** Abort the poll early; rejects with the signal's reason. */
|
|
432
|
+
signal?: AbortSignal;
|
|
433
|
+
/** Override the base URL the operation path is resolved against. Defaults to the originating endpoint's `baseUrl`. */
|
|
434
|
+
baseUrl?: string;
|
|
435
|
+
/**
|
|
436
|
+
* Override the API-version prefix inserted between the base URL and the
|
|
437
|
+
* operation path (e.g. `/assets/v1`). By default it is derived from the
|
|
438
|
+
* originating endpoint's path, which works for operations whose path is
|
|
439
|
+
* relative to the endpoint's own version (e.g. `users/123/operations/…`).
|
|
440
|
+
*/
|
|
441
|
+
pathPrefix?: string;
|
|
442
|
+
/** Forwarded to each poll request (headers such as the API key, retries, credentials, …). */
|
|
443
|
+
requestOptions?: RequestOptions<R>;
|
|
444
|
+
};
|
|
445
|
+
/**
|
|
446
|
+
* Polls a Roblox Open Cloud long-running {@link Operation} until it completes,
|
|
447
|
+
* then returns its final `response` payload.
|
|
448
|
+
*
|
|
449
|
+
* Generate-style endpoints (e.g. `getCloudV2UsersUserIdGenerateThumbnail`)
|
|
450
|
+
* return an {@link Operation} rather than the result itself. When the result
|
|
451
|
+
* isn't cached, `done` is false and you must GET the operation's `path` until
|
|
452
|
+
* it flips true. This helper does that, resolving the path against the
|
|
453
|
+
* originating endpoint's base URL and version prefix.
|
|
454
|
+
*
|
|
455
|
+
* The result is validated against `resultSchema` if given; otherwise it falls
|
|
456
|
+
* back to the endpoint's codegen'd `resultResponse` schema (so generated
|
|
457
|
+
* operation endpoints need no explicit schema). With neither, the raw payload
|
|
458
|
+
* is returned as `unknown`.
|
|
459
|
+
*
|
|
460
|
+
* @example
|
|
461
|
+
* // Typed automatically from the endpoint's result schema:
|
|
462
|
+
* const { imageUri } = await pollOperation(getCloudV2UsersUserIdGenerateThumbnail, op);
|
|
463
|
+
* // Or with an explicit schema for custom/unknown payloads:
|
|
464
|
+
* const result = await pollOperation(customEndpoint, op, z.object({ imageUri: z.string() }));
|
|
465
|
+
*/
|
|
466
|
+
declare function pollOperation<S extends EndpointSchema, T extends z.ZodTypeAny>(endpoint: S, operation: OperationLike, resultSchema: T, options?: PollOperationOptions): Promise<z.infer<T>>;
|
|
467
|
+
declare function pollOperation<S extends EndpointSchema>(endpoint: S, operation: OperationLike, options?: PollOperationOptions): Promise<ExtractOperationResult<S>>;
|
|
468
|
+
/**
|
|
469
|
+
* Fires a long-running-operation endpoint and waits for its result in one call —
|
|
470
|
+
* `fetchApi` followed by {@link pollOperation}, using a single endpoint reference.
|
|
471
|
+
*
|
|
472
|
+
* The result is typed from the endpoint's codegen'd `resultResponse` schema when
|
|
473
|
+
* present; pass an explicit `resultSchema` for custom endpoints or to override it.
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* const { imageUri } = await fetchApiOperation(getCloudV2UsersUserIdGenerateThumbnail, {
|
|
477
|
+
* user_id: robloxId, shape: 'SQUARE', format: 'PNG',
|
|
478
|
+
* });
|
|
479
|
+
*/
|
|
480
|
+
declare function fetchApiOperation<S extends EndpointSchema, T extends z.ZodTypeAny>(endpoint: S, params: ExtractParams<S>, resultSchema: T, options?: PollOperationOptions): Promise<z.infer<T>>;
|
|
481
|
+
declare function fetchApiOperation<S extends EndpointSchema>(endpoint: S, params: ExtractParams<S>, options?: PollOperationOptions): Promise<ExtractOperationResult<S>>;
|
|
482
|
+
export { fetchApi, fetchApiSplit, fetchApiPages, fetchApiPagesGenerator, pollOperation, fetchApiOperation, ExtractResponse, ExtractParams, endpoint, };
|