@atproto/xrpc-server 0.6.3 → 0.7.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.
package/dist/types.js CHANGED
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MethodNotImplementedError = exports.UpstreamTimeoutError = exports.NotEnoughResourcesError = exports.UpstreamFailureError = exports.InternalServerError = exports.RateLimitExceededError = exports.ForbiddenError = exports.AuthRequiredError = exports.InvalidRequestError = exports.isHandlerError = exports.XRPCError = exports.isShared = exports.handlerError = exports.handlerPipeThrough = exports.handlerSuccess = exports.handlerAuth = exports.handlerInput = void 0;
6
+ exports.MethodNotImplementedError = exports.UpstreamTimeoutError = exports.NotEnoughResourcesError = exports.UpstreamFailureError = exports.InternalServerError = exports.RateLimitExceededError = exports.ForbiddenError = exports.AuthRequiredError = exports.InvalidRequestError = exports.isHandlerPipeThroughStream = exports.isHandlerPipeThroughBuffer = exports.isHandlerError = exports.XRPCError = exports.isShared = exports.handlerError = exports.handlerPipeThrough = exports.handlerPipeThroughStream = exports.handlerPipeThroughBuffer = exports.handlerSuccess = exports.headersSchema = exports.handlerAuth = exports.handlerInput = void 0;
7
+ const xrpc_1 = require("@atproto/xrpc");
7
8
  const http_errors_1 = require("http-errors");
9
+ const stream_1 = require("stream");
8
10
  const zod_1 = __importDefault(require("zod"));
