@atproto/bsky 0.0.152 → 0.0.153
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/api/app/bsky/unspecced/getPostThreadHiddenV2.js +2 -1
- package/dist/api/app/bsky/unspecced/getPostThreadHiddenV2.js.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.d.ts.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js +1 -1
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts +4 -0
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts.map +1 -0
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js +11 -0
- package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js.map +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/index.js +2 -1
- package/dist/data-plane/server/db/migrations/index.js.map +1 -1
- package/dist/data-plane/server/db/tables/record.d.ts +1 -0
- package/dist/data-plane/server/db/tables/record.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/record.js.map +1 -1
- package/dist/data-plane/server/routes/records.d.ts.map +1 -1
- package/dist/data-plane/server/routes/records.js +1 -0
- package/dist/data-plane/server/routes/records.js.map +1 -1
- package/dist/hydration/feed.d.ts +1 -0
- package/dist/hydration/feed.d.ts.map +1 -1
- package/dist/hydration/feed.js +2 -0
- package/dist/hydration/feed.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +10 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +5 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.d.ts +2 -0
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.js.map +1 -1
- package/dist/proto/bsky_pb.d.ts +4 -0
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +16 -0
- package/dist/proto/bsky_pb.js.map +1 -1
- package/dist/proto/bsync_connect.d.ts +19 -1
- package/dist/proto/bsync_connect.d.ts.map +1 -1
- package/dist/proto/bsync_connect.js +18 -0
- package/dist/proto/bsync_connect.js.map +1 -1
- package/dist/proto/bsync_pb.d.ts +150 -0
- package/dist/proto/bsync_pb.d.ts.map +1 -1
- package/dist/proto/bsync_pb.js +401 -1
- package/dist/proto/bsync_pb.js.map +1 -1
- package/dist/views/index.d.ts +6 -1
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +58 -22
- package/dist/views/index.js.map +1 -1
- package/dist/views/threads-v2.d.ts +4 -1
- package/dist/views/threads-v2.d.ts.map +1 -1
- package/dist/views/threads-v2.js +50 -25
- package/dist/views/threads-v2.js.map +1 -1
- package/package.json +5 -5
- package/proto/bsky.proto +1 -0
- package/src/api/app/bsky/unspecced/getPostThreadHiddenV2.ts +2 -1
- package/src/api/com/atproto/repo/getRecord.ts +4 -1
- package/src/config.ts +15 -0
- package/src/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.ts +9 -0
- package/src/data-plane/server/db/migrations/index.ts +1 -0
- package/src/data-plane/server/db/tables/record.ts +1 -0
- package/src/data-plane/server/routes/records.ts +1 -0
- package/src/hydration/feed.ts +3 -0
- package/src/index.ts +2 -0
- package/src/lexicon/lexicons.ts +6 -0
- package/src/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.ts +2 -0
- package/src/proto/bsky_pb.ts +12 -0
- package/src/proto/bsync_connect.ts +22 -0
- package/src/proto/bsync_pb.ts +355 -0
- package/src/views/index.ts +90 -52
- package/src/views/threads-v2.ts +67 -37
- package/tests/seed/thread-v2.ts +131 -32
- package/tests/views/thread-v2.test.ts +139 -27
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads-v2.js","sourceRoot":"","sources":["../../src/views/threads-v2.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"threads-v2.js","sourceRoot":"","sources":["../../src/views/threads-v2.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/bsky",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.153",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Reference implementation of app.bsky App View (Bluesky API)",
|
|
6
6
|
"keywords": [
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"undici": "^6.19.8",
|
|
50
50
|
"@atproto-labs/fetch-node": "0.1.9",
|
|
51
51
|
"@atproto-labs/xrpc-utils": "0.0.14",
|
|
52
|
-
"@atproto/api": "^0.15.
|
|
52
|
+
"@atproto/api": "^0.15.11",
|
|
53
53
|
"@atproto/common": "^0.4.11",
|
|
54
54
|
"@atproto/crypto": "^0.4.4",
|
|
55
55
|
"@atproto/did": "^0.1.5",
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"jest": "^28.1.2",
|
|
74
74
|
"ts-node": "^10.8.2",
|
|
75
75
|
"typescript": "^5.6.3",
|
|
76
|
-
"@atproto/api": "^0.15.
|
|
77
|
-
"@atproto/lex-cli": "^0.8.
|
|
78
|
-
"@atproto/pds": "^0.4.
|
|
76
|
+
"@atproto/api": "^0.15.11",
|
|
77
|
+
"@atproto/lex-cli": "^0.8.2",
|
|
78
|
+
"@atproto/pds": "^0.4.141",
|
|
79
79
|
"@atproto/xrpc": "^0.7.0"
|
|
80
80
|
},
|
|
81
81
|
"scripts": {
|
package/proto/bsky.proto
CHANGED
|
@@ -93,10 +93,11 @@ const hydration = async (
|
|
|
93
93
|
const presentation = (
|
|
94
94
|
inputs: PresentationFnInput<Context, Params, Skeleton>,
|
|
95
95
|
) => {
|
|
96
|
-
const { ctx, skeleton, hydration } = inputs
|
|
96
|
+
const { ctx, params, skeleton, hydration } = inputs
|
|
97
97
|
const thread = ctx.views.threadHiddenV2(skeleton, hydration, {
|
|
98
98
|
below: BELOW,
|
|
99
99
|
branchingFactor: BRANCHING_FACTOR,
|
|
100
|
+
prioritizeFollowedUsers: params.prioritizeFollowedUsers,
|
|
100
101
|
})
|
|
101
102
|
return { thread }
|
|
102
103
|
}
|
|
@@ -25,7 +25,10 @@ export default function (server: Server, ctx: AppContext) {
|
|
|
25
25
|
const result = await ctx.hydrator.getRecord(uri, includeTakedowns)
|
|
26
26
|
|
|
27
27
|
if (!result || (cid && result.cid !== cid)) {
|
|
28
|
-
throw new InvalidRequestError(
|
|
28
|
+
throw new InvalidRequestError(
|
|
29
|
+
`Could not locate record: ${uri}`,
|
|
30
|
+
'RecordNotFound',
|
|
31
|
+
)
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
return {
|
package/src/config.ts
CHANGED
|
@@ -57,6 +57,8 @@ export interface ServerConfigValues {
|
|
|
57
57
|
bigThreadDepth?: number
|
|
58
58
|
maxThreadDepth?: number
|
|
59
59
|
maxThreadParents: number
|
|
60
|
+
threadTagsHide: Set<string>
|
|
61
|
+
threadTagsBumpDown: Set<string>
|
|
60
62
|
// notifications
|
|
61
63
|
notificationsDelayMs?: number
|
|
62
64
|
// client config
|
|
@@ -195,6 +197,10 @@ export class ServerConfig {
|
|
|
195
197
|
const maxThreadParents = process.env.BSKY_MAX_THREAD_PARENTS
|
|
196
198
|
? parseInt(process.env.BSKY_MAX_THREAD_PARENTS || '', 10)
|
|
197
199
|
: 50
|
|
200
|
+
const threadTagsHide = new Set(envList(process.env.BSKY_THREAD_TAGS_HIDE))
|
|
201
|
+
const threadTagsBumpDown = new Set(
|
|
202
|
+
envList(process.env.BSKY_THREAD_TAGS_BUMP_DOWN),
|
|
203
|
+
)
|
|
198
204
|
|
|
199
205
|
const notificationsDelayMs = process.env.BSKY_NOTIFICATIONS_DELAY_MS
|
|
200
206
|
? parseInt(process.env.BSKY_NOTIFICATIONS_DELAY_MS || '', 10)
|
|
@@ -263,6 +269,8 @@ export class ServerConfig {
|
|
|
263
269
|
bigThreadDepth,
|
|
264
270
|
maxThreadDepth,
|
|
265
271
|
maxThreadParents,
|
|
272
|
+
threadTagsHide,
|
|
273
|
+
threadTagsBumpDown,
|
|
266
274
|
notificationsDelayMs,
|
|
267
275
|
disableSsrfProtection,
|
|
268
276
|
proxyAllowHTTP2,
|
|
@@ -467,6 +475,13 @@ export class ServerConfig {
|
|
|
467
475
|
return this.cfg.maxThreadParents
|
|
468
476
|
}
|
|
469
477
|
|
|
478
|
+
get threadTagsHide() {
|
|
479
|
+
return this.cfg.threadTagsHide
|
|
480
|
+
}
|
|
481
|
+
get threadTagsBumpDown() {
|
|
482
|
+
return this.cfg.threadTagsBumpDown
|
|
483
|
+
}
|
|
484
|
+
|
|
470
485
|
get notificationsDelayMs() {
|
|
471
486
|
return this.cfg.notificationsDelayMs ?? 0
|
|
472
487
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Kysely } from 'kysely'
|
|
2
|
+
|
|
3
|
+
export async function up(db: Kysely<unknown>): Promise<void> {
|
|
4
|
+
await db.schema.alterTable('record').addColumn('tags', 'jsonb').execute()
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export async function down(db: Kysely<unknown>): Promise<void> {
|
|
8
|
+
await db.schema.alterTable('record').dropColumn('tags').execute()
|
|
9
|
+
}
|
|
@@ -49,3 +49,4 @@ export * as _20250116T222618297Z from './20250116T222618297Z-post-embed-video'
|
|
|
49
49
|
export * as _20250207T174822012Z from './20250207T174822012Z-add-label-exp'
|
|
50
50
|
export * as _20250404T163421487Z from './20250404T163421487Z-verifications'
|
|
51
51
|
export * as _20250526T023712742Z from './20250526T023712742Z-like-repost-via'
|
|
52
|
+
export * as _20250528T221913281Z from './20250528T221913281Z-add-record-tags'
|
package/src/hydration/feed.ts
CHANGED
|
@@ -25,6 +25,7 @@ export type Post = RecordInfo<PostRecord> & {
|
|
|
25
25
|
violatesEmbeddingRules: boolean
|
|
26
26
|
hasThreadGate: boolean
|
|
27
27
|
hasPostGate: boolean
|
|
28
|
+
tags: Set<string>
|
|
28
29
|
}
|
|
29
30
|
export type Posts = HydrationMap<Post>
|
|
30
31
|
|
|
@@ -113,6 +114,7 @@ export class FeedHydrator {
|
|
|
113
114
|
const violatesEmbeddingRules = res.meta[i].violatesEmbeddingRules
|
|
114
115
|
const hasThreadGate = res.meta[i].hasThreadGate
|
|
115
116
|
const hasPostGate = res.meta[i].hasPostGate
|
|
117
|
+
const tags = new Set<string>(res.records[i].tags ?? [])
|
|
116
118
|
return acc.set(
|
|
117
119
|
uri,
|
|
118
120
|
record
|
|
@@ -122,6 +124,7 @@ export class FeedHydrator {
|
|
|
122
124
|
violatesEmbeddingRules,
|
|
123
125
|
hasThreadGate,
|
|
124
126
|
hasPostGate,
|
|
127
|
+
tags,
|
|
125
128
|
}
|
|
126
129
|
: null,
|
|
127
130
|
)
|
package/src/index.ts
CHANGED
|
@@ -125,6 +125,8 @@ export class BskyAppView {
|
|
|
125
125
|
imgUriBuilder: imgUriBuilder,
|
|
126
126
|
videoUriBuilder: videoUriBuilder,
|
|
127
127
|
indexedAtEpoch: config.indexedAtEpoch,
|
|
128
|
+
threadTagsBumpDown: [...config.threadTagsBumpDown],
|
|
129
|
+
threadTagsHide: [...config.threadTagsHide],
|
|
128
130
|
})
|
|
129
131
|
|
|
130
132
|
const bsyncClient = createBsyncClient({
|
package/src/lexicon/lexicons.ts
CHANGED
|
@@ -10312,6 +10312,12 @@ export const schemaDict = {
|
|
|
10312
10312
|
description:
|
|
10313
10313
|
'Reference (AT-URI) to post record. This is the anchor post.',
|
|
10314
10314
|
},
|
|
10315
|
+
prioritizeFollowedUsers: {
|
|
10316
|
+
type: 'boolean',
|
|
10317
|
+
description:
|
|
10318
|
+
'Whether to prioritize posts from followed users. It only has effect when the user is authenticated.',
|
|
10319
|
+
default: false,
|
|
10320
|
+
},
|
|
10315
10321
|
},
|
|
10316
10322
|
},
|
|
10317
10323
|
output: {
|
|
@@ -20,6 +20,8 @@ const id = 'app.bsky.unspecced.getPostThreadHiddenV2'
|
|
|
20
20
|
export interface QueryParams {
|
|
21
21
|
/** Reference (AT-URI) to post record. This is the anchor post. */
|
|
22
22
|
anchor: string
|
|
23
|
+
/** Whether to prioritize posts from followed users. It only has effect when the user is authenticated. */
|
|
24
|
+
prioritizeFollowedUsers: boolean
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
export type InputSchema = undefined
|
package/src/proto/bsky_pb.ts
CHANGED
|
@@ -90,6 +90,11 @@ export class Record extends Message<Record> {
|
|
|
90
90
|
*/
|
|
91
91
|
takedownRef = ''
|
|
92
92
|
|
|
93
|
+
/**
|
|
94
|
+
* @generated from field: repeated string tags = 9;
|
|
95
|
+
*/
|
|
96
|
+
tags: string[] = []
|
|
97
|
+
|
|
93
98
|
constructor(data?: PartialMessage<Record>) {
|
|
94
99
|
super()
|
|
95
100
|
proto3.util.initPartial(data, this)
|
|
@@ -110,6 +115,13 @@ export class Record extends Message<Record> {
|
|
|
110
115
|
kind: 'scalar',
|
|
111
116
|
T: 9 /* ScalarType.STRING */,
|
|
112
117
|
},
|
|
118
|
+
{
|
|
119
|
+
no: 9,
|
|
120
|
+
name: 'tags',
|
|
121
|
+
kind: 'scalar',
|
|
122
|
+
T: 9 /* ScalarType.STRING */,
|
|
123
|
+
repeated: true,
|
|
124
|
+
},
|
|
113
125
|
])
|
|
114
126
|
|
|
115
127
|
static fromBinary(
|
|
@@ -10,10 +10,14 @@ import {
|
|
|
10
10
|
AddNotifOperationResponse,
|
|
11
11
|
PingRequest,
|
|
12
12
|
PingResponse,
|
|
13
|
+
PutOperationRequest,
|
|
14
|
+
PutOperationResponse,
|
|
13
15
|
ScanMuteOperationsRequest,
|
|
14
16
|
ScanMuteOperationsResponse,
|
|
15
17
|
ScanNotifOperationsRequest,
|
|
16
18
|
ScanNotifOperationsResponse,
|
|
19
|
+
ScanOperationsRequest,
|
|
20
|
+
ScanOperationsResponse,
|
|
17
21
|
} from './bsync_pb'
|
|
18
22
|
import { MethodKind } from '@bufbuild/protobuf'
|
|
19
23
|
|
|
@@ -61,6 +65,24 @@ export const Service = {
|
|
|
61
65
|
O: ScanNotifOperationsResponse,
|
|
62
66
|
kind: MethodKind.Unary,
|
|
63
67
|
},
|
|
68
|
+
/**
|
|
69
|
+
* @generated from rpc bsync.Service.PutOperation
|
|
70
|
+
*/
|
|
71
|
+
putOperation: {
|
|
72
|
+
name: 'PutOperation',
|
|
73
|
+
I: PutOperationRequest,
|
|
74
|
+
O: PutOperationResponse,
|
|
75
|
+
kind: MethodKind.Unary,
|
|
76
|
+
},
|
|
77
|
+
/**
|
|
78
|
+
* @generated from rpc bsync.Service.ScanOperations
|
|
79
|
+
*/
|
|
80
|
+
scanOperations: {
|
|
81
|
+
name: 'ScanOperations',
|
|
82
|
+
I: ScanOperationsRequest,
|
|
83
|
+
O: ScanOperationsResponse,
|
|
84
|
+
kind: MethodKind.Unary,
|
|
85
|
+
},
|
|
64
86
|
/**
|
|
65
87
|
* Ping
|
|
66
88
|
*
|
package/src/proto/bsync_pb.ts
CHANGED
|
@@ -13,6 +13,38 @@ import type {
|
|
|
13
13
|
} from '@bufbuild/protobuf'
|
|
14
14
|
import { Message, proto3 } from '@bufbuild/protobuf'
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @generated from enum bsync.Method
|
|
18
|
+
*/
|
|
19
|
+
export enum Method {
|
|
20
|
+
/**
|
|
21
|
+
* @generated from enum value: METHOD_UNSPECIFIED = 0;
|
|
22
|
+
*/
|
|
23
|
+
UNSPECIFIED = 0,
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @generated from enum value: METHOD_CREATE = 1;
|
|
27
|
+
*/
|
|
28
|
+
CREATE = 1,
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @generated from enum value: METHOD_UPDATE = 2;
|
|
32
|
+
*/
|
|
33
|
+
UPDATE = 2,
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @generated from enum value: METHOD_DELETE = 3;
|
|
37
|
+
*/
|
|
38
|
+
DELETE = 3,
|
|
39
|
+
}
|
|
40
|
+
// Retrieve enum metadata with: proto3.getEnumType(Method)
|
|
41
|
+
proto3.util.setEnumType(Method, 'bsync.Method', [
|
|
42
|
+
{ no: 0, name: 'METHOD_UNSPECIFIED' },
|
|
43
|
+
{ no: 1, name: 'METHOD_CREATE' },
|
|
44
|
+
{ no: 2, name: 'METHOD_UPDATE' },
|
|
45
|
+
{ no: 3, name: 'METHOD_DELETE' },
|
|
46
|
+
])
|
|
47
|
+
|
|
16
48
|
/**
|
|
17
49
|
* @generated from message bsync.MuteOperation
|
|
18
50
|
*/
|
|
@@ -689,6 +721,329 @@ export class ScanNotifOperationsResponse extends Message<ScanNotifOperationsResp
|
|
|
689
721
|
}
|
|
690
722
|
}
|
|
691
723
|
|
|
724
|
+
/**
|
|
725
|
+
* @generated from message bsync.Operation
|
|
726
|
+
*/
|
|
727
|
+
export class Operation extends Message<Operation> {
|
|
728
|
+
/**
|
|
729
|
+
* @generated from field: string id = 1;
|
|
730
|
+
*/
|
|
731
|
+
id = ''
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* @generated from field: string actor_did = 2;
|
|
735
|
+
*/
|
|
736
|
+
actorDid = ''
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* @generated from field: string collection = 3;
|
|
740
|
+
*/
|
|
741
|
+
collection = ''
|
|
742
|
+
|
|
743
|
+
/**
|
|
744
|
+
* @generated from field: string rkey = 4;
|
|
745
|
+
*/
|
|
746
|
+
rkey = ''
|
|
747
|
+
|
|
748
|
+
/**
|
|
749
|
+
* @generated from field: bsync.Method method = 5;
|
|
750
|
+
*/
|
|
751
|
+
method = Method.UNSPECIFIED
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* @generated from field: bytes payload = 6;
|
|
755
|
+
*/
|
|
756
|
+
payload = new Uint8Array(0)
|
|
757
|
+
|
|
758
|
+
constructor(data?: PartialMessage<Operation>) {
|
|
759
|
+
super()
|
|
760
|
+
proto3.util.initPartial(data, this)
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
static readonly runtime: typeof proto3 = proto3
|
|
764
|
+
static readonly typeName = 'bsync.Operation'
|
|
765
|
+
static readonly fields: FieldList = proto3.util.newFieldList(() => [
|
|
766
|
+
{ no: 1, name: 'id', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
767
|
+
{ no: 2, name: 'actor_did', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
768
|
+
{ no: 3, name: 'collection', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
769
|
+
{ no: 4, name: 'rkey', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
770
|
+
{ no: 5, name: 'method', kind: 'enum', T: proto3.getEnumType(Method) },
|
|
771
|
+
{ no: 6, name: 'payload', kind: 'scalar', T: 12 /* ScalarType.BYTES */ },
|
|
772
|
+
])
|
|
773
|
+
|
|
774
|
+
static fromBinary(
|
|
775
|
+
bytes: Uint8Array,
|
|
776
|
+
options?: Partial<BinaryReadOptions>,
|
|
777
|
+
): Operation {
|
|
778
|
+
return new Operation().fromBinary(bytes, options)
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
static fromJson(
|
|
782
|
+
jsonValue: JsonValue,
|
|
783
|
+
options?: Partial<JsonReadOptions>,
|
|
784
|
+
): Operation {
|
|
785
|
+
return new Operation().fromJson(jsonValue, options)
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
static fromJsonString(
|
|
789
|
+
jsonString: string,
|
|
790
|
+
options?: Partial<JsonReadOptions>,
|
|
791
|
+
): Operation {
|
|
792
|
+
return new Operation().fromJsonString(jsonString, options)
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
static equals(
|
|
796
|
+
a: Operation | PlainMessage<Operation> | undefined,
|
|
797
|
+
b: Operation | PlainMessage<Operation> | undefined,
|
|
798
|
+
): boolean {
|
|
799
|
+
return proto3.util.equals(Operation, a, b)
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
/**
|
|
804
|
+
* @generated from message bsync.PutOperationRequest
|
|
805
|
+
*/
|
|
806
|
+
export class PutOperationRequest extends Message<PutOperationRequest> {
|
|
807
|
+
/**
|
|
808
|
+
* @generated from field: string collection = 1;
|
|
809
|
+
*/
|
|
810
|
+
collection = ''
|
|
811
|
+
|
|
812
|
+
/**
|
|
813
|
+
* @generated from field: string actor_did = 2;
|
|
814
|
+
*/
|
|
815
|
+
actorDid = ''
|
|
816
|
+
|
|
817
|
+
/**
|
|
818
|
+
* @generated from field: string rkey = 3;
|
|
819
|
+
*/
|
|
820
|
+
rkey = ''
|
|
821
|
+
|
|
822
|
+
/**
|
|
823
|
+
* @generated from field: bsync.Method method = 4;
|
|
824
|
+
*/
|
|
825
|
+
method = Method.UNSPECIFIED
|
|
826
|
+
|
|
827
|
+
/**
|
|
828
|
+
* @generated from field: bytes payload = 5;
|
|
829
|
+
*/
|
|
830
|
+
payload = new Uint8Array(0)
|
|
831
|
+
|
|
832
|
+
constructor(data?: PartialMessage<PutOperationRequest>) {
|
|
833
|
+
super()
|
|
834
|
+
proto3.util.initPartial(data, this)
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
static readonly runtime: typeof proto3 = proto3
|
|
838
|
+
static readonly typeName = 'bsync.PutOperationRequest'
|
|
839
|
+
static readonly fields: FieldList = proto3.util.newFieldList(() => [
|
|
840
|
+
{ no: 1, name: 'collection', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
841
|
+
{ no: 2, name: 'actor_did', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
842
|
+
{ no: 3, name: 'rkey', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
843
|
+
{ no: 4, name: 'method', kind: 'enum', T: proto3.getEnumType(Method) },
|
|
844
|
+
{ no: 5, name: 'payload', kind: 'scalar', T: 12 /* ScalarType.BYTES */ },
|
|
845
|
+
])
|
|
846
|
+
|
|
847
|
+
static fromBinary(
|
|
848
|
+
bytes: Uint8Array,
|
|
849
|
+
options?: Partial<BinaryReadOptions>,
|
|
850
|
+
): PutOperationRequest {
|
|
851
|
+
return new PutOperationRequest().fromBinary(bytes, options)
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
static fromJson(
|
|
855
|
+
jsonValue: JsonValue,
|
|
856
|
+
options?: Partial<JsonReadOptions>,
|
|
857
|
+
): PutOperationRequest {
|
|
858
|
+
return new PutOperationRequest().fromJson(jsonValue, options)
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
static fromJsonString(
|
|
862
|
+
jsonString: string,
|
|
863
|
+
options?: Partial<JsonReadOptions>,
|
|
864
|
+
): PutOperationRequest {
|
|
865
|
+
return new PutOperationRequest().fromJsonString(jsonString, options)
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
static equals(
|
|
869
|
+
a: PutOperationRequest | PlainMessage<PutOperationRequest> | undefined,
|
|
870
|
+
b: PutOperationRequest | PlainMessage<PutOperationRequest> | undefined,
|
|
871
|
+
): boolean {
|
|
872
|
+
return proto3.util.equals(PutOperationRequest, a, b)
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
/**
|
|
877
|
+
* @generated from message bsync.PutOperationResponse
|
|
878
|
+
*/
|
|
879
|
+
export class PutOperationResponse extends Message<PutOperationResponse> {
|
|
880
|
+
/**
|
|
881
|
+
* @generated from field: bsync.Operation operation = 1;
|
|
882
|
+
*/
|
|
883
|
+
operation?: Operation
|
|
884
|
+
|
|
885
|
+
constructor(data?: PartialMessage<PutOperationResponse>) {
|
|
886
|
+
super()
|
|
887
|
+
proto3.util.initPartial(data, this)
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
static readonly runtime: typeof proto3 = proto3
|
|
891
|
+
static readonly typeName = 'bsync.PutOperationResponse'
|
|
892
|
+
static readonly fields: FieldList = proto3.util.newFieldList(() => [
|
|
893
|
+
{ no: 1, name: 'operation', kind: 'message', T: Operation },
|
|
894
|
+
])
|
|
895
|
+
|
|
896
|
+
static fromBinary(
|
|
897
|
+
bytes: Uint8Array,
|
|
898
|
+
options?: Partial<BinaryReadOptions>,
|
|
899
|
+
): PutOperationResponse {
|
|
900
|
+
return new PutOperationResponse().fromBinary(bytes, options)
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
static fromJson(
|
|
904
|
+
jsonValue: JsonValue,
|
|
905
|
+
options?: Partial<JsonReadOptions>,
|
|
906
|
+
): PutOperationResponse {
|
|
907
|
+
return new PutOperationResponse().fromJson(jsonValue, options)
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
static fromJsonString(
|
|
911
|
+
jsonString: string,
|
|
912
|
+
options?: Partial<JsonReadOptions>,
|
|
913
|
+
): PutOperationResponse {
|
|
914
|
+
return new PutOperationResponse().fromJsonString(jsonString, options)
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
static equals(
|
|
918
|
+
a: PutOperationResponse | PlainMessage<PutOperationResponse> | undefined,
|
|
919
|
+
b: PutOperationResponse | PlainMessage<PutOperationResponse> | undefined,
|
|
920
|
+
): boolean {
|
|
921
|
+
return proto3.util.equals(PutOperationResponse, a, b)
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
/**
|
|
926
|
+
* @generated from message bsync.ScanOperationsRequest
|
|
927
|
+
*/
|
|
928
|
+
export class ScanOperationsRequest extends Message<ScanOperationsRequest> {
|
|
929
|
+
/**
|
|
930
|
+
* @generated from field: string cursor = 1;
|
|
931
|
+
*/
|
|
932
|
+
cursor = ''
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
* @generated from field: int32 limit = 2;
|
|
936
|
+
*/
|
|
937
|
+
limit = 0
|
|
938
|
+
|
|
939
|
+
constructor(data?: PartialMessage<ScanOperationsRequest>) {
|
|
940
|
+
super()
|
|
941
|
+
proto3.util.initPartial(data, this)
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
static readonly runtime: typeof proto3 = proto3
|
|
945
|
+
static readonly typeName = 'bsync.ScanOperationsRequest'
|
|
946
|
+
static readonly fields: FieldList = proto3.util.newFieldList(() => [
|
|
947
|
+
{ no: 1, name: 'cursor', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
948
|
+
{ no: 2, name: 'limit', kind: 'scalar', T: 5 /* ScalarType.INT32 */ },
|
|
949
|
+
])
|
|
950
|
+
|
|
951
|
+
static fromBinary(
|
|
952
|
+
bytes: Uint8Array,
|
|
953
|
+
options?: Partial<BinaryReadOptions>,
|
|
954
|
+
): ScanOperationsRequest {
|
|
955
|
+
return new ScanOperationsRequest().fromBinary(bytes, options)
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
static fromJson(
|
|
959
|
+
jsonValue: JsonValue,
|
|
960
|
+
options?: Partial<JsonReadOptions>,
|
|
961
|
+
): ScanOperationsRequest {
|
|
962
|
+
return new ScanOperationsRequest().fromJson(jsonValue, options)
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
static fromJsonString(
|
|
966
|
+
jsonString: string,
|
|
967
|
+
options?: Partial<JsonReadOptions>,
|
|
968
|
+
): ScanOperationsRequest {
|
|
969
|
+
return new ScanOperationsRequest().fromJsonString(jsonString, options)
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
static equals(
|
|
973
|
+
a: ScanOperationsRequest | PlainMessage<ScanOperationsRequest> | undefined,
|
|
974
|
+
b: ScanOperationsRequest | PlainMessage<ScanOperationsRequest> | undefined,
|
|
975
|
+
): boolean {
|
|
976
|
+
return proto3.util.equals(ScanOperationsRequest, a, b)
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
/**
|
|
981
|
+
* @generated from message bsync.ScanOperationsResponse
|
|
982
|
+
*/
|
|
983
|
+
export class ScanOperationsResponse extends Message<ScanOperationsResponse> {
|
|
984
|
+
/**
|
|
985
|
+
* @generated from field: repeated bsync.Operation operations = 1;
|
|
986
|
+
*/
|
|
987
|
+
operations: Operation[] = []
|
|
988
|
+
|
|
989
|
+
/**
|
|
990
|
+
* @generated from field: string cursor = 2;
|
|
991
|
+
*/
|
|
992
|
+
cursor = ''
|
|
993
|
+
|
|
994
|
+
constructor(data?: PartialMessage<ScanOperationsResponse>) {
|
|
995
|
+
super()
|
|
996
|
+
proto3.util.initPartial(data, this)
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
static readonly runtime: typeof proto3 = proto3
|
|
1000
|
+
static readonly typeName = 'bsync.ScanOperationsResponse'
|
|
1001
|
+
static readonly fields: FieldList = proto3.util.newFieldList(() => [
|
|
1002
|
+
{
|
|
1003
|
+
no: 1,
|
|
1004
|
+
name: 'operations',
|
|
1005
|
+
kind: 'message',
|
|
1006
|
+
T: Operation,
|
|
1007
|
+
repeated: true,
|
|
1008
|
+
},
|
|
1009
|
+
{ no: 2, name: 'cursor', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
|
|
1010
|
+
])
|
|
1011
|
+
|
|
1012
|
+
static fromBinary(
|
|
1013
|
+
bytes: Uint8Array,
|
|
1014
|
+
options?: Partial<BinaryReadOptions>,
|
|
1015
|
+
): ScanOperationsResponse {
|
|
1016
|
+
return new ScanOperationsResponse().fromBinary(bytes, options)
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
static fromJson(
|
|
1020
|
+
jsonValue: JsonValue,
|
|
1021
|
+
options?: Partial<JsonReadOptions>,
|
|
1022
|
+
): ScanOperationsResponse {
|
|
1023
|
+
return new ScanOperationsResponse().fromJson(jsonValue, options)
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
static fromJsonString(
|
|
1027
|
+
jsonString: string,
|
|
1028
|
+
options?: Partial<JsonReadOptions>,
|
|
1029
|
+
): ScanOperationsResponse {
|
|
1030
|
+
return new ScanOperationsResponse().fromJsonString(jsonString, options)
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
static equals(
|
|
1034
|
+
a:
|
|
1035
|
+
| ScanOperationsResponse
|
|
1036
|
+
| PlainMessage<ScanOperationsResponse>
|
|
1037
|
+
| undefined,
|
|
1038
|
+
b:
|
|
1039
|
+
| ScanOperationsResponse
|
|
1040
|
+
| PlainMessage<ScanOperationsResponse>
|
|
1041
|
+
| undefined,
|
|
1042
|
+
): boolean {
|
|
1043
|
+
return proto3.util.equals(ScanOperationsResponse, a, b)
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
|
|
692
1047
|
/**
|
|
693
1048
|
* Ping
|
|
694
1049
|
*
|