rozod 6.4.1 → 6.5.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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUsersUseridGroupsRoles = exports.postGroupsGroupidWallPosts = exports.getGroupsGroupidWallPosts = exports.getGroupsGroupidExperiences = exports.getGroups = void 0;
3
+ exports.getUsersUseridGroupsRoles = exports.postGroupsGroupidWallPosts = exports.getGroupsGroupidWallPosts = exports.getGroupsGroupidRelationshipsGrouprelationshiptypeRequests = exports.getGroupsGroupidRelationshipsGrouprelationshiptype = exports.getGroupsGroupidExperiences = exports.getGroups = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const __1 = require("..");
6
6
  const Roblox_Web_Responses_RelatedEntityTypeResponse_Roblox_Web_Responses_Groups_GroupOwnerType_ = zod_1.z.object({
@@ -136,6 +136,35 @@ const Roblox_Groups_Api_Models_Response_UserModel = zod_1.z.object({
136
136
  username: zod_1.z.string(),
137
137
  displayName: zod_1.z.string(),
138
138
  });
139
+ const Roblox_Groups_Api_ShoutResponse = zod_1.z.object({
140
+ body: zod_1.z.string(),
141
+ poster: Roblox_Groups_Api_Models_Response_UserModel,
142
+ created: zod_1.z.string().datetime({ offset: true }),
143
+ updated: zod_1.z.string().datetime({ offset: true }),
144
+ });
145
+ const Roblox_Groups_Api_GroupDetailResponse = zod_1.z.object({
146
+ id: zod_1.z.number().int(),
147
+ name: zod_1.z.string(),
148
+ description: zod_1.z.string(),
149
+ owner: Roblox_Groups_Api_Models_Response_UserModel,
150
+ shout: Roblox_Groups_Api_ShoutResponse,
151
+ memberCount: zod_1.z.number().int(),
152
+ isBuildersClubOnly: zod_1.z.boolean(),
153
+ publicEntryAllowed: zod_1.z.boolean(),
154
+ isLocked: zod_1.z.boolean(),
155
+ hasVerifiedBadge: zod_1.z.boolean(),
156
+ hasSocialModules: zod_1.z.boolean(),
157
+ });
158
+ const Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Groups_Api_GroupDetailResponse_ = zod_1.z.object({
159
+ previousPageCursor: zod_1.z.string(),
160
+ nextPageCursor: zod_1.z.string(),
161
+ data: zod_1.z.array(Roblox_Groups_Api_GroupDetailResponse),
162
+ });
163
+ const Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response = zod_1.z.object({
164
+ groupId: zod_1.z.number().int(),
165
+ relationshipType: zod_1.z.enum(['Allies', 'Enemies']),
166
+ groupResponses: Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Groups_Api_GroupDetailResponse_,
167
+ });
139
168
  const Roblox_Groups_Api_GroupRoleResponse = zod_1.z.object({
140
169
  id: zod_1.z.number().int(),
141
170
  name: zod_1.z.string(),
@@ -282,6 +311,122 @@ exports.getGroupsGroupidExperiences = (0, __1.endpoint)({
282
311
  },
283
312
  ],
284
313
  });
314
+ /**
315
+ * @api GET https://groups.roblox.com/v2/groups/:groupId/relationships/:groupRelationshipType
316
+ * @summary Gets a group's relationships with cursor-based pagination.
317
+ * @param groupId The group Id.
318
+ * @param groupRelationshipType The group relationship type, enemies or allies.
319
+ * @param limit The number of results per request.
320
+ * @param cursor The paging cursor for the previous or next page.
321
+ * @param sortOrder The order the results are sorted in.
322
+ */
323
+ exports.getGroupsGroupidRelationshipsGrouprelationshiptype = (0, __1.endpoint)({
324
+ method: 'GET',
325
+ path: '/v2/groups/:groupId/relationships/:groupRelationshipType',
326
+ baseUrl: 'https://groups.roblox.com',
327
+ requestFormat: 'json',
328
+ serializationMethod: {
329
+ groupId: {
330
+ style: 'simple',
331
+ },
332
+ groupRelationshipType: {
333
+ style: 'simple',
334
+ },
335
+ limit: {
336
+ style: 'form',
337
+ explode: true,
338
+ },
339
+ cursor: {
340
+ style: 'form',
341
+ explode: true,
342
+ },
343
+ sortOrder: {
344
+ style: 'form',
345
+ explode: true,
346
+ },
347
+ },
348
+ parameters: {
349
+ groupId: zod_1.z.number().int(),
350
+ groupRelationshipType: zod_1.z.string(),
351
+ limit: zod_1.z
352
+ .union([zod_1.z.literal(10), zod_1.z.literal(25), zod_1.z.literal(50), zod_1.z.literal(100)])
353
+ .optional()
354
+ .default(10),
355
+ cursor: zod_1.z.string().optional(),
356
+ sortOrder: zod_1.z.enum(['Asc', 'Desc']).optional().default('Asc'),
357
+ },
358
+ response: Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response,
359
+ errors: [
360
+ {
361
+ status: 400,
362
+ description: `1: Group is invalid or does not exist.
363
+ 4: Group relationship type or request type is invalid.
364
+ 8: Invalid or missing pagination parameters`,
365
+ },
366
+ ],
367
+ });
368
+ /**
369
+ * @api GET https://groups.roblox.com/v2/groups/:groupId/relationships/:groupRelationshipType/requests
370
+ * @summary Gets a group's relationship requests with cursor-based pagination.
371
+ * @param groupId The group Id.
372
+ * @param groupRelationshipType The group relationship type of the request, only allies are supported.
373
+ * @param limit The number of results per request.
374
+ * @param cursor The paging cursor for the previous or next page.
375
+ * @param sortOrder The order the results are sorted in.
376
+ */
377
+ exports.getGroupsGroupidRelationshipsGrouprelationshiptypeRequests = (0, __1.endpoint)({
378
+ method: 'GET',
379
+ path: '/v2/groups/:groupId/relationships/:groupRelationshipType/requests',
380
+ baseUrl: 'https://groups.roblox.com',
381
+ requestFormat: 'json',
382
+ serializationMethod: {
383
+ groupId: {
384
+ style: 'simple',
385
+ },
386
+ groupRelationshipType: {
387
+ style: 'simple',
388
+ },
389
+ limit: {
390
+ style: 'form',
391
+ explode: true,
392
+ },
393
+ cursor: {
394
+ style: 'form',
395
+ explode: true,
396
+ },
397
+ sortOrder: {
398
+ style: 'form',
399
+ explode: true,
400
+ },
401
+ },
402
+ parameters: {
403
+ groupId: zod_1.z.number().int(),
404
+ groupRelationshipType: zod_1.z.string(),
405
+ limit: zod_1.z
406
+ .union([zod_1.z.literal(10), zod_1.z.literal(25), zod_1.z.literal(50), zod_1.z.literal(100)])
407
+ .optional()
408
+ .default(10),
409
+ cursor: zod_1.z.string().optional(),
410
+ sortOrder: zod_1.z.enum(['Asc', 'Desc']).optional().default('Asc'),
411
+ },
412
+ response: Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response,
413
+ errors: [
414
+ {
415
+ status: 400,
416
+ description: `1: Group is invalid or does not exist.
417
+ 4: Group relationship type or request type is invalid.
418
+ 8: Invalid or missing pagination parameters`,
419
+ },
420
+ {
421
+ status: 401,
422
+ description: `0: Authorization has been denied for this request.`,
423
+ },
424
+ {
425
+ status: 403,
426
+ description: `5: You don't have permission to manage this group's relationships.`,
427
+ },
428
+ ],
429
+ });
285
430
  /**
286
431
  * @api GET https://groups.roblox.com/v2/groups/:groupId/wall/posts
287
432
  * @summary Gets a list of group wall posts.
@@ -336,3 +336,45 @@ export const getItemTagsMetadata = endpoint({
336
336
  },
337
337
  ],
338
338
  });
339
+
340
+ // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
341
+
342
+ const Patch_ApiArrayResponse_TagDetails = z.object({
343
+ data: z.array(Roblox_ItemConfiguration_Api_TagDetails),
344
+ });
345
+
346
+ export const getTags = endpoint({
347
+ method: 'GET',
348
+ path: '/v1/tags',
349
+ baseUrl: 'https://itemconfiguration.roblox.com',
350
+ requestFormat: 'json',
351
+ serializationMethod: { tagIds: { style: 'form' } },
352
+ parameters: { tagIds: z.array(z.string()) },
353
+ response: Patch_ApiArrayResponse_TagDetails,
354
+ errors: [
355
+ { status: 400, description: `1: No tag Ids requested\n2: Too many tag Ids requested` },
356
+ { status: 429, description: `3: Too many requests` },
357
+ ],
358
+ });
359
+
360
+ export const getTagsPrefixSearch = endpoint({
361
+ method: 'GET',
362
+ path: '/v1/tags/prefix-search',
363
+ baseUrl: 'https://itemconfiguration.roblox.com',
364
+ requestFormat: 'json',
365
+ serializationMethod: {
366
+ prefix: { style: 'form', explode: true },
367
+ numberOfResults: { style: 'form', explode: true },
368
+ },
369
+ parameters: {
370
+ prefix: z.string(),
371
+ numberOfResults: z.number().int(),
372
+ },
373
+ response: Patch_ApiArrayResponse_TagDetails,
374
+ errors: [
375
+ { status: 400, description: `5: The given prefix is invalid\n6: The number of results requested is invalid` },
376
+ { status: 401, description: `0: Authorization has been denied for this request.` },
377
+ { status: 403, description: `4: This endpoint is not yet enabled for the current user` },
378
+ { status: 429, description: `3: Too many requests` },
379
+ ],
380
+ });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getItemTagsMetadata = exports.deleteItemTagsItemtagid = exports.postItemTags = exports.getItemTags = exports.getCreationsGetAssets = exports.postCreationsGetAssetDetails = void 0;
3
+ exports.getTagsPrefixSearch = exports.getTags = exports.getItemTagsMetadata = exports.deleteItemTagsItemtagid = exports.postItemTags = exports.getItemTags = exports.getCreationsGetAssets = exports.postCreationsGetAssetDetails = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const __1 = require("..");
6
6
  const Roblox_ItemConfiguration_Api_AssetCreationsResponse = zod_1.z.object({
@@ -330,3 +330,41 @@ exports.getItemTagsMetadata = (0, __1.endpoint)({
330
330
  },
331
331
  ],
332
332
  });
333
+ // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
334
+ const Patch_ApiArrayResponse_TagDetails = zod_1.z.object({
335
+ data: zod_1.z.array(Roblox_ItemConfiguration_Api_TagDetails),
336
+ });
337
+ exports.getTags = (0, __1.endpoint)({
338
+ method: 'GET',
339
+ path: '/v1/tags',
340
+ baseUrl: 'https://itemconfiguration.roblox.com',
341
+ requestFormat: 'json',
342
+ serializationMethod: { tagIds: { style: 'form' } },
343
+ parameters: { tagIds: zod_1.z.array(zod_1.z.string()) },
344
+ response: Patch_ApiArrayResponse_TagDetails,
345
+ errors: [
346
+ { status: 400, description: `1: No tag Ids requested\n2: Too many tag Ids requested` },
347
+ { status: 429, description: `3: Too many requests` },
348
+ ],
349
+ });
350
+ exports.getTagsPrefixSearch = (0, __1.endpoint)({
351
+ method: 'GET',
352
+ path: '/v1/tags/prefix-search',
353
+ baseUrl: 'https://itemconfiguration.roblox.com',
354
+ requestFormat: 'json',
355
+ serializationMethod: {
356
+ prefix: { style: 'form', explode: true },
357
+ numberOfResults: { style: 'form', explode: true },
358
+ },
359
+ parameters: {
360
+ prefix: zod_1.z.string(),
361
+ numberOfResults: zod_1.z.number().int(),
362
+ },
363
+ response: Patch_ApiArrayResponse_TagDetails,
364
+ errors: [
365
+ { status: 400, description: `5: The given prefix is invalid\n6: The number of results requested is invalid` },
366
+ { status: 401, description: `0: Authorization has been denied for this request.` },
367
+ { status: 403, description: `4: This endpoint is not yet enabled for the current user` },
368
+ { status: 429, description: `3: Too many requests` },
369
+ ],
370
+ });
@@ -29,9 +29,11 @@ const Roblox_TwoStepVerification_Api_MetadataResponse = z.object({
29
29
  isSettingsTabRedesignEnabled: z.boolean(),
30
30
  twoStepCopyTextEnrollmentStatus: z.number().int(),
31
31
  isEppUIEnabled: z.boolean(),
32
+ isEppRecoveryCodesEnabled: z.boolean(),
32
33
  maskedUserEmail: z.string(),
33
34
  isUserU13: z.boolean(),
34
35
  isDelayedUiEnabled: z.boolean(),
36
+ is2svRecoveryEnabled: z.boolean(),
35
37
  });
36
38
  const Roblox_TwoStepVerification_Api_UserConfigurationMethod = z.object({
37
39
  mediaType: z.enum([
@@ -31,9 +31,11 @@ const Roblox_TwoStepVerification_Api_MetadataResponse = zod_1.z.object({
31
31
  isSettingsTabRedesignEnabled: zod_1.z.boolean(),
32
32
  twoStepCopyTextEnrollmentStatus: zod_1.z.number().int(),
33
33
  isEppUIEnabled: zod_1.z.boolean(),
34
+ isEppRecoveryCodesEnabled: zod_1.z.boolean(),
34
35
  maskedUserEmail: zod_1.z.string(),
35
36
  isUserU13: zod_1.z.boolean(),
36
37
  isDelayedUiEnabled: zod_1.z.boolean(),
38
+ is2svRecoveryEnabled: zod_1.z.boolean(),
37
39
  });
38
40
  const Roblox_TwoStepVerification_Api_UserConfigurationMethod = zod_1.z.object({
39
41
  mediaType: zod_1.z.enum([
package/lib/index.js CHANGED
@@ -67,7 +67,7 @@ function prepareRequestUrl(endpoint, extendedParams) {
67
67
  const pathParamPattern = new RegExp(`:${key}`);
68
68
  // Check if this is a path parameter
69
69
  if (pathParamPattern.test(processedPath)) {
70
- processedPath = processedPath.replace(pathParamPattern, String(value));
70
+ processedPath = processedPath.replace(pathParamPattern, encodeURIComponent(String(value)));
71
71
  usedPathParams.add(key);
72
72
  }
73
73
  }
@@ -8,6 +8,8 @@
8
8
  * @param body
9
9
  * @param universeId The identifier of the experience in which you want to send your messages to. You can [copy your experience's Universe ID](/cloud/guides/usage-messaging.md#publishing-messages-to-live-servers) on **Creator Dashboard**.
10
10
  * @param topic The topic that you want to publish your message to, with up to 80 characters.
11
+ * @see POST https://apis.roblox.com/cloud/v2/universes/{universe_id}:publishMessage
12
+ * @deprecated Prefer the v2 alternative(s) listed above.
11
13
  */
12
14
  export declare const postUniversesUniverseIdTopicsTopic: import("../..").EndpointGeneric<{
13
15
  universeId: number;
@@ -14,6 +14,8 @@ const PublishRequest = zod_1.z.object({ message: zod_1.z.string().nullable() });
14
14
  * @param body
15
15
  * @param universeId The identifier of the experience in which you want to send your messages to. You can [copy your experience's Universe ID](/cloud/guides/usage-messaging.md#publishing-messages-to-live-servers) on **Creator Dashboard**.
16
16
  * @param topic The topic that you want to publish your message to, with up to 80 characters.
17
+ * @see POST https://apis.roblox.com/cloud/v2/universes/{universe_id}:publishMessage
18
+ * @deprecated Prefer the v2 alternative(s) listed above.
17
19
  */
18
20
  exports.postUniversesUniverseIdTopicsTopic = (0, __1.endpoint)({
19
21
  method: 'POST',
@@ -3313,11 +3313,6 @@ scopes it has or who created it.
3313
3313
  * Their inventory can still be viewed with an OAuth2 token if the target
3314
3314
  user authorizes an app requesting permissions for the
3315
3315
  `user.inventory-item:read` scope.
3316
-
3317
- Rate Limits:
3318
- * API Keys - 100 requests/minute per API key owner (can be user or group).
3319
- Rate limits are enforced across all of an owner's API keys.
3320
- * OAuth2 Tokens - 20 requests/minute per OAuth2 access token
3321
3316
  *
3322
3317
  * **Scopes:** `user.inventory-item:read`
3323
3318
  * **Engine:** Usable with HttpService
@@ -3883,11 +3883,6 @@ scopes it has or who created it.
3883
3883
  * Their inventory can still be viewed with an OAuth2 token if the target
3884
3884
  user authorizes an app requesting permissions for the
3885
3885
  `user.inventory-item:read` scope.
3886
-
3887
- Rate Limits:
3888
- * API Keys - 100 requests/minute per API key owner (can be user or group).
3889
- Rate limits are enforced across all of an owner's API keys.
3890
- * OAuth2 Tokens - 20 requests/minute per OAuth2 access token
3891
3886
  *
3892
3887
  * **Scopes:** `user.inventory-item:read`
3893
3888
  * **Engine:** Usable with HttpService
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rozod",
3
- "version": "6.4.1",
3
+ "version": "6.5.0",
4
4
  "description": "A TypeScript wrapper for the Roblox API",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",