@atproto/pds 0.4.31 → 0.4.32

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/account-manager/helpers/account.d.ts.map +1 -1
  3. package/dist/account-manager/helpers/account.js +4 -1
  4. package/dist/account-manager/helpers/account.js.map +1 -1
  5. package/dist/api/com/atproto/admin/updateSubjectStatus.d.ts.map +1 -1
  6. package/dist/api/com/atproto/admin/updateSubjectStatus.js +4 -2
  7. package/dist/api/com/atproto/admin/updateSubjectStatus.js.map +1 -1
  8. package/dist/api/com/atproto/server/activateAccount.d.ts.map +1 -1
  9. package/dist/api/com/atproto/server/activateAccount.js +7 -1
  10. package/dist/api/com/atproto/server/activateAccount.js.map +1 -1
  11. package/dist/api/com/atproto/server/deactivateAccount.d.ts.map +1 -1
  12. package/dist/api/com/atproto/server/deactivateAccount.js +7 -1
  13. package/dist/api/com/atproto/server/deactivateAccount.js.map +1 -1
  14. package/dist/lexicon/index.d.ts +9 -0
  15. package/dist/lexicon/index.d.ts.map +1 -1
  16. package/dist/lexicon/index.js +28 -1
  17. package/dist/lexicon/index.js.map +1 -1
  18. package/dist/lexicon/lexicons.d.ts +104 -0
  19. package/dist/lexicon/lexicons.d.ts.map +1 -1
  20. package/dist/lexicon/lexicons.js +108 -0
  21. package/dist/lexicon/lexicons.js.map +1 -1
  22. package/dist/lexicon/types/com/atproto/admin/searchAccounts.d.ts +39 -0
  23. package/dist/lexicon/types/com/atproto/admin/searchAccounts.d.ts.map +1 -0
  24. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js +3 -0
  25. package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -0
  26. package/dist/lexicon/types/tools/ozone/server/getConfig.d.ts +51 -0
  27. package/dist/lexicon/types/tools/ozone/server/getConfig.d.ts.map +1 -0
  28. package/dist/lexicon/types/tools/ozone/server/getConfig.js +26 -0
  29. package/dist/lexicon/types/tools/ozone/server/getConfig.js.map +1 -0
  30. package/package.json +4 -4
  31. package/src/account-manager/helpers/account.ts +4 -1
  32. package/src/api/com/atproto/admin/updateSubjectStatus.ts +5 -2
  33. package/src/api/com/atproto/server/activateAccount.ts +11 -1
  34. package/src/api/com/atproto/server/deactivateAccount.ts +11 -1
  35. package/src/lexicon/index.ts +34 -0
  36. package/src/lexicon/lexicons.ts +108 -0
  37. package/src/lexicon/types/com/atproto/admin/searchAccounts.ts +49 -0
  38. package/src/lexicon/types/tools/ozone/server/getConfig.ts +85 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
