@atproto/xrpc-server 0.4.4-next.0 → 0.4.4

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 (74) hide show
  1. package/CHANGELOG.md +4 -6
  2. package/babel.config.js +1 -0
  3. package/build.js +14 -0
  4. package/dist/auth.d.ts +1 -2
  5. package/dist/index.d.ts +0 -1
  6. package/dist/index.js +53682 -25
  7. package/dist/index.js.map +7 -1
  8. package/dist/logger.d.ts +0 -1
  9. package/dist/rate-limiter.d.ts +0 -1
  10. package/dist/server.d.ts +4 -5
  11. package/dist/stream/frames.d.ts +1 -2
  12. package/dist/stream/index.d.ts +0 -1
  13. package/dist/stream/logger.d.ts +0 -1
  14. package/dist/stream/server.d.ts +0 -2
  15. package/dist/stream/stream.d.ts +0 -1
  16. package/dist/stream/subscription.d.ts +0 -2
  17. package/dist/stream/types.d.ts +0 -1
  18. package/dist/stream/websocket-keepalive.d.ts +0 -2
  19. package/dist/types.d.ts +0 -2
  20. package/dist/util.d.ts +0 -1
  21. package/jest.config.js +3 -4
  22. package/package.json +11 -10
  23. package/src/auth.ts +1 -1
  24. package/src/server.ts +11 -11
  25. package/src/stream/frames.ts +1 -1
  26. package/src/stream/websocket-keepalive.ts +1 -2
  27. package/tests/bodies.test.ts +4 -4
  28. package/tests/errors.test.ts +1 -1
  29. package/tsconfig.build.json +2 -6
  30. package/tsconfig.json +11 -3
  31. package/dist/auth.d.ts.map +0 -1
  32. package/dist/auth.js +0 -124
  33. package/dist/auth.js.map +0 -1
  34. package/dist/index.d.ts.map +0 -1
  35. package/dist/logger.d.ts.map +0 -1
  36. package/dist/logger.js +0 -7
  37. package/dist/logger.js.map +0 -1
  38. package/dist/rate-limiter.d.ts.map +0 -1
  39. package/dist/rate-limiter.js +0 -166
  40. package/dist/rate-limiter.js.map +0 -1
  41. package/dist/server.d.ts.map +0 -1
  42. package/dist/server.js +0 -472
  43. package/dist/server.js.map +0 -1
  44. package/dist/stream/frames.d.ts.map +0 -1
  45. package/dist/stream/frames.js +0 -141
  46. package/dist/stream/frames.js.map +0 -1
  47. package/dist/stream/index.d.ts.map +0 -1
  48. package/dist/stream/index.js +0 -22
  49. package/dist/stream/index.js.map +0 -1
  50. package/dist/stream/logger.d.ts.map +0 -1
  51. package/dist/stream/logger.js +0 -7
  52. package/dist/stream/logger.js.map +0 -1
  53. package/dist/stream/server.d.ts.map +0 -1
  54. package/dist/stream/server.js +0 -70
  55. package/dist/stream/server.js.map +0 -1
  56. package/dist/stream/stream.d.ts.map +0 -1
  57. package/dist/stream/stream.js +0 -44
  58. package/dist/stream/stream.js.map +0 -1
  59. package/dist/stream/subscription.d.ts.map +0 -1
  60. package/dist/stream/subscription.js +0 -80
  61. package/dist/stream/subscription.js.map +0 -1
  62. package/dist/stream/types.d.ts.map +0 -1
  63. package/dist/stream/types.js +0 -47
  64. package/dist/stream/types.js.map +0 -1
  65. package/dist/stream/websocket-keepalive.d.ts.map +0 -1
  66. package/dist/stream/websocket-keepalive.js +0 -160
  67. package/dist/stream/websocket-keepalive.js.map +0 -1
  68. package/dist/types.d.ts.map +0 -1
  69. package/dist/types.js +0 -163
  70. package/dist/types.js.map +0 -1
  71. package/dist/util.d.ts.map +0 -1
  72. package/dist/util.js +0 -263
  73. package/dist/util.js.map +0 -1
  74. package/tsconfig.tests.json +0 -7
