Compare commits
238 Commits
f7c3f9afd9
...
d4133d4c37
Author | SHA1 | Date | |
---|---|---|---|
d4133d4c37 | |||
|
4c4ee7208f | ||
|
7351589a31 | ||
|
d91988fe79 | ||
|
cf4117966c | ||
|
e10a020629 | ||
|
ff30786af6 | ||
|
0222378371 | ||
|
55cc15cdd6 | ||
|
e216e87859 | ||
|
bef7d109a5 | ||
|
8914f9abde | ||
|
d570db43d6 | ||
|
055a413fba | ||
|
6d7bf4bffc | ||
|
a5b20f0218 | ||
|
420f315493 | ||
|
09717f29ac | ||
|
64100a75b3 | ||
|
39b319be94 | ||
|
d54d278abd | ||
|
a64bd4536b | ||
|
c2dc0ec11b | ||
|
f4cb3e4d0a | ||
|
920f895807 | ||
|
86c4699da8 | ||
|
9ce0b0039c | ||
|
f9dc9aa4c9 | ||
|
f65afa33f5 | ||
|
5aab697d9d | ||
|
66dbf8db6d | ||
|
7b5b846aef | ||
|
0f2944305f | ||
|
0a6a87891e | ||
|
768e81b232 | ||
|
e1967c1c2a | ||
|
6231c8730a | ||
|
c0126f4a84 | ||
|
2104d9033e | ||
|
9d22305f71 | ||
|
5188ef3b59 | ||
|
3156ddf615 | ||
|
331a356ce2 | ||
|
649e5ad772 | ||
|
369a201161 | ||
|
75162ffb9e | ||
|
d02d43c05b | ||
|
8a88e2c154 | ||
|
f8667835db | ||
|
832866c33b | ||
|
8602827985 | ||
|
396ab57ed0 | ||
|
c274bd1b38 | ||
|
174f86da5f | ||
|
1dbc7750d2 | ||
|
1899b1fc16 | ||
|
43fbeda63e | ||
|
41b205051b | ||
|
0e40995e80 | ||
|
9a1746a025 | ||
|
c370d933b7 | ||
|
757fa34458 | ||
|
171efadb49 | ||
|
a723ab3893 | ||
|
82e3e7bf6b | ||
|
c55d5910ea | ||
|
9751eebd71 | ||
|
459a5dcddc | ||
|
8dba37fdea | ||
|
d59a7a1227 | ||
|
edb1fc2ca3 | ||
|
391fd08f8f | ||
|
8d56743a18 | ||
|
33483b47b0 | ||
|
de29a346d8 | ||
|
3f5c6af971 | ||
|
8787fd9dea | ||
|
534bea0a98 | ||
|
dc84906c86 | ||
|
527729e0d6 | ||
|
77c6dffd0b | ||
|
47236325a9 | ||
|
3b356c5096 | ||
|
083566ddfc | ||
|
5ae9987972 | ||
|
2aecd2b290 | ||
|
91bc841c71 | ||
|
22295e4211 | ||
|
5094525ccc | ||
|
88c1364274 | ||
|
f27ae66432 | ||
|
34d7a0846b | ||
|
926193f825 | ||
|
ad18fc171e | ||
|
c73d913354 | ||
|
5ed4a88596 | ||
|
8ef976d385 | ||
|
e113a55d28 | ||
|
0c0381a2bb | ||
|
e5bd36e0c5 | ||
|
02c358d0ca | ||
|
cf3af4660d | ||
|
d344723a10 | ||
|
8a0f190399 | ||
|
a2705e5a5d | ||
|
bb65f7a6e2 | ||
|
76367f8a94 | ||
|
376778a92f | ||
|
3499642ed1 | ||
|
ad81144cac | ||
|
e3e31b2b9b | ||
|
b70f62c6b9 | ||
|
6cd1202065 | ||
|
f792b91938 | ||
|
3a1e010e14 | ||
|
09d90ae486 | ||
|
4c2d499178 | ||
|
a8dee6af33 | ||
|
bc2c578203 | ||
|
9dac8b0c60 | ||
|
9f9a08648b | ||
|
90b4775fc9 | ||
|
5fccbd2a14 | ||
|
68c43a94bd | ||
|
727d9330a1 | ||
|
9f7be0b9eb | ||
|
96c08da3ab | ||
|
97ef116571 | ||
|
b4cb1ebac9 | ||
|
8bd45e2f89 | ||
|
7d9808ca81 | ||
|
e27d908454 | ||
|
5072e5b811 | ||
|
71a0a026c1 | ||
|
7f1316748d | ||
|
6b07b4b08f | ||
|
349b59175e | ||
|
c2b57e3f65 | ||
|
3f07ffd3ef | ||
|
0286f7ee3d | ||
|
809822ceeb | ||
|
dfdc8c8470 | ||
|
b675fbbf17 | ||
|
192f3ab89c | ||
|
4e96e2c7b7 | ||
|
30f851dee8 | ||
|
93bf69df96 | ||
|
a48671e730 | ||
|
cd4bed3c9e | ||
|
bd77a88d05 | ||
|
c6eb8a12e2 | ||
|
598fcb693d | ||
|
623c95d01e | ||
|
3fa2ee3b6a | ||
|
a3b24ca77c | ||
|
9214bd0170 | ||
|
1919d10a22 | ||
|
b9616f63bf | ||
|
71b9dcda96 | ||
|
8fa2502e80 | ||
|
e2f1dfd3da | ||
|
45e8717e19 | ||
|
a5cd018bd5 | ||
|
e05b38a727 | ||
|
a978681fde | ||
|
f6d5a467e7 | ||
|
d880665e63 | ||
|
06bf684a4a | ||
|
cb8bf1838f | ||
|
498f3c0738 | ||
|
e474623d3f | ||
|
37b5a4ef29 | ||
|
fe2a1d12bb | ||
|
bae3ef91fc | ||
|
1dae6c59ab | ||
|
a03f0b906b | ||
|
d6c40d6559 | ||
|
79a75bb1ed | ||
|
d1e3e68dd9 | ||
|
ba293da9fe | ||
|
e939f8e466 | ||
|
da433bd0ca | ||
|
36d0d370c2 | ||
|
24e20b96c6 | ||
|
0a2c30dd97 | ||
|
80f402f366 | ||
|
8318c57187 | ||
|
36dbd41551 | ||
|
43861a452b | ||
|
5050b6550e | ||
|
eab7c9fb8a | ||
|
f476003709 | ||
|
86b3153884 | ||
|
efc64ba925 | ||
|
81fb69ac65 | ||
|
251f661c00 | ||
|
088d06204f | ||
|
fb283edbaf | ||
|
b36014dac5 | ||
|
3a65b68f7d | ||
|
7049117ea2 | ||
|
5fd7ef0bf6 | ||
|
ab4e72084d | ||
|
b428ce3669 | ||
|
3301a2697f | ||
|
e1bda27e55 | ||
|
eccbce278d | ||
|
b5afb723be | ||
|
f36ab48d91 | ||
|
a48b093f0b | ||
|
cc485d2963 | ||
|
284b9e90ac | ||
|
45354c84f8 | ||
|
bd54773dc2 | ||
|
7af77f3edf | ||
|
da168588de | ||
|
60d8e9ac57 | ||
|
9ef52d8292 | ||
|
9a585b6a2c | ||
|
a1b2370dbc | ||
|
d65ceaeeef | ||
|
2b0c0159a9 | ||
|
d794b06763 | ||
|
f1a2b44550 | ||
|
0087dc1c0b | ||
|
8e696dbcbf | ||
|
a70dad5aea | ||
|
81524fcb00 | ||
|
90e9a20d31 | ||
|
30f9b6690e | ||
|
0d77d1b550 | ||
|
6db9faa4a1 | ||
|
d23f311684 | ||
|
a70e7dabd0 | ||
|
553c988f1d | ||
|
3bdddeb439 | ||
|
8d99915ce0 | ||
|
96de2acb30 |
@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@atproto/api": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Add verification state to profile view lexicons
|
|
@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
"@atproto/oauth-provider-frontend": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Minor UI/UX tweaks
|
|
@ -1,4 +1,5 @@
|
|||||||
packages/api/src/client
|
packages/api/src/client
|
||||||
|
packages/lexicon-resolver/src/client
|
||||||
packages/bsky/src/lexicon
|
packages/bsky/src/lexicon
|
||||||
packages/pds/src/lexicon
|
packages/pds/src/lexicon
|
||||||
packages/ozone/src/lexicon
|
packages/ozone/src/lexicon
|
||||||
|
10
.eslintrc
10
.eslintrc
@ -45,7 +45,11 @@
|
|||||||
],
|
],
|
||||||
"@typescript-eslint/no-unused-vars": [
|
"@typescript-eslint/no-unused-vars": [
|
||||||
"error",
|
"error",
|
||||||
{ "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" }
|
{
|
||||||
|
"argsIgnorePattern": "^_",
|
||||||
|
"varsIgnorePattern": "^_",
|
||||||
|
"ignoreRestSiblings": true
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"@typescript-eslint/ban-ts-comment": "off",
|
"@typescript-eslint/ban-ts-comment": "off",
|
||||||
"@typescript-eslint/no-empty-interface": "off",
|
"@typescript-eslint/no-empty-interface": "off",
|
||||||
@ -58,6 +62,10 @@
|
|||||||
"files": ["jest.config.js"],
|
"files": ["jest.config.js"],
|
||||||
"env": { "commonjs": true }
|
"env": { "commonjs": true }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"files": ["vite.config.js", "vite.config.cjs", "vite.config.mjs"],
|
||||||
|
"env": { "node": true }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"files": ["jest.setup.js"],
|
"files": ["jest.setup.js"],
|
||||||
"env": { "jest": true }
|
"env": { "jest": true }
|
||||||
|
7
.gitattributes
vendored
Normal file
7
.gitattributes
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
packages/**/src/lexicon/** linguist-generated=true
|
||||||
|
packages/api/src/client/** linguist-generated=true
|
||||||
|
packages/lexicon-resolver/src/client/** linguist-generated=true
|
||||||
|
packages/bsky/src/proto/** linguist-generated=true
|
||||||
|
packages/bsync/src/proto/** linguist-generated=true
|
||||||
|
|
||||||
|
packages/oauth/oauth-provider-ui/src/locales/**/messages.po linguist-generated=true
|
@ -3,6 +3,7 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
- divy/pds-build-dblock-fix
|
||||||
env:
|
env:
|
||||||
REGISTRY: ghcr.io
|
REGISTRY: ghcr.io
|
||||||
USERNAME: ${{ github.actor }}
|
USERNAME: ${{ github.actor }}
|
||||||
|
30
.github/workflows/repo.yaml
vendored
30
.github/workflows/repo.yaml
vendored
@ -15,10 +15,16 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- run: corepack enable && corepack prepare --activate
|
# https://github.com/actions/setup-node/issues/531#issuecomment-2960522861
|
||||||
- uses: actions/setup-node@v4
|
- name: Install Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: package.json
|
node-version-file: package.json
|
||||||
|
- name: Enable Corepack
|
||||||
|
run: corepack enable
|
||||||
|
- name: Configure Dependency Cache
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
- name: Get current month
|
- name: Get current month
|
||||||
run: echo "CURRENT_MONTH=$(date +'%Y-%m')" >> $GITHUB_ENV
|
run: echo "CURRENT_MONTH=$(date +'%Y-%m')" >> $GITHUB_ENV
|
||||||
@ -46,10 +52,16 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- run: corepack enable && corepack prepare --activate
|
# https://github.com/actions/setup-node/issues/531#issuecomment-2960522861
|
||||||
- uses: actions/setup-node@v4
|
- name: Install Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: package.json
|
node-version-file: package.json
|
||||||
|
- name: Enable Corepack
|
||||||
|
run: corepack enable
|
||||||
|
- name: Configure Dependency Cache
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
- name: Get current month
|
- name: Get current month
|
||||||
run: echo "CURRENT_MONTH=$(date +'%Y-%m')" >> $GITHUB_ENV
|
run: echo "CURRENT_MONTH=$(date +'%Y-%m')" >> $GITHUB_ENV
|
||||||
@ -70,10 +82,16 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- run: corepack enable && corepack prepare --activate
|
# https://github.com/actions/setup-node/issues/531#issuecomment-2960522861
|
||||||
- uses: actions/setup-node@v4
|
- name: Install Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: package.json
|
node-version-file: package.json
|
||||||
|
- name: Enable Corepack
|
||||||
|
run: corepack enable
|
||||||
|
- name: Configure Dependency Cache
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
- name: Get current month
|
- name: Get current month
|
||||||
run: echo "CURRENT_MONTH=$(date +'%Y-%m')" >> $GITHUB_ENV
|
run: echo "CURRENT_MONTH=$(date +'%Y-%m')" >> $GITHUB_ENV
|
||||||
|
31
.github/workflows/sync-internal.yaml
vendored
Normal file
31
.github/workflows/sync-internal.yaml
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
name: Sync to internal repo
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sync:
|
||||||
|
if: github.repository == 'bluesky-social/atproto'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout public repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Generate GitHub App Token
|
||||||
|
id: app-token
|
||||||
|
uses: actions/create-github-app-token@v1
|
||||||
|
with:
|
||||||
|
app-id: ${{ vars.SYNC_INTERNAL_APP_ID }}
|
||||||
|
private-key: ${{ secrets.SYNC_INTERNAL_PK }}
|
||||||
|
repositories: atproto-internal
|
||||||
|
- name: Push to internal repo
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ steps.app-token.outputs.token }}
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions"
|
||||||
|
git config user.email "test@users.noreply.github.com"
|
||||||
|
git config --unset-all http.https://github.com/.extraheader
|
||||||
|
git remote add internal https://x-access-token:${TOKEN}@github.com/bluesky-social/atproto-internal.git
|
||||||
|
git push internal main --force
|
@ -9,6 +9,7 @@ CHANGELOG.md
|
|||||||
|
|
||||||
# Prettier is used to format the code during codegen
|
# Prettier is used to format the code during codegen
|
||||||
packages/api/src/client
|
packages/api/src/client
|
||||||
|
packages/lexicon-resolver/src/client
|
||||||
packages/bsky/src/lexicon
|
packages/bsky/src/lexicon
|
||||||
packages/pds/src/lexicon
|
packages/pds/src/lexicon
|
||||||
packages/ozone/src/lexicon
|
packages/ozone/src/lexicon
|
||||||
@ -16,4 +17,3 @@ packages/ozone/src/lexicon
|
|||||||
# Automatically generated by lingui
|
# Automatically generated by lingui
|
||||||
packages/oauth/*/src/locales/*/messages.ts
|
packages/oauth/*/src/locales/*/messages.ts
|
||||||
packages/oauth/oauth-provider-frontend/src/routeTree.gen.ts
|
packages/oauth/oauth-provider-frontend/src/routeTree.gen.ts
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Dual MIT/Apache-2.0 License
|
Dual MIT/Apache-2.0 License
|
||||||
|
|
||||||
Copyright (c) 2022-2025 Bluesky PBC, and Contributors
|
Copyright (c) 2022-2025 Bluesky Social PBC, and Contributors
|
||||||
|
|
||||||
Except as otherwise noted in individual files, this software is licensed under the MIT license (<http://opensource.org/licenses/MIT>), or the Apache License, Version 2.0 (<http://www.apache.org/licenses/LICENSE-2.0>).
|
Except as otherwise noted in individual files, this software is licensed under the MIT license (<http://opensource.org/licenses/MIT>), or the Apache License, Version 2.0 (<http://www.apache.org/licenses/LICENSE-2.0>).
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ make help
|
|||||||
|
|
||||||
## About AT Protocol
|
## About AT Protocol
|
||||||
|
|
||||||
The Authenticated Transfer Protocol ("ATP" or "atproto") is a decentralized social media protocol, developed by [Bluesky PBC](https://bsky.social). Learn more at:
|
The Authenticated Transfer Protocol ("ATP" or "atproto") is a decentralized social media protocol, developed by [Bluesky Social PBC](https://bsky.social). Learn more at:
|
||||||
|
|
||||||
- [Overview and Guides](https://atproto.com/guides/overview) 👈 Best starting point
|
- [Overview and Guides](https://atproto.com/guides/overview) 👈 Best starting point
|
||||||
- [Github Discussions](https://github.com/bluesky-social/atproto/discussions) 👈 Great place to ask questions
|
- [Github Discussions](https://github.com/bluesky-social/atproto/discussions) 👈 Great place to ask questions
|
||||||
|
@ -27,6 +27,10 @@
|
|||||||
"verification": {
|
"verification": {
|
||||||
"type": "ref",
|
"type": "ref",
|
||||||
"ref": "#verificationState"
|
"ref": "#verificationState"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#statusView"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -61,6 +65,10 @@
|
|||||||
"verification": {
|
"verification": {
|
||||||
"type": "ref",
|
"type": "ref",
|
||||||
"ref": "#verificationState"
|
"ref": "#verificationState"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#statusView"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -107,6 +115,10 @@
|
|||||||
"verification": {
|
"verification": {
|
||||||
"type": "ref",
|
"type": "ref",
|
||||||
"ref": "#verificationState"
|
"ref": "#verificationState"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#statusView"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -117,7 +129,11 @@
|
|||||||
"feedgens": { "type": "integer" },
|
"feedgens": { "type": "integer" },
|
||||||
"starterPacks": { "type": "integer" },
|
"starterPacks": { "type": "integer" },
|
||||||
"labeler": { "type": "boolean" },
|
"labeler": { "type": "boolean" },
|
||||||
"chat": { "type": "ref", "ref": "#profileAssociatedChat" }
|
"chat": { "type": "ref", "ref": "#profileAssociatedChat" },
|
||||||
|
"activitySubscription": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#profileAssociatedActivitySubscription"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profileAssociatedChat": {
|
"profileAssociatedChat": {
|
||||||
@ -130,6 +146,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"profileAssociatedActivitySubscription": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["allowSubscriptions"],
|
||||||
|
"properties": {
|
||||||
|
"allowSubscriptions": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["followers", "mutuals", "none"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"viewerState": {
|
"viewerState": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
|
"description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
|
||||||
@ -148,8 +174,14 @@
|
|||||||
"following": { "type": "string", "format": "at-uri" },
|
"following": { "type": "string", "format": "at-uri" },
|
||||||
"followedBy": { "type": "string", "format": "at-uri" },
|
"followedBy": { "type": "string", "format": "at-uri" },
|
||||||
"knownFollowers": {
|
"knownFollowers": {
|
||||||
|
"description": "This property is present only in selected cases, as an optimization.",
|
||||||
"type": "ref",
|
"type": "ref",
|
||||||
"ref": "#knownFollowers"
|
"ref": "#knownFollowers"
|
||||||
|
},
|
||||||
|
"activitySubscription": {
|
||||||
|
"description": "This property is present only in selected cases, as an optimization.",
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#activitySubscription"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -235,7 +267,8 @@
|
|||||||
"#hiddenPostsPref",
|
"#hiddenPostsPref",
|
||||||
"#bskyAppStatePref",
|
"#bskyAppStatePref",
|
||||||
"#labelersPref",
|
"#labelersPref",
|
||||||
"#postInteractionSettingsPref"
|
"#postInteractionSettingsPref",
|
||||||
|
"#verificationPrefs"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -530,6 +563,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"verificationPrefs": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Preferences for how verified accounts appear in the app.",
|
||||||
|
"required": [],
|
||||||
|
"properties": {
|
||||||
|
"hideBadges": {
|
||||||
|
"description": "Hide the blue check badges for verified accounts and trusted verifiers.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"postInteractionSettingsPref": {
|
"postInteractionSettingsPref": {
|
||||||
"type": "object",
|
"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.",
|
"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.",
|
||||||
@ -559,6 +604,32 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"statusView": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["status", "record"],
|
||||||
|
"properties": {
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The status for the account.",
|
||||||
|
"knownValues": ["app.bsky.actor.status#live"]
|
||||||
|
},
|
||||||
|
"record": { "type": "unknown" },
|
||||||
|
"embed": {
|
||||||
|
"type": "union",
|
||||||
|
"description": "An optional embed associated with the status.",
|
||||||
|
"refs": ["app.bsky.embed.external#view"]
|
||||||
|
},
|
||||||
|
"expiresAt": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The date when this status will expire. The application might choose to no longer return the status after expiration.",
|
||||||
|
"format": "datetime"
|
||||||
|
},
|
||||||
|
"isActive": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "True if the status is not expired, false if it is expired. Only present if expiration was set."
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
37
lexicons/app/bsky/actor/status.json
Normal file
37
lexicons/app/bsky/actor/status.json
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.actor.status",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "record",
|
||||||
|
"description": "A declaration of a Bluesky account status.",
|
||||||
|
"key": "literal:self",
|
||||||
|
"record": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["status", "createdAt"],
|
||||||
|
"properties": {
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The status for the account.",
|
||||||
|
"knownValues": ["app.bsky.actor.status#live"]
|
||||||
|
},
|
||||||
|
"embed": {
|
||||||
|
"type": "union",
|
||||||
|
"description": "An optional embed associated with the status.",
|
||||||
|
"refs": ["app.bsky.embed.external"]
|
||||||
|
},
|
||||||
|
"durationMinutes": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "The duration of the status in minutes. Applications can choose to impose minimum and maximum limits.",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"createdAt": { "type": "string", "format": "datetime" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"live": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Advertises an account as currently offering live content."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
27
lexicons/app/bsky/bookmark/createBookmark.json
Normal file
27
lexicons/app/bsky/bookmark/createBookmark.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.bookmark.createBookmark",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["uri", "cid"],
|
||||||
|
"properties": {
|
||||||
|
"uri": { "type": "string", "format": "at-uri" },
|
||||||
|
"cid": { "type": "string", "format": "cid" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "UnsupportedCollection",
|
||||||
|
"description": "The URI to be bookmarked is for an unsupported collection."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
38
lexicons/app/bsky/bookmark/defs.json
Normal file
38
lexicons/app/bsky/bookmark/defs.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.bookmark.defs",
|
||||||
|
"defs": {
|
||||||
|
"bookmark": {
|
||||||
|
"description": "Object used to store bookmark data in stash.",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["subject"],
|
||||||
|
"properties": {
|
||||||
|
"subject": {
|
||||||
|
"description": "A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported.",
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "com.atproto.repo.strongRef"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bookmarkView": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["subject", "item"],
|
||||||
|
"properties": {
|
||||||
|
"subject": {
|
||||||
|
"description": "A strong ref to the bookmarked record.",
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "com.atproto.repo.strongRef"
|
||||||
|
},
|
||||||
|
"createdAt": { "type": "string", "format": "datetime" },
|
||||||
|
"item": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": [
|
||||||
|
"app.bsky.feed.defs#blockedPost",
|
||||||
|
"app.bsky.feed.defs#notFoundPost",
|
||||||
|
"app.bsky.feed.defs#postView"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
26
lexicons/app/bsky/bookmark/deleteBookmark.json
Normal file
26
lexicons/app/bsky/bookmark/deleteBookmark.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.bookmark.deleteBookmark",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["uri"],
|
||||||
|
"properties": {
|
||||||
|
"uri": { "type": "string", "format": "at-uri" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "UnsupportedCollection",
|
||||||
|
"description": "The URI to be bookmarked is for an unsupported collection."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
lexicons/app/bsky/bookmark/getBookmarks.json
Normal file
39
lexicons/app/bsky/bookmark/getBookmarks.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.bookmark.getBookmarks",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Gets views of records bookmarked by the authenticated user. Requires authentication.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"properties": {
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50
|
||||||
|
},
|
||||||
|
"cursor": { "type": "string" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["bookmarks"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": { "type": "string" },
|
||||||
|
"bookmarks": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.bookmark.defs#bookmarkView"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -23,6 +23,7 @@
|
|||||||
"app.bsky.embed.recordWithMedia#view"
|
"app.bsky.embed.recordWithMedia#view"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"bookmarkCount": { "type": "integer" },
|
||||||
"replyCount": { "type": "integer" },
|
"replyCount": { "type": "integer" },
|
||||||
"repostCount": { "type": "integer" },
|
"repostCount": { "type": "integer" },
|
||||||
"likeCount": { "type": "integer" },
|
"likeCount": { "type": "integer" },
|
||||||
@ -42,6 +43,7 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"repost": { "type": "string", "format": "at-uri" },
|
"repost": { "type": "string", "format": "at-uri" },
|
||||||
"like": { "type": "string", "format": "at-uri" },
|
"like": { "type": "string", "format": "at-uri" },
|
||||||
|
"bookmarked": { "type": "boolean" },
|
||||||
"threadMuted": { "type": "boolean" },
|
"threadMuted": { "type": "boolean" },
|
||||||
"replyDisabled": { "type": "boolean" },
|
"replyDisabled": { "type": "boolean" },
|
||||||
"embeddingDisabled": { "type": "boolean" },
|
"embeddingDisabled": { "type": "boolean" },
|
||||||
@ -66,6 +68,11 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Context provided by feed generator that may be passed back alongside interactions.",
|
"description": "Context provided by feed generator that may be passed back alongside interactions.",
|
||||||
"maxLength": 2000
|
"maxLength": 2000
|
||||||
|
},
|
||||||
|
"reqId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Unique identifier per request that may be passed back alongside interactions.",
|
||||||
|
"maxLength": 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -93,6 +100,8 @@
|
|||||||
"required": ["by", "indexedAt"],
|
"required": ["by", "indexedAt"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"by": { "type": "ref", "ref": "app.bsky.actor.defs#profileViewBasic" },
|
"by": { "type": "ref", "ref": "app.bsky.actor.defs#profileViewBasic" },
|
||||||
|
"uri": { "type": "string", "format": "at-uri" },
|
||||||
|
"cid": { "type": "string", "format": "cid" },
|
||||||
"indexedAt": { "type": "string", "format": "datetime" }
|
"indexedAt": { "type": "string", "format": "datetime" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -250,6 +259,11 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton.",
|
"description": "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton.",
|
||||||
"maxLength": 2000
|
"maxLength": 2000
|
||||||
|
},
|
||||||
|
"reqId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Unique identifier per request that may be passed back alongside interactions.",
|
||||||
|
"maxLength": 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -36,6 +36,11 @@
|
|||||||
"type": "ref",
|
"type": "ref",
|
||||||
"ref": "app.bsky.feed.defs#skeletonFeedPost"
|
"ref": "app.bsky.feed.defs#skeletonFeedPost"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"reqId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Unique identifier per request that may be passed back alongside interactions.",
|
||||||
|
"maxLength": 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,8 @@
|
|||||||
"required": ["subject", "createdAt"],
|
"required": ["subject", "createdAt"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"subject": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
|
"subject": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
|
||||||
"createdAt": { "type": "string", "format": "datetime" }
|
"createdAt": { "type": "string", "format": "datetime" },
|
||||||
|
"via": { "type": "ref", "ref": "com.atproto.repo.strongRef" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,8 @@
|
|||||||
"required": ["subject", "createdAt"],
|
"required": ["subject", "createdAt"],
|
||||||
"properties": {
|
"properties": {
|
||||||
"subject": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
|
"subject": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
|
||||||
"createdAt": { "type": "string", "format": "datetime" }
|
"createdAt": { "type": "string", "format": "datetime" },
|
||||||
|
"via": { "type": "ref", "ref": "com.atproto.repo.strongRef" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"defs": {
|
"defs": {
|
||||||
"main": {
|
"main": {
|
||||||
"type": "query",
|
"type": "query",
|
||||||
"description": "Find posts matching search criteria, returning views of those posts.",
|
"description": "Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.",
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"type": "params",
|
"type": "params",
|
||||||
"required": ["q"],
|
"required": ["q"],
|
||||||
|
@ -20,7 +20,15 @@
|
|||||||
"maximum": 100,
|
"maximum": 100,
|
||||||
"default": 50
|
"default": 50
|
||||||
},
|
},
|
||||||
"cursor": { "type": "string" }
|
"cursor": { "type": "string" },
|
||||||
|
"purposes": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Optional filter by list purpose. If not specified, all supported types are returned.",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["modlist", "curatelist"]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"output": {
|
"output": {
|
||||||
|
65
lexicons/app/bsky/graph/getListsWithMembership.json
Normal file
65
lexicons/app/bsky/graph/getListsWithMembership.json
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.graph.getListsWithMembership",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Enumerates the lists created by the session user, and includes membership information about `actor` in those lists. Only supports curation and moderation lists (no reference lists, used in starter packs). Requires auth.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["actor"],
|
||||||
|
"properties": {
|
||||||
|
"actor": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-identifier",
|
||||||
|
"description": "The account (actor) to check for membership."
|
||||||
|
},
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50
|
||||||
|
},
|
||||||
|
"cursor": { "type": "string" },
|
||||||
|
"purposes": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Optional filter by list purpose. If not specified, all supported types are returned.",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["modlist", "curatelist"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["listsWithMembership"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": { "type": "string" },
|
||||||
|
"listsWithMembership": {
|
||||||
|
"type": "array",
|
||||||
|
"items": { "type": "ref", "ref": "#listWithMembership" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listWithMembership": {
|
||||||
|
"description": "A list and an optional list item indicating membership of a target user to that list.",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["list"],
|
||||||
|
"properties": {
|
||||||
|
"list": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.graph.defs#listView"
|
||||||
|
},
|
||||||
|
"listItem": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.graph.defs#listItemView"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
57
lexicons/app/bsky/graph/getStarterPacksWithMembership.json
Normal file
57
lexicons/app/bsky/graph/getStarterPacksWithMembership.json
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.graph.getStarterPacksWithMembership",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["actor"],
|
||||||
|
"properties": {
|
||||||
|
"actor": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-identifier",
|
||||||
|
"description": "The account (actor) to check for membership."
|
||||||
|
},
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50
|
||||||
|
},
|
||||||
|
"cursor": { "type": "string" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["starterPacksWithMembership"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": { "type": "string" },
|
||||||
|
"starterPacksWithMembership": {
|
||||||
|
"type": "array",
|
||||||
|
"items": { "type": "ref", "ref": "#starterPackWithMembership" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"starterPackWithMembership": {
|
||||||
|
"description": "A starter pack and an optional list item indicating membership of a target user to that starter pack.",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["starterPack"],
|
||||||
|
"properties": {
|
||||||
|
"starterPack": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.graph.defs#starterPackView"
|
||||||
|
},
|
||||||
|
"listItem": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.graph.defs#listItemView"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
22
lexicons/app/bsky/notification/declaration.json
Normal file
22
lexicons/app/bsky/notification/declaration.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.notification.declaration",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "record",
|
||||||
|
"description": "A declaration of the user's choices related to notifications that can be produced by them.",
|
||||||
|
"key": "literal:self",
|
||||||
|
"record": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["allowSubscriptions"],
|
||||||
|
"properties": {
|
||||||
|
"allowSubscriptions": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'.",
|
||||||
|
"knownValues": ["followers", "mutuals", "none"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
88
lexicons/app/bsky/notification/defs.json
Normal file
88
lexicons/app/bsky/notification/defs.json
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.notification.defs",
|
||||||
|
"defs": {
|
||||||
|
"recordDeleted": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
|
"chatPreference": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["include", "push"],
|
||||||
|
"properties": {
|
||||||
|
"include": { "type": "string", "knownValues": ["all", "accepted"] },
|
||||||
|
"push": { "type": "boolean" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"filterablePreference": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["include", "list", "push"],
|
||||||
|
"properties": {
|
||||||
|
"include": { "type": "string", "knownValues": ["all", "follows"] },
|
||||||
|
"list": { "type": "boolean" },
|
||||||
|
"push": { "type": "boolean" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"preference": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["list", "push"],
|
||||||
|
"properties": {
|
||||||
|
"list": { "type": "boolean" },
|
||||||
|
"push": { "type": "boolean" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"preferences": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"chat",
|
||||||
|
"follow",
|
||||||
|
"like",
|
||||||
|
"likeViaRepost",
|
||||||
|
"mention",
|
||||||
|
"quote",
|
||||||
|
"reply",
|
||||||
|
"repost",
|
||||||
|
"repostViaRepost",
|
||||||
|
"starterpackJoined",
|
||||||
|
"subscribedPost",
|
||||||
|
"unverified",
|
||||||
|
"verified"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"chat": { "type": "ref", "ref": "#chatPreference" },
|
||||||
|
"follow": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"like": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"likeViaRepost": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"mention": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"quote": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"reply": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"repost": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"repostViaRepost": { "type": "ref", "ref": "#filterablePreference" },
|
||||||
|
"starterpackJoined": { "type": "ref", "ref": "#preference" },
|
||||||
|
"subscribedPost": { "type": "ref", "ref": "#preference" },
|
||||||
|
"unverified": { "type": "ref", "ref": "#preference" },
|
||||||
|
"verified": { "type": "ref", "ref": "#preference" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"activitySubscription": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["post", "reply"],
|
||||||
|
"properties": {
|
||||||
|
"post": { "type": "boolean" },
|
||||||
|
"reply": { "type": "boolean" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"subjectActivitySubscription": {
|
||||||
|
"description": "Object used to store activity subscription data in stash.",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["subject", "activitySubscription"],
|
||||||
|
"properties": {
|
||||||
|
"subject": { "type": "string", "format": "did" },
|
||||||
|
"activitySubscription": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#activitySubscription"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
27
lexicons/app/bsky/notification/getPreferences.json
Normal file
27
lexicons/app/bsky/notification/getPreferences.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.notification.getPreferences",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Get notification-related preferences for an account. Requires auth.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["preferences"],
|
||||||
|
"properties": {
|
||||||
|
"preferences": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#preferences"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.notification.listActivitySubscriptions",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Enumerate all accounts to which the requesting account is subscribed to receive notifications for. Requires auth.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"properties": {
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50
|
||||||
|
},
|
||||||
|
"cursor": { "type": "string" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["subscriptions"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": { "type": "string" },
|
||||||
|
"subscriptions": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.actor.defs#profileView"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -61,7 +61,7 @@
|
|||||||
"author": { "type": "ref", "ref": "app.bsky.actor.defs#profileView" },
|
"author": { "type": "ref", "ref": "app.bsky.actor.defs#profileView" },
|
||||||
"reason": {
|
"reason": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Expected values are 'like', 'repost', 'follow', 'mention', 'reply', 'quote', and 'starterpack-joined'.",
|
"description": "The reason why this notification was delivered - e.g. your post was liked, or you received a new follower.",
|
||||||
"knownValues": [
|
"knownValues": [
|
||||||
"like",
|
"like",
|
||||||
"repost",
|
"repost",
|
||||||
@ -69,7 +69,12 @@
|
|||||||
"mention",
|
"mention",
|
||||||
"reply",
|
"reply",
|
||||||
"quote",
|
"quote",
|
||||||
"starterpack-joined"
|
"starterpack-joined",
|
||||||
|
"verified",
|
||||||
|
"unverified",
|
||||||
|
"like-via-repost",
|
||||||
|
"repost-via-repost",
|
||||||
|
"subscribed-post"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"reasonSubject": { "type": "string", "format": "at-uri" },
|
"reasonSubject": { "type": "string", "format": "at-uri" },
|
||||||
|
38
lexicons/app/bsky/notification/putActivitySubscription.json
Normal file
38
lexicons/app/bsky/notification/putActivitySubscription.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.notification.putActivitySubscription",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Puts an activity subscription entry. The key should be omitted for creation and provided for updates. Requires auth.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["subject", "activitySubscription"],
|
||||||
|
"properties": {
|
||||||
|
"subject": { "type": "string", "format": "did" },
|
||||||
|
"activitySubscription": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#activitySubscription"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["subject"],
|
||||||
|
"properties": {
|
||||||
|
"subject": { "type": "string", "format": "did" },
|
||||||
|
"activitySubscription": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#activitySubscription"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
83
lexicons/app/bsky/notification/putPreferencesV2.json
Normal file
83
lexicons/app/bsky/notification/putPreferencesV2.json
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.notification.putPreferencesV2",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Set notification-related preferences for an account. Requires auth.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"chat": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#chatPreference"
|
||||||
|
},
|
||||||
|
"follow": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"like": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"likeViaRepost": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"mention": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"quote": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"reply": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"repost": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"repostViaRepost": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#filterablePreference"
|
||||||
|
},
|
||||||
|
"starterpackJoined": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#preference"
|
||||||
|
},
|
||||||
|
"subscribedPost": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#preference"
|
||||||
|
},
|
||||||
|
"unverified": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#preference"
|
||||||
|
},
|
||||||
|
"verified": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#preference"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["preferences"],
|
||||||
|
"properties": {
|
||||||
|
"preferences": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.notification.defs#preferences"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -17,7 +17,11 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"knownValues": ["ios", "android", "web"]
|
"knownValues": ["ios", "android", "web"]
|
||||||
},
|
},
|
||||||
"appId": { "type": "string" }
|
"appId": { "type": "string" },
|
||||||
|
"ageRestricted": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Set to true when the actor is age restricted"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
26
lexicons/app/bsky/notification/unregisterPush.json
Normal file
26
lexicons/app/bsky/notification/unregisterPush.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.notification.unregisterPush",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "The inverse of registerPush - inform a specified service that push notifications should no longer be sent to the given token for the requesting account. Requires auth.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["serviceDid", "token", "platform", "appId"],
|
||||||
|
"properties": {
|
||||||
|
"serviceDid": { "type": "string", "format": "did" },
|
||||||
|
"token": { "type": "string" },
|
||||||
|
"platform": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["ios", "android", "web"]
|
||||||
|
},
|
||||||
|
"appId": { "type": "string" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -86,6 +86,113 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"threadItemPost": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"post",
|
||||||
|
"moreParents",
|
||||||
|
"moreReplies",
|
||||||
|
"opThread",
|
||||||
|
"hiddenByThreadgate",
|
||||||
|
"mutedByViewer"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"post": { "type": "ref", "ref": "app.bsky.feed.defs#postView" },
|
||||||
|
"moreParents": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "This post has more parents that were not present in the response. This is just a boolean, without the number of parents."
|
||||||
|
},
|
||||||
|
"moreReplies": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate."
|
||||||
|
},
|
||||||
|
"opThread": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "This post is part of a contiguous thread by the OP from the thread root. Many different OP threads can happen in the same thread."
|
||||||
|
},
|
||||||
|
"hiddenByThreadgate": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread."
|
||||||
|
},
|
||||||
|
"mutedByViewer": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "This is by an account muted by the viewer requesting it."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"threadItemNoUnauthenticated": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
|
"threadItemNotFound": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
|
"threadItemBlocked": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["author"],
|
||||||
|
"properties": {
|
||||||
|
"author": { "type": "ref", "ref": "app.bsky.feed.defs#blockedAuthor" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ageAssuranceState": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "The computed state of the age assurance process, returned to the user in question on certain authenticated requests.",
|
||||||
|
"required": ["status"],
|
||||||
|
"properties": {
|
||||||
|
"lastInitiatedAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "The timestamp when this state was last updated."
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The status of the age assurance process.",
|
||||||
|
"knownValues": ["unknown", "pending", "assured", "blocked"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ageAssuranceEvent": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Object used to store age assurance data in stash.",
|
||||||
|
"required": ["createdAt", "status", "attemptId"],
|
||||||
|
"properties": {
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "The date and time of this write operation."
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The status of the age assurance process.",
|
||||||
|
"knownValues": ["unknown", "pending", "assured"]
|
||||||
|
},
|
||||||
|
"attemptId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The unique identifier for this instance of the age assurance flow, in UUID format."
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The email used for AA."
|
||||||
|
},
|
||||||
|
"initIp": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The IP address used when initiating the AA flow."
|
||||||
|
},
|
||||||
|
"initUa": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user agent used when initiating the AA flow."
|
||||||
|
},
|
||||||
|
"completeIp": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The IP address used when completing the AA flow."
|
||||||
|
},
|
||||||
|
"completeUa": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user agent used when completing the AA flow."
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
17
lexicons/app/bsky/unspecced/getAgeAssuranceState.json
Normal file
17
lexicons/app/bsky/unspecced/getAgeAssuranceState.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.unspecced.getAgeAssuranceState",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Returns the current state of the age assurance process for an account. This is used to check if the user has completed age assurance or if further action is required.",
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.unspecced.defs#ageAssuranceState"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -11,7 +11,24 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [],
|
"required": [],
|
||||||
"properties": {
|
"properties": {
|
||||||
"checkEmailConfirmed": { "type": "boolean" }
|
"checkEmailConfirmed": { "type": "boolean" },
|
||||||
|
"liveNow": {
|
||||||
|
"type": "array",
|
||||||
|
"items": { "type": "ref", "ref": "#liveNowConfig" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"liveNowConfig": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["did", "domains"],
|
||||||
|
"properties": {
|
||||||
|
"did": { "type": "string", "format": "did" },
|
||||||
|
"domains": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
61
lexicons/app/bsky/unspecced/getPostThreadOtherV2.json
Normal file
61
lexicons/app/bsky/unspecced/getPostThreadOtherV2.json
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.unspecced.getPostThreadOtherV2",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get additional posts under a thread e.g. replies hidden by threadgate. Based on an anchor post at any depth of the tree, returns top-level replies below that anchor. It does not include ancestors nor the anchor itself. This should be called after exhausting `app.bsky.unspecced.getPostThreadV2`. Does not require auth, but additional metadata and filtering will be applied for authed requests.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["anchor"],
|
||||||
|
"properties": {
|
||||||
|
"anchor": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-uri",
|
||||||
|
"description": "Reference (AT-URI) to post record. This is the anchor post."
|
||||||
|
},
|
||||||
|
"prioritizeFollowedUsers": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to prioritize posts from followed users. It only has effect when the user is authenticated.",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["thread"],
|
||||||
|
"properties": {
|
||||||
|
"thread": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "A flat list of other thread items. The depth of each item is indicated by the depth property inside the item.",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#threadItem"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"threadItem": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["uri", "depth", "value"],
|
||||||
|
"properties": {
|
||||||
|
"uri": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-uri"
|
||||||
|
},
|
||||||
|
"depth": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths."
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": ["app.bsky.unspecced.defs#threadItemPost"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
99
lexicons/app/bsky/unspecced/getPostThreadV2.json
Normal file
99
lexicons/app/bsky/unspecced/getPostThreadV2.json
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.unspecced.getPostThreadV2",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any depth of the tree, and returns posts above it (recursively resolving the parent, without further branching to their replies) and below it (recursive replies, with branching to their replies). Does not require auth, but additional metadata and filtering will be applied for authed requests.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["anchor"],
|
||||||
|
"properties": {
|
||||||
|
"anchor": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-uri",
|
||||||
|
"description": "Reference (AT-URI) to post record. This is the anchor post, and the thread will be built around it. It can be any post in the tree, not necessarily a root post."
|
||||||
|
},
|
||||||
|
"above": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to include parents above the anchor.",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"below": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "How many levels of replies to include below the anchor.",
|
||||||
|
"default": 6,
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 20
|
||||||
|
},
|
||||||
|
"branchingFactor": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Maximum of replies to include at each level of the thread, except for the direct replies to the anchor, which are (NOTE: currently, during unspecced phase) all returned (NOTE: later they might be paginated).",
|
||||||
|
"default": 10,
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 100
|
||||||
|
},
|
||||||
|
"prioritizeFollowedUsers": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to prioritize posts from followed users. It only has effect when the user is authenticated.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"sort": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Sorting for the thread replies.",
|
||||||
|
"knownValues": ["newest", "oldest", "top"],
|
||||||
|
"default": "oldest"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["thread", "hasOtherReplies"],
|
||||||
|
"properties": {
|
||||||
|
"thread": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "A flat list of thread items. The depth of each item is indicated by the depth property inside the item.",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#threadItem"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"threadgate": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.feed.defs#threadgateView"
|
||||||
|
},
|
||||||
|
"hasOtherReplies": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"threadItem": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["uri", "depth", "value"],
|
||||||
|
"properties": {
|
||||||
|
"uri": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-uri"
|
||||||
|
},
|
||||||
|
"depth": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths."
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": [
|
||||||
|
"app.bsky.unspecced.defs#threadItemPost",
|
||||||
|
"app.bsky.unspecced.defs#threadItemNoUnauthenticated",
|
||||||
|
"app.bsky.unspecced.defs#threadItemNotFound",
|
||||||
|
"app.bsky.unspecced.defs#threadItemBlocked"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
43
lexicons/app/bsky/unspecced/initAgeAssurance.json
Normal file
43
lexicons/app/bsky/unspecced/initAgeAssurance.json
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "app.bsky.unspecced.initAgeAssurance",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["email", "language", "countryCode"],
|
||||||
|
"properties": {
|
||||||
|
"email": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user's email address to receive assurance instructions."
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user's preferred language for communication during the assurance process."
|
||||||
|
},
|
||||||
|
"countryCode": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "An ISO 3166-1 alpha-2 code of the user's location."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.unspecced.defs#ageAssuranceState"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{ "name": "InvalidEmail" },
|
||||||
|
{ "name": "DidTooLong" },
|
||||||
|
{ "name": "InvalidInitiation" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -25,7 +25,11 @@
|
|||||||
},
|
},
|
||||||
"chatDisabled": {
|
"chatDisabled": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Set to true when the actor cannot actively participate in converations"
|
"description": "Set to true when the actor cannot actively participate in conversations"
|
||||||
|
},
|
||||||
|
"verification": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "app.bsky.actor.defs#verificationState"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,10 @@
|
|||||||
"com.atproto.admin.defs#repoRef",
|
"com.atproto.admin.defs#repoRef",
|
||||||
"com.atproto.repo.strongRef"
|
"com.atproto.repo.strongRef"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"modTool": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#modTool"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,6 +70,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"modTool": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Moderation tool information for tracing the source of the action",
|
||||||
|
"required": ["name"],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Name/identifier of the source (e.g., 'bsky-app/android', 'bsky-web/chrome')"
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"type": "unknown",
|
||||||
|
"description": "Additional arbitrary metadata about the source"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,36 +11,89 @@
|
|||||||
"com.atproto.moderation.defs#reasonSexual",
|
"com.atproto.moderation.defs#reasonSexual",
|
||||||
"com.atproto.moderation.defs#reasonRude",
|
"com.atproto.moderation.defs#reasonRude",
|
||||||
"com.atproto.moderation.defs#reasonOther",
|
"com.atproto.moderation.defs#reasonOther",
|
||||||
"com.atproto.moderation.defs#reasonAppeal"
|
"com.atproto.moderation.defs#reasonAppeal",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonAppeal",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonViolenceAnimalWelfare",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceThreats",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceGraphicContent",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceSelfHarm",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceGlorification",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceExtremistContent",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceTrafficking",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonSexualAbuseContent",
|
||||||
|
"tools.ozone.report.defs#reasonSexualNCII",
|
||||||
|
"tools.ozone.report.defs#reasonSexualSextortion",
|
||||||
|
"tools.ozone.report.defs#reasonSexualDeepfake",
|
||||||
|
"tools.ozone.report.defs#reasonSexualAnimal",
|
||||||
|
"tools.ozone.report.defs#reasonSexualUnlabeled",
|
||||||
|
"tools.ozone.report.defs#reasonSexualOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyCSAM",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyGroom",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyMinorPrivacy",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyEndangerment",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyHarassment",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyPromotion",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentTroll",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentTargeted",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentHateSpeech",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentDoxxing",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingBot",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingImpersonation",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingSpam",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingScam",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingSyntheticContent",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingMisinformation",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonRuleSiteSecurity",
|
||||||
|
"tools.ozone.report.defs#reasonRuleStolenContent",
|
||||||
|
"tools.ozone.report.defs#reasonRuleProhibitedSales",
|
||||||
|
"tools.ozone.report.defs#reasonRuleBanEvasion",
|
||||||
|
"tools.ozone.report.defs#reasonRuleOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonCivicElectoralProcess",
|
||||||
|
"tools.ozone.report.defs#reasonCivicDisclosure",
|
||||||
|
"tools.ozone.report.defs#reasonCivicInterference",
|
||||||
|
"tools.ozone.report.defs#reasonCivicMisinformation",
|
||||||
|
"tools.ozone.report.defs#reasonCivicImpersonation"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"reasonSpam": {
|
"reasonSpam": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Spam: frequent unwanted promotion, replies, mentions"
|
"description": "Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`."
|
||||||
},
|
},
|
||||||
"reasonViolation": {
|
"reasonViolation": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Direct violation of server rules, laws, terms of service"
|
"description": "Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`."
|
||||||
},
|
},
|
||||||
"reasonMisleading": {
|
"reasonMisleading": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Misleading identity, affiliation, or content"
|
"description": "Misleading identity, affiliation, or content. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingOther`."
|
||||||
},
|
},
|
||||||
"reasonSexual": {
|
"reasonSexual": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Unwanted or mislabeled sexual content"
|
"description": "Unwanted or mislabeled sexual content. Prefer new lexicon definition `tools.ozone.report.defs#reasonSexualUnlabeled`."
|
||||||
},
|
},
|
||||||
"reasonRude": {
|
"reasonRude": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Rude, harassing, explicit, or otherwise unwelcoming behavior"
|
"description": "Rude, harassing, explicit, or otherwise unwelcoming behavior. Prefer new lexicon definition `tools.ozone.report.defs#reasonHarassmentOther`."
|
||||||
},
|
},
|
||||||
"reasonOther": {
|
"reasonOther": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Other: reports not falling under another report category"
|
"description": "Reports not falling under another report category. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`."
|
||||||
},
|
},
|
||||||
"reasonAppeal": {
|
"reasonAppeal": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Appeal: appeal a previously taken moderation action"
|
"description": "Appeal a previously taken moderation action"
|
||||||
},
|
},
|
||||||
"subjectType": {
|
"subjectType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
88
lexicons/com/atproto/temp/checkHandleAvailability.json
Normal file
88
lexicons/com/atproto/temp/checkHandleAvailability.json
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "com.atproto.temp.checkHandleAvailability",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Checks whether the provided handle is available. If the handle is not available, available suggestions will be returned. Optional inputs will be used to generate suggestions.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["handle"],
|
||||||
|
"properties": {
|
||||||
|
"handle": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "handle",
|
||||||
|
"description": "Tentative handle. Will be checked for availability or used to build handle suggestions."
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "User-provided email. Might be used to build handle suggestions."
|
||||||
|
},
|
||||||
|
"birthDate": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "User-provided birth date. Might be used to build handle suggestions."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["handle", "result"],
|
||||||
|
"properties": {
|
||||||
|
"handle": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "handle",
|
||||||
|
"description": "Echo of the input handle."
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": ["#resultAvailable", "#resultUnavailable"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "InvalidEmail",
|
||||||
|
"description": "An invalid email was provided."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resultAvailable": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Indicates the provided handle is available.",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
|
"resultUnavailable": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Indicates the provided handle is unavailable and gives suggestions of available handles.",
|
||||||
|
"required": ["suggestions"],
|
||||||
|
"properties": {
|
||||||
|
"suggestions": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "List of suggested handles based on the provided inputs.",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#suggestion"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"suggestion": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["handle", "method"],
|
||||||
|
"properties": {
|
||||||
|
"handle": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "handle"
|
||||||
|
},
|
||||||
|
"method": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Method used to build this suggestion. Should be considered opaque to clients. Can be used for metrics."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
lexicons/com/atproto/temp/dereferenceScope.json
Normal file
39
lexicons/com/atproto/temp/dereferenceScope.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "com.atproto.temp.dereferenceScope",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Allows finding the oauth permission scope from a reference",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["scope"],
|
||||||
|
"properties": {
|
||||||
|
"scope": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The scope reference (starts with 'ref:')"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["scope"],
|
||||||
|
"properties": {
|
||||||
|
"scope": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The full oauth permission scope"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "InvalidScopeReference",
|
||||||
|
"description": "An invalid scope reference was provided."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
23
lexicons/com/atproto/temp/revokeAccountCredentials.json
Normal file
23
lexicons/com/atproto/temp/revokeAccountCredentials.json
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "com.atproto.temp.revokeAccountCredentials",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Revoke sessions, password, and app passwords associated with account. May be resolved by a password reset.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["account"],
|
||||||
|
"properties": {
|
||||||
|
"account": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-identifier"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
106
lexicons/tools/ozone/hosting/getAccountHistory.json
Normal file
106
lexicons/tools/ozone/hosting/getAccountHistory.json
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.hosting.getAccountHistory",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Get account history, e.g. log of updated email addresses or other identity information.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["did"],
|
||||||
|
"properties": {
|
||||||
|
"did": { "type": "string", "format": "did" },
|
||||||
|
"events": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": [
|
||||||
|
"accountCreated",
|
||||||
|
"emailUpdated",
|
||||||
|
"emailConfirmed",
|
||||||
|
"passwordUpdated",
|
||||||
|
"handleUpdated"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cursor": { "type": "string" },
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["events"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": { "type": "string" },
|
||||||
|
"events": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#event"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"event": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["details", "createdBy", "createdAt"],
|
||||||
|
"properties": {
|
||||||
|
"details": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": [
|
||||||
|
"#accountCreated",
|
||||||
|
"#emailUpdated",
|
||||||
|
"#emailConfirmed",
|
||||||
|
"#passwordUpdated",
|
||||||
|
"#handleUpdated"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"createdBy": { "type": "string" },
|
||||||
|
"createdAt": { "type": "string", "format": "datetime" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"accountCreated": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [],
|
||||||
|
"properties": {
|
||||||
|
"email": { "type": "string" },
|
||||||
|
"handle": { "type": "string", "format": "handle" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"emailUpdated": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["email"],
|
||||||
|
"properties": {
|
||||||
|
"email": { "type": "string" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"emailConfirmed": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["email"],
|
||||||
|
"properties": {
|
||||||
|
"email": { "type": "string" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"passwordUpdated": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [],
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
|
"handleUpdated": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["handle"],
|
||||||
|
"properties": {
|
||||||
|
"handle": { "type": "string", "format": "handle" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -35,7 +35,10 @@
|
|||||||
"#accountEvent",
|
"#accountEvent",
|
||||||
"#identityEvent",
|
"#identityEvent",
|
||||||
"#recordEvent",
|
"#recordEvent",
|
||||||
"#modEventPriorityScore"
|
"#modEventPriorityScore",
|
||||||
|
"#ageAssuranceEvent",
|
||||||
|
"#ageAssuranceOverrideEvent",
|
||||||
|
"#revokeAccountCredentialsEvent"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"subject": {
|
"subject": {
|
||||||
@ -50,7 +53,8 @@
|
|||||||
"createdBy": { "type": "string", "format": "did" },
|
"createdBy": { "type": "string", "format": "did" },
|
||||||
"createdAt": { "type": "string", "format": "datetime" },
|
"createdAt": { "type": "string", "format": "datetime" },
|
||||||
"creatorHandle": { "type": "string" },
|
"creatorHandle": { "type": "string" },
|
||||||
"subjectHandle": { "type": "string" }
|
"subjectHandle": { "type": "string" },
|
||||||
|
"modTool": { "type": "ref", "ref": "#modTool" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"modEventViewDetail": {
|
"modEventViewDetail": {
|
||||||
@ -86,7 +90,10 @@
|
|||||||
"#accountEvent",
|
"#accountEvent",
|
||||||
"#identityEvent",
|
"#identityEvent",
|
||||||
"#recordEvent",
|
"#recordEvent",
|
||||||
"#modEventPriorityScore"
|
"#modEventPriorityScore",
|
||||||
|
"#ageAssuranceEvent",
|
||||||
|
"#ageAssuranceOverrideEvent",
|
||||||
|
"#revokeAccountCredentialsEvent"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"subject": {
|
"subject": {
|
||||||
@ -103,7 +110,8 @@
|
|||||||
"items": { "type": "ref", "ref": "#blobView" }
|
"items": { "type": "ref", "ref": "#blobView" }
|
||||||
},
|
},
|
||||||
"createdBy": { "type": "string", "format": "did" },
|
"createdBy": { "type": "string", "format": "did" },
|
||||||
"createdAt": { "type": "string", "format": "datetime" }
|
"createdAt": { "type": "string", "format": "datetime" },
|
||||||
|
"modTool": { "type": "ref", "ref": "#modTool" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subjectStatusView": {
|
"subjectStatusView": {
|
||||||
@ -115,7 +123,8 @@
|
|||||||
"type": "union",
|
"type": "union",
|
||||||
"refs": [
|
"refs": [
|
||||||
"com.atproto.admin.defs#repoRef",
|
"com.atproto.admin.defs#repoRef",
|
||||||
"com.atproto.repo.strongRef"
|
"com.atproto.repo.strongRef",
|
||||||
|
"chat.bsky.convo.defs#messageRef"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hosting": {
|
"hosting": {
|
||||||
@ -200,6 +209,16 @@
|
|||||||
"description": "Statistics related to the record subjects authored by the subject's account",
|
"description": "Statistics related to the record subjects authored by the subject's account",
|
||||||
"type": "ref",
|
"type": "ref",
|
||||||
"ref": "#recordsStats"
|
"ref": "#recordsStats"
|
||||||
|
},
|
||||||
|
"ageAssuranceState": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Current age assurance state of the subject.",
|
||||||
|
"knownValues": ["pending", "assured", "unknown", "reset", "blocked"]
|
||||||
|
},
|
||||||
|
"ageAssuranceUpdatedBy": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether or not the last successful update to age assurance was made by the user or admin.",
|
||||||
|
"knownValues": ["admin", "user"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -433,6 +452,70 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ageAssuranceEvent": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Age assurance info coming directly from users. Only works on DID subjects.",
|
||||||
|
"required": ["createdAt", "status", "attemptId"],
|
||||||
|
"properties": {
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "The date and time of this write operation."
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The status of the age assurance process.",
|
||||||
|
"knownValues": ["unknown", "pending", "assured"]
|
||||||
|
},
|
||||||
|
"attemptId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The unique identifier for this instance of the age assurance flow, in UUID format."
|
||||||
|
},
|
||||||
|
"initIp": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The IP address used when initiating the AA flow."
|
||||||
|
},
|
||||||
|
"initUa": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user agent used when initiating the AA flow."
|
||||||
|
},
|
||||||
|
"completeIp": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The IP address used when completing the AA flow."
|
||||||
|
},
|
||||||
|
"completeUa": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user agent used when completing the AA flow."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ageAssuranceOverrideEvent": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Age assurance status override by moderators. Only works on DID subjects.",
|
||||||
|
"required": ["comment", "status"],
|
||||||
|
"properties": {
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state.",
|
||||||
|
"knownValues": ["assured", "reset", "blocked"]
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Comment describing the reason for the override."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"revokeAccountCredentialsEvent": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Account credentials revocation by moderators. Only works on DID subjects.",
|
||||||
|
"required": ["comment"],
|
||||||
|
"properties": {
|
||||||
|
"comment": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Comment describing the reason for the revocation."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"modEventAcknowledge": {
|
"modEventAcknowledge": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -893,6 +976,33 @@
|
|||||||
"description": "The total number of records labeled as a result of the user's reports."
|
"description": "The total number of records labeled as a result of the user's reports."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"modTool": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Moderation tool information for tracing the source of the action",
|
||||||
|
"required": ["name"],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Name/identifier of the source (e.g., 'automod', 'ozone/workspace')"
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"type": "unknown",
|
||||||
|
"description": "Additional arbitrary metadata about the source"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"timelineEventPlcCreate": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Moderation event timeline event for a PLC create operation"
|
||||||
|
},
|
||||||
|
"timelineEventPlcOperation": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Moderation event timeline event for generic PLC operation"
|
||||||
|
},
|
||||||
|
"timelineEventPlcTombstone": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Moderation event timeline event for a PLC tombstone operation"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,10 @@
|
|||||||
"tools.ozone.moderation.defs#accountEvent",
|
"tools.ozone.moderation.defs#accountEvent",
|
||||||
"tools.ozone.moderation.defs#identityEvent",
|
"tools.ozone.moderation.defs#identityEvent",
|
||||||
"tools.ozone.moderation.defs#recordEvent",
|
"tools.ozone.moderation.defs#recordEvent",
|
||||||
"tools.ozone.moderation.defs#modEventPriorityScore"
|
"tools.ozone.moderation.defs#modEventPriorityScore",
|
||||||
|
"tools.ozone.moderation.defs#ageAssuranceEvent",
|
||||||
|
"tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
|
||||||
|
"tools.ozone.moderation.defs#revokeAccountCredentialsEvent"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"subject": {
|
"subject": {
|
||||||
@ -44,9 +47,23 @@
|
|||||||
},
|
},
|
||||||
"subjectBlobCids": {
|
"subjectBlobCids": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": { "type": "string", "format": "cid" }
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "cid"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"createdBy": { "type": "string", "format": "did" }
|
"createdBy": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did"
|
||||||
|
},
|
||||||
|
"modTool": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.moderation.defs#modTool"
|
||||||
|
},
|
||||||
|
"externalId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -57,7 +74,15 @@
|
|||||||
"ref": "tools.ozone.moderation.defs#modEventView"
|
"ref": "tools.ozone.moderation.defs#modEventView"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"errors": [{ "name": "SubjectHasAction" }]
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "SubjectHasAction"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DuplicateExternalId",
|
||||||
|
"description": "An event with the same external ID already exists for the subject."
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
104
lexicons/tools/ozone/moderation/getAccountTimeline.json
Normal file
104
lexicons/tools/ozone/moderation/getAccountTimeline.json
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.moderation.getAccountTimeline",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "Get timeline of all available events of an account. This includes moderation events, account history and did history.",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"required": ["did"],
|
||||||
|
"properties": {
|
||||||
|
"did": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["timeline"],
|
||||||
|
"properties": {
|
||||||
|
"timeline": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#timelineItem"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "RepoNotFound"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"timelineItem": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["day", "summary"],
|
||||||
|
"properties": {
|
||||||
|
"day": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"summary": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#timelineItemSummary"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"timelineItemSummary": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["eventSubjectType", "eventType", "count"],
|
||||||
|
"properties": {
|
||||||
|
"eventSubjectType": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["account", "record", "chat"]
|
||||||
|
},
|
||||||
|
"eventType": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": [
|
||||||
|
"tools.ozone.moderation.defs#modEventTakedown",
|
||||||
|
"tools.ozone.moderation.defs#modEventReverseTakedown",
|
||||||
|
"tools.ozone.moderation.defs#modEventComment",
|
||||||
|
"tools.ozone.moderation.defs#modEventReport",
|
||||||
|
"tools.ozone.moderation.defs#modEventLabel",
|
||||||
|
"tools.ozone.moderation.defs#modEventAcknowledge",
|
||||||
|
"tools.ozone.moderation.defs#modEventEscalate",
|
||||||
|
"tools.ozone.moderation.defs#modEventMute",
|
||||||
|
"tools.ozone.moderation.defs#modEventUnmute",
|
||||||
|
"tools.ozone.moderation.defs#modEventMuteReporter",
|
||||||
|
"tools.ozone.moderation.defs#modEventUnmuteReporter",
|
||||||
|
"tools.ozone.moderation.defs#modEventEmail",
|
||||||
|
"tools.ozone.moderation.defs#modEventResolveAppeal",
|
||||||
|
"tools.ozone.moderation.defs#modEventDivert",
|
||||||
|
"tools.ozone.moderation.defs#modEventTag",
|
||||||
|
"tools.ozone.moderation.defs#accountEvent",
|
||||||
|
"tools.ozone.moderation.defs#identityEvent",
|
||||||
|
"tools.ozone.moderation.defs#recordEvent",
|
||||||
|
"tools.ozone.moderation.defs#modEventPriorityScore",
|
||||||
|
"tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
|
||||||
|
"tools.ozone.moderation.defs#ageAssuranceEvent",
|
||||||
|
"tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
|
||||||
|
"tools.ozone.moderation.defs#timelineEventPlcCreate",
|
||||||
|
"tools.ozone.moderation.defs#timelineEventPlcOperation",
|
||||||
|
"tools.ozone.moderation.defs#timelineEventPlcTombstone",
|
||||||
|
"tools.ozone.hosting.getAccountHistory#accountCreated",
|
||||||
|
"tools.ozone.hosting.getAccountHistory#emailConfirmed",
|
||||||
|
"tools.ozone.hosting.getAccountHistory#passwordUpdated",
|
||||||
|
"tools.ozone.hosting.getAccountHistory#handleUpdated"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -113,6 +113,22 @@
|
|||||||
"description": "If specified, only events where the action policies match any of the given policies are returned"
|
"description": "If specified, only events where the action policies match any of the given policies are returned"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"modTool": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": "If specified, only events where the modTool name matches any of the given values are returned"
|
||||||
|
},
|
||||||
|
"batchId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "If specified, only events where the batchId matches the given value are returned"
|
||||||
|
},
|
||||||
|
"ageAssuranceState": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "If specified, only events where the age assurance state matches the given value are returned",
|
||||||
|
"knownValues": ["pending", "assured", "unknown", "reset", "blocked"]
|
||||||
|
},
|
||||||
"cursor": {
|
"cursor": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
|
@ -182,6 +182,11 @@
|
|||||||
"maximum": 100,
|
"maximum": 100,
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "If specified, only subjects that have priority score value above the given value will be returned."
|
"description": "If specified, only subjects that have priority score value above the given value will be returned."
|
||||||
|
},
|
||||||
|
"ageAssuranceState": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "If specified, only subjects with the given age assurance state will be returned.",
|
||||||
|
"knownValues": ["pending", "assured", "unknown", "reset", "blocked"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
249
lexicons/tools/ozone/report/defs.json
Normal file
249
lexicons/tools/ozone/report/defs.json
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.report.defs",
|
||||||
|
"defs": {
|
||||||
|
"reasonType": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": [
|
||||||
|
"tools.ozone.report.defs#reasonAppeal",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonViolenceAnimalWelfare",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceThreats",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceGraphicContent",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceSelfHarm",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceGlorification",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceExtremistContent",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceTrafficking",
|
||||||
|
"tools.ozone.report.defs#reasonViolenceOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonSexualAbuseContent",
|
||||||
|
"tools.ozone.report.defs#reasonSexualNCII",
|
||||||
|
"tools.ozone.report.defs#reasonSexualSextortion",
|
||||||
|
"tools.ozone.report.defs#reasonSexualDeepfake",
|
||||||
|
"tools.ozone.report.defs#reasonSexualAnimal",
|
||||||
|
"tools.ozone.report.defs#reasonSexualUnlabeled",
|
||||||
|
"tools.ozone.report.defs#reasonSexualOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyCSAM",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyGroom",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyMinorPrivacy",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyEndangerment",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyHarassment",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyPromotion",
|
||||||
|
"tools.ozone.report.defs#reasonChildSafetyOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentTroll",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentTargeted",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentHateSpeech",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentDoxxing",
|
||||||
|
"tools.ozone.report.defs#reasonHarassmentOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingBot",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingImpersonation",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingSpam",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingScam",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingSyntheticContent",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingMisinformation",
|
||||||
|
"tools.ozone.report.defs#reasonMisleadingOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonRuleSiteSecurity",
|
||||||
|
"tools.ozone.report.defs#reasonRuleStolenContent",
|
||||||
|
"tools.ozone.report.defs#reasonRuleProhibitedSales",
|
||||||
|
"tools.ozone.report.defs#reasonRuleBanEvasion",
|
||||||
|
"tools.ozone.report.defs#reasonRuleOther",
|
||||||
|
|
||||||
|
"tools.ozone.report.defs#reasonCivicElectoralProcess",
|
||||||
|
"tools.ozone.report.defs#reasonCivicDisclosure",
|
||||||
|
"tools.ozone.report.defs#reasonCivicInterference",
|
||||||
|
"tools.ozone.report.defs#reasonCivicMisinformation",
|
||||||
|
"tools.ozone.report.defs#reasonCivicImpersonation"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"reasonAppeal": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Appeal a previously taken moderation action"
|
||||||
|
},
|
||||||
|
"reasonViolenceAnimalWelfare": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Animal welfare violations"
|
||||||
|
},
|
||||||
|
"reasonViolenceThreats": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Threats or incitement"
|
||||||
|
},
|
||||||
|
"reasonViolenceGraphicContent": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Graphic violent content"
|
||||||
|
},
|
||||||
|
"reasonViolenceSelfHarm": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Self harm"
|
||||||
|
},
|
||||||
|
"reasonViolenceGlorification": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Glorification of violence"
|
||||||
|
},
|
||||||
|
"reasonViolenceExtremistContent": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Extremist content. These reports will be sent only be sent to the application's Moderation Authority."
|
||||||
|
},
|
||||||
|
"reasonViolenceTrafficking": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Human trafficking"
|
||||||
|
},
|
||||||
|
"reasonViolenceOther": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Other violent content"
|
||||||
|
},
|
||||||
|
|
||||||
|
"reasonSexualAbuseContent": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Adult sexual abuse content"
|
||||||
|
},
|
||||||
|
"reasonSexualNCII": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Non-consensual intimate imagery"
|
||||||
|
},
|
||||||
|
"reasonSexualSextortion": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Sextortion"
|
||||||
|
},
|
||||||
|
"reasonSexualDeepfake": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Deepfake adult content"
|
||||||
|
},
|
||||||
|
"reasonSexualAnimal": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Animal sexual abuse"
|
||||||
|
},
|
||||||
|
"reasonSexualUnlabeled": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Unlabelled adult content"
|
||||||
|
},
|
||||||
|
"reasonSexualOther": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Other sexual violence content"
|
||||||
|
},
|
||||||
|
|
||||||
|
"reasonChildSafetyCSAM": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Child sexual abuse material (CSAM). These reports will be sent only be sent to the application's Moderation Authority."
|
||||||
|
},
|
||||||
|
"reasonChildSafetyGroom": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Grooming or predatory behavior. These reports will be sent only be sent to the application's Moderation Authority."
|
||||||
|
},
|
||||||
|
"reasonChildSafetyMinorPrivacy": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Privacy violation involving a minor"
|
||||||
|
},
|
||||||
|
"reasonChildSafetyEndangerment": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Child endangerment. These reports will be sent only be sent to the application's Moderation Authority."
|
||||||
|
},
|
||||||
|
"reasonChildSafetyHarassment": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Harassment or bullying of minors"
|
||||||
|
},
|
||||||
|
"reasonChildSafetyPromotion": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Promotion of child exploitation. These reports will be sent only be sent to the application's Moderation Authority."
|
||||||
|
},
|
||||||
|
"reasonChildSafetyOther": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Other child safety. These reports will be sent only be sent to the application's Moderation Authority."
|
||||||
|
},
|
||||||
|
|
||||||
|
"reasonHarassmentTroll": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Trolling"
|
||||||
|
},
|
||||||
|
"reasonHarassmentTargeted": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Targeted harassment"
|
||||||
|
},
|
||||||
|
"reasonHarassmentHateSpeech": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Hate speech"
|
||||||
|
},
|
||||||
|
"reasonHarassmentDoxxing": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Doxxing"
|
||||||
|
},
|
||||||
|
"reasonHarassmentOther": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Other harassing or hateful content"
|
||||||
|
},
|
||||||
|
|
||||||
|
"reasonMisleadingBot": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Fake account or bot"
|
||||||
|
},
|
||||||
|
"reasonMisleadingImpersonation": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Impersonation"
|
||||||
|
},
|
||||||
|
"reasonMisleadingSpam": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Spam"
|
||||||
|
},
|
||||||
|
"reasonMisleadingScam": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Scam"
|
||||||
|
},
|
||||||
|
"reasonMisleadingSyntheticContent": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Unlabelled gen-AI or synthetic content"
|
||||||
|
},
|
||||||
|
"reasonMisleadingMisinformation": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Harmful false claims"
|
||||||
|
},
|
||||||
|
"reasonMisleadingOther": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Other misleading content"
|
||||||
|
},
|
||||||
|
|
||||||
|
"reasonRuleSiteSecurity": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Hacking or system attacks"
|
||||||
|
},
|
||||||
|
"reasonRuleStolenContent": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Stolen content"
|
||||||
|
},
|
||||||
|
"reasonRuleProhibitedSales": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Promoting or selling prohibited items or services"
|
||||||
|
},
|
||||||
|
"reasonRuleBanEvasion": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Banned user returning"
|
||||||
|
},
|
||||||
|
"reasonRuleOther": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Other"
|
||||||
|
},
|
||||||
|
|
||||||
|
"reasonCivicElectoralProcess": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Electoral process violations"
|
||||||
|
},
|
||||||
|
"reasonCivicDisclosure": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Disclosure & transparency violations"
|
||||||
|
},
|
||||||
|
"reasonCivicInterference": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Voter intimidation or interference"
|
||||||
|
},
|
||||||
|
"reasonCivicMisinformation": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Election misinformation"
|
||||||
|
},
|
||||||
|
"reasonCivicImpersonation": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Impersonation of electoral officials/entities"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
61
lexicons/tools/ozone/safelink/addRule.json
Normal file
61
lexicons/tools/ozone/safelink/addRule.json
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.safelink.addRule",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Add a new URL safety rule",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["url", "pattern", "action", "reason"],
|
||||||
|
"properties": {
|
||||||
|
"url": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL or domain to apply the rule to"
|
||||||
|
},
|
||||||
|
"pattern": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#patternType"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#actionType"
|
||||||
|
},
|
||||||
|
"reason": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#reasonType"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Optional comment about the decision"
|
||||||
|
},
|
||||||
|
"createdBy": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "Author DID. Only respected when using admin auth"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#event"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "InvalidUrl",
|
||||||
|
"description": "The provided URL is invalid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "RuleAlreadyExists",
|
||||||
|
"description": "A rule for this URL/domain already exists"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
125
lexicons/tools/ozone/safelink/defs.json
Normal file
125
lexicons/tools/ozone/safelink/defs.json
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.safelink.defs",
|
||||||
|
"defs": {
|
||||||
|
"event": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "An event for URL safety decisions",
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"eventType",
|
||||||
|
"url",
|
||||||
|
"pattern",
|
||||||
|
"action",
|
||||||
|
"reason",
|
||||||
|
"createdBy",
|
||||||
|
"createdAt"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Auto-incrementing row ID"
|
||||||
|
},
|
||||||
|
"eventType": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#eventType"
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL that this rule applies to"
|
||||||
|
},
|
||||||
|
"pattern": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#patternType"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#actionType"
|
||||||
|
},
|
||||||
|
"reason": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#reasonType"
|
||||||
|
},
|
||||||
|
"createdBy": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "DID of the user who created this rule"
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Optional comment about the decision"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"eventType": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["addRule", "updateRule", "removeRule"]
|
||||||
|
},
|
||||||
|
"patternType": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["domain", "url"]
|
||||||
|
},
|
||||||
|
"actionType": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["block", "warn", "whitelist"]
|
||||||
|
},
|
||||||
|
"reasonType": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["csam", "spam", "phishing", "none"]
|
||||||
|
},
|
||||||
|
"urlRule": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Input for creating a URL safety rule",
|
||||||
|
"required": [
|
||||||
|
"url",
|
||||||
|
"pattern",
|
||||||
|
"action",
|
||||||
|
"reason",
|
||||||
|
"createdBy",
|
||||||
|
"createdAt",
|
||||||
|
"updatedAt"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"url": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL or domain to apply the rule to"
|
||||||
|
},
|
||||||
|
"pattern": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#patternType"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#actionType"
|
||||||
|
},
|
||||||
|
"reason": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#reasonType"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Optional comment about the decision"
|
||||||
|
},
|
||||||
|
"createdBy": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "DID of the user added the rule."
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "Timestamp when the rule was created"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "Timestamp when the rule was last updated"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
66
lexicons/tools/ozone/safelink/queryEvents.json
Normal file
66
lexicons/tools/ozone/safelink/queryEvents.json
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.safelink.queryEvents",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Query URL safety audit events",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"cursor": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Cursor for pagination"
|
||||||
|
},
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50,
|
||||||
|
"description": "Maximum number of results to return"
|
||||||
|
},
|
||||||
|
"urls": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": "Filter by specific URLs or domains"
|
||||||
|
},
|
||||||
|
"patternType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Filter by pattern type"
|
||||||
|
},
|
||||||
|
"sortDirection": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["asc", "desc"],
|
||||||
|
"default": "desc",
|
||||||
|
"description": "Sort direction"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["events"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Next cursor for pagination. Only present if there are more results."
|
||||||
|
},
|
||||||
|
"events": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#event"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
82
lexicons/tools/ozone/safelink/queryRules.json
Normal file
82
lexicons/tools/ozone/safelink/queryRules.json
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.safelink.queryRules",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Query URL safety rules",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"cursor": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Cursor for pagination"
|
||||||
|
},
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50,
|
||||||
|
"description": "Maximum number of results to return"
|
||||||
|
},
|
||||||
|
"urls": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": "Filter by specific URLs or domains"
|
||||||
|
},
|
||||||
|
"patternType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Filter by pattern type"
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": "Filter by action types"
|
||||||
|
},
|
||||||
|
"reason": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Filter by reason type"
|
||||||
|
},
|
||||||
|
"createdBy": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "Filter by rule creator"
|
||||||
|
},
|
||||||
|
"sortDirection": {
|
||||||
|
"type": "string",
|
||||||
|
"knownValues": ["asc", "desc"],
|
||||||
|
"default": "desc",
|
||||||
|
"description": "Sort direction"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["rules"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Next cursor for pagination. Only present if there are more results."
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#urlRule"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
lexicons/tools/ozone/safelink/removeRule.json
Normal file
49
lexicons/tools/ozone/safelink/removeRule.json
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.safelink.removeRule",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Remove an existing URL safety rule",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["url", "pattern"],
|
||||||
|
"properties": {
|
||||||
|
"url": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL or domain to remove the rule for"
|
||||||
|
},
|
||||||
|
"pattern": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#patternType"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Optional comment about why the rule is being removed"
|
||||||
|
},
|
||||||
|
"createdBy": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "Optional DID of the user. Only respected when using admin auth."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#event"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "RuleNotFound",
|
||||||
|
"description": "No active rule found for this URL/domain"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
57
lexicons/tools/ozone/safelink/updateRule.json
Normal file
57
lexicons/tools/ozone/safelink/updateRule.json
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.safelink.updateRule",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Update an existing URL safety rule",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["url", "pattern", "action", "reason"],
|
||||||
|
"properties": {
|
||||||
|
"url": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL or domain to update the rule for"
|
||||||
|
},
|
||||||
|
"pattern": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#patternType"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#actionType"
|
||||||
|
},
|
||||||
|
"reason": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#reasonType"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Optional comment about the update"
|
||||||
|
},
|
||||||
|
"createdBy": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "Optional DID to credit as the creator. Only respected for admin_token authentication."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.safelink.defs#event"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
{
|
||||||
|
"name": "RuleNotFound",
|
||||||
|
"description": "No active rule found for this URL/domain"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -29,6 +29,11 @@
|
|||||||
"viewer": {
|
"viewer": {
|
||||||
"type": "ref",
|
"type": "ref",
|
||||||
"ref": "#viewerConfig"
|
"ref": "#viewerConfig"
|
||||||
|
},
|
||||||
|
"verifierDid": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "The did of the verifier used for verification."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,7 +56,8 @@
|
|||||||
"knownValues": [
|
"knownValues": [
|
||||||
"tools.ozone.team.defs#roleAdmin",
|
"tools.ozone.team.defs#roleAdmin",
|
||||||
"tools.ozone.team.defs#roleModerator",
|
"tools.ozone.team.defs#roleModerator",
|
||||||
"tools.ozone.team.defs#roleTriage"
|
"tools.ozone.team.defs#roleTriage",
|
||||||
|
"tools.ozone.team.defs#roleVerifier"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,8 @@
|
|||||||
"knownValues": [
|
"knownValues": [
|
||||||
"tools.ozone.team.defs#roleModerator",
|
"tools.ozone.team.defs#roleModerator",
|
||||||
"tools.ozone.team.defs#roleTriage",
|
"tools.ozone.team.defs#roleTriage",
|
||||||
"tools.ozone.team.defs#roleAdmin"
|
"tools.ozone.team.defs#roleAdmin",
|
||||||
|
"tools.ozone.team.defs#roleVerifier"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"scope": {
|
"scope": {
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
"knownValues": [
|
"knownValues": [
|
||||||
"tools.ozone.team.defs#roleModerator",
|
"tools.ozone.team.defs#roleModerator",
|
||||||
"tools.ozone.team.defs#roleTriage",
|
"tools.ozone.team.defs#roleTriage",
|
||||||
|
"tools.ozone.team.defs#roleVerifier",
|
||||||
"tools.ozone.team.defs#roleAdmin"
|
"tools.ozone.team.defs#roleAdmin"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
"knownValues": [
|
"knownValues": [
|
||||||
"tools.ozone.team.defs#roleAdmin",
|
"tools.ozone.team.defs#roleAdmin",
|
||||||
"tools.ozone.team.defs#roleModerator",
|
"tools.ozone.team.defs#roleModerator",
|
||||||
|
"tools.ozone.team.defs#roleVerifier",
|
||||||
"tools.ozone.team.defs#roleTriage"
|
"tools.ozone.team.defs#roleTriage"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,12 @@
|
|||||||
"lastUpdatedBy": { "type": "string" },
|
"lastUpdatedBy": { "type": "string" },
|
||||||
"role": {
|
"role": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"knownValues": ["#roleAdmin", "#roleModerator", "#roleTriage"]
|
"knownValues": [
|
||||||
|
"#roleAdmin",
|
||||||
|
"#roleModerator",
|
||||||
|
"#roleTriage",
|
||||||
|
"#roleVerifier"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -32,6 +37,10 @@
|
|||||||
"roleTriage": {
|
"roleTriage": {
|
||||||
"type": "token",
|
"type": "token",
|
||||||
"description": "Triage role. Mostly intended for monitoring and escalating issues."
|
"description": "Triage role. Mostly intended for monitoring and escalating issues."
|
||||||
|
},
|
||||||
|
"roleVerifier": {
|
||||||
|
"type": "token",
|
||||||
|
"description": "Verifier role. Only allowed to issue verifications."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
"knownValues": [
|
"knownValues": [
|
||||||
"tools.ozone.team.defs#roleAdmin",
|
"tools.ozone.team.defs#roleAdmin",
|
||||||
"tools.ozone.team.defs#roleModerator",
|
"tools.ozone.team.defs#roleModerator",
|
||||||
|
"tools.ozone.team.defs#roleVerifier",
|
||||||
"tools.ozone.team.defs#roleTriage"
|
"tools.ozone.team.defs#roleTriage"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
85
lexicons/tools/ozone/verification/defs.json
Normal file
85
lexicons/tools/ozone/verification/defs.json
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.verification.defs",
|
||||||
|
"defs": {
|
||||||
|
"verificationView": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Verification data for the associated subject.",
|
||||||
|
"required": [
|
||||||
|
"issuer",
|
||||||
|
"uri",
|
||||||
|
"subject",
|
||||||
|
"handle",
|
||||||
|
"displayName",
|
||||||
|
"createdAt"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"issuer": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user who issued this verification.",
|
||||||
|
"format": "did"
|
||||||
|
},
|
||||||
|
"uri": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The AT-URI of the verification record.",
|
||||||
|
"format": "at-uri"
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did",
|
||||||
|
"description": "The subject of the verification."
|
||||||
|
},
|
||||||
|
"handle": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying.",
|
||||||
|
"format": "handle"
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying."
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Timestamp when the verification was created.",
|
||||||
|
"format": "datetime"
|
||||||
|
},
|
||||||
|
"revokeReason": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Describes the reason for revocation, also indicating that the verification is no longer valid."
|
||||||
|
},
|
||||||
|
"revokedAt": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Timestamp when the verification was revoked.",
|
||||||
|
"format": "datetime"
|
||||||
|
},
|
||||||
|
"revokedBy": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The user who revoked this verification.",
|
||||||
|
"format": "did"
|
||||||
|
},
|
||||||
|
"subjectProfile": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": []
|
||||||
|
},
|
||||||
|
"issuerProfile": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": []
|
||||||
|
},
|
||||||
|
"subjectRepo": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": [
|
||||||
|
"tools.ozone.moderation.defs#repoViewDetail",
|
||||||
|
"tools.ozone.moderation.defs#repoViewNotFound"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"issuerRepo": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": [
|
||||||
|
"tools.ozone.moderation.defs#repoViewDetail",
|
||||||
|
"tools.ozone.moderation.defs#repoViewNotFound"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
92
lexicons/tools/ozone/verification/grantVerifications.json
Normal file
92
lexicons/tools/ozone/verification/grantVerifications.json
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.verification.grantVerifications",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Grant verifications to multiple subjects. Allows batch processing of up to 100 verifications at once.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["verifications"],
|
||||||
|
"properties": {
|
||||||
|
"verifications": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Array of verification requests to process",
|
||||||
|
"maxLength": 100,
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#verificationInput"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["verifications", "failedVerifications"],
|
||||||
|
"properties": {
|
||||||
|
"verifications": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.verification.defs#verificationView"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"failedVerifications": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#grantError"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"verificationInput": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["subject", "handle", "displayName"],
|
||||||
|
"properties": {
|
||||||
|
"subject": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The did of the subject being verified",
|
||||||
|
"format": "did"
|
||||||
|
},
|
||||||
|
"handle": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Handle of the subject the verification applies to at the moment of verifying.",
|
||||||
|
"format": "handle"
|
||||||
|
},
|
||||||
|
"displayName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Display name of the subject the verification applies to at the moment of verifying."
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "Timestamp for verification record. Defaults to current time when not specified."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"grantError": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Error object for failed verifications.",
|
||||||
|
"required": ["error", "subject"],
|
||||||
|
"properties": {
|
||||||
|
"error": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Error message describing the reason for failure."
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The did of the subject being verified",
|
||||||
|
"format": "did"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
83
lexicons/tools/ozone/verification/listVerifications.json
Normal file
83
lexicons/tools/ozone/verification/listVerifications.json
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.verification.listVerifications",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "query",
|
||||||
|
"description": "List verifications",
|
||||||
|
"parameters": {
|
||||||
|
"type": "params",
|
||||||
|
"properties": {
|
||||||
|
"cursor": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Pagination cursor"
|
||||||
|
},
|
||||||
|
"limit": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Maximum number of results to return",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100,
|
||||||
|
"default": 50
|
||||||
|
},
|
||||||
|
"createdAfter": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "Filter to verifications created after this timestamp"
|
||||||
|
},
|
||||||
|
"createdBefore": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "Filter to verifications created before this timestamp"
|
||||||
|
},
|
||||||
|
"issuers": {
|
||||||
|
"type": "array",
|
||||||
|
"maxLength": 100,
|
||||||
|
"description": "Filter to verifications from specific issuers",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"subjects": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Filter to specific verified DIDs",
|
||||||
|
"maxLength": 100,
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "did"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sortDirection": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Sort direction for creation date",
|
||||||
|
"enum": ["asc", "desc"],
|
||||||
|
"default": "desc"
|
||||||
|
},
|
||||||
|
"isRevoked": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Filter to verifications that are revoked or not. By default, includes both."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["verifications"],
|
||||||
|
"properties": {
|
||||||
|
"cursor": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"verifications": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "tools.ozone.verification.defs#verificationView"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
75
lexicons/tools/ozone/verification/revokeVerifications.json
Normal file
75
lexicons/tools/ozone/verification/revokeVerifications.json
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "tools.ozone.verification.revokeVerifications",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "procedure",
|
||||||
|
"description": "Revoke previously granted verifications in batches of up to 100.",
|
||||||
|
"input": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["uris"],
|
||||||
|
"properties": {
|
||||||
|
"uris": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Array of verification record uris to revoke",
|
||||||
|
"maxLength": 100,
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The AT-URI of the verification record to revoke.",
|
||||||
|
"format": "at-uri"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"revokeReason": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Reason for revoking the verification. This is optional and can be omitted if not needed.",
|
||||||
|
"maxLength": 1000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"encoding": "application/json",
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["revokedVerifications", "failedRevocations"],
|
||||||
|
"properties": {
|
||||||
|
"revokedVerifications": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "List of verification uris successfully revoked",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "at-uri"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"failedRevocations": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "List of verification uris that couldn't be revoked, including failure reasons",
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "#revokeError"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"revokeError": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Error object for failed revocations",
|
||||||
|
"required": ["uri", "error"],
|
||||||
|
"properties": {
|
||||||
|
"uri": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The AT-URI of the verification record that failed to revoke.",
|
||||||
|
"format": "at-uri"
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Description of the error that occurred during revocation."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
package.json
10
package.json
@ -2,7 +2,7 @@
|
|||||||
"name": "atp",
|
"name": "atp",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"repository": "git@github.com:bluesky-social/atproto.git",
|
"repository": "git@github.com:bluesky-social/atproto.git",
|
||||||
"author": "Bluesky PBC <hello@blueskyweb.xyz>",
|
"author": "Bluesky Social PBC <hello@blueskyweb.xyz>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"private": true,
|
"private": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -22,6 +22,7 @@
|
|||||||
"precodegen": "pnpm run --recursive --stream --filter '@atproto/lex-cli...' build --force",
|
"precodegen": "pnpm run --recursive --stream --filter '@atproto/lex-cli...' build --force",
|
||||||
"codegen": "pnpm run --sort --recursive --stream --parallel codegen",
|
"codegen": "pnpm run --sort --recursive --stream --parallel codegen",
|
||||||
"build": "pnpm run --sort --recursive --stream '/^(build|build:.+)$/'",
|
"build": "pnpm run --sort --recursive --stream '/^(build|build:.+)$/'",
|
||||||
|
"i18n": "pnpm run --parallel i18n:extract",
|
||||||
"dev": "NODE_ENV=development pnpm run --recursive --parallel --stream '/^(dev|dev:.+)$/'",
|
"dev": "NODE_ENV=development pnpm run --recursive --parallel --stream '/^(dev|dev:.+)$/'",
|
||||||
"dev:tsc": "tsc --build tsconfig.json --preserveWatchOutput --watch",
|
"dev:tsc": "tsc --build tsconfig.json --preserveWatchOutput --watch",
|
||||||
"test": "LOG_ENABLED=false ./packages/dev-infra/with-test-redis-and-db.sh pnpm test --stream --recursive",
|
"test": "LOG_ENABLED=false ./packages/dev-infra/with-test-redis-and-db.sh pnpm test --stream --recursive",
|
||||||
@ -53,7 +54,12 @@
|
|||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"prettier-config-standard": "^7.0.0",
|
"prettier-config-standard": "^7.0.0",
|
||||||
"prettier-plugin-tailwindcss": "^0.6.11",
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
||||||
"typescript": "^5.8.2"
|
"typescript": "^5.8.3"
|
||||||
|
},
|
||||||
|
"pnpm": {
|
||||||
|
"overrides": {
|
||||||
|
"cookie": "^0.7.2"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
"packages": [
|
"packages": [
|
||||||
|
@ -1,5 +1,262 @@
|
|||||||
# @atproto/api
|
# @atproto/api
|
||||||
|
|
||||||
|
## 0.16.9
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4189](https://github.com/bluesky-social/atproto/pull/4189) [`ff30786af`](https://github.com/bluesky-social/atproto/commit/ff30786af6f72ad6506939bfca01a3f55a096c1c) Thanks [@foysalit](https://github.com/foysalit)! - Add revoke credentials moderation event type to lexicons
|
||||||
|
|
||||||
|
## 0.16.8
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3881](https://github.com/bluesky-social/atproto/pull/3881) [`a5b20f021`](https://github.com/bluesky-social/atproto/commit/a5b20f0218bd13e3c5d7681de2263dcc850b7523) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Add expanded moderation report reasons as outlined in
|
||||||
|
[RFC-0009](https://github.com/bluesky-social/proposals/tree/main/0009-mod-report-granularity)
|
||||||
|
- Updated dependencies [[`055a413fb`](https://github.com/bluesky-social/atproto/commit/055a413fba4fab510ec899377154f1204ab12099)]:
|
||||||
|
- @atproto/common-web@0.4.3
|
||||||
|
- @atproto/lexicon@0.5.1
|
||||||
|
- @atproto/xrpc@0.7.5
|
||||||
|
|
||||||
|
## 0.16.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4164](https://github.com/bluesky-social/atproto/pull/4164) [`09717f29a`](https://github.com/bluesky-social/atproto/commit/09717f29ac7ca742c9c3310980dbe4d112b7597f) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add bookmarks lexicons
|
||||||
|
|
||||||
|
## 0.16.6
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [[`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d)]:
|
||||||
|
- @atproto/lexicon@0.5.0
|
||||||
|
- @atproto/syntax@0.4.1
|
||||||
|
- @atproto/xrpc@0.7.4
|
||||||
|
|
||||||
|
## 0.16.5
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4142](https://github.com/bluesky-social/atproto/pull/4142) [`66dbf8db6`](https://github.com/bluesky-social/atproto/commit/66dbf8db6dd9defeee140accd2e7b25d13feb8b6) Thanks [@DavidBuchanan314](https://github.com/DavidBuchanan314)! - add com.atproto.temp.revokeAccountCredentials lexicon schema
|
||||||
|
|
||||||
|
## 0.16.4
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [[`2104d9033`](https://github.com/bluesky-social/atproto/commit/2104d9033e2e1a3a7b821c1f0c5c8ffac5832d59)]:
|
||||||
|
- @atproto/lexicon@0.4.14
|
||||||
|
- @atproto/xrpc@0.7.3
|
||||||
|
|
||||||
|
## 0.16.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4109](https://github.com/bluesky-social/atproto/pull/4109) [`3156ddf61`](https://github.com/bluesky-social/atproto/commit/3156ddf61519fede9ed148478f082184a1e3242e) Thanks [@foysalit](https://github.com/foysalit)! - Add batchId filter to tools.ozone.moderation.queryEvents endpoint
|
||||||
|
|
||||||
|
- Updated dependencies [[`331a356ce`](https://github.com/bluesky-social/atproto/commit/331a356ce27ff1d0b24747b0c16f3b54b07a0a12)]:
|
||||||
|
- @atproto/lexicon@0.4.13
|
||||||
|
- @atproto/xrpc@0.7.2
|
||||||
|
|
||||||
|
## 0.16.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4081](https://github.com/bluesky-social/atproto/pull/4081) [`c370d933b`](https://github.com/bluesky-social/atproto/commit/c370d933b76b4e15b83a82b40d1b6a32bd54add6) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Adds `purpose` filtering to `app.bsky.graph.getLists`.
|
||||||
|
Adds `app.bsky.graph.getListsWithMembership`.
|
||||||
|
Adds `app.bsky.graph.getStarterPacksWithMembership`.
|
||||||
|
|
||||||
|
## 0.16.1
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3927](https://github.com/bluesky-social/atproto/pull/3927) [`171efadb4`](https://github.com/bluesky-social/atproto/commit/171efadb49f842aa8ff3bf9d790caa6e0e0456ef) Thanks [@foysalit](https://github.com/foysalit)! - Introduces ozone event timeline lexicons
|
||||||
|
|
||||||
|
## 0.16.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- [#4072](https://github.com/bluesky-social/atproto/pull/4072) [`9751eebd7`](https://github.com/bluesky-social/atproto/commit/9751eebd718066984a91046b63e410caecd64022) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Remove app.bsky.unspecced.checkHandleAvailability, add com.atproto.temp.checkHandleAvailability
|
||||||
|
|
||||||
|
## 0.15.27
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4058](https://github.com/bluesky-social/atproto/pull/4058) [`8787fd9de`](https://github.com/bluesky-social/atproto/commit/8787fd9dea769716412c9883e355cd496664bc6e) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Only allow initiating age assurance flow from certain states, return `InvalidInitiation` error if violated.
|
||||||
|
|
||||||
|
- [#4049](https://github.com/bluesky-social/atproto/pull/4049) [`dc84906c8`](https://github.com/bluesky-social/atproto/commit/dc84906c865e8a97939a909dd3f75decde538363) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - app.bsky.unspecced.checkHandleAvailability lexicon
|
||||||
|
|
||||||
|
## 0.15.26
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4041](https://github.com/bluesky-social/atproto/pull/4041) [`083566ddf`](https://github.com/bluesky-social/atproto/commit/083566ddfc3c9263423ebd5e59bfdbfe7b091c82) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add `unregisterPush` API
|
||||||
|
|
||||||
|
- [#4048](https://github.com/bluesky-social/atproto/pull/4048) [`3b356c509`](https://github.com/bluesky-social/atproto/commit/3b356c5096a269f1be6c4e69bdee7f5d14eb5d7e) Thanks [@foysalit](https://github.com/foysalit)! - Add externalId to ozone events for deduping events per subject and event type
|
||||||
|
|
||||||
|
## 0.15.25
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4028](https://github.com/bluesky-social/atproto/pull/4028) [`88c136427`](https://github.com/bluesky-social/atproto/commit/88c136427451a20d21812a1aa88a70cf21904138) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Age assurance compliance
|
||||||
|
|
||||||
|
## 0.15.24
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4034](https://github.com/bluesky-social/atproto/pull/4034) [`34d7a0846`](https://github.com/bluesky-social/atproto/commit/34d7a0846bb14bb36a8cc2747fb7ce73005e59d1) Thanks [@foysalit](https://github.com/foysalit)! - Add age assurance event types to ozone lexicons
|
||||||
|
|
||||||
|
- Updated dependencies [[`8ef976d38`](https://github.com/bluesky-social/atproto/commit/8ef976d3852df4bfa376e515e131cc0810a42f20)]:
|
||||||
|
- @atproto/lexicon@0.4.12
|
||||||
|
- @atproto/xrpc@0.7.1
|
||||||
|
|
||||||
|
## 0.15.23
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3991](https://github.com/bluesky-social/atproto/pull/3991) [`0c0381a2b`](https://github.com/bluesky-social/atproto/commit/0c0381a2bb9b9dc14ca6c1c8c4a6b966f0d516e8) Thanks [@foysalit](https://github.com/foysalit)! - Add modTool parameter to ozone events
|
||||||
|
|
||||||
|
## 0.15.22
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3945](https://github.com/bluesky-social/atproto/pull/3945) [`02c358d0c`](https://github.com/bluesky-social/atproto/commit/02c358d0ca280922c20da5be1e23b4aa9e90a30b) Thanks [@foysalit](https://github.com/foysalit)! - Add safelink module in ozone
|
||||||
|
|
||||||
|
## 0.15.21
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4010](https://github.com/bluesky-social/atproto/pull/4010) [`d344723a1`](https://github.com/bluesky-social/atproto/commit/d344723a1018b2436b5453526397936bd587a2e2) Thanks [@mozzius](https://github.com/mozzius)! - Loosen constraints for saved feed preferences
|
||||||
|
|
||||||
|
## 0.15.20
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#4005](https://github.com/bluesky-social/atproto/pull/4005) [`bb65f7a6e`](https://github.com/bluesky-social/atproto/commit/bb65f7a6e22ceedb57c74a18cf0539c1dd04c0a7) Thanks [@mozzius](https://github.com/mozzius)! - add `subscribed-post` notification reason
|
||||||
|
|
||||||
|
## 0.15.19
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3997](https://github.com/bluesky-social/atproto/pull/3997) [`376778a92`](https://github.com/bluesky-social/atproto/commit/376778a92f08fb6709c4cde736bfaca7393a72e1) Thanks [@mozzius](https://github.com/mozzius)! - Add put method for AppBskyNotificationDeclarationRecord
|
||||||
|
|
||||||
|
## 0.15.18
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3995](https://github.com/bluesky-social/atproto/pull/3995) [`e3e31b2b9`](https://github.com/bluesky-social/atproto/commit/e3e31b2b9bf8c4de6b2d7fa992c3b3795686ea72) Thanks [@mozzius](https://github.com/mozzius)! - Add put method to record utility classes
|
||||||
|
|
||||||
|
## 0.15.17
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3990](https://github.com/bluesky-social/atproto/pull/3990) [`6cd120206`](https://github.com/bluesky-social/atproto/commit/6cd12020657bfb5f87e97cd16e4abb379b64f60b) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add activity subscription lexicons
|
||||||
|
|
||||||
|
## 0.15.16
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3966](https://github.com/bluesky-social/atproto/pull/3966) [`97ef11657`](https://github.com/bluesky-social/atproto/commit/97ef116571909c95713017bcd7b621c8afbc90ef) Thanks [@mozzius](https://github.com/mozzius)! - Rename notification preference lexicon "filter" key to "include"
|
||||||
|
|
||||||
|
## 0.15.15
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#2934](https://github.com/bluesky-social/atproto/pull/2934) [`7f1316748`](https://github.com/bluesky-social/atproto/commit/7f1316748dedb512ae739ad51b95644baa39fe80) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Fix bug where fuzzy matching mute words was over-zealous e.g. `Andor` matching `and/or`.
|
||||||
|
|
||||||
|
- [#2934](https://github.com/bluesky-social/atproto/pull/2934) [`7f1316748`](https://github.com/bluesky-social/atproto/commit/7f1316748dedb512ae739ad51b95644baa39fe80) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Updates mute word matching to include a `matches: MuteWordMatch[]` property on the `muted-word` `cause` type returned as part of a `ModerationDecision`.
|
||||||
|
|
||||||
|
## 0.15.14
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3901](https://github.com/bluesky-social/atproto/pull/3901) [`a48671e73`](https://github.com/bluesky-social/atproto/commit/a48671e730681f692a88053e8f137bd9e2aed5f1) Thanks [@mozzius](https://github.com/mozzius)! - Add notification preferences V2 lexicons
|
||||||
|
|
||||||
|
## 0.15.13
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3929](https://github.com/bluesky-social/atproto/pull/3929) [`c6eb8a12e`](https://github.com/bluesky-social/atproto/commit/c6eb8a12e291c88fea79da447f9da8608d02300d) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Rename `getPostThreadHiddenV2` to `getPostThreadOtherV2` to better reflect the intent of the API.
|
||||||
|
|
||||||
|
## 0.15.12
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3912](https://github.com/bluesky-social/atproto/pull/3912) [`a5cd018bd`](https://github.com/bluesky-social/atproto/commit/a5cd018bd5f237221902ab1b6956b46233c92187) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Unify `getPostThreadV2` and `getPostThreadHiddenV2` responses under `app.bsky.unspecced.defs` namespace and a single interface via `threadItemPost`.
|
||||||
|
|
||||||
|
## 0.15.11
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3910](https://github.com/bluesky-social/atproto/pull/3910) [`a978681fd`](https://github.com/bluesky-social/atproto/commit/a978681fde1c138a5298bae77e5dc36ce155f955) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Updates to app.bsky.unspecced.getPostThreadHiddenV2 done in f6d5a467e71fb54996754cce7747b1e98a34442b (https://github.com/bluesky-social/atproto/pull/3909)
|
||||||
|
|
||||||
|
## 0.15.10
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3825](https://github.com/bluesky-social/atproto/pull/3825) [`1dae6c59a`](https://github.com/bluesky-social/atproto/commit/1dae6c59abe0e5aa4a7b7d0cc1dfee88f458d4b9) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add app.bsky.unspecced.getPostThreadV2
|
||||||
|
|
||||||
|
- [#3825](https://github.com/bluesky-social/atproto/pull/3825) [`1dae6c59a`](https://github.com/bluesky-social/atproto/commit/1dae6c59abe0e5aa4a7b7d0cc1dfee88f458d4b9) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add app.bsky.unspecced.getPostThreadHiddenV2
|
||||||
|
|
||||||
|
## 0.15.9
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3882](https://github.com/bluesky-social/atproto/pull/3882) [`79a75bb1e`](https://github.com/bluesky-social/atproto/commit/79a75bb1ed8fc14cefa246621fe1faeebf3fc159) Thanks [@mozzius](https://github.com/mozzius)! - add a "via" field to reposts and likes allowing a reference a repost, and then give a notification when a repost is liked or reposted.
|
||||||
|
|
||||||
|
## 0.15.8
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3869](https://github.com/bluesky-social/atproto/pull/3869) [`80f402f36`](https://github.com/bluesky-social/atproto/commit/80f402f3663af08fd048300738d04c67aa2b9cb8) Thanks [@haileyok](https://github.com/haileyok)! - add `reqId` to feed interactions
|
||||||
|
|
||||||
|
## 0.15.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3860](https://github.com/bluesky-social/atproto/pull/3860) [`86b315388`](https://github.com/bluesky-social/atproto/commit/86b3153884099ceeb0cfdb9d2bfdd447c39fb35a) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add liveNow to app.bsky.unspecced.getConfig
|
||||||
|
|
||||||
|
## 0.15.6
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3824](https://github.com/bluesky-social/atproto/pull/3824) [`3a65b68f7`](https://github.com/bluesky-social/atproto/commit/3a65b68f7dc63c8bfbea0ae615f8ae984272f2e4) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add app.bsky.actor.status lexicon
|
||||||
|
|
||||||
|
- Updated dependencies [[`cc485d296`](https://github.com/bluesky-social/atproto/commit/cc485d29638488928b5efec3d4b0627040589812), [`f36ab48d9`](https://github.com/bluesky-social/atproto/commit/f36ab48d910fc4a3afcd22138ba014c814beb93b), [`f36ab48d9`](https://github.com/bluesky-social/atproto/commit/f36ab48d910fc4a3afcd22138ba014c814beb93b), [`f36ab48d9`](https://github.com/bluesky-social/atproto/commit/f36ab48d910fc4a3afcd22138ba014c814beb93b), [`cc485d296`](https://github.com/bluesky-social/atproto/commit/cc485d29638488928b5efec3d4b0627040589812)]:
|
||||||
|
- @atproto/common-web@0.4.2
|
||||||
|
- @atproto/xrpc@0.7.0
|
||||||
|
- @atproto/lexicon@0.4.11
|
||||||
|
|
||||||
|
## 0.15.5
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3765](https://github.com/bluesky-social/atproto/pull/3765) [`45354c84f`](https://github.com/bluesky-social/atproto/commit/45354c84f898d79f58c14b5c0da3661beb7353f9) Thanks [@foysalit](https://github.com/foysalit)! - Add verification lexicons to ozone
|
||||||
|
|
||||||
|
## 0.15.4
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3768](https://github.com/bluesky-social/atproto/pull/3768) [`7af77f3ed`](https://github.com/bluesky-social/atproto/commit/7af77f3edfe52f77729f61de4188e8375f03b4ef) Thanks [@devinivy](https://github.com/devinivy)! - Support tools.ozone.hosting.getAccountHistory
|
||||||
|
|
||||||
|
## 0.15.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3773](https://github.com/bluesky-social/atproto/pull/3773) [`0087dc1c0`](https://github.com/bluesky-social/atproto/commit/0087dc1c0bafad1d0a0a1a16683d250dea031bf9) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add verification notifications
|
||||||
|
|
||||||
|
## 0.15.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3770](https://github.com/bluesky-social/atproto/pull/3770) [`553c988f1`](https://github.com/bluesky-social/atproto/commit/553c988f1d226b3d2fbe94c117b088f5c82db794) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Add `verificationPrefs` and `hideBadges` setting to user prefs.
|
||||||
|
|
||||||
|
## 0.15.1
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- [#3761](https://github.com/bluesky-social/atproto/pull/3761) [`688268b6a`](https://github.com/bluesky-social/atproto/commit/688268b6a5ee30f0922ee152ffbd26583d164ae4) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Add verification state to profile view lexicons
|
||||||
|
|
||||||
|
- [#3766](https://github.com/bluesky-social/atproto/pull/3766) [`8d99915ce`](https://github.com/bluesky-social/atproto/commit/8d99915ce02c73b9b37bf121ccd2703fa14a906a) Thanks [@rafaelbsky](https://github.com/rafaelbsky)! - Update chat verification lexicon
|
||||||
|
|
||||||
## 0.15.0
|
## 0.15.0
|
||||||
|
|
||||||
### Minor Changes
|
### Minor Changes
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@atproto/api",
|
"name": "@atproto/api",
|
||||||
"version": "0.15.0",
|
"version": "0.16.9",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"description": "Client library for atproto and Bluesky",
|
"description": "Client library for atproto and Bluesky",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
@ -385,12 +385,13 @@ export class Agent extends XrpcClient {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async like(uri: string, cid: string) {
|
async like(uri: string, cid: string, via?: { uri: string; cid: string }) {
|
||||||
return this.app.bsky.feed.like.create(
|
return this.app.bsky.feed.like.create(
|
||||||
{ repo: this.accountDid },
|
{ repo: this.accountDid },
|
||||||
{
|
{
|
||||||
subject: { uri, cid },
|
subject: { uri, cid },
|
||||||
createdAt: new Date().toISOString(),
|
createdAt: new Date().toISOString(),
|
||||||
|
via,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -405,12 +406,13 @@ export class Agent extends XrpcClient {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async repost(uri: string, cid: string) {
|
async repost(uri: string, cid: string, via?: { uri: string; cid: string }) {
|
||||||
return this.app.bsky.feed.repost.create(
|
return this.app.bsky.feed.repost.create(
|
||||||
{ repo: this.accountDid },
|
{ repo: this.accountDid },
|
||||||
{
|
{
|
||||||
subject: { uri, cid },
|
subject: { uri, cid },
|
||||||
createdAt: new Date().toISOString(),
|
createdAt: new Date().toISOString(),
|
||||||
|
via,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -582,6 +584,9 @@ export class Agent extends XrpcClient {
|
|||||||
threadgateAllowRules: undefined,
|
threadgateAllowRules: undefined,
|
||||||
postgateEmbeddingRules: undefined,
|
postgateEmbeddingRules: undefined,
|
||||||
},
|
},
|
||||||
|
verificationPrefs: {
|
||||||
|
hideBadges: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
const res = await this.app.bsky.actor.getPreferences({})
|
const res = await this.app.bsky.actor.getPreferences({})
|
||||||
const labelPrefs: AppBskyActorDefs.ContentLabelPref[] = []
|
const labelPrefs: AppBskyActorDefs.ContentLabelPref[] = []
|
||||||
@ -646,6 +651,10 @@ export class Agent extends XrpcClient {
|
|||||||
pref.threadgateAllowRules
|
pref.threadgateAllowRules
|
||||||
prefs.postInteractionSettings.postgateEmbeddingRules =
|
prefs.postInteractionSettings.postgateEmbeddingRules =
|
||||||
pref.postgateEmbeddingRules
|
pref.postgateEmbeddingRules
|
||||||
|
} else if (predicate.isValidVerificationPrefs(pref)) {
|
||||||
|
prefs.verificationPrefs = {
|
||||||
|
hideBadges: pref.hideBadges,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1334,6 +1343,25 @@ export class Agent extends XrpcClient {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async setVerificationPrefs(settings: AppBskyActorDefs.VerificationPrefs) {
|
||||||
|
const result = AppBskyActorDefs.validateVerificationPrefs(settings)
|
||||||
|
// Fool-proofing (should not be needed because of type safety)
|
||||||
|
if (!result.success) throw result.error
|
||||||
|
|
||||||
|
await this.updatePreferences((prefs) => {
|
||||||
|
const pref = prefs.findLast(predicate.isValidVerificationPrefs) || {
|
||||||
|
$type: 'app.bsky.actor.defs#verificationPrefs',
|
||||||
|
hideBadges: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
pref.hideBadges = settings.hideBadges
|
||||||
|
|
||||||
|
return prefs
|
||||||
|
.filter((p) => !AppBskyActorDefs.isVerificationPrefs(p))
|
||||||
|
.concat(pref)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
//- Private methods
|
//- Private methods
|
||||||
|
|
||||||
#prefsLock = new AwaitLock()
|
#prefsLock = new AwaitLock()
|
||||||
|
5973
packages/api/src/client/index.ts
generated
5973
packages/api/src/client/index.ts
generated
File diff suppressed because it is too large
Load Diff
18876
packages/api/src/client/lexicons.ts
generated
18876
packages/api/src/client/lexicons.ts
generated
File diff suppressed because it is too large
Load Diff
67
packages/api/src/client/types/app/bsky/actor/defs.ts
generated
67
packages/api/src/client/types/app/bsky/actor/defs.ts
generated
@ -12,8 +12,10 @@ import {
|
|||||||
import type * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs.js'
|
import type * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs.js'
|
||||||
import type * as AppBskyGraphDefs from '../graph/defs.js'
|
import type * as AppBskyGraphDefs from '../graph/defs.js'
|
||||||
import type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js'
|
import type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js'
|
||||||
|
import type * as AppBskyNotificationDefs from '../notification/defs.js'
|
||||||
import type * as AppBskyFeedThreadgate from '../feed/threadgate.js'
|
import type * as AppBskyFeedThreadgate from '../feed/threadgate.js'
|
||||||
import type * as AppBskyFeedPostgate from '../feed/postgate.js'
|
import type * as AppBskyFeedPostgate from '../feed/postgate.js'
|
||||||
|
import type * as AppBskyEmbedExternal from '../embed/external.js'
|
||||||
|
|
||||||
const is$typed = _is$typed,
|
const is$typed = _is$typed,
|
||||||
validate = _validate
|
validate = _validate
|
||||||
@ -30,6 +32,7 @@ export interface ProfileViewBasic {
|
|||||||
labels?: ComAtprotoLabelDefs.Label[]
|
labels?: ComAtprotoLabelDefs.Label[]
|
||||||
createdAt?: string
|
createdAt?: string
|
||||||
verification?: VerificationState
|
verification?: VerificationState
|
||||||
|
status?: StatusView
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashProfileViewBasic = 'profileViewBasic'
|
const hashProfileViewBasic = 'profileViewBasic'
|
||||||
@ -55,6 +58,7 @@ export interface ProfileView {
|
|||||||
viewer?: ViewerState
|
viewer?: ViewerState
|
||||||
labels?: ComAtprotoLabelDefs.Label[]
|
labels?: ComAtprotoLabelDefs.Label[]
|
||||||
verification?: VerificationState
|
verification?: VerificationState
|
||||||
|
status?: StatusView
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashProfileView = 'profileView'
|
const hashProfileView = 'profileView'
|
||||||
@ -86,6 +90,7 @@ export interface ProfileViewDetailed {
|
|||||||
labels?: ComAtprotoLabelDefs.Label[]
|
labels?: ComAtprotoLabelDefs.Label[]
|
||||||
pinnedPost?: ComAtprotoRepoStrongRef.Main
|
pinnedPost?: ComAtprotoRepoStrongRef.Main
|
||||||
verification?: VerificationState
|
verification?: VerificationState
|
||||||
|
status?: StatusView
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashProfileViewDetailed = 'profileViewDetailed'
|
const hashProfileViewDetailed = 'profileViewDetailed'
|
||||||
@ -105,6 +110,7 @@ export interface ProfileAssociated {
|
|||||||
starterPacks?: number
|
starterPacks?: number
|
||||||
labeler?: boolean
|
labeler?: boolean
|
||||||
chat?: ProfileAssociatedChat
|
chat?: ProfileAssociatedChat
|
||||||
|
activitySubscription?: ProfileAssociatedActivitySubscription
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashProfileAssociated = 'profileAssociated'
|
const hashProfileAssociated = 'profileAssociated'
|
||||||
@ -132,6 +138,26 @@ export function validateProfileAssociatedChat<V>(v: V) {
|
|||||||
return validate<ProfileAssociatedChat & V>(v, id, hashProfileAssociatedChat)
|
return validate<ProfileAssociatedChat & V>(v, id, hashProfileAssociatedChat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ProfileAssociatedActivitySubscription {
|
||||||
|
$type?: 'app.bsky.actor.defs#profileAssociatedActivitySubscription'
|
||||||
|
allowSubscriptions: 'followers' | 'mutuals' | 'none' | (string & {})
|
||||||
|
}
|
||||||
|
|
||||||
|
const hashProfileAssociatedActivitySubscription =
|
||||||
|
'profileAssociatedActivitySubscription'
|
||||||
|
|
||||||
|
export function isProfileAssociatedActivitySubscription<V>(v: V) {
|
||||||
|
return is$typed(v, id, hashProfileAssociatedActivitySubscription)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validateProfileAssociatedActivitySubscription<V>(v: V) {
|
||||||
|
return validate<ProfileAssociatedActivitySubscription & V>(
|
||||||
|
v,
|
||||||
|
id,
|
||||||
|
hashProfileAssociatedActivitySubscription,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/** Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests. */
|
/** Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests. */
|
||||||
export interface ViewerState {
|
export interface ViewerState {
|
||||||
$type?: 'app.bsky.actor.defs#viewerState'
|
$type?: 'app.bsky.actor.defs#viewerState'
|
||||||
@ -143,6 +169,7 @@ export interface ViewerState {
|
|||||||
following?: string
|
following?: string
|
||||||
followedBy?: string
|
followedBy?: string
|
||||||
knownFollowers?: KnownFollowers
|
knownFollowers?: KnownFollowers
|
||||||
|
activitySubscription?: AppBskyNotificationDefs.ActivitySubscription
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashViewerState = 'viewerState'
|
const hashViewerState = 'viewerState'
|
||||||
@ -230,6 +257,7 @@ export type Preferences = (
|
|||||||
| $Typed<BskyAppStatePref>
|
| $Typed<BskyAppStatePref>
|
||||||
| $Typed<LabelersPref>
|
| $Typed<LabelersPref>
|
||||||
| $Typed<PostInteractionSettingsPref>
|
| $Typed<PostInteractionSettingsPref>
|
||||||
|
| $Typed<VerificationPrefs>
|
||||||
| { $type: string }
|
| { $type: string }
|
||||||
)[]
|
)[]
|
||||||
|
|
||||||
@ -543,6 +571,23 @@ export function validateNux<V>(v: V) {
|
|||||||
return validate<Nux & V>(v, id, hashNux)
|
return validate<Nux & V>(v, id, hashNux)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Preferences for how verified accounts appear in the app. */
|
||||||
|
export interface VerificationPrefs {
|
||||||
|
$type?: 'app.bsky.actor.defs#verificationPrefs'
|
||||||
|
/** Hide the blue check badges for verified accounts and trusted verifiers. */
|
||||||
|
hideBadges: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
const hashVerificationPrefs = 'verificationPrefs'
|
||||||
|
|
||||||
|
export function isVerificationPrefs<V>(v: V) {
|
||||||
|
return is$typed(v, id, hashVerificationPrefs)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validateVerificationPrefs<V>(v: V) {
|
||||||
|
return validate<VerificationPrefs & V>(v, id, hashVerificationPrefs)
|
||||||
|
}
|
||||||
|
|
||||||
/** 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. */
|
/** 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. */
|
||||||
export interface PostInteractionSettingsPref {
|
export interface PostInteractionSettingsPref {
|
||||||
$type?: 'app.bsky.actor.defs#postInteractionSettingsPref'
|
$type?: 'app.bsky.actor.defs#postInteractionSettingsPref'
|
||||||
@ -574,3 +619,25 @@ export function validatePostInteractionSettingsPref<V>(v: V) {
|
|||||||
hashPostInteractionSettingsPref,
|
hashPostInteractionSettingsPref,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface StatusView {
|
||||||
|
$type?: 'app.bsky.actor.defs#statusView'
|
||||||
|
/** The status for the account. */
|
||||||
|
status: 'app.bsky.actor.status#live' | (string & {})
|
||||||
|
record: { [_ in string]: unknown }
|
||||||
|
embed?: $Typed<AppBskyEmbedExternal.View> | { $type: string }
|
||||||
|
/** The date when this status will expire. The application might choose to no longer return the status after expiration. */
|
||||||
|
expiresAt?: string
|
||||||
|
/** True if the status is not expired, false if it is expired. Only present if expiration was set. */
|
||||||
|
isActive?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
const hashStatusView = 'statusView'
|
||||||
|
|
||||||
|
export function isStatusView<V>(v: V) {
|
||||||
|
return is$typed(v, id, hashStatusView)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validateStatusView<V>(v: V) {
|
||||||
|
return validate<StatusView & V>(v, id, hashStatusView)
|
||||||
|
}
|
||||||
|
@ -16,8 +16,7 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.actor.getPreferences'
|
const id = 'app.bsky.actor.getPreferences'
|
||||||
|
|
||||||
export interface QueryParams {}
|
export type QueryParams = {}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,11 +16,10 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.actor.getProfile'
|
const id = 'app.bsky.actor.getProfile'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** Handle or DID of account to fetch profile of. */
|
/** Handle or DID of account to fetch profile of. */
|
||||||
actor: string
|
actor: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
export type OutputSchema = AppBskyActorDefs.ProfileViewDetailed
|
export type OutputSchema = AppBskyActorDefs.ProfileViewDetailed
|
||||||
|
|
||||||
|
@ -16,10 +16,9 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.actor.getProfiles'
|
const id = 'app.bsky.actor.getProfiles'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
actors: string[]
|
actors: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,11 +16,10 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.actor.getSuggestions'
|
const id = 'app.bsky.actor.getSuggestions'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,7 +16,7 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.actor.putPreferences'
|
const id = 'app.bsky.actor.putPreferences'
|
||||||
|
|
||||||
export interface QueryParams {}
|
export type QueryParams = {}
|
||||||
|
|
||||||
export interface InputSchema {
|
export interface InputSchema {
|
||||||
preferences: AppBskyActorDefs.Preferences
|
preferences: AppBskyActorDefs.Preferences
|
||||||
|
@ -16,7 +16,7 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.actor.searchActors'
|
const id = 'app.bsky.actor.searchActors'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** DEPRECATED: use 'q' instead. */
|
/** DEPRECATED: use 'q' instead. */
|
||||||
term?: string
|
term?: string
|
||||||
/** Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. */
|
/** Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. */
|
||||||
@ -24,7 +24,6 @@ export interface QueryParams {
|
|||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,14 +16,13 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.actor.searchActorsTypeahead'
|
const id = 'app.bsky.actor.searchActorsTypeahead'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** DEPRECATED: use 'q' instead. */
|
/** DEPRECATED: use 'q' instead. */
|
||||||
term?: string
|
term?: string
|
||||||
/** Search query prefix; not a full query string. */
|
/** Search query prefix; not a full query string. */
|
||||||
q?: string
|
q?: string
|
||||||
limit?: number
|
limit?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
40
packages/api/src/client/types/app/bsky/actor/status.ts
generated
Normal file
40
packages/api/src/client/types/app/bsky/actor/status.ts
generated
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/**
|
||||||
|
* GENERATED CODE - DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
import { type ValidationResult, BlobRef } from '@atproto/lexicon'
|
||||||
|
import { CID } from 'multiformats/cid'
|
||||||
|
import { validate as _validate } from '../../../../lexicons'
|
||||||
|
import {
|
||||||
|
type $Typed,
|
||||||
|
is$typed as _is$typed,
|
||||||
|
type OmitKey,
|
||||||
|
} from '../../../../util'
|
||||||
|
import type * as AppBskyEmbedExternal from '../embed/external.js'
|
||||||
|
|
||||||
|
const is$typed = _is$typed,
|
||||||
|
validate = _validate
|
||||||
|
const id = 'app.bsky.actor.status'
|
||||||
|
|
||||||
|
export interface Record {
|
||||||
|
$type: 'app.bsky.actor.status'
|
||||||
|
/** The status for the account. */
|
||||||
|
status: 'app.bsky.actor.status#live' | (string & {})
|
||||||
|
embed?: $Typed<AppBskyEmbedExternal.Main> | { $type: string }
|
||||||
|
/** The duration of the status in minutes. Applications can choose to impose minimum and maximum limits. */
|
||||||
|
durationMinutes?: number
|
||||||
|
createdAt: string
|
||||||
|
[k: string]: unknown
|
||||||
|
}
|
||||||
|
|
||||||
|
const hashRecord = 'main'
|
||||||
|
|
||||||
|
export function isRecord<V>(v: V) {
|
||||||
|
return is$typed(v, id, hashRecord)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validateRecord<V>(v: V) {
|
||||||
|
return validate<Record & V>(v, id, hashRecord, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Advertises an account as currently offering live content. */
|
||||||
|
export const LIVE = `${id}#live`
|
50
packages/api/src/client/types/app/bsky/bookmark/createBookmark.ts
generated
Normal file
50
packages/api/src/client/types/app/bsky/bookmark/createBookmark.ts
generated
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/**
|
||||||
|
* GENERATED CODE - DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
import { HeadersMap, XRPCError } from '@atproto/xrpc'
|
||||||
|
import { type ValidationResult, BlobRef } from '@atproto/lexicon'
|
||||||
|
import { CID } from 'multiformats/cid'
|
||||||
|
import { validate as _validate } from '../../../../lexicons'
|
||||||
|
import {
|
||||||
|
type $Typed,
|
||||||
|
is$typed as _is$typed,
|
||||||
|
type OmitKey,
|
||||||
|
} from '../../../../util'
|
||||||
|
|
||||||
|
const is$typed = _is$typed,
|
||||||
|
validate = _validate
|
||||||
|
const id = 'app.bsky.bookmark.createBookmark'
|
||||||
|
|
||||||
|
export type QueryParams = {}
|
||||||
|
|
||||||
|
export interface InputSchema {
|
||||||
|
uri: string
|
||||||
|
cid: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CallOptions {
|
||||||
|
signal?: AbortSignal
|
||||||
|
headers?: HeadersMap
|
||||||
|
qp?: QueryParams
|
||||||
|
encoding?: 'application/json'
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Response {
|
||||||
|
success: boolean
|
||||||
|
headers: HeadersMap
|
||||||
|
}
|
||||||
|
|
||||||
|
export class UnsupportedCollectionError extends XRPCError {
|
||||||
|
constructor(src: XRPCError) {
|
||||||
|
super(src.status, src.error, src.message, src.headers, { cause: src })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function toKnownErr(e: any) {
|
||||||
|
if (e instanceof XRPCError) {
|
||||||
|
if (e.error === 'UnsupportedCollection')
|
||||||
|
return new UnsupportedCollectionError(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
return e
|
||||||
|
}
|
54
packages/api/src/client/types/app/bsky/bookmark/defs.ts
generated
Normal file
54
packages/api/src/client/types/app/bsky/bookmark/defs.ts
generated
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/**
|
||||||
|
* GENERATED CODE - DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
import { type ValidationResult, BlobRef } from '@atproto/lexicon'
|
||||||
|
import { CID } from 'multiformats/cid'
|
||||||
|
import { validate as _validate } from '../../../../lexicons'
|
||||||
|
import {
|
||||||
|
type $Typed,
|
||||||
|
is$typed as _is$typed,
|
||||||
|
type OmitKey,
|
||||||
|
} from '../../../../util'
|
||||||
|
import type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js'
|
||||||
|
import type * as AppBskyFeedDefs from '../feed/defs.js'
|
||||||
|
|
||||||
|
const is$typed = _is$typed,
|
||||||
|
validate = _validate
|
||||||
|
const id = 'app.bsky.bookmark.defs'
|
||||||
|
|
||||||
|
/** Object used to store bookmark data in stash. */
|
||||||
|
export interface Bookmark {
|
||||||
|
$type?: 'app.bsky.bookmark.defs#bookmark'
|
||||||
|
subject: ComAtprotoRepoStrongRef.Main
|
||||||
|
}
|
||||||
|
|
||||||
|
const hashBookmark = 'bookmark'
|
||||||
|
|
||||||
|
export function isBookmark<V>(v: V) {
|
||||||
|
return is$typed(v, id, hashBookmark)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validateBookmark<V>(v: V) {
|
||||||
|
return validate<Bookmark & V>(v, id, hashBookmark)
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BookmarkView {
|
||||||
|
$type?: 'app.bsky.bookmark.defs#bookmarkView'
|
||||||
|
subject: ComAtprotoRepoStrongRef.Main
|
||||||
|
createdAt?: string
|
||||||
|
item:
|
||||||
|
| $Typed<AppBskyFeedDefs.BlockedPost>
|
||||||
|
| $Typed<AppBskyFeedDefs.NotFoundPost>
|
||||||
|
| $Typed<AppBskyFeedDefs.PostView>
|
||||||
|
| { $type: string }
|
||||||
|
}
|
||||||
|
|
||||||
|
const hashBookmarkView = 'bookmarkView'
|
||||||
|
|
||||||
|
export function isBookmarkView<V>(v: V) {
|
||||||
|
return is$typed(v, id, hashBookmarkView)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function validateBookmarkView<V>(v: V) {
|
||||||
|
return validate<BookmarkView & V>(v, id, hashBookmarkView)
|
||||||
|
}
|
49
packages/api/src/client/types/app/bsky/bookmark/deleteBookmark.ts
generated
Normal file
49
packages/api/src/client/types/app/bsky/bookmark/deleteBookmark.ts
generated
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/**
|
||||||
|
* GENERATED CODE - DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
import { HeadersMap, XRPCError } from '@atproto/xrpc'
|
||||||
|
import { type ValidationResult, BlobRef } from '@atproto/lexicon'
|
||||||
|
import { CID } from 'multiformats/cid'
|
||||||
|
import { validate as _validate } from '../../../../lexicons'
|
||||||
|
import {
|
||||||
|
type $Typed,
|
||||||
|
is$typed as _is$typed,
|
||||||
|
type OmitKey,
|
||||||
|
} from '../../../../util'
|
||||||
|
|
||||||
|
const is$typed = _is$typed,
|
||||||
|
validate = _validate
|
||||||
|
const id = 'app.bsky.bookmark.deleteBookmark'
|
||||||
|
|
||||||
|
export type QueryParams = {}
|
||||||
|
|
||||||
|
export interface InputSchema {
|
||||||
|
uri: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CallOptions {
|
||||||
|
signal?: AbortSignal
|
||||||
|
headers?: HeadersMap
|
||||||
|
qp?: QueryParams
|
||||||
|
encoding?: 'application/json'
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Response {
|
||||||
|
success: boolean
|
||||||
|
headers: HeadersMap
|
||||||
|
}
|
||||||
|
|
||||||
|
export class UnsupportedCollectionError extends XRPCError {
|
||||||
|
constructor(src: XRPCError) {
|
||||||
|
super(src.status, src.error, src.message, src.headers, { cause: src })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function toKnownErr(e: any) {
|
||||||
|
if (e instanceof XRPCError) {
|
||||||
|
if (e.error === 'UnsupportedCollection')
|
||||||
|
return new UnsupportedCollectionError(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
return e
|
||||||
|
}
|
43
packages/api/src/client/types/app/bsky/bookmark/getBookmarks.ts
generated
Normal file
43
packages/api/src/client/types/app/bsky/bookmark/getBookmarks.ts
generated
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* GENERATED CODE - DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
import { HeadersMap, XRPCError } from '@atproto/xrpc'
|
||||||
|
import { type ValidationResult, BlobRef } from '@atproto/lexicon'
|
||||||
|
import { CID } from 'multiformats/cid'
|
||||||
|
import { validate as _validate } from '../../../../lexicons'
|
||||||
|
import {
|
||||||
|
type $Typed,
|
||||||
|
is$typed as _is$typed,
|
||||||
|
type OmitKey,
|
||||||
|
} from '../../../../util'
|
||||||
|
import type * as AppBskyBookmarkDefs from './defs.js'
|
||||||
|
|
||||||
|
const is$typed = _is$typed,
|
||||||
|
validate = _validate
|
||||||
|
const id = 'app.bsky.bookmark.getBookmarks'
|
||||||
|
|
||||||
|
export type QueryParams = {
|
||||||
|
limit?: number
|
||||||
|
cursor?: string
|
||||||
|
}
|
||||||
|
export type InputSchema = undefined
|
||||||
|
|
||||||
|
export interface OutputSchema {
|
||||||
|
cursor?: string
|
||||||
|
bookmarks: AppBskyBookmarkDefs.BookmarkView[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CallOptions {
|
||||||
|
signal?: AbortSignal
|
||||||
|
headers?: HeadersMap
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Response {
|
||||||
|
success: boolean
|
||||||
|
headers: HeadersMap
|
||||||
|
data: OutputSchema
|
||||||
|
}
|
||||||
|
|
||||||
|
export function toKnownErr(e: any) {
|
||||||
|
return e
|
||||||
|
}
|
@ -36,6 +36,7 @@ export interface PostView {
|
|||||||
| $Typed<AppBskyEmbedRecord.View>
|
| $Typed<AppBskyEmbedRecord.View>
|
||||||
| $Typed<AppBskyEmbedRecordWithMedia.View>
|
| $Typed<AppBskyEmbedRecordWithMedia.View>
|
||||||
| { $type: string }
|
| { $type: string }
|
||||||
|
bookmarkCount?: number
|
||||||
replyCount?: number
|
replyCount?: number
|
||||||
repostCount?: number
|
repostCount?: number
|
||||||
likeCount?: number
|
likeCount?: number
|
||||||
@ -61,6 +62,7 @@ export interface ViewerState {
|
|||||||
$type?: 'app.bsky.feed.defs#viewerState'
|
$type?: 'app.bsky.feed.defs#viewerState'
|
||||||
repost?: string
|
repost?: string
|
||||||
like?: string
|
like?: string
|
||||||
|
bookmarked?: boolean
|
||||||
threadMuted?: boolean
|
threadMuted?: boolean
|
||||||
replyDisabled?: boolean
|
replyDisabled?: boolean
|
||||||
embeddingDisabled?: boolean
|
embeddingDisabled?: boolean
|
||||||
@ -100,6 +102,8 @@ export interface FeedViewPost {
|
|||||||
reason?: $Typed<ReasonRepost> | $Typed<ReasonPin> | { $type: string }
|
reason?: $Typed<ReasonRepost> | $Typed<ReasonPin> | { $type: string }
|
||||||
/** Context provided by feed generator that may be passed back alongside interactions. */
|
/** Context provided by feed generator that may be passed back alongside interactions. */
|
||||||
feedContext?: string
|
feedContext?: string
|
||||||
|
/** Unique identifier per request that may be passed back alongside interactions. */
|
||||||
|
reqId?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashFeedViewPost = 'feedViewPost'
|
const hashFeedViewPost = 'feedViewPost'
|
||||||
@ -140,6 +144,8 @@ export function validateReplyRef<V>(v: V) {
|
|||||||
export interface ReasonRepost {
|
export interface ReasonRepost {
|
||||||
$type?: 'app.bsky.feed.defs#reasonRepost'
|
$type?: 'app.bsky.feed.defs#reasonRepost'
|
||||||
by: AppBskyActorDefs.ProfileViewBasic
|
by: AppBskyActorDefs.ProfileViewBasic
|
||||||
|
uri?: string
|
||||||
|
cid?: string
|
||||||
indexedAt: string
|
indexedAt: string
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,6 +382,8 @@ export interface Interaction {
|
|||||||
| (string & {})
|
| (string & {})
|
||||||
/** Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. */
|
/** Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. */
|
||||||
feedContext?: string
|
feedContext?: string
|
||||||
|
/** Unique identifier per request that may be passed back alongside interactions. */
|
||||||
|
reqId?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashInteraction = 'interaction'
|
const hashInteraction = 'interaction'
|
||||||
|
@ -15,8 +15,7 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.describeFeedGenerator'
|
const id = 'app.bsky.feed.describeFeedGenerator'
|
||||||
|
|
||||||
export interface QueryParams {}
|
export type QueryParams = {}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,12 +16,11 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getActorFeeds'
|
const id = 'app.bsky.feed.getActorFeeds'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
actor: string
|
actor: string
|
||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,12 +16,11 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getActorLikes'
|
const id = 'app.bsky.feed.getActorLikes'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
actor: string
|
actor: string
|
||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,7 +16,7 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getAuthorFeed'
|
const id = 'app.bsky.feed.getAuthorFeed'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
actor: string
|
actor: string
|
||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
@ -30,7 +30,6 @@ export interface QueryParams {
|
|||||||
| (string & {})
|
| (string & {})
|
||||||
includePins?: boolean
|
includePins?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,12 +16,11 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getFeed'
|
const id = 'app.bsky.feed.getFeed'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
feed: string
|
feed: string
|
||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,11 +16,10 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getFeedGenerator'
|
const id = 'app.bsky.feed.getFeedGenerator'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** AT-URI of the feed generator record. */
|
/** AT-URI of the feed generator record. */
|
||||||
feed: string
|
feed: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,10 +16,9 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getFeedGenerators'
|
const id = 'app.bsky.feed.getFeedGenerators'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
feeds: string[]
|
feeds: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,18 +16,19 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getFeedSkeleton'
|
const id = 'app.bsky.feed.getFeedSkeleton'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** Reference to feed generator record describing the specific feed being requested. */
|
/** Reference to feed generator record describing the specific feed being requested. */
|
||||||
feed: string
|
feed: string
|
||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
cursor?: string
|
cursor?: string
|
||||||
feed: AppBskyFeedDefs.SkeletonFeedPost[]
|
feed: AppBskyFeedDefs.SkeletonFeedPost[]
|
||||||
|
/** Unique identifier per request that may be passed back alongside interactions. */
|
||||||
|
reqId?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CallOptions {
|
export interface CallOptions {
|
||||||
|
@ -16,7 +16,7 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getLikes'
|
const id = 'app.bsky.feed.getLikes'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** AT-URI of the subject (eg, a post record). */
|
/** AT-URI of the subject (eg, a post record). */
|
||||||
uri: string
|
uri: string
|
||||||
/** CID of the subject record (aka, specific version of record), to filter likes. */
|
/** CID of the subject record (aka, specific version of record), to filter likes. */
|
||||||
@ -24,7 +24,6 @@ export interface QueryParams {
|
|||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,13 +16,12 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getListFeed'
|
const id = 'app.bsky.feed.getListFeed'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** Reference (AT-URI) to the list record. */
|
/** Reference (AT-URI) to the list record. */
|
||||||
list: string
|
list: string
|
||||||
limit?: number
|
limit?: number
|
||||||
cursor?: string
|
cursor?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
@ -16,7 +16,7 @@ const is$typed = _is$typed,
|
|||||||
validate = _validate
|
validate = _validate
|
||||||
const id = 'app.bsky.feed.getPostThread'
|
const id = 'app.bsky.feed.getPostThread'
|
||||||
|
|
||||||
export interface QueryParams {
|
export type QueryParams = {
|
||||||
/** Reference (AT-URI) to post record. */
|
/** Reference (AT-URI) to post record. */
|
||||||
uri: string
|
uri: string
|
||||||
/** How many levels of reply depth should be included in response. */
|
/** How many levels of reply depth should be included in response. */
|
||||||
@ -24,7 +24,6 @@ export interface QueryParams {
|
|||||||
/** How many levels of parent (and grandparent, etc) post to include. */
|
/** How many levels of parent (and grandparent, etc) post to include. */
|
||||||
parentHeight?: number
|
parentHeight?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export type InputSchema = undefined
|
export type InputSchema = undefined
|
||||||
|
|
||||||
export interface OutputSchema {
|
export interface OutputSchema {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user