@atproto/bsky 0.0.56 → 0.0.57
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 +7 -0
- package/dist/data-plane/server/subscription/index.d.ts +1 -0
- package/dist/data-plane/server/subscription/index.d.ts.map +1 -1
- package/dist/data-plane/server/subscription/index.js +9 -0
- package/dist/data-plane/server/subscription/index.js.map +1 -1
- package/dist/data-plane/server/subscription/util.d.ts +1 -1
- package/dist/data-plane/server/subscription/util.d.ts.map +1 -1
- package/dist/data-plane/server/subscription/util.js +3 -0
- package/dist/data-plane/server/subscription/util.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 +105 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +185 -4
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlob.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/sync/getBlob.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlocks.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/sync/getBlocks.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getLatestCommit.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/sync/getLatestCommit.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRecord.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/sync/getRecord.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepo.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/sync/getRepo.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.d.ts +42 -0
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.d.ts.map +1 -0
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js +3 -0
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -0
- package/dist/lexicon/types/com/atproto/sync/listBlobs.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/sync/listBlobs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts +3 -0
- package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts +19 -4
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js +11 -1
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
- package/package.json +4 -4
- package/src/data-plane/server/subscription/index.ts +8 -0
- package/src/data-plane/server/subscription/util.ts +2 -0
- package/src/lexicon/index.ts +12 -0
- package/src/lexicon/lexicons.ts +193 -7
- package/src/lexicon/types/chat/bsky/convo/defs.ts +1 -1
- package/src/lexicon/types/com/atproto/sync/getBlob.ts +6 -0
- package/src/lexicon/types/com/atproto/sync/getBlocks.ts +6 -0
- package/src/lexicon/types/com/atproto/sync/getLatestCommit.ts +1 -1
- package/src/lexicon/types/com/atproto/sync/getRecord.ts +6 -0
- package/src/lexicon/types/com/atproto/sync/getRepo.ts +1 -0
- package/src/lexicon/types/com/atproto/sync/getRepoStatus.ts +52 -0
- package/src/lexicon/types/com/atproto/sync/listBlobs.ts +1 -0
- package/src/lexicon/types/com/atproto/sync/listRepos.ts +3 -0
- package/src/lexicon/types/com/atproto/sync/subscribeRepos.ts +30 -3
- package/tests/data-plane/subscription/repo.test.ts +1 -1
package/src/lexicon/lexicons.ts
CHANGED
|
@@ -2912,6 +2912,23 @@ export const schemaDict = {
|
|
|
2912
2912
|
output: {
|
|
2913
2913
|
encoding: '*/*',
|
|
2914
2914
|
},
|
|
2915
|
+
errors: [
|
|
2916
|
+
{
|
|
2917
|
+
name: 'BlobNotFound',
|
|
2918
|
+
},
|
|
2919
|
+
{
|
|
2920
|
+
name: 'RepoNotFound',
|
|
2921
|
+
},
|
|
2922
|
+
{
|
|
2923
|
+
name: 'RepoTakendown',
|
|
2924
|
+
},
|
|
2925
|
+
{
|
|
2926
|
+
name: 'RepoSuspended',
|
|
2927
|
+
},
|
|
2928
|
+
{
|
|
2929
|
+
name: 'RepoDeactivated',
|
|
2930
|
+
},
|
|
2931
|
+
],
|
|
2915
2932
|
},
|
|
2916
2933
|
},
|
|
2917
2934
|
},
|
|
@@ -2944,6 +2961,23 @@ export const schemaDict = {
|
|
|
2944
2961
|
output: {
|
|
2945
2962
|
encoding: 'application/vnd.ipld.car',
|
|
2946
2963
|
},
|
|
2964
|
+
errors: [
|
|
2965
|
+
{
|
|
2966
|
+
name: 'BlockNotFound',
|
|
2967
|
+
},
|
|
2968
|
+
{
|
|
2969
|
+
name: 'RepoNotFound',
|
|
2970
|
+
},
|
|
2971
|
+
{
|
|
2972
|
+
name: 'RepoTakendown',
|
|
2973
|
+
},
|
|
2974
|
+
{
|
|
2975
|
+
name: 'RepoSuspended',
|
|
2976
|
+
},
|
|
2977
|
+
{
|
|
2978
|
+
name: 'RepoDeactivated',
|
|
2979
|
+
},
|
|
2980
|
+
],
|
|
2947
2981
|
},
|
|
2948
2982
|
},
|
|
2949
2983
|
},
|
|
@@ -3050,6 +3084,15 @@ export const schemaDict = {
|
|
|
3050
3084
|
{
|
|
3051
3085
|
name: 'RepoNotFound',
|
|
3052
3086
|
},
|
|
3087
|
+
{
|
|
3088
|
+
name: 'RepoTakendown',
|
|
3089
|
+
},
|
|
3090
|
+
{
|
|
3091
|
+
name: 'RepoSuspended',
|
|
3092
|
+
},
|
|
3093
|
+
{
|
|
3094
|
+
name: 'RepoDeactivated',
|
|
3095
|
+
},
|
|
3053
3096
|
],
|
|
3054
3097
|
},
|
|
3055
3098
|
},
|
|
@@ -3090,6 +3133,23 @@ export const schemaDict = {
|
|
|
3090
3133
|
output: {
|
|
3091
3134
|
encoding: 'application/vnd.ipld.car',
|
|
3092
3135
|
},
|
|
3136
|
+
errors: [
|
|
3137
|
+
{
|
|
3138
|
+
name: 'RecordNotFound',
|
|
3139
|
+
},
|
|
3140
|
+
{
|
|
3141
|
+
name: 'RepoNotFound',
|
|
3142
|
+
},
|
|
3143
|
+
{
|
|
3144
|
+
name: 'RepoTakendown',
|
|
3145
|
+
},
|
|
3146
|
+
{
|
|
3147
|
+
name: 'RepoSuspended',
|
|
3148
|
+
},
|
|
3149
|
+
{
|
|
3150
|
+
name: 'RepoDeactivated',
|
|
3151
|
+
},
|
|
3152
|
+
],
|
|
3093
3153
|
},
|
|
3094
3154
|
},
|
|
3095
3155
|
},
|
|
@@ -3120,6 +3180,74 @@ export const schemaDict = {
|
|
|
3120
3180
|
output: {
|
|
3121
3181
|
encoding: 'application/vnd.ipld.car',
|
|
3122
3182
|
},
|
|
3183
|
+
errors: [
|
|
3184
|
+
{
|
|
3185
|
+
name: 'RepoNotFound',
|
|
3186
|
+
},
|
|
3187
|
+
{
|
|
3188
|
+
name: 'RepoTakendown',
|
|
3189
|
+
},
|
|
3190
|
+
{
|
|
3191
|
+
name: 'RepoSuspended',
|
|
3192
|
+
},
|
|
3193
|
+
{
|
|
3194
|
+
name: 'RepoDeactivated',
|
|
3195
|
+
},
|
|
3196
|
+
],
|
|
3197
|
+
},
|
|
3198
|
+
},
|
|
3199
|
+
},
|
|
3200
|
+
ComAtprotoSyncGetRepoStatus: {
|
|
3201
|
+
lexicon: 1,
|
|
3202
|
+
id: 'com.atproto.sync.getRepoStatus',
|
|
3203
|
+
defs: {
|
|
3204
|
+
main: {
|
|
3205
|
+
type: 'query',
|
|
3206
|
+
description:
|
|
3207
|
+
'Get the hosting status for a repository, on this server. Expected to be implemented by PDS and Relay.',
|
|
3208
|
+
parameters: {
|
|
3209
|
+
type: 'params',
|
|
3210
|
+
required: ['did'],
|
|
3211
|
+
properties: {
|
|
3212
|
+
did: {
|
|
3213
|
+
type: 'string',
|
|
3214
|
+
format: 'did',
|
|
3215
|
+
description: 'The DID of the repo.',
|
|
3216
|
+
},
|
|
3217
|
+
},
|
|
3218
|
+
},
|
|
3219
|
+
output: {
|
|
3220
|
+
encoding: 'application/json',
|
|
3221
|
+
schema: {
|
|
3222
|
+
type: 'object',
|
|
3223
|
+
required: ['did', 'active'],
|
|
3224
|
+
properties: {
|
|
3225
|
+
did: {
|
|
3226
|
+
type: 'string',
|
|
3227
|
+
format: 'did',
|
|
3228
|
+
},
|
|
3229
|
+
active: {
|
|
3230
|
+
type: 'boolean',
|
|
3231
|
+
},
|
|
3232
|
+
status: {
|
|
3233
|
+
type: 'string',
|
|
3234
|
+
description:
|
|
3235
|
+
'If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.',
|
|
3236
|
+
knownValues: ['takendown', 'suspended', 'deactivated'],
|
|
3237
|
+
},
|
|
3238
|
+
rev: {
|
|
3239
|
+
type: 'string',
|
|
3240
|
+
description:
|
|
3241
|
+
'Optional field, the current rev of the repo, if active=true',
|
|
3242
|
+
},
|
|
3243
|
+
},
|
|
3244
|
+
},
|
|
3245
|
+
},
|
|
3246
|
+
errors: [
|
|
3247
|
+
{
|
|
3248
|
+
name: 'RepoNotFound',
|
|
3249
|
+
},
|
|
3250
|
+
],
|
|
3123
3251
|
},
|
|
3124
3252
|
},
|
|
3125
3253
|
},
|
|
@@ -3174,6 +3302,20 @@ export const schemaDict = {
|
|
|
3174
3302
|
},
|
|
3175
3303
|
},
|
|
3176
3304
|
},
|
|
3305
|
+
errors: [
|
|
3306
|
+
{
|
|
3307
|
+
name: 'RepoNotFound',
|
|
3308
|
+
},
|
|
3309
|
+
{
|
|
3310
|
+
name: 'RepoTakendown',
|
|
3311
|
+
},
|
|
3312
|
+
{
|
|
3313
|
+
name: 'RepoSuspended',
|
|
3314
|
+
},
|
|
3315
|
+
{
|
|
3316
|
+
name: 'RepoDeactivated',
|
|
3317
|
+
},
|
|
3318
|
+
],
|
|
3177
3319
|
},
|
|
3178
3320
|
},
|
|
3179
3321
|
},
|
|
@@ -3235,6 +3377,15 @@ export const schemaDict = {
|
|
|
3235
3377
|
rev: {
|
|
3236
3378
|
type: 'string',
|
|
3237
3379
|
},
|
|
3380
|
+
active: {
|
|
3381
|
+
type: 'boolean',
|
|
3382
|
+
},
|
|
3383
|
+
status: {
|
|
3384
|
+
type: 'string',
|
|
3385
|
+
description:
|
|
3386
|
+
'If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.',
|
|
3387
|
+
knownValues: ['takendown', 'suspended', 'deactivated'],
|
|
3388
|
+
},
|
|
3238
3389
|
},
|
|
3239
3390
|
},
|
|
3240
3391
|
},
|
|
@@ -3312,6 +3463,7 @@ export const schemaDict = {
|
|
|
3312
3463
|
refs: [
|
|
3313
3464
|
'lex:com.atproto.sync.subscribeRepos#commit',
|
|
3314
3465
|
'lex:com.atproto.sync.subscribeRepos#identity',
|
|
3466
|
+
'lex:com.atproto.sync.subscribeRepos#account',
|
|
3315
3467
|
'lex:com.atproto.sync.subscribeRepos#handle',
|
|
3316
3468
|
'lex:com.atproto.sync.subscribeRepos#migrate',
|
|
3317
3469
|
'lex:com.atproto.sync.subscribeRepos#tombstone',
|
|
@@ -3435,12 +3587,47 @@ export const schemaDict = {
|
|
|
3435
3587
|
type: 'string',
|
|
3436
3588
|
format: 'datetime',
|
|
3437
3589
|
},
|
|
3590
|
+
handle: {
|
|
3591
|
+
type: 'string',
|
|
3592
|
+
format: 'handle',
|
|
3593
|
+
description:
|
|
3594
|
+
"The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details.",
|
|
3595
|
+
},
|
|
3438
3596
|
},
|
|
3439
3597
|
},
|
|
3440
|
-
|
|
3598
|
+
account: {
|
|
3441
3599
|
type: 'object',
|
|
3442
3600
|
description:
|
|
3443
|
-
"Represents
|
|
3601
|
+
"Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active.",
|
|
3602
|
+
required: ['seq', 'did', 'time', 'active'],
|
|
3603
|
+
properties: {
|
|
3604
|
+
seq: {
|
|
3605
|
+
type: 'integer',
|
|
3606
|
+
},
|
|
3607
|
+
did: {
|
|
3608
|
+
type: 'string',
|
|
3609
|
+
format: 'did',
|
|
3610
|
+
},
|
|
3611
|
+
time: {
|
|
3612
|
+
type: 'string',
|
|
3613
|
+
format: 'datetime',
|
|
3614
|
+
},
|
|
3615
|
+
active: {
|
|
3616
|
+
type: 'boolean',
|
|
3617
|
+
description:
|
|
3618
|
+
'Indicates that the account has a repository which can be fetched from the host that emitted this event.',
|
|
3619
|
+
},
|
|
3620
|
+
status: {
|
|
3621
|
+
type: 'string',
|
|
3622
|
+
description:
|
|
3623
|
+
'If active=false, this optional field indicates a reason for why the account is not active.',
|
|
3624
|
+
knownValues: ['takendown', 'suspended', 'deleted', 'deactivated'],
|
|
3625
|
+
},
|
|
3626
|
+
},
|
|
3627
|
+
},
|
|
3628
|
+
handle: {
|
|
3629
|
+
type: 'object',
|
|
3630
|
+
description: 'DEPRECATED -- Use #identity event instead',
|
|
3444
3631
|
required: ['seq', 'did', 'handle', 'time'],
|
|
3445
3632
|
properties: {
|
|
3446
3633
|
seq: {
|
|
@@ -3462,8 +3649,7 @@ export const schemaDict = {
|
|
|
3462
3649
|
},
|
|
3463
3650
|
migrate: {
|
|
3464
3651
|
type: 'object',
|
|
3465
|
-
description:
|
|
3466
|
-
'Represents an account moving from one PDS instance to another. NOTE: not implemented; account migration uses #identity instead',
|
|
3652
|
+
description: 'DEPRECATED -- Use #account event instead',
|
|
3467
3653
|
required: ['seq', 'did', 'migrateTo', 'time'],
|
|
3468
3654
|
nullable: ['migrateTo'],
|
|
3469
3655
|
properties: {
|
|
@@ -3485,8 +3671,7 @@ export const schemaDict = {
|
|
|
3485
3671
|
},
|
|
3486
3672
|
tombstone: {
|
|
3487
3673
|
type: 'object',
|
|
3488
|
-
description:
|
|
3489
|
-
'Indicates that an account has been deleted. NOTE: may be deprecated in favor of #identity or a future #account event',
|
|
3674
|
+
description: 'DEPRECATED -- Use #account event instead',
|
|
3490
3675
|
required: ['seq', 'did', 'time'],
|
|
3491
3676
|
properties: {
|
|
3492
3677
|
seq: {
|
|
@@ -8379,7 +8564,7 @@ export const schemaDict = {
|
|
|
8379
8564
|
},
|
|
8380
8565
|
embed: {
|
|
8381
8566
|
type: 'union',
|
|
8382
|
-
refs: ['lex:app.bsky.embed.record'],
|
|
8567
|
+
refs: ['lex:app.bsky.embed.record#view'],
|
|
8383
8568
|
},
|
|
8384
8569
|
sender: {
|
|
8385
8570
|
type: 'ref',
|
|
@@ -9200,6 +9385,7 @@ export const ids = {
|
|
|
9200
9385
|
ComAtprotoSyncGetLatestCommit: 'com.atproto.sync.getLatestCommit',
|
|
9201
9386
|
ComAtprotoSyncGetRecord: 'com.atproto.sync.getRecord',
|
|
9202
9387
|
ComAtprotoSyncGetRepo: 'com.atproto.sync.getRepo',
|
|
9388
|
+
ComAtprotoSyncGetRepoStatus: 'com.atproto.sync.getRepoStatus',
|
|
9203
9389
|
ComAtprotoSyncListBlobs: 'com.atproto.sync.listBlobs',
|
|
9204
9390
|
ComAtprotoSyncListRepos: 'com.atproto.sync.listRepos',
|
|
9205
9391
|
ComAtprotoSyncNotifyOfUpdate: 'com.atproto.sync.notifyOfUpdate',
|
|
@@ -54,7 +54,7 @@ export interface MessageView {
|
|
|
54
54
|
text: string
|
|
55
55
|
/** Annotations of text (mentions, URLs, hashtags, etc) */
|
|
56
56
|
facets?: AppBskyRichtextFacet.Main[]
|
|
57
|
-
embed?: AppBskyEmbedRecord.
|
|
57
|
+
embed?: AppBskyEmbedRecord.View | { $type: string; [k: string]: unknown }
|
|
58
58
|
sender: MessageViewSender
|
|
59
59
|
sentAt: string
|
|
60
60
|
[k: string]: unknown
|
|
@@ -28,6 +28,12 @@ export interface HandlerSuccess {
|
|
|
28
28
|
export interface HandlerError {
|
|
29
29
|
status: number
|
|
30
30
|
message?: string
|
|
31
|
+
error?:
|
|
32
|
+
| 'BlobNotFound'
|
|
33
|
+
| 'RepoNotFound'
|
|
34
|
+
| 'RepoTakendown'
|
|
35
|
+
| 'RepoSuspended'
|
|
36
|
+
| 'RepoDeactivated'
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
@@ -27,6 +27,12 @@ export interface HandlerSuccess {
|
|
|
27
27
|
export interface HandlerError {
|
|
28
28
|
status: number
|
|
29
29
|
message?: string
|
|
30
|
+
error?:
|
|
31
|
+
| 'BlockNotFound'
|
|
32
|
+
| 'RepoNotFound'
|
|
33
|
+
| 'RepoTakendown'
|
|
34
|
+
| 'RepoSuspended'
|
|
35
|
+
| 'RepoDeactivated'
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
@@ -32,7 +32,7 @@ export interface HandlerSuccess {
|
|
|
32
32
|
export interface HandlerError {
|
|
33
33
|
status: number
|
|
34
34
|
message?: string
|
|
35
|
-
error?: 'RepoNotFound'
|
|
35
|
+
error?: 'RepoNotFound' | 'RepoTakendown' | 'RepoSuspended' | 'RepoDeactivated'
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
@@ -31,6 +31,12 @@ export interface HandlerSuccess {
|
|
|
31
31
|
export interface HandlerError {
|
|
32
32
|
status: number
|
|
33
33
|
message?: string
|
|
34
|
+
error?:
|
|
35
|
+
| 'RecordNotFound'
|
|
36
|
+
| 'RepoNotFound'
|
|
37
|
+
| 'RepoTakendown'
|
|
38
|
+
| 'RepoSuspended'
|
|
39
|
+
| 'RepoDeactivated'
|
|
34
40
|
}
|
|
35
41
|
|
|
36
42
|
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
@@ -28,6 +28,7 @@ export interface HandlerSuccess {
|
|
|
28
28
|
export interface HandlerError {
|
|
29
29
|
status: number
|
|
30
30
|
message?: string
|
|
31
|
+
error?: 'RepoNotFound' | 'RepoTakendown' | 'RepoSuspended' | 'RepoDeactivated'
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
/** The DID of the repo. */
|
|
13
|
+
did: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type InputSchema = undefined
|
|
17
|
+
|
|
18
|
+
export interface OutputSchema {
|
|
19
|
+
did: string
|
|
20
|
+
active: boolean
|
|
21
|
+
/** If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted. */
|
|
22
|
+
status?: 'takendown' | 'suspended' | 'deactivated' | (string & {})
|
|
23
|
+
/** Optional field, the current rev of the repo, if active=true */
|
|
24
|
+
rev?: string
|
|
25
|
+
[k: string]: unknown
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type HandlerInput = undefined
|
|
29
|
+
|
|
30
|
+
export interface HandlerSuccess {
|
|
31
|
+
encoding: 'application/json'
|
|
32
|
+
body: OutputSchema
|
|
33
|
+
headers?: { [key: string]: string }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface HandlerError {
|
|
37
|
+
status: number
|
|
38
|
+
message?: string
|
|
39
|
+
error?: 'RepoNotFound'
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
43
|
+
export type HandlerReqCtx<HA extends HandlerAuth = never> = {
|
|
44
|
+
auth: HA
|
|
45
|
+
params: QueryParams
|
|
46
|
+
input: HandlerInput
|
|
47
|
+
req: express.Request
|
|
48
|
+
res: express.Response
|
|
49
|
+
}
|
|
50
|
+
export type Handler<HA extends HandlerAuth = never> = (
|
|
51
|
+
ctx: HandlerReqCtx<HA>,
|
|
52
|
+
) => Promise<HandlerOutput> | HandlerOutput
|
|
@@ -36,6 +36,7 @@ export interface HandlerSuccess {
|
|
|
36
36
|
export interface HandlerError {
|
|
37
37
|
status: number
|
|
38
38
|
message?: string
|
|
39
|
+
error?: 'RepoNotFound' | 'RepoTakendown' | 'RepoSuspended' | 'RepoDeactivated'
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
@@ -51,6 +51,9 @@ export interface Repo {
|
|
|
51
51
|
/** Current repo commit CID */
|
|
52
52
|
head: string
|
|
53
53
|
rev: string
|
|
54
|
+
active?: boolean
|
|
55
|
+
/** If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted. */
|
|
56
|
+
status?: 'takendown' | 'suspended' | 'deactivated' | (string & {})
|
|
54
57
|
[k: string]: unknown
|
|
55
58
|
}
|
|
56
59
|
|
|
@@ -16,6 +16,7 @@ export interface QueryParams {
|
|
|
16
16
|
export type OutputSchema =
|
|
17
17
|
| Commit
|
|
18
18
|
| Identity
|
|
19
|
+
| Account
|
|
19
20
|
| Handle
|
|
20
21
|
| Migrate
|
|
21
22
|
| Tombstone
|
|
@@ -77,6 +78,8 @@ export interface Identity {
|
|
|
77
78
|
seq: number
|
|
78
79
|
did: string
|
|
79
80
|
time: string
|
|
81
|
+
/** The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details. */
|
|
82
|
+
handle?: string
|
|
80
83
|
[k: string]: unknown
|
|
81
84
|
}
|
|
82
85
|
|
|
@@ -92,7 +95,31 @@ export function validateIdentity(v: unknown): ValidationResult {
|
|
|
92
95
|
return lexicons.validate('com.atproto.sync.subscribeRepos#identity', v)
|
|
93
96
|
}
|
|
94
97
|
|
|
95
|
-
/** Represents
|
|
98
|
+
/** Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active. */
|
|
99
|
+
export interface Account {
|
|
100
|
+
seq: number
|
|
101
|
+
did: string
|
|
102
|
+
time: string
|
|
103
|
+
/** Indicates that the account has a repository which can be fetched from the host that emitted this event. */
|
|
104
|
+
active: boolean
|
|
105
|
+
/** If active=false, this optional field indicates a reason for why the account is not active. */
|
|
106
|
+
status?: 'takendown' | 'suspended' | 'deleted' | 'deactivated' | (string & {})
|
|
107
|
+
[k: string]: unknown
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export function isAccount(v: unknown): v is Account {
|
|
111
|
+
return (
|
|
112
|
+
isObj(v) &&
|
|
113
|
+
hasProp(v, '$type') &&
|
|
114
|
+
v.$type === 'com.atproto.sync.subscribeRepos#account'
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export function validateAccount(v: unknown): ValidationResult {
|
|
119
|
+
return lexicons.validate('com.atproto.sync.subscribeRepos#account', v)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** DEPRECATED -- Use #identity event instead */
|
|
96
123
|
export interface Handle {
|
|
97
124
|
seq: number
|
|
98
125
|
did: string
|
|
@@ -113,7 +140,7 @@ export function validateHandle(v: unknown): ValidationResult {
|
|
|
113
140
|
return lexicons.validate('com.atproto.sync.subscribeRepos#handle', v)
|
|
114
141
|
}
|
|
115
142
|
|
|
116
|
-
/**
|
|
143
|
+
/** DEPRECATED -- Use #account event instead */
|
|
117
144
|
export interface Migrate {
|
|
118
145
|
seq: number
|
|
119
146
|
did: string
|
|
@@ -134,7 +161,7 @@ export function validateMigrate(v: unknown): ValidationResult {
|
|
|
134
161
|
return lexicons.validate('com.atproto.sync.subscribeRepos#migrate', v)
|
|
135
162
|
}
|
|
136
163
|
|
|
137
|
-
/**
|
|
164
|
+
/** DEPRECATED -- Use #account event instead */
|
|
138
165
|
export interface Tombstone {
|
|
139
166
|
seq: number
|
|
140
167
|
did: string
|
|
@@ -86,7 +86,7 @@ describe('sync', () => {
|
|
|
86
86
|
const evt = cborDecode(seqEvt.event) as sequencer.CommitEvt
|
|
87
87
|
evt.blocks = new Uint8Array() // bad blocks
|
|
88
88
|
seqEvt.event = cborEncode(evt)
|
|
89
|
-
await network.pds.ctx.sequencer.sequenceEvt(seqEvt)
|
|
89
|
+
return await network.pds.ctx.sequencer.sequenceEvt(seqEvt)
|
|
90
90
|
}
|
|
91
91
|
// create account and index the initial commit event
|
|
92
92
|
await sc.createAccount('jack', {
|