@atproto/xrpc-server 0.7.18 → 0.7.19

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atproto/xrpc-server
2
2
 
3
+ ## 0.7.19
4
+
5
+ ### Patch Changes
6
+
7
+ - [#3699](https://github.com/bluesky-social/atproto/pull/3699) [`9214bd017`](https://github.com/bluesky-social/atproto/commit/9214bd01705381aed6b5bde2900d6dc5486b6e9f) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Improve logging of XRPC errors
8
+
3
9
  ## 0.7.18
4
10
 
5
11
  ### Patch Changes
package/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  Dual MIT/Apache-2.0 License
2
2
 
3
- Copyright (c) 2022-2025 Bluesky PBC, and Contributors
3
+ Copyright (c) 2022-2025 Bluesky Social PBC, and Contributors
4
4
 
5
5
  Except as otherwise noted in individual files, this software is licensed under the MIT license (<http://opensource.org/licenses/MIT>), or the Apache License, Version 2.0 (<http://www.apache.org/licenses/LICENSE-2.0>).
6
6
 
package/dist/logger.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { subsystemLogger } from '@atproto/common';
2
+ export declare const LOGGER_NAME = "xrpc-server";
2
3
  export declare const logger: ReturnType<typeof subsystemLogger>;
3
4
  export default logger;
4
5
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CACtB,CAAA;AAEhC,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,eAAO,MAAM,WAAW,gBAAgB,CAAA;AAExC,eAAO,MAAM,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CACxB,CAAA;AAE9B,eAAe,MAAM,CAAA"}
package/dist/logger.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logger = void 0;
3
+ exports.logger = exports.LOGGER_NAME = void 0;
4
4
  const common_1 = require("@atproto/common");
5
- exports.logger = (0, common_1.subsystemLogger)('xrpc-server');
5
+ exports.LOGGER_NAME = 'xrpc-server';
6
+ exports.logger = (0, common_1.subsystemLogger)(exports.LOGGER_NAME);
6
7
  exports.default = exports.logger;
7
8
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/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/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"}
package/dist/server.js CHANGED
@@ -32,9 +32,6 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
35
  Object.defineProperty(exports, "__esModule", { value: true });
39
36
  exports.Server = void 0;
40
37
  exports.createServer = createServer;
@@ -43,7 +40,7 @@ const promises_1 = require("node:stream/promises");
43
40
  const express_1 = __importStar(require("express"));
44
41
  const common_1 = require("@atproto/common");
45
42
  const lexicon_1 = require("@atproto/lexicon");
46
- const logger_1 = __importDefault(require("./logger"));
43
+ const logger_1 = __importStar(require("./logger"));
47
44
  const rate_limiter_1 = require("./rate-limiter");
48
45
  const stream_1 = require("./stream");
49
46
  const types_1 = require("./types");
@@ -494,22 +491,51 @@ function createErrorMiddleware({ errorParser = (err) => types_1.XRPCError.fromEr
494
491
  const locals = req[kRequestLocals];
495
492
  const methodSuffix = locals ? ` method ${locals.nsid}` : '';
496
493
  const xrpcError = errorParser(err);
497
- if (xrpcError instanceof types_1.InternalServerError) {
498
- // log trace for unhandled exceptions
499
- logger_1.default.error({ err }, `unhandled exception in xrpc${methodSuffix}`);
500
- }
501
- else {
502
- // do not log trace for known xrpc errors
503
- logger_1.default.error({
504
- status: xrpcError.type,
505
- message: xrpcError.message,
506
- name: xrpcError.customErrorName,
507
- }, `error in xrpc${methodSuffix}`);
508
- }
494
+ // Use the request's logger (if available) to benefit from request context
495
+ // (id, timing) and logging configuration (serialization, etc.).
496
+ const logger = isPinoHttpRequest(req) ? req.log : logger_1.default;
497
+ const isInternalError = xrpcError instanceof types_1.InternalServerError;
498
+ logger.error({
499
+ // @NOTE Computation of error stack is an expensive operation, so
500
+ // we strip it for expected errors.
501
+ err: isInternalError || process.env.NODE_ENV === 'development'
502
+ ? err
503
+ : toSimplifiedErrorLike(err),
504
+ // XRPC specific properties, for easier browsing of logs
505
+ nsid: locals?.nsid,
506
+ type: xrpcError.type,
507
+ status: xrpcError.statusCode,
508
+ payload: xrpcError.payload,
509
+ // Ensure that the logged item's name is set to LOGGER_NAME, instead of
510
+ // the name of the pino-http logger, to ensure consistency across logs.
511
+ name: logger_1.LOGGER_NAME,
512
+ }, isInternalError
513
+ ? `unhandled exception in xrpc${methodSuffix}`
514
+ : `error in xrpc${methodSuffix}`);
509
515
  if (res.headersSent) {
510
516
  return next(err);
511
517
  }
512
518
  return res.status(xrpcError.statusCode).json(xrpcError.payload);
513
519
  };
514
520
  }
521
+ function isPinoHttpRequest(req) {
522
+ return typeof req.log?.error === 'function';
523
+ }
524
+ function toSimplifiedErrorLike(err) {
525
+ if (err instanceof Error) {
526
+ // Transform into an "ErrorLike" for pino's std "err" serializer
527
+ return {
528
+ ...err,
529
+ // Carry over non-enumerable properties
530
+ message: err.message,
531
+ name: !Object.hasOwn(err, 'name') &&
532
+ Object.prototype.toString.call(err.constructor) === '[object Function]'
533
+ ? err.constructor.name // extract the class name for sub-classes of Error
534
+ : err.name,
535
+ // @NOTE Error.stack, Error.cause and AggregateError.error are non
536
+ // enumerable properties so they won't be spread to the ErrorLike
537
+ };
538
+ }
539
+ return err;
540
+ }
515
541
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,oCAEC;AA1DD,6CAAsC;AACtC,mDAA+C;AAC/C,mDAWgB;AAChB,4CAA+C;AAC/C,8CAOyB;AACzB,sDAA0B;AAC1B,iDAAuD;AACvD,qCAA4E;AAC5E,mCAsBgB;AAChB,iCAKe;AAEf,SAAgB,YAAY,CAAC,QAAuB,EAAE,OAAiB;IACrE,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACtC,CAAC;AAED,MAAa,MAAM;IAWjB,YAAY,QAAuB,EAAE,OAAgB,EAAE;QAVvD;;;;mBAAkB,IAAA,iBAAO,GAAE;WAAA;QAC3B;;;;mBAAiB,IAAA,gBAAM,GAAE;WAAA;QACzB;;;;mBAAgB,IAAI,GAAG,EAA4B;WAAA;QACnD;;;;mBAAM,IAAI,kBAAQ,EAAE;WAAA;QACpB;;;;;WAAgB;QAChB;;;;;WAAmD;QACnD;;;;;WAAkC;QAClC;;;;;WAAgD;QAChD;;;;;WAAiD;QAG/C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC5B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE;YAC7C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG;YAChB,IAAI,EAAE,IAAA,cAAU,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACrD,IAAI,EAAE,IAAA,cAAU,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;SACtD,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAC3B,IAAI,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;oBAC1C,GAAG,KAAK;oBACR,SAAS,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE;iBAC9B,CAAC,CAAA;gBACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;oBAC1C,GAAG,KAAK;oBACR,SAAS,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE;iBAC9B,CAAC,CAAA;gBACF,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAA;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW;IACX,IAAI;IAEJ,MAAM,CAAC,IAAY,EAAE,UAA2C;QAC9D,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAClC,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,UAA2C;QACjE,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAA;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,IAAI,GAAG,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,gCAAgC,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,YAAY,CACV,IAAY,EACZ,UAAuD;QAEvD,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACxC,CAAC;IAED,eAAe,CACb,IAAY,EACZ,UAAuD;QAEvD,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAA;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,GAAG,EAAE,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,wBAAwB,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,UAAU;IACV,IAAI;IAEJ,UAAU,CAAC,GAAe;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IAED,WAAW,CAAC,IAAkB;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO;IACP,IAAI;IAEM,KAAK,CAAC,QAAQ,CACtB,IAAY,EACZ,GAAoC,EACpC,MAAyB;QAEzB,MAAM,IAAI,GAAmB,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;QACtE,MAAM,UAAU,GAAqB,EAAE,CAAA;QACvC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CACf,SAAS,IAAI,EAAE,EACf,GAAG,UAAU,EACb,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CACtC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QAC5D,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAW,EAC7B;oBACE,GAAG;oBACH,GAAG;oBACH,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,SAAS;oBAChB,KAAK,CAAC,oBAAoB,KAAI,CAAC;iBAChC,EACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CACjD,CACF,CAAA;gBACD,IAAI,KAAK,YAAY,8BAAsB,EAAE,CAAC;oBAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,IAAI,iCAAyB,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,kBAAkB;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACjD,OAAO,IAAI,CACT,IAAI,2BAAmB,CACrB,0BAA0B,GAAG,CAAC,MAAM,gBAAgB,CACrD,CACF,CAAA;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7D,OAAO,IAAI,CACT,IAAI,2BAAmB,CACrB,0BAA0B,GAAG,CAAC,MAAM,iBAAiB,CACtD,CACF,CAAA;QACH,CAAC;QACD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC;IAED,aAAa,CACX,IAAY,EACZ,GAAoC,EACpC,QAA2B;QAE3B,MAAM,SAAS,GAAG;YAChB,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS;SACvE,CAAA;QACD,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAAE,EAAE,CACxC,IAAA,oBAAa,EAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,iBAAiB,GACrB,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,KAAK;YACrC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,MAAkC,EAAE,EAAE,CACrC,IAAA,qBAAc,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACnD,MAAM,qBAAqB,GAAG,CAAC,MAAe,EAAE,EAAE,CAChD,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QAC9C,MAAM,gBAAgB,GAAG,CAAC,MAAsB,EAAE,EAAE,CAClD,IAAA,0BAAW,EACT,MAAM,EACN,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAC1D,CAAA;QAEH,MAAM,cAAc,GAAG,CAAC,MAAsB,EAAE,EAAE,CAChD,IAAA,wBAAS,EACP,MAAM,EACN,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CACxD,CAAA;QAEH,OAAO,KAAK,WAAW,GAAG,EAAE,GAAG,EAAE,IAAI;YACnC,IAAI,CAAC;gBACH,mBAAmB;gBACnB,IAAI,MAAM,GAAG,IAAA,wBAAiB,EAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC9C,IAAI,CAAC;oBACH,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAW,CAAA;gBAClD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,IAAI,2BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1C,CAAC;gBACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAkB,GAAG,CAAC,cAAc,CAAC,CAAA;gBAEjD,MAAM,MAAM,GAAmB;oBAC7B,MAAM;oBACN,KAAK;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG;oBACH,GAAG;oBACH,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;iBACzD,CAAA;gBAED,qBAAqB;gBACrB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAA;gBAC7C,IAAI,MAAM,YAAY,8BAAsB,EAAE,CAAC;oBAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;gBACrB,CAAC;gBAED,kBAAkB;gBAClB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAA;oBAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,GAAG,CAAC,GAAG,EAAE,CAAA;gBACX,CAAC;qBAAM,IAAI,IAAA,kCAA0B,EAAC,MAAM,CAAC,EAAE,CAAC;oBAC9C,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC3C,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBACpC,CAAC;qBAAM,IAAI,IAAA,kCAA0B,EAAC,MAAM,CAAC,EAAE,CAAC;oBAC9C,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC3C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACxB,CAAC;qBAAM,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,iBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBACN,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAA;oBAE3B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBAEvB,IACE,MAAM,CAAC,QAAQ,KAAK,kBAAkB;wBACtC,MAAM,CAAC,QAAQ,KAAK,MAAM,EAC1B,CAAC;wBACD,MAAM,IAAI,GAAG,IAAA,mBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,CAAA;wBACnC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAChB,CAAC;yBAAM,IAAI,MAAM,CAAC,IAAI,YAAY,sBAAQ,EAAE,CAAC;wBAC3C,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;wBAC3C,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;oBAClC,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;wBAC3C,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;4BAC1B,CAAC,CAAC,MAAM,CAAC,IAAI;4BACb,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,UAAU;gCACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gCAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAClB,CAAA;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,2EAA2E;gBAC3E,oEAAoE;gBACpE,mDAAmD;gBACnD,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,IAAI,CAAC,IAAI,2BAAmB,EAAE,CAAC,CAAA;gBACjC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,IAAY,EACZ,GAAwB,EACxB,MAA+B;QAE/B,MAAM,qBAAqB,GAAG,CAAC,MAAe,EAAE,EAAE,CAChD,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,EACJ,IAAI,yBAAgB,CAAC;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM;gBACnC,IAAI,CAAC;oBACH,uBAAuB;oBACvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;oBACzC,IAAI,IAAA,sBAAc,EAAC,IAAI,CAAC,EAAE,CAAC;wBACzB,MAAM,iBAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;oBACxC,CAAC;oBACD,mBAAmB;oBACnB,IAAI,MAAM,GAAG,IAAA,wBAAiB,EAAC,GAAG,EAAE,IAAA,qBAAc,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5D,IAAI,CAAC;wBACH,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAW,CAAA;oBAClD,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,IAAI,2BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC1C,CAAC;oBACD,SAAS;oBACT,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;oBAC3D,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBAC/B,IAAI,IAAI,YAAY,cAAK,EAAE,CAAC;4BAC1B,MAAM,IAAI,CAAA;4BACV,SAAQ;wBACV,CAAC;wBACD,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,CAAA;wBAC5B,IAAI,CAAC,cAAK,CAAC,EAAE,CAAC,IAAI,EAAE,eAAM,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC5D,MAAM,IAAI,qBAAY,CAAC,IAAI,CAAC,CAAA;4BAC5B,SAAQ;wBACV,CAAC;wBACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAC7B,IAAI,CAAS,CAAA;wBACb,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;4BAClB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EACtC,CAAC;4BACD,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;wBACpB,CAAC;6BAAM,CAAC;4BACN,CAAC,GAAG,IAAI,CAAA;wBACV,CAAC;wBACD,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;wBACzB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAA;wBACrB,MAAM,IAAI,qBAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;oBAC5C,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,cAAc,GAAG,iBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA;oBACvD,MAAM,IAAI,mBAAU,CAAC;wBACnB,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,SAAS;wBACxC,OAAO,EAAE,cAAc,CAAC,OAAO;qBAChC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAEO,uBAAuB,CAAC,GAAgB;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAA;QAC1B,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YACvB,6BAA6B;YAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;YAC7C,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,UAAU,CAAC,CAAA;gBAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC3C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC5D,CAAC,CAAC,SAAS,CAAA;gBACb,IAAI,CAAC,GAAG;oBAAE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAA;gBACjC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAC9C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CACpC,CAAA;YACH,CAAC,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QACnB,CAAC,CAAA;IACH,CAAC;IAEO,oBAAoB,CAAC,IAAY,EAAE,MAAyB;QAClE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,CAAC,GAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBACpD,KAAK,EAAE,CAAC,GAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACjD,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC5C,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACvB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;gBACrC,IAAI,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBACvD,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;4BAChC,OAAO,EAAE,CAAC,GAAmB,EAAE,EAAE,CAC/B,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;gCACvB,OAAO;gCACP,UAAU;6BACX,CAAC;4BACJ,KAAK,EAAE,CAAC,GAAmB,EAAE,EAAE,CAC7B,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gCACrB,OAAO;6BACR,CAAC;yBACL,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;oBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;wBACnD,SAAS,EAAE,QAAQ,CAAC,EAAE;wBACtB,UAAU;wBACV,MAAM;wBACN,OAAO;wBACP,UAAU;qBACX,CAAC,CAAA;oBACF,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAA;wBAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;4BAChC,OAAO,EAAE,CAAC,GAAmB,EAAE,EAAE,CAC/B,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;gCACvB,OAAO;gCACP,UAAU;6BACX,CAAC;4BACJ,KAAK,EAAE,CAAC,GAAmB,EAAE,EAAE,CAC7B,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gCACrB,OAAO;6BACR,CAAC;yBACL,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAjbD,wBAibC;AAED,SAAS,UAAU,CACjB,GAAa,EACb,MAA2C;IAE3C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAC1B,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,IAAI,IAAI;gBAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAE9C,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI;QAC9B,MAAM,MAAM,GAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QACvD,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAA;QAC5B,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAOD,SAAS,oBAAoB,CAAC,QAAsB;IAClD,OAAO,KAAK,WAAW,GAAG,EAAE,GAAG,EAAE,IAAI;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YAC3C,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,iBAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;YAC1C,CAAC;YACD,MAAM,MAAM,GAAkB,GAAG,CAAC,cAAc,CAAC,CAAA;YACjD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAA;YACpB,IAAI,EAAE,CAAA;QACR,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,WAAW,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GACvC;IACR,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7B,MAAM,MAAM,GAA8B,GAAG,CAAC,cAAc,CAAC,CAAA;QAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,SAAS,YAAY,2BAAmB,EAAE,CAAC;YAC7C,qCAAqC;YACrC,gBAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,YAAY,EAAE,CAAC,CAAA;QAClE,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,gBAAG,CAAC,KAAK,CACP;gBACE,MAAM,EAAE,SAAS,CAAC,IAAI;gBACtB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,SAAS,CAAC,eAAe;aAChC,EACD,gBAAgB,YAAY,EAAE,CAC/B,CAAA;QACH,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACjE,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.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.7.18",
3
+ "version": "0.7.19",
4
4
  "license": "MIT",
5
5
  "description": "atproto HTTP API (XRPC) server library",
6
6
  "keywords": [
package/src/logger.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { subsystemLogger } from '@atproto/common'
2
2
 
3
+ export const LOGGER_NAME = 'xrpc-server'
4
+
3
5
  export const logger: ReturnType<typeof subsystemLogger> =
4
- subsystemLogger('xrpc-server')
6
+ subsystemLogger(LOGGER_NAME)
5
7
 
6
8
  export default logger
package/src/server.ts CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  Lexicons,
22
22
  lexToJson,
23
23
  } from '@atproto/lexicon'
24
- import log from './logger'
24
+ import log, { LOGGER_NAME } from './logger'
25
25
  import { consumeMany, resetMany } from './rate-limiter'
26
26
  import { ErrorFrame, Frame, MessageFrame, XrpcStreamServer } from './stream'
27
27
  import {
@@ -542,24 +542,69 @@ function createErrorMiddleware({
542
542
  return (err, req, res, next) => {
543
543
  const locals: RequestLocals | undefined = req[kRequestLocals]
544
544
  const methodSuffix = locals ? ` method ${locals.nsid}` : ''
545
+
545
546
  const xrpcError = errorParser(err)
546
- if (xrpcError instanceof InternalServerError) {
547
- // log trace for unhandled exceptions
548
- log.error({ err }, `unhandled exception in xrpc${methodSuffix}`)
549
- } else {
550
- // do not log trace for known xrpc errors
551
- log.error(
552
- {
553
- status: xrpcError.type,
554
- message: xrpcError.message,
555
- name: xrpcError.customErrorName,
556
- },
557
- `error in xrpc${methodSuffix}`,
558
- )
559
- }
547
+
548
+ // Use the request's logger (if available) to benefit from request context
549
+ // (id, timing) and logging configuration (serialization, etc.).
550
+ const logger = isPinoHttpRequest(req) ? req.log : log
551
+
552
+ const isInternalError = xrpcError instanceof InternalServerError
553
+
554
+ logger.error(
555
+ {
556
+ // @NOTE Computation of error stack is an expensive operation, so
557
+ // we strip it for expected errors.
558
+ err:
559
+ isInternalError || process.env.NODE_ENV === 'development'
560
+ ? err
561
+ : toSimplifiedErrorLike(err),
562
+
563
+ // XRPC specific properties, for easier browsing of logs
564
+ nsid: locals?.nsid,
565
+ type: xrpcError.type,
566
+ status: xrpcError.statusCode,
567
+ payload: xrpcError.payload,
568
+
569
+ // Ensure that the logged item's name is set to LOGGER_NAME, instead of
570
+ // the name of the pino-http logger, to ensure consistency across logs.
571
+ name: LOGGER_NAME,
572
+ },
573
+ isInternalError
574
+ ? `unhandled exception in xrpc${methodSuffix}`
575
+ : `error in xrpc${methodSuffix}`,
576
+ )
577
+
560
578
  if (res.headersSent) {
561
579
  return next(err)
562
580
  }
581
+
563
582
  return res.status(xrpcError.statusCode).json(xrpcError.payload)
564
583
  }
565
584
  }
585
+
586
+ function isPinoHttpRequest(req: Request): req is Request & {
587
+ log: { error: (obj: unknown, msg: string) => void }
588
+ } {
589
+ return typeof (req as { log?: any }).log?.error === 'function'
590
+ }
591
+
592
+ function toSimplifiedErrorLike(err: unknown): unknown {
593
+ if (err instanceof Error) {
594
+ // Transform into an "ErrorLike" for pino's std "err" serializer
595
+ return {
596
+ ...err,
597
+ // Carry over non-enumerable properties
598
+ message: err.message,
599
+ name:
600
+ !Object.hasOwn(err, 'name') &&
601
+ Object.prototype.toString.call(err.constructor) === '[object Function]'
602
+ ? err.constructor.name // extract the class name for sub-classes of Error
603
+ : err.name,
604
+ // @NOTE Error.stack, Error.cause and AggregateError.error are non
605
+ // enumerable properties so they won't be spread to the ErrorLike
606
+ }
607
+ }
608
+
609
+ return err
610
+ }
@@ -1 +1 @@
1
- {"root":["./tests/_util.ts","./tests/auth.test.ts","./tests/bodies.test.ts","./tests/errors.test.ts","./tests/frames.test.ts","./tests/ipld.test.ts","./tests/parameters.test.ts","./tests/parsing.test.ts","./tests/procedures.test.ts","./tests/queries.test.ts","./tests/rate-limiter.test.ts","./tests/responses.test.ts","./tests/stream.test.ts","./tests/subscriptions.test.ts"],"version":"5.8.2"}
1
+ {"root":["./tests/_util.ts","./tests/auth.test.ts","./tests/bodies.test.ts","./tests/errors.test.ts","./tests/frames.test.ts","./tests/ipld.test.ts","./tests/parameters.test.ts","./tests/parsing.test.ts","./tests/procedures.test.ts","./tests/queries.test.ts","./tests/rate-limiter.test.ts","./tests/responses.test.ts","./tests/stream.test.ts","./tests/subscriptions.test.ts"],"version":"5.8.3"}