@atproto/xrpc-server 0.9.5 → 0.10.0

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/auth.d.ts.map +1 -1
  3. package/dist/auth.js +7 -8
  4. package/dist/auth.js.map +1 -1
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/logger.js.map +1 -1
  8. package/dist/rate-limiter.js.map +1 -1
  9. package/dist/server.d.ts.map +1 -1
  10. package/dist/server.js +1 -2
  11. package/dist/server.js.map +1 -1
  12. package/dist/stream/frames.d.ts +7 -6
  13. package/dist/stream/frames.d.ts.map +1 -1
  14. package/dist/stream/frames.js +7 -54
  15. package/dist/stream/frames.js.map +1 -1
  16. package/dist/stream/index.d.ts +0 -1
  17. package/dist/stream/index.d.ts.map +1 -1
  18. package/dist/stream/index.js +0 -1
  19. package/dist/stream/index.js.map +1 -1
  20. package/dist/stream/logger.js.map +1 -1
  21. package/dist/stream/server.d.ts.map +1 -1
  22. package/dist/stream/server.js +4 -4
  23. package/dist/stream/server.js.map +1 -1
  24. package/dist/stream/stream.d.ts +3 -3
  25. package/dist/stream/stream.d.ts.map +1 -1
  26. package/dist/stream/stream.js.map +1 -1
  27. package/dist/stream/subscription.d.ts.map +1 -1
  28. package/dist/stream/subscription.js +13 -8
  29. package/dist/stream/subscription.js.map +1 -1
  30. package/dist/stream/types.d.ts +0 -10
  31. package/dist/stream/types.d.ts.map +1 -1
  32. package/dist/stream/types.js +1 -26
  33. package/dist/stream/types.js.map +1 -1
  34. package/dist/types.d.ts +2 -2
  35. package/dist/types.js.map +1 -1
  36. package/dist/util.js.map +1 -1
  37. package/package.json +7 -6
  38. package/src/auth.ts +7 -8
  39. package/src/server.ts +3 -3
  40. package/src/stream/frames.ts +19 -20
  41. package/src/stream/index.ts +0 -1
  42. package/src/stream/server.ts +1 -1
  43. package/src/stream/stream.ts +1 -1
  44. package/src/stream/subscription.ts +14 -7
  45. package/src/stream/types.ts +0 -16
  46. package/tests/auth.test.ts +5 -2
  47. package/tests/bodies.test.ts +2 -0
  48. package/tests/frames.test.ts +16 -18
  49. package/tests/subscriptions.test.ts +1 -57
  50. package/tsconfig.build.tsbuildinfo +1 -1
  51. package/dist/stream/websocket-keepalive.d.ts +0 -24
  52. package/dist/stream/websocket-keepalive.d.ts.map +0 -1
  53. package/dist/stream/websocket-keepalive.js +0 -160
  54. package/dist/stream/websocket-keepalive.js.map +0 -1
  55. package/src/stream/websocket-keepalive.ts +0 -152
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @atproto/xrpc-server
2
2
 
