@atproto/xrpc-server 0.8.0 → 0.9.1
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 +34 -0
- package/dist/auth.js +11 -11
- package/dist/auth.js.map +1 -1
- package/dist/errors.d.ts +67 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +202 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/rate-limiter.d.ts +69 -32
- package/dist/rate-limiter.d.ts.map +1 -1
- package/dist/rate-limiter.js +58 -41
- package/dist/rate-limiter.js.map +1 -1
- package/dist/server.d.ts +19 -14
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +151 -137
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +80 -178
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -226
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +9 -8
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +148 -108
- package/dist/util.js.map +1 -1
- package/package.json +4 -3
- package/src/auth.ts +1 -1
- package/src/errors.ts +293 -0
- package/src/index.ts +9 -3
- package/src/rate-limiter.ts +188 -96
- package/src/server.ts +198 -154
- package/src/types.ts +144 -439
- package/src/util.ts +176 -125
- package/tests/auth.test.ts +2 -2
- package/tests/bodies.test.ts +18 -27
- package/tests/errors.test.ts +1 -1
- package/tests/ipld.test.ts +15 -14
- package/tests/parameters.test.ts +4 -7
- package/tests/procedures.test.ts +22 -34
- package/tests/queries.test.ts +9 -12
- package/tests/rate-limiter.test.ts +7 -7
- package/tests/responses.test.ts +12 -15
- package/tsconfig.build.tsbuildinfo +1 -1
package/dist/util.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { IncomingMessage, OutgoingMessage } from 'node:http';
|
|
2
|
-
import
|
|
2
|
+
import { Request, Response } from 'express';
|
|
3
3
|
import { LexXrpcProcedure, LexXrpcQuery, LexXrpcSubscription, Lexicons } from '@atproto/lexicon';
|
|
4
|
-
import {
|
|
4
|
+
import { Awaitable, HandlerSuccess, Input, Params, RouteOptions, UndecodedParams } from './types';
|
|
5
5
|
export declare const asArray: <T>(arr: T | T[]) => T[];
|
|
6
6
|
export declare function setHeaders(res: OutgoingMessage, headers?: Record<string, string | number>): void;
|
|
7
7
|
export declare function decodeQueryParams(def: LexXrpcProcedure | LexXrpcQuery | LexXrpcSubscription, params: UndecodedParams): Params;
|
|
8
8
|
export declare function decodeQueryParam(type: string, value: unknown): string | number | boolean | undefined;
|
|
9
|
-
export
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function
|
|
9
|
+
export type QueryParams = Record<string, undefined | string | string[]>;
|
|
10
|
+
export declare function getQueryParams(url?: string): QueryParams;
|
|
11
|
+
export declare function createInputVerifier(nsid: string, def: LexXrpcProcedure | LexXrpcQuery, options: RouteOptions, lexicons: Lexicons): (req: Request, res: Response) => Awaitable<Input>;
|
|
12
|
+
export declare function validateOutput(nsid: string, def: LexXrpcProcedure | LexXrpcQuery, output: HandlerSuccess | void, lexicons: Lexicons): void;
|
|
13
|
+
export declare function parseReqEncoding(req: IncomingMessage): string;
|
|
14
14
|
export declare function serverTimingHeader(timings: ServerTiming[]): string;
|
|
15
15
|
export declare class ServerTimer implements ServerTiming {
|
|
16
16
|
name: string;
|
|
@@ -26,9 +26,10 @@ export interface ServerTiming {
|
|
|
26
26
|
duration?: number;
|
|
27
27
|
description?: string;
|
|
28
28
|
}
|
|
29
|
-
export declare const parseReqNsid: (req:
|
|
29
|
+
export declare const parseReqNsid: (req: Request | IncomingMessage) => string;
|
|
30
30
|
/**
|
|
31
31
|
* Validates and extracts the nsid from an xrpc path
|
|
32
32
|
*/
|
|
33
33
|
export declare const parseUrlNsid: (url: string) => string;
|
|
34
|
+
export declare const extractUrlNsid: (url: string) => string | undefined;
|
|
34
35
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE5D,OAAO,OAAO,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAc,MAAM,SAAS,CAAA;AAGvD,OAAO,EAEL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EAET,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,SAAS,EACT,cAAc,EACd,KAAK,EACL,MAAM,EACN,YAAY,EACZ,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EACT,CAAA;AAElC,wBAAgB,UAAU,CACxB,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,QAO1C;AAED,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,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AACvE,wBAAgB,cAAc,CAAC,GAAG,SAAK,GAAG,WAAW,CAwBpD;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,gBAAgB,GAAG,YAAY,EACpC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,GACjB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,SAAS,CAAC,KAAK,CAAC,CA6DnD;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,gBAAgB,GAAG,YAAY,EACpC,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAyCN;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAM7D;AAgHD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,UASzD;AAED,qBAAa,WAAY,YAAW,YAAY;IAIrC,IAAI,EAAE,MAAM;IACZ,WAAW,CAAC,EAAE,MAAM;IAJtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,OAAO,CAAC,CAAQ;gBAEf,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,YAAA;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,GAAI,KAAK,OAAO,GAAG,eAAe,WACY,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAI1C,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SA4DrD,CAAA"}
|
package/dist/util.js
CHANGED
|
@@ -3,22 +3,23 @@ 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.parseUrlNsid = exports.parseReqNsid = exports.ServerTimer = exports.asArray = void 0;
|
|
6
|
+
exports.extractUrlNsid = exports.parseUrlNsid = exports.parseReqNsid = exports.ServerTimer = exports.asArray = void 0;
|
|
7
7
|
exports.setHeaders = setHeaders;
|
|
8
8
|
exports.decodeQueryParams = decodeQueryParams;
|
|
9
9
|
exports.decodeQueryParam = decodeQueryParam;
|
|
10
10
|
exports.getQueryParams = getQueryParams;
|
|
11
|
-
exports.
|
|
11
|
+
exports.createInputVerifier = createInputVerifier;
|
|
12
12
|
exports.validateOutput = validateOutput;
|
|
13
|
-
exports.
|
|
14
|
-
exports.processBodyAsBytes = processBodyAsBytes;
|
|
13
|
+
exports.parseReqEncoding = parseReqEncoding;
|
|
15
14
|
exports.serverTimingHeader = serverTimingHeader;
|
|
16
15
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
17
16
|
const node_stream_1 = require("node:stream");
|
|
18
|
-
const
|
|
17
|
+
const express_1 = require("express");
|
|
18
|
+
const mime_types_1 = require("mime-types");
|
|
19
19
|
const common_1 = require("@atproto/common");
|
|
20
20
|
const lexicon_1 = require("@atproto/lexicon");
|
|
21
21
|
const xrpc_1 = require("@atproto/xrpc");
|
|
22
|
+
const errors_1 = require("./errors");
|
|
22
23
|
const types_1 = require("./types");
|
|
23
24
|
const asArray = (arr) => Array.isArray(arr) ? arr : [arr];
|
|
24
25
|
exports.asArray = asArray;
|
|
@@ -69,117 +70,133 @@ function decodeQueryParam(type, value) {
|
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
function getQueryParams(url = '') {
|
|
72
|
-
const
|
|
73
|
-
const
|
|
73
|
+
const result = Object.create(null);
|
|
74
|
+
const queryStringIdx = url.indexOf('?');
|
|
75
|
+
if (queryStringIdx === -1)
|
|
76
|
+
return result;
|
|
77
|
+
const queryString = url.slice(queryStringIdx + 1);
|
|
78
|
+
if (queryString === '')
|
|
79
|
+
return result;
|
|
80
|
+
const searchParams = new URLSearchParams(queryString);
|
|
74
81
|
for (const key of searchParams.keys()) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
82
|
+
if (key === '__proto__') {
|
|
83
|
+
// Prevent prototype pollution
|
|
84
|
+
throw new errors_1.InvalidRequestError(`Invalid query parameter: ${key}`, 'InvalidQueryParameter');
|
|
78
85
|
}
|
|
86
|
+
const values = searchParams.getAll(key);
|
|
87
|
+
result[key] = values.length === 1 ? values[0] : values;
|
|
79
88
|
}
|
|
80
89
|
return result;
|
|
81
90
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
function createInputVerifier(nsid, def, options, lexicons) {
|
|
92
|
+
if (def.type === 'query' || !def.input) {
|
|
93
|
+
return (req) => {
|
|
94
|
+
// @NOTE We allow (and ignore) "empty" bodies
|
|
95
|
+
if (getBodyPresence(req) === 'present') {
|
|
96
|
+
throw new errors_1.InvalidRequestError(`A request body was provided when none was expected`);
|
|
97
|
+
}
|
|
98
|
+
return undefined;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Lexicon definition expects a request body
|
|
102
|
+
const { input } = def;
|
|
103
|
+
const { blobLimit } = options;
|
|
104
|
+
const allowedEncodings = parseDefEncoding(input);
|
|
105
|
+
const checkEncoding = allowedEncodings.includes(ENCODING_ANY)
|
|
106
|
+
? undefined // No need to check
|
|
107
|
+
: (encoding) => allowedEncodings.includes(encoding);
|
|
108
|
+
const bodyParser = createBodyParser(input.encoding, options);
|
|
109
|
+
return async (req, res) => {
|
|
110
|
+
if (getBodyPresence(req) === 'missing') {
|
|
111
|
+
throw new errors_1.InvalidRequestError(`A request body is expected but none was provided`);
|
|
100
112
|
}
|
|
101
|
-
|
|
102
|
-
|
|
113
|
+
const reqEncoding = parseReqEncoding(req);
|
|
114
|
+
if (checkEncoding && !checkEncoding(reqEncoding)) {
|
|
115
|
+
throw new errors_1.InvalidRequestError(`Wrong request encoding (Content-Type): ${reqEncoding}`);
|
|
103
116
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
// no input body
|
|
107
|
-
return undefined;
|
|
108
|
-
}
|
|
109
|
-
// if input schema, validate
|
|
110
|
-
if (def.input?.schema) {
|
|
111
|
-
try {
|
|
112
|
-
const lexBody = req.body ? (0, lexicon_1.jsonToLex)(req.body) : req.body;
|
|
113
|
-
req.body = lexicons.assertValidXrpcInput(nsid, lexBody);
|
|
117
|
+
if (bodyParser) {
|
|
118
|
+
await bodyParser(req, res);
|
|
114
119
|
}
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
if (input.schema) {
|
|
121
|
+
try {
|
|
122
|
+
const lexBody = req.body ? (0, lexicon_1.jsonToLex)(req.body) : req.body;
|
|
123
|
+
req.body = lexicons.assertValidXrpcInput(nsid, lexBody);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
throw new errors_1.InvalidRequestError(e instanceof Error ? e.message : String(e));
|
|
127
|
+
}
|
|
117
128
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if (req.readableEnded) {
|
|
123
|
-
body = req.body;
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
body = decodeBodyStream(req, opts.blobLimit);
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
encoding: inputEncoding,
|
|
130
|
-
body,
|
|
129
|
+
// if middleware already got the body, we pass that along as input
|
|
130
|
+
// otherwise, we pass along a decoded readable stream
|
|
131
|
+
const body = req.readableEnded ? req.body : decodeBodyStream(req, blobLimit);
|
|
132
|
+
return { encoding: reqEncoding, body };
|
|
131
133
|
};
|
|
132
134
|
}
|
|
133
135
|
function validateOutput(nsid, def, output, lexicons) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
136
|
+
if (def.output) {
|
|
137
|
+
// An output is expected
|
|
138
|
+
if (output === undefined) {
|
|
139
|
+
throw new errors_1.InternalServerError(`A response body is expected but none was provided`);
|
|
140
|
+
}
|
|
141
|
+
// Fool-proofing (should not be necessary due to type system)
|
|
142
|
+
const result = types_1.handlerSuccess.safeParse(output);
|
|
143
|
+
if (!result.success) {
|
|
144
|
+
throw new errors_1.InternalServerError(`Invalid handler output`, undefined, {
|
|
145
|
+
cause: result.error,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
// output mime
|
|
149
|
+
const { encoding } = output;
|
|
150
|
+
if (!encoding || !isValidEncoding(def.output, encoding)) {
|
|
151
|
+
throw new errors_1.InternalServerError(`Invalid response encoding: ${encoding}`);
|
|
152
|
+
}
|
|
153
|
+
// output schema
|
|
154
|
+
if (def.output.schema) {
|
|
155
|
+
try {
|
|
156
|
+
output.body = lexicons.assertValidXrpcOutput(nsid, output.body);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
throw new errors_1.InternalServerError(e instanceof Error ? e.message : String(e));
|
|
157
160
|
}
|
|
158
161
|
}
|
|
159
|
-
|
|
160
|
-
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
// Expects no output
|
|
165
|
+
if (output !== undefined) {
|
|
166
|
+
throw new errors_1.InternalServerError(`A response body was provided when none was expected`);
|
|
161
167
|
}
|
|
162
168
|
}
|
|
163
169
|
}
|
|
170
|
+
function parseReqEncoding(req) {
|
|
171
|
+
const encoding = normalizeMime(req.headers['content-type']);
|
|
172
|
+
if (encoding)
|
|
173
|
+
return encoding;
|
|
174
|
+
throw new errors_1.InvalidRequestError(`Request encoding (Content-Type) required but not provided`);
|
|
175
|
+
}
|
|
164
176
|
function normalizeMime(v) {
|
|
165
177
|
if (!v)
|
|
166
|
-
return
|
|
167
|
-
const fullType = mime_types_1.
|
|
178
|
+
return null;
|
|
179
|
+
const fullType = (0, mime_types_1.contentType)(v);
|
|
168
180
|
if (!fullType)
|
|
169
|
-
return
|
|
181
|
+
return null;
|
|
170
182
|
const shortType = fullType.split(';')[0];
|
|
171
183
|
if (!shortType)
|
|
172
|
-
return
|
|
184
|
+
return null;
|
|
173
185
|
return shortType;
|
|
174
186
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
187
|
+
const ENCODING_ANY = '*/*';
|
|
188
|
+
function parseDefEncoding({ encoding }) {
|
|
189
|
+
return encoding.split(',').map(trimString);
|
|
190
|
+
}
|
|
191
|
+
function trimString(str) {
|
|
192
|
+
return str.trim();
|
|
193
|
+
}
|
|
194
|
+
function isValidEncoding(output, encoding) {
|
|
195
|
+
const normalized = normalizeMime(encoding);
|
|
178
196
|
if (!normalized)
|
|
179
197
|
return false;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
return possible.includes(normalized);
|
|
198
|
+
const allowed = parseDefEncoding(output);
|
|
199
|
+
return allowed.includes(ENCODING_ANY) || allowed.includes(normalized);
|
|
183
200
|
}
|
|
184
201
|
function getBodyPresence(req) {
|
|
185
202
|
if (req.headers['transfer-encoding'] != null)
|
|
@@ -190,12 +207,28 @@ function getBodyPresence(req) {
|
|
|
190
207
|
return 'present';
|
|
191
208
|
return 'missing';
|
|
192
209
|
}
|
|
193
|
-
function
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
210
|
+
function createBodyParser(inputEncoding, options) {
|
|
211
|
+
if (inputEncoding === ENCODING_ANY) {
|
|
212
|
+
// When the lexicon's input encoding is */*, the handler will determine how to process it
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const { jsonLimit, textLimit } = options;
|
|
216
|
+
const jsonParser = (0, express_1.json)({ limit: jsonLimit });
|
|
217
|
+
const textParser = (0, express_1.text)({ limit: textLimit });
|
|
218
|
+
// Transform json and text parser middlewares into a single function
|
|
219
|
+
return (req, res) => {
|
|
220
|
+
return new Promise((resolve, reject) => {
|
|
221
|
+
jsonParser(req, res, (err) => {
|
|
222
|
+
if (err)
|
|
223
|
+
return reject(errors_1.XRPCError.fromError(err));
|
|
224
|
+
textParser(req, res, (err) => {
|
|
225
|
+
if (err)
|
|
226
|
+
return reject(errors_1.XRPCError.fromError(err));
|
|
227
|
+
resolve();
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
};
|
|
199
232
|
}
|
|
200
233
|
function decodeBodyStream(req, maxSize) {
|
|
201
234
|
const contentEncoding = req.headers['content-encoding'];
|
|
@@ -204,22 +237,22 @@ function decodeBodyStream(req, maxSize) {
|
|
|
204
237
|
? parseInt(contentLength, 10)
|
|
205
238
|
: undefined;
|
|
206
239
|
if (Number.isNaN(contentLengthParsed)) {
|
|
207
|
-
throw new
|
|
240
|
+
throw new errors_1.XRPCError(xrpc_1.ResponseType.InvalidRequest, 'invalid content-length');
|
|
208
241
|
}
|
|
209
242
|
if (maxSize !== undefined &&
|
|
210
243
|
contentLengthParsed !== undefined &&
|
|
211
244
|
contentLengthParsed > maxSize) {
|
|
212
|
-
throw new
|
|
245
|
+
throw new errors_1.XRPCError(xrpc_1.ResponseType.PayloadTooLarge, 'request entity too large');
|
|
213
246
|
}
|
|
214
247
|
let transforms;
|
|
215
248
|
try {
|
|
216
249
|
transforms = (0, common_1.createDecoders)(contentEncoding);
|
|
217
250
|
}
|
|
218
251
|
catch (cause) {
|
|
219
|
-
throw new
|
|
252
|
+
throw new errors_1.XRPCError(xrpc_1.ResponseType.UnsupportedMediaType, 'unsupported content-encoding', undefined, { cause });
|
|
220
253
|
}
|
|
221
254
|
if (maxSize !== undefined) {
|
|
222
|
-
const maxSizeChecker = new common_1.MaxSizeChecker(maxSize, () => new
|
|
255
|
+
const maxSizeChecker = new common_1.MaxSizeChecker(maxSize, () => new errors_1.XRPCError(xrpc_1.ResponseType.PayloadTooLarge, 'request entity too large'));
|
|
223
256
|
transforms.push(maxSizeChecker);
|
|
224
257
|
}
|
|
225
258
|
return transforms.length > 0
|
|
@@ -282,6 +315,13 @@ exports.parseReqNsid = parseReqNsid;
|
|
|
282
315
|
* Validates and extracts the nsid from an xrpc path
|
|
283
316
|
*/
|
|
284
317
|
const parseUrlNsid = (url) => {
|
|
318
|
+
const nsid = (0, exports.extractUrlNsid)(url);
|
|
319
|
+
if (nsid)
|
|
320
|
+
return nsid;
|
|
321
|
+
throw new errors_1.InvalidRequestError('invalid xrpc path');
|
|
322
|
+
};
|
|
323
|
+
exports.parseUrlNsid = parseUrlNsid;
|
|
324
|
+
const extractUrlNsid = (url) => {
|
|
285
325
|
// /!\ Hot path
|
|
286
326
|
if (
|
|
287
327
|
// Ordered by likelihood of failure
|
|
@@ -292,7 +332,7 @@ const parseUrlNsid = (url) => {
|
|
|
292
332
|
url[2] !== 'r' ||
|
|
293
333
|
url[1] !== 'x' ||
|
|
294
334
|
url[0] !== '/') {
|
|
295
|
-
|
|
335
|
+
return undefined;
|
|
296
336
|
}
|
|
297
337
|
const startOfNsid = 6;
|
|
298
338
|
let curr = startOfNsid;
|
|
@@ -308,7 +348,7 @@ const parseUrlNsid = (url) => {
|
|
|
308
348
|
}
|
|
309
349
|
else if (char === 45 /* "-" */ || char === 46 /* "." */) {
|
|
310
350
|
if (alphaNumRequired) {
|
|
311
|
-
|
|
351
|
+
return undefined;
|
|
312
352
|
}
|
|
313
353
|
alphaNumRequired = true;
|
|
314
354
|
}
|
|
@@ -317,25 +357,25 @@ const parseUrlNsid = (url) => {
|
|
|
317
357
|
if (curr === url.length - 1 || url.charCodeAt(curr + 1) === 63) {
|
|
318
358
|
break;
|
|
319
359
|
}
|
|
320
|
-
|
|
360
|
+
return undefined;
|
|
321
361
|
}
|
|
322
362
|
else if (char === 63 /* "?"" */) {
|
|
323
363
|
break;
|
|
324
364
|
}
|
|
325
365
|
else {
|
|
326
|
-
|
|
366
|
+
return undefined;
|
|
327
367
|
}
|
|
328
368
|
}
|
|
329
369
|
// last char was one of: '-', '.', '/'
|
|
330
370
|
if (alphaNumRequired) {
|
|
331
|
-
|
|
371
|
+
return undefined;
|
|
332
372
|
}
|
|
333
373
|
// A domain name consists of minimum two characters
|
|
334
374
|
if (curr - startOfNsid < 2) {
|
|
335
|
-
|
|
375
|
+
return undefined;
|
|
336
376
|
}
|
|
337
|
-
// @TODO
|
|
377
|
+
// @TODO check max length of nsid
|
|
338
378
|
return url.slice(startOfNsid, curr);
|
|
339
379
|
};
|
|
340
|
-
exports.
|
|
380
|
+
exports.extractUrlNsid = extractUrlNsid;
|
|
341
381
|
//# 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":";;;;;;AA6BA,gCASC;AAED,8CAsBC;AAED,4CAiBC;AAED,wCAUC;AAED,sCAqEC;AAED,wCA6CC;AAED,sCAOC;AAmBD,gDAMC;AAsDD,gDASC;AApTD,8DAAgC;AAEhC,6CAAwD;AAExD,4DAA6B;AAC7B,4CAAgE;AAChE,8CAMyB;AACzB,wCAA4C;AAC5C,mCAUgB;AAET,MAAM,OAAO,GAAG,CAAI,GAAY,EAAO,EAAE,CAC9C,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AADrB,QAAA,OAAO,WACc;AAElC,SAAgB,UAAU,CACxB,GAAoB,EACpB,OAAyC;IAEzC,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,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAC/B,GAA0D,EAC1D,MAAuB;IAEvB,MAAM,OAAO,GAAW,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAmB,EAAE,CAAA;gBAC/B,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;oBACd,CAAC,CAAC,IAAI;yBACD,MAAM,CAAC,GAAG,CAAC,CAAC,gBAAgB;yBAC5B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACnE,CAAC,CAAC,SAAS,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAgB,gBAAgB,CAC9B,IAAY,EACZ,KAAc;IAEd,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9B,CAAC;SAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;SAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,KAAK,KAAK,MAAM,CAAA;IACzB,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAC,GAAG,GAAG,EAAE;IACrC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,UAAU,CAAC,CAAA;IACvD,MAAM,MAAM,GAAsC,EAAE,CAAA;IACpD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,aAAa,CAC3B,IAAY,EACZ,GAAoC,EACpC,GAAoB,EACpB,IAAe,EACf,QAAkB;IAElB,sBAAsB;IAEtB,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IACzC,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,2BAAmB,CAC3B,oDAAoD,CACrD,CAAA;IACH,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAM;IACR,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,IAAI,2BAAmB,CAC3B,kDAAkD,CACnD,CAAA;IACH,CAAC;IAED,WAAW;IACX,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA;IACtE,IACE,GAAG,CAAC,KAAK,EAAE,QAAQ;QACnB,CAAC,CAAC,aAAa,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,EACxE,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,2BAAmB,CAC3B,2DAA2D,CAC5D,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,2BAAmB,CAC3B,0CAA0C,aAAa,EAAE,CAC1D,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,gBAAgB;QAChB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,4BAA4B;IAC5B,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAS,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;YACzD,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,2BAAmB,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,qDAAqD;IACrD,IAAI,IAAI,CAAA;IACR,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,aAAa;QACvB,IAAI;KACL,CAAA;AACH,CAAC;AAED,SAAgB,cAAc,CAC5B,IAAY,EACZ,GAAoC,EACpC,MAAkC,EAClC,QAAkB;IAElB,qBAAqB;IACrB,IAAI,MAAM,EAAE,CAAC;QACX,sBAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,2BAAmB,CAC3B,qDAAqD,CACtD,CAAA;IACH,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,2BAAmB,CAC3B,mDAAmD,CACpD,CAAA;IACH,CAAC;IAED,WAAW;IACX,IACE,GAAG,CAAC,MAAM,EAAE,QAAQ;QACpB,CAAC,CAAC,MAAM,EAAE,QAAQ;YAChB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,EAC3D,CAAC;QACD,MAAM,IAAI,2BAAmB,CAC3B,8BAA8B,MAAM,EAAE,QAAQ,EAAE,CACjD,CAAA;IACH,CAAC;IAED,gBAAgB;IAChB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YACjE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,GAAG,MAAM,CAAA;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,2BAAmB,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,CAAS;IACrC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACpB,MAAM,QAAQ,GAAG,oBAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IACpC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAC5B,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB,EAAE,KAAa;IACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAA;IAC7B,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AACtC,CAAC;AAID,SAAS,eAAe,CAAC,GAAoB;IAC3C,IAAI,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IAC9D,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,GAAG;QAAE,OAAO,OAAO,CAAA;IACzD,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAoB;IACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAoB,EACpB,OAA2B;IAE3B,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACvD,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAEnD,MAAM,mBAAmB,GAAG,aAAa;QACvC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,iBAAS,CAAC,mBAAY,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAA;IAC5E,CAAC;IAED,IACE,OAAO,KAAK,SAAS;QACrB,mBAAmB,KAAK,SAAS;QACjC,mBAAmB,GAAG,OAAO,EAC7B,CAAC;QACD,MAAM,IAAI,iBAAS,CACjB,mBAAY,CAAC,eAAe,EAC5B,0BAA0B,CAC3B,CAAA;IACH,CAAC;IAED,IAAI,UAAoB,CAAA;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,IAAA,uBAAc,EAAC,eAAe,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,iBAAS,CACjB,mBAAY,CAAC,oBAAoB,EACjC,8BAA8B,EAC9B,SAAS,EACT,EAAE,KAAK,EAAE,CACV,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,uBAAc,CACvC,OAAO,EACP,GAAG,EAAE,CACH,IAAI,iBAAS,CAAC,mBAAY,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAC1E,CAAA;QACD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAE,IAAA,sBAAQ,EAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAY;QACtD,CAAC,CAAC,GAAG,CAAA;AACT,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAuB;IACxD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QACxB,IAAI,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAA;QACxD,IAAI,MAAM,CAAC,WAAW;YAAE,MAAM,IAAI,UAAU,MAAM,CAAC,WAAW,GAAG,CAAA;QACjE,OAAO,MAAM,CAAA;IACf,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,MAAa,WAAW;IAGtB,YACS,IAAY,EACZ,WAAoB;QAD3B;;;;mBAAO,IAAI;WAAQ;QACnB;;;;mBAAO,WAAW;WAAS;QAJtB;;;;;WAAiB;QAChB;;;;;WAAgB;IAIrB,CAAC;IACJ,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI;QACF,IAAA,qBAAM,EAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAA;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAhBD,kCAgBC;AAQM,MAAM,YAAY,GAAG,CAAC,GAAsC,EAAE,EAAE,CACrE,IAAA,oBAAY,EAAC,aAAa,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAA;AAD1D,QAAA,YAAY,gBAC8C;AAEvE;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE;IAClD,eAAe;IAEf;IACE,mCAAmC;IACnC,GAAG,CAAC,MAAM,IAAI,CAAC;QACf,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;QACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;QACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;QACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;QACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;QACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EACd,CAAC;QACD,MAAM,IAAI,2BAAmB,CAAC,mBAAmB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,CAAA;IAErB,IAAI,IAAI,GAAG,WAAW,CAAA;IACtB,IAAI,IAAY,CAAA;IAChB,IAAI,gBAAgB,GAAG,IAAI,CAAA;IAC3B,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACjC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3B,IACE,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,MAAM;YACpC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,MAAM;YACpC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM;UAClC,CAAC;YACD,gBAAgB,GAAG,KAAK,CAAA;QAC1B,CAAC;aAAM,IAAI,IAAI,KAAK,EAAE,CAAC,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;YAC1D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,IAAI,2BAAmB,CAAC,mBAAmB,CAAC,CAAA;YACpD,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAA;QACzB,CAAC;aAAM,IAAI,IAAI,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;YACjC,wDAAwD;YACxD,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC/D,MAAK;YACP,CAAC;YACD,MAAM,IAAI,2BAAmB,CAAC,mBAAmB,CAAC,CAAA;QACpD,CAAC;aAAM,IAAI,IAAI,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;YAClC,MAAK;QACP,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,2BAAmB,CAAC,mBAAmB,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,IAAI,2BAAmB,CAAC,mBAAmB,CAAC,CAAA;IACpD,CAAC;IAED,mDAAmD;IACnD,IAAI,IAAI,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,2BAAmB,CAAC,mBAAmB,CAAC,CAAA;IACpD,CAAC;IAED,yBAAyB;IAEzB,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AACrC,CAAC,CAAA;AA5DY,QAAA,YAAY,gBA4DxB"}
|
|
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.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "atproto HTTP API (XRPC) server library",
|
|
6
6
|
"keywords": [
|
|
@@ -29,13 +29,14 @@
|
|
|
29
29
|
"zod": "^3.23.8",
|
|
30
30
|
"@atproto/common": "^0.4.11",
|
|
31
31
|
"@atproto/crypto": "^0.4.4",
|
|
32
|
-
"@atproto/lexicon": "^0.4.
|
|
33
|
-
"@atproto/xrpc": "^0.7.
|
|
32
|
+
"@atproto/lexicon": "^0.4.12",
|
|
33
|
+
"@atproto/xrpc": "^0.7.1"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/express": "^4.17.13",
|
|
37
37
|
"@types/express-serve-static-core": "^4.17.36",
|
|
38
38
|
"@types/http-errors": "^2.0.4",
|
|
39
|
+
"@types/mime-types": "^2.1.4",
|
|
39
40
|
"@types/ws": "^8.5.4",
|
|
40
41
|
"get-port": "^6.1.2",
|
|
41
42
|
"jest": "^28.1.2",
|
package/src/auth.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as ui8 from 'uint8arrays'
|
|
|
2
2
|
import * as common from '@atproto/common'
|
|
3
3
|
import { MINUTE } from '@atproto/common'
|
|
4
4
|
import * as crypto from '@atproto/crypto'
|
|
5
|
-
import { AuthRequiredError } from './
|
|
5
|
+
import { AuthRequiredError } from './errors'
|
|
6
6
|
|
|
7
7
|
type ServiceJwtParams = {
|
|
8
8
|
iss: string
|