6
+ import * as ComAtprotoAdminDefs from './defs';
7
+ export interface QueryParams {
8
+ email?: string;
9
+ cursor?: string;
10
+ limit: number;
11
+ }
12
+ export type InputSchema = undefined;
13
+ export interface OutputSchema {
14
+ cursor?: string;
15
+ accounts: ComAtprotoAdminDefs.AccountView[];
16
+ [k: string]: unknown;
17
+ }
18
+ export type HandlerInput = undefined;
19
+ export interface HandlerSuccess {
20
+ encoding: 'application/json';
21
+ body: OutputSchema;
22
+ headers?: {
23
+ [key: string]: string;
24
+ };
25
+ }
26
+ export interface HandlerError {
27
+ status: number;
28
+ message?: string;
29
+ }
30
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
31
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
32
+ auth: HA;
33
+ params: QueryParams;
34
+ input: HandlerInput;
35
+ req: express.Request;
36
+ res: express.Response;
37
+ };
38
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
39
+ //# sourceMappingURL=searchAccounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchAccounts.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/com/atproto/admin/searchAccounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,mBAAmB,MAAM,QAAQ,CAAA;AAE7C,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,mBAAmB,CAAC,WAAW,EAAE,CAAA;IAC3C,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,CAAA;AAEpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAC9E,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=searchAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchAccounts.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/com/atproto/admin/searchAccounts.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { ValidationResult } from '@atproto/lexicon';
6
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
7
+ export interface QueryParams {
8
+ }
9
+ export type InputSchema = undefined;
10
+ export interface OutputSchema {
11
+ appview?: ServiceConfig;
12
+ pds?: ServiceConfig;
13
+ blobDivert?: ServiceConfig;
14
+ chat?: ServiceConfig;
15
+ viewer?: ViewerConfig;
16
+ [k: string]: unknown;
17
+ }
18
+ export type HandlerInput = undefined;
19
+ export interface HandlerSuccess {
20
+ encoding: 'application/json';
21
+ body: OutputSchema;
22
+ headers?: {
23
+ [key: string]: string;
24
+ };
25
+ }
26
+ export interface HandlerError {
27
+ status: number;
28
+ message?: string;
29
+ }
30
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
31
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
32
+ auth: HA;
33
+ params: QueryParams;
34
+ input: HandlerInput;
35
+ req: express.Request;
36
+ res: express.Response;
37
+ };
38
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
39
+ export interface ServiceConfig {
40
+ url?: string;
41
+ [k: string]: unknown;
42
+ }
43
+ export declare function isServiceConfig(v: unknown): v is ServiceConfig;
44
+ export declare function validateServiceConfig(v: unknown): ValidationResult;
45
+ export interface ViewerConfig {
46
+ role?: 'tools.ozone.team.defs#roleAdmin' | 'tools.ozone.team.defs#roleModerator' | 'tools.ozone.team.defs#roleTriage' | (string & {});
47
+ [k: string]: unknown;
48
+ }
49
+ export declare function isViewerConfig(v: unknown): v is ViewerConfig;
50
+ export declare function validateViewerConfig(v: unknown): ValidationResult;
51
+ //# sourceMappingURL=getConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfig.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/server/getConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAW,MAAM,kBAAkB,CAAA;AAI5D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,GAAG,CAAC,EAAE,aAAa,CAAA;IACnB,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,CAAA;AAEpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAC9E,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA;AAE3C,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAM9D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAElE;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EACD,iCAAiC,GACjC,qCAAqC,GACrC,kCAAkC,GAClC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAM5D;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEjE"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateViewerConfig = exports.isViewerConfig = exports.validateServiceConfig = exports.isServiceConfig = void 0;
4
+ const lexicons_1 = require("../../../../lexicons");
5
+ const util_1 = require("../../../../util");
6
+ function isServiceConfig(v) {
7
+ return ((0, util_1.isObj)(v) &&
8
+ (0, util_1.hasProp)(v, '$type') &&
9
+ v.$type === 'tools.ozone.server.getConfig#serviceConfig');
10
+ }
11
+ exports.isServiceConfig = isServiceConfig;
12
+ function validateServiceConfig(v) {
13
+ return lexicons_1.lexicons.validate('tools.ozone.server.getConfig#serviceConfig', v);
14
+ }
15
+ exports.validateServiceConfig = validateServiceConfig;
16
+ function isViewerConfig(v) {
17
+ return ((0, util_1.isObj)(v) &&
18
+ (0, util_1.hasProp)(v, '$type') &&
19
+ v.$type === 'tools.ozone.server.getConfig#viewerConfig');
20
+ }
21
+ exports.isViewerConfig = isViewerConfig;
22
+ function validateViewerConfig(v) {
23
+ return lexicons_1.lexicons.validate('tools.ozone.server.getConfig#viewerConfig', v);
24
+ }
25
+ exports.validateViewerConfig = validateViewerConfig;
26
+ //# sourceMappingURL=getConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfig.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/server/getConfig.ts"],"names":[],"mappings":";;;AAKA,mDAA+C;AAC/C,2CAAiD;AA+CjD,SAAgB,eAAe,CAAC,CAAU;IACxC,OAAO,CACL,IAAA,YAAK,EAAC,CAAC,CAAC;QACR,IAAA,cAAO,EAAC,CAAC,EAAE,OAAO,CAAC;QACnB,CAAC,CAAC,KAAK,KAAK,4CAA4C,CACzD,CAAA;AACH,CAAC;AAND,0CAMC;AAED,SAAgB,qBAAqB,CAAC,CAAU;IAC9C,OAAO,mBAAQ,CAAC,QAAQ,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAA;AAC3E,CAAC;AAFD,sDAEC;AAWD,SAAgB,cAAc,CAAC,CAAU;IACvC,OAAO,CACL,IAAA,YAAK,EAAC,CAAC,CAAC;QACR,IAAA,cAAO,EAAC,CAAC,EAAE,OAAO,CAAC;QACnB,CAAC,CAAC,KAAK,KAAK,2CAA2C,CACxD,CAAA;AACH,CAAC;AAND,wCAMC;AAED,SAAgB,oBAAoB,CAAC,CAAU;IAC7C,OAAO,mBAAQ,CAAC,QAAQ,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAA;AAC1E,CAAC;AAFD,oDAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/pds",
3
- "version": "0.4.31",
3
+ "version": "0.4.32",
4
4
  "license": "MIT",
