@atproto/ozone 0.1.25 → 0.1.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/proxied.d.ts.map +1 -1
- package/dist/api/proxied.js +30 -0
- package/dist/api/proxied.js.map +1 -1
- package/dist/api/server/getConfig.d.ts.map +1 -1
- package/dist/api/server/getConfig.js +4 -3
- package/dist/api/server/getConfig.js.map +1 -1
- package/dist/api/team/addMember.d.ts +4 -0
- package/dist/api/team/addMember.d.ts.map +1 -0
- package/dist/api/team/addMember.js +38 -0
- package/dist/api/team/addMember.js.map +1 -0
- package/dist/api/team/deleteMember.d.ts +4 -0
- package/dist/api/team/deleteMember.d.ts.map +1 -0
- package/dist/api/team/deleteMember.js +26 -0
- package/dist/api/team/deleteMember.js.map +1 -0
- package/dist/api/team/listMembers.d.ts +4 -0
- package/dist/api/team/listMembers.d.ts.map +1 -0
- package/dist/api/team/listMembers.js +20 -0
- package/dist/api/team/listMembers.js.map +1 -0
- package/dist/api/team/updateMember.d.ts +4 -0
- package/dist/api/team/updateMember.d.ts.map +1 -0
- package/dist/api/team/updateMember.js +40 -0
- package/dist/api/team/updateMember.js.map +1 -0
- package/dist/api/util.d.ts +1 -0
- package/dist/api/util.d.ts.map +1 -1
- package/dist/api/util.js +10 -1
- package/dist/api/util.js.map +1 -1
- package/dist/auth-verifier.d.ts +3 -6
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +7 -19
- package/dist/auth-verifier.js.map +1 -1
- package/dist/context.d.ts +3 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +7 -3
- package/dist/context.js.map +1 -1
- package/dist/db/migrations/20240521T211332580Z-member.d.ts +4 -0
- package/dist/db/migrations/20240521T211332580Z-member.d.ts.map +1 -0
- package/dist/db/migrations/20240521T211332580Z-member.js +20 -0
- package/dist/db/migrations/20240521T211332580Z-member.js.map +1 -0
- package/dist/db/migrations/index.d.ts +1 -0
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +2 -1
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/db/schema/index.d.ts +2 -1
- package/dist/db/schema/index.d.ts.map +1 -1
- package/dist/db/schema/member.d.ts +14 -0
- package/dist/db/schema/member.d.ts.map +1 -0
- package/dist/db/schema/member.js +5 -0
- package/dist/db/schema/member.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/lexicon/index.d.ts +25 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +54 -1
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +536 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +561 -1
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +5 -0
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.d.ts +3 -0
- package/dist/lexicon/types/app/bsky/actor/profile.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts +36 -1
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.js +23 -1
- package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.d.ts +39 -0
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js +3 -0
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.d.ts +37 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.js +3 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.d.ts +36 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js +3 -0
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/starterpack.d.ts +25 -0
- package/dist/lexicon/types/app/bsky/graph/starterpack.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/starterpack.js +27 -0
- package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -0
- package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/addMember.d.ts +40 -0
- package/dist/lexicon/types/tools/ozone/team/addMember.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/addMember.js +3 -0
- package/dist/lexicon/types/tools/ozone/team/addMember.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/defs.d.ts +24 -0
- package/dist/lexicon/types/tools/ozone/team/defs.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/defs.js +22 -0
- package/dist/lexicon/types/tools/ozone/team/defs.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/deleteMember.d.ts +30 -0
- package/dist/lexicon/types/tools/ozone/team/deleteMember.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/deleteMember.js +3 -0
- package/dist/lexicon/types/tools/ozone/team/deleteMember.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/listMembers.d.ts +38 -0
- package/dist/lexicon/types/tools/ozone/team/listMembers.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/listMembers.js +3 -0
- package/dist/lexicon/types/tools/ozone/team/listMembers.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/updateMember.d.ts +41 -0
- package/dist/lexicon/types/tools/ozone/team/updateMember.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/team/updateMember.js +3 -0
- package/dist/lexicon/types/tools/ozone/team/updateMember.js.map +1 -0
- package/dist/team/index.d.ts +37 -0
- package/dist/team/index.d.ts.map +1 -0
- package/dist/team/index.js +144 -0
- package/dist/team/index.js.map +1 -0
- package/package.json +4 -4
- package/src/api/index.ts +8 -0
- package/src/api/proxied.ts +43 -0
- package/src/api/server/getConfig.ts +4 -4
- package/src/api/team/addMember.ts +46 -0
- package/src/api/team/deleteMember.ts +29 -0
- package/src/api/team/listMembers.ts +20 -0
- package/src/api/team/updateMember.ts +47 -0
- package/src/api/util.ts +15 -0
- package/src/auth-verifier.ts +14 -12
- package/src/context.ts +9 -3
- package/src/db/migrations/20240521T211332580Z-member.ts +17 -0
- package/src/db/migrations/index.ts +1 -0
- package/src/db/schema/index.ts +3 -1
- package/src/db/schema/member.ts +19 -0
- package/src/index.ts +36 -0
- package/src/lexicon/index.ts +100 -0
- package/src/lexicon/lexicons.ts +566 -1
- package/src/lexicon/types/app/bsky/actor/defs.ts +5 -0
- package/src/lexicon/types/app/bsky/actor/profile.ts +3 -0
- package/src/lexicon/types/app/bsky/graph/defs.ts +58 -0
- package/src/lexicon/types/app/bsky/graph/getActorStarterPacks.ts +49 -0
- package/src/lexicon/types/app/bsky/graph/getStarterPack.ts +47 -0
- package/src/lexicon/types/app/bsky/graph/getStarterPacks.ts +46 -0
- package/src/lexicon/types/app/bsky/graph/starterpack.ts +50 -0
- package/src/lexicon/types/app/bsky/notification/listNotifications.ts +2 -1
- package/src/lexicon/types/tools/ozone/team/addMember.ts +53 -0
- package/src/lexicon/types/tools/ozone/team/defs.ts +42 -0
- package/src/lexicon/types/tools/ozone/team/deleteMember.ts +39 -0
- package/src/lexicon/types/tools/ozone/team/listMembers.ts +48 -0
- package/src/lexicon/types/tools/ozone/team/updateMember.ts +54 -0
- package/src/team/index.ts +213 -0
- package/tests/__snapshots__/get-record.test.ts.snap +2 -0
- package/tests/__snapshots__/get-repo.test.ts.snap +1 -0
- package/tests/__snapshots__/get-starter-pack.test.ts.snap +466 -0
- package/tests/__snapshots__/moderation-events.test.ts.snap +1 -0
- package/tests/__snapshots__/team.test.ts.snap +688 -0
- package/tests/get-config.test.ts +3 -4
- package/tests/get-starter-pack.test.ts +104 -0
- package/tests/server.test.ts +1 -1
- package/tests/team.test.ts +163 -0
package/src/api/util.ts
CHANGED
|
@@ -20,6 +20,12 @@ import {
|
|
|
20
20
|
import { ModerationEvent } from '../db/schema/moderation_event'
|
|
21
21
|
import { ModerationSubjectStatusRow } from '../mod-service/types'
|
|
22
22
|
import AppContext from '../context'
|
|
23
|
+
import { Member } from '../db/schema/member'
|
|
24
|
+
import {
|
|
25
|
+
ROLEADMIN,
|
|
26
|
+
ROLEMODERATOR,
|
|
27
|
+
ROLETRIAGE,
|
|
28
|
+
} from '../lexicon/types/tools/ozone/team/defs'
|
|
23
29
|
|
|
24
30
|
export const getPdsAccountInfo = async (
|
|
25
31
|
ctx: AppContext,
|
|
@@ -122,3 +128,12 @@ const eventTypes = new Set([
|
|
|
122
128
|
'tools.ozone.moderation.defs#modEventTag',
|
|
123
129
|
'tools.ozone.moderation.defs#modEventDivert',
|
|
124
130
|
])
|
|
131
|
+
|
|
132
|
+
export const getMemberRole = (role: string) => {
|
|
133
|
+
if (memberRoles.has(role)) {
|
|
134
|
+
return role as Member['role']
|
|
135
|
+
}
|
|
136
|
+
throw new InvalidRequestError('Invalid member role')
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const memberRoles = new Set([ROLEADMIN, ROLEMODERATOR, ROLETRIAGE])
|
package/src/auth-verifier.ts
CHANGED
|
@@ -2,6 +2,7 @@ import express from 'express'
|
|
|
2
2
|
import * as ui8 from 'uint8arrays'
|
|
3
3
|
import { IdResolver } from '@atproto/identity'
|
|
4
4
|
import { AuthRequiredError, verifyJwt } from '@atproto/xrpc-server'
|
|
5
|
+
import { TeamService } from './team'
|
|
5
6
|
|
|
6
7
|
type ReqCtx = {
|
|
7
8
|
req: express.Request
|
|
@@ -47,17 +48,13 @@ type NullOutput = {
|
|
|
47
48
|
|
|
48
49
|
export type AuthVerifierOpts = {
|
|
49
50
|
serviceDid: string
|
|
50
|
-
admins: string[]
|
|
51
|
-
moderators: string[]
|
|
52
|
-
triage: string[]
|
|
53
51
|
adminPassword: string
|
|
52
|
+
teamService: TeamService
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
export class AuthVerifier {
|
|
57
56
|
serviceDid: string
|
|
58
|
-
|
|
59
|
-
moderators: string[]
|
|
60
|
-
triage: string[]
|
|
57
|
+
teamService: TeamService
|
|
61
58
|
private adminPassword: string
|
|
62
59
|
|
|
63
60
|
constructor(
|
|
@@ -65,10 +62,8 @@ export class AuthVerifier {
|
|
|
65
62
|
opts: AuthVerifierOpts,
|
|
66
63
|
) {
|
|
67
64
|
this.serviceDid = opts.serviceDid
|
|
68
|
-
this.admins = opts.admins
|
|
69
|
-
this.moderators = opts.moderators
|
|
70
|
-
this.triage = opts.triage
|
|
71
65
|
this.adminPassword = opts.adminPassword
|
|
66
|
+
this.teamService = opts.teamService
|
|
72
67
|
}
|
|
73
68
|
|
|
74
69
|
modOrAdminToken = async (
|
|
@@ -113,9 +108,16 @@ export class AuthVerifier {
|
|
|
113
108
|
}
|
|
114
109
|
const payload = await verifyJwt(jwtStr, this.serviceDid, getSigningKey)
|
|
115
110
|
const iss = payload.iss
|
|
116
|
-
|
|
117
|
-
const
|
|
118
|
-
|
|
111
|
+
|
|
112
|
+
const member = await this.teamService.getMember(iss)
|
|
113
|
+
|
|
114
|
+
if (member?.disabled) {
|
|
115
|
+
throw new AuthRequiredError('member is disabled', 'MemberDisabled')
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const { isAdmin, isModerator, isTriage } =
|
|
119
|
+
this.teamService.getMemberRole(member)
|
|
120
|
+
|
|
119
121
|
return {
|
|
120
122
|
credentials: {
|
|
121
123
|
type: 'standard',
|
package/src/context.ts
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
import { BlobDiverter } from './daemon/blob-diverter'
|
|
19
19
|
import { AuthVerifier } from './auth-verifier'
|
|
20
20
|
import { ImageInvalidator } from './image-invalidator'
|
|
21
|
+
import { TeamService, TeamServiceCreator } from './team'
|
|
21
22
|
import {
|
|
22
23
|
defaultLabelerHeader,
|
|
23
24
|
getSigningKeyId,
|
|
@@ -31,6 +32,7 @@ export type AppContextOptions = {
|
|
|
31
32
|
cfg: OzoneConfig
|
|
32
33
|
modService: ModerationServiceCreator
|
|
33
34
|
communicationTemplateService: CommunicationTemplateServiceCreator
|
|
35
|
+
teamService: TeamServiceCreator
|
|
34
36
|
appviewAgent: AtpAgent
|
|
35
37
|
pdsAgent: AtpAgent | undefined
|
|
36
38
|
chatAgent: AtpAgent | undefined
|
|
@@ -107,15 +109,14 @@ export class AppContext {
|
|
|
107
109
|
)
|
|
108
110
|
|
|
109
111
|
const communicationTemplateService = CommunicationTemplateService.creator()
|
|
112
|
+
const teamService = TeamService.creator()
|
|
110
113
|
|
|
111
114
|
const sequencer = new Sequencer(modService(db))
|
|
112
115
|
|
|
113
116
|
const authVerifier = new AuthVerifier(idResolver, {
|
|
114
117
|
serviceDid: cfg.service.did,
|
|
115
|
-
admins: cfg.access.admins,
|
|
116
|
-
moderators: cfg.access.moderators,
|
|
117
|
-
triage: cfg.access.triage,
|
|
118
118
|
adminPassword: secrets.adminPassword,
|
|
119
|
+
teamService: teamService(db),
|
|
119
120
|
})
|
|
120
121
|
|
|
121
122
|
return new AppContext(
|
|
@@ -124,6 +125,7 @@ export class AppContext {
|
|
|
124
125
|
cfg,
|
|
125
126
|
modService,
|
|
126
127
|
communicationTemplateService,
|
|
128
|
+
teamService,
|
|
127
129
|
appviewAgent,
|
|
128
130
|
pdsAgent,
|
|
129
131
|
chatAgent,
|
|
@@ -168,6 +170,10 @@ export class AppContext {
|
|
|
168
170
|
return this.opts.communicationTemplateService
|
|
169
171
|
}
|
|
170
172
|
|
|
173
|
+
get teamService(): TeamServiceCreator {
|
|
174
|
+
return this.opts.teamService
|
|
175
|
+
}
|
|
176
|
+
|
|
171
177
|
get appviewAgent(): AtpAgent {
|
|
172
178
|
return this.opts.appviewAgent
|
|
173
179
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Kysely } from 'kysely'
|
|
2
|
+
|
|
3
|
+
export async function up(db: Kysely<unknown>): Promise<void> {
|
|
4
|
+
await db.schema
|
|
5
|
+
.createTable('member')
|
|
6
|
+
.addColumn('did', 'varchar', (col) => col.primaryKey())
|
|
7
|
+
.addColumn('role', 'varchar', (col) => col.notNull())
|
|
8
|
+
.addColumn('disabled', 'boolean', (col) => col.defaultTo(false).notNull())
|
|
9
|
+
.addColumn('createdAt', 'timestamptz', (col) => col.notNull())
|
|
10
|
+
.addColumn('updatedAt', 'timestamptz', (col) => col.notNull())
|
|
11
|
+
.addColumn('lastUpdatedBy', 'varchar', (col) => col.notNull())
|
|
12
|
+
.execute()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function down(db: Kysely<unknown>): Promise<void> {
|
|
16
|
+
await db.schema.dropTable('member')
|
|
17
|
+
}
|
|
@@ -9,3 +9,4 @@ export * as _20240208T213404429Z from './20240208T213404429Z-add-tags-column-to-
|
|
|
9
9
|
export * as _20240228T003647759Z from './20240228T003647759Z-add-label-sigs'
|
|
10
10
|
export * as _20240408T192432676Z from './20240408T192432676Z-mute-reporting'
|
|
11
11
|
export * as _20240506T225055595Z from './20240506T225055595Z-message-subject'
|
|
12
|
+
export * as _20240430T211332580Z from './20240521T211332580Z-member'
|
package/src/db/schema/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ import * as blobPushEvent from './blob_push_event'
|
|
|
7
7
|
import * as label from './label'
|
|
8
8
|
import * as signingKey from './signing_key'
|
|
9
9
|
import * as communicationTemplate from './communication_template'
|
|
10
|
+
import * as member from './member'
|
|
10
11
|
|
|
11
12
|
export type DatabaseSchemaType = modEvent.PartialDB &
|
|
12
13
|
modSubjectStatus.PartialDB &
|
|
@@ -15,7 +16,8 @@ export type DatabaseSchemaType = modEvent.PartialDB &
|
|
|
15
16
|
repoPushEvent.PartialDB &
|
|
16
17
|
recordPushEvent.PartialDB &
|
|
17
18
|
blobPushEvent.PartialDB &
|
|
18
|
-
communicationTemplate.PartialDB
|
|
19
|
+
communicationTemplate.PartialDB &
|
|
20
|
+
member.PartialDB
|
|
19
21
|
|
|
20
22
|
export type DatabaseSchema = Kysely<DatabaseSchemaType>
|
|
21
23
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Generated } from 'kysely'
|
|
2
|
+
|
|
3
|
+
export const memberTableName = 'member'
|
|
4
|
+
|
|
5
|
+
export interface Member {
|
|
6
|
+
did: string
|
|
7
|
+
role:
|
|
8
|
+
| 'tools.ozone.team.defs#roleAdmin'
|
|
9
|
+
| 'tools.ozone.team.defs#roleTriage'
|
|
10
|
+
| 'tools.ozone.team.defs#roleModerator'
|
|
11
|
+
disabled: Generated<boolean>
|
|
12
|
+
createdAt: Date
|
|
13
|
+
updatedAt: Date
|
|
14
|
+
lastUpdatedBy: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type PartialDB = {
|
|
18
|
+
[memberTableName]: Member
|
|
19
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { dbLogger, loggerMiddleware } from './logger'
|
|
|
12
12
|
import { OzoneConfig, OzoneSecrets } from './config'
|
|
13
13
|
import { createServer } from './lexicon'
|
|
14
14
|
import AppContext, { AppContextOptions } from './context'
|
|
15
|
+
import { Member } from './db/schema/member'
|
|
15
16
|
|
|
16
17
|
export * from './config'
|
|
17
18
|
export { type ImageInvalidator } from './image-invalidator'
|
|
@@ -64,10 +65,45 @@ export class OzoneService {
|
|
|
64
65
|
return new OzoneService({ ctx, app })
|
|
65
66
|
}
|
|
66
67
|
|
|
68
|
+
async seedInitialMembers() {
|
|
69
|
+
const members: Array<{ role: Member['role']; did: string }> = []
|
|
70
|
+
this.ctx.cfg.access.admins.forEach((did) =>
|
|
71
|
+
members.push({
|
|
72
|
+
role: 'tools.ozone.team.defs#roleAdmin',
|
|
73
|
+
did,
|
|
74
|
+
}),
|
|
75
|
+
)
|
|
76
|
+
this.ctx.cfg.access.triage.forEach((did) =>
|
|
77
|
+
members.push({
|
|
78
|
+
role: 'tools.ozone.team.defs#roleTriage',
|
|
79
|
+
did,
|
|
80
|
+
}),
|
|
81
|
+
)
|
|
82
|
+
this.ctx.cfg.access.moderators.forEach((did) =>
|
|
83
|
+
members.push({
|
|
84
|
+
role: 'tools.ozone.team.defs#roleModerator',
|
|
85
|
+
did,
|
|
86
|
+
}),
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
for (const member of members) {
|
|
90
|
+
const service = this.ctx.teamService(this.ctx.db)
|
|
91
|
+
await service.upsert({
|
|
92
|
+
...member,
|
|
93
|
+
lastUpdatedBy: this.ctx.cfg.service.did,
|
|
94
|
+
})
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
67
98
|
async start(): Promise<http.Server> {
|
|
68
99
|
if (this.dbStatsInterval) {
|
|
69
100
|
throw new Error(`${this.constructor.name} already started`)
|
|
70
101
|
}
|
|
102
|
+
|
|
103
|
+
// Any moderator that are configured via env var may not exist in the database
|
|
104
|
+
// so we need to sync them from env var to the database
|
|
105
|
+
await this.seedInitialMembers()
|
|
106
|
+
|
|
71
107
|
const { db, backgroundQueue } = this.ctx
|
|
72
108
|
this.dbStatsInterval = setInterval(() => {
|
|
73
109
|
dbLogger.info(
|
package/src/lexicon/index.ts
CHANGED
|
@@ -107,6 +107,7 @@ import * as AppBskyFeedGetSuggestedFeeds from './types/app/bsky/feed/getSuggeste
|
|
|
107
107
|
import * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'
|
|
108
108
|
import * as AppBskyFeedSearchPosts from './types/app/bsky/feed/searchPosts'
|
|
109
109
|
import * as AppBskyFeedSendInteractions from './types/app/bsky/feed/sendInteractions'
|
|
110
|
+
import * as AppBskyGraphGetActorStarterPacks from './types/app/bsky/graph/getActorStarterPacks'
|
|
110
111
|
import * as AppBskyGraphGetBlocks from './types/app/bsky/graph/getBlocks'
|
|
111
112
|
import * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'
|
|
112
113
|
import * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'
|
|
@@ -117,6 +118,8 @@ import * as AppBskyGraphGetListMutes from './types/app/bsky/graph/getListMutes'
|
|
|
117
118
|
import * as AppBskyGraphGetLists from './types/app/bsky/graph/getLists'
|
|
118
119
|
import * as AppBskyGraphGetMutes from './types/app/bsky/graph/getMutes'
|
|
119
120
|
import * as AppBskyGraphGetRelationships from './types/app/bsky/graph/getRelationships'
|
|
121
|
+
import * as AppBskyGraphGetStarterPack from './types/app/bsky/graph/getStarterPack'
|
|
122
|
+
import * as AppBskyGraphGetStarterPacks from './types/app/bsky/graph/getStarterPacks'
|
|
120
123
|
import * as AppBskyGraphGetSuggestedFollowsByActor from './types/app/bsky/graph/getSuggestedFollowsByActor'
|
|
121
124
|
import * as AppBskyGraphMuteActor from './types/app/bsky/graph/muteActor'
|
|
122
125
|
import * as AppBskyGraphMuteActorList from './types/app/bsky/graph/muteActorList'
|
|
@@ -163,6 +166,10 @@ import * as ToolsOzoneModerationQueryEvents from './types/tools/ozone/moderation
|
|
|
163
166
|
import * as ToolsOzoneModerationQueryStatuses from './types/tools/ozone/moderation/queryStatuses'
|
|
164
167
|
import * as ToolsOzoneModerationSearchRepos from './types/tools/ozone/moderation/searchRepos'
|
|
165
168
|
import * as ToolsOzoneServerGetConfig from './types/tools/ozone/server/getConfig'
|
|
169
|
+
import * as ToolsOzoneTeamAddMember from './types/tools/ozone/team/addMember'
|
|
170
|
+
import * as ToolsOzoneTeamDeleteMember from './types/tools/ozone/team/deleteMember'
|
|
171
|
+
import * as ToolsOzoneTeamListMembers from './types/tools/ozone/team/listMembers'
|
|
172
|
+
import * as ToolsOzoneTeamUpdateMember from './types/tools/ozone/team/updateMember'
|
|
166
173
|
|
|
167
174
|
export const COM_ATPROTO_MODERATION = {
|
|
168
175
|
DefsReasonSpam: 'com.atproto.moderation.defs#reasonSpam',
|
|
@@ -190,6 +197,7 @@ export const APP_BSKY_FEED = {
|
|
|
190
197
|
export const APP_BSKY_GRAPH = {
|
|
191
198
|
DefsModlist: 'app.bsky.graph.defs#modlist',
|
|
192
199
|
DefsCuratelist: 'app.bsky.graph.defs#curatelist',
|
|
200
|
+
DefsReferencelist: 'app.bsky.graph.defs#referencelist',
|
|
193
201
|
}
|
|
194
202
|
export const TOOLS_OZONE_MODERATION = {
|
|
195
203
|
DefsReviewOpen: 'tools.ozone.moderation.defs#reviewOpen',
|
|
@@ -197,6 +205,11 @@ export const TOOLS_OZONE_MODERATION = {
|
|
|
197
205
|
DefsReviewClosed: 'tools.ozone.moderation.defs#reviewClosed',
|
|
198
206
|
DefsReviewNone: 'tools.ozone.moderation.defs#reviewNone',
|
|
199
207
|
}
|
|
208
|
+
export const TOOLS_OZONE_TEAM = {
|
|
209
|
+
DefsRoleAdmin: 'tools.ozone.team.defs#roleAdmin',
|
|
210
|
+
DefsRoleModerator: 'tools.ozone.team.defs#roleModerator',
|
|
211
|
+
DefsRoleTriage: 'tools.ozone.team.defs#roleTriage',
|
|
212
|
+
}
|
|
200
213
|
|
|
201
214
|
export function createServer(options?: XrpcOptions): Server {
|
|
202
215
|
return new Server(options)
|
|
@@ -1463,6 +1476,17 @@ export class AppBskyGraphNS {
|
|
|
1463
1476
|
this._server = server
|
|
1464
1477
|
}
|
|
1465
1478
|
|
|
1479
|
+
getActorStarterPacks<AV extends AuthVerifier>(
|
|
1480
|
+
cfg: ConfigOf<
|
|
1481
|
+
AV,
|
|
1482
|
+
AppBskyGraphGetActorStarterPacks.Handler<ExtractAuth<AV>>,
|
|
1483
|
+
AppBskyGraphGetActorStarterPacks.HandlerReqCtx<ExtractAuth<AV>>
|
|
1484
|
+
>,
|
|
1485
|
+
) {
|
|
1486
|
+
const nsid = 'app.bsky.graph.getActorStarterPacks' // @ts-ignore
|
|
1487
|
+
return this._server.xrpc.method(nsid, cfg)
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1466
1490
|
getBlocks<AV extends AuthVerifier>(
|
|
1467
1491
|
cfg: ConfigOf<
|
|
1468
1492
|
AV,
|
|
@@ -1573,6 +1597,28 @@ export class AppBskyGraphNS {
|
|
|
1573
1597
|
return this._server.xrpc.method(nsid, cfg)
|
|
1574
1598
|
}
|
|
1575
1599
|
|
|
1600
|
+
getStarterPack<AV extends AuthVerifier>(
|
|
1601
|
+
cfg: ConfigOf<
|
|
1602
|
+
AV,
|
|
1603
|
+
AppBskyGraphGetStarterPack.Handler<ExtractAuth<AV>>,
|
|
1604
|
+
AppBskyGraphGetStarterPack.HandlerReqCtx<ExtractAuth<AV>>
|
|
1605
|
+
>,
|
|
1606
|
+
) {
|
|
1607
|
+
const nsid = 'app.bsky.graph.getStarterPack' // @ts-ignore
|
|
1608
|
+
return this._server.xrpc.method(nsid, cfg)
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
getStarterPacks<AV extends AuthVerifier>(
|
|
1612
|
+
cfg: ConfigOf<
|
|
1613
|
+
AV,
|
|
1614
|
+
AppBskyGraphGetStarterPacks.Handler<ExtractAuth<AV>>,
|
|
1615
|
+
AppBskyGraphGetStarterPacks.HandlerReqCtx<ExtractAuth<AV>>
|
|
1616
|
+
>,
|
|
1617
|
+
) {
|
|
1618
|
+
const nsid = 'app.bsky.graph.getStarterPacks' // @ts-ignore
|
|
1619
|
+
return this._server.xrpc.method(nsid, cfg)
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1576
1622
|
getSuggestedFollowsByActor<AV extends AuthVerifier>(
|
|
1577
1623
|
cfg: ConfigOf<
|
|
1578
1624
|
AV,
|
|
@@ -2043,12 +2089,14 @@ export class ToolsOzoneNS {
|
|
|
2043
2089
|
communication: ToolsOzoneCommunicationNS
|
|
2044
2090
|
moderation: ToolsOzoneModerationNS
|
|
2045
2091
|
server: ToolsOzoneServerNS
|
|
2092
|
+
team: ToolsOzoneTeamNS
|
|
2046
2093
|
|
|
2047
2094
|
constructor(server: Server) {
|
|
2048
2095
|
this._server = server
|
|
2049
2096
|
this.communication = new ToolsOzoneCommunicationNS(server)
|
|
2050
2097
|
this.moderation = new ToolsOzoneModerationNS(server)
|
|
2051
2098
|
this.server = new ToolsOzoneServerNS(server)
|
|
2099
|
+
this.team = new ToolsOzoneTeamNS(server)
|
|
2052
2100
|
}
|
|
2053
2101
|
}
|
|
2054
2102
|
|
|
@@ -2208,6 +2256,58 @@ export class ToolsOzoneServerNS {
|
|
|
2208
2256
|
}
|
|
2209
2257
|
}
|
|
2210
2258
|
|
|
2259
|
+
export class ToolsOzoneTeamNS {
|
|
2260
|
+
_server: Server
|
|
2261
|
+
|
|
2262
|
+
constructor(server: Server) {
|
|
2263
|
+
this._server = server
|
|
2264
|
+
}
|
|
2265
|
+
|
|
2266
|
+
addMember<AV extends AuthVerifier>(
|
|
2267
|
+
cfg: ConfigOf<
|
|
2268
|
+
AV,
|
|
2269
|
+
ToolsOzoneTeamAddMember.Handler<ExtractAuth<AV>>,
|
|
2270
|
+
ToolsOzoneTeamAddMember.HandlerReqCtx<ExtractAuth<AV>>
|
|
2271
|
+
>,
|
|
2272
|
+
) {
|
|
2273
|
+
const nsid = 'tools.ozone.team.addMember' // @ts-ignore
|
|
2274
|
+
return this._server.xrpc.method(nsid, cfg)
|
|
2275
|
+
}
|
|
2276
|
+
|
|
2277
|
+
deleteMember<AV extends AuthVerifier>(
|
|
2278
|
+
cfg: ConfigOf<
|
|
2279
|
+
AV,
|
|
2280
|
+
ToolsOzoneTeamDeleteMember.Handler<ExtractAuth<AV>>,
|
|
2281
|
+
ToolsOzoneTeamDeleteMember.HandlerReqCtx<ExtractAuth<AV>>
|
|
2282
|
+
>,
|
|
2283
|
+
) {
|
|
2284
|
+
const nsid = 'tools.ozone.team.deleteMember' // @ts-ignore
|
|
2285
|
+
return this._server.xrpc.method(nsid, cfg)
|
|
2286
|
+
}
|
|
2287
|
+
|
|
2288
|
+
listMembers<AV extends AuthVerifier>(
|
|
2289
|
+
cfg: ConfigOf<
|
|
2290
|
+
AV,
|
|
2291
|
+
ToolsOzoneTeamListMembers.Handler<ExtractAuth<AV>>,
|
|
2292
|
+
ToolsOzoneTeamListMembers.HandlerReqCtx<ExtractAuth<AV>>
|
|
2293
|
+
>,
|
|
2294
|
+
) {
|
|
2295
|
+
const nsid = 'tools.ozone.team.listMembers' // @ts-ignore
|
|
2296
|
+
return this._server.xrpc.method(nsid, cfg)
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2299
|
+
updateMember<AV extends AuthVerifier>(
|
|
2300
|
+
cfg: ConfigOf<
|
|
2301
|
+
AV,
|
|
2302
|
+
ToolsOzoneTeamUpdateMember.Handler<ExtractAuth<AV>>,
|
|
2303
|
+
ToolsOzoneTeamUpdateMember.HandlerReqCtx<ExtractAuth<AV>>
|
|
2304
|
+
>,
|
|
2305
|
+
) {
|
|
2306
|
+
const nsid = 'tools.ozone.team.updateMember' // @ts-ignore
|
|
2307
|
+
return this._server.xrpc.method(nsid, cfg)
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
|
|
2211
2311
|
type SharedRateLimitOpts<T> = {
|
|
2212
2312
|
name: string
|
|
2213
2313
|
calcKey?: (ctx: T) => string
|