@atproto/pds 0.4.40 → 0.4.42
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +25 -0
- package/dist/account-manager/index.d.ts +3 -4
- package/dist/account-manager/index.d.ts.map +1 -1
- package/dist/account-manager/index.js +2 -3
- package/dist/account-manager/index.js.map +1 -1
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +11 -9
- package/dist/auth-verifier.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +2 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts +2 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +2 -1
- package/dist/config/env.js.map +1 -1
- package/dist/lexicon/index.d.ts +2 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +4 -0
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +32 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +32 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/getUnreadCount.d.ts +1 -0
- package/dist/lexicon/types/app/bsky/notification/getUnreadCount.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +2 -0
- 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/app/bsky/notification/putPreferences.d.ts +29 -0
- package/dist/lexicon/types/app/bsky/notification/putPreferences.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/notification/putPreferences.js +3 -0
- package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -0
- package/dist/logger.d.ts +3 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +9 -76
- package/dist/logger.js.map +1 -1
- package/dist/oauth/detailed-account-store.d.ts +2 -2
- package/dist/oauth/detailed-account-store.d.ts.map +1 -1
- package/dist/oauth/detailed-account-store.js.map +1 -1
- package/package.json +9 -9
- package/src/account-manager/index.ts +4 -5
- package/src/auth-verifier.ts +18 -9
- package/src/config/config.ts +2 -1
- package/src/config/env.ts +4 -2
- package/src/lexicon/index.ts +12 -0
- package/src/lexicon/lexicons.ts +33 -0
- package/src/lexicon/types/app/bsky/notification/getUnreadCount.ts +1 -0
- package/src/lexicon/types/app/bsky/notification/listNotifications.ts +2 -0
- package/src/lexicon/types/app/bsky/notification/putPreferences.ts +38 -0
- package/src/logger.ts +11 -81
- package/src/oauth/detailed-account-store.ts +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getUnreadCount.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/getUnreadCount.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,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"}
|
1
|
+
{"version":3,"file":"getUnreadCount.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/getUnreadCount.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,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"}
|
@@ -8,6 +8,7 @@ import * as AppBskyActorDefs from '../actor/defs';
|
|
8
8
|
import * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs';
|
9
9
|
export interface QueryParams {
|
10
10
|
limit: number;
|
11
|
+
priority?: boolean;
|
11
12
|
cursor?: string;
|
12
13
|
seenAt?: string;
|
13
14
|
}
|
@@ -15,6 +16,7 @@ export type InputSchema = undefined;
|
|
15
16
|
export interface OutputSchema {
|
16
17
|
cursor?: string;
|
17
18
|
notifications: Notification[];
|
19
|
+
priority?: boolean;
|
18
20
|
seenAt?: string;
|
19
21
|
[k: string]: unknown;
|
20
22
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listNotifications.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/listNotifications.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;AACtE,OAAO,KAAK,gBAAgB,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAA;AAEtE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,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,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAA;IACpC,6GAA6G;IAC7G,MAAM,EACF,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,GACP,OAAO,GACP,oBAAoB,GACpB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,EAAE,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACpC,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,CAKjE"}
|
1
|
+
{"version":3,"file":"listNotifications.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/listNotifications.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;AACtE,OAAO,KAAK,gBAAgB,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAA;AAEtE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,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,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAA;IACpC,6GAA6G;IAC7G,MAAM,EACF,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,GACP,OAAO,GACP,oBAAoB,GACpB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,EAAE,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACpC,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,CAKjE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listNotifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/listNotifications.ts"],"names":[],"mappings":";;;AAKA,mDAA+C;AAC/C,2CAAiD;
|
1
|
+
{"version":3,"file":"listNotifications.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/listNotifications.ts"],"names":[],"mappings":";;;AAKA,mDAA+C;AAC/C,2CAAiD;AAsEjD,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,sDAAsD,CACnE,CAAA;AACH,CAAC;AAND,wCAMC;AAED,SAAgB,oBAAoB,CAAC,CAAU;IAC7C,OAAO,mBAAQ,CAAC,QAAQ,CACtB,sDAAsD,EACtD,CAAC,CACF,CAAA;AACH,CAAC;AALD,oDAKC"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/**
|
2
|
+
* GENERATED CODE - DO NOT MODIFY
|
3
|
+
*/
|
4
|
+
import express from 'express';
|
5
|
+
import { HandlerAuth } from '@atproto/xrpc-server';
|
6
|
+
export interface QueryParams {
|
7
|
+
}
|
8
|
+
export interface InputSchema {
|
9
|
+
priority: boolean;
|
10
|
+
[k: string]: unknown;
|
11
|
+
}
|
12
|
+
export interface HandlerInput {
|
13
|
+
encoding: 'application/json';
|
14
|
+
body: InputSchema;
|
15
|
+
}
|
16
|
+
export interface HandlerError {
|
17
|
+
status: number;
|
18
|
+
message?: string;
|
19
|
+
}
|
20
|
+
export type HandlerOutput = HandlerError | void;
|
21
|
+
export type HandlerReqCtx<HA extends HandlerAuth = never> = {
|
22
|
+
auth: HA;
|
23
|
+
params: QueryParams;
|
24
|
+
input: HandlerInput;
|
25
|
+
req: express.Request;
|
26
|
+
res: express.Response;
|
27
|
+
};
|
28
|
+
export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
|
29
|
+
//# sourceMappingURL=putPreferences.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"putPreferences.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/putPreferences.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAsB,MAAM,sBAAsB,CAAA;AAEtE,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAA;AAC/C,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 @@
|
|
1
|
+
{"version":3,"file":"putPreferences.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/notification/putPreferences.ts"],"names":[],"mappings":""}
|
package/dist/logger.d.ts
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
/// <reference types="node" />
|
1
2
|
/// <reference types="node/http" />
|
3
|
+
import { type IncomingMessage } from 'node:http';
|
2
4
|
export declare const dbLogger: import("pino").default.Logger<never>;
|
3
5
|
export declare const didCacheLogger: import("pino").default.Logger<never>;
|
4
6
|
export declare const readStickyLogger: import("pino").default.Logger<never>;
|
@@ -10,5 +12,5 @@ export declare const crawlerLogger: import("pino").default.Logger<never>;
|
|
10
12
|
export declare const httpLogger: import("pino").default.Logger<never>;
|
11
13
|
export declare const fetchLogger: import("pino").default.Logger<never>;
|
12
14
|
export declare const oauthLogger: import("pino").default.Logger<never>;
|
13
|
-
export declare const loggerMiddleware: import("pino-http").HttpLogger<
|
15
|
+
export declare const loggerMiddleware: import("pino-http").HttpLogger<IncomingMessage, import("http").ServerResponse<IncomingMessage>, never>;
|
14
16
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AAKhD,eAAO,MAAM,QAAQ,sCAA4B,CAAA;AACjD,eAAO,MAAM,cAAc,sCAAmC,CAAA;AAC9D,eAAO,MAAM,gBAAgB,sCAAqC,CAAA;AAClE,eAAO,MAAM,WAAW,sCAA+B,CAAA;AACvD,eAAO,MAAM,SAAS,sCAAmC,CAAA;AACzD,eAAO,MAAM,YAAY,sCAAgC,CAAA;AACzD,eAAO,MAAM,aAAa,sCAAiC,CAAA;AAC3D,eAAO,MAAM,aAAa,sCAAiC,CAAA;AAC3D,eAAO,MAAM,UAAU,sCAAyB,CAAA;AAChD,eAAO,MAAM,WAAW,sCAA+B,CAAA;AACvD,eAAO,MAAM,WAAW,sCAA+B,CAAA;AAEvD,eAAO,MAAM,gBAAgB,wGAa3B,CAAA"}
|
package/dist/logger.js
CHANGED
@@ -21,82 +21,15 @@ exports.oauthLogger = (0, common_1.subsystemLogger)('pds:oauth');
|
|
21
21
|
exports.loggerMiddleware = (0, pino_http_1.default)({
|
22
22
|
logger: exports.httpLogger,
|
23
23
|
serializers: {
|
24
|
-
err:
|
25
|
-
|
24
|
+
err: (err) => ({
|
25
|
+
code: err?.['code'],
|
26
|
+
message: err?.['message'],
|
27
|
+
}),
|
28
|
+
req: (req) => {
|
29
|
+
const serialized = pino_1.stdSerializers.req(req);
|
30
|
+
const headers = (0, common_1.obfuscateHeaders)(serialized.headers);
|
31
|
+
return { ...serialized, headers };
|
32
|
+
},
|
26
33
|
},
|
27
34
|
});
|
28
|
-
function errSerializer(err) {
|
29
|
-
return {
|
30
|
-
code: err?.code,
|
31
|
-
message: err?.message,
|
32
|
-
};
|
33
|
-
}
|
34
|
-
function reqSerializer(req) {
|
35
|
-
const serialized = pino_1.stdSerializers.req(req);
|
36
|
-
serialized.headers = obfuscateHeaders(serialized.headers);
|
37
|
-
return serialized;
|
38
|
-
}
|
39
|
-
function obfuscateHeaders(headers) {
|
40
|
-
const obfuscatedHeaders = {};
|
41
|
-
for (const key in headers) {
|
42
|
-
if (key.toLowerCase() === 'authorization') {
|
43
|
-
obfuscatedHeaders[key] = obfuscateAuthHeader(headers[key]);
|
44
|
-
}
|
45
|
-
else if (key.toLowerCase() === 'dpop') {
|
46
|
-
obfuscatedHeaders[key] = obfuscateJws(headers[key]) || 'Invalid';
|
47
|
-
}
|
48
|
-
else {
|
49
|
-
obfuscatedHeaders[key] = headers[key];
|
50
|
-
}
|
51
|
-
}
|
52
|
-
return obfuscatedHeaders;
|
53
|
-
}
|
54
|
-
function obfuscateAuthHeader(authHeader) {
|
55
|
-
// This is a hot path (runs on every request). Avoid using split() or regex.
|
56
|
-
const spaceIdx = authHeader.indexOf(' ');
|
57
|
-
if (spaceIdx === -1)
|
58
|
-
return 'Invalid';
|
59
|
-
const type = authHeader.slice(0, spaceIdx);
|
60
|
-
switch (type.toLowerCase()) {
|
61
|
-
case 'bearer':
|
62
|
-
return `${type} ${obfuscateBearer(authHeader.slice(spaceIdx + 1))}`;
|
63
|
-
case 'dpop':
|
64
|
-
return `${type} ${obfuscateJws(authHeader.slice(spaceIdx + 1)) || 'Invalid'}`;
|
65
|
-
case 'basic':
|
66
|
-
return `${type} ${obfuscateBasic(authHeader.slice(spaceIdx + 1)) || 'Invalid'}`;
|
67
|
-
default:
|
68
|
-
return `Invalid`;
|
69
|
-
}
|
70
|
-
}
|
71
|
-
function obfuscateBasic(token) {
|
72
|
-
if (!token)
|
73
|
-
return null;
|
74
|
-
const buffer = Buffer.from(token, 'base64');
|
75
|
-
if (!buffer.length)
|
76
|
-
return null; // Buffer.from will silently ignore invalid base64 chars
|
77
|
-
const authHeader = buffer.toString('utf8');
|
78
|
-
const colIdx = authHeader.indexOf(':');
|
79
|
-
if (colIdx === -1)
|
80
|
-
return null;
|
81
|
-
const username = authHeader.slice(0, colIdx);
|
82
|
-
return `${username}:***`;
|
83
|
-
}
|
84
|
-
function obfuscateBearer(token) {
|
85
|
-
return obfuscateJws(token) || obfuscateToken(token);
|
86
|
-
}
|
87
|
-
function obfuscateToken(token) {
|
88
|
-
return token ? '***' : '';
|
89
|
-
}
|
90
|
-
function obfuscateJws(token) {
|
91
|
-
const firstDot = token.indexOf('.');
|
92
|
-
if (firstDot === -1)
|
93
|
-
return null;
|
94
|
-
const secondDot = token.indexOf('.', firstDot + 1);
|
95
|
-
if (secondDot === -1)
|
96
|
-
return null;
|
97
|
-
if (token.indexOf('.', secondDot + 1) !== -1)
|
98
|
-
return null;
|
99
|
-
// Strip the signature
|
100
|
-
return token.slice(0, secondDot) + '.obfuscated';
|
101
|
-
}
|
102
35
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AACA,+BAAqC;AACrC,0DAAgC;AAChC,4CAAmE;AAEtD,QAAA,QAAQ,GAAG,IAAA,wBAAe,EAAC,QAAQ,CAAC,CAAA;AACpC,QAAA,cAAc,GAAG,IAAA,wBAAe,EAAC,eAAe,CAAC,CAAA;AACjD,QAAA,gBAAgB,GAAG,IAAA,wBAAe,EAAC,iBAAiB,CAAC,CAAA;AACrD,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,SAAS,GAAG,IAAA,wBAAe,EAAC,eAAe,CAAC,CAAA;AAC5C,QAAA,YAAY,GAAG,IAAA,wBAAe,EAAC,YAAY,CAAC,CAAA;AAC5C,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAC9C,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAC9C,QAAA,UAAU,GAAG,IAAA,wBAAe,EAAC,KAAK,CAAC,CAAA;AACnC,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAC1C,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAC,WAAW,CAAC,CAAA;AAE1C,QAAA,gBAAgB,GAAG,IAAA,mBAAQ,EAAC;IACvC,MAAM,EAAE,kBAAU;IAClB,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;SAC1B,CAAC;QACF,GAAG,EAAE,CAAC,GAAoB,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,qBAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,IAAA,yBAAgB,EAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YACpD,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAA;QACnC,CAAC;KACF;CACF,CAAC,CAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { AccountInfo, AccountStore, DeviceId,
|
1
|
+
import { AccountInfo, AccountStore, DeviceId, SignInCredentials } from '@atproto/oauth-provider';
|
2
2
|
import { AccountManager } from '../account-manager/index';
|
3
3
|
import { ActorStore } from '../actor-store/index';
|
4
4
|
import { LocalViewerCreator } from '../read-after-write/index';
|
@@ -18,7 +18,7 @@ export declare class DetailedAccountStore implements AccountStore {
|
|
18
18
|
constructor(accountManager: AccountManager, actorStore: ActorStore, localViewer: LocalViewerCreator);
|
19
19
|
private getProfile;
|
20
20
|
private enrichAccountInfo;
|
21
|
-
authenticateAccount(credentials:
|
21
|
+
authenticateAccount(credentials: SignInCredentials, deviceId: DeviceId): Promise<AccountInfo | null>;
|
22
22
|
addAuthorizedClient(deviceId: DeviceId, sub: string, clientId: string): Promise<void>;
|
23
23
|
getDeviceAccount(deviceId: DeviceId, sub: string): Promise<AccountInfo | null>;
|
24
24
|
listDeviceAccounts(deviceId: DeviceId): Promise<AccountInfo[]>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"detailed-account-store.d.ts","sourceRoot":"","sources":["../../src/oauth/detailed-account-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,
|
1
|
+
{"version":3,"file":"detailed-account-store.d.ts","sourceRoot":"","sources":["../../src/oauth/detailed-account-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IAErD,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;gBAFX,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,kBAAkB;YAG3B,UAAU;YAQV,iBAAiB;IAezB,mBAAmB,CACvB,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASxB,mBAAmB,CACvB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAIV,gBAAgB,CACpB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASxB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAS9D,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1E"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"detailed-account-store.js","sourceRoot":"","sources":["../../src/oauth/detailed-account-store.ts"],"names":[],"mappings":";;;AAYA;;;;;;;;GAQG;AACH,MAAa,oBAAoB;IAC/B,YACU,cAA8B,EAC9B,UAAsB,EACtB,WAA+B;QAFvC;;;;mBAAQ,cAAc;WAAgB;QACtC;;;;mBAAQ,UAAU;WAAY;QAC9B;;;;mBAAQ,WAAW;WAAoB;IACtC,CAAC;IAEI,KAAK,CAAC,UAAU,CAAC,GAAW;QAClC,8BAA8B;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YACtD,OAAO,WAAW,CAAC,eAAe,EAAE,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,WAAwB;QAExB,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,OAAO,KAAf,OAAO,CAAC,OAAO,GAAK,OAAO,CAAC,MAAM,EAAA;gBAClC,OAAO,CAAC,IAAI,KAAZ,OAAO,CAAC,IAAI,GAAK,OAAO,CAAC,WAAW,EAAA;YACtC,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,
|
1
|
+
{"version":3,"file":"detailed-account-store.js","sourceRoot":"","sources":["../../src/oauth/detailed-account-store.ts"],"names":[],"mappings":";;;AAYA;;;;;;;;GAQG;AACH,MAAa,oBAAoB;IAC/B,YACU,cAA8B,EAC9B,UAAsB,EACtB,WAA+B;QAFvC;;;;mBAAQ,cAAc;WAAgB;QACtC;;;;mBAAQ,UAAU;WAAY;QAC9B;;;;mBAAQ,WAAW;WAAoB;IACtC,CAAC;IAEI,KAAK,CAAC,UAAU,CAAC,GAAW;QAClC,8BAA8B;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YACtD,OAAO,WAAW,CAAC,eAAe,EAAE,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,WAAwB;QAExB,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,OAAO,KAAf,OAAO,CAAC,OAAO,GAAK,OAAO,CAAC,MAAM,EAAA;gBAClC,OAAO,CAAC,IAAI,KAAZ,OAAO,CAAC,IAAI,GAAK,OAAO,CAAC,WAAW,EAAA;YACtC,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,WAA8B,EAC9B,QAAkB;QAElB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAC/D,WAAW,EACX,QAAQ,CACT,CAAA;QACD,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAAkB,EAClB,GAAW,EACX,QAAgB;QAEhB,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IACzE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,QAAkB,EAClB,GAAW;QAEX,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC5D,QAAQ,EACR,GAAG,CACJ,CAAA;QACD,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAkB;QACzC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3E,OAAO,OAAO,CAAC,GAAG,CAChB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CACrC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CACpC,CACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAkB,EAAE,GAAW;QACvD,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;CACF;AA1ED,oDA0EC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@atproto/pds",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.42",
|
4
4
|
"license": "MIT",
|
5
5
|
"description": "Reference implementation of atproto Personal Data Server (PDS)",
|
6
6
|
"keywords": [
|
@@ -44,17 +44,17 @@
|
|
44
44
|
"uint8arrays": "3.0.0",
|
45
45
|
"zod": "^3.23.8",
|
46
46
|
"@atproto-labs/fetch-node": "0.1.0",
|
47
|
-
"@atproto/api": "^0.12.
|
48
|
-
"@atproto/aws": "^0.2.
|
49
|
-
"@atproto/common": "^0.4.
|
47
|
+
"@atproto/api": "^0.12.25",
|
48
|
+
"@atproto/aws": "^0.2.1",
|
49
|
+
"@atproto/common": "^0.4.1",
|
50
50
|
"@atproto/crypto": "^0.4.0",
|
51
51
|
"@atproto/identity": "^0.4.0",
|
52
52
|
"@atproto/lexicon": "^0.4.0",
|
53
|
-
"@atproto/oauth-provider": "^0.1.
|
54
|
-
"@atproto/repo": "^0.4.
|
53
|
+
"@atproto/oauth-provider": "^0.1.1",
|
54
|
+
"@atproto/repo": "^0.4.1",
|
55
55
|
"@atproto/syntax": "^0.3.0",
|
56
56
|
"@atproto/xrpc": "^0.5.0",
|
57
|
-
"@atproto/xrpc-server": "^0.5.
|
57
|
+
"@atproto/xrpc-server": "^0.5.3"
|
58
58
|
},
|
59
59
|
"devDependencies": {
|
60
60
|
"@atproto/pds-entryway": "npm:@atproto/pds@0.3.0-entryway.3",
|
@@ -72,8 +72,8 @@
|
|
72
72
|
"jest": "^28.1.2",
|
73
73
|
"ts-node": "^10.8.2",
|
74
74
|
"ws": "^8.12.0",
|
75
|
-
"@atproto/api": "^0.12.
|
76
|
-
"@atproto/bsky": "^0.0.
|
75
|
+
"@atproto/api": "^0.12.25",
|
76
|
+
"@atproto/bsky": "^0.0.69",
|
77
77
|
"@atproto/lex-cli": "^0.4.0"
|
78
78
|
},
|
79
79
|
"scripts": {
|
@@ -7,12 +7,12 @@ import {
|
|
7
7
|
DeviceId,
|
8
8
|
DeviceStore,
|
9
9
|
FoundRequestResult,
|
10
|
-
LoginCredentials,
|
11
10
|
NewTokenData,
|
12
11
|
RefreshToken,
|
13
12
|
RequestData,
|
14
13
|
RequestId,
|
15
14
|
RequestStore,
|
15
|
+
SignInCredentials,
|
16
16
|
TokenData,
|
17
17
|
TokenId,
|
18
18
|
TokenInfo,
|
@@ -32,8 +32,8 @@ import * as account from './helpers/account'
|
|
32
32
|
import { AccountStatus, ActorAccount } from './helpers/account'
|
33
33
|
import * as auth from './helpers/auth'
|
34
34
|
import * as authRequest from './helpers/authorization-request'
|
35
|
-
import * as deviceAccount from './helpers/device-account'
|
36
35
|
import * as device from './helpers/device'
|
36
|
+
import * as deviceAccount from './helpers/device-account'
|
37
37
|
import * as emailToken from './helpers/email-token'
|
38
38
|
import * as invite from './helpers/invite'
|
39
39
|
import * as password from './helpers/password'
|
@@ -42,8 +42,7 @@ import * as scrypt from './helpers/scrypt'
|
|
42
42
|
import * as token from './helpers/token'
|
43
43
|
import * as usedRefreshToken from './helpers/used-refresh-token'
|
44
44
|
|
45
|
-
export { AccountStatus } from './helpers/account'
|
46
|
-
export { formatAccountStatus } from './helpers/account'
|
45
|
+
export { AccountStatus, formatAccountStatus } from './helpers/account'
|
47
46
|
|
48
47
|
export class AccountManager
|
49
48
|
implements AccountStore, RequestStore, DeviceStore, TokenStore
|
@@ -487,7 +486,7 @@ export class AccountManager
|
|
487
486
|
// AccountStore
|
488
487
|
|
489
488
|
async authenticateAccount(
|
490
|
-
{ username: identifier, password, remember = false }:
|
489
|
+
{ username: identifier, password, remember = false }: SignInCredentials,
|
491
490
|
deviceId: DeviceId,
|
492
491
|
): Promise<AccountInfo | null> {
|
493
492
|
try {
|
package/src/auth-verifier.ts
CHANGED
@@ -605,17 +605,26 @@ enum AuthType {
|
|
605
605
|
export const parseAuthorizationHeader = (
|
606
606
|
authorization?: string,
|
607
607
|
): [type: null] | [type: AuthType, token: string] => {
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
608
|
+
if (!authorization) return [null]
|
609
|
+
|
610
|
+
const result = authorization.split(' ')
|
611
|
+
if (result.length !== 2) {
|
612
|
+
throw new InvalidRequestError(
|
613
|
+
'Malformed authorization header',
|
614
|
+
'InvalidToken',
|
615
|
+
)
|
616
616
|
}
|
617
617
|
|
618
|
-
|
618
|
+
// authorization type is case-insensitive
|
619
|
+
const authType = result[0].toUpperCase()
|
620
|
+
|
621
|
+
const type = Object.hasOwn(AuthType, authType) ? AuthType[authType] : null
|
622
|
+
if (type) return [type, result[1]]
|
623
|
+
|
624
|
+
throw new InvalidRequestError(
|
625
|
+
`Unsupported authorization type: ${result[0]}`,
|
626
|
+
'InvalidToken',
|
627
|
+
)
|
619
628
|
}
|
620
629
|
|
621
630
|
const isAccessToken = (req: express.Request): boolean => {
|
package/src/config/config.ts
CHANGED
@@ -251,8 +251,9 @@ export const envToCfg = (env: ServerEnvironment): ServerConfig => {
|
|
251
251
|
name: env.serviceName ?? 'Personal PDS',
|
252
252
|
logo: env.logoUrl,
|
253
253
|
colors: {
|
254
|
-
|
254
|
+
brand: env.brandColor,
|
255
255
|
error: env.errorColor,
|
256
|
+
warning: env.warningColor,
|
256
257
|
},
|
257
258
|
links: [
|
258
259
|
{
|
package/src/config/env.ts
CHANGED
@@ -19,8 +19,9 @@ export const readEnv = (): ServerEnvironment => {
|
|
19
19
|
devMode: envBool('PDS_DEV_MODE'),
|
20
20
|
|
21
21
|
// branding
|
22
|
-
|
22
|
+
brandColor: envStr('PDS_PRIMARY_COLOR'),
|
23
23
|
errorColor: envStr('PDS_ERROR_COLOR'),
|
24
|
+
warningColor: envStr('PDS_WARNING_COLOR'),
|
24
25
|
|
25
26
|
// database
|
26
27
|
dataDirectory: envStr('PDS_DATA_DIRECTORY'),
|
@@ -139,8 +140,9 @@ export type ServerEnvironment = {
|
|
139
140
|
devMode?: boolean
|
140
141
|
|
141
142
|
// branding
|
142
|
-
|
143
|
+
brandColor?: string
|
143
144
|
errorColor?: string
|
145
|
+
warningColor?: string
|
144
146
|
|
145
147
|
// database
|
146
148
|
dataDirectory?: string
|
package/src/lexicon/index.ts
CHANGED
@@ -130,6 +130,7 @@ import * as AppBskyGraphUnmuteThread from './types/app/bsky/graph/unmuteThread'
|
|
130
130
|
import * as AppBskyLabelerGetServices from './types/app/bsky/labeler/getServices'
|
131
131
|
import * as AppBskyNotificationGetUnreadCount from './types/app/bsky/notification/getUnreadCount'
|
132
132
|
import * as AppBskyNotificationListNotifications from './types/app/bsky/notification/listNotifications'
|
133
|
+
import * as AppBskyNotificationPutPreferences from './types/app/bsky/notification/putPreferences'
|
133
134
|
import * as AppBskyNotificationRegisterPush from './types/app/bsky/notification/registerPush'
|
134
135
|
import * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'
|
135
136
|
import * as AppBskyUnspeccedGetPopularFeedGenerators from './types/app/bsky/unspecced/getPopularFeedGenerators'
|
@@ -1745,6 +1746,17 @@ export class AppBskyNotificationNS {
|
|
1745
1746
|
return this._server.xrpc.method(nsid, cfg)
|
1746
1747
|
}
|
1747
1748
|
|
1749
|
+
putPreferences<AV extends AuthVerifier>(
|
1750
|
+
cfg: ConfigOf<
|
1751
|
+
AV,
|
1752
|
+
AppBskyNotificationPutPreferences.Handler<ExtractAuth<AV>>,
|
1753
|
+
AppBskyNotificationPutPreferences.HandlerReqCtx<ExtractAuth<AV>>
|
1754
|
+
>,
|
1755
|
+
) {
|
1756
|
+
const nsid = 'app.bsky.notification.putPreferences' // @ts-ignore
|
1757
|
+
return this._server.xrpc.method(nsid, cfg)
|
1758
|
+
}
|
1759
|
+
|
1748
1760
|
registerPush<AV extends AuthVerifier>(
|
1749
1761
|
cfg: ConfigOf<
|
1750
1762
|
AV,
|
package/src/lexicon/lexicons.ts
CHANGED
@@ -8341,6 +8341,9 @@ export const schemaDict = {
|
|
8341
8341
|
parameters: {
|
8342
8342
|
type: 'params',
|
8343
8343
|
properties: {
|
8344
|
+
priority: {
|
8345
|
+
type: 'boolean',
|
8346
|
+
},
|
8344
8347
|
seenAt: {
|
8345
8348
|
type: 'string',
|
8346
8349
|
format: 'datetime',
|
@@ -8379,6 +8382,9 @@ export const schemaDict = {
|
|
8379
8382
|
maximum: 100,
|
8380
8383
|
default: 50,
|
8381
8384
|
},
|
8385
|
+
priority: {
|
8386
|
+
type: 'boolean',
|
8387
|
+
},
|
8382
8388
|
cursor: {
|
8383
8389
|
type: 'string',
|
8384
8390
|
},
|
@@ -8404,6 +8410,9 @@ export const schemaDict = {
|
|
8404
8410
|
ref: 'lex:app.bsky.notification.listNotifications#notification',
|
8405
8411
|
},
|
8406
8412
|
},
|
8413
|
+
priority: {
|
8414
|
+
type: 'boolean',
|
8415
|
+
},
|
8407
8416
|
seenAt: {
|
8408
8417
|
type: 'string',
|
8409
8418
|
format: 'datetime',
|
@@ -8475,6 +8484,29 @@ export const schemaDict = {
|
|
8475
8484
|
},
|
8476
8485
|
},
|
8477
8486
|
},
|
8487
|
+
AppBskyNotificationPutPreferences: {
|
8488
|
+
lexicon: 1,
|
8489
|
+
id: 'app.bsky.notification.putPreferences',
|
8490
|
+
defs: {
|
8491
|
+
main: {
|
8492
|
+
type: 'procedure',
|
8493
|
+
description:
|
8494
|
+
'Set notification-related preferences for an account. Requires auth.',
|
8495
|
+
input: {
|
8496
|
+
encoding: 'application/json',
|
8497
|
+
schema: {
|
8498
|
+
type: 'object',
|
8499
|
+
required: ['priority'],
|
8500
|
+
properties: {
|
8501
|
+
priority: {
|
8502
|
+
type: 'boolean',
|
8503
|
+
},
|
8504
|
+
},
|
8505
|
+
},
|
8506
|
+
},
|
8507
|
+
},
|
8508
|
+
},
|
8509
|
+
},
|
8478
8510
|
AppBskyNotificationRegisterPush: {
|
8479
8511
|
lexicon: 1,
|
8480
8512
|
id: 'app.bsky.notification.registerPush',
|
@@ -11769,6 +11801,7 @@ export const ids = {
|
|
11769
11801
|
AppBskyNotificationGetUnreadCount: 'app.bsky.notification.getUnreadCount',
|
11770
11802
|
AppBskyNotificationListNotifications:
|
11771
11803
|
'app.bsky.notification.listNotifications',
|
11804
|
+
AppBskyNotificationPutPreferences: 'app.bsky.notification.putPreferences',
|
11772
11805
|
AppBskyNotificationRegisterPush: 'app.bsky.notification.registerPush',
|
11773
11806
|
AppBskyNotificationUpdateSeen: 'app.bsky.notification.updateSeen',
|
11774
11807
|
AppBskyRichtextFacet: 'app.bsky.richtext.facet',
|
@@ -12,6 +12,7 @@ import * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'
|
|
12
12
|
|
13
13
|
export interface QueryParams {
|
14
14
|
limit: number
|
15
|
+
priority?: boolean
|
15
16
|
cursor?: string
|
16
17
|
seenAt?: string
|
17
18
|
}
|
@@ -21,6 +22,7 @@ export type InputSchema = undefined
|
|
21
22
|
export interface OutputSchema {
|
22
23
|
cursor?: string
|
23
24
|
notifications: Notification[]
|
25
|
+
priority?: boolean
|
24
26
|
seenAt?: string
|
25
27
|
[k: string]: unknown
|
26
28
|
}
|
@@ -0,0 +1,38 @@
|
|
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 interface InputSchema {
|
14
|
+
priority: boolean
|
15
|
+
[k: string]: unknown
|
16
|
+
}
|
17
|
+
|
18
|
+
export interface HandlerInput {
|
19
|
+
encoding: 'application/json'
|
20
|
+
body: InputSchema
|
21
|
+
}
|
22
|
+
|
23
|
+
export interface HandlerError {
|
24
|
+
status: number
|
25
|
+
message?: string
|
26
|
+
}
|
27
|
+
|
28
|
+
export type HandlerOutput = HandlerError | void
|
29
|
+
export type HandlerReqCtx<HA extends HandlerAuth = never> = {
|
30
|
+
auth: HA
|
31
|
+
params: QueryParams
|
32
|
+
input: HandlerInput
|
33
|
+
req: express.Request
|
34
|
+
res: express.Response
|
35
|
+
}
|
36
|
+
export type Handler<HA extends HandlerAuth = never> = (
|
37
|
+
ctx: HandlerReqCtx<HA>,
|
38
|
+
) => Promise<HandlerOutput> | HandlerOutput
|