@atproto/dev-env 0.5.25 → 0.5.27
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 +39 -0
- package/dist/bsky.d.ts +1 -1
- package/dist/bsky.d.ts.map +1 -1
- package/dist/bsky.js.map +1 -1
- package/dist/bsync.d.ts +1 -1
- package/dist/bsync.d.ts.map +1 -1
- package/dist/bsync.js.map +1 -1
- package/dist/feed-gen.d.ts +2 -2
- package/dist/feed-gen.d.ts.map +1 -1
- package/dist/feed-gen.js.map +1 -1
- package/dist/introspect.d.ts +6 -6
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js.map +1 -1
- package/dist/mock/index.d.ts +1 -1
- package/dist/mock/index.d.ts.map +1 -1
- package/dist/mock/index.js.map +1 -1
- package/dist/moderator-client.d.ts +3 -3
- package/dist/moderator-client.d.ts.map +1 -1
- package/dist/moderator-client.js +2 -0
- package/dist/moderator-client.js.map +1 -1
- package/dist/network-no-appview.d.ts +2 -2
- package/dist/network-no-appview.d.ts.map +1 -1
- package/dist/network-no-appview.js.map +1 -1
- package/dist/network.d.ts +1 -1
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js.map +1 -1
- package/dist/ozone.d.ts +2 -2
- package/dist/ozone.d.ts.map +1 -1
- package/dist/ozone.js.map +1 -1
- package/dist/pds.d.ts +1 -1
- package/dist/pds.d.ts.map +1 -1
- package/dist/pds.js.map +1 -1
- package/dist/plc.d.ts +1 -1
- package/dist/plc.d.ts.map +1 -1
- package/dist/plc.js.map +1 -1
- package/dist/seed/author-feed.d.ts +1 -1
- package/dist/seed/author-feed.d.ts.map +1 -1
- package/dist/seed/author-feed.js.map +1 -1
- package/dist/seed/basic.d.ts +2 -2
- package/dist/seed/basic.d.ts.map +1 -1
- package/dist/seed/basic.js.map +1 -1
- package/dist/seed/client.d.ts +5 -5
- package/dist/seed/client.d.ts.map +1 -1
- package/dist/seed/client.js +1 -1
- package/dist/seed/client.js.map +1 -1
- package/dist/seed/follows.d.ts +1 -1
- package/dist/seed/follows.d.ts.map +1 -1
- package/dist/seed/follows.js.map +1 -1
- package/dist/seed/likes.d.ts +1 -1
- package/dist/seed/likes.d.ts.map +1 -1
- package/dist/seed/likes.js.map +1 -1
- package/dist/seed/quotes.d.ts +1 -1
- package/dist/seed/quotes.d.ts.map +1 -1
- package/dist/seed/quotes.js.map +1 -1
- package/dist/seed/reposts.d.ts +1 -1
- package/dist/seed/reposts.d.ts.map +1 -1
- package/dist/seed/reposts.js.map +1 -1
- package/dist/seed/thread-v2.d.ts +2 -2
- package/dist/seed/thread-v2.d.ts.map +1 -1
- package/dist/seed/thread-v2.js.map +1 -1
- package/dist/seed/users-bulk.d.ts +1 -1
- package/dist/seed/users-bulk.d.ts.map +1 -1
- package/dist/seed/users-bulk.js.map +1 -1
- package/dist/seed/users.d.ts +1 -1
- package/dist/seed/users.d.ts.map +1 -1
- package/dist/seed/users.js.map +1 -1
- package/dist/seed/verifications.d.ts +2 -2
- package/dist/seed/verifications.d.ts.map +1 -1
- package/dist/seed/verifications.js.map +1 -1
- package/dist/service-profile-lexicon.d.ts +1 -1
- package/dist/service-profile-lexicon.d.ts.map +1 -1
- package/dist/service-profile-lexicon.js.map +1 -1
- package/dist/service-profile-ozone.d.ts +3 -3
- package/dist/service-profile-ozone.d.ts.map +1 -1
- package/dist/service-profile-ozone.js.map +1 -1
- package/dist/service-profile.d.ts +3 -3
- package/dist/service-profile.d.ts.map +1 -1
- package/dist/service-profile.js.map +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +4 -4
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js.map +1 -1
- package/package.json +14 -14
- package/src/bsky.ts +1 -1
- package/src/bsync.ts +1 -1
- package/src/feed-gen.ts +3 -3
- package/src/introspect.ts +6 -6
- package/src/mock/index.ts +4 -4
- package/src/moderator-client.ts +13 -13
- package/src/network-no-appview.ts +2 -2
- package/src/network.ts +1 -1
- package/src/ozone.ts +2 -2
- package/src/pds.ts +1 -1
- package/src/plc.ts +1 -1
- package/src/seed/author-feed.ts +1 -1
- package/src/seed/basic.ts +3 -3
- package/src/seed/client.ts +10 -5
- package/src/seed/follows.ts +1 -1
- package/src/seed/likes.ts +1 -1
- package/src/seed/quotes.ts +1 -1
- package/src/seed/reposts.ts +1 -1
- package/src/seed/thread-v2.ts +4 -4
- package/src/seed/users-bulk.ts +1 -1
- package/src/seed/users.ts +1 -1
- package/src/seed/verifications.ts +2 -2
- package/src/service-profile-lexicon.ts +2 -2
- package/src/service-profile-ozone.ts +4 -4
- package/src/service-profile.ts +3 -3
- package/src/types.ts +5 -5
- package/src/util.ts +4 -4
package/dist/network.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,WAAW,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,cAAc,GAAG,OAAO,CAAA;AAC9B,MAAM,cAAc,GAAG,YAAY,CAAA;AAEnC,MAAM,OAAO,WAAY,SAAQ,oBAAoB;IACnD,YACS,GAAY,EACZ,GAAY,EACZ,KAAgB,EAChB,IAAc,EACd,KAAgB,EAChB,UAA6B;QAEpC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;mBAPR,GAAG;mBACH,GAAG;qBACH,KAAK;oBACL,IAAI;qBACJ,KAAK;0BACL,UAAU;IAGnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,MAAM,GAA8B,EAAE;QAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;QACxC,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;QACzE,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAA;QACvD,MAAM,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAA;QACjD,MAAM,gBAAgB,GACpB,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;QAE3D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QAElD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;QAEzD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YACzC,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,GAAG,MAAM,CAAC,GAAG;YACb,cAAc,EAAE,KAAK;YACrB,IAAI,EAAE,MAAM,OAAO,EAAE;SACtB,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,oBAAoB,SAAS,EAAE,CAAA;QAEhD,2EAA2E;QAC3E,uCAAuC;QACvC,MAAM,mBAAmB,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAC1D,aAAa,EACb,QAAQ,CACT,CAAA;QACD,MAAM,uBAAuB,GAC3B,MAAM,uBAAuB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAErD,MAAM,WAAW,GAAG,eAAe,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;YACnC,OAAO,EAAE,CAAC,WAAW,CAAC;YACtB,KAAK,EAAE,aAAa;SACrB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACjC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,GAAG,CAAC,GAAG;YACf,OAAO;YACP,WAAW;YACX,QAAQ,EAAE,KAAK,CAAC,GAAG;YACnB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;YACxC,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,kBAAkB,OAAO,EAAE;YACzC,gBAAgB,EAAE,WAAW,gBAAgB,EAAE;YAC/C,aAAa;YACb,SAAS;YACT,aAAa,EAAE,mBAAmB,CAAC,GAAG;YACtC,oBAAoB,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,eAAe,CAAC;YAChE,8GAA8G;YAC9G,UAAU,EACR,mEAAmE;YACrE,GAAG,MAAM,CAAC,IAAI;SACf,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YAC/B,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,cAAc,EAAE,IAAI,CAAC,GAAG;YACxB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS;YACtC,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,mBAAmB,CAAC,GAAG;YACtC,mBAAmB,EAAE,uBAAuB,CAAC,GAAG;YAChD,GAAG,MAAM,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,mGAAmG;QACnG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,GAAG,CAAC,GAAG;YACf,UAAU,EAAE,mBAAmB,CAAC,GAAG;YACnC,SAAS,EAAE,mBAAmB,CAAC,GAAG;YAClC,gBAAgB,EAAE,SAAS,gBAAgB,IAAI,IAAI,EAAE;YACrD,aAAa;YACb,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS;YAClC,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,GAAG,CAAC,GAAG;YACf,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;YAC/B,WAAW,EAAE,mBAAmB,CAAC,GAAG;YACpC,WAAW,EAAE,GAAG,CAAC,GAAG;YACpB,gBAAgB,EAAE,MAAM;YACxB,GAAG,MAAM,CAAC,KAAK;SAChB,CAAC,CAAA;QAEF,MAAM,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,mBAAmB,CAAC,aAAa,EAAE,CAAA;QAEzC,MAAM,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC5C,MAAM,uBAAuB,CAAC,aAAa,EAAE,CAAA;QAE7C,MAAM,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAChD,MAAM,KAAK,CAAC,cAAc,EAAE,CAAA;QAE5B,MAAM,aAAa,CAAC,UAAU,EAAE,CAAA;QAChC,MAAM,GAAG,CAAC,UAAU,EAAE,CAAA;QACtB,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC,CAAA;QAC5D,MAAM,aAAa,CAAC,KAAK,EAAE,CAAA;QAE3B,yLAAyL;QACzL,MAAM,qBAAqB,GACzB,MAAM,mBAAmB,CAAC,gCAAgC,EAAE,CAAA;QAC9D,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,qBAAqB,CAAA;QAChE,CAAC;QAED,IAAI,UAAU,GAAiC,SAAS,CAAA;QACxD,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC5B,UAAU,GAAG,MAAM,gBAAgB,CAAC,KAAK,CACvC,MAAM,CAAC,UAAU,CAAC,IAAI,EACtB,GAAG,EACH,GAAG,EACH,KAAK,EACL,IAAI,EACJ,KAAK,CACN,CAAA;QACH,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAO,GAAG,IAAI;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QACzB,2DAA2D;QAC3D,mCAAmC;QACnC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAM;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QACnD,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC,UAAU,EAAE,CAAA;YACtB,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,CAAA;YAC1C,kHAAkH;YAClH,yFAAyF;YACzF,IAAI,YAAY,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;gBAC5C,OAAM;YACR,CAAC;YACD,MAAM,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,IAAI,CAAC,CAAA;IACnE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAgB;QAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAA;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CACjC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EACjC,OAAO,CACR,CAAA;QACD,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,GAAW,EAAE,GAAY;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC;YACjC,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS;YACvC,GAAG;YACH,OAAO;SACR,CAAC,CAAA;QACF,OAAO,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACjB,QAAQ,GAAG,cAAc,EACzB,QAAQ,GAAG,cAAc,GAI1B;QACC,OAAO;YACL,aAAa,EACX,QAAQ;gBACR,WAAW,CAAC,QAAQ,CAClB,WAAW,CAAC,UAAU,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,EAAE,MAAM,CAAC,EACzD,WAAW,CACZ;SACJ,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACzB,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,CAAC;gBACjB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBAChB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;aACzB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF","sourcesContent":["import assert from 'node:assert'\nimport getPort from 'get-port'\nimport * as uint8arrays from 'uint8arrays'\nimport { allFulfilled, wait } from '@atproto/common-web'\nimport { createServiceJwt } from '@atproto/xrpc-server'\nimport { TestBsky } from './bsky.js'\nimport { TestBsync } from './bsync.js'\nimport { EXAMPLE_LABELER } from './const.js'\nimport { IntrospectServer } from './introspect.js'\nimport { TestNetworkNoAppView } from './network-no-appview.js'\nimport { TestOzone } from './ozone.js'\nimport { TestPds } from './pds.js'\nimport { TestPlc } from './plc.js'\nimport { LexiconAuthorityProfile } from './service-profile-lexicon.js'\nimport { OzoneServiceProfile } from './service-profile-ozone.js'\nimport { TestServerParams } from './types.js'\nimport { mockNetworkUtilities } from './util.js'\n\nconst ADMIN_USERNAME = 'admin'\nconst ADMIN_PASSWORD = 'admin-pass'\n\nexport class TestNetwork extends TestNetworkNoAppView {\n constructor(\n public plc: TestPlc,\n public pds: TestPds,\n public bsync: TestBsync,\n public bsky: TestBsky,\n public ozone: TestOzone,\n public introspect?: IntrospectServer,\n ) {\n super(plc, pds)\n }\n\n static async create(\n params: Partial<TestServerParams> = {},\n ): Promise<TestNetwork> {\n const redisHost = process.env.REDIS_HOST\n const dbPostgresUrl = params.dbPostgresUrl || process.env.DB_POSTGRES_URL\n assert(dbPostgresUrl, 'Missing postgres url for tests')\n assert(redisHost, 'Missing redis host for tests')\n const dbPostgresSchema =\n params.dbPostgresSchema || process.env.DB_POSTGRES_SCHEMA\n\n const plc = await TestPlc.create(params.plc ?? {})\n\n const bskyPort = params.bsky?.port ?? (await getPort())\n const pdsPort = params.pds?.port ?? (await getPort())\n const ozonePort = params.ozone?.port ?? (await getPort())\n\n const thirdPartyPds = await TestPds.create({\n didPlcUrl: plc.url,\n ...params.pds,\n inviteRequired: false,\n port: await getPort(),\n })\n\n const ozoneUrl = `http://localhost:${ozonePort}`\n\n // @TODO (?) rework the ServiceProfile to live on a separate PDS instead of\n // requiring to migrate to the main PDS\n const ozoneServiceProfile = await OzoneServiceProfile.create(\n thirdPartyPds,\n ozoneUrl,\n )\n const lexiconAuthorityProfile =\n await LexiconAuthorityProfile.create(thirdPartyPds)\n\n const bsyncApiKey = 'bsync-api-key'\n const bsync = await TestBsync.create({\n apiKeys: [bsyncApiKey],\n dbUrl: dbPostgresUrl,\n })\n\n const bsky = await TestBsky.create({\n port: bskyPort,\n plcUrl: plc.url,\n pdsPort,\n bsyncApiKey,\n bsyncUrl: bsync.url,\n rolodexUrl: process.env.BSKY_ROLODEX_URL,\n rolodexIgnoreBadTls: true,\n repoProvider: `ws://localhost:${pdsPort}`,\n dbPostgresSchema: `appview_${dbPostgresSchema}`,\n dbPostgresUrl,\n redisHost,\n modServiceDid: ozoneServiceProfile.did,\n labelsFromIssuerDids: [ozoneServiceProfile.did, EXAMPLE_LABELER],\n // Using a static private key results in a static DID, which is useful for e2e tests with the social-app repo.\n privateKey:\n '3f916c70dc69e4c5e83877f013325b11ecac31742e6a42f5c4fb240d0703d9d5=',\n ...params.bsky,\n })\n\n const pds = await TestPds.create({\n port: pdsPort,\n didPlcUrl: plc.url,\n bskyAppViewUrl: bsky.url,\n bskyAppViewDid: bsky.ctx.cfg.serverDid,\n modServiceUrl: ozoneUrl,\n modServiceDid: ozoneServiceProfile.did,\n lexiconDidAuthority: lexiconAuthorityProfile.did,\n ...params.pds,\n })\n\n // mock before any events start flowing from pds so that we don't miss e.g. any handle resolutions.\n mockNetworkUtilities(pds, bsky)\n\n const ozone = await TestOzone.create({\n port: ozonePort,\n plcUrl: plc.url,\n signingKey: ozoneServiceProfile.key,\n serverDid: ozoneServiceProfile.did,\n dbPostgresSchema: `ozone_${dbPostgresSchema || 'db'}`,\n dbPostgresUrl,\n appviewUrl: bsky.url,\n appviewDid: bsky.ctx.cfg.serverDid,\n appviewPushEvents: true,\n pdsUrl: pds.url,\n pdsDid: pds.ctx.cfg.service.did,\n verifierDid: ozoneServiceProfile.did,\n verifierUrl: pds.url,\n verifierPassword: 'temp',\n ...params.ozone,\n })\n\n await ozoneServiceProfile.migrateTo(pds)\n await ozoneServiceProfile.createRecords()\n\n await lexiconAuthorityProfile.migrateTo(pds)\n await lexiconAuthorityProfile.createRecords()\n\n await ozone.addAdminDid(ozoneServiceProfile.did)\n await ozone.createPolicies()\n\n await thirdPartyPds.processAll()\n await pds.processAll()\n await ozone.processAll()\n await bsky.sub.processAll()\n await bsky.bsyncSub.processAll(await bsync.getStreamHeads())\n await thirdPartyPds.close()\n\n // Weird but if we do this before pds.processAll() somehow appview loses this user and tests in different parts fail because appview doesn't return this user in various contexts anymore\n const ozoneVerifierPassword =\n await ozoneServiceProfile.createAppPasswordForVerification()\n if (ozone.daemon.ctx.cfg.verifier) {\n ozone.daemon.ctx.cfg.verifier.password = ozoneVerifierPassword\n }\n\n let introspect: IntrospectServer | undefined = undefined\n if (params.introspect?.port) {\n introspect = await IntrospectServer.start(\n params.introspect.port,\n plc,\n pds,\n bsync,\n bsky,\n ozone,\n )\n }\n\n return new TestNetwork(plc, pds, bsync, bsky, ozone, introspect)\n }\n\n async processFullSubscription(timeout = 5000) {\n const sub = this.bsky.sub\n // If the subscription is not running, there is no point in\n // waiting for it to process events\n if (!sub.running) return\n const start = Date.now()\n const lastSeq = await this.pds.ctx.sequencer.curr()\n if (!lastSeq) return\n while (Date.now() - start < timeout) {\n await sub.processAll()\n const runnerCursor = await sub.getCursor()\n // if subscription claims to be done, ensure we are at the most recent cursor from PDS, else wait to process again\n // (the subscription may claim to be finished before the PDS has even emitted it's event)\n if (runnerCursor && runnerCursor >= lastSeq) {\n return\n }\n await wait(5)\n }\n throw new Error(`Sequence was not processed within ${timeout}ms`)\n }\n\n async processAll(timeout?: number) {\n await this.pds.processAll()\n await this.ozone.processAll()\n await this.bsky.sub.processAll()\n await this.bsky.bsyncSub.processAll(\n await this.bsync.getStreamHeads(),\n timeout,\n )\n await this.processFullSubscription(timeout)\n }\n\n async serviceHeaders(did: string, lxm: string, aud?: string) {\n const keypair = await this.pds.ctx.actorStore.keypair(did)\n const jwt = await createServiceJwt({\n iss: did,\n aud: aud ?? this.bsky.ctx.cfg.serverDid,\n lxm,\n keypair,\n })\n return { authorization: `Bearer ${jwt}` }\n }\n\n async adminHeaders({\n username = ADMIN_USERNAME,\n password = ADMIN_PASSWORD,\n }: {\n username?: string\n password?: string\n }) {\n return {\n authorization:\n 'Basic ' +\n uint8arrays.toString(\n uint8arrays.fromString(`${username}:${password}`, 'utf8'),\n 'base64pad',\n ),\n }\n }\n\n async close() {\n try {\n await this.processAll()\n } finally {\n await allFulfilled([\n ...this.feedGens.map(async (fg) => fg.close()),\n this.ozone.close(),\n this.bsky.close(),\n this.bsync.close(),\n this.pds.close(),\n this.plc.close(),\n this.introspect?.close(),\n ])\n }\n }\n\n async [Symbol.asyncDispose]() {\n await this.close()\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport getPort from 'get-port'\nimport * as uint8arrays from 'uint8arrays'\nimport { allFulfilled, wait } from '@atproto/common-web'\nimport { createServiceJwt } from '@atproto/xrpc-server'\nimport { TestBsky } from './bsky.js'\nimport { TestBsync } from './bsync.js'\nimport { EXAMPLE_LABELER } from './const.js'\nimport { IntrospectServer } from './introspect.js'\nimport { TestNetworkNoAppView } from './network-no-appview.js'\nimport { TestOzone } from './ozone.js'\nimport { TestPds } from './pds.js'\nimport { TestPlc } from './plc.js'\nimport { LexiconAuthorityProfile } from './service-profile-lexicon.js'\nimport { OzoneServiceProfile } from './service-profile-ozone.js'\nimport type { TestServerParams } from './types.js'\nimport { mockNetworkUtilities } from './util.js'\n\nconst ADMIN_USERNAME = 'admin'\nconst ADMIN_PASSWORD = 'admin-pass'\n\nexport class TestNetwork extends TestNetworkNoAppView {\n constructor(\n public plc: TestPlc,\n public pds: TestPds,\n public bsync: TestBsync,\n public bsky: TestBsky,\n public ozone: TestOzone,\n public introspect?: IntrospectServer,\n ) {\n super(plc, pds)\n }\n\n static async create(\n params: Partial<TestServerParams> = {},\n ): Promise<TestNetwork> {\n const redisHost = process.env.REDIS_HOST\n const dbPostgresUrl = params.dbPostgresUrl || process.env.DB_POSTGRES_URL\n assert(dbPostgresUrl, 'Missing postgres url for tests')\n assert(redisHost, 'Missing redis host for tests')\n const dbPostgresSchema =\n params.dbPostgresSchema || process.env.DB_POSTGRES_SCHEMA\n\n const plc = await TestPlc.create(params.plc ?? {})\n\n const bskyPort = params.bsky?.port ?? (await getPort())\n const pdsPort = params.pds?.port ?? (await getPort())\n const ozonePort = params.ozone?.port ?? (await getPort())\n\n const thirdPartyPds = await TestPds.create({\n didPlcUrl: plc.url,\n ...params.pds,\n inviteRequired: false,\n port: await getPort(),\n })\n\n const ozoneUrl = `http://localhost:${ozonePort}`\n\n // @TODO (?) rework the ServiceProfile to live on a separate PDS instead of\n // requiring to migrate to the main PDS\n const ozoneServiceProfile = await OzoneServiceProfile.create(\n thirdPartyPds,\n ozoneUrl,\n )\n const lexiconAuthorityProfile =\n await LexiconAuthorityProfile.create(thirdPartyPds)\n\n const bsyncApiKey = 'bsync-api-key'\n const bsync = await TestBsync.create({\n apiKeys: [bsyncApiKey],\n dbUrl: dbPostgresUrl,\n })\n\n const bsky = await TestBsky.create({\n port: bskyPort,\n plcUrl: plc.url,\n pdsPort,\n bsyncApiKey,\n bsyncUrl: bsync.url,\n rolodexUrl: process.env.BSKY_ROLODEX_URL,\n rolodexIgnoreBadTls: true,\n repoProvider: `ws://localhost:${pdsPort}`,\n dbPostgresSchema: `appview_${dbPostgresSchema}`,\n dbPostgresUrl,\n redisHost,\n modServiceDid: ozoneServiceProfile.did,\n labelsFromIssuerDids: [ozoneServiceProfile.did, EXAMPLE_LABELER],\n // Using a static private key results in a static DID, which is useful for e2e tests with the social-app repo.\n privateKey:\n '3f916c70dc69e4c5e83877f013325b11ecac31742e6a42f5c4fb240d0703d9d5=',\n ...params.bsky,\n })\n\n const pds = await TestPds.create({\n port: pdsPort,\n didPlcUrl: plc.url,\n bskyAppViewUrl: bsky.url,\n bskyAppViewDid: bsky.ctx.cfg.serverDid,\n modServiceUrl: ozoneUrl,\n modServiceDid: ozoneServiceProfile.did,\n lexiconDidAuthority: lexiconAuthorityProfile.did,\n ...params.pds,\n })\n\n // mock before any events start flowing from pds so that we don't miss e.g. any handle resolutions.\n mockNetworkUtilities(pds, bsky)\n\n const ozone = await TestOzone.create({\n port: ozonePort,\n plcUrl: plc.url,\n signingKey: ozoneServiceProfile.key,\n serverDid: ozoneServiceProfile.did,\n dbPostgresSchema: `ozone_${dbPostgresSchema || 'db'}`,\n dbPostgresUrl,\n appviewUrl: bsky.url,\n appviewDid: bsky.ctx.cfg.serverDid,\n appviewPushEvents: true,\n pdsUrl: pds.url,\n pdsDid: pds.ctx.cfg.service.did,\n verifierDid: ozoneServiceProfile.did,\n verifierUrl: pds.url,\n verifierPassword: 'temp',\n ...params.ozone,\n })\n\n await ozoneServiceProfile.migrateTo(pds)\n await ozoneServiceProfile.createRecords()\n\n await lexiconAuthorityProfile.migrateTo(pds)\n await lexiconAuthorityProfile.createRecords()\n\n await ozone.addAdminDid(ozoneServiceProfile.did)\n await ozone.createPolicies()\n\n await thirdPartyPds.processAll()\n await pds.processAll()\n await ozone.processAll()\n await bsky.sub.processAll()\n await bsky.bsyncSub.processAll(await bsync.getStreamHeads())\n await thirdPartyPds.close()\n\n // Weird but if we do this before pds.processAll() somehow appview loses this user and tests in different parts fail because appview doesn't return this user in various contexts anymore\n const ozoneVerifierPassword =\n await ozoneServiceProfile.createAppPasswordForVerification()\n if (ozone.daemon.ctx.cfg.verifier) {\n ozone.daemon.ctx.cfg.verifier.password = ozoneVerifierPassword\n }\n\n let introspect: IntrospectServer | undefined = undefined\n if (params.introspect?.port) {\n introspect = await IntrospectServer.start(\n params.introspect.port,\n plc,\n pds,\n bsync,\n bsky,\n ozone,\n )\n }\n\n return new TestNetwork(plc, pds, bsync, bsky, ozone, introspect)\n }\n\n async processFullSubscription(timeout = 5000) {\n const sub = this.bsky.sub\n // If the subscription is not running, there is no point in\n // waiting for it to process events\n if (!sub.running) return\n const start = Date.now()\n const lastSeq = await this.pds.ctx.sequencer.curr()\n if (!lastSeq) return\n while (Date.now() - start < timeout) {\n await sub.processAll()\n const runnerCursor = await sub.getCursor()\n // if subscription claims to be done, ensure we are at the most recent cursor from PDS, else wait to process again\n // (the subscription may claim to be finished before the PDS has even emitted it's event)\n if (runnerCursor && runnerCursor >= lastSeq) {\n return\n }\n await wait(5)\n }\n throw new Error(`Sequence was not processed within ${timeout}ms`)\n }\n\n async processAll(timeout?: number) {\n await this.pds.processAll()\n await this.ozone.processAll()\n await this.bsky.sub.processAll()\n await this.bsky.bsyncSub.processAll(\n await this.bsync.getStreamHeads(),\n timeout,\n )\n await this.processFullSubscription(timeout)\n }\n\n async serviceHeaders(did: string, lxm: string, aud?: string) {\n const keypair = await this.pds.ctx.actorStore.keypair(did)\n const jwt = await createServiceJwt({\n iss: did,\n aud: aud ?? this.bsky.ctx.cfg.serverDid,\n lxm,\n keypair,\n })\n return { authorization: `Bearer ${jwt}` }\n }\n\n async adminHeaders({\n username = ADMIN_USERNAME,\n password = ADMIN_PASSWORD,\n }: {\n username?: string\n password?: string\n }) {\n return {\n authorization:\n 'Basic ' +\n uint8arrays.toString(\n uint8arrays.fromString(`${username}:${password}`, 'utf8'),\n 'base64pad',\n ),\n }\n }\n\n async close() {\n try {\n await this.processAll()\n } finally {\n await allFulfilled([\n ...this.feedGens.map(async (fg) => fg.close()),\n this.ozone.close(),\n this.bsky.close(),\n this.bsync.close(),\n this.pds.close(),\n this.plc.close(),\n this.introspect?.close(),\n ])\n }\n }\n\n async [Symbol.asyncDispose]() {\n await this.close()\n }\n}\n"]}
|
package/dist/ozone.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AtpAgent } from '@atproto/api';
|
|
2
|
-
import { Keypair } from '@atproto/crypto';
|
|
2
|
+
import { type Keypair } from '@atproto/crypto';
|
|
3
3
|
import * as ozone from '@atproto/ozone';
|
|
4
4
|
import { ModeratorClient } from './moderator-client.js';
|
|
5
|
-
import { DidAndKey, OzoneConfig } from './types.js';
|
|
5
|
+
import type { DidAndKey, OzoneConfig } from './types.js';
|
|
6
6
|
export declare class TestOzone {
|
|
7
7
|
url: string;
|
|
8
8
|
port: number;
|
package/dist/ozone.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ozone.d.ts","sourceRoot":"","sources":["../src/ozone.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,OAAO,EAAoB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"ozone.d.ts","sourceRoot":"","sources":["../src/ozone.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,iBAAiB,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxD,qBAAa,SAAS;IAEX,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,KAAK,CAAC,YAAY;IAC1B,MAAM,EAAE,KAAK,CAAC,WAAW;IACzB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,SAAS;IAP/B,YACS,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,CAAC,YAAY,EAC1B,MAAM,EAAE,KAAK,CAAC,WAAW,EACzB,UAAU,EAAE,SAAS,EACrB,cAAc,EAAE,SAAS,EACzB,WAAW,EAAE,SAAS,EAC3B;IAEJ,OAAa,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CA4E3D;IAED,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAE1B;IAED,QAAQ,IAAI,QAAQ,CAInB;IAED,YAAY,oBAEX;IAEK,WAAW,CAAC,GAAG,EAAE,MAAM,iBAU5B;IAEK,eAAe,CAAC,GAAG,EAAE,MAAM,iBAUhC;IAEK,YAAY,CAAC,GAAG,EAAE,MAAM,iBAU7B;IAEK,cAAc,kBAsEnB;IAEK,UAAU,CACd,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,OAAO,GAAG,WAAW,GAAG,QAAsB;;OAerD;IAEK,UAAU,kBAGf;IAEK,KAAK,kBAMV;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,kBAE1B;CACF;AAED,eAAO,MAAM,cAAc,WACjB,MAAM,WACL,OAAO,KACf,OAAO,CAAC,MAAM,CAuBhB,CAAA"}
|
package/dist/ozone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ozone.js","sourceRoot":"","sources":["../src/ozone.ts"],"names":[],"mappings":"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","sourcesContent":["import * as plc from '@did-plc/lib'\nimport getPort from 'get-port'\nimport * as ui8 from 'uint8arrays'\nimport { AtpAgent } from '@atproto/api'\nimport { Keypair, Secp256k1Keypair } from '@atproto/crypto'\nimport * as ozone from '@atproto/ozone'\nimport { createServiceJwt } from '@atproto/xrpc-server'\nimport { ADMIN_PASSWORD, EXAMPLE_LABELER } from './const.js'\nimport { ModeratorClient } from './moderator-client.js'\nimport { DidAndKey, OzoneConfig } from './types.js'\nimport { createDidAndKey } from './util.js'\n\nexport class TestOzone {\n constructor(\n public url: string,\n public port: number,\n public server: ozone.OzoneService,\n public daemon: ozone.OzoneDaemon,\n public adminAccnt: DidAndKey,\n public moderatorAccnt: DidAndKey,\n public triageAccnt: DidAndKey,\n ) {}\n\n static async create(config: OzoneConfig): Promise<TestOzone> {\n const serviceKeypair =\n config.signingKey ?? (await Secp256k1Keypair.create({ exportable: true }))\n const signingKeyHex = ui8.toString(await serviceKeypair.export(), 'hex')\n let serverDid = config.serverDid\n if (!serverDid) {\n serverDid = await createOzoneDid(config.plcUrl, serviceKeypair)\n }\n\n const admin = await createDidAndKey({\n plcUrl: config.plcUrl,\n handle: 'admin.ozone',\n pds: 'https://pds.invalid',\n })\n\n const moderator = await createDidAndKey({\n plcUrl: config.plcUrl,\n handle: 'moderator.ozone',\n pds: 'https://pds.invalid',\n })\n\n const triage = await createDidAndKey({\n plcUrl: config.plcUrl,\n handle: 'triage.ozone',\n pds: 'https://pds.invalid',\n })\n\n const port = config.port || (await getPort())\n const url = `http://localhost:${port}`\n\n const env: ozone.OzoneEnvironment = {\n devMode: true,\n version: '0.0.0',\n port,\n didPlcUrl: config.plcUrl,\n publicUrl: url,\n serverDid,\n signingKeyHex,\n ...config,\n adminPassword: ADMIN_PASSWORD,\n adminDids: [...(config.adminDids ?? []), admin.did],\n moderatorDids: [\n ...(config.moderatorDids ?? []),\n config.appviewDid,\n moderator.did,\n ],\n triageDids: [...(config.triageDids ?? []), triage.did],\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 ozone.Database({\n schema: config.dbPostgresSchema,\n url: config.dbPostgresUrl,\n })\n if (config.migration) {\n await migrationDb.migrateToOrThrow(config.migration)\n } else {\n await migrationDb.migrateToLatestOrThrow()\n }\n await migrationDb.close()\n\n const cfg = ozone.envToCfg(env)\n const secrets = ozone.envToSecrets(env)\n\n // api server\n const server = await ozone.OzoneService.create(cfg, secrets, {\n imgInvalidator: config.imgInvalidator,\n })\n await server.start()\n\n const daemon = await ozone.OzoneDaemon.create(cfg, secrets)\n await daemon.start()\n // don't do event reversal in dev-env\n await daemon.ctx.eventReverser.destroy()\n\n return new TestOzone(url, port, server, daemon, admin, moderator, triage)\n }\n\n get ctx(): ozone.AppContext {\n return this.server.ctx\n }\n\n getAgent(): AtpAgent {\n const agent = new AtpAgent({ service: this.url })\n agent.configureLabelers([EXAMPLE_LABELER])\n return agent\n }\n\n getModClient() {\n return new ModeratorClient(this)\n }\n\n async addAdminDid(did: string) {\n await this.ctx.teamService(this.ctx.db).create({\n did,\n disabled: false,\n handle: null,\n displayName: null,\n lastUpdatedBy: this.ctx.cfg.service.did,\n role: 'tools.ozone.team.defs#roleAdmin',\n })\n this.ctx.cfg.access.admins.push(did)\n }\n\n async addModeratorDid(did: string) {\n await this.ctx.teamService(this.ctx.db).create({\n did,\n disabled: false,\n handle: null,\n displayName: null,\n lastUpdatedBy: this.ctx.cfg.service.did,\n role: 'tools.ozone.team.defs#roleModerator',\n })\n this.ctx.cfg.access.moderators.push(did)\n }\n\n async addTriageDid(did: string) {\n await this.ctx.teamService(this.ctx.db).create({\n did,\n disabled: false,\n handle: null,\n displayName: null,\n lastUpdatedBy: this.ctx.cfg.service.did,\n role: 'tools.ozone.team.defs#roleTriage',\n })\n this.ctx.cfg.access.triage.push(did)\n }\n\n async createPolicies() {\n const now = new Date()\n const defaultOptions = {\n managerRole: 'tools.ozone.team.defs#roleAdmin' as const,\n scope: 'instance' as const,\n did: this.ctx.cfg.service.did,\n lastUpdatedBy: this.ctx.cfg.service.did,\n createdBy: this.ctx.cfg.service.did,\n createdAt: now,\n updatedAt: now,\n }\n await this.ctx.settingService(this.ctx.db).upsert({\n ...defaultOptions,\n key: 'tools.ozone.setting.severityLevels',\n value: {\n 'sev-2': {\n strikeCount: 2,\n expiryInDays: 90,\n },\n 'sev-4': {\n strikeCount: 4,\n expiryInDays: 365,\n },\n 'sev-7': {\n needsTakedown: true,\n description: 'Sever violation, immedate account takedown',\n },\n 'custom-sev': {\n strikeCount: 4,\n firstOccurrenceStrikeCount: 8,\n description: 'First offense harsher penalty, on subsequent less',\n },\n },\n description: 'Severity levels and strike count mapping for policies',\n })\n await this.ctx.settingService(this.ctx.db).upsert({\n ...defaultOptions,\n key: 'tools.ozone.setting.policyList',\n value: {\n 'policy-one': {\n name: 'Policy One',\n description: 'Policy for handling user behavior',\n severityLevels: {\n 'sev-1': {\n description: 'Minor infraction',\n isDefault: true,\n },\n 'sev-2': {\n description: 'Moderate infraction',\n isDefault: false,\n },\n },\n },\n 'policy-two': {\n name: 'Policy Two',\n description: 'Policy for handling user action',\n severityLevels: {\n 'sev-4': {\n description: 'Moderate infraction',\n isDefault: false,\n },\n 'sev-5': {\n description: 'Severe infraction',\n isDefault: false,\n },\n },\n },\n },\n description: 'Moderation policies to be associated with actions',\n })\n }\n\n async modHeaders(\n lxm: string,\n role: 'admin' | 'moderator' | 'triage' = 'moderator',\n ) {\n const account =\n role === 'admin'\n ? this.adminAccnt\n : role === 'moderator'\n ? this.moderatorAccnt\n : this.triageAccnt\n const jwt = await createServiceJwt({\n iss: account.did,\n aud: this.ctx.cfg.service.did,\n lxm,\n keypair: account.key,\n })\n return { authorization: `Bearer ${jwt}` }\n }\n\n async processAll() {\n await this.ctx.backgroundQueue.processAll()\n await this.daemon.processAll()\n }\n\n async close() {\n try {\n await this.server.destroy()\n } finally {\n await this.daemon.destroy()\n }\n }\n\n async [Symbol.asyncDispose]() {\n await this.close()\n }\n}\n\nexport const createOzoneDid = async (\n plcUrl: string,\n keypair: Keypair,\n): Promise<string> => {\n const plcClient = new plc.Client(plcUrl)\n const plcOp = await plc.signOperation(\n {\n type: 'plc_operation',\n alsoKnownAs: [],\n rotationKeys: [keypair.did()],\n verificationMethods: {\n atproto_label: keypair.did(),\n },\n services: {\n atproto_labeler: {\n type: 'AtprotoLabeler',\n endpoint: 'https://ozone.public.url',\n },\n },\n prev: null,\n },\n keypair,\n )\n const did = await plc.didForCreateOp(plcOp)\n await plcClient.sendOperation(did, plcOp)\n return did\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ozone.js","sourceRoot":"","sources":["../src/ozone.ts"],"names":[],"mappings":"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","sourcesContent":["import * as plc from '@did-plc/lib'\nimport getPort from 'get-port'\nimport * as ui8 from 'uint8arrays'\nimport { AtpAgent } from '@atproto/api'\nimport { type Keypair, Secp256k1Keypair } from '@atproto/crypto'\nimport * as ozone from '@atproto/ozone'\nimport { createServiceJwt } from '@atproto/xrpc-server'\nimport { ADMIN_PASSWORD, EXAMPLE_LABELER } from './const.js'\nimport { ModeratorClient } from './moderator-client.js'\nimport type { DidAndKey, OzoneConfig } from './types.js'\nimport { createDidAndKey } from './util.js'\n\nexport class TestOzone {\n constructor(\n public url: string,\n public port: number,\n public server: ozone.OzoneService,\n public daemon: ozone.OzoneDaemon,\n public adminAccnt: DidAndKey,\n public moderatorAccnt: DidAndKey,\n public triageAccnt: DidAndKey,\n ) {}\n\n static async create(config: OzoneConfig): Promise<TestOzone> {\n const serviceKeypair =\n config.signingKey ?? (await Secp256k1Keypair.create({ exportable: true }))\n const signingKeyHex = ui8.toString(await serviceKeypair.export(), 'hex')\n let serverDid = config.serverDid\n if (!serverDid) {\n serverDid = await createOzoneDid(config.plcUrl, serviceKeypair)\n }\n\n const admin = await createDidAndKey({\n plcUrl: config.plcUrl,\n handle: 'admin.ozone',\n pds: 'https://pds.invalid',\n })\n\n const moderator = await createDidAndKey({\n plcUrl: config.plcUrl,\n handle: 'moderator.ozone',\n pds: 'https://pds.invalid',\n })\n\n const triage = await createDidAndKey({\n plcUrl: config.plcUrl,\n handle: 'triage.ozone',\n pds: 'https://pds.invalid',\n })\n\n const port = config.port || (await getPort())\n const url = `http://localhost:${port}`\n\n const env: ozone.OzoneEnvironment = {\n devMode: true,\n version: '0.0.0',\n port,\n didPlcUrl: config.plcUrl,\n publicUrl: url,\n serverDid,\n signingKeyHex,\n ...config,\n adminPassword: ADMIN_PASSWORD,\n adminDids: [...(config.adminDids ?? []), admin.did],\n moderatorDids: [\n ...(config.moderatorDids ?? []),\n config.appviewDid,\n moderator.did,\n ],\n triageDids: [...(config.triageDids ?? []), triage.did],\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 ozone.Database({\n schema: config.dbPostgresSchema,\n url: config.dbPostgresUrl,\n })\n if (config.migration) {\n await migrationDb.migrateToOrThrow(config.migration)\n } else {\n await migrationDb.migrateToLatestOrThrow()\n }\n await migrationDb.close()\n\n const cfg = ozone.envToCfg(env)\n const secrets = ozone.envToSecrets(env)\n\n // api server\n const server = await ozone.OzoneService.create(cfg, secrets, {\n imgInvalidator: config.imgInvalidator,\n })\n await server.start()\n\n const daemon = await ozone.OzoneDaemon.create(cfg, secrets)\n await daemon.start()\n // don't do event reversal in dev-env\n await daemon.ctx.eventReverser.destroy()\n\n return new TestOzone(url, port, server, daemon, admin, moderator, triage)\n }\n\n get ctx(): ozone.AppContext {\n return this.server.ctx\n }\n\n getAgent(): AtpAgent {\n const agent = new AtpAgent({ service: this.url })\n agent.configureLabelers([EXAMPLE_LABELER])\n return agent\n }\n\n getModClient() {\n return new ModeratorClient(this)\n }\n\n async addAdminDid(did: string) {\n await this.ctx.teamService(this.ctx.db).create({\n did,\n disabled: false,\n handle: null,\n displayName: null,\n lastUpdatedBy: this.ctx.cfg.service.did,\n role: 'tools.ozone.team.defs#roleAdmin',\n })\n this.ctx.cfg.access.admins.push(did)\n }\n\n async addModeratorDid(did: string) {\n await this.ctx.teamService(this.ctx.db).create({\n did,\n disabled: false,\n handle: null,\n displayName: null,\n lastUpdatedBy: this.ctx.cfg.service.did,\n role: 'tools.ozone.team.defs#roleModerator',\n })\n this.ctx.cfg.access.moderators.push(did)\n }\n\n async addTriageDid(did: string) {\n await this.ctx.teamService(this.ctx.db).create({\n did,\n disabled: false,\n handle: null,\n displayName: null,\n lastUpdatedBy: this.ctx.cfg.service.did,\n role: 'tools.ozone.team.defs#roleTriage',\n })\n this.ctx.cfg.access.triage.push(did)\n }\n\n async createPolicies() {\n const now = new Date()\n const defaultOptions = {\n managerRole: 'tools.ozone.team.defs#roleAdmin' as const,\n scope: 'instance' as const,\n did: this.ctx.cfg.service.did,\n lastUpdatedBy: this.ctx.cfg.service.did,\n createdBy: this.ctx.cfg.service.did,\n createdAt: now,\n updatedAt: now,\n }\n await this.ctx.settingService(this.ctx.db).upsert({\n ...defaultOptions,\n key: 'tools.ozone.setting.severityLevels',\n value: {\n 'sev-2': {\n strikeCount: 2,\n expiryInDays: 90,\n },\n 'sev-4': {\n strikeCount: 4,\n expiryInDays: 365,\n },\n 'sev-7': {\n needsTakedown: true,\n description: 'Sever violation, immedate account takedown',\n },\n 'custom-sev': {\n strikeCount: 4,\n firstOccurrenceStrikeCount: 8,\n description: 'First offense harsher penalty, on subsequent less',\n },\n },\n description: 'Severity levels and strike count mapping for policies',\n })\n await this.ctx.settingService(this.ctx.db).upsert({\n ...defaultOptions,\n key: 'tools.ozone.setting.policyList',\n value: {\n 'policy-one': {\n name: 'Policy One',\n description: 'Policy for handling user behavior',\n severityLevels: {\n 'sev-1': {\n description: 'Minor infraction',\n isDefault: true,\n },\n 'sev-2': {\n description: 'Moderate infraction',\n isDefault: false,\n },\n },\n },\n 'policy-two': {\n name: 'Policy Two',\n description: 'Policy for handling user action',\n severityLevels: {\n 'sev-4': {\n description: 'Moderate infraction',\n isDefault: false,\n },\n 'sev-5': {\n description: 'Severe infraction',\n isDefault: false,\n },\n },\n },\n },\n description: 'Moderation policies to be associated with actions',\n })\n }\n\n async modHeaders(\n lxm: string,\n role: 'admin' | 'moderator' | 'triage' = 'moderator',\n ) {\n const account =\n role === 'admin'\n ? this.adminAccnt\n : role === 'moderator'\n ? this.moderatorAccnt\n : this.triageAccnt\n const jwt = await createServiceJwt({\n iss: account.did,\n aud: this.ctx.cfg.service.did,\n lxm,\n keypair: account.key,\n })\n return { authorization: `Bearer ${jwt}` }\n }\n\n async processAll() {\n await this.ctx.backgroundQueue.processAll()\n await this.daemon.processAll()\n }\n\n async close() {\n try {\n await this.server.destroy()\n } finally {\n await this.daemon.destroy()\n }\n }\n\n async [Symbol.asyncDispose]() {\n await this.close()\n }\n}\n\nexport const createOzoneDid = async (\n plcUrl: string,\n keypair: Keypair,\n): Promise<string> => {\n const plcClient = new plc.Client(plcUrl)\n const plcOp = await plc.signOperation(\n {\n type: 'plc_operation',\n alsoKnownAs: [],\n rotationKeys: [keypair.did()],\n verificationMethods: {\n atproto_label: keypair.did(),\n },\n services: {\n atproto_labeler: {\n type: 'AtprotoLabeler',\n endpoint: 'https://ozone.public.url',\n },\n },\n prev: null,\n },\n keypair,\n )\n const did = await plc.didForCreateOp(plcOp)\n await plcClient.sendOperation(did, plcOp)\n return did\n}\n"]}
|
package/dist/pds.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AtpAgent } from '@atproto/api';
|
|
2
2
|
import { Client } from '@atproto/lex';
|
|
3
3
|
import * as pds from '@atproto/pds';
|
|
4
|
-
import { PdsConfig } from './types.js';
|
|
4
|
+
import type { PdsConfig } from './types.js';
|
|
5
5
|
export declare class TestPds {
|
|
6
6
|
url: string;
|
|
7
7
|
port: number;
|
package/dist/pds.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds.d.ts","sourceRoot":"","sources":["../src/pds.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAGnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"pds.d.ts","sourceRoot":"","sources":["../src/pds.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,qBAAa,OAAO;IAET,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,GAAG,CAAC,GAAG;IAHxB,YACS,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,CAAC,GAAG,EACpB;IAEJ,OAAa,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAsDvD;IAED,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAExB;IAED,QAAQ,IAAI,QAAQ,CAInB;IAED,SAAS,IAAI,MAAM,CAIlB;IAED,SAAS,IAAI,MAAM,CAQlB;IAED,gBAAgB;QAEZ,aAAa;MAEhB;IAED,YAAY,+BAEX;IAEK,UAAU,kBAEf;IAEK,KAAK,kBAEV;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,kBAE1B;CACF"}
|
package/dist/pds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds.js","sourceRoot":"","sources":["../src/pds.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'node:fs/promises'\nimport os from 'node:os'\nimport path from 'node:path'\nimport getPort from 'get-port'\nimport * as ui8 from 'uint8arrays'\nimport { AtpAgent } from '@atproto/api'\nimport { Secp256k1Keypair, randomStr } from '@atproto/crypto'\nimport { Client } from '@atproto/lex'\nimport * as pds from '@atproto/pds'\nimport { createSecretKeyObject } from '@atproto/pds'\nimport { ADMIN_PASSWORD, EXAMPLE_LABELER, JWT_SECRET } from './const.js'\nimport { PdsConfig } from './types.js'\n\nexport class TestPds {\n constructor(\n public url: string,\n public port: number,\n public server: pds.PDS,\n ) {}\n\n static async create(config: PdsConfig): Promise<TestPds> {\n const plcRotationKey = await Secp256k1Keypair.create({ exportable: true })\n const plcRotationPriv = ui8.toString(await plcRotationKey.export(), 'hex')\n const recoveryKey = (await Secp256k1Keypair.create()).did()\n\n const port = config.port || (await getPort())\n const url = `http://localhost:${port}`\n\n const blobstoreLoc = path.join(os.tmpdir(), randomStr(8, 'base32'))\n const dataDirectory = path.join(os.tmpdir(), randomStr(8, 'base32'))\n await fs.mkdir(dataDirectory, { recursive: true })\n\n const env: pds.ServerEnvironment = {\n devMode: true,\n port,\n dataDirectory: dataDirectory,\n blobstoreDiskLocation: blobstoreLoc,\n recoveryDidKey: recoveryKey,\n adminPassword: ADMIN_PASSWORD,\n jwtSecret: JWT_SECRET,\n // @NOTE \".example\" will not actually work and is only used to display\n // multiple domains in the sing-up UI\n serviceHandleDomains: ['.test', '.example'],\n bskyAppViewUrl: 'https://appview.invalid',\n bskyAppViewDid: 'did:example:invalid',\n bskyAppViewCdnUrlPattern: 'http://cdn.appview.com/%s/%s/%s',\n modServiceUrl: 'https://moderator.invalid',\n modServiceDid: 'did:example:invalid',\n plcRotationKeyK256PrivateKeyHex: plcRotationPriv,\n inviteRequired: false,\n disableSsrfProtection: true,\n serviceName: 'Development PDS',\n primaryColor: '#f0828d',\n primaryColorContrast: '#fff', // Bad contrast for a11y (WCAG AA)\n errorColor: 'rgb(238, 0, 78)', // rgb() notation should work too\n logoUrl:\n // Using a \"data:\" instead of a real URL to avoid making CORS requests in dev.\n // License: https://uxwing.com/license/\n // Source: https://uxwing.com/bee-icon/\n `data:image/svg+xml;base64,${Buffer.from('<svg xmlns=\"http://www.w3.org/2000/svg\" shape-rendering=\"geometricPrecision\" text-rendering=\"geometricPrecision\" image-rendering=\"optimizeQuality\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" viewBox=\"0 0 503 511.623\"><path fill=\"#FFB9B9\" d=\"M379.75 85.311l90.022 89.879C503.264 128.804 502.534 31.13 476.188 0c-27.441 31.966-59.103 60.767-96.438 85.311z\"/><path fill=\"#E2828D\" d=\"M399.445 104.976l70.327 70.214c26.443-36.622 31.549-105.205 19.563-147.778-26.692 28.309-56.413 54.344-89.89 77.564z\"/><path fill=\"#FFB9B9\" d=\"M119.595 85.311L29.573 175.19C-3.919 128.804-3.189 31.13 23.156 0c27.441 31.966 59.103 60.767 96.439 85.311z\"/><path fill=\"#E2828D\" d=\"M99.899 104.976L29.573 175.19C3.13 138.568-1.976 69.985 10.01 27.412c26.692 28.309 56.413 54.344 89.889 77.564z\"/><path fill=\"#FFB9B9\" d=\"M251.5 51.303c138.898 0 251.5 103.046 251.5 230.16 0 127.114-112.602 230.16-251.5 230.16C112.6 511.623 0 408.577 0 281.463c0-127.114 112.6-230.16 251.5-230.16z\"/><path fill=\"#331400\" d=\"M138.142 188.245c16.387 0 29.672 13.283 29.672 29.672 0 16.389-13.285 29.673-29.672 29.673-16.389 0-29.675-13.284-29.675-29.673 0-16.389 13.286-29.672 29.675-29.672zM360.695 188.245c16.389 0 29.674 13.283 29.674 29.672 0 16.389-13.285 29.673-29.674 29.673-16.387 0-29.673-13.284-29.673-29.673 0-16.389 13.286-29.672 29.673-29.672z\"/><path fill=\"#F0828D\" fill-rule=\"nonzero\" d=\"M251.5 255.548c37.407 0 71.438 11.136 96.213 29.138 25.886 18.808 41.905 45.125 41.905 74.487 0 29.36-16.017 55.679-41.908 74.49-24.772 18.001-58.805 29.138-96.21 29.138-37.405 0-71.438-11.137-96.21-29.138-25.891-18.811-41.908-45.13-41.908-74.49 0-29.362 16.019-55.679 41.905-74.487 24.775-18.002 58.808-29.138 96.213-29.138z\"/><circle fill=\"#A5414B\" cx=\"203.259\" cy=\"358.515\" r=\"29.673\"/><circle fill=\"#A5414B\" cx=\"298.744\" cy=\"358.515\" r=\"29.673\"/></svg>', 'utf8').toString('base64')}`,\n homeUrl: 'https://bsky.social/',\n termsOfServiceUrl: 'https://bsky.social/about/support/tos',\n privacyPolicyUrl: 'https://bsky.social/about/support/privacy-policy',\n supportUrl: 'https://blueskyweb.zendesk.com/hc/en-us',\n ...config,\n }\n const cfg = pds.envToCfg(env)\n const secrets = pds.envToSecrets(env)\n\n const server = await pds.PDS.create(cfg, secrets)\n\n await server.start()\n\n return new TestPds(url, port, server)\n }\n\n get ctx(): pds.AppContext {\n return this.server.ctx\n }\n\n getAgent(): AtpAgent {\n const agent = new AtpAgent({ service: this.url })\n agent.configureLabelers([EXAMPLE_LABELER])\n return agent\n }\n\n getClient(): Client {\n const client = new Client({ service: this.url })\n client.setLabelers([EXAMPLE_LABELER])\n return client\n }\n\n adminAuth(): string {\n return (\n 'Basic ' +\n ui8.toString(\n ui8.fromString(`admin:${ADMIN_PASSWORD}`, 'utf8'),\n 'base64pad',\n )\n )\n }\n\n adminAuthHeaders() {\n return {\n authorization: this.adminAuth(),\n }\n }\n\n jwtSecretKey() {\n return createSecretKeyObject(JWT_SECRET)\n }\n\n async processAll() {\n await this.ctx.backgroundQueue.processAll()\n }\n\n async close() {\n await this.server.destroy()\n }\n\n async [Symbol.asyncDispose]() {\n await this.close()\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pds.js","sourceRoot":"","sources":["../src/pds.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'node:fs/promises'\nimport os from 'node:os'\nimport path from 'node:path'\nimport getPort from 'get-port'\nimport * as ui8 from 'uint8arrays'\nimport { AtpAgent } from '@atproto/api'\nimport { Secp256k1Keypair, randomStr } from '@atproto/crypto'\nimport { Client } from '@atproto/lex'\nimport * as pds from '@atproto/pds'\nimport { createSecretKeyObject } from '@atproto/pds'\nimport { ADMIN_PASSWORD, EXAMPLE_LABELER, JWT_SECRET } from './const.js'\nimport type { PdsConfig } from './types.js'\n\nexport class TestPds {\n constructor(\n public url: string,\n public port: number,\n public server: pds.PDS,\n ) {}\n\n static async create(config: PdsConfig): Promise<TestPds> {\n const plcRotationKey = await Secp256k1Keypair.create({ exportable: true })\n const plcRotationPriv = ui8.toString(await plcRotationKey.export(), 'hex')\n const recoveryKey = (await Secp256k1Keypair.create()).did()\n\n const port = config.port || (await getPort())\n const url = `http://localhost:${port}`\n\n const blobstoreLoc = path.join(os.tmpdir(), randomStr(8, 'base32'))\n const dataDirectory = path.join(os.tmpdir(), randomStr(8, 'base32'))\n await fs.mkdir(dataDirectory, { recursive: true })\n\n const env: pds.ServerEnvironment = {\n devMode: true,\n port,\n dataDirectory: dataDirectory,\n blobstoreDiskLocation: blobstoreLoc,\n recoveryDidKey: recoveryKey,\n adminPassword: ADMIN_PASSWORD,\n jwtSecret: JWT_SECRET,\n // @NOTE \".example\" will not actually work and is only used to display\n // multiple domains in the sing-up UI\n serviceHandleDomains: ['.test', '.example'],\n bskyAppViewUrl: 'https://appview.invalid',\n bskyAppViewDid: 'did:example:invalid',\n bskyAppViewCdnUrlPattern: 'http://cdn.appview.com/%s/%s/%s',\n modServiceUrl: 'https://moderator.invalid',\n modServiceDid: 'did:example:invalid',\n plcRotationKeyK256PrivateKeyHex: plcRotationPriv,\n inviteRequired: false,\n disableSsrfProtection: true,\n serviceName: 'Development PDS',\n primaryColor: '#f0828d',\n primaryColorContrast: '#fff', // Bad contrast for a11y (WCAG AA)\n errorColor: 'rgb(238, 0, 78)', // rgb() notation should work too\n logoUrl:\n // Using a \"data:\" instead of a real URL to avoid making CORS requests in dev.\n // License: https://uxwing.com/license/\n // Source: https://uxwing.com/bee-icon/\n `data:image/svg+xml;base64,${Buffer.from('<svg xmlns=\"http://www.w3.org/2000/svg\" shape-rendering=\"geometricPrecision\" text-rendering=\"geometricPrecision\" image-rendering=\"optimizeQuality\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" viewBox=\"0 0 503 511.623\"><path fill=\"#FFB9B9\" d=\"M379.75 85.311l90.022 89.879C503.264 128.804 502.534 31.13 476.188 0c-27.441 31.966-59.103 60.767-96.438 85.311z\"/><path fill=\"#E2828D\" d=\"M399.445 104.976l70.327 70.214c26.443-36.622 31.549-105.205 19.563-147.778-26.692 28.309-56.413 54.344-89.89 77.564z\"/><path fill=\"#FFB9B9\" d=\"M119.595 85.311L29.573 175.19C-3.919 128.804-3.189 31.13 23.156 0c27.441 31.966 59.103 60.767 96.439 85.311z\"/><path fill=\"#E2828D\" d=\"M99.899 104.976L29.573 175.19C3.13 138.568-1.976 69.985 10.01 27.412c26.692 28.309 56.413 54.344 89.889 77.564z\"/><path fill=\"#FFB9B9\" d=\"M251.5 51.303c138.898 0 251.5 103.046 251.5 230.16 0 127.114-112.602 230.16-251.5 230.16C112.6 511.623 0 408.577 0 281.463c0-127.114 112.6-230.16 251.5-230.16z\"/><path fill=\"#331400\" d=\"M138.142 188.245c16.387 0 29.672 13.283 29.672 29.672 0 16.389-13.285 29.673-29.672 29.673-16.389 0-29.675-13.284-29.675-29.673 0-16.389 13.286-29.672 29.675-29.672zM360.695 188.245c16.389 0 29.674 13.283 29.674 29.672 0 16.389-13.285 29.673-29.674 29.673-16.387 0-29.673-13.284-29.673-29.673 0-16.389 13.286-29.672 29.673-29.672z\"/><path fill=\"#F0828D\" fill-rule=\"nonzero\" d=\"M251.5 255.548c37.407 0 71.438 11.136 96.213 29.138 25.886 18.808 41.905 45.125 41.905 74.487 0 29.36-16.017 55.679-41.908 74.49-24.772 18.001-58.805 29.138-96.21 29.138-37.405 0-71.438-11.137-96.21-29.138-25.891-18.811-41.908-45.13-41.908-74.49 0-29.362 16.019-55.679 41.905-74.487 24.775-18.002 58.808-29.138 96.213-29.138z\"/><circle fill=\"#A5414B\" cx=\"203.259\" cy=\"358.515\" r=\"29.673\"/><circle fill=\"#A5414B\" cx=\"298.744\" cy=\"358.515\" r=\"29.673\"/></svg>', 'utf8').toString('base64')}`,\n homeUrl: 'https://bsky.social/',\n termsOfServiceUrl: 'https://bsky.social/about/support/tos',\n privacyPolicyUrl: 'https://bsky.social/about/support/privacy-policy',\n supportUrl: 'https://blueskyweb.zendesk.com/hc/en-us',\n ...config,\n }\n const cfg = pds.envToCfg(env)\n const secrets = pds.envToSecrets(env)\n\n const server = await pds.PDS.create(cfg, secrets)\n\n await server.start()\n\n return new TestPds(url, port, server)\n }\n\n get ctx(): pds.AppContext {\n return this.server.ctx\n }\n\n getAgent(): AtpAgent {\n const agent = new AtpAgent({ service: this.url })\n agent.configureLabelers([EXAMPLE_LABELER])\n return agent\n }\n\n getClient(): Client {\n const client = new Client({ service: this.url })\n client.setLabelers([EXAMPLE_LABELER])\n return client\n }\n\n adminAuth(): string {\n return (\n 'Basic ' +\n ui8.toString(\n ui8.fromString(`admin:${ADMIN_PASSWORD}`, 'utf8'),\n 'base64pad',\n )\n )\n }\n\n adminAuthHeaders() {\n return {\n authorization: this.adminAuth(),\n }\n }\n\n jwtSecretKey() {\n return createSecretKeyObject(JWT_SECRET)\n }\n\n async processAll() {\n await this.ctx.backgroundQueue.processAll()\n }\n\n async close() {\n await this.server.destroy()\n }\n\n async [Symbol.asyncDispose]() {\n await this.close()\n }\n}\n"]}
|
package/dist/plc.d.ts
CHANGED
package/dist/plc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../src/plc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../src/plc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,qBAAa,OAAO;IAET,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,GAAG,CAAC,SAAS;IAH9B,YACS,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,CAAC,SAAS,EAC1B;IAEJ,OAAa,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpD;IAED,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAExB;IAED,SAAS,IAAI,SAAS,CAErB;IAEK,KAAK,kBAEV;CACF"}
|
package/dist/plc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plc.js","sourceRoot":"","sources":["../src/plc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,OAAO,MAAM,UAAU,CAAA;AAG9B,MAAM,OAAO,OAAO;IAClB,YACS,GAAW,EACX,IAAY,EACZ,MAAqB;mBAFrB,GAAG;oBACH,IAAI;sBACJ,MAAM;IACZ,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAc;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;QAC1C,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAA;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;QACzD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACpB,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;CACF","sourcesContent":["import { Client as PlcClient } from '@did-plc/lib'\nimport * as plc from '@did-plc/server'\nimport getPort from 'get-port'\nimport { PlcConfig } from './types.js'\n\nexport class TestPlc {\n constructor(\n public url: string,\n public port: number,\n public server: plc.PlcServer,\n ) {}\n\n static async create(cfg: PlcConfig): Promise<TestPlc> {\n const db = plc.Database.mock()\n const port = cfg.port || (await getPort())\n const url = `http://localhost:${port}`\n const server = plc.PlcServer.create({ db, port, ...cfg })\n await server.start()\n return new TestPlc(url, port, server)\n }\n\n get ctx(): plc.AppContext {\n return this.server.ctx\n }\n\n getClient(): PlcClient {\n return new PlcClient(this.url)\n }\n\n async close() {\n await this.server.destroy()\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"plc.js","sourceRoot":"","sources":["../src/plc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,OAAO,MAAM,UAAU,CAAA;AAG9B,MAAM,OAAO,OAAO;IAClB,YACS,GAAW,EACX,IAAY,EACZ,MAAqB;mBAFrB,GAAG;oBACH,IAAI;sBACJ,MAAM;IACZ,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAc;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;QAC1C,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAA;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;QACzD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACpB,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;CACF","sourcesContent":["import { Client as PlcClient } from '@did-plc/lib'\nimport * as plc from '@did-plc/server'\nimport getPort from 'get-port'\nimport type { PlcConfig } from './types.js'\n\nexport class TestPlc {\n constructor(\n public url: string,\n public port: number,\n public server: plc.PlcServer,\n ) {}\n\n static async create(cfg: PlcConfig): Promise<TestPlc> {\n const db = plc.Database.mock()\n const port = cfg.port || (await getPort())\n const url = `http://localhost:${port}`\n const server = plc.PlcServer.create({ db, port, ...cfg })\n await server.start()\n return new TestPlc(url, port, server)\n }\n\n get ctx(): plc.AppContext {\n return this.server.ctx\n }\n\n getClient(): PlcClient {\n return new PlcClient(this.url)\n }\n\n async close() {\n await this.server.destroy()\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SeedClient } from './client.js';
|
|
1
|
+
import type { SeedClient } from './client.js';
|
|
2
2
|
declare const _default: (sc: SeedClient) => Promise<SeedClient<import("../network-no-appview.js").TestNetworkNoAppView>>;
|
|
3
3
|
export default _default;
|
|
4
4
|
//# sourceMappingURL=author-feed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author-feed.d.ts","sourceRoot":"","sources":["../../src/seed/author-feed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"author-feed.d.ts","sourceRoot":"","sources":["../../src/seed/author-feed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;6BAEnB,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author-feed.js","sourceRoot":"","sources":["../../src/seed/author-feed.ts"],"names":[],"mappings":"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","sourcesContent":["import basicSeed from './basic.js'\nimport { SeedClient } from './client.js'\n\nexport default async (sc: SeedClient) => {\n await basicSeed(sc)\n await sc.createAccount('eve', {\n email: 'eve@test.com',\n handle: 'eve.test',\n password: 'eve-pass',\n })\n await sc.createAccount('fred', {\n email: 'fred@test.com',\n handle: 'fred.test',\n password: 'fred-pass',\n })\n\n const alice = sc.dids.alice\n const eve = sc.dids.eve\n const fred = sc.dids.fred\n\n /*\n * Self thread\n */\n await sc.post(eve, evePosts[0])\n await sc.reply(\n eve,\n sc.posts[eve][0].ref,\n sc.posts[eve][0].ref,\n eveOwnThreadReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[eve][0].ref,\n sc.replies[eve][0].ref,\n eveOwnThreadReplies[1],\n )\n await sc.reply(\n eve,\n sc.posts[eve][0].ref,\n sc.replies[eve][1].ref,\n eveOwnThreadReplies[2],\n )\n\n /**\n * Two replies to Alice\n */\n await sc.reply(\n eve,\n sc.posts[alice][1].ref,\n sc.posts[alice][1].ref,\n eveAliceReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[alice][1].ref,\n sc.replies[eve][3].ref,\n eveAliceReplies[1],\n )\n\n /**\n * Two replies to Fred, who replied to Eve's root post. This creates a\n * \"detached\" thread, where one Fred post breaks the continuity.\n */\n await sc.post(eve, evePosts[1])\n const fredReply = await sc.reply(\n fred,\n sc.posts[eve][1].ref,\n sc.posts[eve][1].ref,\n fredReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[eve][1].ref,\n sc.replies[fred][0].ref,\n eveFredReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[eve][1].ref,\n sc.replies[eve][4].ref,\n eveFredReplies[1],\n )\n\n // a repost for eve's feed\n await sc.repost(eve, fredReply.ref)\n\n return sc\n}\n\nconst evePosts = ['eve own thread', 'eve detached thread']\nconst eveOwnThreadReplies = [\n 'eve own reply 1',\n 'eve own reply 2',\n 'eve own reply 3',\n]\nconst eveAliceReplies = ['eve reply to alice 1', 'eve reply to alice 2']\nconst eveFredReplies = ['eve reply to fred 1', 'eve reply to fred 2']\nconst fredReplies = ['fred reply to eve 1']\n"]}
|
|
1
|
+
{"version":3,"file":"author-feed.js","sourceRoot":"","sources":["../../src/seed/author-feed.ts"],"names":[],"mappings":"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","sourcesContent":["import basicSeed from './basic.js'\nimport type { SeedClient } from './client.js'\n\nexport default async (sc: SeedClient) => {\n await basicSeed(sc)\n await sc.createAccount('eve', {\n email: 'eve@test.com',\n handle: 'eve.test',\n password: 'eve-pass',\n })\n await sc.createAccount('fred', {\n email: 'fred@test.com',\n handle: 'fred.test',\n password: 'fred-pass',\n })\n\n const alice = sc.dids.alice\n const eve = sc.dids.eve\n const fred = sc.dids.fred\n\n /*\n * Self thread\n */\n await sc.post(eve, evePosts[0])\n await sc.reply(\n eve,\n sc.posts[eve][0].ref,\n sc.posts[eve][0].ref,\n eveOwnThreadReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[eve][0].ref,\n sc.replies[eve][0].ref,\n eveOwnThreadReplies[1],\n )\n await sc.reply(\n eve,\n sc.posts[eve][0].ref,\n sc.replies[eve][1].ref,\n eveOwnThreadReplies[2],\n )\n\n /**\n * Two replies to Alice\n */\n await sc.reply(\n eve,\n sc.posts[alice][1].ref,\n sc.posts[alice][1].ref,\n eveAliceReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[alice][1].ref,\n sc.replies[eve][3].ref,\n eveAliceReplies[1],\n )\n\n /**\n * Two replies to Fred, who replied to Eve's root post. This creates a\n * \"detached\" thread, where one Fred post breaks the continuity.\n */\n await sc.post(eve, evePosts[1])\n const fredReply = await sc.reply(\n fred,\n sc.posts[eve][1].ref,\n sc.posts[eve][1].ref,\n fredReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[eve][1].ref,\n sc.replies[fred][0].ref,\n eveFredReplies[0],\n )\n await sc.reply(\n eve,\n sc.posts[eve][1].ref,\n sc.replies[eve][4].ref,\n eveFredReplies[1],\n )\n\n // a repost for eve's feed\n await sc.repost(eve, fredReply.ref)\n\n return sc\n}\n\nconst evePosts = ['eve own thread', 'eve detached thread']\nconst eveOwnThreadReplies = [\n 'eve own reply 1',\n 'eve own reply 2',\n 'eve own reply 3',\n]\nconst eveAliceReplies = ['eve reply to alice 1', 'eve reply to alice 2']\nconst eveFredReplies = ['eve reply to fred 1', 'eve reply to fred 2']\nconst fredReplies = ['fred reply to eve 1']\n"]}
|
package/dist/seed/basic.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TestNetworkNoAppView } from '../network-no-appview.js';
|
|
1
|
+
import type { TestNetworkNoAppView } from '../network-no-appview.js';
|
|
2
2
|
import { TestNetwork } from '../network.js';
|
|
3
|
-
import { SeedClient } from './client.js';
|
|
3
|
+
import type { SeedClient } from './client.js';
|
|
4
4
|
export default function basicSeed(sc: SeedClient<TestNetwork | TestNetworkNoAppView>, users?: boolean): Promise<SeedClient<TestNetwork | TestNetworkNoAppView>>;
|
|
5
5
|
export declare const posts: {
|
|
6
6
|
alice: string[];
|
package/dist/seed/basic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../src/seed/basic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../src/seed/basic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,wBAA8B,SAAS,CACrC,EAAE,EAAE,UAAU,CAAC,WAAW,GAAG,oBAAoB,CAAC,EAClD,KAAK,UAAO,2DAqJb;AAED,eAAO,MAAM,KAAK;IAChB,KAAK;IACL,GAAG;IACH,KAAK;IACL,GAAG;CACJ,CAAA;AAED,eAAO,MAAM,OAAO;IAClB,KAAK;IACL,GAAG;IACH,KAAK;CACN,CAAA"}
|
package/dist/seed/basic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../src/seed/basic.ts"],"names":[],"mappings":"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","sourcesContent":["import { TestBsky } from '../bsky.js'\nimport { EXAMPLE_LABELER } from '../const.js'\nimport { TestNetworkNoAppView } from '../network-no-appview.js'\nimport { TestNetwork } from '../network.js'\nimport { SeedClient } from './client.js'\nimport usersSeed from './users.js'\n\nexport default async function basicSeed(\n sc: SeedClient<TestNetwork | TestNetworkNoAppView>,\n users = true,\n) {\n if (users) await usersSeed(sc)\n\n const alice = sc.dids.alice\n const bob = sc.dids.bob\n const carol = sc.dids.carol\n const dan = sc.dids.dan\n const createdAtMicroseconds = () => ({\n createdAt: new Date().toISOString().replace('Z', '000Z'), // microseconds\n })\n const createdAtTimezone = () => ({\n createdAt: new Date().toISOString().replace('Z', '+00:00'), // iso timezone format\n })\n\n await sc.follow(alice, bob)\n await sc.follow(alice, carol)\n await sc.follow(alice, dan)\n await sc.follow(carol, alice)\n await sc.follow(bob, alice)\n await sc.follow(bob, carol, createdAtMicroseconds())\n await sc.follow(dan, bob, createdAtTimezone())\n await sc.post(alice, posts.alice[0], undefined, undefined, undefined, {\n labels: {\n $type: 'com.atproto.label.defs#selfLabels',\n values: [{ val: 'self-label' }],\n },\n })\n await sc.post(bob, posts.bob[0], undefined, undefined, undefined, {\n langs: ['en-US', 'i-klingon'],\n })\n const img1 = await sc.uploadFile(\n carol,\n '../dev-env/assets/key-landscape-small.jpg',\n 'image/jpeg',\n )\n const img2 = await sc.uploadFile(\n carol,\n '../dev-env/assets/key-alt.jpg',\n 'image/jpeg',\n )\n await sc.post(\n carol,\n posts.carol[0],\n undefined,\n [img1, img2], // Contains both images and a quote\n sc.posts[bob][0].ref,\n )\n await sc.post(dan, posts.dan[0])\n await sc.post(\n dan,\n posts.dan[1],\n [\n {\n index: { byteStart: 0, byteEnd: 18 },\n features: [\n {\n $type: `app.bsky.richtext.facet#mention`,\n did: alice,\n },\n ],\n },\n ],\n undefined,\n sc.posts[carol][0].ref, // This post contains an images embed\n )\n await sc.post(\n alice,\n posts.alice[1],\n undefined,\n undefined,\n undefined,\n createdAtMicroseconds(),\n )\n await sc.post(\n bob,\n posts.bob[1],\n undefined,\n undefined,\n undefined,\n createdAtTimezone(),\n )\n await sc.post(\n alice,\n posts.alice[2],\n undefined,\n undefined,\n sc.posts[dan][1].ref, // This post contains a record embed which contains an images embed\n )\n await sc.like(bob, sc.posts[alice][1].ref)\n await sc.like(bob, sc.posts[alice][2].ref)\n await sc.like(carol, sc.posts[alice][1].ref)\n await sc.like(carol, sc.posts[alice][2].ref)\n await sc.like(dan, sc.posts[alice][1].ref)\n await sc.like(alice, sc.posts[carol][0].ref, createdAtMicroseconds())\n await sc.like(bob, sc.posts[carol][0].ref, createdAtTimezone())\n\n const replyImg = await sc.uploadFile(\n bob,\n '../dev-env/assets/key-landscape-small.jpg',\n 'image/jpeg',\n )\n // must ensure ordering of replies in indexing\n await sc.network.processAll()\n await sc.reply(\n bob,\n sc.posts[alice][1].ref,\n sc.posts[alice][1].ref,\n replies.bob[0],\n undefined,\n [replyImg],\n )\n await sc.reply(\n carol,\n sc.posts[alice][1].ref,\n sc.posts[alice][1].ref,\n replies.carol[0],\n )\n await sc.network.processAll()\n const alicesReplyToBob = await sc.reply(\n alice,\n sc.posts[alice][1].ref,\n sc.replies[bob][0].ref,\n replies.alice[0],\n )\n await sc.repost(carol, sc.posts[dan][1].ref)\n await sc.repost(dan, sc.posts[alice][1].ref)\n await sc.repost(dan, alicesReplyToBob.ref)\n\n if (sc.network instanceof TestNetwork) {\n const bsky = sc.network.bsky\n await createLabel(bsky, {\n val: 'test-label',\n uri: sc.posts[alice][2].ref.uriStr,\n cid: sc.posts[alice][2].ref.cidStr,\n })\n await createLabel(bsky, {\n val: 'test-label',\n uri: sc.replies[bob][0].ref.uriStr,\n cid: sc.replies[bob][0].ref.cidStr,\n })\n await createLabel(bsky, {\n val: 'test-label-2',\n uri: sc.replies[bob][0].ref.uriStr,\n cid: sc.replies[bob][0].ref.cidStr,\n })\n }\n\n return sc\n}\n\nexport const posts = {\n alice: ['hey there', 'again', 'yoohoo label_me'],\n bob: ['bob back at it again!', 'bobby boy here', 'yoohoo'],\n carol: ['hi im carol'],\n dan: ['dan here!', '@alice.bluesky.xyz is the best'],\n}\n\nexport const replies = {\n alice: ['thanks bob'],\n bob: ['hear that label_me label_me_2'],\n carol: ['of course'],\n}\n\nconst createLabel = async (\n bsky: TestBsky,\n opts: { uri: string; cid: string; val: string },\n) => {\n await bsky.db.db\n .insertInto('label')\n .values({\n uri: opts.uri,\n cid: opts.cid,\n val: opts.val,\n cts: new Date().toISOString(),\n neg: false,\n src: EXAMPLE_LABELER, // this did is also configured on labelsFromIssuerDids\n })\n .execute()\n}\n"]}
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../src/seed/basic.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TestBsky } from '../bsky.js'\nimport { EXAMPLE_LABELER } from '../const.js'\nimport type { TestNetworkNoAppView } from '../network-no-appview.js'\nimport { TestNetwork } from '../network.js'\nimport type { SeedClient } from './client.js'\nimport usersSeed from './users.js'\n\nexport default async function basicSeed(\n sc: SeedClient<TestNetwork | TestNetworkNoAppView>,\n users = true,\n) {\n if (users) await usersSeed(sc)\n\n const alice = sc.dids.alice\n const bob = sc.dids.bob\n const carol = sc.dids.carol\n const dan = sc.dids.dan\n const createdAtMicroseconds = () => ({\n createdAt: new Date().toISOString().replace('Z', '000Z'), // microseconds\n })\n const createdAtTimezone = () => ({\n createdAt: new Date().toISOString().replace('Z', '+00:00'), // iso timezone format\n })\n\n await sc.follow(alice, bob)\n await sc.follow(alice, carol)\n await sc.follow(alice, dan)\n await sc.follow(carol, alice)\n await sc.follow(bob, alice)\n await sc.follow(bob, carol, createdAtMicroseconds())\n await sc.follow(dan, bob, createdAtTimezone())\n await sc.post(alice, posts.alice[0], undefined, undefined, undefined, {\n labels: {\n $type: 'com.atproto.label.defs#selfLabels',\n values: [{ val: 'self-label' }],\n },\n })\n await sc.post(bob, posts.bob[0], undefined, undefined, undefined, {\n langs: ['en-US', 'i-klingon'],\n })\n const img1 = await sc.uploadFile(\n carol,\n '../dev-env/assets/key-landscape-small.jpg',\n 'image/jpeg',\n )\n const img2 = await sc.uploadFile(\n carol,\n '../dev-env/assets/key-alt.jpg',\n 'image/jpeg',\n )\n await sc.post(\n carol,\n posts.carol[0],\n undefined,\n [img1, img2], // Contains both images and a quote\n sc.posts[bob][0].ref,\n )\n await sc.post(dan, posts.dan[0])\n await sc.post(\n dan,\n posts.dan[1],\n [\n {\n index: { byteStart: 0, byteEnd: 18 },\n features: [\n {\n $type: `app.bsky.richtext.facet#mention`,\n did: alice,\n },\n ],\n },\n ],\n undefined,\n sc.posts[carol][0].ref, // This post contains an images embed\n )\n await sc.post(\n alice,\n posts.alice[1],\n undefined,\n undefined,\n undefined,\n createdAtMicroseconds(),\n )\n await sc.post(\n bob,\n posts.bob[1],\n undefined,\n undefined,\n undefined,\n createdAtTimezone(),\n )\n await sc.post(\n alice,\n posts.alice[2],\n undefined,\n undefined,\n sc.posts[dan][1].ref, // This post contains a record embed which contains an images embed\n )\n await sc.like(bob, sc.posts[alice][1].ref)\n await sc.like(bob, sc.posts[alice][2].ref)\n await sc.like(carol, sc.posts[alice][1].ref)\n await sc.like(carol, sc.posts[alice][2].ref)\n await sc.like(dan, sc.posts[alice][1].ref)\n await sc.like(alice, sc.posts[carol][0].ref, createdAtMicroseconds())\n await sc.like(bob, sc.posts[carol][0].ref, createdAtTimezone())\n\n const replyImg = await sc.uploadFile(\n bob,\n '../dev-env/assets/key-landscape-small.jpg',\n 'image/jpeg',\n )\n // must ensure ordering of replies in indexing\n await sc.network.processAll()\n await sc.reply(\n bob,\n sc.posts[alice][1].ref,\n sc.posts[alice][1].ref,\n replies.bob[0],\n undefined,\n [replyImg],\n )\n await sc.reply(\n carol,\n sc.posts[alice][1].ref,\n sc.posts[alice][1].ref,\n replies.carol[0],\n )\n await sc.network.processAll()\n const alicesReplyToBob = await sc.reply(\n alice,\n sc.posts[alice][1].ref,\n sc.replies[bob][0].ref,\n replies.alice[0],\n )\n await sc.repost(carol, sc.posts[dan][1].ref)\n await sc.repost(dan, sc.posts[alice][1].ref)\n await sc.repost(dan, alicesReplyToBob.ref)\n\n if (sc.network instanceof TestNetwork) {\n const bsky = sc.network.bsky\n await createLabel(bsky, {\n val: 'test-label',\n uri: sc.posts[alice][2].ref.uriStr,\n cid: sc.posts[alice][2].ref.cidStr,\n })\n await createLabel(bsky, {\n val: 'test-label',\n uri: sc.replies[bob][0].ref.uriStr,\n cid: sc.replies[bob][0].ref.cidStr,\n })\n await createLabel(bsky, {\n val: 'test-label-2',\n uri: sc.replies[bob][0].ref.uriStr,\n cid: sc.replies[bob][0].ref.cidStr,\n })\n }\n\n return sc\n}\n\nexport const posts = {\n alice: ['hey there', 'again', 'yoohoo label_me'],\n bob: ['bob back at it again!', 'bobby boy here', 'yoohoo'],\n carol: ['hi im carol'],\n dan: ['dan here!', '@alice.bluesky.xyz is the best'],\n}\n\nexport const replies = {\n alice: ['thanks bob'],\n bob: ['hear that label_me label_me_2'],\n carol: ['of course'],\n}\n\nconst createLabel = async (\n bsky: TestBsky,\n opts: { uri: string; cid: string; val: string },\n) => {\n await bsky.db.db\n .insertInto('label')\n .values({\n uri: opts.uri,\n cid: opts.cid,\n val: opts.val,\n cts: new Date().toISOString(),\n neg: false,\n src: EXAMPLE_LABELER, // this did is also configured on labelsFromIssuerDids\n })\n .execute()\n}\n"]}
|
package/dist/seed/client.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid';
|
|
2
|
-
import { $Typed, AppBskyActorProfile, AppBskyFeedLike, AppBskyFeedPost, AppBskyFeedRepost, AppBskyGraphBlock, AppBskyGraphFollow, AppBskyGraphList, AppBskyGraphVerification, AppBskyRichtextFacet, AtpAgent, ChatBskyConvoDefs, ComAtprotoAdminDefs, ComAtprotoModerationCreateReport, ComAtprotoRepoStrongRef } from '@atproto/api';
|
|
3
|
-
import { CidString, Client } from '@atproto/lex';
|
|
4
|
-
import { BlobRef } from '@atproto/lexicon';
|
|
5
|
-
import { AtUri, AtUriString, DidString, HandleString } from '@atproto/syntax';
|
|
6
|
-
import { TestNetworkNoAppView } from '../network-no-appview.js';
|
|
2
|
+
import type { $Typed, AppBskyActorProfile, AppBskyFeedLike, AppBskyFeedPost, AppBskyFeedRepost, AppBskyGraphBlock, AppBskyGraphFollow, AppBskyGraphList, AppBskyGraphVerification, AppBskyRichtextFacet, AtpAgent, ChatBskyConvoDefs, ComAtprotoAdminDefs, ComAtprotoModerationCreateReport, ComAtprotoRepoStrongRef } from '@atproto/api';
|
|
3
|
+
import type { CidString, Client } from '@atproto/lex';
|
|
4
|
+
import type { BlobRef } from '@atproto/lexicon';
|
|
5
|
+
import { AtUri, type AtUriString, type DidString, type HandleString } from '@atproto/syntax';
|
|
6
|
+
import type { TestNetworkNoAppView } from '../network-no-appview.js';
|
|
7
7
|
export type ImageRef = {
|
|
8
8
|
image: BlobRef;
|
|
9
9
|
alt: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/seed/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/seed/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,gCAAgC,EAChC,uBAAuB,EACxB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAepE,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,qBAAa,SAAS;IACpB,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IAER,YAAY,GAAG,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,EAGjD;IAED,IAAI,GAAG,IAAI;QAAE,GAAG,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,SAAS,CAAA;KAAE,CAK9C;IAED,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,IAAI,MAAM,IAAI,SAAS,CAEtB;CACF;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,SAAS,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,qBAAa,UAAU,CACrB,OAAO,SAAS,oBAAoB,GAAG,oBAAoB;IAgElD,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,MAAM;IAhEvB,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CACd,SAAS,EACT;QACE,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;QACzC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAA;QAC3C,GAAG,EAAE,SAAS,CAAA;KACf,CACF,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IACxD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IACvD,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IACxC,KAAK,EAAE,MAAM,CACX,SAAS,EACT;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE,CAC1E,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAC/C,OAAO,EAAE,MAAM,CACb,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;KAAE,EAAE,CACvD,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;IACvC,KAAK,EAAE,MAAM,CACX,SAAS,EACT,MAAM,CACJ,WAAW,EACX;QACE,GAAG,EAAE,SAAS,CAAA;QACd,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;KACpC,CACF,CACF,CAAA;IACD,QAAQ,EAAE,MAAM,CACd,SAAS,EACT,MAAM,CACJ,WAAW,EACX;QACE,GAAG,EAAE,SAAS,CAAA;QACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KACjC,CACF,CACF,CAAA;IACD,YAAY,EAAE,MAAM,CAClB,SAAS,EACT,MAAM,CACJ,WAAW,EACX;QACE,GAAG,EAAE,SAAS,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,SAAS,CAAA;QACf,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;KAC9B,CACF,CACF,CAAA;IAED,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;IAE1D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE/B,YACS,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,EAgBtB;IAEK,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QACN,MAAM,EAAE,YAAY,CAAA;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GACA,OAAO,CAAC,OAAO,CAAC,CAalB;IAEK,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,iBAKrD;IAEK,aAAa,CACjB,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,EAC9B,oBAAoB,CAAC,EAAE,SAAS,EAChC,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAC9C,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;QACzC,GAAG,EAAE,SAAS,CAAA;QACd,oBAAoB,CAAC,EAAE,SAAS,CAAA;KACjC,CAAC,CAwCD;IAEK,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBAnKjD,MAAM;qBACN,MAAM;gBACX;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE;8BACnB,SAAS,GAAG,SAAS;aACtC,SAAS;OA+KjB;IAEK,MAAM,CACV,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,SAAS,EACb,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,sBAc/C;IAEK,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,iBAU5C;IAEK,KAAK,CACT,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,SAAS,EACb,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,sBAc9C;IAEK,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,iBAU3C;IAEK,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,gBAUxC;IAEK,IAAI,CACR,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,EACpC,MAAM,CAAC,EAAE,QAAQ,EAAE,EACnB,KAAK,CAAC,EAAE,SAAS,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;;;;;OAuC5C;IAEK,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,iBAQzC;IAEK,UAAU,CACd,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAOnB;IAEK,IAAI,CACR,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,kBAc5C;IAEK,KAAK,CACT,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,EACpC,MAAM,CAAC,EAAE,QAAQ,EAAE,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;;;;OA+B5C;IAEK,MAAM,CACV,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,sBAe9C;IAEK,UAAU,CACd,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,EACvC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,sBAwB7C;IAEK,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAiB/D;IAEK,iBAAiB,CACrB,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,sBAyB/B;IAEK,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,sBAYjE;IAEK,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,iBAUlE;IAGK,YAAY,CAAC,IAAI,EAAE;QACvB,UAAU,EAAE,gCAAgC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QACtE,OAAO,EACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,GACnC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,GACpC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,GACpC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAClC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;QACrB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,SAAS,CAAA;KACtB,GAAG,OAAO,CACT,gCAAgC,CAAC,YAAY,GAAG;QAC9C,OAAO,EACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,GACnC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,GACpC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,GACpC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAClC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KACtB,CACF,CAUA;IAEK,MAAM,CACV,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,kBAgBrD;IAEK,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,iBAW/C;IAED,UAAU,CAAC,GAAG,EAAE,SAAS;;MAExB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;QAClB,aAAa;MACvB;CACF"}
|
package/dist/seed/client.js
CHANGED
|
@@ -2,7 +2,7 @@ import fs from 'node:fs/promises';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { CID } from 'multiformats/cid';
|
|
5
|
-
import { AtUri } from '@atproto/syntax';
|
|
5
|
+
import { AtUri, } from '@atproto/syntax';
|
|
6
6
|
// Makes it simple to create data via the XRPC client,
|
|
7
7
|
// and keeps track of all created data in memory for convenience.
|
|
8
8
|
let AVATAR_IMG;
|