5
5
  "description": "Reference implementation of atproto Personal Data Server (PDS)",
6
6
  "keywords": [
@@ -43,7 +43,7 @@
43
43
  "typed-emitter": "^2.1.0",
44
44
  "uint8arrays": "3.0.0",
45
45
  "zod": "^3.21.4",
46
- "@atproto/api": "^0.12.16",
46
+ "@atproto/api": "^0.12.17",
47
47
  "@atproto/aws": "^0.2.0",
48
48
  "@atproto/common": "^0.4.0",
49
49
  "@atproto/crypto": "^0.4.0",
@@ -70,8 +70,8 @@
70
70
  "jest": "^28.1.2",
71
71
  "ts-node": "^10.8.2",
72
72
  "ws": "^8.12.0",
73
- "@atproto/api": "^0.12.16",
74
- "@atproto/bsky": "^0.0.59",
73
+ "@atproto/api": "^0.12.17",
74
+ "@atproto/bsky": "^0.0.60",
75
75
  "@atproto/lex-cli": "^0.4.0"
76
76
  },
77
77
  "scripts": {
@@ -182,7 +182,10 @@ export const updateEmail = async (
182
182
  await db.executeWithRetry(
183
183
  db.db
184
184
  .updateTable('account')
185
- .set({ email: email.toLowerCase(), emailConfirmedAt: null })
185
+ .set({
186
+ email: email.toLowerCase(),
187
+ emailConfirmedAt: null,
188
+ })
186
189
  .where('did', '=', did),
187
190
  )
188
191
  } catch (err) {
@@ -17,8 +17,6 @@ export default function (server: Server, ctx: AppContext) {
17
17
  if (takedown) {
18
18
  if (isRepoRef(subject)) {
19
19
  await ctx.accountManager.takedownAccount(subject.did, takedown)
20
- const status = await ctx.accountManager.getAccountStatus(subject.did)
21
- await ctx.sequencer.sequenceAccountEvt(subject.did, status)
22
20
  } else if (isStrongRef(subject)) {
23
21
  const uri = new AtUri(subject.uri)
24
22
  await ctx.actorStore.transact(uri.hostname, (store) =>
@@ -46,6 +44,11 @@ export default function (server: Server, ctx: AppContext) {
46
44
  }
47
45
  }
48
46
 
47
+ if (isRepoRef(subject)) {
48
+ const status = await ctx.accountManager.getAccountStatus(subject.did)
49
+ await ctx.sequencer.sequenceAccountEvt(subject.did, status)
50
+ }
51
+
49
52
  return {
50
53
  encoding: 'application/json',
51
54
  body: {
@@ -4,11 +4,21 @@ import { INVALID_HANDLE } from '@atproto/syntax'
4
4
  import { Server } from '../../../../lexicon'
5
5
  import AppContext from '../../../../context'
6
6
  import { assertValidDidDocumentForService } from './util'
7
+ import { authPassthru } from '../../../proxy'
7
8
 
8
9
  export default function (server: Server, ctx: AppContext) {
9
10
  server.com.atproto.server.activateAccount({
10
11
  auth: ctx.authVerifier.accessFull(),
11
- handler: async ({ auth }) => {
12
+ handler: async ({ auth, req }) => {
13
+ // in the case of entryway, the full flow is activateAccount (PDS) -> activateAccount (Entryway) -> updateSubjectStatus(PDS)
14
+ if (ctx.entrywayAgent) {
15
+ await ctx.entrywayAgent.com.atproto.server.activateAccount(
16
+ undefined,
17
+ authPassthru(req, true),
18
+ )
19
+ return
20
+ }
21
+
12
22
  const requester = auth.credentials.did
13
23
 
14
24
  await assertValidDidDocumentForService(ctx, requester)
@@ -1,10 +1,20 @@
1
1
  import { Server } from '../../../../lexicon'
2
2
  import AppContext from '../../../../context'
3
+ import { authPassthru } from '../../../proxy'
3
4
 
4
5
  export default function (server: Server, ctx: AppContext) {
5
6
  server.com.atproto.server.deactivateAccount({
6
7
  auth: ctx.authVerifier.accessFull(),
7
- handler: async ({ auth, input }) => {
8
+ handler: async ({ auth, input, req }) => {
9
+ // in the case of entryway, the full flow is deactivateAccount (PDS) -> deactivateAccount (Entryway) -> updateSubjectStatus(PDS)
10
+ if (ctx.entrywayAgent) {
11
+ await ctx.entrywayAgent.com.atproto.server.deactivateAccount(
12
+ input.body,
13
+ authPassthru(req, true),
14
+ )
15
+ return
16
+ }
17
+
8
18
  const requester = auth.credentials.did
9
19
  await ctx.accountManager.deactivateAccount(
10
20
  requester,
@@ -17,6 +17,7 @@ import * as ComAtprotoAdminGetAccountInfo from './types/com/atproto/admin/getAcc
17
17
  import * as ComAtprotoAdminGetAccountInfos from './types/com/atproto/admin/getAccountInfos'
18
18
  import * as ComAtprotoAdminGetInviteCodes from './types/com/atproto/admin/getInviteCodes'
19
19
  import * as ComAtprotoAdminGetSubjectStatus from './types/com/atproto/admin/getSubjectStatus'
20
+ import * as ComAtprotoAdminSearchAccounts from './types/com/atproto/admin/searchAccounts'
20
21
  import * as ComAtprotoAdminSendEmail from './types/com/atproto/admin/sendEmail'
21
22
  import * as ComAtprotoAdminUpdateAccountEmail from './types/com/atproto/admin/updateAccountEmail'
22
23
  import * as ComAtprotoAdminUpdateAccountHandle from './types/com/atproto/admin/updateAccountHandle'
@@ -158,6 +159,7 @@ import * as ToolsOzoneModerationGetRepo from './types/tools/ozone/moderation/get
158
159
  import * as ToolsOzoneModerationQueryEvents from './types/tools/ozone/moderation/queryEvents'
159
160
  import * as ToolsOzoneModerationQueryStatuses from './types/tools/ozone/moderation/queryStatuses'
160
161
  import * as ToolsOzoneModerationSearchRepos from './types/tools/ozone/moderation/searchRepos'
162
+ import * as ToolsOzoneServerGetConfig from './types/tools/ozone/server/getConfig'
161
163
 
162
164
  export const COM_ATPROTO_MODERATION = {
163
165
  DefsReasonSpam: 'com.atproto.moderation.defs#reasonSpam',
@@ -342,6 +344,17 @@ export class ComAtprotoAdminNS {
342
344
  return this._server.xrpc.method(nsid, cfg)
343
345
  }
344
346
 
347
+ searchAccounts<AV extends AuthVerifier>(
348
+ cfg: ConfigOf<
349
+ AV,
350
+ ComAtprotoAdminSearchAccounts.Handler<ExtractAuth<AV>>,
351
+ ComAtprotoAdminSearchAccounts.HandlerReqCtx<ExtractAuth<AV>>
352
+ >,
353
+ ) {
354
+ const nsid = 'com.atproto.admin.searchAccounts' // @ts-ignore
355
+ return this._server.xrpc.method(nsid, cfg)
356
+ }
357
+
345
358
  sendEmail<AV extends AuthVerifier>(
346
359
  cfg: ConfigOf<
347
360
  AV,
@@ -1993,11 +2006,13 @@ export class ToolsOzoneNS {
1993
2006
  _server: Server
1994
2007
  communication: ToolsOzoneCommunicationNS
1995
2008
  moderation: ToolsOzoneModerationNS
2009
+ server: ToolsOzoneServerNS
1996
2010
 
1997
2011
  constructor(server: Server) {
1998
2012
  this._server = server
1999
2013
  this.communication = new ToolsOzoneCommunicationNS(server)
2000
2014
  this.moderation = new ToolsOzoneModerationNS(server)
2015
+ this.server = new ToolsOzoneServerNS(server)
2001
2016
  }
2002
2017
  }
2003
2018
 
@@ -2138,6 +2153,25 @@ export class ToolsOzoneModerationNS {
2138
2153
  }
2139
2154
  }
2140
2155
 
2156
+ export class ToolsOzoneServerNS {
2157
+ _server: Server
2158
+
2159
+ constructor(server: Server) {
2160
+ this._server = server
2161
+ }
2162
+
2163
+ getConfig<AV extends AuthVerifier>(
2164
+ cfg: ConfigOf<
2165
+ AV,
2166
+ ToolsOzoneServerGetConfig.Handler<ExtractAuth<AV>>,
2167
+ ToolsOzoneServerGetConfig.HandlerReqCtx<ExtractAuth<AV>>
2168
+ >,
2169
+ ) {
2170
+ const nsid = 'tools.ozone.server.getConfig' // @ts-ignore
2171
+ return this._server.xrpc.method(nsid, cfg)
2172
+ }
2173
+ }
2174
+
2141
2175
  type SharedRateLimitOpts<T> = {
2142
2176
  name: string
2143
2177
  calcKey?: (ctx: T) => string
@@ -378,6 +378,52 @@ export const schemaDict = {
378
378
  },
379
379
  },
380
380
  },
381
+ ComAtprotoAdminSearchAccounts: {
382
+ lexicon: 1,
383
+ id: 'com.atproto.admin.searchAccounts',
384
+ defs: {
385
+ main: {
386
+ type: 'query',
387
+ description: 'Get list of accounts that matches your search query.',
388
+ parameters: {
389
+ type: 'params',
390
+ properties: {
391
+ email: {
392
+ type: 'string',
393
+ },
394
+ cursor: {
395
+ type: 'string',
396
+ },
397
+ limit: {
398
+ type: 'integer',
399
+ minimum: 1,
400
+ maximum: 100,
401
+ default: 50,
402
+ },
403
+ },
404
+ },
405
+ output: {
406
+ encoding: 'application/json',
407
+ schema: {
408
+ type: 'object',
409
+ required: ['accounts'],
410
+ properties: {
411
+ cursor: {
412
+ type: 'string',
413
+ },
414
+ accounts: {
415
+ type: 'array',
416
+ items: {
417
+ type: 'ref',
418
+ ref: 'lex:com.atproto.admin.defs#accountView',
419
+ },
420
+ },
421
+ },
422
+ },
423
+ },
424
+ },
425
+ },
426
+ },
381
427
  ComAtprotoAdminSendEmail: {
382
428
  lexicon: 1,
383
429
  id: 'com.atproto.admin.sendEmail',
@@ -10774,6 +10820,66 @@ export const schemaDict = {
10774
10820
  },
10775
10821
  },
10776
10822
  },
10823
+ ToolsOzoneServerGetConfig: {
10824
+ lexicon: 1,
10825
+ id: 'tools.ozone.server.getConfig',
10826
+ defs: {
10827
+ main: {
10828
+ type: 'query',
10829
+ description: "Get details about ozone's server configuration.",
10830
+ output: {
10831
+ encoding: 'application/json',
10832
+ schema: {
10833
+ type: 'object',
10834
+ properties: {
10835
+ appview: {
10836
+ type: 'ref',
10837
+ ref: 'lex:tools.ozone.server.getConfig#serviceConfig',
10838
+ },
10839
+ pds: {
10840
+ type: 'ref',
10841
+ ref: 'lex:tools.ozone.server.getConfig#serviceConfig',
10842
+ },
10843
+ blobDivert: {
10844
+ type: 'ref',
10845
+ ref: 'lex:tools.ozone.server.getConfig#serviceConfig',
10846
+ },
10847
+ chat: {
10848
+ type: 'ref',
10849
+ ref: 'lex:tools.ozone.server.getConfig#serviceConfig',
10850
+ },
10851
+ viewer: {
10852
+ type: 'ref',
10853
+ ref: 'lex:tools.ozone.server.getConfig#viewerConfig',
10854
+ },
10855
+ },
10856
+ },
10857
+ },
10858
+ },
10859
+ serviceConfig: {
10860
+ type: 'object',
10861
+ properties: {
10862
+ url: {
10863
+ type: 'string',
10864
+ format: 'uri',
10865
+ },
10866
+ },
10867
+ },
10868
+ viewerConfig: {
10869
+ type: 'object',
10870
+ properties: {
10871
+ role: {
10872
+ type: 'string',
10873
+ knownValues: [
10874
+ 'tools.ozone.team.defs#roleAdmin',
10875
+ 'tools.ozone.team.defs#roleModerator',
10876
+ 'tools.ozone.team.defs#roleTriage',
10877
+ ],
10878
+ },
10879
+ },
10880
+ },
10881
+ },
10882
+ },
10777
10883
  }
10778
10884
  export const schemas: LexiconDoc[] = Object.values(schemaDict) as LexiconDoc[]
10779
10885
  export const lexicons: Lexicons = new Lexicons(schemas)
@@ -10788,6 +10894,7 @@ export const ids = {
10788
10894
  ComAtprotoAdminGetAccountInfos: 'com.atproto.admin.getAccountInfos',
10789
10895
  ComAtprotoAdminGetInviteCodes: 'com.atproto.admin.getInviteCodes',
10790
10896
  ComAtprotoAdminGetSubjectStatus: 'com.atproto.admin.getSubjectStatus',
10897
+ ComAtprotoAdminSearchAccounts: 'com.atproto.admin.searchAccounts',
10791
10898
  ComAtprotoAdminSendEmail: 'com.atproto.admin.sendEmail',
10792
10899
  ComAtprotoAdminUpdateAccountEmail: 'com.atproto.admin.updateAccountEmail',
10793
10900
  ComAtprotoAdminUpdateAccountHandle: 'com.atproto.admin.updateAccountHandle',
@@ -10979,4 +11086,5 @@ export const ids = {
10979
11086
  ToolsOzoneModerationQueryEvents: 'tools.ozone.moderation.queryEvents',
10980
11087
  ToolsOzoneModerationQueryStatuses: 'tools.ozone.moderation.queryStatuses',
10981
11088
  ToolsOzoneModerationSearchRepos: 'tools.ozone.moderation.searchRepos',
11089
+ ToolsOzoneServerGetConfig: 'tools.ozone.server.getConfig',
10982
11090
  }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express'
5
+ import { ValidationResult, BlobRef } from '@atproto/lexicon'
6
+ import { lexicons } from '../../../../lexicons'
7
+ import { isObj, hasProp } from '../../../../util'
8
+ import { CID } from 'multiformats/cid'
9
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
10
+ import * as ComAtprotoAdminDefs from './defs'
11
+
12
+ export interface QueryParams {
13
+ email?: string
14
+ cursor?: string
15
+ limit: number
16
+ }
17
+
18
+ export type InputSchema = undefined
19
+
20
+ export interface OutputSchema {
21
+ cursor?: string
22
+ accounts: ComAtprotoAdminDefs.AccountView[]
23
+ [k: string]: unknown
24
+ }
25
+
26
+ export type HandlerInput = undefined
27
+
28
+ export interface HandlerSuccess {
29
+ encoding: 'application/json'
30
+ body: OutputSchema
31
+ headers?: { [key: string]: string }
32
+ }
33
+
34
+ export interface HandlerError {
35
+ status: number
36
+ message?: string
37
+ }
38
+
39
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
40
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
41
+ auth: HA
42
+ params: QueryParams
43
+ input: HandlerInput
44
+ req: express.Request
45
+ res: express.Response
46
+ }
47
+ export type Handler<HA extends HandlerAuth = never> = (
48
+ ctx: HandlerReqCtx<HA>,
49
+ ) => Promise<HandlerOutput> | HandlerOutput
@@ -0,0 +1,85 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express'
5
+ import { ValidationResult, BlobRef } from '@atproto/lexicon'
6
+ import { lexicons } from '../../../../lexicons'
7
+ import { isObj, hasProp } from '../../../../util'
8
+ import { CID } from 'multiformats/cid'
9
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
10
+
11
+ export interface QueryParams {}
12
+
13
+ export type InputSchema = undefined
14
+
15
+ export interface OutputSchema {
16
+ appview?: ServiceConfig
17
+ pds?: ServiceConfig
18
+ blobDivert?: ServiceConfig
19
+ chat?: ServiceConfig
20
+ viewer?: ViewerConfig
21
+ [k: string]: unknown
22
+ }
23
+
24
+ export type HandlerInput = undefined
25
+
26
+ export interface HandlerSuccess {
27
+ encoding: 'application/json'
28
+ body: OutputSchema
29
+ headers?: { [key: string]: string }
30
+ }
31
+
32
+ export interface HandlerError {
33
+ status: number
34
+ message?: string
35
+ }
36
+
37
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
38
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
39
+ auth: HA
40
+ params: QueryParams
41
+ input: HandlerInput
42
+ req: express.Request
43
+ res: express.Response
44
+ }
45
+ export type Handler<HA extends HandlerAuth = never> = (
46
+ ctx: HandlerReqCtx<HA>,
47
+ ) => Promise<HandlerOutput> | HandlerOutput
48
+
49
+ export interface ServiceConfig {
50
+ url?: string
51
+ [k: string]: unknown
52
+ }
53
+
54
+ export function isServiceConfig(v: unknown): v is ServiceConfig {
55
+ return (
56
+ isObj(v) &&
57
+ hasProp(v, '$type') &&
58
+ v.$type === 'tools.ozone.server.getConfig#serviceConfig'
59
+ )
60
+ }
61
+
62
+ export function validateServiceConfig(v: unknown): ValidationResult {
63
+ return lexicons.validate('tools.ozone.server.getConfig#serviceConfig', v)
64
+ }
65
+
66
+ export interface ViewerConfig {
67
+ role?:
68
+ | 'tools.ozone.team.defs#roleAdmin'
69
+ | 'tools.ozone.team.defs#roleModerator'
70
+ | 'tools.ozone.team.defs#roleTriage'
71
+ | (string & {})
72
+ [k: string]: unknown
73
+ }
74
+
75
+ export function isViewerConfig(v: unknown): v is ViewerConfig {
76
+ return (
77
+ isObj(v) &&
78
+ hasProp(v, '$type') &&
79
+ v.$type === 'tools.ozone.server.getConfig#viewerConfig'
80
+ )
81
+ }
82
+
83
+ export function validateViewerConfig(v: unknown): ValidationResult {
84
+ return lexicons.validate('tools.ozone.server.getConfig#viewerConfig', v)
85
+ }