@atproto/bsky 0.0.82 → 0.0.83
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 +14 -0
- package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js +1 -3
- package/dist/api/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
- package/dist/auth-verifier.d.ts +6 -0
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +80 -1
- package/dist/auth-verifier.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -0
- package/dist/config.js.map +1 -1
- package/dist/feature-gates.d.ts +5 -1
- package/dist/feature-gates.d.ts.map +1 -1
- package/dist/feature-gates.js +5 -1
- package/dist/feature-gates.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +35 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +35 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +14 -0
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js +9 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/package.json +10 -9
- package/src/api/app/bsky/graph/getSuggestedFollowsByActor.ts +1 -8
- package/src/auth-verifier.ts +77 -0
- package/src/config.ts +8 -0
- package/src/feature-gates.ts +5 -1
- package/src/index.ts +5 -1
- package/src/lexicon/lexicons.ts +37 -0
- package/src/lexicon/types/app/bsky/actor/defs.ts +23 -0
- package/tests/entryway-auth.test.ts +174 -0
|
@@ -219,6 +219,8 @@ export interface BskyAppStatePref {
|
|
|
219
219
|
activeProgressGuide?: BskyAppProgressGuide;
|
|
220
220
|
/** An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user. */
|
|
221
221
|
queuedNudges?: string[];
|
|
222
|
+
/** Storage for NUXs the user has encountered. */
|
|
223
|
+
nuxs?: Nux[];
|
|
222
224
|
[k: string]: unknown;
|
|
223
225
|
}
|
|
224
226
|
export declare function isBskyAppStatePref(v: unknown): v is BskyAppStatePref;
|
|
@@ -230,4 +232,16 @@ export interface BskyAppProgressGuide {
|
|
|
230
232
|
}
|
|
231
233
|
export declare function isBskyAppProgressGuide(v: unknown): v is BskyAppProgressGuide;
|
|
232
234
|
export declare function validateBskyAppProgressGuide(v: unknown): ValidationResult;
|
|
235
|
+
/** A new user experiences (NUX) storage object */
|
|
236
|
+
export interface Nux {
|
|
237
|
+
id: string;
|
|
238
|
+
completed: boolean;
|
|
239
|
+
/** Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters. */
|
|
240
|
+
data?: string;
|
|
241
|
+
/** The date and time at which the NUX will expire and should be considered completed. */
|
|
242
|
+
expiresAt?: string;
|
|
243
|
+
[k: string]: unknown;
|
|
244
|
+
}
|
|
245
|
+
export declare function isNux(v: unknown): v is Nux;
|
|
246
|
+
export declare function validateNux(v: unknown): ValidationResult;
|
|
233
247
|
//# sourceMappingURL=defs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/actor/defs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/actor/defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAW,MAAM,kBAAkB,CAAA;AAI5D,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,gBAAgB,MAAM,eAAe,CAAA;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAMpE;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAErE;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAM1D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEhE;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAA;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,mBAAmB,CAM1E;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAExE;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,qBAAqB,CAAA;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,iBAAiB,CAMtE;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEtE;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAC3D,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,OAAO,GACT,CAAC,IAAI,qBAAqB,CAM5B;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAE1E;AAED,sIAAsI;AACtI,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAA;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAA;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAM1D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEhE;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,gBAAgB,EAAE,CAAA;IAC7B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAMhE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEnE;AAED,MAAM,MAAM,WAAW,GAAG,CACtB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,mBAAmB,GACnB,YAAY,GACZ,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAC1C,EAAE,CAAA;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAMpE;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAErE;AAED,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAMpE;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAErE;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAMtD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAE9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAMpE;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAErE;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAMhE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEnE;AAED,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,mBAAmB,CAM1E;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAExE;AAED,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kEAAkE;IAClE,uBAAuB,EAAE,OAAO,CAAA;IAChC,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAM5D;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEjE;AAED,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACpE,qDAAqD;IACrD,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAMhE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEnE;AAED,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAM9D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAElE;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAE/D,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,sFAAsF;IACtF,WAAW,EAAE,KAAK,GAAG,mBAAmB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACxD,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAMtD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAE9D;AAED,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAMhE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEnE;AAED,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAMlE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEpE;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAM5D;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEjE;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAMlE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEpE;AAED,wGAAwG;AACxG,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,yHAAyH;IACzH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,iDAAiD;IACjD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAMpE;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAErE;AAED,iIAAiI;AACjI,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,oBAAoB,CAM5E;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAEzE;AAED,kDAAkD;AAClD,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,yGAAyG;IACzG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,GAAG,CAI1C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAExD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateBskyAppProgressGuide = exports.isBskyAppProgressGuide = exports.validateBskyAppStatePref = exports.isBskyAppStatePref = exports.validateLabelerPrefItem = exports.isLabelerPrefItem = exports.validateLabelersPref = exports.isLabelersPref = exports.validateHiddenPostsPref = exports.isHiddenPostsPref = exports.validateMutedWordsPref = exports.isMutedWordsPref = exports.validateMutedWord = exports.isMutedWord = exports.validateInterestsPref = exports.isInterestsPref = exports.validateThreadViewPref = exports.isThreadViewPref = exports.validateFeedViewPref = exports.isFeedViewPref = exports.validatePersonalDetailsPref = exports.isPersonalDetailsPref = exports.validateSavedFeedsPref = exports.isSavedFeedsPref = exports.validateSavedFeedsPrefV2 = exports.isSavedFeedsPrefV2 = exports.validateSavedFeed = exports.isSavedFeed = exports.validateContentLabelPref = exports.isContentLabelPref = exports.validateAdultContentPref = exports.isAdultContentPref = exports.validateKnownFollowers = exports.isKnownFollowers = exports.validateViewerState = exports.isViewerState = exports.validateProfileAssociatedChat = exports.isProfileAssociatedChat = exports.validateProfileAssociated = exports.isProfileAssociated = exports.validateProfileViewDetailed = exports.isProfileViewDetailed = exports.validateProfileView = exports.isProfileView = exports.validateProfileViewBasic = exports.isProfileViewBasic = void 0;
|
|
3
|
+
exports.validateNux = exports.isNux = exports.validateBskyAppProgressGuide = exports.isBskyAppProgressGuide = exports.validateBskyAppStatePref = exports.isBskyAppStatePref = exports.validateLabelerPrefItem = exports.isLabelerPrefItem = exports.validateLabelersPref = exports.isLabelersPref = exports.validateHiddenPostsPref = exports.isHiddenPostsPref = exports.validateMutedWordsPref = exports.isMutedWordsPref = exports.validateMutedWord = exports.isMutedWord = exports.validateInterestsPref = exports.isInterestsPref = exports.validateThreadViewPref = exports.isThreadViewPref = exports.validateFeedViewPref = exports.isFeedViewPref = exports.validatePersonalDetailsPref = exports.isPersonalDetailsPref = exports.validateSavedFeedsPref = exports.isSavedFeedsPref = exports.validateSavedFeedsPrefV2 = exports.isSavedFeedsPrefV2 = exports.validateSavedFeed = exports.isSavedFeed = exports.validateContentLabelPref = exports.isContentLabelPref = exports.validateAdultContentPref = exports.isAdultContentPref = exports.validateKnownFollowers = exports.isKnownFollowers = exports.validateViewerState = exports.isViewerState = exports.validateProfileAssociatedChat = exports.isProfileAssociatedChat = exports.validateProfileAssociated = exports.isProfileAssociated = exports.validateProfileViewDetailed = exports.isProfileViewDetailed = exports.validateProfileView = exports.isProfileView = exports.validateProfileViewBasic = exports.isProfileViewBasic = void 0;
|
|
4
4
|
const lexicons_1 = require("../../../../lexicons");
|
|
5
5
|
const util_1 = require("../../../../util");
|
|
6
6
|
function isProfileViewBasic(v) {
|
|
@@ -233,4 +233,12 @@ function validateBskyAppProgressGuide(v) {
|
|
|
233
233
|
return lexicons_1.lexicons.validate('app.bsky.actor.defs#bskyAppProgressGuide', v);
|
|
234
234
|
}
|
|
235
235
|
exports.validateBskyAppProgressGuide = validateBskyAppProgressGuide;
|
|
236
|
+
function isNux(v) {
|
|
237
|
+
return ((0, util_1.isObj)(v) && (0, util_1.hasProp)(v, '$type') && v.$type === 'app.bsky.actor.defs#nux');
|
|
238
|
+
}
|
|
239
|
+
exports.isNux = isNux;
|
|
240
|
+
function validateNux(v) {
|
|
241
|
+
return lexicons_1.lexicons.validate('app.bsky.actor.defs#nux', v);
|
|
242
|
+
}
|
|
243
|
+
exports.validateNux = validateNux;
|
|
236
244
|
//# sourceMappingURL=defs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/actor/defs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/actor/defs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/bsky",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.83",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Reference implementation of app.bsky App View (Bluesky API)",
|
|
6
6
|
"keywords": [
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"http-terminator": "^3.2.0",
|
|
30
30
|
"ioredis": "^5.3.2",
|
|
31
31
|
"jose": "^5.0.1",
|
|
32
|
+
"key-encoder": "^2.0.3",
|
|
32
33
|
"kysely": "^0.22.0",
|
|
33
34
|
"multiformats": "^9.9.0",
|
|
34
35
|
"p-queue": "^6.6.2",
|
|
@@ -40,15 +41,15 @@
|
|
|
40
41
|
"structured-headers": "^1.0.1",
|
|
41
42
|
"typed-emitter": "^2.1.0",
|
|
42
43
|
"uint8arrays": "3.0.0",
|
|
43
|
-
"@atproto/api": "^0.13.
|
|
44
|
-
"@atproto/common": "^0.4.
|
|
44
|
+
"@atproto/api": "^0.13.7",
|
|
45
|
+
"@atproto/common": "^0.4.2",
|
|
45
46
|
"@atproto/crypto": "^0.4.1",
|
|
46
47
|
"@atproto/identity": "^0.4.1",
|
|
47
48
|
"@atproto/lexicon": "^0.4.1",
|
|
48
|
-
"@atproto/repo": "^0.5.
|
|
49
|
-
"@atproto/sync": "^0.1.
|
|
49
|
+
"@atproto/repo": "^0.5.1",
|
|
50
|
+
"@atproto/sync": "^0.1.1",
|
|
50
51
|
"@atproto/syntax": "^0.3.0",
|
|
51
|
-
"@atproto/xrpc-server": "^0.6.
|
|
52
|
+
"@atproto/xrpc-server": "^0.6.4"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
55
|
"@bufbuild/buf": "^1.28.1",
|
|
@@ -63,10 +64,10 @@
|
|
|
63
64
|
"axios": "^0.27.2",
|
|
64
65
|
"jest": "^28.1.2",
|
|
65
66
|
"ts-node": "^10.8.2",
|
|
66
|
-
"@atproto/api": "^0.13.
|
|
67
|
+
"@atproto/api": "^0.13.7",
|
|
67
68
|
"@atproto/lex-cli": "^0.5.0",
|
|
68
|
-
"@atproto/pds": "^0.4.
|
|
69
|
-
"@atproto/xrpc": "^0.6.
|
|
69
|
+
"@atproto/pds": "^0.4.59",
|
|
70
|
+
"@atproto/xrpc": "^0.6.2"
|
|
70
71
|
},
|
|
71
72
|
"scripts": {
|
|
72
73
|
"codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/*",
|
|
@@ -56,19 +56,12 @@ export default function (server: Server, ctx: AppContext) {
|
|
|
56
56
|
|
|
57
57
|
const skeleton = async (input: SkeletonFnInput<Context, Params>) => {
|
|
58
58
|
const { params, ctx } = input
|
|
59
|
-
const gates = ctx.featureGates
|
|
60
59
|
const [relativeToDid] = await ctx.hydrator.actor.getDids([params.actor])
|
|
61
60
|
if (!relativeToDid) {
|
|
62
61
|
throw new InvalidRequestError('Actor not found')
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
if (
|
|
66
|
-
ctx.suggestionsAgent &&
|
|
67
|
-
gates.check(
|
|
68
|
-
await gates.user({ did: params.hydrateCtx.viewer }),
|
|
69
|
-
gates.ids.NewSuggestedFollowsByActor,
|
|
70
|
-
)
|
|
71
|
-
) {
|
|
64
|
+
if (ctx.suggestionsAgent) {
|
|
72
65
|
const res =
|
|
73
66
|
await ctx.suggestionsAgent.api.app.bsky.unspecced.getSuggestionsSkeleton(
|
|
74
67
|
{
|
package/src/auth-verifier.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { KeyObject, createPublicKey } from 'node:crypto'
|
|
1
2
|
import {
|
|
2
3
|
AuthRequiredError,
|
|
3
4
|
parseReqNsid,
|
|
4
5
|
verifyJwt as verifyServiceJwt,
|
|
5
6
|
} from '@atproto/xrpc-server'
|
|
7
|
+
import KeyEncoder from 'key-encoder'
|
|
6
8
|
import * as ui8 from 'uint8arrays'
|
|
9
|
+
import * as jose from 'jose'
|
|
7
10
|
import express from 'express'
|
|
8
11
|
import {
|
|
9
12
|
Code,
|
|
@@ -59,11 +62,18 @@ type ModServiceOutput = {
|
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
|
|
65
|
+
const ALLOWED_AUTH_SCOPES = new Set([
|
|
66
|
+
'com.atproto.access',
|
|
67
|
+
'com.atproto.appPass',
|
|
68
|
+
'com.atproto.appPassPrivileged',
|
|
69
|
+
])
|
|
70
|
+
|
|
62
71
|
export type AuthVerifierOpts = {
|
|
63
72
|
ownDid: string
|
|
64
73
|
alternateAudienceDids: string[]
|
|
65
74
|
modServiceDid: string
|
|
66
75
|
adminPasses: string[]
|
|
76
|
+
entrywayJwtPublicKey?: KeyObject
|
|
67
77
|
}
|
|
68
78
|
|
|
69
79
|
export class AuthVerifier {
|
|
@@ -71,6 +81,7 @@ export class AuthVerifier {
|
|
|
71
81
|
public standardAudienceDids: Set<string>
|
|
72
82
|
public modServiceDid: string
|
|
73
83
|
private adminPasses: Set<string>
|
|
84
|
+
private entrywayJwtPublicKey?: KeyObject
|
|
74
85
|
|
|
75
86
|
constructor(
|
|
76
87
|
public dataplane: DataPlaneClient,
|
|
@@ -83,6 +94,7 @@ export class AuthVerifier {
|
|
|
83
94
|
])
|
|
84
95
|
this.modServiceDid = opts.modServiceDid
|
|
85
96
|
this.adminPasses = new Set(opts.adminPasses)
|
|
97
|
+
this.entrywayJwtPublicKey = opts.entrywayJwtPublicKey
|
|
86
98
|
}
|
|
87
99
|
|
|
88
100
|
// verifiers (arrow fns to preserve scope)
|
|
@@ -103,6 +115,17 @@ export class AuthVerifier {
|
|
|
103
115
|
credentials: { type: 'standard', iss, aud },
|
|
104
116
|
}
|
|
105
117
|
} else if (isBearerToken(ctx.req)) {
|
|
118
|
+
// @NOTE temporarily accept entryway session tokens to shed load from PDS instances
|
|
119
|
+
const token = bearerTokenFromReq(ctx.req)
|
|
120
|
+
const header = token ? jose.decodeProtectedHeader(token) : undefined
|
|
121
|
+
if (header?.typ === 'at+jwt') {
|
|
122
|
+
// we should never use entryway session tokens in the case of flexible auth audiences (namely in the case of getFeed)
|
|
123
|
+
if (opts.skipAudCheck) {
|
|
124
|
+
throw new AuthRequiredError('Malformed token', 'InvalidToken')
|
|
125
|
+
}
|
|
126
|
+
return this.entrywaySession(ctx)
|
|
127
|
+
}
|
|
128
|
+
|
|
106
129
|
const { iss, aud } = await this.verifyServiceJwt(ctx, {
|
|
107
130
|
lxmCheck: opts.lxmCheck,
|
|
108
131
|
iss: null,
|
|
@@ -182,6 +205,54 @@ export class AuthVerifier {
|
|
|
182
205
|
}
|
|
183
206
|
}
|
|
184
207
|
|
|
208
|
+
// @NOTE this auth verifier method is not recommended to be implemented by most appviews
|
|
209
|
+
// this is a short term fix to remove proxy load from Bluesky's PDS and in line with possible
|
|
210
|
+
// future plans to have the client talk directly with the appview
|
|
211
|
+
entrywaySession = async (reqCtx: ReqCtx): Promise<StandardOutput> => {
|
|
212
|
+
const token = bearerTokenFromReq(reqCtx.req)
|
|
213
|
+
if (!token) {
|
|
214
|
+
throw new AuthRequiredError(undefined, 'AuthMissing')
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// if entryway jwt key not configured then do not parsed these tokens
|
|
218
|
+
if (!this.entrywayJwtPublicKey) {
|
|
219
|
+
throw new AuthRequiredError('Malformed token', 'InvalidToken')
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const res = await jose
|
|
223
|
+
.jwtVerify(token, this.entrywayJwtPublicKey)
|
|
224
|
+
.catch((err) => {
|
|
225
|
+
if (err?.['code'] === 'ERR_JWT_EXPIRED') {
|
|
226
|
+
throw new AuthRequiredError('Token has expired', 'ExpiredToken')
|
|
227
|
+
}
|
|
228
|
+
throw new AuthRequiredError(
|
|
229
|
+
'Token could not be verified',
|
|
230
|
+
'InvalidToken',
|
|
231
|
+
)
|
|
232
|
+
})
|
|
233
|
+
|
|
234
|
+
const { sub, aud, scope } = res.payload
|
|
235
|
+
if (typeof sub !== 'string' || !sub.startsWith('did:')) {
|
|
236
|
+
throw new AuthRequiredError('Malformed token', 'InvalidToken')
|
|
237
|
+
} else if (
|
|
238
|
+
typeof aud !== 'string' ||
|
|
239
|
+
!aud.startsWith('did:web:') ||
|
|
240
|
+
!aud.endsWith('.bsky.network')
|
|
241
|
+
) {
|
|
242
|
+
throw new AuthRequiredError('Bad token aud', 'InvalidToken')
|
|
243
|
+
} else if (typeof scope !== 'string' || !ALLOWED_AUTH_SCOPES.has(scope)) {
|
|
244
|
+
throw new AuthRequiredError('Bad token scope', 'InvalidToken')
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return {
|
|
248
|
+
credentials: {
|
|
249
|
+
type: 'standard',
|
|
250
|
+
aud: this.ownDid,
|
|
251
|
+
iss: sub,
|
|
252
|
+
},
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
185
256
|
modService = async (reqCtx: ReqCtx): Promise<ModServiceOutput> => {
|
|
186
257
|
const { iss, aud } = await this.verifyServiceJwt(reqCtx, {
|
|
187
258
|
aud: this.ownDid,
|
|
@@ -365,3 +436,9 @@ export const buildBasicAuth = (username: string, password: string): string => {
|
|
|
365
436
|
ui8.toString(ui8.fromString(`${username}:${password}`, 'utf8'), 'base64pad')
|
|
366
437
|
)
|
|
367
438
|
}
|
|
439
|
+
|
|
440
|
+
const keyEncoder = new KeyEncoder('secp256k1')
|
|
441
|
+
export const createPublicKeyObject = (publicKeyHex: string): KeyObject => {
|
|
442
|
+
const key = keyEncoder.encodePublic(publicKeyHex, 'raw', 'pem')
|
|
443
|
+
return createPublicKey({ format: 'pem', key })
|
|
444
|
+
}
|
package/src/config.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface ServerConfigValues {
|
|
|
8
8
|
publicUrl?: string
|
|
9
9
|
serverDid: string
|
|
10
10
|
alternateAudienceDids: string[]
|
|
11
|
+
entrywayJwtPublicKeyHex?: string
|
|
11
12
|
// external services
|
|
12
13
|
dataplaneUrls: string[]
|
|
13
14
|
dataplaneHttpVersion?: '1.1' | '2'
|
|
@@ -56,6 +57,8 @@ export class ServerConfig {
|
|
|
56
57
|
const alternateAudienceDids = process.env.BSKY_ALT_AUDIENCE_DIDS
|
|
57
58
|
? process.env.BSKY_ALT_AUDIENCE_DIDS.split(',')
|
|
58
59
|
: []
|
|
60
|
+
const entrywayJwtPublicKeyHex =
|
|
61
|
+
process.env.BSKY_ENTRYWAY_JWT_PUBLIC_KEY_HEX || undefined
|
|
59
62
|
const handleResolveNameservers = process.env.BSKY_HANDLE_RESOLVE_NAMESERVERS
|
|
60
63
|
? process.env.BSKY_HANDLE_RESOLVE_NAMESERVERS.split(',')
|
|
61
64
|
: []
|
|
@@ -126,6 +129,7 @@ export class ServerConfig {
|
|
|
126
129
|
publicUrl,
|
|
127
130
|
serverDid,
|
|
128
131
|
alternateAudienceDids,
|
|
132
|
+
entrywayJwtPublicKeyHex,
|
|
129
133
|
dataplaneUrls,
|
|
130
134
|
dataplaneHttpVersion,
|
|
131
135
|
dataplaneIgnoreBadTls,
|
|
@@ -194,6 +198,10 @@ export class ServerConfig {
|
|
|
194
198
|
return this.cfg.alternateAudienceDids
|
|
195
199
|
}
|
|
196
200
|
|
|
201
|
+
get entrywayJwtPublicKeyHex() {
|
|
202
|
+
return this.cfg.entrywayJwtPublicKeyHex
|
|
203
|
+
}
|
|
204
|
+
|
|
197
205
|
get dataplaneUrls() {
|
|
198
206
|
return this.cfg.dataplaneUrls
|
|
199
207
|
}
|
package/src/feature-gates.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -20,7 +20,7 @@ import { Keypair } from '@atproto/crypto'
|
|
|
20
20
|
import { createDataPlaneClient } from './data-plane/client'
|
|
21
21
|
import { Hydrator } from './hydration/hydrator'
|
|
22
22
|
import { Views } from './views'
|
|
23
|
-
import { AuthVerifier } from './auth-verifier'
|
|
23
|
+
import { AuthVerifier, createPublicKeyObject } from './auth-verifier'
|
|
24
24
|
import { authWithApiKey as bsyncAuth, createBsyncClient } from './bsync'
|
|
25
25
|
import { authWithApiKey as courierAuth, createCourierClient } from './courier'
|
|
26
26
|
import { FeatureGates } from './feature-gates'
|
|
@@ -119,11 +119,15 @@ export class BskyAppView {
|
|
|
119
119
|
: [],
|
|
120
120
|
})
|
|
121
121
|
|
|
122
|
+
const entrywayJwtPublicKey = config.entrywayJwtPublicKeyHex
|
|
123
|
+
? createPublicKeyObject(config.entrywayJwtPublicKeyHex)
|
|
124
|
+
: undefined
|
|
122
125
|
const authVerifier = new AuthVerifier(dataplane, {
|
|
123
126
|
ownDid: config.serverDid,
|
|
124
127
|
alternateAudienceDids: config.alternateAudienceDids,
|
|
125
128
|
modServiceDid: config.modServiceDid,
|
|
126
129
|
adminPasses: config.adminPasswords,
|
|
130
|
+
entrywayJwtPublicKey,
|
|
127
131
|
})
|
|
128
132
|
|
|
129
133
|
const featureGates = new FeatureGates({
|
package/src/lexicon/lexicons.ts
CHANGED
|
@@ -4572,6 +4572,15 @@ export const schemaDict = {
|
|
|
4572
4572
|
maxLength: 100,
|
|
4573
4573
|
},
|
|
4574
4574
|
},
|
|
4575
|
+
nuxs: {
|
|
4576
|
+
description: 'Storage for NUXs the user has encountered.',
|
|
4577
|
+
type: 'array',
|
|
4578
|
+
maxLength: 100,
|
|
4579
|
+
items: {
|
|
4580
|
+
type: 'ref',
|
|
4581
|
+
ref: 'lex:app.bsky.actor.defs#nux',
|
|
4582
|
+
},
|
|
4583
|
+
},
|
|
4575
4584
|
},
|
|
4576
4585
|
},
|
|
4577
4586
|
bskyAppProgressGuide: {
|
|
@@ -4586,6 +4595,34 @@ export const schemaDict = {
|
|
|
4586
4595
|
},
|
|
4587
4596
|
},
|
|
4588
4597
|
},
|
|
4598
|
+
nux: {
|
|
4599
|
+
type: 'object',
|
|
4600
|
+
description: 'A new user experiences (NUX) storage object',
|
|
4601
|
+
required: ['id', 'completed'],
|
|
4602
|
+
properties: {
|
|
4603
|
+
id: {
|
|
4604
|
+
type: 'string',
|
|
4605
|
+
maxLength: 100,
|
|
4606
|
+
},
|
|
4607
|
+
completed: {
|
|
4608
|
+
type: 'boolean',
|
|
4609
|
+
default: false,
|
|
4610
|
+
},
|
|
4611
|
+
data: {
|
|
4612
|
+
description:
|
|
4613
|
+
'Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.',
|
|
4614
|
+
type: 'string',
|
|
4615
|
+
maxLength: 3000,
|
|
4616
|
+
maxGraphemes: 300,
|
|
4617
|
+
},
|
|
4618
|
+
expiresAt: {
|
|
4619
|
+
type: 'string',
|
|
4620
|
+
format: 'datetime',
|
|
4621
|
+
description:
|
|
4622
|
+
'The date and time at which the NUX will expire and should be considered completed.',
|
|
4623
|
+
},
|
|
4624
|
+
},
|
|
4625
|
+
},
|
|
4589
4626
|
},
|
|
4590
4627
|
},
|
|
4591
4628
|
AppBskyActorGetPreferences: {
|
|
@@ -469,6 +469,8 @@ export interface BskyAppStatePref {
|
|
|
469
469
|
activeProgressGuide?: BskyAppProgressGuide
|
|
470
470
|
/** An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user. */
|
|
471
471
|
queuedNudges?: string[]
|
|
472
|
+
/** Storage for NUXs the user has encountered. */
|
|
473
|
+
nuxs?: Nux[]
|
|
472
474
|
[k: string]: unknown
|
|
473
475
|
}
|
|
474
476
|
|
|
@@ -501,3 +503,24 @@ export function isBskyAppProgressGuide(v: unknown): v is BskyAppProgressGuide {
|
|
|
501
503
|
export function validateBskyAppProgressGuide(v: unknown): ValidationResult {
|
|
502
504
|
return lexicons.validate('app.bsky.actor.defs#bskyAppProgressGuide', v)
|
|
503
505
|
}
|
|
506
|
+
|
|
507
|
+
/** A new user experiences (NUX) storage object */
|
|
508
|
+
export interface Nux {
|
|
509
|
+
id: string
|
|
510
|
+
completed: boolean
|
|
511
|
+
/** Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters. */
|
|
512
|
+
data?: string
|
|
513
|
+
/** The date and time at which the NUX will expire and should be considered completed. */
|
|
514
|
+
expiresAt?: string
|
|
515
|
+
[k: string]: unknown
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
export function isNux(v: unknown): v is Nux {
|
|
519
|
+
return (
|
|
520
|
+
isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.actor.defs#nux'
|
|
521
|
+
)
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
export function validateNux(v: unknown): ValidationResult {
|
|
525
|
+
return lexicons.validate('app.bsky.actor.defs#nux', v)
|
|
526
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import * as nodeCrypto from 'node:crypto'
|
|
2
|
+
import KeyEncoder from 'key-encoder'
|
|
3
|
+
import * as ui8 from 'uint8arrays'
|
|
4
|
+
import * as jose from 'jose'
|
|
5
|
+
import * as crypto from '@atproto/crypto'
|
|
6
|
+
import { AtpAgent, AtUri } from '@atproto/api'
|
|
7
|
+
import { basicSeed, SeedClient, TestNetwork } from '@atproto/dev-env'
|
|
8
|
+
import assert from 'node:assert'
|
|
9
|
+
import { MINUTE } from '@atproto/common'
|
|
10
|
+
|
|
11
|
+
const keyEncoder = new KeyEncoder('secp256k1')
|
|
12
|
+
|
|
13
|
+
const derivePrivKey = async (
|
|
14
|
+
keypair: crypto.ExportableKeypair,
|
|
15
|
+
): Promise<nodeCrypto.KeyObject> => {
|
|
16
|
+
const privKeyRaw = await keypair.export()
|
|
17
|
+
const privKeyEncoded = keyEncoder.encodePrivate(
|
|
18
|
+
ui8.toString(privKeyRaw, 'hex'),
|
|
19
|
+
'raw',
|
|
20
|
+
'pem',
|
|
21
|
+
)
|
|
22
|
+
return nodeCrypto.createPrivateKey(privKeyEncoded)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// @NOTE temporary measure, see note on entrywaySession in bsky/src/auth-verifier.ts
|
|
26
|
+
describe('entryway auth', () => {
|
|
27
|
+
let network: TestNetwork
|
|
28
|
+
let agent: AtpAgent
|
|
29
|
+
let sc: SeedClient
|
|
30
|
+
let alice: string
|
|
31
|
+
let jwtPrivKey: nodeCrypto.KeyObject
|
|
32
|
+
|
|
33
|
+
beforeAll(async () => {
|
|
34
|
+
const keypair = await crypto.Secp256k1Keypair.create({ exportable: true })
|
|
35
|
+
jwtPrivKey = await derivePrivKey(keypair)
|
|
36
|
+
const entrywayJwtPublicKeyHex = ui8.toString(
|
|
37
|
+
keypair.publicKeyBytes(),
|
|
38
|
+
'hex',
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
network = await TestNetwork.create({
|
|
42
|
+
dbPostgresSchema: 'bsky_entryway_auth',
|
|
43
|
+
bsky: {
|
|
44
|
+
entrywayJwtPublicKeyHex,
|
|
45
|
+
},
|
|
46
|
+
})
|
|
47
|
+
agent = network.bsky.getClient()
|
|
48
|
+
sc = network.getSeedClient()
|
|
49
|
+
await basicSeed(sc)
|
|
50
|
+
await network.processAll()
|
|
51
|
+
alice = sc.dids.alice
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
afterAll(async () => {
|
|
55
|
+
await network.close()
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
it('works', async () => {
|
|
59
|
+
const signer = new jose.SignJWT({ scope: 'com.atproto.access' })
|
|
60
|
+
.setSubject(alice)
|
|
61
|
+
.setIssuedAt()
|
|
62
|
+
.setExpirationTime('60mins')
|
|
63
|
+
.setAudience('did:web:fake.server.bsky.network')
|
|
64
|
+
.setProtectedHeader({
|
|
65
|
+
typ: 'at+jwt', // https://www.rfc-editor.org/rfc/rfc9068.html
|
|
66
|
+
alg: 'ES256K',
|
|
67
|
+
})
|
|
68
|
+
const token = await signer.sign(jwtPrivKey)
|
|
69
|
+
const res = await agent.app.bsky.actor.getProfile(
|
|
70
|
+
{ actor: sc.dids.bob },
|
|
71
|
+
{ headers: { authorization: `Bearer ${token}` } },
|
|
72
|
+
)
|
|
73
|
+
expect(res.data.did).toEqual(sc.dids.bob)
|
|
74
|
+
// ensure this request is personalized for alice
|
|
75
|
+
const followingUri = res.data.viewer?.following
|
|
76
|
+
assert(followingUri)
|
|
77
|
+
const parsed = new AtUri(followingUri)
|
|
78
|
+
expect(parsed.hostname).toEqual(alice)
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
it('does not work on bad scopes', async () => {
|
|
82
|
+
const signer = new jose.SignJWT({ scope: 'com.atproto.refresh' })
|
|
83
|
+
.setSubject(alice)
|
|
84
|
+
.setIssuedAt()
|
|
85
|
+
.setExpirationTime('60mins')
|
|
86
|
+
.setAudience('did:web:fake.server.bsky.network')
|
|
87
|
+
.setProtectedHeader({
|
|
88
|
+
typ: 'at+jwt', // https://www.rfc-editor.org/rfc/rfc9068.html
|
|
89
|
+
alg: 'ES256K',
|
|
90
|
+
})
|
|
91
|
+
const token = await signer.sign(jwtPrivKey)
|
|
92
|
+
const attempt = agent.app.bsky.actor.getProfile(
|
|
93
|
+
{ actor: sc.dids.bob },
|
|
94
|
+
{ headers: { authorization: `Bearer ${token}` } },
|
|
95
|
+
)
|
|
96
|
+
await expect(attempt).rejects.toThrow('Bad token scope')
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
it('does not work on expired tokens', async () => {
|
|
100
|
+
const time = Math.floor((Date.now() - 5 * MINUTE) / 1000)
|
|
101
|
+
const signer = new jose.SignJWT({ scope: 'com.atproto.access' })
|
|
102
|
+
.setSubject(alice)
|
|
103
|
+
.setIssuedAt()
|
|
104
|
+
.setExpirationTime(time)
|
|
105
|
+
.setAudience('did:web:fake.server.bsky.network')
|
|
106
|
+
.setProtectedHeader({
|
|
107
|
+
typ: 'at+jwt', // https://www.rfc-editor.org/rfc/rfc9068.html
|
|
108
|
+
alg: 'ES256K',
|
|
109
|
+
})
|
|
110
|
+
const token = await signer.sign(jwtPrivKey)
|
|
111
|
+
const attempt = agent.app.bsky.actor.getProfile(
|
|
112
|
+
{ actor: sc.dids.bob },
|
|
113
|
+
{ headers: { authorization: `Bearer ${token}` } },
|
|
114
|
+
)
|
|
115
|
+
await expect(attempt).rejects.toThrow('Token has expired')
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
it('does not work on bad auds', async () => {
|
|
119
|
+
const signer = new jose.SignJWT({ scope: 'com.atproto.access' })
|
|
120
|
+
.setSubject(alice)
|
|
121
|
+
.setIssuedAt()
|
|
122
|
+
.setExpirationTime('60mins')
|
|
123
|
+
.setAudience('did:web:my.personal.pds.com')
|
|
124
|
+
.setProtectedHeader({
|
|
125
|
+
typ: 'at+jwt', // https://www.rfc-editor.org/rfc/rfc9068.html
|
|
126
|
+
alg: 'ES256K',
|
|
127
|
+
})
|
|
128
|
+
const token = await signer.sign(jwtPrivKey)
|
|
129
|
+
const attempt = agent.app.bsky.actor.getProfile(
|
|
130
|
+
{ actor: sc.dids.bob },
|
|
131
|
+
{ headers: { authorization: `Bearer ${token}` } },
|
|
132
|
+
)
|
|
133
|
+
await expect(attempt).rejects.toThrow('Bad token aud')
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
it('does not work with bad signatures', async () => {
|
|
137
|
+
const fakeKey = await crypto.Secp256k1Keypair.create({ exportable: true })
|
|
138
|
+
const fakeJwtKey = await derivePrivKey(fakeKey)
|
|
139
|
+
const signer = new jose.SignJWT({ scope: 'com.atproto.access' })
|
|
140
|
+
.setSubject(alice)
|
|
141
|
+
.setIssuedAt()
|
|
142
|
+
.setExpirationTime('60mins')
|
|
143
|
+
.setAudience('did:web:my.personal.pds.com')
|
|
144
|
+
.setProtectedHeader({
|
|
145
|
+
typ: 'at+jwt', // https://www.rfc-editor.org/rfc/rfc9068.html
|
|
146
|
+
alg: 'ES256K',
|
|
147
|
+
})
|
|
148
|
+
const token = await signer.sign(fakeJwtKey)
|
|
149
|
+
const attempt = agent.app.bsky.actor.getProfile(
|
|
150
|
+
{ actor: sc.dids.bob },
|
|
151
|
+
{ headers: { authorization: `Bearer ${token}` } },
|
|
152
|
+
)
|
|
153
|
+
await expect(attempt).rejects.toThrow('Token could not be verified')
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
it('does not work on flexible aud routes', async () => {
|
|
157
|
+
const signer = new jose.SignJWT({ scope: 'com.atproto.access' })
|
|
158
|
+
.setSubject(alice)
|
|
159
|
+
.setIssuedAt()
|
|
160
|
+
.setExpirationTime('60mins')
|
|
161
|
+
.setAudience('did:web:fake.server.bsky.network')
|
|
162
|
+
.setProtectedHeader({
|
|
163
|
+
typ: 'at+jwt', // https://www.rfc-editor.org/rfc/rfc9068.html
|
|
164
|
+
alg: 'ES256K',
|
|
165
|
+
})
|
|
166
|
+
const token = await signer.sign(jwtPrivKey)
|
|
167
|
+
const feedUri = AtUri.make(alice, 'app.bsky.feed.generator', 'fake-feed')
|
|
168
|
+
const attempt = agent.app.bsky.feed.getFeed(
|
|
169
|
+
{ feed: feedUri.toString() },
|
|
170
|
+
{ headers: { authorization: `Bearer ${token}` } },
|
|
171
|
+
)
|
|
172
|
+
await expect(attempt).rejects.toThrow('Malformed token')
|
|
173
|
+
})
|
|
174
|
+
})
|