3
+ ## 0.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#4366](https://github.com/bluesky-social/atproto/pull/4366) [`261968fd6`](https://github.com/bluesky-social/atproto/commit/261968fd65014ded613e2bf085d61a7864b8fba7) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Enforce valid DAG-CBOR encoding of message frames
8
+
9
+ ### Patch Changes
10
+
11
+ - [#4366](https://github.com/bluesky-social/atproto/pull/4366) [`261968fd6`](https://github.com/bluesky-social/atproto/commit/261968fd65014ded613e2bf085d61a7864b8fba7) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Replace `uint8arrays` with native NodeJS `Buffer`
12
+
13
+ - Updated dependencies [[`261968fd6`](https://github.com/bluesky-social/atproto/commit/261968fd65014ded613e2bf085d61a7864b8fba7), [`261968fd6`](https://github.com/bluesky-social/atproto/commit/261968fd65014ded613e2bf085d61a7864b8fba7), [`261968fd6`](https://github.com/bluesky-social/atproto/commit/261968fd65014ded613e2bf085d61a7864b8fba7)]:
14
+ - @atproto/common@0.5.0
15
+ - @atproto/lexicon@0.5.2
16
+ - @atproto/crypto@0.4.4
17
+ - @atproto/ws-client@0.0.3
18
+ - @atproto/xrpc@0.7.6
19
+
20
+ ## 0.9.6
21
+
22
+ ### Patch Changes
23
+
24
+ - [#4348](https://github.com/bluesky-social/atproto/pull/4348) [`1dd20d3a8`](https://github.com/bluesky-social/atproto/commit/1dd20d3a81cda29392d8d63d13082254ec5f68a8) Thanks [@dholms](https://github.com/dholms)! - Move WebSocketKeepAlive into its own package
25
+
26
+ - Updated dependencies [[`1dd20d3a8`](https://github.com/bluesky-social/atproto/commit/1dd20d3a81cda29392d8d63d13082254ec5f68a8)]:
27
+ - @atproto/ws-client@0.0.2
28
+
3
29
  ## 0.9.5
4
30
 
5
31
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,KAAK,gBAAgB,GAAG;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAA;CACxB,CAAA;AAMD,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,gBAAgB,KACvB,OAAO,CAAC,MAAM,CAsBhB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,QAAQ,gBAAgB;;;;EAKtE,CAAA;AAMD,MAAM,MAAM,wBAAwB,GAAG,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,EACpB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,QAAQ,MAAM,GAAG,IAAI,EAAE,4CAA4C;AACnE,KAAK,MAAM,GAAG,IAAI,EAAE,uCAAuC;AAC3D,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,EACtE,yBAAwB,wBAAuD,KAC9E,OAAO,CAAC,iBAAiB,CA4F3B,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,wBAU1C,CAAA"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,KAAK,gBAAgB,GAAG;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAA;CACxB,CAAA;AAMD,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,gBAAgB,KACvB,OAAO,CAAC,MAAM,CAsBhB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,QAAQ,gBAAgB;;;;EAKtE,CAAA;AAMD,MAAM,MAAM,wBAAwB,GAAG,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,EACpB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,QAAQ,MAAM,GAAG,IAAI,EAAE,4CAA4C;AACnE,KAAK,MAAM,GAAG,IAAI,EAAE,uCAAuC;AAC3D,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,EACtE,yBAAwB,wBAAuD,KAC9E,OAAO,CAAC,iBAAiB,CA4F3B,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,wBAU1C,CAAA"}
package/dist/auth.js CHANGED
@@ -34,7 +34,6 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.cryptoVerifySignatureWithKey = exports.verifyJwt = exports.createServiceAuthHeaders = exports.createServiceJwt = void 0;
37
- const ui8 = __importStar(require("uint8arrays"));
38
37
  const common = __importStar(require("@atproto/common"));
39
38
  const common_1 = require("@atproto/common");
40
39
  const crypto = __importStar(require("@atproto/crypto"));
@@ -58,9 +57,9 @@ const createServiceJwt = async (params) => {
58
57
  jti,
59
58
  });
60
59
  const toSignStr = `${jsonToB64Url(header)}.${jsonToB64Url(payload)}`;
61
- const toSign = ui8.fromString(toSignStr, 'utf8');
62
- const sig = await keypair.sign(toSign);
63
- return `${toSignStr}.${ui8.toString(sig, 'base64url')}`;
60
+ const toSign = Buffer.from(toSignStr, 'utf8');
61
+ const sig = Buffer.from(await keypair.sign(toSign));
62
+ return `${toSignStr}.${sig.toString('base64url')}`;
64
63
  };
65
64
  exports.createServiceJwt = createServiceJwt;
66
65
  const createServiceAuthHeaders = async (params) => {
@@ -71,7 +70,7 @@ const createServiceAuthHeaders = async (params) => {
71
70
  };
72
71
  exports.createServiceAuthHeaders = createServiceAuthHeaders;
73
72
  const jsonToB64Url = (json) => {
74
- return common.utf8ToB64Url(JSON.stringify(json));
73
+ return Buffer.from(JSON.stringify(json)).toString('base64url');
75
74
  };
76
75
  const verifyJwt = async (jwtStr, ownDid, // null indicates to skip the audience check
77
76
  lxm, // null indicates to skip the lxm check
@@ -107,8 +106,8 @@ getSigningKey, verifySignatureWithKey = exports.cryptoVerifySignatureWithKey) =>
107
106
  ? `bad jwt lexicon method ("lxm"). must match: ${lxm}`
108
107
  : `missing jwt lexicon method ("lxm"). must match: ${lxm}`, 'BadJwtLexiconMethod');
109
108
  }
110
- const msgBytes = ui8.fromString(parts.slice(0, 2).join('.'), 'utf8');
111
- const sigBytes = ui8.fromString(sig, 'base64url');
109
+ const msgBytes = Buffer.from(parts.slice(0, 2).join('.'), 'utf8');
110
+ const sigBytes = Buffer.from(sig, 'base64url');
112
111
  const signingKey = await getSigningKey(payload.iss, false);
113
112
  const { alg } = header;
114
113
  let validSig;
@@ -145,7 +144,7 @@ const cryptoVerifySignatureWithKey = async (key, msgBytes, sigBytes, alg) => {
145
144
  };
146
145
  exports.cryptoVerifySignatureWithKey = cryptoVerifySignatureWithKey;
147
146
  const parseB64UrlToJson = (b64) => {
148
- return JSON.parse(common.b64UrlToUtf8(b64));
147
+ return JSON.parse(Buffer.from(b64, 'base64url').toString('utf8'));
149
148
  };
150
149
  const parseHeader = (b64) => {
151
150
  const header = parseB64UrlToJson(b64);
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import * as common from '@atproto/common'\nimport { MINUTE } from '@atproto/common'\nimport * as crypto from '@atproto/crypto'\nimport { AuthRequiredError } from './errors'\n\ntype ServiceJwtParams = {\n iss: string\n aud: string\n iat?: number\n exp?: number\n lxm: string | null\n keypair: crypto.Keypair\n}\n\ntype ServiceJwtHeaders = {\n alg: string\n} & Record<string, unknown>\n\ntype ServiceJwtPayload = {\n iss: string\n aud: string\n exp: number\n lxm?: string\n jti?: string\n}\n\nexport const createServiceJwt = async (\n params: ServiceJwtParams,\n): Promise<string> => {\n const { iss, aud, keypair } = params\n const iat = params.iat ?? Math.floor(Date.now() / 1e3)\n const exp = params.exp ?? iat + MINUTE / 1e3\n const lxm = params.lxm ?? undefined\n const jti = await crypto.randomStr(16, 'hex')\n const header = {\n typ: 'JWT',\n alg: keypair.jwtAlg,\n }\n const payload = common.noUndefinedVals({\n iat,\n iss,\n aud,\n exp,\n lxm,\n jti,\n })\n const toSignStr = `${jsonToB64Url(header)}.${jsonToB64Url(payload)}`\n const toSign = Buffer.from(toSignStr, 'utf8')\n const sig = Buffer.from(await keypair.sign(toSign))\n return `${toSignStr}.${sig.toString('base64url')}`\n}\n\nexport const createServiceAuthHeaders = async (params: ServiceJwtParams) => {\n const jwt = await createServiceJwt(params)\n return {\n headers: { authorization: `Bearer ${jwt}` },\n }\n}\n\nconst jsonToB64Url = (json: Record<string, unknown>): string => {\n return Buffer.from(JSON.stringify(json)).toString('base64url')\n}\n\nexport type VerifySignatureWithKeyFn = (\n key: string,\n msgBytes: Uint8Array,\n sigBytes: Uint8Array,\n alg: string,\n) => Promise<boolean>\n\nexport const verifyJwt = async (\n jwtStr: string,\n ownDid: string | null, // null indicates to skip the audience check\n lxm: string | null, // null indicates to skip the lxm check\n getSigningKey: (iss: string, forceRefresh: boolean) => Promise<string>,\n verifySignatureWithKey: VerifySignatureWithKeyFn = cryptoVerifySignatureWithKey,\n): Promise<ServiceJwtPayload> => {\n const parts = jwtStr.split('.')\n if (parts.length !== 3) {\n throw new AuthRequiredError('poorly formatted jwt', 'BadJwt')\n }\n\n const header = parseHeader(parts[0])\n\n // The spec does not describe what to do with the \"typ\" claim. We can,\n // however, forbid some values that are not compatible with our use case.\n if (\n // service tokens are not OAuth 2.0 access tokens\n // https://datatracker.ietf.org/doc/html/rfc9068\n header['typ'] === 'at+jwt' ||\n // \"refresh+jwt\" is a non-standard type used by the @atproto packages\n header['typ'] === 'refresh+jwt' ||\n // \"DPoP\" proofs are not meant to be used as service tokens\n // https://datatracker.ietf.org/doc/html/rfc9449\n header['typ'] === 'dpop+jwt'\n ) {\n throw new AuthRequiredError(\n `Invalid jwt type \"${header['typ']}\"`,\n 'BadJwtType',\n )\n }\n\n const payload = parsePayload(parts[1])\n const sig = parts[2]\n\n if (Date.now() / 1000 > payload.exp) {\n throw new AuthRequiredError('jwt expired', 'JwtExpired')\n }\n if (ownDid !== null && payload.aud !== ownDid) {\n throw new AuthRequiredError(\n 'jwt audience does not match service did',\n 'BadJwtAudience',\n )\n }\n if (lxm !== null && payload.lxm !== lxm) {\n throw new AuthRequiredError(\n payload.lxm !== undefined\n ? `bad jwt lexicon method (\"lxm\"). must match: ${lxm}`\n : `missing jwt lexicon method (\"lxm\"). must match: ${lxm}`,\n 'BadJwtLexiconMethod',\n )\n }\n\n const msgBytes = Buffer.from(parts.slice(0, 2).join('.'), 'utf8')\n const sigBytes = Buffer.from(sig, 'base64url')\n\n const signingKey = await getSigningKey(payload.iss, false)\n const { alg } = header\n\n let validSig: boolean\n try {\n validSig = await verifySignatureWithKey(signingKey, msgBytes, sigBytes, alg)\n } catch (err) {\n throw new AuthRequiredError(\n 'could not verify jwt signature',\n 'BadJwtSignature',\n )\n }\n\n if (!validSig) {\n // get fresh signing key in case it failed due to a recent rotation\n const freshSigningKey = await getSigningKey(payload.iss, true)\n try {\n validSig =\n freshSigningKey !== signingKey\n ? await verifySignatureWithKey(\n freshSigningKey,\n msgBytes,\n sigBytes,\n alg,\n )\n : false\n } catch (err) {\n throw new AuthRequiredError(\n 'could not verify jwt signature',\n 'BadJwtSignature',\n )\n }\n }\n\n if (!validSig) {\n throw new AuthRequiredError(\n 'jwt signature does not match jwt issuer',\n 'BadJwtSignature',\n )\n }\n\n return payload\n}\n\nexport const cryptoVerifySignatureWithKey: VerifySignatureWithKeyFn = async (\n key: string,\n msgBytes: Uint8Array,\n sigBytes: Uint8Array,\n alg: string,\n) => {\n return crypto.verifySignature(key, msgBytes, sigBytes, {\n jwtAlg: alg,\n allowMalleableSig: true,\n })\n}\n\nconst parseB64UrlToJson = (b64: string) => {\n return JSON.parse(Buffer.from(b64, 'base64url').toString('utf8'))\n}\n\nconst parseHeader = (b64: string): ServiceJwtHeaders => {\n const header = parseB64UrlToJson(b64)\n if (!header || typeof header !== 'object' || typeof header.alg !== 'string') {\n throw new AuthRequiredError('poorly formatted jwt', 'BadJwt')\n }\n return header\n}\n\nconst parsePayload = (b64: string): ServiceJwtPayload => {\n const payload = parseB64UrlToJson(b64)\n if (\n !payload ||\n typeof payload !== 'object' ||\n typeof payload.iss !== 'string' ||\n typeof payload.aud !== 'string' ||\n typeof payload.exp !== 'number' ||\n (payload.lxm && typeof payload.lxm !== 'string') ||\n (payload.nonce && typeof payload.nonce !== 'string')\n ) {\n throw new AuthRequiredError('poorly formatted jwt', 'BadJwt')\n }\n return payload\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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","sourcesContent":["import { isHttpError } from 'http-errors'\nimport { z } from 'zod'\nimport {\n ResponseType,\n ResponseTypeStrings,\n XRPCError as XRPCClientError,\n httpResponseCodeToName,\n httpResponseCodeToString,\n} from '@atproto/xrpc'\n\n// @NOTE Do not depend (directly or indirectly) on \"./types\" here, as it would\n// create a circular dependency.\n\nexport const errorResult = z.object({\n status: z.number(),\n error: z.string().optional(),\n message: z.string().optional(),\n})\nexport type ErrorResult = z.infer<typeof errorResult>\n\nexport function isErrorResult(v: unknown): v is ErrorResult {\n return errorResult.safeParse(v).success\n}\n\nexport function excludeErrorResult<V>(v: V) {\n if (isErrorResult(v)) throw XRPCError.fromErrorResult(v)\n return v as Exclude<V, ErrorResult>\n}\n\nexport { ResponseType }\n\nexport class XRPCError extends Error {\n constructor(\n public type: ResponseType,\n public errorMessage?: string,\n public customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(errorMessage, options)\n }\n\n get statusCode(): number {\n const { type } = this\n\n // Fool-proofing. `new XRPCError(123.5 as number, '')` does not generate a TypeScript error.\n // Because of this, we can end-up with any numeric value instead of an actual `ResponseType`.\n // For legacy reasons, the `type` argument is not checked in the constructor, so we check it here.\n if (type < 400 || type >= 600 || !Number.isFinite(type)) {\n return 500\n }\n\n return type\n }\n\n get payload() {\n return {\n error: this.customErrorName ?? this.typeName,\n message:\n this.type === ResponseType.InternalServerError\n ? this.typeStr // Do not respond with error details for 500s\n : this.errorMessage || this.typeStr,\n }\n }\n\n get typeName(): string | undefined {\n return ResponseType[this.type]\n }\n\n get typeStr(): string | undefined {\n return ResponseTypeStrings[this.type]\n }\n\n static fromError(cause: unknown): XRPCError {\n if (cause instanceof XRPCError) {\n return cause\n }\n\n if (cause instanceof XRPCClientError) {\n const { error, message, type } = mapFromClientError(cause)\n return new XRPCError(type, message, error, { cause })\n }\n\n if (isHttpError(cause)) {\n return new XRPCError(cause.status, cause.message, cause.name, { cause })\n }\n\n if (isErrorResult(cause)) {\n return this.fromErrorResult(cause)\n }\n\n if (cause instanceof Error) {\n return new InternalServerError(cause.message, undefined, { cause })\n }\n\n return new InternalServerError(\n 'Unexpected internal server error',\n undefined,\n { cause },\n )\n }\n\n static fromErrorResult(err: ErrorResult): XRPCError {\n return new XRPCError(err.status, err.message, err.error, { cause: err })\n }\n}\n\nexport class InvalidRequestError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(ResponseType.InvalidRequest, errorMessage, customErrorName, options)\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.InvalidRequest\n )\n }\n}\n\nexport class AuthRequiredError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(\n ResponseType.AuthenticationRequired,\n errorMessage,\n customErrorName,\n options,\n )\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.AuthenticationRequired\n )\n }\n}\n\nexport class ForbiddenError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(ResponseType.Forbidden, errorMessage, customErrorName, options)\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError && instance.type === ResponseType.Forbidden\n )\n }\n}\n\nexport class InternalServerError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(\n ResponseType.InternalServerError,\n errorMessage,\n customErrorName,\n options,\n )\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.InternalServerError\n )\n }\n}\n\nexport class UpstreamFailureError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(ResponseType.UpstreamFailure, errorMessage, customErrorName, options)\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.UpstreamFailure\n )\n }\n}\n\nexport class NotEnoughResourcesError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(\n ResponseType.NotEnoughResources,\n errorMessage,\n customErrorName,\n options,\n )\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.NotEnoughResources\n )\n }\n}\n\nexport class UpstreamTimeoutError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(ResponseType.UpstreamTimeout, errorMessage, customErrorName, options)\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.UpstreamTimeout\n )\n }\n}\n\nexport class MethodNotImplementedError extends XRPCError {\n constructor(\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(\n ResponseType.MethodNotImplemented,\n errorMessage,\n customErrorName,\n options,\n )\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.MethodNotImplemented\n )\n }\n}\n\n/**\n * Converts an upstream XRPC {@link ResponseType} into a downstream {@link ResponseType}.\n */\nfunction mapFromClientError(error: XRPCClientError): {\n error: string\n message: string\n type: ResponseType\n} {\n switch (error.status) {\n case ResponseType.InvalidResponse:\n // Upstream server returned an XRPC response that is not compatible with our internal lexicon definitions for that XRPC method.\n // @NOTE This could be reflected as both a 500 (\"we\" are at fault) and 502 (\"they\" are at fault). Let's be gents about it.\n return {\n error: httpResponseCodeToName(ResponseType.InternalServerError),\n message: httpResponseCodeToString(ResponseType.InternalServerError),\n type: ResponseType.InternalServerError,\n }\n case ResponseType.Unknown:\n // Typically a network error / unknown host\n return {\n error: httpResponseCodeToName(ResponseType.InternalServerError),\n message: httpResponseCodeToString(ResponseType.InternalServerError),\n type: ResponseType.InternalServerError,\n }\n default:\n return {\n error: error.error,\n message: error.message,\n type: error.status,\n }\n }\n}\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,2CAAwB;AACxB,iDAA8B;AAC9B,2CAAwB;AACxB,2CAAwB;AACxB,0CAAuB;AAEvB,+BAKe;AAJb,mGAAA,WAAW,OAAA;AACX,wGAAA,gBAAgB,OAAA;AAChB,oGAAA,YAAY,OAAA;AACZ,0GAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,2CAAwB;AACxB,iDAA8B;AAC9B,2CAAwB;AACxB,2CAAwB;AACxB,0CAAuB;AAEvB,+BAKe;AAJb,mGAAA,WAAW,OAAA;AACX,wGAAA,gBAAgB,OAAA;AAChB,oGAAA,YAAY,OAAA;AACZ,0GAAA,kBAAkB,OAAA","sourcesContent":["export * from './auth'\nexport * from './errors'\nexport * from './rate-limiter'\nexport * from './server'\nexport * from './stream'\nexport * from './types'\n\nexport {\n ServerTimer,\n parseReqEncoding,\n parseReqNsid,\n serverTimingHeader,\n} from './util'\nexport type { ServerTiming } from './util'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEpC,QAAA,WAAW,GAAG,aAAa,CAAA;AAE3B,QAAA,MAAM,GACjB,IAAA,wBAAe,EAAC,mBAAW,CAAC,CAAA;AAE9B,kBAAe,cAAM,CAAA"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEpC,QAAA,WAAW,GAAG,aAAa,CAAA;AAE3B,QAAA,MAAM,GACjB,IAAA,wBAAe,EAAC,mBAAW,CAAC,CAAA;AAE9B,kBAAe,cAAM,CAAA","sourcesContent":["import { subsystemLogger } from '@atproto/common'\n\nexport const LOGGER_NAME = 'xrpc-server'\n\nexport const logger: ReturnType<typeof subsystemLogger> =\n subsystemLogger(LOGGER_NAME)\n\nexport default logger\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"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","sourcesContent":["import { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n RateLimiterAbstract,\n RateLimiterMemory,\n RateLimiterRedis,\n RateLimiterRes,\n} from 'rate-limiter-flexible'\nimport { ResponseType, XRPCError } from './errors'\nimport { logger } from './logger'\n\n// @NOTE Do not depend (directly or indirectly) on \"./types\" here, as it would\n// create a circular dependency.\n\nexport interface RateLimiterContext {\n req: IncomingMessage\n res?: ServerResponse\n}\n\nexport type CalcKeyFn<C extends RateLimiterContext = RateLimiterContext> = (\n ctx: C,\n) => string | null\nexport type CalcPointsFn<C extends RateLimiterContext = RateLimiterContext> = (\n ctx: C,\n) => number\n\nexport interface RateLimiterI<\n C extends RateLimiterContext = RateLimiterContext,\n> {\n consume: RateLimiterConsume<C>\n reset: RateLimiterReset<C>\n}\n\nexport type RateLimiterConsumeOptions<\n C extends RateLimiterContext = RateLimiterContext,\n> = {\n calcKey?: CalcKeyFn<C>\n calcPoints?: CalcPointsFn<C>\n}\n\nexport type RateLimiterConsume<\n C extends RateLimiterContext = RateLimiterContext,\n> = (\n ctx: C,\n opts?: RateLimiterConsumeOptions<C>,\n) => Promise<RateLimiterStatus | RateLimitExceededError | null>\n\nexport type RateLimiterStatus = {\n limit: number\n duration: number\n remainingPoints: number\n msBeforeNext: number\n consumedPoints: number\n isFirstInDuration: boolean\n}\n\nexport type RateLimiterResetOptions<\n C extends RateLimiterContext = RateLimiterContext,\n> = {\n calcKey?: CalcKeyFn<C>\n}\n\nexport type RateLimiterReset<\n C extends RateLimiterContext = RateLimiterContext,\n> = (ctx: C, opts?: RateLimiterResetOptions<C>) => Promise<void>\n\nexport type RateLimiterOptions<\n C extends RateLimiterContext = RateLimiterContext,\n> = {\n keyPrefix: string\n durationMs: number\n points: number\n calcKey: CalcKeyFn<C>\n calcPoints: CalcPointsFn<C>\n failClosed?: boolean\n}\n\nexport class RateLimiter<C extends RateLimiterContext = RateLimiterContext>\n implements RateLimiterI<C>\n{\n private readonly failClosed?: boolean\n private readonly calcKey: CalcKeyFn<C>\n private readonly calcPoints: CalcPointsFn<C>\n\n constructor(\n public limiter: RateLimiterAbstract,\n options: RateLimiterOptions<C>,\n ) {\n this.limiter = limiter\n this.failClosed = options.failClosed ?? false\n this.calcKey = options.calcKey\n this.calcPoints = options.calcPoints\n }\n\n async consume(\n ctx: C,\n opts?: RateLimiterConsumeOptions<C>,\n ): Promise<RateLimiterStatus | RateLimitExceededError | null> {\n const calcKey = opts?.calcKey ?? this.calcKey\n const key = calcKey(ctx)\n if (key === null) {\n return null\n }\n const calcPoints = opts?.calcPoints ?? this.calcPoints\n const points = calcPoints(ctx)\n if (points < 1) {\n return null\n }\n try {\n const res = await this.limiter.consume(key, points)\n return formatLimiterStatus(this.limiter, res)\n } catch (err) {\n // yes this library rejects with a res not an error\n if (err instanceof RateLimiterRes) {\n const status = formatLimiterStatus(this.limiter, err)\n return new RateLimitExceededError(status)\n } else {\n if (this.failClosed) {\n throw err\n }\n logger.error(\n {\n err,\n keyPrefix: this.limiter.keyPrefix,\n points: this.limiter.points,\n duration: this.limiter.duration,\n },\n 'rate limiter failed to consume points',\n )\n return null\n }\n }\n }\n\n async reset(ctx: C, opts?: RateLimiterResetOptions<C>): Promise<void> {\n const key = opts?.calcKey ? opts.calcKey(ctx) : this.calcKey(ctx)\n if (key === null) {\n return\n }\n\n try {\n await this.limiter.delete(key)\n } catch (cause) {\n throw new Error(`rate limiter failed to reset key: ${key}`, { cause })\n }\n }\n}\n\nexport class MemoryRateLimiter<\n C extends RateLimiterContext = RateLimiterContext,\n> extends RateLimiter<C> {\n constructor(options: RateLimiterOptions<C>) {\n const limiter = new RateLimiterMemory({\n keyPrefix: options.keyPrefix,\n duration: Math.floor(options.durationMs / 1000),\n points: options.points,\n })\n super(limiter, options)\n }\n}\n\nexport class RedisRateLimiter<\n C extends RateLimiterContext = RateLimiterContext,\n> extends RateLimiter<C> {\n constructor(storeClient: unknown, options: RateLimiterOptions<C>) {\n const limiter = new RateLimiterRedis({\n storeClient,\n keyPrefix: options.keyPrefix,\n duration: Math.floor(options.durationMs / 1000),\n points: options.points,\n })\n super(limiter, options)\n }\n}\n\nexport const formatLimiterStatus = (\n limiter: RateLimiterAbstract,\n res: RateLimiterRes,\n): RateLimiterStatus => {\n return {\n limit: limiter.points,\n duration: limiter.duration,\n remainingPoints: res.remainingPoints,\n msBeforeNext: res.msBeforeNext,\n consumedPoints: res.consumedPoints,\n isFirstInDuration: res.isFirstInDuration,\n }\n}\n\nexport type WrappedRateLimiterOptions<\n C extends RateLimiterContext = RateLimiterContext,\n> = {\n calcKey?: CalcKeyFn<C>\n calcPoints?: CalcPointsFn<C>\n}\n\n/**\n * Wraps a {@link RateLimiterI} instance with custom key and points calculation\n * functions.\n */\nexport class WrappedRateLimiter<\n C extends RateLimiterContext = RateLimiterContext,\n> implements RateLimiterI<C>\n{\n private constructor(\n private readonly rateLimiter: RateLimiterI<C>,\n private readonly options: Readonly<WrappedRateLimiterOptions<C>>,\n ) {}\n\n async consume(ctx: C, opts?: RateLimiterConsumeOptions<C>) {\n return this.rateLimiter.consume(ctx, {\n calcKey: opts?.calcKey ?? this.options.calcKey,\n calcPoints: opts?.calcPoints ?? this.options.calcPoints,\n })\n }\n\n async reset(ctx: C, opts?: RateLimiterResetOptions<C>) {\n return this.rateLimiter.reset(ctx, {\n calcKey: opts?.calcKey ?? this.options.calcKey,\n })\n }\n\n static from<C extends RateLimiterContext = RateLimiterContext>(\n rateLimiter: RateLimiterI<C>,\n { calcKey, calcPoints }: WrappedRateLimiterOptions<C> = {},\n ): RateLimiterI<C> {\n if (!calcKey && !calcPoints) return rateLimiter\n return new WrappedRateLimiter<C>(rateLimiter, { calcKey, calcPoints })\n }\n}\n\n/**\n * Combines multiple rate limiters into one.\n *\n * The combined rate limiter will return the tightest (most restrictive) of all\n * the provided rate limiters.\n */\nexport class CombinedRateLimiter<\n C extends RateLimiterContext = RateLimiterContext,\n> implements RateLimiterI<C>\n{\n private constructor(\n private readonly rateLimiters: readonly RateLimiterI<C>[],\n ) {}\n\n async consume(ctx: C, opts?: RateLimiterConsumeOptions<C>) {\n const promises: ReturnType<RateLimiterConsume>[] = []\n for (const rl of this.rateLimiters) promises.push(rl.consume(ctx, opts))\n return Promise.all(promises).then(getTightestLimit)\n }\n\n async reset(ctx: C, opts?: RateLimiterResetOptions<C>) {\n const promises: ReturnType<RateLimiterReset>[] = []\n for (const rl of this.rateLimiters) promises.push(rl.reset(ctx, opts))\n await Promise.all(promises)\n }\n\n static from<C extends RateLimiterContext = RateLimiterContext>(\n rateLimiters: readonly RateLimiterI<C>[],\n ): RateLimiterI<C> | undefined {\n if (rateLimiters.length === 0) return undefined\n if (rateLimiters.length === 1) return rateLimiters[0]\n return new CombinedRateLimiter(rateLimiters)\n }\n}\n\nconst getTightestLimit = (\n resps: (RateLimiterStatus | RateLimitExceededError | null)[],\n): RateLimiterStatus | RateLimitExceededError | null => {\n let lowest: RateLimiterStatus | null = null\n for (const resp of resps) {\n if (resp === null) continue\n if (resp instanceof RateLimitExceededError) return resp\n if (lowest === null || resp.remainingPoints < lowest.remainingPoints) {\n lowest = resp\n }\n }\n return lowest\n}\n\nexport type RouteRateLimiterOptions<\n C extends RateLimiterContext = RateLimiterContext,\n> = {\n bypass?: (ctx: C) => boolean\n}\n\n/**\n * Wraps a {@link RateLimiterI} interface into a class that will apply the\n * appropriate headers to the response if a limit is exceeded.\n */\nexport class RouteRateLimiter<C extends RateLimiterContext = RateLimiterContext>\n implements RateLimiterI<C>\n{\n constructor(\n private readonly rateLimiter: RateLimiterI<C>,\n private readonly options: Readonly<RouteRateLimiterOptions<C>> = {},\n ) {}\n\n async handle(ctx: C): Promise<RateLimiterStatus | null> {\n const { bypass } = this.options\n if (bypass && bypass(ctx)) {\n return null\n }\n\n const result = await this.consume(ctx)\n if (result instanceof RateLimitExceededError) {\n setStatusHeaders(ctx, result.status)\n throw result\n } else if (result != null) {\n setStatusHeaders(ctx, result)\n }\n\n return result\n }\n\n async consume(...args: Parameters<RateLimiterConsume<C>>) {\n return this.rateLimiter.consume(...args)\n }\n\n async reset(...args: Parameters<RateLimiterReset<C>>) {\n return this.rateLimiter.reset(...args)\n }\n\n static from<C extends RateLimiterContext = RateLimiterContext>(\n rateLimiters: readonly RateLimiterI<C>[],\n { bypass }: RouteRateLimiterOptions<C> = {},\n ): RouteRateLimiter<C> | undefined {\n const rateLimiter = CombinedRateLimiter.from(rateLimiters)\n if (!rateLimiter) return undefined\n\n return new RouteRateLimiter(rateLimiter, { bypass })\n }\n}\n\nfunction setStatusHeaders<C extends RateLimiterContext = RateLimiterContext>(\n ctx: C,\n status: RateLimiterStatus,\n) {\n const resetAt = Math.floor((Date.now() + status.msBeforeNext) / 1e3)\n\n ctx.res?.setHeader('RateLimit-Limit', status.limit)\n ctx.res?.setHeader('RateLimit-Reset', resetAt)\n ctx.res?.setHeader('RateLimit-Remaining', status.remainingPoints)\n ctx.res?.setHeader('RateLimit-Policy', `${status.limit};w=${status.duration}`)\n}\n\nexport class RateLimitExceededError extends XRPCError {\n constructor(\n public status: RateLimiterStatus,\n errorMessage?: string,\n customErrorName?: string,\n options?: ErrorOptions,\n ) {\n super(\n ResponseType.RateLimitExceeded,\n errorMessage,\n customErrorName,\n options,\n )\n }\n\n [Symbol.hasInstance](instance: unknown): boolean {\n return (\n instance instanceof XRPCError &&\n instance.type === ResponseType.RateLimitExceeded\n )\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -367,8 +367,7 @@ class Server {
367
367
  else {
368
368
  t = type;
369
369
  }
370
- const clone = { ...item };
371
- delete clone['$type'];
370
+ const { $type: _, ...clone } = item;
372
371
  yield new stream_1.MessageFrame(clone, { type: t });
373
372
  }
374
373
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { IncomingMessage } from 'node:http'\nimport { Readable } from 'node:stream'\nimport { pipeline } from 'node:stream/promises'\nimport express, {\n Application,\n ErrorRequestHandler,\n Express,\n Request,\n RequestHandler,\n Router,\n} from 'express'\nimport { check, schema } from '@atproto/common'\nimport { LexMap, LexValue } from '@atproto/lex-data'\nimport {\n LexXrpcProcedure,\n LexXrpcQuery,\n LexXrpcSubscription,\n LexiconDoc,\n Lexicons,\n lexToJson,\n} from '@atproto/lexicon'\nimport {\n InternalServerError,\n InvalidRequestError,\n MethodNotImplementedError,\n XRPCError,\n excludeErrorResult,\n isErrorResult,\n} from './errors'\nimport log, { LOGGER_NAME } from './logger'\nimport {\n CalcKeyFn,\n CalcPointsFn,\n RateLimiterI,\n RateLimiterOptions,\n RouteRateLimiter,\n WrappedRateLimiter,\n} from './rate-limiter'\nimport { ErrorFrame, Frame, MessageFrame, XrpcStreamServer } from './stream'\nimport {\n Auth,\n AuthResult,\n AuthVerifier,\n CatchallHandler,\n HandlerContext,\n HandlerSuccess,\n Input,\n MethodConfig,\n MethodConfigOrHandler,\n Options,\n Params,\n RouteOptions,\n ServerRateLimitDescription,\n StreamConfig,\n StreamConfigOrHandler,\n isHandlerPipeThroughBuffer,\n isHandlerPipeThroughStream,\n isSharedRateLimitOpts,\n} from './types'\nimport {\n asArray,\n createInputVerifier,\n decodeQueryParams,\n extractUrlNsid,\n getQueryParams,\n setHeaders,\n validateOutput,\n} from './util'\n\nexport function createServer(lexicons?: LexiconDoc[], options?: Options) {\n return new Server(lexicons, options)\n}\n\nexport class Server {\n router: Express = express()\n routes: Router = Router()\n subscriptions = new Map<string, XrpcStreamServer>()\n lex = new Lexicons()\n options: Options\n globalRateLimiter?: RouteRateLimiter<HandlerContext>\n sharedRateLimiters?: Map<string, RateLimiterI<HandlerContext>>\n\n constructor(lexicons?: LexiconDoc[], opts: Options = {}) {\n if (lexicons) {\n this.addLexicons(lexicons)\n }\n this.router.use(this.routes)\n this.router.use(this.catchall)\n this.router.use(createErrorMiddleware(opts))\n this.router.once('mount', (app: Application) => {\n this.enableStreamingOnListen(app)\n })\n this.options = opts\n\n if (opts.rateLimits) {\n const { global, shared, creator, bypass } = opts.rateLimits\n\n if (global) {\n this.globalRateLimiter = RouteRateLimiter.from(\n global.map((options) => creator(buildRateLimiterOptions(options))),\n { bypass },\n )\n }\n\n if (shared) {\n this.sharedRateLimiters = new Map(\n shared.map((options) => [\n options.name,\n creator(buildRateLimiterOptions(options)),\n ]),\n )\n }\n }\n }\n\n // handlers\n // =\n\n method<A extends Auth = Auth>(\n nsid: string,\n configOrFn: MethodConfigOrHandler<A>,\n ) {\n this.addMethod(nsid, configOrFn)\n }\n\n addMethod<A extends Auth = Auth>(\n nsid: string,\n configOrFn: MethodConfigOrHandler<A>,\n ) {\n const config =\n typeof configOrFn === 'function' ? { handler: configOrFn } : configOrFn\n const def = this.lex.getDef(nsid)\n if (def?.type === 'query' || def?.type === 'procedure') {\n this.addRoute(nsid, def, config)\n } else {\n throw new Error(`Lex def for ${nsid} is not a query or a procedure`)\n }\n }\n\n streamMethod<A extends Auth = Auth>(\n nsid: string,\n configOrFn: StreamConfigOrHandler<A>,\n ) {\n this.addStreamMethod(nsid, configOrFn)\n }\n\n addStreamMethod<A extends Auth = Auth>(\n nsid: string,\n configOrFn: StreamConfigOrHandler<A>,\n ) {\n const config =\n typeof configOrFn === 'function' ? { handler: configOrFn } : configOrFn\n const def = this.lex.getDef(nsid)\n if (def?.type === 'subscription') {\n this.addSubscription(nsid, def, config)\n } else {\n throw new Error(`Lex def for ${nsid} is not a subscription`)\n }\n }\n\n // schemas\n // =\n\n addLexicon(doc: LexiconDoc) {\n this.lex.add(doc)\n }\n\n addLexicons(docs: LexiconDoc[]) {\n for (const doc of docs) {\n this.addLexicon(doc)\n }\n }\n\n // http\n // =\n\n protected async addRoute<A extends Auth = Auth>(\n nsid: string,\n def: LexXrpcQuery | LexXrpcProcedure,\n config: MethodConfig<A>,\n ) {\n const path = `/xrpc/${nsid}`\n const handler = this.createHandler(nsid, def, config)\n\n if (def.type === 'procedure') {\n this.routes.post(path, handler)\n } else {\n this.routes.get(path, handler)\n }\n }\n\n catchall: CatchallHandler = async (req, res, next) => {\n // catchall handler only applies to XRPC routes\n if (!req.url.startsWith('/xrpc/')) return next()\n\n // Validate the NSID\n const nsid = extractUrlNsid(req.url)\n if (!nsid) {\n return next(new InvalidRequestError('invalid xrpc path'))\n }\n\n if (this.globalRateLimiter) {\n try {\n await this.globalRateLimiter.handle({\n req,\n res,\n auth: undefined,\n params: {},\n input: undefined,\n async resetRouteRateLimits() {},\n })\n } catch (err) {\n return next(err)\n }\n }\n\n // Ensure that known XRPC methods are only called with the correct HTTP\n // method.\n const def = this.lex.getDef(nsid)\n if (def) {\n const expectedMethod =\n def.type === 'procedure' ? 'POST' : def.type === 'query' ? 'GET' : null\n if (expectedMethod != null && expectedMethod !== req.method) {\n return next(\n new InvalidRequestError(\n `Incorrect HTTP method (${req.method}) expected ${expectedMethod}`,\n ),\n )\n }\n }\n\n if (this.options.catchall) {\n this.options.catchall.call(null, req, res, next)\n } else if (!def) {\n next(new MethodNotImplementedError())\n } else {\n next()\n }\n }\n\n protected createParamsVerifier(\n nsid: string,\n def: LexXrpcQuery | LexXrpcProcedure | LexXrpcSubscription,\n ) {\n return (req: Request | IncomingMessage): Params => {\n const queryParams = 'query' in req ? req.query : getQueryParams(req.url)\n const params: Params = decodeQueryParams(def, queryParams)\n try {\n return this.lex.assertValidXrpcParams(nsid, params) as Params\n } catch (e) {\n throw new InvalidRequestError(String(e))\n }\n }\n }\n\n protected createInputVerifier(\n nsid: string,\n def: LexXrpcQuery | LexXrpcProcedure,\n routeOpts: RouteOptions,\n ) {\n return createInputVerifier(nsid, def, routeOpts, this.lex)\n }\n\n protected createAuthVerifier<C, A extends Auth>(cfg: {\n auth?: AuthVerifier<C, A & AuthResult>\n }): null | ((ctx: C) => Promise<A>) {\n const { auth } = cfg\n if (!auth) return null\n\n return async (ctx: C) => {\n const result = await auth(ctx)\n return excludeErrorResult(result)\n }\n }\n\n createHandler<A extends Auth = Auth>(\n nsid: string,\n def: LexXrpcQuery | LexXrpcProcedure,\n cfg: MethodConfig<A>,\n ): RequestHandler {\n const authVerifier = this.createAuthVerifier(cfg)\n const paramsVerifier = this.createParamsVerifier(nsid, def)\n const inputVerifier = this.createInputVerifier(nsid, def, {\n blobLimit: cfg.opts?.blobLimit ?? this.options.payload?.blobLimit,\n jsonLimit: cfg.opts?.jsonLimit ?? this.options.payload?.jsonLimit,\n textLimit: cfg.opts?.textLimit ?? this.options.payload?.textLimit,\n })\n\n const validateResOutput =\n this.options.validateResponse === false\n ? null\n : (output: void | HandlerSuccess) =>\n validateOutput(nsid, def, output, this.lex)\n\n const routeLimiter = this.createRouteRateLimiter(nsid, cfg)\n\n return async function (req, res, next) {\n try {\n // parse & validate params\n const params: Params = paramsVerifier(req)\n\n // authenticate request\n const auth: A = authVerifier\n ? await authVerifier({ req, res, params })\n : (undefined as A)\n\n // parse & validate input\n const input: Input = await inputVerifier(req, res)\n\n const ctx: HandlerContext<A> = {\n params,\n input,\n auth,\n req,\n res,\n resetRouteRateLimits: async () => routeLimiter?.reset(ctx),\n }\n\n // handle rate limits\n if (routeLimiter) await routeLimiter.handle(ctx)\n\n // run the handler\n const output = await cfg.handler(ctx)\n\n if (!output) {\n validateResOutput?.(output)\n res.status(200)\n res.end()\n } else if (isHandlerPipeThroughStream(output)) {\n setHeaders(res, output.headers)\n res.status(200)\n res.header('Content-Type', output.encoding)\n await pipeline(output.stream, res)\n } else if (isHandlerPipeThroughBuffer(output)) {\n setHeaders(res, output.headers)\n res.status(200)\n res.header('Content-Type', output.encoding)\n res.end(output.buffer)\n } else if (isErrorResult(output)) {\n next(XRPCError.fromError(output))\n } else {\n validateResOutput?.(output)\n\n res.status(200)\n setHeaders(res, output.headers)\n\n if (\n output.encoding === 'application/json' ||\n output.encoding === 'json'\n ) {\n const json = lexToJson(output.body)\n res.json(json)\n } else if (output.body instanceof Readable) {\n res.header('Content-Type', output.encoding)\n await pipeline(output.body, res)\n } else {\n res.header('Content-Type', output.encoding)\n res.send(\n Buffer.isBuffer(output.body)\n ? output.body\n : output.body instanceof Uint8Array\n ? Buffer.from(output.body)\n : output.body,\n )\n }\n }\n } catch (err: unknown) {\n // Express will not call the next middleware (errorMiddleware in this case)\n // if the value passed to next is false-y (e.g. null, undefined, 0).\n // Hence we replace it with an InternalServerError.\n if (!err) {\n next(new InternalServerError())\n } else {\n next(err)\n }\n }\n }\n }\n\n protected async addSubscription<A extends Auth = Auth>(\n nsid: string,\n def: LexXrpcSubscription,\n cfg: StreamConfig<A>,\n ) {\n const paramsVerifier = this.createParamsVerifier(nsid, def)\n const authVerifier = this.createAuthVerifier(cfg)\n\n const { handler } = cfg\n this.subscriptions.set(\n nsid,\n new XrpcStreamServer({\n noServer: true,\n handler: async function* (req, signal) {\n try {\n // validate request\n const params = paramsVerifier(req)\n // authenticate request\n const auth = authVerifier\n ? await authVerifier({ req, params })\n : (undefined as A)\n // stream\n for await (const item of handler({ req, params, auth, signal })) {\n if (item instanceof Frame) {\n yield item\n continue\n }\n const type = item?.['$type']\n if (!check.is(item, schema.map) || typeof type !== 'string') {\n yield new MessageFrame(item as LexValue)\n continue\n }\n const split = type.split('#')\n let t: string\n if (\n split.length === 2 &&\n (split[0] === '' || split[0] === nsid)\n ) {\n t = `#${split[1]}`\n } else {\n t = type\n }\n const { $type: _, ...clone } = item as LexMap\n yield new MessageFrame(clone, { type: t })\n }\n } catch (err) {\n const xrpcErrPayload = XRPCError.fromError(err).payload\n yield new ErrorFrame({\n error: xrpcErrPayload.error ?? 'Unknown',\n message: xrpcErrPayload.message,\n })\n }\n },\n }),\n )\n }\n\n private enableStreamingOnListen(app: Application) {\n const _listen = app.listen\n app.listen = (...args) => {\n // @ts-ignore the args spread\n const httpServer = _listen.call(app, ...args)\n httpServer.on('upgrade', (req, socket, head) => {\n const nsid = req.url ? extractUrlNsid(req.url) : undefined\n const sub = nsid ? this.subscriptions.get(nsid) : undefined\n if (!sub) return socket.destroy()\n sub.wss.handleUpgrade(req, socket, head, (ws) =>\n sub.wss.emit('connection', ws, req),\n )\n })\n return httpServer\n }\n }\n\n private createRouteRateLimiter<A extends Auth, C extends HandlerContext>(\n nsid: string,\n config: MethodConfig<A>,\n ): RouteRateLimiter<C> | undefined {\n // @NOTE global & shared rate limiters are instantiated with a context of\n // HandlerContext which is compatible (more generic) with the context of\n // this route specific rate limiters (C). For this reason, it's safe to\n // cast these with an `any` context\n\n const globalRateLimiter = this.globalRateLimiter as\n | RouteRateLimiter<any>\n | undefined\n\n // No route specific rate limiting configured, use the global rate limiter.\n if (!config.rateLimit) return globalRateLimiter\n\n const { rateLimits } = this.options\n\n // @NOTE Silently ignore creation of route specific rate limiter if the\n // `rateLimits` options was not provided to the constructor.\n if (!rateLimits) return globalRateLimiter\n\n const { creator, bypass } = rateLimits\n\n const rateLimiters = asArray(config.rateLimit).map((options, i) => {\n if (isSharedRateLimitOpts(options)) {\n const rateLimiter = this.sharedRateLimiters?.get(options.name)\n\n // The route config references a shared rate limiter that does not\n // exist. This is a configuration error.\n assert(rateLimiter, `Shared rate limiter \"${options.name}\" not defined`)\n\n return WrappedRateLimiter.from<any>(rateLimiter, options)\n } else {\n return creator({\n ...options,\n calcKey: options.calcKey ?? defaultKey,\n calcPoints: options.calcPoints ?? defaultPoints,\n keyPrefix: `${nsid}-${i}`,\n })\n }\n })\n\n // If the route config contains an empty array, use global rate limiter.\n if (!rateLimiters.length) return globalRateLimiter\n\n // The global rate limiter (if present) should be applied in addition to\n // the route specific rate limiters.\n if (globalRateLimiter) rateLimiters.push(globalRateLimiter)\n\n return RouteRateLimiter.from<any>(rateLimiters, { bypass })\n }\n}\n\nfunction createErrorMiddleware({\n errorParser = (err) => XRPCError.fromError(err),\n}: Options): ErrorRequestHandler {\n return (err, req, res, next) => {\n const nsid = extractUrlNsid(req.originalUrl)\n const xrpcError = errorParser(err)\n\n // Use the request's logger (if available) to benefit from request context\n // (id, timing) and logging configuration (serialization, etc.).\n const logger = isPinoHttpRequest(req) ? req.log : log\n\n const isInternalError = xrpcError instanceof InternalServerError\n\n const msgPrefix = isInternalError ? 'unhandled exception' : 'error'\n const msgSuffix = nsid ? `xrpc method ${nsid}` : `${req.method} ${req.url}`\n const msg = `${msgPrefix} in ${msgSuffix}`\n\n logger.error(\n {\n // @NOTE Computation of error stack is an expensive operation, so\n // we strip it for expected errors.\n err:\n isInternalError || process.env.NODE_ENV === 'development'\n ? err\n : toSimplifiedErrorLike(err),\n\n // XRPC specific properties, for easier browsing of logs\n nsid,\n type: xrpcError.type,\n status: xrpcError.statusCode,\n payload: xrpcError.payload,\n\n // Ensure that the logged item's name is set to LOGGER_NAME, instead of\n // the name of the pino-http logger, to ensure consistency across logs.\n name: LOGGER_NAME,\n },\n msg,\n )\n\n if (res.headersSent) {\n return next(err)\n }\n\n return res.status(xrpcError.statusCode).json(xrpcError.payload)\n }\n}\n\nfunction isPinoHttpRequest(req: IncomingMessage): req is IncomingMessage & {\n log: { error: (obj: unknown, msg: string) => void }\n} {\n return typeof (req as { log?: any }).log?.error === 'function'\n}\n\nfunction toSimplifiedErrorLike(err: unknown): unknown {\n if (err instanceof Error) {\n // Transform into an \"ErrorLike\" for pino's std \"err\" serializer\n return {\n ...err,\n // Carry over non-enumerable properties\n message: err.message,\n name:\n !Object.hasOwn(err, 'name') &&\n Object.prototype.toString.call(err.constructor) === '[object Function]'\n ? err.constructor.name // extract the class name for sub-classes of Error\n : err.name,\n // @NOTE Error.stack, Error.cause and AggregateError.error are non\n // enumerable properties so they won't be spread to the ErrorLike\n }\n }\n\n return err\n}\n\nfunction buildRateLimiterOptions<C extends HandlerContext = HandlerContext>({\n name,\n calcKey = defaultKey,\n calcPoints = defaultPoints,\n ...desc\n}: ServerRateLimitDescription<C>): RateLimiterOptions<C> {\n return { ...desc, calcKey, calcPoints, keyPrefix: `rl-${name}` }\n}\n\nconst defaultPoints: CalcPointsFn = () => 1\n\n/**\n * @note when using a proxy, ensure headers are getting forwarded correctly:\n * `app.set('trust proxy', true)`\n *\n * @see {@link https://expressjs.com/en/guide/behind-proxies.html}\n */\nconst defaultKey: CalcKeyFn<HandlerContext> = ({ req }) => req.ip\n"]}
@@ -1,14 +1,15 @@
1
+ import { LexValue } from '@atproto/lex-cbor';
1
2
  import { ErrorFrameBody, ErrorFrameHeader, FrameHeader, FrameType, MessageFrameHeader } from './types';
2
- export declare abstract class Frame {
3
+ export declare abstract class Frame<T extends LexValue = LexValue> {
3
4
  abstract header: FrameHeader;
4
- body: unknown;
5
+ abstract body: T;
5
6
  get op(): FrameType;
6
7
  toBytes(): Uint8Array;
7
- isMessage(): this is MessageFrame<unknown>;
8
+ isMessage(): this is MessageFrame;
8
9
  isError(): this is ErrorFrame;
9
- static fromBytes(bytes: Uint8Array): MessageFrame<unknown> | ErrorFrame<string>;
10
+ static fromBytes(bytes: Uint8Array): MessageFrame<LexValue> | ErrorFrame<string>;
10
11
  }
11
- export declare class MessageFrame<T = Record<string, unknown>> extends Frame {
12
+ export declare class MessageFrame<T extends LexValue = LexValue> extends Frame<T> {
12
13
  header: MessageFrameHeader;
13
14
  body: T;
14
15
  constructor(body: T, opts?: {
@@ -16,7 +17,7 @@ export declare class MessageFrame<T = Record<string, unknown>> extends Frame {
16
17
  });
17
18
  get type(): string | undefined;
18
19
  }
19
- export declare class ErrorFrame<T extends string = string> extends Frame {
20
+ export declare class ErrorFrame<T extends string = string> extends Frame<ErrorFrameBody<T>> {
20
21
  header: ErrorFrameHeader;
21
22
  body: ErrorFrameBody<T>;
22
23
  constructor(body: ErrorFrameBody<T>);
@@ -1 +1 @@
1
- {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/stream/frames.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,kBAAkB,EAGnB,MAAM,SAAS,CAAA;AAEhB,8BAAsB,KAAK;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,IAAI,SAAS,CAElB;IACD,OAAO,IAAI,UAAU;IAGrB,SAAS,IAAI,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC;IAG1C,OAAO,IAAI,IAAI,IAAI,UAAU;IAG7B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU;CAiCnC;AAED,qBAAa,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,KAAK;IAClE,MAAM,EAAE,kBAAkB,CAAA;IAC1B,IAAI,EAAE,CAAC,CAAA;gBACK,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7C,IAAI,IAAI,uBAEP;CACF;AAED,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,KAAK;IAC9D,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;gBACX,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAKnC,IAAI,IAAI,MAEP;IACD,IAAI,OAAO,uBAEV;CACF"}
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/stream/frames.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAqB,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,kBAAkB,EAGnB,MAAM,SAAS,CAAA;AAEhB,8BAAsB,KAAK,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACvD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAEhB,IAAI,EAAE,IAAI,SAAS,CAElB;IACD,OAAO,IAAI,UAAU;IAGrB,SAAS,IAAI,IAAI,IAAI,YAAY;IAGjC,OAAO,IAAI,IAAI,IAAI,UAAU;IAG7B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU;CA4BnC;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE,kBAAkB,CAAA;IAC1B,IAAI,EAAE,CAAC,CAAA;gBAEK,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7C,IAAI,IAAI,uBAEP;CACF;AAED,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,KAAK,CAC9D,cAAc,CAAC,CAAC,CAAC,CAClB;IACC,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEX,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAKnC,IAAI,IAAI,MAEP;IACD,IAAI,OAAO,uBAEV;CACF"}
@@ -1,56 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ /* eslint-disable import/no-deprecated */
35
3
  Object.defineProperty(exports, "__esModule", { value: true });
36
4
  exports.ErrorFrame = exports.MessageFrame = exports.Frame = void 0;
37
- const uint8arrays = __importStar(require("uint8arrays"));
38
- const common_1 = require("@atproto/common");
5
+ const lex_cbor_1 = require("@atproto/lex-cbor");
39
6
  const types_1 = require("./types");
40
7
  class Frame {
41
- constructor() {
42
- Object.defineProperty(this, "body", {
43
- enumerable: true,
44
- configurable: true,
45
- writable: true,
46
- value: void 0
47
- });
48
- }
49
8
  get op() {
50
9
  return this.header.op;
51
10
  }
52
11
  toBytes() {
53
- return uint8arrays.concat([(0, common_1.cborEncode)(this.header), (0, common_1.cborEncode)(this.body)]);
12
+ return Buffer.concat([(0, lex_cbor_1.encode)(this.header), (0, lex_cbor_1.encode)(this.body)]);
54
13
  }
55
14
  isMessage() {
56
15
  return this.op === types_1.FrameType.Message;
@@ -59,22 +18,17 @@ class Frame {
59
18
  return this.op === types_1.FrameType.Error;
60
19
  }
61
20
  static fromBytes(bytes) {
62
- const decoded = (0, common_1.cborDecodeMulti)(bytes);
63
- if (decoded.length > 2) {
21
+ const [header, body, ...rest] = (0, lex_cbor_1.decodeAll)(bytes);
22
+ if (rest.length) {
64
23
  throw new Error('Too many CBOR data items in frame');
65
24
  }
66
- const header = decoded[0];
67
- let body = kUnset;
68
- if (decoded.length > 1) {
69
- body = decoded[1];
25
+ else if (body === undefined) {
26
+ throw new Error('Missing frame body');
70
27
  }
71
28
  const parsedHeader = types_1.frameHeader.safeParse(header);
72
29
  if (!parsedHeader.success) {
73
30
  throw new Error(`Invalid frame header: ${parsedHeader.error.message}`);
74
31
  }
75
- if (body === kUnset) {
76
- throw new Error('Missing frame body');
77
- }
78
32
  const frameOp = parsedHeader.data.op;
79
33
  if (frameOp === types_1.FrameType.Message) {
80
34
  return new MessageFrame(body, {
@@ -147,5 +101,4 @@ class ErrorFrame extends Frame {
147
101
  }
148
102
  }
149
103
  exports.ErrorFrame = ErrorFrame;
150
- const kUnset = Symbol('unset');
151
104
  //# sourceMappingURL=frames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/stream/frames.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/stream/frames.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-deprecated */\n\nimport { LexValue, decodeAll, encode } from '@atproto/lex-cbor'\nimport {\n ErrorFrameBody,\n ErrorFrameHeader,\n FrameHeader,\n FrameType,\n MessageFrameHeader,\n errorFrameBody,\n frameHeader,\n} from './types'\n\nexport abstract class Frame<T extends LexValue = LexValue> {\n abstract header: FrameHeader\n abstract body: T\n\n get op(): FrameType {\n return this.header.op\n }\n toBytes(): Uint8Array {\n return Buffer.concat([encode(this.header), encode(this.body)])\n }\n isMessage(): this is MessageFrame {\n return this.op === FrameType.Message\n }\n isError(): this is ErrorFrame {\n return this.op === FrameType.Error\n }\n static fromBytes(bytes: Uint8Array) {\n const [header, body, ...rest] = decodeAll(bytes)\n if (rest.length) {\n throw new Error('Too many CBOR data items in frame')\n } else if (body === undefined) {\n throw new Error('Missing frame body')\n }\n\n const parsedHeader = frameHeader.safeParse(header)\n if (!parsedHeader.success) {\n throw new Error(`Invalid frame header: ${parsedHeader.error.message}`)\n }\n const frameOp = parsedHeader.data.op\n if (frameOp === FrameType.Message) {\n return new MessageFrame(body, {\n type: parsedHeader.data.t,\n })\n } else if (frameOp === FrameType.Error) {\n const parsedBody = errorFrameBody.safeParse(body)\n if (!parsedBody.success) {\n throw new Error(`Invalid error frame body: ${parsedBody.error.message}`)\n }\n return new ErrorFrame(parsedBody.data)\n } else {\n const exhaustiveCheck: never = frameOp\n throw new Error(`Unknown frame op: ${exhaustiveCheck}`)\n }\n }\n}\n\nexport class MessageFrame<T extends LexValue = LexValue> extends Frame<T> {\n header: MessageFrameHeader\n body: T\n\n constructor(body: T, opts?: { type?: string }) {\n super()\n this.header =\n opts?.type !== undefined\n ? { op: FrameType.Message, t: opts?.type }\n : { op: FrameType.Message }\n this.body = body\n }\n get type() {\n return this.header.t\n }\n}\n\nexport class ErrorFrame<T extends string = string> extends Frame<\n ErrorFrameBody<T>\n> {\n header: ErrorFrameHeader\n body: ErrorFrameBody<T>\n\n constructor(body: ErrorFrameBody<T>) {\n super()\n this.header = { op: FrameType.Error }\n this.body = body\n }\n get code() {\n return this.body.error\n }\n get message() {\n return this.body.message\n }\n}\n"]}
@@ -3,5 +3,4 @@ export * from './frames';
3
3
  export * from './stream';
4
4
  export * from './subscription';
5
5
  export * from './server';
6
- export * from './websocket-keepalive';
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stream/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stream/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA"}
@@ -19,5 +19,4 @@ __exportStar(require("./frames"), exports);
19
19
  __exportStar(require("./stream"), exports);
20
20
  __exportStar(require("./subscription"), exports);
21
21
  __exportStar(require("./server"), exports);
22
- __exportStar(require("./websocket-keepalive"), exports);
23
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stream/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,iDAA8B;AAC9B,2CAAwB;AACxB,wDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stream/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,iDAA8B;AAC9B,2CAAwB","sourcesContent":["export * from './types'\nexport * from './frames'\nexport * from './stream'\nexport * from './subscription'\nexport * from './server'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/stream/logger.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEpC,QAAA,MAAM,GACjB,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAEhC,kBAAe,cAAM,CAAA"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/stream/logger.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEpC,QAAA,MAAM,GACjB,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAA;AAEhC,kBAAe,cAAM,CAAA","sourcesContent":["import { subsystemLogger } from '@atproto/common'\n\nexport const logger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('xrpc-stream')\n\nexport default logger\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/stream/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAC9D,OAAO,EAAc,KAAK,EAAE,MAAM,UAAU,CAAA;AAI5C,qBAAa,gBAAgB;IAC3B,GAAG,EAAE,eAAe,CAAA;gBACR,IAAI,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;CAqCvD;AAED,MAAM,MAAM,OAAO,GAAG,CACpB,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,KACrB,aAAa,CAAC,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/stream/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAE9D,OAAO,EAAc,KAAK,EAAE,MAAM,UAAU,CAAA;AAG5C,qBAAa,gBAAgB;IAC3B,GAAG,EAAE,eAAe,CAAA;gBACR,IAAI,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;CAqCvD;AAED,MAAM,MAAM,OAAO,GAAG,CACpB,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,KACrB,aAAa,CAAC,KAAK,CAAC,CAAA"}