9
- const xrpc_1 = require("@atproto/xrpc");
10
11
  exports.handlerInput = zod_1.default.object({
11
12
  encoding: zod_1.default.string(),
12
13
  body: zod_1.default.any(),
@@ -15,16 +16,26 @@ exports.handlerAuth = zod_1.default.object({
15
16
  credentials: zod_1.default.any(),
16
17
  artifacts: zod_1.default.any(),
17
18
  });
19
+ exports.headersSchema = zod_1.default.record(zod_1.default.string());
18
20
  exports.handlerSuccess = zod_1.default.object({
19
21
  encoding: zod_1.default.string(),
20
22
  body: zod_1.default.any(),
21
- headers: zod_1.default.record(zod_1.default.string()).optional(),
23
+ headers: exports.headersSchema.optional(),
24
+ });
25
+ exports.handlerPipeThroughBuffer = zod_1.default.object({
26
+ encoding: zod_1.default.string(),
27
+ buffer: zod_1.default.instanceof(Buffer),
28
+ headers: exports.headersSchema.optional(),
22
29
  });
23
- exports.handlerPipeThrough = zod_1.default.object({
30
+ exports.handlerPipeThroughStream = zod_1.default.object({
24
31
  encoding: zod_1.default.string(),
25
- buffer: zod_1.default.instanceof(ArrayBuffer),
26
- headers: zod_1.default.record(zod_1.default.string()).optional(),
32
+ stream: zod_1.default.instanceof(stream_1.Readable),
33
+ headers: exports.headersSchema.optional(),
27
34
  });
35
+ exports.handlerPipeThrough = zod_1.default.union([
36
+ exports.handlerPipeThroughBuffer,
37
+ exports.handlerPipeThroughStream,
38
+ ]);
28
39
  exports.handlerError = zod_1.default.object({
29
40
  status: zod_1.default.number(),
30
41
  error: zod_1.default.string().optional(),
@@ -35,8 +46,8 @@ const isShared = (opts) => {
35
46
  };
36
47
  exports.isShared = isShared;
37
48
  class XRPCError extends Error {
38
- constructor(type, errorMessage, customErrorName) {
39
- super(errorMessage);
49
+ constructor(type, errorMessage, customErrorName, options) {
50
+ super(errorMessage, options);
40
51
  Object.defineProperty(this, "type", {
41
52
  enumerable: true,
42
53
  configurable: true,
@@ -70,25 +81,26 @@ class XRPCError extends Error {
70
81
  get typeStr() {
71
82
  return xrpc_1.ResponseTypeStrings[this.type];
72
83
  }
73
- static fromError(error) {
74
- if (error instanceof XRPCError) {
75
- return error;
84
+ static fromError(cause) {
85
+ if (cause instanceof XRPCError) {
86
+ return cause;
76
87
  }
77
- let resultErr;
78
- if ((0, http_errors_1.isHttpError)(error)) {
79
- resultErr = new XRPCError(error.status, error.message, error.name);
88
+ if (cause instanceof xrpc_1.XRPCError) {
89
+ return new XRPCError(cause.status, cause.message, cause.error, { cause });
80
90
  }
81
- else if (isHandlerError(error)) {
82
- resultErr = new XRPCError(error.status, error.message, error.error);
91
+ if ((0, http_errors_1.isHttpError)(cause)) {
92
+ return new XRPCError(cause.status, cause.message, cause.name, { cause });
83
93
  }
84
- else if (error instanceof Error) {
85
- resultErr = new InternalServerError(error.message);
94
+ if (isHandlerError(cause)) {
95
+ return this.fromHandlerError(cause);
86
96
  }
87
- else {
88
- resultErr = new InternalServerError('Unexpected internal server error');
97
+ if (cause instanceof Error) {
98
+ return new InternalServerError(cause.message, undefined, { cause });
89
99
  }
90
- resultErr.cause = error;
91
- return resultErr;
100
+ return new InternalServerError('Unexpected internal server error', undefined, { cause });
101
+ }
102
+ static fromHandlerError(err) {
103
+ return new XRPCError(err.status, err.message, err.error, { cause: err });
92
104
  }
93
105
  }
94
106
  exports.XRPCError = XRPCError;
@@ -100,27 +112,48 @@ function isHandlerError(v) {
100
112
  (v['message'] === undefined || typeof v['message'] === 'string'));
101
113
  }
102
114
  exports.isHandlerError = isHandlerError;
115
+ function isHandlerPipeThroughBuffer(v) {
116
+ // We only need to discriminate between possible HandlerOutput values
117
+ return v['buffer'] !== undefined;
118
+ }
119
+ exports.isHandlerPipeThroughBuffer = isHandlerPipeThroughBuffer;
120
+ function isHandlerPipeThroughStream(v) {
121
+ // We only need to discriminate between possible HandlerOutput values
122
+ return v['stream'] !== undefined;
123
+ }
124
+ exports.isHandlerPipeThroughStream = isHandlerPipeThroughStream;
103
125
  class InvalidRequestError extends XRPCError {
104
- constructor(errorMessage, customErrorName) {
105
- super(xrpc_1.ResponseType.InvalidRequest, errorMessage, customErrorName);
126
+ constructor(errorMessage, customErrorName, options) {
127
+ super(xrpc_1.ResponseType.InvalidRequest, errorMessage, customErrorName, options);
128
+ }
129
+ [Symbol.hasInstance](instance) {
130
+ return (instance instanceof XRPCError &&
131
+ instance.type === xrpc_1.ResponseType.InvalidRequest);
106
132
  }
107
133
  }
108
134
  exports.InvalidRequestError = InvalidRequestError;
109
135
  class AuthRequiredError extends XRPCError {
110
- constructor(errorMessage, customErrorName) {
111
- super(xrpc_1.ResponseType.AuthRequired, errorMessage, customErrorName);
136
+ constructor(errorMessage, customErrorName, options) {
137
+ super(xrpc_1.ResponseType.AuthRequired, errorMessage, customErrorName, options);
138
+ }
139
+ [Symbol.hasInstance](instance) {
140
+ return (instance instanceof XRPCError &&
141
+ instance.type === xrpc_1.ResponseType.AuthRequired);
112
142
  }
113
143
  }
114
144
  exports.AuthRequiredError = AuthRequiredError;
115
145
  class ForbiddenError extends XRPCError {
116
- constructor(errorMessage, customErrorName) {
117
- super(xrpc_1.ResponseType.Forbidden, errorMessage, customErrorName);
146
+ constructor(errorMessage, customErrorName, options) {
147
+ super(xrpc_1.ResponseType.Forbidden, errorMessage, customErrorName, options);
148
+ }
149
+ [Symbol.hasInstance](instance) {
150
+ return (instance instanceof XRPCError && instance.type === xrpc_1.ResponseType.Forbidden);
118
151
  }
119
152
  }
120
153
  exports.ForbiddenError = ForbiddenError;
121
154
  class RateLimitExceededError extends XRPCError {
122
- constructor(status, errorMessage, customErrorName) {
123
- super(xrpc_1.ResponseType.RateLimitExceeded, errorMessage, customErrorName);
155
+ constructor(status, errorMessage, customErrorName, options) {
156
+ super(xrpc_1.ResponseType.RateLimitExceeded, errorMessage, customErrorName, options);
124
157
  Object.defineProperty(this, "status", {
125
158
  enumerable: true,
126
159
  configurable: true,
@@ -128,35 +161,59 @@ class RateLimitExceededError extends XRPCError {
128
161
  value: status
129
162
  });
130
163
  }
164
+ [Symbol.hasInstance](instance) {
165
+ return (instance instanceof XRPCError &&
166
+ instance.type === xrpc_1.ResponseType.RateLimitExceeded);
167
+ }
131
168
  }
132
169
  exports.RateLimitExceededError = RateLimitExceededError;
133
170
  class InternalServerError extends XRPCError {
134
- constructor(errorMessage, customErrorName) {
135
- super(xrpc_1.ResponseType.InternalServerError, errorMessage, customErrorName);
171
+ constructor(errorMessage, customErrorName, options) {
172
+ super(xrpc_1.ResponseType.InternalServerError, errorMessage, customErrorName, options);
173
+ }
174
+ [Symbol.hasInstance](instance) {
175
+ return (instance instanceof XRPCError &&
176
+ instance.type === xrpc_1.ResponseType.InternalServerError);
136
177
  }
137
178
  }
138
179
  exports.InternalServerError = InternalServerError;
139
180
  class UpstreamFailureError extends XRPCError {
140
- constructor(errorMessage, customErrorName) {
141
- super(xrpc_1.ResponseType.UpstreamFailure, errorMessage, customErrorName);
181
+ constructor(errorMessage, customErrorName, options) {
182
+ super(xrpc_1.ResponseType.UpstreamFailure, errorMessage, customErrorName, options);
183
+ }
184
+ [Symbol.hasInstance](instance) {
185
+ return (instance instanceof XRPCError &&
186
+ instance.type === xrpc_1.ResponseType.UpstreamFailure);
142
187
  }
143
188
  }
144
189
  exports.UpstreamFailureError = UpstreamFailureError;
145
190
  class NotEnoughResourcesError extends XRPCError {
146
- constructor(errorMessage, customErrorName) {
147
- super(xrpc_1.ResponseType.NotEnoughResources, errorMessage, customErrorName);
191
+ constructor(errorMessage, customErrorName, options) {
192
+ super(xrpc_1.ResponseType.NotEnoughResources, errorMessage, customErrorName, options);
193
+ }
194
+ [Symbol.hasInstance](instance) {
195
+ return (instance instanceof XRPCError &&
196
+ instance.type === xrpc_1.ResponseType.NotEnoughResources);
148
197
  }
149
198
  }
150
199
  exports.NotEnoughResourcesError = NotEnoughResourcesError;
151
200
  class UpstreamTimeoutError extends XRPCError {
152
- constructor(errorMessage, customErrorName) {
153
- super(xrpc_1.ResponseType.UpstreamTimeout, errorMessage, customErrorName);
201
+ constructor(errorMessage, customErrorName, options) {
202
+ super(xrpc_1.ResponseType.UpstreamTimeout, errorMessage, customErrorName, options);
203
+ }
204
+ [Symbol.hasInstance](instance) {
205
+ return (instance instanceof XRPCError &&
206
+ instance.type === xrpc_1.ResponseType.UpstreamTimeout);
154
207
  }
155
208
  }
156
209
  exports.UpstreamTimeoutError = UpstreamTimeoutError;
157
210
  class MethodNotImplementedError extends XRPCError {
158
- constructor(errorMessage, customErrorName) {
159
- super(xrpc_1.ResponseType.MethodNotImplemented, errorMessage, customErrorName);
211
+ constructor(errorMessage, customErrorName, options) {
212
+ super(xrpc_1.ResponseType.MethodNotImplemented, errorMessage, customErrorName, options);
213
+ }
214
+ [Symbol.hasInstance](instance) {
215
+ return (instance instanceof XRPCError &&
216
+ instance.type === xrpc_1.ResponseType.MethodNotImplemented);
160
217
  }
161
218
  }
162
219
  exports.MethodNotImplementedError = MethodNotImplementedError;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import { IncomingMessage } from 'http';
3
+ import { IncomingMessage } from 'node:http';
4
4
  import express from 'express';
5
5
  import { Lexicons, LexXrpcProcedure, LexXrpcQuery, LexXrpcSubscription } from '@atproto/lexicon';
6
6
  import { UndecodedParams, Params, HandlerInput, HandlerSuccess, RouteOpts } from './types';
@@ -8,7 +8,7 @@ export declare function decodeQueryParams(def: LexXrpcProcedure | LexXrpcQuery |
8
8
  export declare function decodeQueryParam(type: string, value: unknown): string | number | boolean | undefined;
9
9
  export declare function getQueryParams(url?: string): Record<string, string | string[]>;
10
10
  export declare function validateInput(nsid: string, def: LexXrpcProcedure | LexXrpcQuery, req: express.Request, opts: RouteOpts, lexicons: Lexicons): HandlerInput | undefined;
11
- export declare function validateOutput(nsid: string, def: LexXrpcProcedure | LexXrpcQuery, output: HandlerSuccess | undefined, lexicons: Lexicons): HandlerSuccess | undefined;
11
+ export declare function validateOutput(nsid: string, def: LexXrpcProcedure | LexXrpcQuery, output: HandlerSuccess | undefined, lexicons: Lexicons): void;
12
12
  export declare function normalizeMime(v: string): any;
13
13
  export declare function processBodyAsBytes(req: express.Request): Promise<Uint8Array>;
14
14
  export declare function serverTimingHeader(timings: ServerTiming[]): string;
@@ -27,4 +27,8 @@ export interface ServerTiming {
27
27
  description?: string;
28
28
  }
29
29
  export declare const parseReqNsid: (req: express.Request | IncomingMessage) => string;
30
+ /**
31
+ * Validates and extracts the nsid from an xrpc path
32
+ */
33
+ export declare const parseUrlNsid: (url: string) => string;
30
34
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAEtC,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAEL,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACpB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,eAAe,EACf,MAAM,EACN,YAAY,EACZ,cAAc,EAKd,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,GAAG,YAAY,GAAG,mBAAmB,EAC1D,MAAM,EAAE,eAAe,GACtB,MAAM,CAmBR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAcvC;AAED,wBAAgB,cAAc,CAAC,GAAG,SAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAU1E;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,gBAAgB,GAAG,YAAY,EACpC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,QAAQ,GACjB,YAAY,GAAG,SAAS,CA+D1B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,gBAAgB,GAAG,YAAY,EACpC,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,EAAE,QAAQ,GACjB,cAAc,GAAG,SAAS,CA0C5B;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,OAOtC;AAmBD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAM5E;AA0CD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,UASzD;AAED,qBAAa,WAAY,YAAW,YAAY;IAIrC,IAAI,EAAE,MAAM;IACZ,WAAW,CAAC;IAJd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,OAAO,CAAC,CAAQ;gBAEf,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,oBAAQ;IAE7B,KAAK;IAIL,IAAI;CAKL;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,YAAY,QAClB,eAAe,GAAG,eAAe,KACrC,MAKF,CAAA"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAEL,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACpB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,eAAe,EACf,MAAM,EACN,YAAY,EACZ,cAAc,EAKd,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,GAAG,YAAY,GAAG,mBAAmB,EAC1D,MAAM,EAAE,eAAe,GACtB,MAAM,CAmBR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAcvC;AAED,wBAAgB,cAAc,CAAC,GAAG,SAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAU1E;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,gBAAgB,GAAG,YAAY,EACpC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,QAAQ,GACjB,YAAY,GAAG,SAAS,CA+D1B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,gBAAgB,GAAG,YAAY,EACpC,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAwCN;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,OAOtC;AAmBD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAM5E;AAsDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,UASzD;AAED,qBAAa,WAAY,YAAW,YAAY;IAIrC,IAAI,EAAE,MAAM;IACZ,WAAW,CAAC;IAJd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,OAAO,CAAC,CAAQ;gBAEf,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,oBAAQ;IAE7B,KAAK;IAIL,IAAI;CAKL;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,YAAY,QAAS,eAAe,GAAG,eAAe,WACI,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,MA4D1C,CAAA"}
package/dist/util.js CHANGED
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parseReqNsid = exports.ServerTimer = exports.serverTimingHeader = exports.processBodyAsBytes = exports.normalizeMime = exports.validateOutput = exports.validateInput = exports.getQueryParams = exports.decodeQueryParam = exports.decodeQueryParams = void 0;
7
- const assert_1 = __importDefault(require("assert"));
8
- const zlib_1 = require("zlib");
6
+ exports.parseUrlNsid = exports.parseReqNsid = exports.ServerTimer = exports.serverTimingHeader = exports.processBodyAsBytes = exports.normalizeMime = exports.validateOutput = exports.validateInput = exports.getQueryParams = exports.decodeQueryParam = exports.decodeQueryParams = void 0;
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const node_stream_1 = require("node:stream");
9
9
  const mime_types_1 = __importDefault(require("mime-types"));
10
10
  const lexicon_1 = require("@atproto/lexicon");
11
11
  const common_1 = require("@atproto/common");
12
+ const xrpc_1 = require("@atproto/xrpc");
12
13
  const types_1 = require("./types");
13
14
  function decodeQueryParams(def, params) {
14
15
  const decoded = {};
@@ -144,7 +145,6 @@ function validateOutput(nsid, def, output, lexicons) {
144
145
  throw new types_1.InternalServerError(e instanceof Error ? e.message : String(e));
145
146
  }
146
147
  }
147
- return output;
148
148
  }
149
149
  exports.validateOutput = validateOutput;
150
150
  function normalizeMime(v) {
@@ -186,31 +186,33 @@ function processBodyAsBytes(req) {
186
186
  }
187
187
  exports.processBodyAsBytes = processBodyAsBytes;
188
188
  function decodeBodyStream(req, maxSize) {
189
- let stream = req;
190
189
  const contentEncoding = req.headers['content-encoding'];
191
190
  const contentLength = req.headers['content-length'];
192
- if (maxSize !== undefined &&
193
- contentLength &&
194
- parseInt(contentLength, 10) > maxSize) {
195
- throw new types_1.XRPCError(413, 'request entity too large');
191
+ const contentLengthParsed = contentLength
192
+ ? parseInt(contentLength, 10)
193
+ : undefined;
194
+ if (Number.isNaN(contentLengthParsed)) {
195
+ throw new types_1.XRPCError(xrpc_1.ResponseType.InvalidRequest, 'invalid content-length');
196
196
  }
197
- let decoder;
198
- if (contentEncoding === 'gzip') {
199
- decoder = (0, zlib_1.createGunzip)();
197
+ if (maxSize !== undefined &&
198
+ contentLengthParsed !== undefined &&
199
+ contentLengthParsed > maxSize) {
200
+ throw new types_1.XRPCError(xrpc_1.ResponseType.PayloadTooLarge, 'request entity too large');
200
201
  }
201
- else if (contentEncoding === 'deflate') {
202
- decoder = (0, zlib_1.createDeflate)();
202
+ let transforms;
203
+ try {
204
+ transforms = (0, common_1.createDecoders)(contentEncoding);
203
205
  }
204
- if (decoder) {
205
- (0, common_1.forwardStreamErrors)(stream, decoder);
206
- stream = stream.pipe(decoder);
206
+ catch (cause) {
207
+ throw new types_1.XRPCError(xrpc_1.ResponseType.UnsupportedMediaType, 'unsupported content-encoding', undefined, { cause });
207
208
  }
208
209
  if (maxSize !== undefined) {
209
- const maxSizeChecker = new common_1.MaxSizeChecker(maxSize, () => new types_1.XRPCError(413, 'request entity too large'));
210
- (0, common_1.forwardStreamErrors)(stream, maxSizeChecker);
211
- stream = stream.pipe(maxSizeChecker);
210
+ const maxSizeChecker = new common_1.MaxSizeChecker(maxSize, () => new types_1.XRPCError(xrpc_1.ResponseType.PayloadTooLarge, 'request entity too large'));
211
+ transforms.push(maxSizeChecker);
212
212
  }
213
- return stream;
213
+ return transforms.length > 0
214
+ ? (0, node_stream_1.pipeline)([req, ...transforms], () => { })
215
+ : req;
214
216
  }
215
217
  function serverTimingHeader(timings) {
216
218
  return timings
@@ -257,16 +259,72 @@ class ServerTimer {
257
259
  return this;
258
260
  }
259
261
  stop() {
260
- (0, assert_1.default)(this.startMs, "timer hasn't been started");
262
+ (0, node_assert_1.default)(this.startMs, "timer hasn't been started");
261
263
  this.duration = Date.now() - this.startMs;
262
264
  return this;
263
265
  }
264
266
  }
265
267
  exports.ServerTimer = ServerTimer;
266
- const parseReqNsid = (req) => {
267
- const originalUrl = ('originalUrl' in req && req.originalUrl) || req.url || '/';
268
- const nsid = originalUrl.split('?')[0].replace('/xrpc/', '');
269
- return nsid.endsWith('/') ? nsid.slice(0, -1) : nsid; // trim trailing slash
270
- };
268
+ const parseReqNsid = (req) => (0, exports.parseUrlNsid)('originalUrl' in req ? req.originalUrl : req.url || '/');
271
269
  exports.parseReqNsid = parseReqNsid;
270
+ /**
271
+ * Validates and extracts the nsid from an xrpc path
272
+ */
273
+ const parseUrlNsid = (url) => {
274
+ // /!\ Hot path
275
+ if (
276
+ // Ordered by likelihood of failure
277
+ url.length <= 6 ||
278
+ url[5] !== '/' ||
279
+ url[4] !== 'c' ||
280
+ url[3] !== 'p' ||
281
+ url[2] !== 'r' ||
282
+ url[1] !== 'x' ||
283
+ url[0] !== '/') {
284
+ throw new types_1.InvalidRequestError('invalid xrpc path');
285
+ }
286
+ const startOfNsid = 6;
287
+ let curr = startOfNsid;
288
+ let char;
289
+ let alphaNumRequired = true;
290
+ for (; curr < url.length; curr++) {
291
+ char = url.charCodeAt(curr);
292
+ if ((char >= 48 && char <= 57) || // 0-9
293
+ (char >= 65 && char <= 90) || // A-Z
294
+ (char >= 97 && char <= 122) // a-z
295
+ ) {
296
+ alphaNumRequired = false;
297
+ }
298
+ else if (char === 45 /* "-" */ || char === 46 /* "." */) {
299
+ if (alphaNumRequired) {
300
+ throw new types_1.InvalidRequestError('invalid xrpc path');
301
+ }
302
+ alphaNumRequired = true;
303
+ }
304
+ else if (char === 47 /* "/" */) {
305
+ // Allow trailing slash (next char is either EOS or "?")
306
+ if (curr === url.length - 1 || url.charCodeAt(curr + 1) === 63) {
307
+ break;
308
+ }
309
+ throw new types_1.InvalidRequestError('invalid xrpc path');
310
+ }
311
+ else if (char === 63 /* "?"" */) {
312
+ break;
313
+ }
314
+ else {
315
+ throw new types_1.InvalidRequestError('invalid xrpc path');
316
+ }
317
+ }
318
+ // last char was one of: '-', '.', '/'
319
+ if (alphaNumRequired) {
320
+ throw new types_1.InvalidRequestError('invalid xrpc path');
321
+ }
322
+ // A domain name consists of minimum two characters
323
+ if (curr - startOfNsid < 2) {
324
+ throw new types_1.InvalidRequestError('invalid xrpc path');
325
+ }
326
+ // @TODO is there a max ?
327
+ return url.slice(startOfNsid, curr);
328
+ };
329
+ exports.parseUrlNsid = parseUrlNsid;
272
330
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/xrpc-server",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "license": "MIT",
5
5
  "description": "atproto HTTP API (XRPC) server library",
6
6
  "keywords": [
@@ -24,10 +24,10 @@
24
24
  "uint8arrays": "3.0.0",
25
25
  "ws": "^8.12.0",
26
26
  "zod": "^3.23.8",
27
- "@atproto/common": "^0.4.1",
27
+ "@atproto/common": "^0.4.3",
28
28
  "@atproto/crypto": "^0.4.1",
29
- "@atproto/lexicon": "^0.4.1",
30
- "@atproto/xrpc": "^0.6.1"
29
+ "@atproto/lexicon": "^0.4.2",
30
+ "@atproto/xrpc": "^0.6.3"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/express": "^4.17.13",
package/src/index.ts CHANGED
@@ -5,4 +5,4 @@ export * from './stream'
5
5
  export * from './rate-limiter'
6
6
 
7
7
  export type { ServerTiming } from './util'
8
- export { parseReqNsid, serverTimingHeader, ServerTimer } from './util'
8
+ export { ServerTimer, parseReqNsid, serverTimingHeader } from './util'