@atproto/pds 0.3.0 → 0.3.2
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 +25 -0
- package/LICENSE.txt +7 -0
- package/README.md +6 -1
- package/dist/index.js +50 -9
- package/dist/index.js.map +2 -2
- package/dist/lexicon/lexicons.d.ts +17 -0
- package/dist/lexicon/types/com/atproto/server/createAccount.d.ts +3 -3
- package/dist/lexicon/types/com/atproto/server/getSession.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/server/reserveSigningKey.d.ts +8 -2
- package/package.json +15 -15
- package/src/api/com/atproto/server/createAccount.ts +5 -1
- package/src/api/com/atproto/server/getSession.ts +6 -1
- package/src/lexicon/lexicons.ts +19 -2
- package/src/lexicon/types/com/atproto/server/createAccount.ts +3 -3
- package/src/lexicon/types/com/atproto/server/getSession.ts +1 -0
- package/src/lexicon/types/com/atproto/server/reserveSigningKey.ts +9 -2
- package/LICENSE +0 -21
@@ -1670,6 +1670,8 @@ export declare const schemaDict: {
|
|
1670
1670
|
};
|
1671
1671
|
reason: {
|
1672
1672
|
type: string;
|
1673
|
+
maxGraphemes: number;
|
1674
|
+
maxLength: number;
|
1673
1675
|
};
|
1674
1676
|
subject: {
|
1675
1677
|
type: string;
|
@@ -2756,6 +2758,9 @@ export declare const schemaDict: {
|
|
2756
2758
|
emailConfirmed: {
|
2757
2759
|
type: string;
|
2758
2760
|
};
|
2761
|
+
didDoc: {
|
2762
|
+
type: string;
|
2763
|
+
};
|
2759
2764
|
};
|
2760
2765
|
};
|
2761
2766
|
};
|
@@ -2914,6 +2919,18 @@ export declare const schemaDict: {
|
|
2914
2919
|
main: {
|
2915
2920
|
type: string;
|
2916
2921
|
description: string;
|
2922
|
+
input: {
|
2923
|
+
encoding: string;
|
2924
|
+
schema: {
|
2925
|
+
type: string;
|
2926
|
+
properties: {
|
2927
|
+
did: {
|
2928
|
+
type: string;
|
2929
|
+
description: string;
|
2930
|
+
};
|
2931
|
+
};
|
2932
|
+
};
|
2933
|
+
};
|
2917
2934
|
output: {
|
2918
2935
|
encoding: string;
|
2919
2936
|
schema: {
|
@@ -3,13 +3,13 @@ import { HandlerAuth } from '@atproto/xrpc-server';
|
|
3
3
|
export interface QueryParams {
|
4
4
|
}
|
5
5
|
export interface InputSchema {
|
6
|
-
email
|
6
|
+
email?: string;
|
7
7
|
handle: string;
|
8
8
|
did?: string;
|
9
9
|
inviteCode?: string;
|
10
|
-
password
|
10
|
+
password?: string;
|
11
11
|
recoveryKey?: string;
|
12
|
-
plcOp?:
|
12
|
+
plcOp?: {};
|
13
13
|
[k: string]: unknown;
|
14
14
|
}
|
15
15
|
export interface OutputSchema {
|
@@ -2,12 +2,18 @@ import express from 'express';
|
|
2
2
|
import { HandlerAuth } from '@atproto/xrpc-server';
|
3
3
|
export interface QueryParams {
|
4
4
|
}
|
5
|
-
export
|
5
|
+
export interface InputSchema {
|
6
|
+
did?: string;
|
7
|
+
[k: string]: unknown;
|
8
|
+
}
|
6
9
|
export interface OutputSchema {
|
7
10
|
signingKey: string;
|
8
11
|
[k: string]: unknown;
|
9
12
|
}
|
10
|
-
export
|
13
|
+
export interface HandlerInput {
|
14
|
+
encoding: 'application/json';
|
15
|
+
body: InputSchema;
|
16
|
+
}
|
11
17
|
export interface HandlerSuccess {
|
12
18
|
encoding: 'application/json';
|
13
19
|
body: OutputSchema;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@atproto/pds",
|
3
|
-
"version": "0.3.
|
3
|
+
"version": "0.3.2",
|
4
4
|
"license": "MIT",
|
5
5
|
"description": "Reference implementation of atproto Personal Data Server (PDS)",
|
6
6
|
"keywords": [
|
@@ -43,16 +43,16 @@
|
|
43
43
|
"typed-emitter": "^2.1.0",
|
44
44
|
"uint8arrays": "3.0.0",
|
45
45
|
"zod": "^3.21.4",
|
46
|
-
"@atproto/api": "^0.6.
|
47
|
-
"@atproto/aws": "^0.1.
|
48
|
-
"@atproto/common": "^0.3.
|
49
|
-
"@atproto/crypto": "^0.2.
|
50
|
-
"@atproto/identity": "^0.3.
|
51
|
-
"@atproto/lexicon": "^0.
|
52
|
-
"@atproto/repo": "^0.3.
|
53
|
-
"@atproto/syntax": "^0.1.
|
54
|
-
"@atproto/xrpc": "^0.
|
55
|
-
"@atproto/xrpc-server": "^0.
|
46
|
+
"@atproto/api": "^0.6.23",
|
47
|
+
"@atproto/aws": "^0.1.4",
|
48
|
+
"@atproto/common": "^0.3.3",
|
49
|
+
"@atproto/crypto": "^0.2.3",
|
50
|
+
"@atproto/identity": "^0.3.1",
|
51
|
+
"@atproto/lexicon": "^0.3.0",
|
52
|
+
"@atproto/repo": "^0.3.4",
|
53
|
+
"@atproto/syntax": "^0.1.4",
|
54
|
+
"@atproto/xrpc": "^0.4.0",
|
55
|
+
"@atproto/xrpc-server": "^0.4.0"
|
56
56
|
},
|
57
57
|
"devDependencies": {
|
58
58
|
"@did-plc/server": "^0.0.1",
|
@@ -67,10 +67,10 @@
|
|
67
67
|
"@types/sharp": "^0.31.0",
|
68
68
|
"axios": "^0.27.2",
|
69
69
|
"ws": "^8.12.0",
|
70
|
-
"@atproto/api": "^0.6.
|
71
|
-
"@atproto/bsky": "^0.0.
|
72
|
-
"@atproto/dev-env": "^0.2.
|
73
|
-
"@atproto/lex-cli": "^0.2.
|
70
|
+
"@atproto/api": "^0.6.23",
|
71
|
+
"@atproto/bsky": "^0.0.14",
|
72
|
+
"@atproto/dev-env": "^0.2.14",
|
73
|
+
"@atproto/lex-cli": "^0.2.4"
|
74
74
|
},
|
75
75
|
"scripts": {
|
76
76
|
"codegen": "lex gen-server ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/*",
|
@@ -21,7 +21,11 @@ export default function (server: Server, ctx: AppContext) {
|
|
21
21
|
},
|
22
22
|
handler: async ({ input, req }) => {
|
23
23
|
const { email, password, inviteCode } = input.body
|
24
|
-
if (
|
24
|
+
if (!email) {
|
25
|
+
throw new InvalidRequestError('Missing input: "email"')
|
26
|
+
} else if (!password) {
|
27
|
+
throw new InvalidRequestError('Missing input: "password"')
|
28
|
+
} else if (input.body.plcOp) {
|
25
29
|
throw new InvalidRequestError('Unsupported input: "plcOp"')
|
26
30
|
}
|
27
31
|
|
@@ -1,13 +1,17 @@
|
|
1
1
|
import { InvalidRequestError } from '@atproto/xrpc-server'
|
2
2
|
import AppContext from '../../../../context'
|
3
3
|
import { Server } from '../../../../lexicon'
|
4
|
+
import { didDocForSession } from './util'
|
4
5
|
|
5
6
|
export default function (server: Server, ctx: AppContext) {
|
6
7
|
server.com.atproto.server.getSession({
|
7
8
|
auth: ctx.authVerifier.access,
|
8
9
|
handler: async ({ auth }) => {
|
9
10
|
const did = auth.credentials.did
|
10
|
-
const user = await
|
11
|
+
const [user, didDoc] = await Promise.all([
|
12
|
+
ctx.services.account(ctx.db).getAccount(did),
|
13
|
+
didDocForSession(ctx, did),
|
14
|
+
])
|
11
15
|
if (!user) {
|
12
16
|
throw new InvalidRequestError(
|
13
17
|
`Could not find user info for account: ${did}`,
|
@@ -18,6 +22,7 @@ export default function (server: Server, ctx: AppContext) {
|
|
18
22
|
body: {
|
19
23
|
handle: user.handle,
|
20
24
|
did: user.did,
|
25
|
+
didDoc,
|
21
26
|
email: user.email,
|
22
27
|
emailConfirmed: !!user.emailConfirmedAt,
|
23
28
|
},
|
package/src/lexicon/lexicons.ts
CHANGED
@@ -1826,6 +1826,8 @@ export const schemaDict = {
|
|
1826
1826
|
},
|
1827
1827
|
reason: {
|
1828
1828
|
type: 'string',
|
1829
|
+
maxGraphemes: 2000,
|
1830
|
+
maxLength: 20000,
|
1829
1831
|
},
|
1830
1832
|
subject: {
|
1831
1833
|
type: 'union',
|
@@ -2487,7 +2489,7 @@ export const schemaDict = {
|
|
2487
2489
|
encoding: 'application/json',
|
2488
2490
|
schema: {
|
2489
2491
|
type: 'object',
|
2490
|
-
required: ['handle'
|
2492
|
+
required: ['handle'],
|
2491
2493
|
properties: {
|
2492
2494
|
email: {
|
2493
2495
|
type: 'string',
|
@@ -2510,7 +2512,7 @@ export const schemaDict = {
|
|
2510
2512
|
type: 'string',
|
2511
2513
|
},
|
2512
2514
|
plcOp: {
|
2513
|
-
type: '
|
2515
|
+
type: 'unknown',
|
2514
2516
|
},
|
2515
2517
|
},
|
2516
2518
|
},
|
@@ -3005,6 +3007,9 @@ export const schemaDict = {
|
|
3005
3007
|
emailConfirmed: {
|
3006
3008
|
type: 'boolean',
|
3007
3009
|
},
|
3010
|
+
didDoc: {
|
3011
|
+
type: 'unknown',
|
3012
|
+
},
|
3008
3013
|
},
|
3009
3014
|
},
|
3010
3015
|
},
|
@@ -3168,6 +3173,18 @@ export const schemaDict = {
|
|
3168
3173
|
main: {
|
3169
3174
|
type: 'procedure',
|
3170
3175
|
description: 'Reserve a repo signing key for account creation.',
|
3176
|
+
input: {
|
3177
|
+
encoding: 'application/json',
|
3178
|
+
schema: {
|
3179
|
+
type: 'object',
|
3180
|
+
properties: {
|
3181
|
+
did: {
|
3182
|
+
type: 'string',
|
3183
|
+
description: 'The did to reserve a new did:key for',
|
3184
|
+
},
|
3185
|
+
},
|
3186
|
+
},
|
3187
|
+
},
|
3171
3188
|
output: {
|
3172
3189
|
encoding: 'application/json',
|
3173
3190
|
schema: {
|
@@ -11,13 +11,13 @@ import { HandlerAuth } from '@atproto/xrpc-server'
|
|
11
11
|
export interface QueryParams {}
|
12
12
|
|
13
13
|
export interface InputSchema {
|
14
|
-
email
|
14
|
+
email?: string
|
15
15
|
handle: string
|
16
16
|
did?: string
|
17
17
|
inviteCode?: string
|
18
|
-
password
|
18
|
+
password?: string
|
19
19
|
recoveryKey?: string
|
20
|
-
plcOp?:
|
20
|
+
plcOp?: {}
|
21
21
|
[k: string]: unknown
|
22
22
|
}
|
23
23
|
|
@@ -10,7 +10,11 @@ import { HandlerAuth } from '@atproto/xrpc-server'
|
|
10
10
|
|
11
11
|
export interface QueryParams {}
|
12
12
|
|
13
|
-
export
|
13
|
+
export interface InputSchema {
|
14
|
+
/** The did to reserve a new did:key for */
|
15
|
+
did?: string
|
16
|
+
[k: string]: unknown
|
17
|
+
}
|
14
18
|
|
15
19
|
export interface OutputSchema {
|
16
20
|
/** Public signing key in the form of a did:key. */
|
@@ -18,7 +22,10 @@ export interface OutputSchema {
|
|
18
22
|
[k: string]: unknown
|
19
23
|
}
|
20
24
|
|
21
|
-
export
|
25
|
+
export interface HandlerInput {
|
26
|
+
encoding: 'application/json'
|
27
|
+
body: InputSchema
|
28
|
+
}
|
22
29
|
|
23
30
|
export interface HandlerSuccess {
|
24
31
|
encoding: 'application/json'
|
package/LICENSE
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) 2022-2023 Bluesky PBC
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|