@atproto/pds 0.4.123 → 0.4.125
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 +18 -0
- package/dist/account-manager/account-manager.js +17 -7
- package/dist/account-manager/account-manager.js.map +1 -1
- package/dist/account-manager/db/index.d.ts.map +1 -1
- package/dist/account-manager/db/migrations/005-oauth-account-management.d.ts +20 -0
- package/dist/account-manager/db/migrations/005-oauth-account-management.d.ts.map +1 -0
- package/dist/account-manager/db/migrations/005-oauth-account-management.js +72 -0
- package/dist/account-manager/db/migrations/005-oauth-account-management.js.map +1 -0
- package/dist/account-manager/db/migrations/index.d.ts +2 -0
- package/dist/account-manager/db/migrations/index.d.ts.map +1 -1
- package/dist/account-manager/db/migrations/index.js +19 -7
- package/dist/account-manager/db/migrations/index.js.map +1 -1
- package/dist/account-manager/db/schema/account-device.d.ts +13 -0
- package/dist/account-manager/db/schema/account-device.d.ts.map +1 -0
- package/dist/account-manager/db/schema/{device-account.js → account-device.js} +2 -2
- package/dist/account-manager/db/schema/account-device.js.map +1 -0
- package/dist/account-manager/db/schema/authorization-request.d.ts +4 -4
- package/dist/account-manager/db/schema/authorization-request.d.ts.map +1 -1
- package/dist/account-manager/db/schema/authorization-request.js.map +1 -1
- package/dist/account-manager/db/schema/authorized-client.d.ts +16 -0
- package/dist/account-manager/db/schema/authorized-client.d.ts.map +1 -0
- package/dist/account-manager/db/schema/authorized-client.js +5 -0
- package/dist/account-manager/db/schema/authorized-client.js.map +1 -0
- package/dist/account-manager/db/schema/index.d.ts +4 -3
- package/dist/account-manager/db/schema/index.d.ts.map +1 -1
- package/dist/account-manager/db/schema/token.d.ts +5 -5
- package/dist/account-manager/db/schema/token.d.ts.map +1 -1
- package/dist/account-manager/db/schema/token.js.map +1 -1
- package/dist/account-manager/helpers/account-device.d.ts +204 -0
- package/dist/account-manager/helpers/account-device.d.ts.map +1 -0
- package/dist/account-manager/helpers/account-device.js +54 -0
- package/dist/account-manager/helpers/account-device.js.map +1 -0
- package/dist/account-manager/helpers/account.d.ts +2 -1
- package/dist/account-manager/helpers/account.d.ts.map +1 -1
- package/dist/account-manager/helpers/auth.d.ts.map +1 -1
- package/dist/account-manager/helpers/auth.js +17 -7
- package/dist/account-manager/helpers/auth.js.map +1 -1
- package/dist/account-manager/helpers/authorization-request.d.ts.map +1 -1
- package/dist/account-manager/helpers/authorization-request.js +4 -4
- package/dist/account-manager/helpers/authorization-request.js.map +1 -1
- package/dist/account-manager/helpers/authorized-client.d.ts +6 -0
- package/dist/account-manager/helpers/authorized-client.d.ts.map +1 -0
- package/dist/account-manager/helpers/authorized-client.js +47 -0
- package/dist/account-manager/helpers/authorized-client.js.map +1 -0
- package/dist/account-manager/helpers/device.d.ts +1 -1
- package/dist/account-manager/helpers/device.d.ts.map +1 -1
- package/dist/account-manager/helpers/device.js.map +1 -1
- package/dist/account-manager/helpers/email-token.d.ts.map +1 -1
- package/dist/account-manager/helpers/invite.d.ts.map +1 -1
- package/dist/account-manager/helpers/password.d.ts.map +1 -1
- package/dist/account-manager/helpers/password.js +17 -7
- package/dist/account-manager/helpers/password.js.map +1 -1
- package/dist/account-manager/helpers/repo.d.ts.map +1 -1
- package/dist/account-manager/helpers/scrypt.d.ts.map +1 -1
- package/dist/account-manager/helpers/scrypt.js +17 -7
- package/dist/account-manager/helpers/scrypt.js.map +1 -1
- package/dist/account-manager/helpers/token.d.ts +566 -59
- package/dist/account-manager/helpers/token.d.ts.map +1 -1
- package/dist/account-manager/helpers/token.js +17 -32
- package/dist/account-manager/helpers/token.js.map +1 -1
- package/dist/account-manager/helpers/used-refresh-token.d.ts.map +1 -1
- package/dist/account-manager/oauth-store.d.ts +17 -7
- package/dist/account-manager/oauth-store.d.ts.map +1 -1
- package/dist/account-manager/oauth-store.js +138 -86
- package/dist/account-manager/oauth-store.js.map +1 -1
- package/dist/actor-store/actor-store.js +17 -7
- package/dist/actor-store/actor-store.js.map +1 -1
- package/dist/actor-store/blob/transactor.js +17 -7
- package/dist/actor-store/blob/transactor.js.map +1 -1
- package/dist/actor-store/db/index.d.ts.map +1 -1
- package/dist/actor-store/db/migrations/index.js +17 -7
- package/dist/actor-store/db/migrations/index.js.map +1 -1
- package/dist/actor-store/migrate.d.ts.map +1 -1
- package/dist/actor-store/preference/reader.d.ts.map +1 -1
- package/dist/actor-store/preference/util.d.ts.map +1 -1
- package/dist/actor-store/record/reader.d.ts.map +1 -1
- package/dist/actor-store/record/reader.js +17 -7
- package/dist/actor-store/record/reader.js.map +1 -1
- package/dist/actor-store/repo/sql-repo-reader.d.ts +1 -1
- package/dist/api/app/bsky/util/resolver.d.ts.map +1 -1
- package/dist/api/com/atproto/identity/signPlcOperation.js +17 -7
- package/dist/api/com/atproto/identity/signPlcOperation.js.map +1 -1
- package/dist/api/com/atproto/identity/submitPlcOperation.js +17 -7
- package/dist/api/com/atproto/identity/submitPlcOperation.js.map +1 -1
- package/dist/api/com/atproto/repo/describeRepo.js +17 -7
- package/dist/api/com/atproto/repo/describeRepo.js.map +1 -1
- package/dist/api/com/atproto/repo/importRepo.d.ts.map +1 -1
- package/dist/api/com/atproto/server/createAccount.js +17 -7
- package/dist/api/com/atproto/server/createAccount.js.map +1 -1
- package/dist/api/com/atproto/server/util.d.ts.map +1 -1
- package/dist/api/com/atproto/server/util.js +17 -7
- package/dist/api/com/atproto/server/util.js.map +1 -1
- package/dist/api/com/atproto/sync/getRecord.js +17 -7
- package/dist/api/com/atproto/sync/getRecord.js.map +1 -1
- package/dist/api/com/atproto/sync/getRepo.d.ts.map +1 -1
- package/dist/api/com/atproto/sync/util.d.ts.map +1 -1
- package/dist/api/proxy.d.ts.map +1 -1
- package/dist/auth-routes.d.ts.map +1 -1
- package/dist/auth-routes.js +2 -3
- package/dist/auth-routes.js.map +1 -1
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +19 -13
- package/dist/auth-verifier.js.map +1 -1
- package/dist/basic-routes.d.ts.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +1 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +1 -1
- package/dist/config/env.js.map +1 -1
- package/dist/config/secrets.d.ts.map +1 -1
- package/dist/context.js +18 -8
- package/dist/context.js.map +1 -1
- package/dist/db/cast.d.ts +17 -13
- package/dist/db/cast.d.ts.map +1 -1
- package/dist/db/cast.js +13 -52
- package/dist/db/cast.js.map +1 -1
- package/dist/db/pagination.d.ts.map +1 -1
- package/dist/db/util.d.ts.map +1 -1
- package/dist/did-cache/db/index.d.ts.map +1 -1
- package/dist/disk-blobstore.d.ts.map +1 -1
- package/dist/handle/explicit-slurs.d.ts.map +1 -1
- package/dist/handle/index.d.ts.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +72 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +37 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/verification.d.ts +19 -0
- package/dist/lexicon/types/app/bsky/graph/verification.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/verification.js +16 -0
- package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -0
- package/dist/lexicon/util.d.ts.map +1 -1
- package/dist/mailer/index.js +17 -7
- package/dist/mailer/index.js.map +1 -1
- package/dist/pipethrough.d.ts.map +1 -1
- package/dist/read-after-write/util.d.ts.map +1 -1
- package/dist/redis.d.ts.map +1 -1
- package/dist/repo/prepare.d.ts.map +1 -1
- package/dist/repo/prepare.js +17 -7
- package/dist/repo/prepare.js.map +1 -1
- package/dist/scripts/publish-identity.d.ts.map +1 -1
- package/dist/scripts/rebuild-repo.d.ts.map +1 -1
- package/dist/scripts/rotate-keys.d.ts.map +1 -1
- package/dist/scripts/sequencer-recovery/index.d.ts.map +1 -1
- package/dist/scripts/sequencer-recovery/recoverer.d.ts.map +1 -1
- package/dist/scripts/sequencer-recovery/recovery-db.d.ts.map +1 -1
- package/dist/scripts/sequencer-recovery/repair-repos.d.ts.map +1 -1
- package/dist/scripts/util.d.ts.map +1 -1
- package/dist/sequencer/db/index.d.ts.map +1 -1
- package/dist/sequencer/db/migrations/index.js +17 -7
- package/dist/sequencer/db/migrations/index.js.map +1 -1
- package/dist/sequencer/events.d.ts +6 -6
- package/dist/sequencer/events.d.ts.map +1 -1
- package/dist/sequencer/sequencer.d.ts.map +1 -1
- package/dist/util/debug.d.ts.map +1 -1
- package/dist/util/params.d.ts.map +1 -1
- package/dist/well-known.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/account-manager/db/migrations/005-oauth-account-management.ts +112 -0
- package/src/account-manager/db/migrations/index.ts +2 -0
- package/src/account-manager/db/schema/account-device.ts +14 -0
- package/src/account-manager/db/schema/authorization-request.ts +5 -3
- package/src/account-manager/db/schema/authorized-client.ts +19 -0
- package/src/account-manager/db/schema/index.ts +5 -3
- package/src/account-manager/db/schema/token.ts +7 -4
- package/src/account-manager/helpers/account-device.ts +66 -0
- package/src/account-manager/helpers/authorization-request.ts +5 -5
- package/src/account-manager/helpers/authorized-client.ts +69 -0
- package/src/account-manager/helpers/device.ts +3 -1
- package/src/account-manager/helpers/token.ts +19 -57
- package/src/account-manager/oauth-store.ts +182 -103
- package/src/auth-routes.ts +11 -7
- package/src/auth-verifier.ts +2 -7
- package/src/config/config.ts +1 -1
- package/src/config/env.ts +2 -2
- package/src/context.ts +2 -2
- package/src/db/cast.ts +43 -50
- package/src/lexicon/lexicons.ts +40 -0
- package/src/lexicon/types/app/bsky/graph/verification.ts +38 -0
- package/tests/db.test.ts +2 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.tests.tsbuildinfo +1 -1
- package/dist/account-manager/db/schema/device-account.d.ts +0 -14
- package/dist/account-manager/db/schema/device-account.d.ts.map +0 -1
- package/dist/account-manager/db/schema/device-account.js.map +0 -1
- package/dist/account-manager/helpers/device-account.d.ts +0 -108
- package/dist/account-manager/helpers/device-account.d.ts.map +0 -1
- package/dist/account-manager/helpers/device-account.js +0 -83
- package/dist/account-manager/helpers/device-account.js.map +0 -1
- package/src/account-manager/db/schema/device-account.ts +0 -15
- package/src/account-manager/helpers/device-account.ts +0 -135
@@ -1,135 +0,0 @@
|
|
1
|
-
import { Insertable, Selectable } from 'kysely'
|
2
|
-
import {
|
3
|
-
Account,
|
4
|
-
DeviceAccountInfo,
|
5
|
-
DeviceId,
|
6
|
-
OAuthClientId,
|
7
|
-
} from '@atproto/oauth-provider'
|
8
|
-
import { fromDateISO, fromJsonArray, toDateISO, toJsonArray } from '../../db'
|
9
|
-
import { AccountDb } from '../db'
|
10
|
-
import { DeviceAccount } from '../db/schema/device-account'
|
11
|
-
import { ActorAccount, selectAccountQB } from './account'
|
12
|
-
|
13
|
-
export type SelectableDeviceAccount = Pick<
|
14
|
-
Selectable<DeviceAccount>,
|
15
|
-
'authenticatedAt' | 'authorizedClients' | 'remember'
|
16
|
-
>
|
17
|
-
|
18
|
-
const selectAccountInfoQB = (db: AccountDb, deviceId: DeviceId) =>
|
19
|
-
selectAccountQB(db, { includeDeactivated: true })
|
20
|
-
// note: query planner should use "device_account_pk" index
|
21
|
-
.innerJoin('device_account', 'device_account.did', 'actor.did')
|
22
|
-
.innerJoin('device', 'device.id', 'device_account.deviceId')
|
23
|
-
.where('device.id', '=', deviceId)
|
24
|
-
.select([
|
25
|
-
'device_account.authenticatedAt',
|
26
|
-
'device_account.remember',
|
27
|
-
'device_account.authorizedClients',
|
28
|
-
])
|
29
|
-
|
30
|
-
export type InsertableField = {
|
31
|
-
authenticatedAt: Date
|
32
|
-
authorizedClients: OAuthClientId[]
|
33
|
-
remember: boolean
|
34
|
-
}
|
35
|
-
|
36
|
-
function toInsertable<V extends Partial<InsertableField>>(
|
37
|
-
values: V,
|
38
|
-
): Pick<Insertable<DeviceAccount>, keyof V & keyof Insertable<DeviceAccount>>
|
39
|
-
function toInsertable(
|
40
|
-
values: Partial<InsertableField>,
|
41
|
-
): Partial<Insertable<DeviceAccount>> {
|
42
|
-
const row: Partial<Insertable<DeviceAccount>> = {}
|
43
|
-
if (values.authenticatedAt) {
|
44
|
-
row.authenticatedAt = toDateISO(values.authenticatedAt)
|
45
|
-
}
|
46
|
-
if (values.remember !== undefined) {
|
47
|
-
row.remember = values.remember === true ? 1 : 0
|
48
|
-
}
|
49
|
-
if (values.authorizedClients) {
|
50
|
-
row.authorizedClients = toJsonArray(values.authorizedClients)
|
51
|
-
}
|
52
|
-
return row
|
53
|
-
}
|
54
|
-
|
55
|
-
export function toDeviceAccountInfo(
|
56
|
-
row: SelectableDeviceAccount,
|
57
|
-
): DeviceAccountInfo {
|
58
|
-
return {
|
59
|
-
remembered: row.remember === 1,
|
60
|
-
authenticatedAt: fromDateISO(row.authenticatedAt),
|
61
|
-
authorizedClients: fromJsonArray<OAuthClientId>(row.authorizedClients),
|
62
|
-
}
|
63
|
-
}
|
64
|
-
|
65
|
-
export function toAccount(
|
66
|
-
row: Selectable<ActorAccount>,
|
67
|
-
audience: string,
|
68
|
-
): Account {
|
69
|
-
return {
|
70
|
-
sub: row.did,
|
71
|
-
aud: audience,
|
72
|
-
email: row.email || undefined,
|
73
|
-
email_verified: row.email ? row.emailConfirmedAt != null : undefined,
|
74
|
-
preferred_username: row.handle || undefined,
|
75
|
-
}
|
76
|
-
}
|
77
|
-
|
78
|
-
export const readQB = (db: AccountDb, deviceId: DeviceId, did: string) =>
|
79
|
-
db.db
|
80
|
-
.selectFrom('device_account')
|
81
|
-
.where('did', '=', did)
|
82
|
-
.where('deviceId', '=', deviceId)
|
83
|
-
.select(['remember', 'authorizedClients', 'authenticatedAt'])
|
84
|
-
|
85
|
-
export const updateQB = (
|
86
|
-
db: AccountDb,
|
87
|
-
deviceId: DeviceId,
|
88
|
-
did: string,
|
89
|
-
entry: {
|
90
|
-
authenticatedAt?: Date
|
91
|
-
authorizedClients?: OAuthClientId[]
|
92
|
-
remember?: boolean
|
93
|
-
},
|
94
|
-
) =>
|
95
|
-
db.db
|
96
|
-
.updateTable('device_account')
|
97
|
-
.set(toInsertable(entry))
|
98
|
-
.where('did', '=', did)
|
99
|
-
.where('deviceId', '=', deviceId)
|
100
|
-
|
101
|
-
export const createOrUpdateQB = (
|
102
|
-
db: AccountDb,
|
103
|
-
deviceId: DeviceId,
|
104
|
-
did: string,
|
105
|
-
remember: boolean,
|
106
|
-
) => {
|
107
|
-
const { authorizedClients, ...values } = toInsertable({
|
108
|
-
remember,
|
109
|
-
authenticatedAt: new Date(),
|
110
|
-
authorizedClients: [],
|
111
|
-
})
|
112
|
-
|
113
|
-
return db.db
|
114
|
-
.insertInto('device_account')
|
115
|
-
.values({ did, deviceId, authorizedClients, ...values })
|
116
|
-
.onConflict((oc) => oc.columns(['deviceId', 'did']).doUpdateSet(values))
|
117
|
-
.returning(['remember', 'authorizedClients', 'authenticatedAt'])
|
118
|
-
}
|
119
|
-
|
120
|
-
export const getAccountInfoQB = (
|
121
|
-
db: AccountDb,
|
122
|
-
deviceId: DeviceId,
|
123
|
-
did: string,
|
124
|
-
) => {
|
125
|
-
return selectAccountInfoQB(db, deviceId).where('actor.did', '=', did)
|
126
|
-
}
|
127
|
-
|
128
|
-
export const listRememberedQB = (db: AccountDb, deviceId: DeviceId) =>
|
129
|
-
selectAccountInfoQB(db, deviceId).where('device_account.remember', '=', 1)
|
130
|
-
|
131
|
-
export const removeQB = (db: AccountDb, deviceId: DeviceId, did: string) =>
|
132
|
-
db.db
|
133
|
-
.deleteFrom('device_account')
|
134
|
-
.where('deviceId', '=', deviceId)
|
135
|
-
.where('did', '=', did)
|