From d2a7e1d21587caddb737252f334cbe6fdd6e649b Mon Sep 17 00:00:00 2001 From: rafael Date: Thu, 6 Feb 2025 15:30:04 -0300 Subject: [PATCH] add repostRules to postgate --- lexicons/app/bsky/feed/postgate.json | 14 ++++++++++++++ packages/api/src/client/lexicons.ts | 15 +++++++++++++++ .../client/types/app/bsky/feed/postgate.ts | 19 +++++++++++++++++++ packages/bsky/src/lexicon/lexicons.ts | 15 +++++++++++++++ .../lexicon/types/app/bsky/feed/postgate.ts | 19 +++++++++++++++++++ packages/ozone/src/lexicon/lexicons.ts | 15 +++++++++++++++ .../lexicon/types/app/bsky/feed/postgate.ts | 19 +++++++++++++++++++ packages/pds/src/lexicon/lexicons.ts | 15 +++++++++++++++ .../lexicon/types/app/bsky/feed/postgate.ts | 19 +++++++++++++++++++ 9 files changed, 150 insertions(+) diff --git a/lexicons/app/bsky/feed/postgate.json b/lexicons/app/bsky/feed/postgate.json index d98a6731345..f5ebacf79b2 100644 --- a/lexicons/app/bsky/feed/postgate.json +++ b/lexicons/app/bsky/feed/postgate.json @@ -33,6 +33,15 @@ "type": "union", "refs": ["#disableRule"] } + }, + "repostRules": { + "description": "List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost.", + "type": "array", + "maxLength": 5, + "items": { + "type": "union", + "refs": ["#repostDisableRule"] + } } } } @@ -41,6 +50,11 @@ "type": "object", "description": "Disables embedding of this post.", "properties": {} + }, + "repostDisableRule": { + "type": "object", + "description": "Disables repost of this post.", + "properties": {} } } } diff --git a/packages/api/src/client/lexicons.ts b/packages/api/src/client/lexicons.ts index cd5db7cf588..af2957b7db1 100644 --- a/packages/api/src/client/lexicons.ts +++ b/packages/api/src/client/lexicons.ts @@ -7162,6 +7162,16 @@ export const schemaDict = { refs: ['lex:app.bsky.feed.postgate#disableRule'], }, }, + repostRules: { + description: + 'List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost.', + type: 'array', + maxLength: 5, + items: { + type: 'union', + refs: ['lex:app.bsky.feed.postgate#repostDisableRule'], + }, + }, }, }, }, @@ -7170,6 +7180,11 @@ export const schemaDict = { description: 'Disables embedding of this post.', properties: {}, }, + repostDisableRule: { + type: 'object', + description: 'Disables repost of this post.', + properties: {}, + }, }, }, AppBskyFeedRepost: { diff --git a/packages/api/src/client/types/app/bsky/feed/postgate.ts b/packages/api/src/client/types/app/bsky/feed/postgate.ts index e3028385873..02014ed2edf 100644 --- a/packages/api/src/client/types/app/bsky/feed/postgate.ts +++ b/packages/api/src/client/types/app/bsky/feed/postgate.ts @@ -14,6 +14,8 @@ export interface Record { detachedEmbeddingUris?: string[] /** List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed. */ embeddingRules?: (DisableRule | { $type: string; [k: string]: unknown })[] + /** List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost. */ + repostRules?: (RepostDisableRule | { $type: string; [k: string]: unknown })[] [k: string]: unknown } @@ -46,3 +48,20 @@ export function isDisableRule(v: unknown): v is DisableRule { export function validateDisableRule(v: unknown): ValidationResult { return lexicons.validate('app.bsky.feed.postgate#disableRule', v) } + +/** Disables repost of this post. */ +export interface RepostDisableRule { + [k: string]: unknown +} + +export function isRepostDisableRule(v: unknown): v is RepostDisableRule { + return ( + isObj(v) && + hasProp(v, '$type') && + v.$type === 'app.bsky.feed.postgate#repostDisableRule' + ) +} + +export function validateRepostDisableRule(v: unknown): ValidationResult { + return lexicons.validate('app.bsky.feed.postgate#repostDisableRule', v) +} diff --git a/packages/bsky/src/lexicon/lexicons.ts b/packages/bsky/src/lexicon/lexicons.ts index 02f3daa30cd..479c88c3c18 100644 --- a/packages/bsky/src/lexicon/lexicons.ts +++ b/packages/bsky/src/lexicon/lexicons.ts @@ -7162,6 +7162,16 @@ export const schemaDict = { refs: ['lex:app.bsky.feed.postgate#disableRule'], }, }, + repostRules: { + description: + 'List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost.', + type: 'array', + maxLength: 5, + items: { + type: 'union', + refs: ['lex:app.bsky.feed.postgate#repostDisableRule'], + }, + }, }, }, }, @@ -7170,6 +7180,11 @@ export const schemaDict = { description: 'Disables embedding of this post.', properties: {}, }, + repostDisableRule: { + type: 'object', + description: 'Disables repost of this post.', + properties: {}, + }, }, }, AppBskyFeedRepost: { diff --git a/packages/bsky/src/lexicon/types/app/bsky/feed/postgate.ts b/packages/bsky/src/lexicon/types/app/bsky/feed/postgate.ts index da5d6b175b2..1a9ab727339 100644 --- a/packages/bsky/src/lexicon/types/app/bsky/feed/postgate.ts +++ b/packages/bsky/src/lexicon/types/app/bsky/feed/postgate.ts @@ -14,6 +14,8 @@ export interface Record { detachedEmbeddingUris?: string[] /** List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed. */ embeddingRules?: (DisableRule | { $type: string; [k: string]: unknown })[] + /** List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost. */ + repostRules?: (RepostDisableRule | { $type: string; [k: string]: unknown })[] [k: string]: unknown } @@ -46,3 +48,20 @@ export function isDisableRule(v: unknown): v is DisableRule { export function validateDisableRule(v: unknown): ValidationResult { return lexicons.validate('app.bsky.feed.postgate#disableRule', v) } + +/** Disables repost of this post. */ +export interface RepostDisableRule { + [k: string]: unknown +} + +export function isRepostDisableRule(v: unknown): v is RepostDisableRule { + return ( + isObj(v) && + hasProp(v, '$type') && + v.$type === 'app.bsky.feed.postgate#repostDisableRule' + ) +} + +export function validateRepostDisableRule(v: unknown): ValidationResult { + return lexicons.validate('app.bsky.feed.postgate#repostDisableRule', v) +} diff --git a/packages/ozone/src/lexicon/lexicons.ts b/packages/ozone/src/lexicon/lexicons.ts index cd5db7cf588..af2957b7db1 100644 --- a/packages/ozone/src/lexicon/lexicons.ts +++ b/packages/ozone/src/lexicon/lexicons.ts @@ -7162,6 +7162,16 @@ export const schemaDict = { refs: ['lex:app.bsky.feed.postgate#disableRule'], }, }, + repostRules: { + description: + 'List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost.', + type: 'array', + maxLength: 5, + items: { + type: 'union', + refs: ['lex:app.bsky.feed.postgate#repostDisableRule'], + }, + }, }, }, }, @@ -7170,6 +7180,11 @@ export const schemaDict = { description: 'Disables embedding of this post.', properties: {}, }, + repostDisableRule: { + type: 'object', + description: 'Disables repost of this post.', + properties: {}, + }, }, }, AppBskyFeedRepost: { diff --git a/packages/ozone/src/lexicon/types/app/bsky/feed/postgate.ts b/packages/ozone/src/lexicon/types/app/bsky/feed/postgate.ts index da5d6b175b2..1a9ab727339 100644 --- a/packages/ozone/src/lexicon/types/app/bsky/feed/postgate.ts +++ b/packages/ozone/src/lexicon/types/app/bsky/feed/postgate.ts @@ -14,6 +14,8 @@ export interface Record { detachedEmbeddingUris?: string[] /** List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed. */ embeddingRules?: (DisableRule | { $type: string; [k: string]: unknown })[] + /** List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost. */ + repostRules?: (RepostDisableRule | { $type: string; [k: string]: unknown })[] [k: string]: unknown } @@ -46,3 +48,20 @@ export function isDisableRule(v: unknown): v is DisableRule { export function validateDisableRule(v: unknown): ValidationResult { return lexicons.validate('app.bsky.feed.postgate#disableRule', v) } + +/** Disables repost of this post. */ +export interface RepostDisableRule { + [k: string]: unknown +} + +export function isRepostDisableRule(v: unknown): v is RepostDisableRule { + return ( + isObj(v) && + hasProp(v, '$type') && + v.$type === 'app.bsky.feed.postgate#repostDisableRule' + ) +} + +export function validateRepostDisableRule(v: unknown): ValidationResult { + return lexicons.validate('app.bsky.feed.postgate#repostDisableRule', v) +} diff --git a/packages/pds/src/lexicon/lexicons.ts b/packages/pds/src/lexicon/lexicons.ts index cd5db7cf588..af2957b7db1 100644 --- a/packages/pds/src/lexicon/lexicons.ts +++ b/packages/pds/src/lexicon/lexicons.ts @@ -7162,6 +7162,16 @@ export const schemaDict = { refs: ['lex:app.bsky.feed.postgate#disableRule'], }, }, + repostRules: { + description: + 'List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost.', + type: 'array', + maxLength: 5, + items: { + type: 'union', + refs: ['lex:app.bsky.feed.postgate#repostDisableRule'], + }, + }, }, }, }, @@ -7170,6 +7180,11 @@ export const schemaDict = { description: 'Disables embedding of this post.', properties: {}, }, + repostDisableRule: { + type: 'object', + description: 'Disables repost of this post.', + properties: {}, + }, }, }, AppBskyFeedRepost: { diff --git a/packages/pds/src/lexicon/types/app/bsky/feed/postgate.ts b/packages/pds/src/lexicon/types/app/bsky/feed/postgate.ts index da5d6b175b2..1a9ab727339 100644 --- a/packages/pds/src/lexicon/types/app/bsky/feed/postgate.ts +++ b/packages/pds/src/lexicon/types/app/bsky/feed/postgate.ts @@ -14,6 +14,8 @@ export interface Record { detachedEmbeddingUris?: string[] /** List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed. */ embeddingRules?: (DisableRule | { $type: string; [k: string]: unknown })[] + /** List of rules defining who can repost this post. If value is an empty array or is undefined, no particular rules apply and anyone can repost. */ + repostRules?: (RepostDisableRule | { $type: string; [k: string]: unknown })[] [k: string]: unknown } @@ -46,3 +48,20 @@ export function isDisableRule(v: unknown): v is DisableRule { export function validateDisableRule(v: unknown): ValidationResult { return lexicons.validate('app.bsky.feed.postgate#disableRule', v) } + +/** Disables repost of this post. */ +export interface RepostDisableRule { + [k: string]: unknown +} + +export function isRepostDisableRule(v: unknown): v is RepostDisableRule { + return ( + isObj(v) && + hasProp(v, '$type') && + v.$type === 'app.bsky.feed.postgate#repostDisableRule' + ) +} + +export function validateRepostDisableRule(v: unknown): ValidationResult { + return lexicons.validate('app.bsky.feed.postgate#repostDisableRule', v) +}