appBskyActorDefs top-level constant

Map<String, dynamic> const appBskyActorDefs

app.bsky.actor.defs

Implementation

const appBskyActorDefs = <String, dynamic>{
  "lexicon": 1,
  "id": "app.bsky.actor.defs",
  "defs": {
    "profileViewBasic": {
      "type": "object",
      "required": ["did", "handle"],
      "properties": {
        "did": {"type": "string", "format": "did"},
        "handle": {"type": "string", "format": "handle"},
        "displayName": {"type": "string", "maxLength": 640, "maxGraphemes": 64},
        "avatar": {"type": "string", "format": "uri"},
        "associated": {"type": "ref", "ref": "#profileAssociated"},
        "viewer": {"type": "ref", "ref": "#viewerState"},
        "labels": {
          "type": "array",
          "items": {"type": "ref", "ref": "com.atproto.label.defs#label"}
        },
        "createdAt": {"type": "string", "format": "datetime"}
      }
    },
    "profileView": {
      "type": "object",
      "required": ["did", "handle"],
      "properties": {
        "did": {"type": "string", "format": "did"},
        "handle": {"type": "string", "format": "handle"},
        "displayName": {"type": "string", "maxLength": 640, "maxGraphemes": 64},
        "description": {
          "type": "string",
          "maxLength": 2560,
          "maxGraphemes": 256
        },
        "avatar": {"type": "string", "format": "uri"},
        "associated": {"type": "ref", "ref": "#profileAssociated"},
        "indexedAt": {"type": "string", "format": "datetime"},
        "createdAt": {"type": "string", "format": "datetime"},
        "viewer": {"type": "ref", "ref": "#viewerState"},
        "labels": {
          "type": "array",
          "items": {"type": "ref", "ref": "com.atproto.label.defs#label"}
        }
      }
    },
    "profileViewDetailed": {
      "type": "object",
      "required": ["did", "handle"],
      "properties": {
        "did": {"type": "string", "format": "did"},
        "handle": {"type": "string", "format": "handle"},
        "displayName": {"type": "string", "maxLength": 640, "maxGraphemes": 64},
        "description": {
          "type": "string",
          "maxLength": 2560,
          "maxGraphemes": 256
        },
        "avatar": {"type": "string", "format": "uri"},
        "banner": {"type": "string", "format": "uri"},
        "followersCount": {"type": "integer"},
        "followsCount": {"type": "integer"},
        "postsCount": {"type": "integer"},
        "associated": {"type": "ref", "ref": "#profileAssociated"},
        "joinedViaStarterPack": {
          "type": "ref",
          "ref": "app.bsky.graph.defs#starterPackViewBasic"
        },
        "indexedAt": {"type": "string", "format": "datetime"},
        "createdAt": {"type": "string", "format": "datetime"},
        "viewer": {"type": "ref", "ref": "#viewerState"},
        "labels": {
          "type": "array",
          "items": {"type": "ref", "ref": "com.atproto.label.defs#label"}
        },
        "pinnedPost": {"type": "ref", "ref": "com.atproto.repo.strongRef"}
      }
    },
    "profileAssociated": {
      "type": "object",
      "properties": {
        "lists": {"type": "integer"},
        "feedgens": {"type": "integer"},
        "starterPacks": {"type": "integer"},
        "labeler": {"type": "boolean"},
        "chat": {"type": "ref", "ref": "#profileAssociatedChat"}
      }
    },
    "profileAssociatedChat": {
      "type": "object",
      "required": ["allowIncoming"],
      "properties": {
        "allowIncoming": {
          "type": "string",
          "knownValues": ["all", "none", "following"]
        }
      }
    },
    "viewerState": {
      "type": "object",
      "description":
          "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
      "properties": {
        "muted": {"type": "boolean"},
        "mutedByList": {
          "type": "ref",
          "ref": "app.bsky.graph.defs#listViewBasic"
        },
        "blockedBy": {"type": "boolean"},
        "blocking": {"type": "string", "format": "at-uri"},
        "blockingByList": {
          "type": "ref",
          "ref": "app.bsky.graph.defs#listViewBasic"
        },
        "following": {"type": "string", "format": "at-uri"},
        "followedBy": {"type": "string", "format": "at-uri"},
        "knownFollowers": {"type": "ref", "ref": "#knownFollowers"}
      }
    },
    "knownFollowers": {
      "type": "object",
      "description": "The subject's followers whom you also follow",
      "required": ["count", "followers"],
      "properties": {
        "count": {"type": "integer"},
        "followers": {
          "type": "array",
          "items": {"type": "ref", "ref": "#profileViewBasic"},
          "minLength": 0,
          "maxLength": 5
        }
      }
    },
    "preferences": {
      "type": "array",
      "items": {
        "type": "union",
        "refs": [
          "#adultContentPref",
          "#contentLabelPref",
          "#savedFeedsPref",
          "#savedFeedsPrefV2",
          "#personalDetailsPref",
          "#feedViewPref",
          "#threadViewPref",
          "#interestsPref",
          "#mutedWordsPref",
          "#hiddenPostsPref",
          "#bskyAppStatePref",
          "#labelersPref",
          "#postInteractionSettingsPref"
        ]
      }
    },
    "adultContentPref": {
      "type": "object",
      "required": ["enabled"],
      "properties": {
        "enabled": {"type": "boolean", "default": false}
      }
    },
    "contentLabelPref": {
      "type": "object",
      "required": ["label", "visibility"],
      "properties": {
        "labelerDid": {
          "type": "string",
          "format": "did",
          "description":
              "Which labeler does this preference apply to? If undefined, applies globally."
        },
        "label": {"type": "string"},
        "visibility": {
          "type": "string",
          "knownValues": ["ignore", "show", "warn", "hide"]
        }
      }
    },
    "savedFeed": {
      "type": "object",
      "required": ["id", "type", "value", "pinned"],
      "properties": {
        "id": {"type": "string"},
        "type": {
          "type": "string",
          "knownValues": ["feed", "list", "timeline"]
        },
        "value": {"type": "string"},
        "pinned": {"type": "boolean"}
      }
    },
    "savedFeedsPrefV2": {
      "type": "object",
      "required": ["items"],
      "properties": {
        "items": {
          "type": "array",
          "items": {"type": "ref", "ref": "app.bsky.actor.defs#savedFeed"}
        }
      }
    },
    "savedFeedsPref": {
      "type": "object",
      "required": ["pinned", "saved"],
      "properties": {
        "pinned": {
          "type": "array",
          "items": {"type": "string", "format": "at-uri"}
        },
        "saved": {
          "type": "array",
          "items": {"type": "string", "format": "at-uri"}
        },
        "timelineIndex": {"type": "integer"}
      }
    },
    "personalDetailsPref": {
      "type": "object",
      "properties": {
        "birthDate": {
          "type": "string",
          "format": "datetime",
          "description": "The birth date of account owner."
        }
      }
    },
    "feedViewPref": {
      "type": "object",
      "required": ["feed"],
      "properties": {
        "feed": {
          "type": "string",
          "description":
              "The URI of the feed, or an identifier which describes the feed."
        },
        "hideReplies": {
          "type": "boolean",
          "description": "Hide replies in the feed."
        },
        "hideRepliesByUnfollowed": {
          "type": "boolean",
          "description":
              "Hide replies in the feed if they are not by followed users.",
          "default": true
        },
        "hideRepliesByLikeCount": {
          "type": "integer",
          "description":
              "Hide replies in the feed if they do not have this number of likes."
        },
        "hideReposts": {
          "type": "boolean",
          "description": "Hide reposts in the feed."
        },
        "hideQuotePosts": {
          "type": "boolean",
          "description": "Hide quote posts in the feed."
        }
      }
    },
    "threadViewPref": {
      "type": "object",
      "properties": {
        "sort": {
          "type": "string",
          "description": "Sorting mode for threads.",
          "knownValues": ["oldest", "newest", "most-likes", "random", "hotness"]
        },
        "prioritizeFollowedUsers": {
          "type": "boolean",
          "description": "Show followed users at the top of all replies."
        }
      }
    },
    "interestsPref": {
      "type": "object",
      "required": ["tags"],
      "properties": {
        "tags": {
          "type": "array",
          "description":
              "A list of tags which describe the account owner's interests gathered during onboarding.",
          "items": {"type": "string", "maxLength": 640, "maxGraphemes": 64},
          "maxLength": 100
        }
      }
    },
    "mutedWordTarget": {
      "type": "string",
      "maxLength": 640,
      "maxGraphemes": 64,
      "knownValues": ["content", "tag"]
    },
    "mutedWord": {
      "type": "object",
      "description": "A word that the account owner has muted.",
      "required": ["value", "targets"],
      "properties": {
        "id": {"type": "string"},
        "value": {
          "type": "string",
          "description": "The muted word itself.",
          "maxLength": 10000,
          "maxGraphemes": 1000
        },
        "targets": {
          "type": "array",
          "description": "The intended targets of the muted word.",
          "items": {"type": "ref", "ref": "app.bsky.actor.defs#mutedWordTarget"}
        },
        "actorTarget": {
          "type": "string",
          "description":
              "Groups of users to apply the muted word to. If undefined, applies to all users.",
          "default": "all",
          "knownValues": ["all", "exclude-following"]
        },
        "expiresAt": {
          "type": "string",
          "format": "datetime",
          "description":
              "The date and time at which the muted word will expire and no longer be applied."
        }
      }
    },
    "mutedWordsPref": {
      "type": "object",
      "required": ["items"],
      "properties": {
        "items": {
          "type": "array",
          "description": "A list of words the account owner has muted.",
          "items": {"type": "ref", "ref": "app.bsky.actor.defs#mutedWord"}
        }
      }
    },
    "hiddenPostsPref": {
      "type": "object",
      "required": ["items"],
      "properties": {
        "items": {
          "type": "array",
          "description":
              "A list of URIs of posts the account owner has hidden.",
          "items": {"type": "string", "format": "at-uri"}
        }
      }
    },
    "labelersPref": {
      "type": "object",
      "required": ["labelers"],
      "properties": {
        "labelers": {
          "type": "array",
          "items": {"type": "ref", "ref": "#labelerPrefItem"}
        }
      }
    },
    "labelerPrefItem": {
      "type": "object",
      "required": ["did"],
      "properties": {
        "did": {"type": "string", "format": "did"}
      }
    },
    "bskyAppStatePref": {
      "type": "object",
      "description":
          "A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.",
      "properties": {
        "activeProgressGuide": {"type": "ref", "ref": "#bskyAppProgressGuide"},
        "queuedNudges": {
          "type": "array",
          "description":
              "An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.",
          "items": {"type": "string", "maxLength": 100},
          "maxLength": 1000
        },
        "nuxs": {
          "type": "array",
          "description": "Storage for NUXs the user has encountered.",
          "items": {"type": "ref", "ref": "app.bsky.actor.defs#nux"},
          "maxLength": 100
        }
      }
    },
    "bskyAppProgressGuide": {
      "type": "object",
      "description":
          "If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.",
      "required": ["guide"],
      "properties": {
        "guide": {"type": "string", "maxLength": 100}
      }
    },
    "nux": {
      "type": "object",
      "description": "A new user experiences (NUX) storage object",
      "required": ["id", "completed"],
      "properties": {
        "id": {"type": "string", "maxLength": 100},
        "completed": {"type": "boolean", "default": false},
        "data": {
          "type": "string",
          "description":
              "Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.",
          "maxLength": 3000,
          "maxGraphemes": 300
        },
        "expiresAt": {
          "type": "string",
          "format": "datetime",
          "description":
              "The date and time at which the NUX will expire and should be considered completed."
        }
      }
    },
    "postInteractionSettingsPref": {
      "type": "object",
      "description":
          "Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly.",
      "required": [],
      "properties": {
        "threadgateAllowRules": {
          "type": "array",
          "description":
              "Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply.",
          "items": {
            "type": "union",
            "refs": [
              "app.bsky.feed.threadgate#mentionRule",
              "app.bsky.feed.threadgate#followerRule",
              "app.bsky.feed.threadgate#followingRule",
              "app.bsky.feed.threadgate#listRule"
            ]
          },
          "maxLength": 5
        },
        "postgateEmbeddingRules": {
          "type": "array",
          "description":
              "Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed.",
          "items": {
            "type": "union",
            "refs": ["app.bsky.feed.postgate#disableRule"]
          },
          "maxLength": 5
        }
      }
    }
  }
};