@@ -1,160 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebSocketKeepAlive = void 0;
4
- const common_1 = require("@atproto/common");
5
- const ws_1 = require("ws");
6
- const stream_1 = require("./stream");
7
- const types_1 = require("./types");
8
- class WebSocketKeepAlive {
9
- constructor(opts) {
10
- Object.defineProperty(this, "opts", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: opts
15
- });
16
- Object.defineProperty(this, "ws", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: null
21
- });
22
- Object.defineProperty(this, "initialSetup", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: true
27
- });
28
- Object.defineProperty(this, "reconnects", {
29
- enumerable: true,
30
- configurable: true,
31
- writable: true,
32
- value: null
33
- });
34
- }
35
- async *[Symbol.asyncIterator]() {
36
- const maxReconnectMs = 1000 * (this.opts.maxReconnectSeconds ?? 64);
37
- while (true) {
38
- if (this.reconnects !== null) {
39
- const duration = this.initialSetup
40
- ? Math.min(1000, maxReconnectMs)
41
- : backoffMs(this.reconnects++, maxReconnectMs);
42
- await (0, common_1.wait)(duration);
43
- }
44
- const url = await this.opts.getUrl();
45
- this.ws = new ws_1.WebSocket(url, this.opts);
46
- const ac = new AbortController();
47
- if (this.opts.signal) {
48
- forwardSignal(this.opts.signal, ac);
49
- }
50
- this.ws.once('open', () => {
51
- this.initialSetup = false;
52
- this.reconnects = 0;
53
- if (this.ws) {
54
- this.startHeartbeat(this.ws);
55
- }
56
- });
57
- this.ws.once('close', (code, reason) => {
58
- if (code === types_1.CloseCode.Abnormal) {
59
- // Forward into an error to distinguish from a clean close
60
- ac.abort(new AbnormalCloseError(`Abnormal ws close: ${reason.toString()}`));
61
- }
62
- });
63
- try {
64
- const wsStream = (0, stream_1.streamByteChunks)(this.ws, { signal: ac.signal });
65
- for await (const chunk of wsStream) {
66
- yield chunk;
67
- }
68
- }
69
- catch (_err) {
70
- const err = _err?.['code'] === 'ABORT_ERR' ? _err['cause'] : _err;
71
- if (err instanceof types_1.DisconnectError) {
72
- // We cleanly end the connection
73
- this.ws?.close(err.wsCode);
74
- break;
75
- }
76
- this.ws?.close(); // No-ops if already closed or closing
77
- if (isReconnectable(err)) {
78
- this.reconnects ?? (this.reconnects = 0); // Never reconnect with a null
79
- this.opts.onReconnectError?.(err, this.reconnects, this.initialSetup);
80
- continue;
81
- }
82
- else {
83
- throw err;
84
- }
85
- }
86
- break; // Other side cleanly ended stream and disconnected
87
- }
88
- }
89
- startHeartbeat(ws) {
90
- let isAlive = true;
91
- let heartbeatInterval = null;
92
- const checkAlive = () => {
93
- if (!isAlive) {
94
- return ws.terminate();
95
- }
96
- isAlive = false; // expect websocket to no longer be alive unless we receive a "pong" within the interval
97
- ws.ping();
98
- };
99
- checkAlive();
100
- heartbeatInterval = setInterval(checkAlive, this.opts.heartbeatIntervalMs ?? 10 * common_1.SECOND);
101
- ws.on('pong', () => {
102
- isAlive = true;
103
- });
104
- ws.once('close', () => {
105
- if (heartbeatInterval) {
106
- clearInterval(heartbeatInterval);
107
- heartbeatInterval = null;
108
- }
109
- });
110
- }
111
- }
112
- exports.WebSocketKeepAlive = WebSocketKeepAlive;
113
- exports.default = WebSocketKeepAlive;
114
- class AbnormalCloseError extends Error {
115
- constructor() {
116
- super(...arguments);
117
- Object.defineProperty(this, "code", {
118
- enumerable: true,
119
- configurable: true,
120
- writable: true,
121
- value: 'EWSABNORMALCLOSE'
122
- });
123
- }
124
- }
125
- function isReconnectable(err) {
126
- // Network errors are reconnectable.
127
- // AuthenticationRequired and InvalidRequest XRPCErrors are not reconnectable.
128
- // @TODO method-specific XRPCErrors may be reconnectable, need to consider. Receiving
129
- // an invalid message is not current reconnectable, but the user can decide to skip them.
130
- if (!err || typeof err['code'] !== 'string')
131
- return false;
132
- return networkErrorCodes.includes(err['code']);
133
- }
134
- const networkErrorCodes = [
135
- 'EWSABNORMALCLOSE',
136
- 'ECONNRESET',
137
- 'ECONNREFUSED',
138
- 'ECONNABORTED',
139
- 'EPIPE',
140
- 'ETIMEDOUT',
141
- 'ECANCELED',
142
- ];
143
- function backoffMs(n, maxMs) {
144
- const baseSec = Math.pow(2, n); // 1, 2, 4, ...
145
- const randSec = Math.random() - 0.5; // Random jitter between -.5 and .5 seconds
146
- const ms = 1000 * (baseSec + randSec);
147
- return Math.min(ms, maxMs);
148
- }
149
- function forwardSignal(signal, ac) {
150
- if (signal.aborted) {
151
- return ac.abort(signal.reason);
152
- }
153
- else {
154
- signal.addEventListener('abort', () => ac.abort(signal.reason), {
155
- // @ts-ignore https://github.com/DefinitelyTyped/DefinitelyTyped/pull/68625
156
- signal: ac.signal,
157
- });
158
- }
159
- }
160
- //# sourceMappingURL=websocket-keepalive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket-keepalive.js","sourceRoot":"","sources":["../../src/stream/websocket-keepalive.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,163 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
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;
7
- const http_errors_1 = require("http-errors");
8
- const zod_1 = __importDefault(require("zod"));
9
- const xrpc_1 = require("@atproto/xrpc");
10
- exports.handlerInput = zod_1.default.object({
11
- encoding: zod_1.default.string(),
12
- body: zod_1.default.any(),
13
- });
14
- exports.handlerAuth = zod_1.default.object({
15
- credentials: zod_1.default.any(),
16
- artifacts: zod_1.default.any(),
17
- });
18
- exports.handlerSuccess = zod_1.default.object({
19
- encoding: zod_1.default.string(),
20
- body: zod_1.default.any(),
21
- headers: zod_1.default.record(zod_1.default.string()).optional(),
22
- });
23
- exports.handlerPipeThrough = zod_1.default.object({
24
- encoding: zod_1.default.string(),
25
- buffer: zod_1.default.instanceof(ArrayBuffer),
26
- headers: zod_1.default.record(zod_1.default.string()).optional(),
27
- });
28
- exports.handlerError = zod_1.default.object({
29
- status: zod_1.default.number(),
30
- error: zod_1.default.string().optional(),
31
- message: zod_1.default.string().optional(),
32
- });
33
- const isShared = (opts) => {
34
- return typeof opts['name'] === 'string';
35
- };
36
- exports.isShared = isShared;
37
- class XRPCError extends Error {
38
- constructor(type, errorMessage, customErrorName) {
39
- super(errorMessage);
40
- Object.defineProperty(this, "type", {
41
- enumerable: true,
42
- configurable: true,
43
- writable: true,
44
- value: type
45
- });
46
- Object.defineProperty(this, "errorMessage", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: errorMessage
51
- });
52
- Object.defineProperty(this, "customErrorName", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: customErrorName
57
- });
58
- }
59
- get payload() {
60
- return {
61
- error: this.customErrorName ?? this.typeName,
62
- message: this.type === xrpc_1.ResponseType.InternalServerError
63
- ? this.typeStr // Do not respond with error details for 500s
64
- : this.errorMessage || this.typeStr,
65
- };
66
- }
67
- get typeName() {
68
- return xrpc_1.ResponseTypeNames[this.type];
69
- }
70
- get typeStr() {
71
- return xrpc_1.ResponseTypeStrings[this.type];
72
- }
73
- static fromError(error) {
74
- if (error instanceof XRPCError) {
75
- return error;
76
- }
77
- let resultErr;
78
- if ((0, http_errors_1.isHttpError)(error)) {
79
- resultErr = new XRPCError(error.status, error.message, error.name);
80
- }
81
- else if (isHandlerError(error)) {
82
- resultErr = new XRPCError(error.status, error.message, error.error);
83
- }
84
- else if (error instanceof Error) {
85
- resultErr = new InternalServerError(error.message);
86
- }
87
- else {
88
- resultErr = new InternalServerError('Unexpected internal server error');
89
- }
90
- resultErr.cause = error;
91
- return resultErr;
92
- }
93
- }
94
- exports.XRPCError = XRPCError;
95
- function isHandlerError(v) {
96
- return (!!v &&
97
- typeof v === 'object' &&
98
- typeof v['status'] === 'number' &&
99
- (v['error'] === undefined || typeof v['error'] === 'string') &&
100
- (v['message'] === undefined || typeof v['message'] === 'string'));
101
- }
102
- exports.isHandlerError = isHandlerError;
103
- class InvalidRequestError extends XRPCError {
104
- constructor(errorMessage, customErrorName) {
105
- super(xrpc_1.ResponseType.InvalidRequest, errorMessage, customErrorName);
106
- }
107
- }
108
- exports.InvalidRequestError = InvalidRequestError;
109
- class AuthRequiredError extends XRPCError {
110
- constructor(errorMessage, customErrorName) {
111
- super(xrpc_1.ResponseType.AuthRequired, errorMessage, customErrorName);
112
- }
113
- }
114
- exports.AuthRequiredError = AuthRequiredError;
115
- class ForbiddenError extends XRPCError {
116
- constructor(errorMessage, customErrorName) {
117
- super(xrpc_1.ResponseType.Forbidden, errorMessage, customErrorName);
118
- }
119
- }
120
- exports.ForbiddenError = ForbiddenError;
121
- class RateLimitExceededError extends XRPCError {
122
- constructor(status, errorMessage, customErrorName) {
123
- super(xrpc_1.ResponseType.RateLimitExceeded, errorMessage, customErrorName);
124
- Object.defineProperty(this, "status", {
125
- enumerable: true,
126
- configurable: true,
127
- writable: true,
128
- value: status
129
- });
130
- }
131
- }
132
- exports.RateLimitExceededError = RateLimitExceededError;
133
- class InternalServerError extends XRPCError {
134
- constructor(errorMessage, customErrorName) {
135
- super(xrpc_1.ResponseType.InternalServerError, errorMessage, customErrorName);
136
- }
137
- }
138
- exports.InternalServerError = InternalServerError;
139
- class UpstreamFailureError extends XRPCError {
140
- constructor(errorMessage, customErrorName) {
141
- super(xrpc_1.ResponseType.UpstreamFailure, errorMessage, customErrorName);
142
- }
143
- }
144
- exports.UpstreamFailureError = UpstreamFailureError;
145
- class NotEnoughResourcesError extends XRPCError {
146
- constructor(errorMessage, customErrorName) {
147
- super(xrpc_1.ResponseType.NotEnoughResources, errorMessage, customErrorName);
148
- }
149
- }
150
- exports.NotEnoughResourcesError = NotEnoughResourcesError;
151
- class UpstreamTimeoutError extends XRPCError {
152
- constructor(errorMessage, customErrorName) {
153
- super(xrpc_1.ResponseType.UpstreamTimeout, errorMessage, customErrorName);
154
- }
155
- }
156
- exports.UpstreamTimeoutError = UpstreamTimeoutError;
157
- class MethodNotImplementedError extends XRPCError {
158
- constructor(errorMessage, customErrorName) {
159
- super(xrpc_1.ResponseType.MethodNotImplemented, errorMessage, customErrorName);
160
- }
161
- }
162
- exports.MethodNotImplementedError = MethodNotImplementedError;
163
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;AAEA,6CAAyC;AACzC,8CAAqB;AACrB,wCAIsB;AAqBT,QAAA,YAAY,GAAG,aAAG,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,aAAG,CAAC,GAAG,EAAE;CAChB,CAAC,CAAA;AAGW,QAAA,WAAW,GAAG,aAAG,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,aAAG,CAAC,GAAG,EAAE;IACtB,SAAS,EAAE,aAAG,CAAC,GAAG,EAAE;CACrB,CAAC,CAAA;AAGW,QAAA,cAAc,GAAG,aAAG,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,aAAG,CAAC,GAAG,EAAE;IACf,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAA;AAGW,QAAA,kBAAkB,GAAG,aAAG,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,aAAG,CAAC,UAAU,CAAC,WAAW,CAAC;IACnC,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAA;AAGW,QAAA,YAAY,GAAG,aAAG,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,aAAG,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAA;AA8EK,MAAM,QAAQ,GAAG,CACtB,IAA0B,EACG,EAAE;IAC/B,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAA;AACzC,CAAC,CAAA;AAJY,QAAA,QAAQ,YAIpB;AA2BD,MAAa,SAAU,SAAQ,KAAK;IAClC,YACS,IAAkB,EAClB,YAAqB,EACrB,eAAwB;QAE/B,KAAK,CAAC,YAAY,CAAC,CAAA;QAJnB;;;;mBAAO,IAAI;WAAc;QACzB;;;;mBAAO,YAAY;WAAS;QAC5B;;;;mBAAO,eAAe;WAAS;IAGjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ;YAC5C,OAAO,EACL,IAAI,CAAC,IAAI,KAAK,mBAAY,CAAC,mBAAmB;gBAC5C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,6CAA6C;gBAC5D,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO;SACxC,CAAA;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,wBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,0BAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAc;QAC7B,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,SAAoB,CAAA;QACxB,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACpE,CAAC;aAAM,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACrE,CAAC;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAClC,SAAS,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,IAAI,mBAAmB,CAAC,kCAAkC,CAAC,CAAA;QACzE,CAAC;QACD,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AA5CD,8BA4CC;AAED,SAAgB,cAAc,CAAC,CAAU;IACvC,OAAO,CACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ;QAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAC5D,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CACjE,CAAA;AACH,CAAC;AARD,wCAQC;AAED,MAAa,mBAAoB,SAAQ,SAAS;IAChD,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IACnE,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,YAAY,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IACjE,CAAC;CACF;AAJD,8CAIC;AAED,MAAa,cAAe,SAAQ,SAAS;IAC3C,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IAC9D,CAAC;CACF;AAJD,wCAIC;AAED,MAAa,sBAAuB,SAAQ,SAAS;IACnD,YACS,MAAyB,EAChC,YAAqB,EACrB,eAAwB;QAExB,KAAK,CAAC,mBAAY,CAAC,iBAAiB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;QAJpE;;;;mBAAO,MAAM;WAAmB;IAKlC,CAAC;CACF;AARD,wDAQC;AAED,MAAa,mBAAoB,SAAQ,SAAS;IAChD,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,mBAAmB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IACxE,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,oBAAqB,SAAQ,SAAS;IACjD,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,eAAe,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;CACF;AAJD,oDAIC;AAED,MAAa,uBAAwB,SAAQ,SAAS;IACpD,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,kBAAkB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IACvE,CAAC;CACF;AAJD,0DAIC;AAED,MAAa,oBAAqB,SAAQ,SAAS;IACjD,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,eAAe,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;CACF;AAJD,oDAIC;AAED,MAAa,yBAA0B,SAAQ,SAAS;IACtD,YAAY,YAAqB,EAAE,eAAwB;QACzD,KAAK,CAAC,mBAAY,CAAC,oBAAoB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IACzE,CAAC;CACF;AAJD,8DAIC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,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,CA8D1B;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;AAUD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,6BAI3C;AAED,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;IAG3B,IAAI,EAAE,MAAM;IAAS,WAAW,CAAC;IAF7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,OAAO,CAAC,CAAQ;gBACL,IAAI,EAAE,MAAM,EAAS,WAAW,CAAC,oBAAQ;IAC5D,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"}
package/dist/util.js DELETED
@@ -1,263 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ServerTimer = exports.serverTimingHeader = exports.processBodyAsBytes = exports.hasBody = 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");
9
- const mime_types_1 = __importDefault(require("mime-types"));
10
- const lexicon_1 = require("@atproto/lexicon");
11
- const common_1 = require("@atproto/common");
12
- const types_1 = require("./types");
13
- function decodeQueryParams(def, params) {
14
- const decoded = {};
15
- for (const k in params) {
16
- const val = params[k];
17
- const property = def.parameters?.properties?.[k];
18
- if (property) {
19
- if (property.type === 'array') {
20
- const vals = [];
21
- decoded[k] = val
22
- ? vals
23
- .concat(val) // Cast to array
24
- .flatMap((v) => decodeQueryParam(property.items.type, v) ?? [])
25
- : undefined;
26
- }
27
- else {
28
- decoded[k] = decodeQueryParam(property.type, val);
29
- }
30
- }
31
- }
32
- return decoded;
33
- }
34
- exports.decodeQueryParams = decodeQueryParams;
35
- function decodeQueryParam(type, value) {
36
- if (!value) {
37
- return undefined;
38
- }
39
- if (type === 'string' || type === 'datetime') {
40
- return String(value);
41
- }
42
- if (type === 'float') {
43
- return Number(String(value));
44
- }
45
- else if (type === 'integer') {
46
- return parseInt(String(value), 10) || 0;
47
- }
48
- else if (type === 'boolean') {
49
- return value === 'true';
50
- }
51
- }
52
- exports.decodeQueryParam = decodeQueryParam;
53
- function getQueryParams(url = '') {
54
- const { searchParams } = new URL(url ?? '', 'http://x');
55
- const result = {};
56
- for (const key of searchParams.keys()) {
57
- result[key] = searchParams.getAll(key);
58
- if (result[key].length === 1) {
59
- result[key] = result[key][0];
60
- }
61
- }
62
- return result;
63
- }
64
- exports.getQueryParams = getQueryParams;
65
- function validateInput(nsid, def, req, opts, lexicons) {
66
- // request expectation
67
- const reqHasBody = hasBody(req);
68
- if (reqHasBody && (def.type !== 'procedure' || !def.input)) {
69
- throw new types_1.InvalidRequestError(`A request body was provided when none was expected`);
70
- }
71
- if (def.type === 'query') {
72
- return;
73
- }
74
- if (!reqHasBody && def.input) {
75
- throw new types_1.InvalidRequestError(`A request body is expected but none was provided`);
76
- }
77
- // mimetype
78
- const inputEncoding = normalizeMime(req.headers['content-type'] || '');
79
- if (def.input?.encoding &&
80
- (!inputEncoding || !isValidEncoding(def.input?.encoding, inputEncoding))) {
81
- if (!inputEncoding) {
82
- throw new types_1.InvalidRequestError(`Request encoding (Content-Type) required but not provided`);
83
- }
84
- else {
85
- throw new types_1.InvalidRequestError(`Wrong request encoding (Content-Type): ${inputEncoding}`);
86
- }
87
- }
88
- if (!inputEncoding) {
89
- // no input body
90
- return undefined;
91
- }
92
- // if input schema, validate
93
- if (def.input?.schema) {
94
- try {
95
- const lexBody = req.body ? (0, lexicon_1.jsonToLex)(req.body) : req.body;
96
- req.body = lexicons.assertValidXrpcInput(nsid, lexBody);
97
- }
98
- catch (e) {
99
- throw new types_1.InvalidRequestError(e instanceof Error ? e.message : String(e));
100
- }
101
- }
102
- // if middleware already got the body, we pass that along as input
103
- // otherwise, we pass along a decoded readable stream
104
- let body;
105
- if (req.readableEnded) {
106
- body = req.body;
107
- }
108
- else {
109
- body = decodeBodyStream(req, opts.blobLimit);
110
- }
111
- return {
112
- encoding: inputEncoding,
113
- body,
114
- };
115
- }
116
- exports.validateInput = validateInput;
117
- function validateOutput(nsid, def, output, lexicons) {
118
- // initial validation
119
- if (output) {
120
- types_1.handlerSuccess.parse(output);
121
- }
122
- // response expectation
123
- if (output?.body && !def.output) {
124
- throw new types_1.InternalServerError(`A response body was provided when none was expected`);
125
- }
126
- if (!output?.body && def.output) {
127
- throw new types_1.InternalServerError(`A response body is expected but none was provided`);
128
- }
129
- // mimetype
130
- if (def.output?.encoding &&
131
- (!output?.encoding ||
132
- !isValidEncoding(def.output?.encoding, output?.encoding))) {
133
- throw new types_1.InternalServerError(`Invalid response encoding: ${output?.encoding}`);
134
- }
135
- // output schema
136
- if (def.output?.schema) {
137
- try {
138
- const result = lexicons.assertValidXrpcOutput(nsid, output?.body);
139
- if (output) {
140
- output.body = result;
141
- }
142
- }
143
- catch (e) {
144
- throw new types_1.InternalServerError(e instanceof Error ? e.message : String(e));
145
- }
146
- }
147
- return output;
148
- }
149
- exports.validateOutput = validateOutput;
150
- function normalizeMime(v) {
151
- if (!v)
152
- return false;
153
- const fullType = mime_types_1.default.contentType(v);
154
- if (!fullType)
155
- return false;
156
- const shortType = fullType.split(';')[0];
157
- if (!shortType)
158
- return false;
159
- return shortType;
160
- }
161
- exports.normalizeMime = normalizeMime;
162
- function isValidEncoding(possibleStr, value) {
163
- const possible = possibleStr.split(',').map((v) => v.trim());
164
- const normalized = normalizeMime(value);
165
- if (!normalized)
166
- return false;
167
- if (possible.includes('*/*'))
168
- return true;
169
- return possible.includes(normalized);
170
- }
171
- function hasBody(req) {
172
- const contentLength = req.headers['content-length'];
173
- const transferEncoding = req.headers['transfer-encoding'];
174
- return (contentLength && parseInt(contentLength, 10) > 0) || transferEncoding;
175
- }
176
- exports.hasBody = hasBody;
177
- function processBodyAsBytes(req) {
178
- return new Promise((resolve) => {
179
- const chunks = [];
180
- req.on('data', (chunk) => chunks.push(chunk));
181
- req.on('end', () => resolve(new Uint8Array(Buffer.concat(chunks))));
182
- });
183
- }
184
- exports.processBodyAsBytes = processBodyAsBytes;
185
- function decodeBodyStream(req, maxSize) {
186
- let stream = req;
187
- const contentEncoding = req.headers['content-encoding'];
188
- const contentLength = req.headers['content-length'];
189
- if (maxSize !== undefined &&
190
- contentLength &&
191
- parseInt(contentLength, 10) > maxSize) {
192
- throw new types_1.XRPCError(413, 'request entity too large');
193
- }
194
- let decoder;
195
- if (contentEncoding === 'gzip') {
196
- decoder = (0, zlib_1.createGunzip)();
197
- }
198
- else if (contentEncoding === 'deflate') {
199
- decoder = (0, zlib_1.createDeflate)();
200
- }
201
- if (decoder) {
202
- (0, common_1.forwardStreamErrors)(stream, decoder);
203
- stream = stream.pipe(decoder);
204
- }
205
- if (maxSize !== undefined) {
206
- const maxSizeChecker = new common_1.MaxSizeChecker(maxSize, () => new types_1.XRPCError(413, 'request entity too large'));
207
- (0, common_1.forwardStreamErrors)(stream, maxSizeChecker);
208
- stream = stream.pipe(maxSizeChecker);
209
- }
210
- return stream;
211
- }
212
- function serverTimingHeader(timings) {
213
- return timings
214
- .map((timing) => {
215
- let header = timing.name;
216
- if (timing.duration)
217
- header += `;dur=${timing.duration}`;
218
- if (timing.description)
219
- header += `;desc="${timing.description}"`;
220
- return header;
221
- })
222
- .join(', ');
223
- }
224
- exports.serverTimingHeader = serverTimingHeader;
225
- class ServerTimer {
226
- constructor(name, description) {
227
- Object.defineProperty(this, "name", {
228
- enumerable: true,
229
- configurable: true,
230
- writable: true,
231
- value: name
232
- });
233
- Object.defineProperty(this, "description", {
234
- enumerable: true,
235
- configurable: true,
236
- writable: true,
237
- value: description
238
- });
239
- Object.defineProperty(this, "duration", {
240
- enumerable: true,
241
- configurable: true,
242
- writable: true,
243
- value: void 0
244
- });
245
- Object.defineProperty(this, "startMs", {
246
- enumerable: true,
247
- configurable: true,
248
- writable: true,
249
- value: void 0
250
- });
251
- }
252
- start() {
253
- this.startMs = Date.now();
254
- return this;
255
- }
256
- stop() {
257
- (0, assert_1.default)(this.startMs, "timer hasn't been started");
258
- this.duration = Date.now() - this.startMs;
259
- return this;
260
- }
261
- }
262
- exports.ServerTimer = ServerTimer;
263
- //# sourceMappingURL=util.js.map
package/dist/util.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- {
2
- "extends": "../../tsconfig/tests.json",
3
- "compilerOptions": {
4
- "rootDir": "."
5
- },
6
- "include": ["./tests"]
7
- }