rozod 6.6.0 → 6.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +11 -11
  2. package/lib/endpoints/accountinformationv1.d.ts +50 -87
  3. package/lib/endpoints/accountinformationv1.js +46 -90
  4. package/lib/endpoints/assetdeliveryv1.d.ts +1 -0
  5. package/lib/endpoints/assetdeliveryv1.js +1 -0
  6. package/lib/endpoints/assetdeliveryv2.d.ts +1 -0
  7. package/lib/endpoints/assetdeliveryv2.js +1 -0
  8. package/lib/endpoints/authv1.d.ts +64 -1
  9. package/lib/endpoints/authv1.js +67 -3
  10. package/lib/endpoints/authv2.d.ts +21 -0
  11. package/lib/endpoints/authv2.js +22 -1
  12. package/lib/endpoints/avatarv1.d.ts +9 -6
  13. package/lib/endpoints/avatarv1.js +9 -6
  14. package/lib/endpoints/avatarv2.d.ts +11 -5
  15. package/lib/endpoints/avatarv2.js +11 -5
  16. package/lib/endpoints/avatarv3.d.ts +16 -7
  17. package/lib/endpoints/avatarv3.js +16 -7
  18. package/lib/endpoints/catalogv1.d.ts +23 -2
  19. package/lib/endpoints/catalogv1.js +19 -2
  20. package/lib/endpoints/catalogv2.d.ts +242 -6
  21. package/lib/endpoints/catalogv2.js +235 -7
  22. package/lib/endpoints/chatv2.d.ts +778 -778
  23. package/lib/endpoints/clientsettingsv2.d.ts +6 -0
  24. package/lib/endpoints/clientsettingsv2.js +6 -0
  25. package/lib/endpoints/contactsv1.d.ts +18 -22
  26. package/lib/endpoints/contactsv1.js +14 -22
  27. package/lib/endpoints/developv1.d.ts +33 -1
  28. package/lib/endpoints/developv1.js +9 -3
  29. package/lib/endpoints/developv2.d.ts +29 -2
  30. package/lib/endpoints/developv2.js +13 -4
  31. package/lib/endpoints/gameinternationalizationv1.d.ts +59 -0
  32. package/lib/endpoints/gameinternationalizationv1.js +57 -1
  33. package/lib/endpoints/gamejoinv1.d.ts +458 -458
  34. package/lib/endpoints/gamesv1.d.ts +74 -95
  35. package/lib/endpoints/gamesv1.js +68 -97
  36. package/lib/endpoints/gamesv2.d.ts +2 -0
  37. package/lib/endpoints/gamesv2.js +2 -0
  38. package/lib/endpoints/groupsv1.d.ts +7 -3
  39. package/lib/endpoints/groupsv1.js +7 -3
  40. package/lib/endpoints/groupsv2.d.ts +1 -0
  41. package/lib/endpoints/groupsv2.js +1 -0
  42. package/lib/endpoints/inventoryv2.d.ts +68 -0
  43. package/lib/endpoints/inventoryv2.js +66 -1
  44. package/lib/endpoints/localev1.d.ts +27 -0
  45. package/lib/endpoints/localev1.js +28 -1
  46. package/lib/endpoints/metricsv1.d.ts +88 -88
  47. package/lib/endpoints/publishv1.d.ts +3 -6
  48. package/lib/endpoints/publishv1.js +3 -6
  49. package/lib/opencloud/v2/cloud.d.ts +28 -31
  50. package/lib/opencloud/v2/cloud.js +45 -46
  51. package/package.json +108 -64
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValidatorsRecommendedusernamefromdisplayname = exports.getValidatorsEmail = exports.postUsernamesValidate = exports.getUsernamesValidate = exports.postUsernamesRecover = exports.getUsernames = exports.postUsername = exports.postUserPasswordsChange = exports.getSocialConnectedProviders = exports.postSocialProviderDisconnect = exports.postSignupLinked = exports.postSignup = exports.postSessionRefresh = exports.postRevertInvalidateTickets = exports.postRevertAccount = exports.getRevertAccount = exports.getRecoveryMetadata = exports.postPasswordsValidate = exports.getPasswordsValidate = exports.postPasskeyStartregistration = exports.postPasskeyStartauthentication = exports.postPasskeyStartPreauthRegistration = exports.postPasskeyStartAuthenticationByUser = exports.postPasskeyListcredentials = exports.postPasskeyFinishregistration = exports.postPasskeyFinishPreauthRegistration = exports.postPasskeyFinishArPreauthRegistration = exports.postPasskeyDeletecredentialbatch = exports.getMetadata = exports.postLogoutfromallsessionsandreauthenticate = exports.postLogout = exports.postLoginLinked = exports.postLogin = exports.postIdentityInitializeLogin = exports.postIdentityVerificationLogin = exports.postExternalUnlink = exports.postExternalSignup = exports.postExternalLoginandlink = exports.postExternalLogin = exports.postExternalAccess = exports.getExternalIdentityprovideridSsoOauthInit = exports.getExternalIdentityprovideridSsoOauthCallback = exports.getClientAssertion = exports.getAuthMetadata = exports.postAccountPinUnlock = exports.postAccountPinLock = exports.patchAccountPin = exports.deleteAccountPin = exports.postAccountPin = exports.getAccountPin = void 0;
4
- exports.postXboxTranslate = exports.getXboxGetLoginConsecutiveDays = exports.postXboxDisconnect = exports.getXboxConnection = exports.postValidatorsUsername = exports.getValidatorsUsername = exports.postValidatorsRecommendedusernamefromdisplayname = void 0;
3
+ exports.getUsernamesValidate = exports.postUsernamesRecover = exports.getUsernames = exports.getUsernameChangePrice = exports.postUsername = exports.postUserPasswordsChange = exports.getSocialConnectedProviders = exports.postSocialProviderDisconnect = exports.postSignupLinked = exports.postSignup = exports.postSessionRefresh = exports.postRevertInvalidateTickets = exports.postRevertAccount = exports.getRevertAccount = exports.getRecoveryMetadata = exports.postPasswordsValidate = exports.getPasswordsValidate = exports.getPasskeySuEligibility = exports.postPasskeyStartregistration = exports.postPasskeyStartauthentication = exports.postPasskeyStartPreauthRegistration = exports.postPasskeyStartAuthenticationByUser = exports.postPasskeyListcredentials = exports.postPasskeyFinishregistration = exports.postPasskeyFinishPreauthRegistration = exports.postPasskeyFinishArPreauthRegistration = exports.postPasskeyDeletecredentialbatch = exports.getMetadata = exports.postLogoutfromallsessionsandreauthenticate = exports.postLogout = exports.postLoginLinked = exports.postLogin = exports.postIdentityInitializeLogin = exports.postIdentityVerificationLogin = exports.postExternalUnlink = exports.postExternalSignup = exports.postExternalLoginandlink = exports.postExternalLogin = exports.postExternalAccess = exports.getExternalIdentityprovideridSsoOauthInit = exports.getExternalIdentityprovideridSsoOauthCallback = exports.getClientAssertion = exports.getAuthMetadata = exports.postAccountPinUnlock = exports.postAccountPinLock = exports.patchAccountPin = exports.deleteAccountPin = exports.postAccountPin = exports.getAccountPin = exports.getAccountCreationMetadata = void 0;
4
+ exports.postXboxTranslate = exports.getXboxGetLoginConsecutiveDays = exports.postXboxDisconnect = exports.getXboxConnection = exports.postValidatorsUsername = exports.getValidatorsUsername = exports.postValidatorsRecommendedusernamefromdisplayname = exports.getValidatorsRecommendedusernamefromdisplayname = exports.getValidatorsEmail = exports.postUsernamesValidate = void 0;
5
5
  const zod_1 = require("zod");
