@atproto/dev-env 0.3.188 → 0.3.190
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 +20 -0
- package/dist/bsky.d.ts.map +1 -1
- package/dist/bsky.js +3 -0
- package/dist/bsky.js.map +1 -1
- package/dist/seed/thread-v2.js +1 -1
- package/dist/seed/thread-v2.js.map +1 -1
- package/package.json +6 -6
- package/src/bsky.ts +3 -0
- package/src/seed/thread-v2.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atproto/dev-env
|
|
2
2
|
|
|
3
|
+
## 0.3.190
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`f8e56b387`](https://github.com/bluesky-social/atproto/commit/f8e56b387fcd3bc8405225c1bbdef66ca5dc1591), [`3628cebfb`](https://github.com/bluesky-social/atproto/commit/3628cebfbb04ba49f326bbf411a2d15de2900302), [`82e75bf6c`](https://github.com/bluesky-social/atproto/commit/82e75bf6c1b31daa834386edce35c8aa4c787229)]:
|
|
8
|
+
- @atproto/bsky@0.0.196
|
|
9
|
+
- @atproto/ozone@0.1.155
|
|
10
|
+
- @atproto/pds@0.4.193
|
|
11
|
+
|
|
12
|
+
## 0.3.189
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [[`94ddc8219`](https://github.com/bluesky-social/atproto/commit/94ddc8219c144475df622137ab88895255136eda), [`756ab5d87`](https://github.com/bluesky-social/atproto/commit/756ab5d87fea75e8648a6bdd545d8b441bfb2dd6), [`39b5c08e0`](https://github.com/bluesky-social/atproto/commit/39b5c08e0799468eba0c3bf50f4f5a8104c35f34)]:
|
|
17
|
+
- @atproto/api@0.18.0
|
|
18
|
+
- @atproto/sync@0.1.36
|
|
19
|
+
- @atproto/bsky@0.0.195
|
|
20
|
+
- @atproto/ozone@0.1.154
|
|
21
|
+
- @atproto/pds@0.4.192
|
|
22
|
+
|
|
3
23
|
## 0.3.188
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/bsky.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bsky.d.ts","sourceRoot":"","sources":["../src/bsky.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,cAAc,eAAe,CAAA;AAE7B,qBAAa,QAAQ;IAEV,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI,CAAC,QAAQ;IACjB,MAAM,EAAE,IAAI,CAAC,WAAW;IACxB,SAAS,EAAE,IAAI,CAAC,eAAe;IAC/B,KAAK,EAAE,IAAI,CAAC,SAAS;IACrB,GAAG,EAAE,IAAI,CAAC,gBAAgB;IAC1B,SAAS,EAAE,MAAM;gBAPjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,MAAM,EAAE,IAAI,CAAC,WAAW,EACxB,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAC1B,SAAS,EAAE,MAAM;WAGb,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"bsky.d.ts","sourceRoot":"","sources":["../src/bsky.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AAGrC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,cAAc,eAAe,CAAA;AAE7B,qBAAa,QAAQ;IAEV,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI,CAAC,QAAQ;IACjB,MAAM,EAAE,IAAI,CAAC,WAAW;IACxB,SAAS,EAAE,IAAI,CAAC,eAAe;IAC/B,KAAK,EAAE,IAAI,CAAC,SAAS;IACrB,GAAG,EAAE,IAAI,CAAC,gBAAgB;IAC1B,SAAS,EAAE,MAAM;gBAPjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,MAAM,EAAE,IAAI,CAAC,WAAW,EACxB,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAC1B,SAAS,EAAE,MAAM;WAGb,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyGvD,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAEzB;IAED,SAAS,IAAI,QAAQ;IAMrB,SAAS,IAAI,MAAM;IAQnB,gBAAgB;;;IAMV,KAAK;CAOZ"}
|
package/dist/bsky.js
CHANGED
|
@@ -151,8 +151,11 @@ class TestBsky {
|
|
|
151
151
|
bigThreadUris: new Set(),
|
|
152
152
|
maxThreadParents: cfg.maxThreadParents ?? 50,
|
|
153
153
|
disableSsrfProtection: true,
|
|
154
|
+
searchTagsHide: new Set(),
|
|
154
155
|
threadTagsBumpDown: new Set(),
|
|
155
156
|
threadTagsHide: new Set(),
|
|
157
|
+
visibilityTagHide: '',
|
|
158
|
+
visibilityTagRankPrefix: '',
|
|
156
159
|
debugFieldAllowedDids: new Set(),
|
|
157
160
|
...cfg,
|
|
158
161
|
adminPasswords: [const_1.ADMIN_PASSWORD],
|
package/dist/bsky.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bsky.js","sourceRoot":"","sources":["../src/bsky.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bsky.js","sourceRoot":"","sources":["../src/bsky.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAkD;AAClD,wDAA8B;AAC9B,iDAAkC;AAClC,sCAAuC;AACvC,oDAAqC;AACrC,4CAAkD;AAClD,mCAAyD;AAEzD,gDAA6B;AAE7B,MAAa,QAAQ;IACnB,YACS,GAAW,EACX,IAAY,EACZ,EAAiB,EACjB,MAAwB,EACxB,SAA+B,EAC/B,KAAqB,EACrB,GAA0B,EAC1B,SAAiB;QAPxB;;;;mBAAO,GAAG;WAAQ;QAClB;;;;mBAAO,IAAI;WAAQ;QACnB;;;;mBAAO,EAAE;WAAe;QACxB;;;;mBAAO,MAAM;WAAkB;QAC/B;;;;mBAAO,SAAS;WAAsB;QACtC;;;;mBAAO,KAAK;WAAgB;QAC5B;;;;mBAAO,GAAG;WAAuB;QACjC;;;;mBAAO,SAAS;WAAQ;IACvB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAe;QACjC,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU;YACnC,CAAC,CAAC,MAAM,yBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YAC/C,CAAC,CAAC,MAAM,yBAAgB,CAAC,MAAM,EAAE,CAAA;QACnC,MAAM,SAAS,GAAG,IAAI,YAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAA,kBAAO,GAAE,CAAC,CAAA;QAC1C,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAA;QACtC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;YAC1C,UAAU,EAAE,cAAc,CAAC,GAAG,EAAE;YAChC,YAAY,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,EAAE,WAAW;YACnB,GAAG,EAAE,oBAAoB,IAAI,EAAE;YAC/B,MAAM,EAAE,cAAc;SACvB,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,oBAAoB,IAAI,EAAE,CAAA;QAE3C,MAAM,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1D,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG;gBACzB,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ;aACT,CAAA;YACD,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG;gBAC3B,IAAI,EAAE,aAAa;gBACnB,QAAQ;aACT,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QAEF,qGAAqG;QACrG,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC3B,GAAG,EAAE,GAAG,CAAC,aAAa;YACtB,MAAM,EAAE,GAAG,CAAC,gBAAgB;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAA;QACrC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CACjD,EAAE,EACF,aAAa,EACb,GAAG,CAAC,MAAM,CACX,CAAA;QAED,MAAM,SAAS,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAA;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;QAExD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC;YACnC,OAAO,EAAE,SAAS;YAClB,IAAI;YACJ,SAAS,EAAE,GAAG,CAAC,MAAM;YACrB,SAAS,EAAE,yBAAyB;YACpC,SAAS;YACT,qBAAqB,EAAE,EAAE;YACzB,aAAa,EAAE,CAAC,oBAAoB,aAAa,EAAE,CAAC;YACpD,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,oBAAoB,SAAS,EAAE;YACzC,gBAAgB,EAAE,KAAK;YACvB,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,wBAAwB;YAC5D,oBAAoB,EAAE,CAAC,uBAAe,CAAC;YACvC,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,EAAE;YAC5C,qBAAqB,EAAE,IAAI;YAC3B,cAAc,EAAE,IAAI,GAAG,EAAE;YACzB,kBAAkB,EAAE,IAAI,GAAG,EAAE;YAC7B,cAAc,EAAE,IAAI,GAAG,EAAE;YACzB,iBAAiB,EAAE,EAAE;YACrB,uBAAuB,EAAE,EAAE;YAC3B,qBAAqB,EAAE,IAAI,GAAG,EAAE;YAChC,GAAG,GAAG;YACN,cAAc,EAAE,CAAC,sBAAc,CAAC;YAChC,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;QAEF,qIAAqI;QACrI,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;YACpC,GAAG,EAAE,GAAG,CAAC,aAAa;YACtB,MAAM,EAAE,GAAG,CAAC,gBAAgB;SAC7B,CAAC,CAAA;QACF,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,CAAC,sBAAsB,EAAE,CAAA;QAC5C,CAAC;QACD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAA;QAEzB,aAAa;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACrC,MAAM;YACN,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC;YACpC,OAAO,EAAE,GAAG,CAAC,YAAY;YACzB,EAAE;YACF,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAEpB,GAAG,CAAC,KAAK,EAAE,CAAA;QAEX,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IAC9E,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;IACxB,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,cAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACjD,KAAK,CAAC,iBAAiB,CAAC,CAAC,uBAAe,CAAC,CAAC,CAAA;QAC1C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS;QACP,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAA;QAC9C,OAAO,CACL,QAAQ;YACR,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CACvE,CAAA;IACH,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE;SAChC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAC1B,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;QAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;CACF;AApJD,4BAoJC","sourcesContent":["import { Client as PlcClient } from '@did-plc/lib'\nimport getPort from 'get-port'\nimport * as ui8 from 'uint8arrays'\nimport { AtpAgent } from '@atproto/api'\nimport * as bsky from '@atproto/bsky'\nimport { Secp256k1Keypair } from '@atproto/crypto'\nimport { ADMIN_PASSWORD, EXAMPLE_LABELER } from './const'\nimport { BskyConfig } from './types'\nexport * from '@atproto/bsky'\n\nexport class TestBsky {\n constructor(\n public url: string,\n public port: number,\n public db: bsky.Database,\n public server: bsky.BskyAppView,\n public dataplane: bsky.DataPlaneServer,\n public bsync: bsky.MockBsync,\n public sub: bsky.RepoSubscription,\n public serverDid: string,\n ) {}\n\n static async create(cfg: BskyConfig): Promise<TestBsky> {\n const serviceKeypair = cfg.privateKey\n ? await Secp256k1Keypair.import(cfg.privateKey)\n : await Secp256k1Keypair.create()\n const plcClient = new PlcClient(cfg.plcUrl)\n\n const port = cfg.port || (await getPort())\n const url = `http://localhost:${port}`\n const serverDid = await plcClient.createDid({\n signingKey: serviceKeypair.did(),\n rotationKeys: [serviceKeypair.did()],\n handle: 'bsky.test',\n pds: `http://localhost:${port}`,\n signer: serviceKeypair,\n })\n\n const endpoint = `http://localhost:${port}`\n\n await plcClient.updateData(serverDid, serviceKeypair, (x) => {\n x.services['bsky_notif'] = {\n type: 'BskyNotificationService',\n endpoint,\n }\n x.services['bsky_appview'] = {\n type: 'BskyAppView',\n endpoint,\n }\n return x\n })\n\n // shared across server, ingester, and indexer in order to share pool, avoid too many pg connections.\n const db = new bsky.Database({\n url: cfg.dbPostgresUrl,\n schema: cfg.dbPostgresSchema,\n poolSize: 10,\n })\n\n const dataplanePort = await getPort()\n const dataplane = await bsky.DataPlaneServer.create(\n db,\n dataplanePort,\n cfg.plcUrl,\n )\n\n const bsyncPort = await getPort()\n const bsync = await bsky.MockBsync.create(db, bsyncPort)\n\n const config = new bsky.ServerConfig({\n version: 'unknown',\n port,\n didPlcUrl: cfg.plcUrl,\n publicUrl: 'https://bsky.public.url',\n serverDid,\n alternateAudienceDids: [],\n dataplaneUrls: [`http://localhost:${dataplanePort}`],\n dataplaneHttpVersion: '1.1',\n bsyncUrl: `http://localhost:${bsyncPort}`,\n bsyncHttpVersion: '1.1',\n modServiceDid: cfg.modServiceDid ?? 'did:example:invalidMod',\n labelsFromIssuerDids: [EXAMPLE_LABELER],\n bigThreadUris: new Set(),\n maxThreadParents: cfg.maxThreadParents ?? 50,\n disableSsrfProtection: true,\n searchTagsHide: new Set(),\n threadTagsBumpDown: new Set(),\n threadTagsHide: new Set(),\n visibilityTagHide: '',\n visibilityTagRankPrefix: '',\n debugFieldAllowedDids: new Set(),\n ...cfg,\n adminPasswords: [ADMIN_PASSWORD],\n etcdHosts: [],\n })\n\n // Separate migration db in case migration changes some connection state that we need in the tests, e.g. \"alter database ... set ...\"\n const migrationDb = new bsky.Database({\n url: cfg.dbPostgresUrl,\n schema: cfg.dbPostgresSchema,\n })\n if (cfg.migration) {\n await migrationDb.migrateToOrThrow(cfg.migration)\n } else {\n await migrationDb.migrateToLatestOrThrow()\n }\n await migrationDb.close()\n\n // api server\n const server = bsky.BskyAppView.create({\n config,\n signingKey: serviceKeypair,\n })\n\n const sub = new bsky.RepoSubscription({\n service: cfg.repoProvider,\n db,\n idResolver: dataplane.idResolver,\n })\n\n await server.start()\n\n sub.start()\n\n return new TestBsky(url, port, db, server, dataplane, bsync, sub, serverDid)\n }\n\n get ctx(): bsky.AppContext {\n return this.server.ctx\n }\n\n getClient(): AtpAgent {\n const agent = new AtpAgent({ service: this.url })\n agent.configureLabelers([EXAMPLE_LABELER])\n return agent\n }\n\n adminAuth(): string {\n const [password] = this.ctx.cfg.adminPasswords\n return (\n 'Basic ' +\n ui8.toString(ui8.fromString(`admin:${password}`, 'utf8'), 'base64pad')\n )\n }\n\n adminAuthHeaders() {\n return {\n authorization: this.adminAuth(),\n }\n }\n\n async close() {\n await this.server.destroy()\n await this.bsync.destroy()\n await this.dataplane.destroy()\n await this.sub.destroy()\n await this.db.close()\n }\n}\n"]}
|
package/dist/seed/thread-v2.js
CHANGED
|
@@ -593,7 +593,7 @@ async function blockDeletionAuth(sc, labelerDid) {
|
|
|
593
593
|
await r(alice, async (r) => {
|
|
594
594
|
await r(alice);
|
|
595
595
|
});
|
|
596
|
-
// User configured to only be
|
|
596
|
+
// User configured to only be seen by authenticated users.
|
|
597
597
|
// Requires the test sets a `!no-unauthenticated` label for this user.
|
|
598
598
|
await r(auth, async (r) => {
|
|
599
599
|
// Another auth-only to show that the parent chain is preserved in the thread.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-v2.js","sourceRoot":"","sources":["../../src/seed/thread-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppBskyFeedPost } from '@atproto/api'\nimport type { DatabaseSchema } from '@atproto/bsky'\nimport { TestNetwork } from '../network'\nimport { TestNetworkNoAppView } from '../network-no-appview'\nimport { RecordRef, SeedClient } from './client'\n\ntype User = {\n id: string\n did: string\n email: string\n handle: string\n password: string\n displayName: string\n description: string\n selfLabels: undefined\n}\n\nfunction createUserStub(name: string): User {\n return {\n id: name,\n // @ts-ignore overwritten during seeding\n did: undefined,\n email: `${name}@test.com`,\n handle: `${name}.test`,\n password: `${name}-pass`,\n displayName: name,\n description: `hi im ${name} label_me`,\n selfLabels: undefined,\n }\n}\n\nasync function createUsers<T extends readonly string[]>(\n seedClient: SeedClient<TestNetwork | TestNetworkNoAppView>,\n prefix: string,\n handles: T,\n) {\n const stubs = handles.reduce((acc, handle) => {\n acc[handle] = createUserStub(`${prefix}-${handle}`)\n return acc\n }, {}) as Record<(typeof handles)[number], User>\n const users = await Promise.all(\n handles\n .map((h) => prefix + '-' + h)\n .map(async (handle) => {\n const user = createUserStub(handle)\n await seedClient.createAccount(handle, user)\n user.did = seedClient.dids[handle]\n return user\n }),\n )\n return users.reduce((acc, user) => {\n const id = user.id.split('-')[1]\n acc[id].did = user.did\n return acc\n }, stubs)\n}\n\ntype ReplyFn = (\n replyAuthor: User,\n overridesOrCb?: Partial<AppBskyFeedPost.Record> | ReplyCb,\n maybeReplyCb?: ReplyCb,\n) => Promise<void>\n\ntype ReplyCb = (r: ReplyFn) => Promise<void>\n\nexport const TAG_BUMP_DOWN = 'down'\nexport const TAG_HIDE = 'hide'\n\nconst rootReplyFnBuilder = <T extends TestNetworkNoAppView>(\n sc: SeedClient<T>,\n root: RecordRef,\n parent: RecordRef,\n prevBreadcrumbs: string,\n posts: Record<\n string,\n | Awaited<ReturnType<SeedClient['post']>>\n | Awaited<ReturnType<SeedClient['reply']>>\n >,\n): ReplyFn => {\n let index = 0\n return async (\n replyAuthor: User,\n overridesOrCb?: Partial<AppBskyFeedPost.Record> | ReplyCb,\n maybeReplyCb?: ReplyCb,\n ) => {\n let overrides: Partial<AppBskyFeedPost.Record> | undefined\n let replyCb: ReplyCb | undefined\n if (overridesOrCb && typeof overridesOrCb === 'function') {\n replyCb = overridesOrCb\n } else {\n overrides = overridesOrCb\n replyCb = maybeReplyCb\n }\n\n const breadcrumbs = prevBreadcrumbs\n ? `${prevBreadcrumbs}.${index++}`\n : `${index++}`\n const text = breadcrumbs\n const reply = await sc.reply(\n replyAuthor.did,\n root,\n parent,\n text,\n undefined,\n undefined,\n overrides,\n )\n posts[breadcrumbs] = reply\n // Await for this post to be processed before replying to it.\n replyCb && (await sc.network.processAll())\n await replyCb?.(rootReplyFnBuilder(sc, root, reply.ref, breadcrumbs, posts))\n }\n}\n\nconst createThread = async <T extends TestNetworkNoAppView>(\n sc: SeedClient<T>,\n rootAuthor: User,\n overridesOrCb?: Partial<AppBskyFeedPost.Record> | ReplyCb,\n maybeReplyCb?: ReplyCb,\n) => {\n let overrides: Partial<AppBskyFeedPost.Record> | undefined\n let replyCb: ReplyCb | undefined\n if (overridesOrCb && typeof overridesOrCb === 'function') {\n replyCb = overridesOrCb\n } else {\n overrides = overridesOrCb\n replyCb = maybeReplyCb\n }\n\n const replies: Record<string, Awaited<ReturnType<SeedClient['reply']>>> = {}\n const breadcrumbs = ''\n const text = 'root'\n const root = await sc.post(\n rootAuthor.did,\n text,\n undefined,\n undefined,\n undefined,\n overrides,\n )\n // Await for this post to be processed before replying to it.\n replyCb && (await sc.network.processAll())\n await replyCb?.(\n rootReplyFnBuilder(sc, root.ref, root.ref, breadcrumbs, replies),\n )\n return { root, replies }\n}\n\nexport async function simple(sc: SeedClient<TestNetwork>, prefix = 'simple') {\n const users = await createUsers(sc, prefix, [\n 'op',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n const { op, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n await r(alice)\n await r(bob, async (r) => {\n await r(alice)\n })\n await r(carol)\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function long(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'long', [\n 'op',\n 'alice',\n 'bob',\n 'carol',\n 'dan',\n ] as const)\n const { op, alice, bob, carol, dan } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n })\n await r(op)\n })\n })\n\n await r(alice)\n await r(bob)\n await r(carol)\n\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(alice, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n })\n })\n })\n\n await r(alice)\n await r(bob)\n await r(carol)\n })\n\n await sc.like(op.did, r['5'].ref)\n await sc.like(bob.did, r['5'].ref)\n await sc.like(carol.did, r['5'].ref)\n await sc.like(dan.did, r['5'].ref)\n\n await sc.like(op.did, r['6'].ref)\n await sc.like(alice.did, r['6'].ref)\n await sc.like(carol.did, r['6'].ref)\n\n await sc.like(op.did, r['7'].ref)\n await sc.like(bob.did, r['7'].ref)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function deep(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'deep', ['op'] as const)\n const { op } = users\n\n let counter = 0\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n const recursiveReply = async (rFn: ReplyFn) => {\n if (counter < 18) {\n counter++\n await rFn(op, async (r) => recursiveReply(r))\n }\n }\n await recursiveReply(r)\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function branchingFactor(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bf', ['op', 'bob'] as const)\n const { op, bob } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n // This is the only case in this seed where a reply has 1 reply instead of 4,\n // to have cases of different lengths in the same tree.\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n // This is the only case in this seed where a reply has 5 replies instead of 4,\n // to have cases of different lengths in the same tree.\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function annotateMoreReplies(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'mr', ['op', 'alice'] as const)\n const { op, alice } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n // more replies... (below = 4)\n await r(alice, async (r) => {\n await r(alice)\n })\n await r(alice)\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n })\n })\n await r(alice)\n await r(alice)\n })\n })\n })\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n })\n })\n })\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n await r(alice)\n // more replies... (branchingFactor = 2)\n await r(alice)\n await r(alice)\n await r(alice)\n })\n await r(alice, async (r) => {\n await r(alice)\n await r(alice)\n })\n // more replies... (branchingFactor = 2)\n await r(alice)\n })\n await r(alice) // anchor reply not limited by branchingFactor\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function annotateOP(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'op', ['op', 'alice', 'bob'] as const)\n const { op, alice, bob } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n })\n await r(alice, async (r) => {\n await r(alice)\n })\n await r(op, async (r) => {\n await r(bob, async (r) => {\n await r(op)\n })\n })\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function sort(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'sort', [\n 'op',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n const { op, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // 0 likes\n await r(alice, async (r) => {\n await r(carol) // 0 likes\n await r(alice) // 2 likes\n await r(bob) // 1 like\n })\n // 3 likes\n await r(carol, async (r) => {\n await r(bob) // 1 like\n await r(carol) // 2 likes\n await r(alice) // 0 likes\n })\n // 2 likes\n await r(bob, async (r) => {\n await r(bob) // 2 likes\n await r(alice) // 1 like\n await r(carol) // 0 likes\n })\n })\n\n // likes depth 1\n await sc.like(alice.did, r['2'].ref)\n await sc.like(carol.did, r['2'].ref)\n await sc.like(op.did, r['1'].ref) // op like\n await sc.like(bob.did, r['1'].ref)\n await sc.like(carol.did, r['1'].ref)\n\n // likes depth 2\n await sc.like(bob.did, r['0.1'].ref)\n await sc.like(carol.did, r['0.1'].ref)\n await sc.like(op.did, r['0.2'].ref) // op like\n await sc.like(bob.did, r['1.1'].ref)\n await sc.like(carol.did, r['1.1'].ref)\n await sc.like(bob.did, r['1.0'].ref)\n await sc.like(bob.did, r['2.0'].ref)\n await sc.like(carol.did, r['2.0'].ref)\n await sc.like(bob.did, r['2.1'].ref)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function bumpOpAndViewer(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bumpOV', [\n 'op',\n 'viewer',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n const { op, viewer, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // 1 like\n await r(alice, async (r) => {\n await r(carol) // 0 likes\n await r(alice) // 2 likes\n await r(bob) // 1 like\n await r(viewer) // 0 likes\n await r(op) // 0 likes\n })\n // 3 likes\n await r(carol, async (r) => {\n await r(bob) // 1 like\n await r(carol) // 2 likes\n await r(op) // 0 likes\n await r(viewer) // 1 like\n await r(alice) // 0 likes\n })\n // 2 likes\n await r(bob, async (r) => {\n await r(viewer) // 0 likes\n await r(bob) // 4 likes\n await r(op) // 0 likes\n await r(alice) // 1 like\n await r(carol) // 1 like\n })\n // 0 likes\n await r(op, async (r) => {\n await r(viewer) // 0 likes\n await r(bob) // 0 likes\n await r(op) // 0 likes\n await r(alice) // 0 likes\n await r(carol) // 0 likes\n })\n // 0 likes\n await r(viewer, async (r) => {\n await r(bob) // 1 like\n await r(carol) // 1 like\n await r(op) // 0 likes\n await r(viewer) // 0 likes\n await r(alice) // 0 likes\n })\n })\n\n // likes depth 1\n await sc.like(alice.did, r['2'].ref)\n await sc.like(carol.did, r['2'].ref)\n await sc.like(viewer.did, r['0'].ref)\n await sc.like(op.did, r['1'].ref) // op like\n await sc.like(bob.did, r['1'].ref)\n await sc.like(carol.did, r['1'].ref)\n\n // likes depth 2\n await sc.like(bob.did, r['0.1'].ref)\n await sc.like(carol.did, r['0.1'].ref)\n await sc.like(op.did, r['0.2'].ref) // op like\n await sc.like(bob.did, r['1.1'].ref)\n await sc.like(carol.did, r['1.1'].ref)\n await sc.like(bob.did, r['1.0'].ref)\n await sc.like(alice.did, r['2.1'].ref)\n await sc.like(bob.did, r['2.1'].ref)\n await sc.like(carol.did, r['2.1'].ref)\n await sc.like(viewer.did, r['2.1'].ref)\n await sc.like(bob.did, r['1.3'].ref)\n await sc.like(bob.did, r['2.3'].ref)\n await sc.like(viewer.did, r['2.4'].ref)\n await sc.like(viewer.did, r['4.0'].ref)\n await sc.like(alice.did, r['4.1'].ref)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function bumpGroupSorting(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bumpGS', [\n 'op',\n 'viewer',\n 'alice',\n ] as const)\n const { op, viewer, alice } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(viewer)\n await r(op)\n await r(alice)\n await r(op)\n await r(viewer)\n await r(op)\n await r(alice)\n await r(viewer)\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function bumpFollows(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bumpF', [\n 'op',\n 'viewerF',\n 'viewerNoF',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n\n const { op, viewerF, viewerNoF, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(alice)\n await r(bob)\n await r(carol)\n await r(op)\n await r(viewerF)\n await r(viewerNoF)\n })\n\n await sc.follow(viewerF.did, alice.did)\n await sc.follow(viewerF.did, bob.did)\n // Does not follow carol.\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function blockDeletionAuth(\n sc: SeedClient<TestNetwork>,\n labelerDid: string,\n) {\n const users = await createUsers(sc, 'bda', [\n 'op',\n 'opBlocked',\n 'alice',\n 'auth',\n 'blocker',\n 'blocked',\n ] as const)\n\n const { op, opBlocked, alice, auth, blocker, blocked } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // 1p block, hidden for `blocked`.\n await r(blocker, async (r) => {\n await r(alice)\n })\n\n // 3p block, hidden for all.\n await r(opBlocked, async (r) => {\n await r(op)\n await r(alice)\n })\n\n // Deleted, hidden for all.\n await r(alice, async (r) => {\n await r(alice)\n })\n\n // User configured to only be seend by authenticated users.\n // Requires the test sets a `!no-unauthenticated` label for this user.\n await r(auth, async (r) => {\n // Another auth-only to show that the parent chain is preserved in the thread.\n await r(auth, async (r) => {\n await r(alice)\n })\n })\n })\n\n await sc.deletePost(alice.did, r['2'].ref.uri)\n await sc.block(blocker.did, blocked.did)\n await sc.block(op.did, opBlocked.did)\n\n const db = sc.network.bsky.db.db\n await createLabel(db, {\n src: labelerDid,\n uri: auth.did,\n cid: '',\n val: '!no-unauthenticated',\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function mutes(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'mutes', [\n 'op',\n 'opMuted',\n 'alice',\n 'muted',\n 'muter',\n ] as const)\n\n const { op, opMuted, alice, muted, muter } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(opMuted, async (r) => {\n await r(alice)\n await r(muted)\n })\n\n await r(muted, async (r) => {\n await r(opMuted)\n await r(alice)\n })\n })\n\n await sc.mute(op.did, opMuted.did)\n await sc.mute(muter.did, muted.did)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function threadgated(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'tg', [\n 'op',\n 'opMuted',\n 'viewer',\n 'alice',\n 'bob',\n ] as const)\n\n const { op, opMuted, alice, bob } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // Muted moves down below threadgated.\n await r(opMuted)\n\n // Threadgated moves down.\n await r(alice, async (r) => {\n await r(alice)\n await r(bob)\n await r(op) // OP moves up.\n })\n\n await r(bob, async (r) => {\n await r(alice)\n await r(bob) // Threadgated is omitted if fetched from the root.\n await r(op) // OP moves down.\n })\n })\n\n await sc.agent.app.bsky.feed.threadgate.create(\n {\n repo: op.did,\n rkey: root.ref.uri.rkey,\n },\n {\n post: root.ref.uriStr,\n createdAt: new Date().toISOString(),\n hiddenReplies: [r['1'].ref.uriStr, r['2.1'].ref.uriStr],\n },\n sc.getHeaders(op.did),\n )\n\n // Just throw a mute there to test the prioritization between muted and threadgated.\n await sc.mute(op.did, opMuted.did)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function tags(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'tags', [\n 'op',\n 'alice',\n 'down',\n 'following',\n 'hide',\n 'viewer',\n ] as const)\n\n const { op, alice, down, following, hide, viewer } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n await r(down)\n await r(hide)\n })\n await r(down, async (r) => {\n await r(alice)\n await r(down)\n await r(hide)\n })\n await r(hide, async (r) => {\n await r(alice)\n await r(down)\n await r(hide)\n })\n await r(op)\n await r(viewer)\n await r(following)\n })\n\n await sc.network.processAll()\n\n await sc.follow(viewer.did, following.did)\n\n const db = sc.network.bsky.db.db\n await createTag(db, { uri: r['1'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['0.1'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['1.1'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['2.1'].ref.uriStr, val: TAG_BUMP_DOWN })\n\n await createTag(db, { uri: r['2'].ref.uriStr, val: TAG_HIDE })\n await createTag(db, { uri: r['0.2'].ref.uriStr, val: TAG_HIDE })\n await createTag(db, { uri: r['1.2'].ref.uriStr, val: TAG_HIDE })\n await createTag(db, { uri: r['2.2'].ref.uriStr, val: TAG_HIDE })\n\n // Neither tag affect op, viewer.\n await createTag(db, { uri: r['3'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['4'].ref.uriStr, val: TAG_HIDE })\n\n // Tags affect following depending on the config to prioritize following.\n await createTag(db, { uri: r['5'].ref.uriStr, val: TAG_HIDE })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nconst createLabel = async (\n db: DatabaseSchema,\n opts: {\n src: string\n uri: string\n cid: string\n val: string\n exp?: string\n },\n) => {\n await db\n .insertInto('label')\n .values({\n uri: opts.uri,\n cid: opts.cid,\n val: opts.val,\n cts: new Date().toISOString(),\n exp: opts.exp ?? null,\n neg: false,\n src: opts.src,\n })\n .execute()\n}\n\nconst createTag = async (\n db: DatabaseSchema,\n opts: {\n uri: string\n val: string\n },\n) => {\n await db\n .updateTable('record')\n .set({\n tags: JSON.stringify([opts.val]),\n })\n .where('uri', '=', opts.uri)\n .returningAll()\n .execute()\n}\n"]}
|
|
1
|
+
{"version":3,"file":"thread-v2.js","sourceRoot":"","sources":["../../src/seed/thread-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppBskyFeedPost } from '@atproto/api'\nimport type { DatabaseSchema } from '@atproto/bsky'\nimport { TestNetwork } from '../network'\nimport { TestNetworkNoAppView } from '../network-no-appview'\nimport { RecordRef, SeedClient } from './client'\n\ntype User = {\n id: string\n did: string\n email: string\n handle: string\n password: string\n displayName: string\n description: string\n selfLabels: undefined\n}\n\nfunction createUserStub(name: string): User {\n return {\n id: name,\n // @ts-ignore overwritten during seeding\n did: undefined,\n email: `${name}@test.com`,\n handle: `${name}.test`,\n password: `${name}-pass`,\n displayName: name,\n description: `hi im ${name} label_me`,\n selfLabels: undefined,\n }\n}\n\nasync function createUsers<T extends readonly string[]>(\n seedClient: SeedClient<TestNetwork | TestNetworkNoAppView>,\n prefix: string,\n handles: T,\n) {\n const stubs = handles.reduce((acc, handle) => {\n acc[handle] = createUserStub(`${prefix}-${handle}`)\n return acc\n }, {}) as Record<(typeof handles)[number], User>\n const users = await Promise.all(\n handles\n .map((h) => prefix + '-' + h)\n .map(async (handle) => {\n const user = createUserStub(handle)\n await seedClient.createAccount(handle, user)\n user.did = seedClient.dids[handle]\n return user\n }),\n )\n return users.reduce((acc, user) => {\n const id = user.id.split('-')[1]\n acc[id].did = user.did\n return acc\n }, stubs)\n}\n\ntype ReplyFn = (\n replyAuthor: User,\n overridesOrCb?: Partial<AppBskyFeedPost.Record> | ReplyCb,\n maybeReplyCb?: ReplyCb,\n) => Promise<void>\n\ntype ReplyCb = (r: ReplyFn) => Promise<void>\n\nexport const TAG_BUMP_DOWN = 'down'\nexport const TAG_HIDE = 'hide'\n\nconst rootReplyFnBuilder = <T extends TestNetworkNoAppView>(\n sc: SeedClient<T>,\n root: RecordRef,\n parent: RecordRef,\n prevBreadcrumbs: string,\n posts: Record<\n string,\n | Awaited<ReturnType<SeedClient['post']>>\n | Awaited<ReturnType<SeedClient['reply']>>\n >,\n): ReplyFn => {\n let index = 0\n return async (\n replyAuthor: User,\n overridesOrCb?: Partial<AppBskyFeedPost.Record> | ReplyCb,\n maybeReplyCb?: ReplyCb,\n ) => {\n let overrides: Partial<AppBskyFeedPost.Record> | undefined\n let replyCb: ReplyCb | undefined\n if (overridesOrCb && typeof overridesOrCb === 'function') {\n replyCb = overridesOrCb\n } else {\n overrides = overridesOrCb\n replyCb = maybeReplyCb\n }\n\n const breadcrumbs = prevBreadcrumbs\n ? `${prevBreadcrumbs}.${index++}`\n : `${index++}`\n const text = breadcrumbs\n const reply = await sc.reply(\n replyAuthor.did,\n root,\n parent,\n text,\n undefined,\n undefined,\n overrides,\n )\n posts[breadcrumbs] = reply\n // Await for this post to be processed before replying to it.\n replyCb && (await sc.network.processAll())\n await replyCb?.(rootReplyFnBuilder(sc, root, reply.ref, breadcrumbs, posts))\n }\n}\n\nconst createThread = async <T extends TestNetworkNoAppView>(\n sc: SeedClient<T>,\n rootAuthor: User,\n overridesOrCb?: Partial<AppBskyFeedPost.Record> | ReplyCb,\n maybeReplyCb?: ReplyCb,\n) => {\n let overrides: Partial<AppBskyFeedPost.Record> | undefined\n let replyCb: ReplyCb | undefined\n if (overridesOrCb && typeof overridesOrCb === 'function') {\n replyCb = overridesOrCb\n } else {\n overrides = overridesOrCb\n replyCb = maybeReplyCb\n }\n\n const replies: Record<string, Awaited<ReturnType<SeedClient['reply']>>> = {}\n const breadcrumbs = ''\n const text = 'root'\n const root = await sc.post(\n rootAuthor.did,\n text,\n undefined,\n undefined,\n undefined,\n overrides,\n )\n // Await for this post to be processed before replying to it.\n replyCb && (await sc.network.processAll())\n await replyCb?.(\n rootReplyFnBuilder(sc, root.ref, root.ref, breadcrumbs, replies),\n )\n return { root, replies }\n}\n\nexport async function simple(sc: SeedClient<TestNetwork>, prefix = 'simple') {\n const users = await createUsers(sc, prefix, [\n 'op',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n const { op, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n await r(alice)\n await r(bob, async (r) => {\n await r(alice)\n })\n await r(carol)\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function long(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'long', [\n 'op',\n 'alice',\n 'bob',\n 'carol',\n 'dan',\n ] as const)\n const { op, alice, bob, carol, dan } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n })\n await r(op)\n })\n })\n\n await r(alice)\n await r(bob)\n await r(carol)\n\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(alice, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n })\n })\n })\n\n await r(alice)\n await r(bob)\n await r(carol)\n })\n\n await sc.like(op.did, r['5'].ref)\n await sc.like(bob.did, r['5'].ref)\n await sc.like(carol.did, r['5'].ref)\n await sc.like(dan.did, r['5'].ref)\n\n await sc.like(op.did, r['6'].ref)\n await sc.like(alice.did, r['6'].ref)\n await sc.like(carol.did, r['6'].ref)\n\n await sc.like(op.did, r['7'].ref)\n await sc.like(bob.did, r['7'].ref)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function deep(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'deep', ['op'] as const)\n const { op } = users\n\n let counter = 0\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n const recursiveReply = async (rFn: ReplyFn) => {\n if (counter < 18) {\n counter++\n await rFn(op, async (r) => recursiveReply(r))\n }\n }\n await recursiveReply(r)\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function branchingFactor(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bf', ['op', 'bob'] as const)\n const { op, bob } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n // This is the only case in this seed where a reply has 1 reply instead of 4,\n // to have cases of different lengths in the same tree.\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n await r(bob, async (r) => {\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n // This is the only case in this seed where a reply has 5 replies instead of 4,\n // to have cases of different lengths in the same tree.\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n await r(bob, async (r) => {\n await r(bob)\n await r(bob)\n await r(bob)\n await r(bob)\n })\n })\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function annotateMoreReplies(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'mr', ['op', 'alice'] as const)\n const { op, alice } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n // more replies... (below = 4)\n await r(alice, async (r) => {\n await r(alice)\n })\n await r(alice)\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n })\n })\n await r(alice)\n await r(alice)\n })\n })\n })\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n })\n })\n })\n await r(alice, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n await r(alice)\n // more replies... (branchingFactor = 2)\n await r(alice)\n await r(alice)\n await r(alice)\n })\n await r(alice, async (r) => {\n await r(alice)\n await r(alice)\n })\n // more replies... (branchingFactor = 2)\n await r(alice)\n })\n await r(alice) // anchor reply not limited by branchingFactor\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function annotateOP(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'op', ['op', 'alice', 'bob'] as const)\n const { op, alice, bob } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(op, async (r) => {\n await r(op, async (r) => {\n await r(op)\n })\n })\n await r(alice, async (r) => {\n await r(alice)\n })\n await r(op, async (r) => {\n await r(bob, async (r) => {\n await r(op)\n })\n })\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function sort(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'sort', [\n 'op',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n const { op, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // 0 likes\n await r(alice, async (r) => {\n await r(carol) // 0 likes\n await r(alice) // 2 likes\n await r(bob) // 1 like\n })\n // 3 likes\n await r(carol, async (r) => {\n await r(bob) // 1 like\n await r(carol) // 2 likes\n await r(alice) // 0 likes\n })\n // 2 likes\n await r(bob, async (r) => {\n await r(bob) // 2 likes\n await r(alice) // 1 like\n await r(carol) // 0 likes\n })\n })\n\n // likes depth 1\n await sc.like(alice.did, r['2'].ref)\n await sc.like(carol.did, r['2'].ref)\n await sc.like(op.did, r['1'].ref) // op like\n await sc.like(bob.did, r['1'].ref)\n await sc.like(carol.did, r['1'].ref)\n\n // likes depth 2\n await sc.like(bob.did, r['0.1'].ref)\n await sc.like(carol.did, r['0.1'].ref)\n await sc.like(op.did, r['0.2'].ref) // op like\n await sc.like(bob.did, r['1.1'].ref)\n await sc.like(carol.did, r['1.1'].ref)\n await sc.like(bob.did, r['1.0'].ref)\n await sc.like(bob.did, r['2.0'].ref)\n await sc.like(carol.did, r['2.0'].ref)\n await sc.like(bob.did, r['2.1'].ref)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function bumpOpAndViewer(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bumpOV', [\n 'op',\n 'viewer',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n const { op, viewer, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // 1 like\n await r(alice, async (r) => {\n await r(carol) // 0 likes\n await r(alice) // 2 likes\n await r(bob) // 1 like\n await r(viewer) // 0 likes\n await r(op) // 0 likes\n })\n // 3 likes\n await r(carol, async (r) => {\n await r(bob) // 1 like\n await r(carol) // 2 likes\n await r(op) // 0 likes\n await r(viewer) // 1 like\n await r(alice) // 0 likes\n })\n // 2 likes\n await r(bob, async (r) => {\n await r(viewer) // 0 likes\n await r(bob) // 4 likes\n await r(op) // 0 likes\n await r(alice) // 1 like\n await r(carol) // 1 like\n })\n // 0 likes\n await r(op, async (r) => {\n await r(viewer) // 0 likes\n await r(bob) // 0 likes\n await r(op) // 0 likes\n await r(alice) // 0 likes\n await r(carol) // 0 likes\n })\n // 0 likes\n await r(viewer, async (r) => {\n await r(bob) // 1 like\n await r(carol) // 1 like\n await r(op) // 0 likes\n await r(viewer) // 0 likes\n await r(alice) // 0 likes\n })\n })\n\n // likes depth 1\n await sc.like(alice.did, r['2'].ref)\n await sc.like(carol.did, r['2'].ref)\n await sc.like(viewer.did, r['0'].ref)\n await sc.like(op.did, r['1'].ref) // op like\n await sc.like(bob.did, r['1'].ref)\n await sc.like(carol.did, r['1'].ref)\n\n // likes depth 2\n await sc.like(bob.did, r['0.1'].ref)\n await sc.like(carol.did, r['0.1'].ref)\n await sc.like(op.did, r['0.2'].ref) // op like\n await sc.like(bob.did, r['1.1'].ref)\n await sc.like(carol.did, r['1.1'].ref)\n await sc.like(bob.did, r['1.0'].ref)\n await sc.like(alice.did, r['2.1'].ref)\n await sc.like(bob.did, r['2.1'].ref)\n await sc.like(carol.did, r['2.1'].ref)\n await sc.like(viewer.did, r['2.1'].ref)\n await sc.like(bob.did, r['1.3'].ref)\n await sc.like(bob.did, r['2.3'].ref)\n await sc.like(viewer.did, r['2.4'].ref)\n await sc.like(viewer.did, r['4.0'].ref)\n await sc.like(alice.did, r['4.1'].ref)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function bumpGroupSorting(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bumpGS', [\n 'op',\n 'viewer',\n 'alice',\n ] as const)\n const { op, viewer, alice } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(viewer)\n await r(op)\n await r(alice)\n await r(op)\n await r(viewer)\n await r(op)\n await r(alice)\n await r(viewer)\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function bumpFollows(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'bumpF', [\n 'op',\n 'viewerF',\n 'viewerNoF',\n 'alice',\n 'bob',\n 'carol',\n ] as const)\n\n const { op, viewerF, viewerNoF, alice, bob, carol } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(alice)\n await r(bob)\n await r(carol)\n await r(op)\n await r(viewerF)\n await r(viewerNoF)\n })\n\n await sc.follow(viewerF.did, alice.did)\n await sc.follow(viewerF.did, bob.did)\n // Does not follow carol.\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function blockDeletionAuth(\n sc: SeedClient<TestNetwork>,\n labelerDid: string,\n) {\n const users = await createUsers(sc, 'bda', [\n 'op',\n 'opBlocked',\n 'alice',\n 'auth',\n 'blocker',\n 'blocked',\n ] as const)\n\n const { op, opBlocked, alice, auth, blocker, blocked } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // 1p block, hidden for `blocked`.\n await r(blocker, async (r) => {\n await r(alice)\n })\n\n // 3p block, hidden for all.\n await r(opBlocked, async (r) => {\n await r(op)\n await r(alice)\n })\n\n // Deleted, hidden for all.\n await r(alice, async (r) => {\n await r(alice)\n })\n\n // User configured to only be seen by authenticated users.\n // Requires the test sets a `!no-unauthenticated` label for this user.\n await r(auth, async (r) => {\n // Another auth-only to show that the parent chain is preserved in the thread.\n await r(auth, async (r) => {\n await r(alice)\n })\n })\n })\n\n await sc.deletePost(alice.did, r['2'].ref.uri)\n await sc.block(blocker.did, blocked.did)\n await sc.block(op.did, opBlocked.did)\n\n const db = sc.network.bsky.db.db\n await createLabel(db, {\n src: labelerDid,\n uri: auth.did,\n cid: '',\n val: '!no-unauthenticated',\n })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function mutes(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'mutes', [\n 'op',\n 'opMuted',\n 'alice',\n 'muted',\n 'muter',\n ] as const)\n\n const { op, opMuted, alice, muted, muter } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(opMuted, async (r) => {\n await r(alice)\n await r(muted)\n })\n\n await r(muted, async (r) => {\n await r(opMuted)\n await r(alice)\n })\n })\n\n await sc.mute(op.did, opMuted.did)\n await sc.mute(muter.did, muted.did)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function threadgated(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'tg', [\n 'op',\n 'opMuted',\n 'viewer',\n 'alice',\n 'bob',\n ] as const)\n\n const { op, opMuted, alice, bob } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n // Muted moves down below threadgated.\n await r(opMuted)\n\n // Threadgated moves down.\n await r(alice, async (r) => {\n await r(alice)\n await r(bob)\n await r(op) // OP moves up.\n })\n\n await r(bob, async (r) => {\n await r(alice)\n await r(bob) // Threadgated is omitted if fetched from the root.\n await r(op) // OP moves down.\n })\n })\n\n await sc.agent.app.bsky.feed.threadgate.create(\n {\n repo: op.did,\n rkey: root.ref.uri.rkey,\n },\n {\n post: root.ref.uriStr,\n createdAt: new Date().toISOString(),\n hiddenReplies: [r['1'].ref.uriStr, r['2.1'].ref.uriStr],\n },\n sc.getHeaders(op.did),\n )\n\n // Just throw a mute there to test the prioritization between muted and threadgated.\n await sc.mute(op.did, opMuted.did)\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nexport async function tags(sc: SeedClient<TestNetwork>) {\n const users = await createUsers(sc, 'tags', [\n 'op',\n 'alice',\n 'down',\n 'following',\n 'hide',\n 'viewer',\n ] as const)\n\n const { op, alice, down, following, hide, viewer } = users\n\n const { root, replies: r } = await createThread(sc, op, async (r) => {\n await r(alice, async (r) => {\n await r(alice)\n await r(down)\n await r(hide)\n })\n await r(down, async (r) => {\n await r(alice)\n await r(down)\n await r(hide)\n })\n await r(hide, async (r) => {\n await r(alice)\n await r(down)\n await r(hide)\n })\n await r(op)\n await r(viewer)\n await r(following)\n })\n\n await sc.network.processAll()\n\n await sc.follow(viewer.did, following.did)\n\n const db = sc.network.bsky.db.db\n await createTag(db, { uri: r['1'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['0.1'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['1.1'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['2.1'].ref.uriStr, val: TAG_BUMP_DOWN })\n\n await createTag(db, { uri: r['2'].ref.uriStr, val: TAG_HIDE })\n await createTag(db, { uri: r['0.2'].ref.uriStr, val: TAG_HIDE })\n await createTag(db, { uri: r['1.2'].ref.uriStr, val: TAG_HIDE })\n await createTag(db, { uri: r['2.2'].ref.uriStr, val: TAG_HIDE })\n\n // Neither tag affect op, viewer.\n await createTag(db, { uri: r['3'].ref.uriStr, val: TAG_BUMP_DOWN })\n await createTag(db, { uri: r['4'].ref.uriStr, val: TAG_HIDE })\n\n // Tags affect following depending on the config to prioritize following.\n await createTag(db, { uri: r['5'].ref.uriStr, val: TAG_HIDE })\n\n return {\n seedClient: sc,\n users,\n root,\n r,\n }\n}\n\nconst createLabel = async (\n db: DatabaseSchema,\n opts: {\n src: string\n uri: string\n cid: string\n val: string\n exp?: string\n },\n) => {\n await db\n .insertInto('label')\n .values({\n uri: opts.uri,\n cid: opts.cid,\n val: opts.val,\n cts: new Date().toISOString(),\n exp: opts.exp ?? null,\n neg: false,\n src: opts.src,\n })\n .execute()\n}\n\nconst createTag = async (\n db: DatabaseSchema,\n opts: {\n uri: string\n val: string\n },\n) => {\n await db\n .updateTable('record')\n .set({\n tags: JSON.stringify([opts.val]),\n })\n .where('uri', '=', opts.uri)\n .returningAll()\n .execute()\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/dev-env",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.190",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Local development environment helper for atproto development",
|
|
6
6
|
"keywords": [
|
|
@@ -27,16 +27,16 @@
|
|
|
27
27
|
"multiformats": "^9.9.0",
|
|
28
28
|
"uint8arrays": "3.0.0",
|
|
29
29
|
"undici": "^6.14.1",
|
|
30
|
-
"@atproto/api": "^0.
|
|
31
|
-
"@atproto/bsky": "^0.0.
|
|
30
|
+
"@atproto/api": "^0.18.0",
|
|
31
|
+
"@atproto/bsky": "^0.0.196",
|
|
32
32
|
"@atproto/bsync": "^0.0.22",
|
|
33
33
|
"@atproto/common-web": "^0.4.3",
|
|
34
34
|
"@atproto/crypto": "^0.4.4",
|
|
35
35
|
"@atproto/identity": "^0.4.9",
|
|
36
36
|
"@atproto/lexicon": "^0.5.1",
|
|
37
|
-
"@atproto/ozone": "^0.1.
|
|
38
|
-
"@atproto/pds": "^0.4.
|
|
39
|
-
"@atproto/sync": "^0.1.
|
|
37
|
+
"@atproto/ozone": "^0.1.155",
|
|
38
|
+
"@atproto/pds": "^0.4.193",
|
|
39
|
+
"@atproto/sync": "^0.1.36",
|
|
40
40
|
"@atproto/syntax": "^0.4.1",
|
|
41
41
|
"@atproto/xrpc-server": "^0.9.5"
|
|
42
42
|
},
|
package/src/bsky.ts
CHANGED
|
@@ -83,8 +83,11 @@ export class TestBsky {
|
|
|
83
83
|
bigThreadUris: new Set(),
|
|
84
84
|
maxThreadParents: cfg.maxThreadParents ?? 50,
|
|
85
85
|
disableSsrfProtection: true,
|
|
86
|
+
searchTagsHide: new Set(),
|
|
86
87
|
threadTagsBumpDown: new Set(),
|
|
87
88
|
threadTagsHide: new Set(),
|
|
89
|
+
visibilityTagHide: '',
|
|
90
|
+
visibilityTagRankPrefix: '',
|
|
88
91
|
debugFieldAllowedDids: new Set(),
|
|
89
92
|
...cfg,
|
|
90
93
|
adminPasswords: [ADMIN_PASSWORD],
|
package/src/seed/thread-v2.ts
CHANGED
|
@@ -698,7 +698,7 @@ export async function blockDeletionAuth(
|
|
|
698
698
|
await r(alice)
|
|
699
699
|
})
|
|
700
700
|
|
|
701
|
-
// User configured to only be
|
|
701
|
+
// User configured to only be seen by authenticated users.
|
|
702
702
|
// Requires the test sets a `!no-unauthenticated` label for this user.
|
|
703
703
|
await r(auth, async (r) => {
|
|
704
704
|
// Another auth-only to show that the parent chain is preserved in the thread.
|