6
6
  const __1 = require("..");
7
+ const Roblox_Authentication_Api_Models_AuthMethodsMetadataResponse = zod_1.z.object({
8
+ isEligibleForALSignup: zod_1.z.boolean(),
9
+ });
7
10
  const Roblox_Authentication_Api_Models_AccountPinStatusResponse = zod_1.z.object({
8
11
  isEnabled: zod_1.z.boolean(),
9
12
  unlockedUntil: zod_1.z.number(),
@@ -32,6 +35,9 @@ const Roblox_Authentication_Api_Models_MetadataResponse = zod_1.z.object({
32
35
  IsAltBrowserTracker: zod_1.z.boolean(),
33
36
  IsLoginRedirectPageEnabled: zod_1.z.boolean(),
34
37
  });
38
+ const Roblox_Authentication_Api_Models_Response_SilentUpgradeEligibilityResponse = zod_1.z.object({
39
+ suEligibility: zod_1.z.boolean(),
40
+ });
35
41
  const Roblox_Authentication_Api_Models_PasswordValidationResponse = zod_1.z.object({
36
42
  code: zod_1.z.enum([
37
43
  'ValidPassword',
@@ -110,6 +116,10 @@ const Roblox_Authentication_Api_Models_ProviderInfoModel = zod_1.z.object({
110
116
  const Roblox_Authentication_Api_Models_SocialProvidersResponse = zod_1.z.object({
111
117
  providers: zod_1.z.array(Roblox_Authentication_Api_Models_ProviderInfoModel),
112
118
  });
119
+ const Roblox_Authentication_Api_Models_UsernameChangePriceResponse = zod_1.z.object({
120
+ priceInRobux: zod_1.z.number().int(),
121
+ basePriceInRobux: zod_1.z.number().int(),
122
+ });
113
123
  const Roblox_Authentication_Api_Models_UsernamesResponse = zod_1.z.object({
114
124
  usernames: zod_1.z.array(zod_1.z.string()),
115
125
  });
@@ -315,6 +325,7 @@ const Roblox_Authentication_Api_Models_Request_FinishPasskeyRegistrationRequest
315
325
  sessionId: zod_1.z.string(),
316
326
  credentialNickname: zod_1.z.string(),
317
327
  attestationResponse: zod_1.z.string(),
328
+ source: zod_1.z.string(),
318
329
  });
319
330
  const Roblox_Authentication_Api_Models_Request_ListPasskeysRequest = zod_1.z.object({
320
331
  all: zod_1.z.boolean(),
@@ -455,6 +466,18 @@ const Roblox_Authentication_Api_Models_XboxUserModel = zod_1.z.object({
455
466
  const Roblox_Authentication_Api_Models_XboxCollectionsOfUserResponse = zod_1.z.object({
456
467
  Users: zod_1.z.array(Roblox_Authentication_Api_Models_XboxUserModel),
457
468
  });
469
+ /**
470
+ * @api GET https://auth.roblox.com/v1/account-creation/metadata
471
+ * @summary Get metadata for adding auth methods.
472
+ */
473
+ exports.getAccountCreationMetadata = (0, __1.endpoint)({
474
+ method: 'GET',
475
+ path: '/v1/account-creation/metadata',
476
+ baseUrl: 'https://auth.roblox.com',
477
+ requestFormat: 'json',
478
+ response: zod_1.z.object({ isEligibleForALSignup: zod_1.z.boolean() }),
479
+ errors: [],
480
+ });
458
481
  /**
459
482
  * @api GET https://auth.roblox.com/v1/account/pin
460
483
  * @summary Gets the account pin status.
@@ -872,7 +895,8 @@ exports.postIdentityInitializeLogin = (0, __1.endpoint)({
872
895
  {
873
896
  status: 403,
874
897
  description: `0: Token Validation Failed
875
- 2: Invalid user identifier.`,
898
+ 2: Invalid user identifier.
899
+ 4: No login methods available. Please use account recovery.`,
876
900
  },
877
901
  {
878
902
  status: 500,
@@ -1345,6 +1369,29 @@ exports.postPasskeyStartregistration = (0, __1.endpoint)({
1345
1369
  },
1346
1370
  ],
1347
1371
  });
1372
+ /**
1373
+ * @api GET https://auth.roblox.com/v1/passkey/su-eligibility
1374
+ * @summary Checks whether the authenticated user is eligible for silent passkey upgrade.
1375
+ Route and response are intentionally obfuscated ("su-eligibility" = "silent-upgrade-eligibility").
1376
+ */
1377
+ exports.getPasskeySuEligibility = (0, __1.endpoint)({
1378
+ method: 'GET',
1379
+ path: '/v1/passkey/su-eligibility',
1380
+ baseUrl: 'https://auth.roblox.com',
1381
+ requestFormat: 'json',
1382
+ response: zod_1.z.object({ suEligibility: zod_1.z.boolean() }),
1383
+ errors: [
1384
+ {
1385
+ status: 401,
1386
+ description: `0: Authorization has been denied for this request.
1387
+ 0: An unknown error occurred with the request.`,
1388
+ },
1389
+ {
1390
+ status: 503,
1391
+ description: `2: Feature disabled.`,
1392
+ },
1393
+ ],
1394
+ });
1348
1395
  /**
1349
1396
  * @api GET https://auth.roblox.com/v1/passwords/validate
1350
1397
  * @summary Endpoint for checking if a password is valid.
@@ -1801,6 +1848,23 @@ exports.postUsername = (0, __1.endpoint)({
1801
1848
  },
1802
1849
  ],
1803
1850
  });
1851
+ /**
1852
+ * @api GET https://auth.roblox.com/v1/username/change/price
1853
+ * @summary Get the current price for a username change
1854
+ */
1855
+ exports.getUsernameChangePrice = (0, __1.endpoint)({
1856
+ method: 'GET',
1857
+ path: '/v1/username/change/price',
1858
+ baseUrl: 'https://auth.roblox.com',
1859
+ requestFormat: 'json',
1860
+ response: Roblox_Authentication_Api_Models_UsernameChangePriceResponse,
1861
+ errors: [
1862
+ {
1863
+ status: 401,
1864
+ description: `0: Authorization has been denied for this request.`,
1865
+ },
1866
+ ],
1867
+ });
1804
1868
  /**
1805
1869
  * @api GET https://auth.roblox.com/v1/usernames
1806
1870
  * @summary Gets a list of existing usernames on Roblox based on the query parameters
@@ -123,6 +123,10 @@ const Roblox_Authentication_Api_Models_RevertAccountSubmitRequest = z.object({
123
123
  TwoStepVerificationChallengeId: z.string(),
124
124
  TwoStepVerificationToken: z.string(),
125
125
  });
126
+ const Roblox_Authentication_Api_Models_UsernameChangePriceResponse = z.object({
127
+ priceInRobux: z.number().int(),
128
+ basePriceInRobux: z.number().int(),
129
+ });
126
130
  const Roblox_Authentication_Api_Models_UsernamesResponse = z.object({
127
131
  usernames: z.array(z.string()),
128
132
  });
@@ -1090,6 +1094,23 @@ export const postUsername = endpoint({
1090
1094
  },
1091
1095
  ],
1092
1096
  });
1097
+ /**
1098
+ * @api GET https://auth.roblox.com/v2/username/change/price
1099
+ * @summary Get the current price for a username change
1100
+ */
1101
+ export const getUsernameChangePrice = endpoint({
1102
+ method: "GET",
1103
+ path: "/v2/username/change/price",
1104
+ baseUrl: "https://auth.roblox.com",
1105
+ requestFormat: "json",
1106
+ response: Roblox_Authentication_Api_Models_UsernameChangePriceResponse,
1107
+ errors: [
1108
+ {
1109
+ status: 401,
1110
+ description: `0: Authorization has been denied for this request.`,
1111
+ },
1112
+ ],
1113
+ });
1093
1114
  /**
1094
1115
  * @api GET https://auth.roblox.com/v2/usernames
1095
1116
  * @summary Gets a list of existing usernames on Roblox based on the query parameters
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postUsernamesValidate = exports.getUsernamesValidate = exports.postUsernamesRecover = exports.getUsernames = exports.postUsername = exports.postUserPasswordsChange = exports.postSignupLinked = exports.postSignup = exports.postSessionRefresh = exports.postRevertInvalidateTickets = exports.postRevertAccount = exports.getRevertAccount = exports.getRecoveryMetadata = exports.postPasswordsValidate = exports.getPasswordsValidate = exports.postPasswordsResetVerify = exports.postPasswordsResetSend = exports.postPasswordsReset = exports.getPasswordsReset = exports.getPasswordsCurrentStatus = exports.getMetadata = exports.postLogoutfromallsessionsandreauthenticate = exports.postLogout = exports.postLoginLinked = exports.postLogin = exports.postIdentityVerificationLogin = exports.getAuthMetadata = void 0;
3
+ exports.postUsernamesValidate = exports.getUsernamesValidate = exports.postUsernamesRecover = exports.getUsernames = exports.getUsernameChangePrice = exports.postUsername = exports.postUserPasswordsChange = exports.postSignupLinked = exports.postSignup = exports.postSessionRefresh = exports.postRevertInvalidateTickets = exports.postRevertAccount = exports.getRevertAccount = exports.getRecoveryMetadata = exports.postPasswordsValidate = exports.getPasswordsValidate = exports.postPasswordsResetVerify = exports.postPasswordsResetSend = exports.postPasswordsReset = exports.getPasswordsReset = exports.getPasswordsCurrentStatus = exports.getMetadata = exports.postLogoutfromallsessionsandreauthenticate = exports.postLogout = exports.postLoginLinked = exports.postLogin = exports.postIdentityVerificationLogin = exports.getAuthMetadata = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const __1 = require("..");
6
6
  const Roblox_Authentication_Api_Models_AuthMetaDataResponse = zod_1.z.object({
@@ -121,6 +121,10 @@ const Roblox_Authentication_Api_Models_RevertAccountSubmitRequest = zod_1.z.obje
121
121
  TwoStepVerificationChallengeId: zod_1.z.string(),
122
122
  TwoStepVerificationToken: zod_1.z.string(),
123
123
  });
124
+ const Roblox_Authentication_Api_Models_UsernameChangePriceResponse = zod_1.z.object({
125
+ priceInRobux: zod_1.z.number().int(),
126
+ basePriceInRobux: zod_1.z.number().int(),
127
+ });
124
128
  const Roblox_Authentication_Api_Models_UsernamesResponse = zod_1.z.object({
125
129
  usernames: zod_1.z.array(zod_1.z.string()),
126
130
  });
@@ -1079,6 +1083,23 @@ exports.postUsername = (0, __1.endpoint)({
1079
1083
  },
1080
1084
  ],
1081
1085
  });
1086
+ /**
1087
+ * @api GET https://auth.roblox.com/v2/username/change/price
1088
+ * @summary Get the current price for a username change
1089
+ */
1090
+ exports.getUsernameChangePrice = (0, __1.endpoint)({
1091
+ method: 'GET',
1092
+ path: '/v2/username/change/price',
1093
+ baseUrl: 'https://auth.roblox.com',
1094
+ requestFormat: 'json',
1095
+ response: Roblox_Authentication_Api_Models_UsernameChangePriceResponse,
1096
+ errors: [
1097
+ {
1098
+ status: 401,
1099
+ description: `0: Authorization has been denied for this request.`,
1100
+ },
1101
+ ],
1102
+ });
1082
1103
  /**
1083
1104
  * @api GET https://auth.roblox.com/v2/usernames
1084
1105
  * @summary Gets a list of existing usernames on Roblox based on the query parameters
@@ -492,10 +492,6 @@ export const postOutfitsUseroutfitidDelete = endpoint({
492
492
  },
493
493
  response: z.object({ success: z.boolean() }),
494
494
  errors: [
495
- {
496
- status: 400,
497
- description: `1: The specified userOutfitId is invalid!`,
498
- },
499
495
  {
500
496
  status: 401,
501
497
  description: `0: Authorization has been denied for this request.`,
@@ -505,6 +501,10 @@ export const postOutfitsUseroutfitidDelete = endpoint({
505
501
  description: `0: Token Validation Failed
506
502
  2: You don't have permission to delete this outfit.`,
507
503
  },
504
+ {
505
+ status: 404,
506
+ description: `1: The specified userOutfitId is invalid!`,
507
+ },
508
508
  {
509
509
  status: 500,
510
510
  description: `3: An error occurred while deleting the outfit.`,
@@ -538,13 +538,16 @@ export const getOutfitsUseroutfitidDetails = endpoint({
538
538
  errors: [
539
539
  {
540
540
  status: 400,
541
- description: `1: The specified userOutfitId is invalid.
542
- 2: The outfit for the specified userOutfit is invalid.`,
541
+ description: `2: The outfit for the specified userOutfit is invalid.`,
543
542
  },
544
543
  {
545
544
  status: 403,
546
545
  description: `3: The requester does not have access to the details for the given user outfit.`,
547
546
  },
547
+ {
548
+ status: 404,
549
+ description: `1: The specified userOutfitId is invalid.`,
550
+ },
548
551
  ],
549
552
  });
550
553
  /**
@@ -489,10 +489,6 @@ exports.postOutfitsUseroutfitidDelete = (0, __1.endpoint)({
489
489
  },
490
490
  response: zod_1.z.object({ success: zod_1.z.boolean() }),
491
491
  errors: [
492
- {
493
- status: 400,
494
- description: `1: The specified userOutfitId is invalid!`,
495
- },
496
492
  {
497
493
  status: 401,
498
494
  description: `0: Authorization has been denied for this request.`,
@@ -502,6 +498,10 @@ exports.postOutfitsUseroutfitidDelete = (0, __1.endpoint)({
502
498
  description: `0: Token Validation Failed
503
499
  2: You don't have permission to delete this outfit.`,
504
500
  },
501
+ {
502
+ status: 404,
503
+ description: `1: The specified userOutfitId is invalid!`,
504
+ },
505
505
  {
506
506
  status: 500,
507
507
  description: `3: An error occurred while deleting the outfit.`,
@@ -535,13 +535,16 @@ exports.getOutfitsUseroutfitidDetails = (0, __1.endpoint)({
535
535
  errors: [
536
536
  {
537
537
  status: 400,
538
- description: `1: The specified userOutfitId is invalid.
539
- 2: The outfit for the specified userOutfit is invalid.`,
538
+ description: `2: The outfit for the specified userOutfit is invalid.`,
540
539
  },
541
540
  {
542
541
  status: 403,
543
542
  description: `3: The requester does not have access to the details for the given user outfit.`,
544
543
  },
544
+ {
545
+ status: 404,
546
+ description: `1: The specified userOutfitId is invalid.`,
547
+ },
545
548
  ],
546
549
  });
547
550
  /**
@@ -403,14 +403,14 @@ export const patchOutfitsUseroutfitid = endpoint({
403
403
  errors: [
404
404
  {
405
405
  status: 400,
406
- description: `1: The specified userOutfit does not exist!
407
- 1: Must provide both assetIds and bodyColors in to update outfit contents.
408
- 3: Body colors must be valid BrickColor IDs
406
+ description: `3: Body colors must be valid BrickColor IDs
409
407
  4: Invalid outfit name
410
408
  5: Asset is not wearable by you
411
409
  8: Invalid Player Avatar Type. Valid types are R6 and R15
412
410
  11: Meta does not apply to specified asset type
413
- 12: Meta is required for this specific asset type`,
411
+ 12: Meta is required for this specific asset type
412
+ 13: Invalid Outfit Type
413
+ 14: Invalid scale`,
414
414
  },
415
415
  {
416
416
  status: 401,
@@ -421,6 +421,10 @@ export const patchOutfitsUseroutfitid = endpoint({
421
421
  description: `0: Token Validation Failed
422
422
  2: You don't have permission to update this outfit.`,
423
423
  },
424
+ {
425
+ status: 404,
426
+ description: `1: The specified userOutfit does not exist!`,
427
+ },
424
428
  {
425
429
  status: 500,
426
430
  description: `6: An error occurred while trying to update the outfit`,
@@ -460,7 +464,9 @@ export const postOutfitsCreate = endpoint({
460
464
  7: Invalid Player Avatar Type. Valid types are R6 and R15
461
465
  8: Invalid assetIds
462
466
  9: Meta does not apply to specified asset type
463
- 10: Required meta is not provided for the specific asset type`,
467
+ 10: Required meta is not provided for the specific asset type
468
+ 12: Outfit type invalid or not permitted
469
+ 13: Invalid Scale`,
464
470
  },
465
471
  {
466
472
  status: 401,
@@ -396,14 +396,14 @@ exports.patchOutfitsUseroutfitid = (0, __1.endpoint)({
396
396
  errors: [
397
397
  {
398
398
  status: 400,
399
- description: `1: The specified userOutfit does not exist!
400
- 1: Must provide both assetIds and bodyColors in to update outfit contents.
401
- 3: Body colors must be valid BrickColor IDs
399
+ description: `3: Body colors must be valid BrickColor IDs
402
400
  4: Invalid outfit name
403
401
  5: Asset is not wearable by you
404
402
  8: Invalid Player Avatar Type. Valid types are R6 and R15
405
403
  11: Meta does not apply to specified asset type
406
- 12: Meta is required for this specific asset type`,
404
+ 12: Meta is required for this specific asset type
405
+ 13: Invalid Outfit Type
406
+ 14: Invalid scale`,
407
407
  },
408
408
  {
409
409
  status: 401,
@@ -414,6 +414,10 @@ exports.patchOutfitsUseroutfitid = (0, __1.endpoint)({
414
414
  description: `0: Token Validation Failed
415
415
  2: You don't have permission to update this outfit.`,
416
416
  },
417
+ {
418
+ status: 404,
419
+ description: `1: The specified userOutfit does not exist!`,
420
+ },
417
421
  {
418
422
  status: 500,
419
423
  description: `6: An error occurred while trying to update the outfit`,
@@ -453,7 +457,9 @@ exports.postOutfitsCreate = (0, __1.endpoint)({
453
457
  7: Invalid Player Avatar Type. Valid types are R6 and R15
454
458
  8: Invalid assetIds
455
459
  9: Meta does not apply to specified asset type
456
- 10: Required meta is not provided for the specific asset type`,
460
+ 10: Required meta is not provided for the specific asset type
461
+ 12: Outfit type invalid or not permitted
462
+ 13: Invalid Scale`,
457
463
  },
458
464
  {
459
465
  status: 401,
@@ -158,14 +158,14 @@ export const patchOutfitsUseroutfitid = endpoint({
158
158
  errors: [
159
159
  {
160
160
  status: 400,
161
- description: `1: The specified userOutfit does not exist!
162
- 1: Must provide both assetIds and bodyColors in to update outfit contents.
163
- 3: Body colors must be valid BrickColor IDs
161
+ description: `3: Body colors must be valid BrickColor IDs
164
162
  4: Invalid outfit name
165
163
  5: Asset is not wearable by you
166
164
  8: Invalid Player Avatar Type. Valid types are R6 and R15
167
165
  11: Meta does not apply to specified asset type
168
- 12: Meta is required for this specific asset type`,
166
+ 12: Meta is required for this specific asset type
167
+ 13: Invalid Outfit Type
168
+ 14: Invalid scale`,
169
169
  },
170
170
  {
171
171
  status: 401,
@@ -176,6 +176,10 @@ export const patchOutfitsUseroutfitid = endpoint({
176
176
  description: `0: Token Validation Failed
177
177
  2: You don't have permission to update this outfit.`,
178
178
  },
179
+ {
180
+ status: 404,
181
+ description: `1: The specified userOutfit does not exist!`,
182
+ },
179
183
  {
180
184
  status: 500,
181
185
  description: `6: An error occurred while trying to update the outfit`,
@@ -215,13 +219,16 @@ export const getOutfitsUseroutfitidDetails = endpoint({
215
219
  errors: [
216
220
  {
217
221
  status: 400,
218
- description: `1: The specified userOutfitId is invalid.
219
- 2: The outfit for the specified userOutfit is invalid.`,
222
+ description: `2: The outfit for the specified userOutfit is invalid.`,
220
223
  },
221
224
  {
222
225
  status: 403,
223
226
  description: `3: The requester does not have access to the details for the given user outfit.`,
224
227
  },
228
+ {
229
+ status: 404,
230
+ description: `1: The specified userOutfitId is invalid.`,
231
+ },
225
232
  ],
226
233
  });
227
234
  /**
@@ -257,7 +264,9 @@ export const postOutfitsCreate = endpoint({
257
264
  7: Invalid Player Avatar Type. Valid types are R6 and R15
258
265
  8: Invalid assetIds
259
266
  9: Meta does not apply to specified asset type
260
- 10: Required meta is not provided for the specific asset type`,
267
+ 10: Required meta is not provided for the specific asset type
268
+ 12: Outfit type invalid or not permitted
269
+ 13: Invalid Scale`,
261
270
  },
262
271
  {
263
272
  status: 401,
@@ -153,14 +153,14 @@ exports.patchOutfitsUseroutfitid = (0, __1.endpoint)({
153
153
  errors: [
154
154
  {
155
155
  status: 400,
156
- description: `1: The specified userOutfit does not exist!
157
- 1: Must provide both assetIds and bodyColors in to update outfit contents.
158
- 3: Body colors must be valid BrickColor IDs
156
+ description: `3: Body colors must be valid BrickColor IDs
159
157
  4: Invalid outfit name
160
158
  5: Asset is not wearable by you
161
159
  8: Invalid Player Avatar Type. Valid types are R6 and R15
162
160
  11: Meta does not apply to specified asset type
163
- 12: Meta is required for this specific asset type`,
161
+ 12: Meta is required for this specific asset type
162
+ 13: Invalid Outfit Type
163
+ 14: Invalid scale`,
164
164
  },
165
165
  {
166
166
  status: 401,
@@ -171,6 +171,10 @@ exports.patchOutfitsUseroutfitid = (0, __1.endpoint)({
171
171
  description: `0: Token Validation Failed
172
172
  2: You don't have permission to update this outfit.`,
173
173
  },
174
+ {
175
+ status: 404,
176
+ description: `1: The specified userOutfit does not exist!`,
177
+ },
174
178
  {
175
179
  status: 500,
176
180
  description: `6: An error occurred while trying to update the outfit`,
@@ -210,13 +214,16 @@ exports.getOutfitsUseroutfitidDetails = (0, __1.endpoint)({
210
214
  errors: [
211
215
  {
212
216
  status: 400,
213
- description: `1: The specified userOutfitId is invalid.
214
- 2: The outfit for the specified userOutfit is invalid.`,
217
+ description: `2: The outfit for the specified userOutfit is invalid.`,
215
218
  },
216
219
  {
217
220
  status: 403,
218
221
  description: `3: The requester does not have access to the details for the given user outfit.`,
219
222
  },
223
+ {
224
+ status: 404,
225
+ description: `1: The specified userOutfitId is invalid.`,
226
+ },
220
227
  ],
221
228
  });
222
229
  /**
@@ -252,7 +259,9 @@ exports.postOutfitsCreate = (0, __1.endpoint)({
252
259
  7: Invalid Player Avatar Type. Valid types are R6 and R15
253
260
  8: Invalid assetIds
254
261
  9: Meta does not apply to specified asset type
255
- 10: Required meta is not provided for the specific asset type`,
262
+ 10: Required meta is not provided for the specific asset type
263
+ 12: Outfit type invalid or not permitted
264
+ 13: Invalid Scale`,
256
265
  },
257
266
  {
258
267
  status: 401,
@@ -62,6 +62,18 @@ const Roblox_Catalog_Api_CollectibleItemDetail = z.object({
62
62
  lowestAvailableResaleItemInstanceId: z.string(),
63
63
  resaleRestriction: z.enum(["Invalid", "None", "Disabled"]),
64
64
  });
65
+ const Roblox_Catalog_Api_Discount = z.object({
66
+ robuxDiscountAmount: z.number().int(),
67
+ robuxDiscountPercentage: z.number(),
68
+ discountCampaign: z.string(),
69
+ localizedDiscountAttribution: z.string(),
70
+ });
71
+ const Roblox_Catalog_Api_DiscountInformation = z.object({
72
+ originalPrice: z.number().int(),
73
+ totalDiscountPercentage: z.number(),
74
+ totalDiscountAmount: z.number().int(),
75
+ discounts: z.array(Roblox_Catalog_Api_Discount),
76
+ });
65
77
  const Roblox_Catalog_Api_BundleDetailsModel = z.object({
66
78
  id: z.number().int(),
67
79
  name: z.string(),
@@ -85,6 +97,7 @@ const Roblox_Catalog_Api_BundleDetailsModel = z.object({
85
97
  ])
86
98
  ),
87
99
  collectibleItemDetail: Roblox_Catalog_Api_CollectibleItemDetail,
100
+ discountInformation: Roblox_Catalog_Api_DiscountInformation,
88
101
  });
89
102
  const Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Catalog_Api_BundleDetailsModel_ =
90
103
  z.object({
@@ -128,6 +141,7 @@ const Roblox_Catalog_Api_BundleFavoriteModel = z.object({
128
141
  const Roblox_Catalog_Api_TimedOption = z.object({
129
142
  days: z.number().int(),
130
143
  price: z.number().int(),
144
+ discountInformation: Roblox_Catalog_Api_DiscountInformation,
131
145
  selected: z.boolean(),
132
146
  });
133
147
  const Roblox_Catalog_Api_CatalogSearchDetailedResponseItem = z.object({
@@ -218,6 +232,7 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItem = z.object({
218
232
  z.literal(89),
219
233
  z.literal(90),
220
234
  z.literal(91),
235
+ z.literal(92),
221
236
  ]),
222
237
  bundleType: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]),
223
238
  isRecolorable: z.boolean(),
@@ -225,7 +240,9 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItem = z.object({
225
240
  description: z.string(),
226
241
  productId: z.number().int(),
227
242
  bundledItems: z.array(Roblox_Catalog_Api_BundleItemDetailModel),
228
- itemStatus: z.array(z.union([z.literal(1), z.literal(2), z.literal(7)])),
243
+ itemStatus: z.array(
244
+ z.union([z.literal(1), z.literal(2), z.literal(7), z.literal(8)])
245
+ ),
229
246
  itemRestrictions: z.array(
230
247
  z.union([
231
248
  z.literal(1),
@@ -315,6 +332,7 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItemV2 = z.object({
315
332
  bundledItems: z.array(Roblox_Catalog_Api_BundleItemDetailModelV2),
316
333
  taxonomy: z.array(Roblox_Catalog_Api_TaxonomyModel),
317
334
  itemCreatedUtc: z.string().datetime({ offset: true }),
335
+ discountInformation: Roblox_Catalog_Api_DiscountInformation,
318
336
  id: z.number().int(),
319
337
  itemType: z.enum(["Asset", "Bundle"]),
320
338
  assetType: z.union([
@@ -402,13 +420,16 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItemV2 = z.object({
402
420
  z.literal(89),
403
421
  z.literal(90),
404
422
  z.literal(91),
423
+ z.literal(92),
405
424
  ]),
406
425
  bundleType: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]),
407
426
  isRecolorable: z.boolean(),
408
427
  name: z.string(),
409
428
  description: z.string(),
410
429
  productId: z.number().int(),
411
- itemStatus: z.array(z.union([z.literal(1), z.literal(2), z.literal(7)])),
430
+ itemStatus: z.array(
431
+ z.union([z.literal(1), z.literal(2), z.literal(7), z.literal(8)])
432
+ ),
412
433
  itemRestrictions: z.array(
413
434
  z.union([
414
435
  z.literal(1),
@@ -64,6 +64,18 @@ const Roblox_Catalog_Api_CollectibleItemDetail = zod_1.z.object({
64
64
  lowestAvailableResaleItemInstanceId: zod_1.z.string(),
65
65
  resaleRestriction: zod_1.z.enum(['Invalid', 'None', 'Disabled']),
66
66
  });
67
+ const Roblox_Catalog_Api_Discount = zod_1.z.object({
68
+ robuxDiscountAmount: zod_1.z.number().int(),
69
+ robuxDiscountPercentage: zod_1.z.number(),
70
+ discountCampaign: zod_1.z.string(),
71
+ localizedDiscountAttribution: zod_1.z.string(),
72
+ });
73
+ const Roblox_Catalog_Api_DiscountInformation = zod_1.z.object({
74
+ originalPrice: zod_1.z.number().int(),
75
+ totalDiscountPercentage: zod_1.z.number(),
76
+ totalDiscountAmount: zod_1.z.number().int(),
77
+ discounts: zod_1.z.array(Roblox_Catalog_Api_Discount),
78
+ });
67
79
  const Roblox_Catalog_Api_BundleDetailsModel = zod_1.z.object({
68
80
  id: zod_1.z.number().int(),
69
81
  name: zod_1.z.string(),
@@ -85,6 +97,7 @@ const Roblox_Catalog_Api_BundleDetailsModel = zod_1.z.object({
85
97
  zod_1.z.literal(9),
86
98
  ])),
87
99
  collectibleItemDetail: Roblox_Catalog_Api_CollectibleItemDetail,
100
+ discountInformation: Roblox_Catalog_Api_DiscountInformation,
88
101
  });
89
102
  const Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Catalog_Api_BundleDetailsModel_ = zod_1.z.object({
90
103
  previousPageCursor: zod_1.z.string(),
@@ -128,6 +141,7 @@ const Roblox_Catalog_Api_BundleFavoriteModel = zod_1.z.object({
128
141
  const Roblox_Catalog_Api_TimedOption = zod_1.z.object({
129
142
  days: zod_1.z.number().int(),
130
143
  price: zod_1.z.number().int(),
144
+ discountInformation: Roblox_Catalog_Api_DiscountInformation,
131
145
  selected: zod_1.z.boolean(),
132
146
  });
133
147
  const Roblox_Catalog_Api_CatalogSearchDetailedResponseItem = zod_1.z.object({
@@ -218,6 +232,7 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItem = zod_1.z.object({
218
232
  zod_1.z.literal(89),
219
233
  zod_1.z.literal(90),
220
234
  zod_1.z.literal(91),
235
+ zod_1.z.literal(92),
221
236
  ]),
222
237
  bundleType: zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(3), zod_1.z.literal(4)]),
223
238
  isRecolorable: zod_1.z.boolean(),
@@ -225,7 +240,7 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItem = zod_1.z.object({
225
240
  description: zod_1.z.string(),
226
241
  productId: zod_1.z.number().int(),
227
242
  bundledItems: zod_1.z.array(Roblox_Catalog_Api_BundleItemDetailModel),
228
- itemStatus: zod_1.z.array(zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(7)])),
243
+ itemStatus: zod_1.z.array(zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(7), zod_1.z.literal(8)])),
229
244
  itemRestrictions: zod_1.z.array(zod_1.z.union([
230
245
  zod_1.z.literal(1),
231
246
  zod_1.z.literal(2),
@@ -311,6 +326,7 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItemV2 = zod_1.z.object({
311
326
  bundledItems: zod_1.z.array(Roblox_Catalog_Api_BundleItemDetailModelV2),
312
327
  taxonomy: zod_1.z.array(Roblox_Catalog_Api_TaxonomyModel),
313
328
  itemCreatedUtc: zod_1.z.string().datetime({ offset: true }),
329
+ discountInformation: Roblox_Catalog_Api_DiscountInformation,
314
330
  id: zod_1.z.number().int(),
315
331
  itemType: zod_1.z.enum(['Asset', 'Bundle']),
316
332
  assetType: zod_1.z.union([
@@ -398,13 +414,14 @@ const Roblox_Catalog_Api_CatalogSearchDetailedResponseItemV2 = zod_1.z.object({
398
414
  zod_1.z.literal(89),
399
415
  zod_1.z.literal(90),
400
416
  zod_1.z.literal(91),
417
+ zod_1.z.literal(92),
401
418
  ]),
402
419
  bundleType: zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(3), zod_1.z.literal(4)]),
403
420
  isRecolorable: zod_1.z.boolean(),
404
421
  name: zod_1.z.string(),
405
422
  description: zod_1.z.string(),
406
423
  productId: zod_1.z.number().int(),
407
- itemStatus: zod_1.z.array(zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(7)])),
424
+ itemStatus: zod_1.z.array(zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(7), zod_1.z.literal(8)])),
408
425
  itemRestrictions: zod_1.z.array(zod_1.z.union([
409
426
  zod_1.z.literal(1),
410
427
  zod_1.z.literal(2),