@atproto/xrpc 0.5.0 → 0.5.1-rc.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.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,11 +1,14 @@
1
1
  import { LexXrpcProcedure, LexXrpcQuery } from '@atproto/lexicon';
2
- import { CallOptions, Headers, QueryParams, ResponseType } from './types';
2
+ import { CallOptions, ErrorResponseBody, Gettable, QueryParams } from './types';
3
+ export declare function isErrorResponseBody(v: unknown): v is ErrorResponseBody;
3
4
  export declare function getMethodSchemaHTTPMethod(schema: LexXrpcProcedure | LexXrpcQuery): "post" | "get";
4
5
  export declare function constructMethodCallUri(nsid: string, schema: LexXrpcProcedure | LexXrpcQuery, serviceUri: URL, params?: QueryParams): string;
6
+ export declare function constructMethodCallUrl(nsid: string, schema: LexXrpcProcedure | LexXrpcQuery, params?: QueryParams): string;
5
7
  export declare function encodeQueryParam(type: 'string' | 'float' | 'integer' | 'boolean' | 'datetime' | 'array' | 'unknown', value: any): string;
6
- export declare function normalizeHeaders(headers: Headers): Headers;
7
- export declare function constructMethodCallHeaders(schema: LexXrpcProcedure | LexXrpcQuery, data?: any, opts?: CallOptions): Headers;
8
- export declare function encodeMethodCallBody(headers: Headers, data?: any): ArrayBuffer | undefined;
9
- export declare function httpResponseCodeToEnum(status: number): ResponseType;
8
+ export declare function constructMethodCallHeaders(schema: LexXrpcProcedure | LexXrpcQuery, data?: unknown, opts?: CallOptions): Headers;
9
+ export declare function combineHeaders(headersInit: undefined | HeadersInit, defaultHeaders?: Iterable<[string, undefined | Gettable<null | string>]>): undefined | HeadersInit;
10
+ export declare function isBodyInit(value: unknown): value is BodyInit;
11
+ export declare function isIterable(value: unknown): value is Iterable<unknown> | AsyncIterable<unknown>;
12
+ export declare function encodeMethodCallBody(headers: Headers, data?: unknown): BodyInit | undefined;
10
13
  export declare function httpResponseBodyParse(mimeType: string | null, data: ArrayBuffer | undefined): any;
11
14
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,YAAY,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EAEb,MAAM,SAAS,CAAA;AAEhB,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,GAAG,YAAY,kBAMxC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,GAAG,YAAY,EACvC,UAAU,EAAE,GAAG,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CA4BR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EACA,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,SAAS,EACb,KAAK,EAAE,GAAG,GACT,MAAM,CAiBR;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAO1D;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,gBAAgB,GAAG,YAAY,EACvC,IAAI,CAAC,EAAE,GAAG,EACV,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAaT;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,GAAG,GACT,WAAW,GAAG,SAAS,CAczB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAgBnE;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,EAAE,WAAW,GAAG,SAAS,GAC5B,GAAG,CA4BL"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,YAAY,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,WAAW,EAEX,iBAAiB,EACjB,QAAQ,EACR,WAAW,EAGZ,MAAM,SAAS,CAAA;AAYhB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,iBAAiB,CAEtE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,GAAG,YAAY,kBAMxC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,GAAG,YAAY,EACvC,UAAU,EAAE,GAAG,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CAGR;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,GAAG,YAAY,EACvC,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CA6BR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EACA,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,SAAS,EACb,KAAK,EAAE,GAAG,GACT,MAAM,CAiBR;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,gBAAgB,GAAG,YAAY,EACvC,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAoET;AAED,wBAAgB,cAAc,CAC5B,WAAW,EAAE,SAAS,GAAG,WAAW,EACpC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GACvE,SAAS,GAAG,WAAW,CAuBzB;AAmBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAgB5D;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAMrD;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,OAAO,GACb,QAAQ,GAAG,SAAS,CAqEtB;AAwBD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,EAAE,WAAW,GAAG,SAAS,GAC5B,GAAG,CAwBL"}
package/dist/util.js CHANGED
@@ -1,8 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.httpResponseBodyParse = exports.httpResponseCodeToEnum = exports.encodeMethodCallBody = exports.constructMethodCallHeaders = exports.normalizeHeaders = exports.encodeQueryParam = exports.constructMethodCallUri = exports.getMethodSchemaHTTPMethod = void 0;
3
+ exports.httpResponseBodyParse = exports.encodeMethodCallBody = exports.isIterable = exports.isBodyInit = exports.combineHeaders = exports.constructMethodCallHeaders = exports.encodeQueryParam = exports.constructMethodCallUrl = exports.constructMethodCallUri = exports.getMethodSchemaHTTPMethod = exports.isErrorResponseBody = void 0;
4
4
  const lexicon_1 = require("@atproto/lexicon");
5
5
  const types_1 = require("./types");
6
+ const ReadableStream = globalThis.ReadableStream ||
7
+ class {
8
+ constructor() {
9
+ // This anonymous class will never pass any "instanceof" check and cannot
10
+ // be instantiated.
11
+ throw new Error('ReadableStream is not supported in this environment');
12
+ }
13
+ };
14
+ function isErrorResponseBody(v) {
15
+ return types_1.errorResponseBody.safeParse(v).success;
16
+ }
17
+ exports.isErrorResponseBody = isErrorResponseBody;
6
18
  function getMethodSchemaHTTPMethod(schema) {
7
19
  if (schema.type === 'procedure') {
8
20
  return 'post';
@@ -11,31 +23,40 @@ function getMethodSchemaHTTPMethod(schema) {
11
23
  }
12
24
  exports.getMethodSchemaHTTPMethod = getMethodSchemaHTTPMethod;
13
25
  function constructMethodCallUri(nsid, schema, serviceUri, params) {
14
- const uri = new URL(serviceUri);
15
- uri.pathname = `/xrpc/${nsid}`;
16
- // given parameters
17
- if (params) {
18
- for (const [key, value] of Object.entries(params)) {
19
- const paramSchema = schema.parameters?.properties?.[key];
20
- if (!paramSchema) {
21
- throw new Error(`Invalid query parameter: ${key}`);
22
- }
23
- if (value !== undefined) {
24
- if (paramSchema.type === 'array') {
25
- const vals = [];
26
- vals.concat(value).forEach((val) => {
27
- uri.searchParams.append(key, encodeQueryParam(paramSchema.items.type, val));
28
- });
29
- }
30
- else {
31
- uri.searchParams.set(key, encodeQueryParam(paramSchema.type, value));
26
+ const uri = new URL(constructMethodCallUrl(nsid, schema, params), serviceUri);
27
+ return uri.toString();
28
+ }
29
+ exports.constructMethodCallUri = constructMethodCallUri;
30
+ function constructMethodCallUrl(nsid, schema, params) {
31
+ const pathname = `/xrpc/${encodeURIComponent(nsid)}`;
32
+ if (!params)
33
+ return pathname;
34
+ const searchParams = [];
35
+ for (const [key, value] of Object.entries(params)) {
36
+ const paramSchema = schema.parameters?.properties?.[key];
37
+ if (!paramSchema) {
38
+ throw new Error(`Invalid query parameter: ${key}`);
39
+ }
40
+ if (value !== undefined) {
41
+ if (paramSchema.type === 'array') {
42
+ const values = Array.isArray(value) ? value : [value];
43
+ for (const val of values) {
44
+ searchParams.push([
45
+ key,
46
+ encodeQueryParam(paramSchema.items.type, val),
47
+ ]);
32
48
  }
33
49
  }
50
+ else {
51
+ searchParams.push([key, encodeQueryParam(paramSchema.type, value)]);
52
+ }
34
53
  }
35
54
  }
36
- return uri.toString();
55
+ if (!searchParams.length)
56
+ return pathname;
57
+ return `${pathname}?${new URLSearchParams(searchParams).toString()}`;
37
58
  }
38
- exports.constructMethodCallUri = constructMethodCallUri;
59
+ exports.constructMethodCallUrl = constructMethodCallUrl;
39
60
  function encodeQueryParam(type, value) {
40
61
  if (type === 'string' || type === 'unknown') {
41
62
  return String(value);
@@ -58,92 +79,219 @@ function encodeQueryParam(type, value) {
58
79
  throw new Error(`Unsupported query param type: ${type}`);
59
80
  }
60
81
  exports.encodeQueryParam = encodeQueryParam;
61
- function normalizeHeaders(headers) {
62
- const normalized = {};
63
- for (const [header, value] of Object.entries(headers)) {
64
- normalized[header.toLowerCase()] = value;
65
- }
66
- return normalized;
67
- }
68
- exports.normalizeHeaders = normalizeHeaders;
69
82
  function constructMethodCallHeaders(schema, data, opts) {
70
- const headers = opts?.headers || {};
83
+ // Not using `new Headers(opts?.headers)` to avoid duplicating headers values
84
+ // due to inconsistent casing in headers name. In case of multiple headers
85
+ // with the same name (but using a different case), the last one will be used.
86
+ // new Headers({ 'content-type': 'foo', 'Content-Type': 'bar' }).get('content-type')
87
+ // => 'foo, bar'
88
+ const headers = new Headers();
89
+ if (opts?.headers) {
90
+ for (const name in opts.headers) {
91
+ if (headers.has(name)) {
92
+ throw new TypeError(`Duplicate header: ${name}`);
93
+ }
94
+ const value = opts.headers[name];
95
+ if (value != null) {
96
+ headers.set(name, value);
97
+ }
98
+ }
99
+ }
71
100
  if (schema.type === 'procedure') {
72
101
  if (opts?.encoding) {
73
- headers['Content-Type'] = opts.encoding;
102
+ headers.set('content-type', opts.encoding);
74
103
  }
75
- if (data && typeof data === 'object') {
76
- if (!headers['Content-Type']) {
77
- headers['Content-Type'] = 'application/json';
104
+ else if (!headers.has('content-type') && typeof data !== 'undefined') {
105
+ // Special handling of BodyInit types before falling back to JSON encoding
106
+ if (data instanceof ArrayBuffer ||
107
+ data instanceof ReadableStream ||
108
+ ArrayBuffer.isView(data)) {
109
+ headers.set('content-type', 'application/octet-stream');
110
+ }
111
+ else if (data instanceof FormData) {
112
+ // Note: The multipart form data boundary is missing from the header
113
+ // we set here, making that header invalid. This special case will be
114
+ // handled in encodeMethodCallBody()
115
+ headers.set('content-type', 'multipart/form-data');
116
+ }
117
+ else if (data instanceof URLSearchParams) {
118
+ headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
119
+ }
120
+ else if (isBlobLike(data)) {
121
+ headers.set('content-type', data.type || 'application/octet-stream');
122
+ }
123
+ else if (typeof data === 'string') {
124
+ headers.set('content-type', 'text/plain;charset=UTF-8');
125
+ }
126
+ // At this point, data is not a valid BodyInit type.
127
+ else if (isIterable(data)) {
128
+ headers.set('content-type', 'application/octet-stream');
129
+ }
130
+ else if (typeof data === 'boolean' ||
131
+ typeof data === 'number' ||
132
+ typeof data === 'string' ||
133
+ typeof data === 'object' // covers "null"
134
+ ) {
135
+ headers.set('content-type', 'application/json');
136
+ }
137
+ else {
138
+ // symbol, function, bigint
139
+ throw new types_1.XRPCError(types_1.ResponseType.InvalidRequest, `Unsupported data type: ${typeof data}`);
78
140
  }
79
141
  }
80
142
  }
81
143
  return headers;
82
144
  }
83
145
  exports.constructMethodCallHeaders = constructMethodCallHeaders;
84
- function encodeMethodCallBody(headers, data) {
85
- if (!headers['content-type'] || typeof data === 'undefined') {
86
- return undefined;
146
+ function combineHeaders(headersInit, defaultHeaders) {
147
+ if (!defaultHeaders)
148
+ return headersInit;
149
+ let headers = undefined;
150
+ for (const [name, definition] of defaultHeaders) {
151
+ // Ignore undefined values (allowed for convenience when using
152
+ // Object.entries).
153
+ if (definition === undefined)
154
+ continue;
155
+ // Lazy initialization of the headers object
156
+ headers ?? (headers = new Headers(headersInit));
157
+ if (headers.has(name))
158
+ continue;
159
+ const value = typeof definition === 'function' ? definition() : definition;
160
+ if (typeof value === 'string')
161
+ headers.set(name, value);
162
+ else if (value === null)
163
+ headers.delete(name);
164
+ else
165
+ throw new TypeError(`Invalid "${name}" header value: ${typeof value}`);
87
166
  }
88
- if (data instanceof ArrayBuffer) {
89
- return data;
90
- }
91
- if (headers['content-type'].startsWith('text/')) {
92
- return new TextEncoder().encode(data.toString());
167
+ return headers ?? headersInit;
168
+ }
169
+ exports.combineHeaders = combineHeaders;
170
+ function isBlobLike(value) {
171
+ if (value == null)
172
+ return false;
173
+ if (typeof value !== 'object')
174
+ return false;
175
+ if (typeof Blob === 'function' && value instanceof Blob)
176
+ return true;
177
+ // Support for Blobs provided by libraries that don't use the native Blob
178
+ // (e.g. fetch-blob from node-fetch).
179
+ // https://github.com/node-fetch/fetch-blob/blob/a1a182e5978811407bef4ea1632b517567dda01f/index.js#L233-L244
180
+ const tag = value[Symbol.toStringTag];
181
+ if (tag === 'Blob' || tag === 'File') {
182
+ return 'stream' in value && typeof value.stream === 'function';
93
183
  }
94
- if (headers['content-type'].startsWith('application/json')) {
95
- return new TextEncoder().encode((0, lexicon_1.stringifyLex)(data));
184
+ return false;
185
+ }
186
+ function isBodyInit(value) {
187
+ switch (typeof value) {
188
+ case 'string':
189
+ return true;
190
+ case 'object':
191
+ return (value instanceof ArrayBuffer ||
192
+ value instanceof FormData ||
193
+ value instanceof URLSearchParams ||
194
+ value instanceof ReadableStream ||
195
+ ArrayBuffer.isView(value) ||
196
+ isBlobLike(value));
197
+ default:
198
+ return false;
96
199
  }
97
- return data;
98
200
  }
99
- exports.encodeMethodCallBody = encodeMethodCallBody;
100
- function httpResponseCodeToEnum(status) {
101
- let resCode;
102
- if (status in types_1.ResponseType) {
103
- resCode = status;
201
+ exports.isBodyInit = isBodyInit;
202
+ function isIterable(value) {
203
+ return (value != null &&
204
+ typeof value === 'object' &&
205
+ (Symbol.iterator in value || Symbol.asyncIterator in value));
206
+ }
207
+ exports.isIterable = isIterable;
208
+ function encodeMethodCallBody(headers, data) {
209
+ // Silently ignore the body if there is no content-type header.
210
+ const contentType = headers.get('content-type');
211
+ if (!contentType) {
212
+ return undefined;
104
213
  }
105
- else if (status >= 100 && status < 200) {
106
- resCode = types_1.ResponseType.XRPCNotSupported;
214
+ if (typeof data === 'undefined') {
215
+ // This error would be returned by the server, but we can catch it earlier
216
+ // to avoid un-necessary requests. Note that a content-length of 0 does not
217
+ // necessary mean that the body is "empty" (e.g. an empty txt file).
218
+ throw new types_1.XRPCError(types_1.ResponseType.InvalidRequest, `A request body is expected but none was provided`);
107
219
  }
108
- else if (status >= 200 && status < 300) {
109
- resCode = types_1.ResponseType.Success;
220
+ if (isBodyInit(data)) {
221
+ if (data instanceof FormData && contentType === 'multipart/form-data') {
222
+ // fetch() will encode FormData payload itself, but it won't override the
223
+ // content-type header if already present. This would cause the boundary
224
+ // to be missing from the content-type header, resulting in a 400 error.
225
+ // Deleting the content-type header here to let fetch() re-create it.
226
+ headers.delete('content-type');
227
+ }
228
+ // Will be encoded by the fetch API.
229
+ return data;
230
+ }
231
+ if (isIterable(data)) {
232
+ // Note that some environments support using Iterable & AsyncIterable as the
233
+ // body (e.g. Node's fetch), but not all of them do (browsers).
234
+ return iterableToReadableStream(data);
110
235
  }
111
- else if (status >= 300 && status < 400) {
112
- resCode = types_1.ResponseType.XRPCNotSupported;
236
+ if (contentType.startsWith('text/')) {
237
+ return new TextEncoder().encode(String(data));
113
238
  }
114
- else if (status >= 400 && status < 500) {
115
- resCode = types_1.ResponseType.InvalidRequest;
239
+ if (contentType.startsWith('application/json')) {
240
+ const json = (0, lexicon_1.stringifyLex)(data);
241
+ // Server would return a 400 error if the JSON is invalid (e.g. trying to
242
+ // JSONify a function, or an object that implements toJSON() poorly).
243
+ if (json === undefined) {
244
+ throw new types_1.XRPCError(types_1.ResponseType.InvalidRequest, `Failed to encode request body as JSON`);
245
+ }
246
+ return new TextEncoder().encode(json);
116
247
  }
117
- else {
118
- resCode = types_1.ResponseType.InternalServerError;
248
+ // At this point, "data" is not a valid BodyInit value, and we don't know how
249
+ // to encode it into one. Passing it to fetch would result in an error. Let's
250
+ // throw our own error instead.
251
+ const type = !data || typeof data !== 'object'
252
+ ? typeof data
253
+ : data.constructor !== Object &&
254
+ typeof data.constructor === 'function' &&
255
+ typeof data.constructor?.name === 'string'
256
+ ? data.constructor.name
257
+ : 'object';
258
+ throw new types_1.XRPCError(types_1.ResponseType.InvalidRequest, `Unable to encode ${type} as ${contentType} data`);
259
+ }
260
+ exports.encodeMethodCallBody = encodeMethodCallBody;
261
+ /**
262
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/from_static}
263
+ */
264
+ function iterableToReadableStream(iterable) {
265
+ // Use the native ReadableStream.from() if available.
266
+ if ('from' in ReadableStream && typeof ReadableStream.from === 'function') {
267
+ return ReadableStream.from(iterable);
119
268
  }
120
- return resCode;
269
+ // If you see this error, consider using a polyfill for ReadableStream. For
270
+ // example, the "web-streams-polyfill" package:
271
+ // https://github.com/MattiasBuelens/web-streams-polyfill
272
+ throw new TypeError('ReadableStream.from() is not supported in this environment. ' +
273
+ 'It is required to support using iterables as the request body. ' +
274
+ 'Consider using a polyfill or re-write your code to use a different body type.');
121
275
  }
122
- exports.httpResponseCodeToEnum = httpResponseCodeToEnum;
123
276
  function httpResponseBodyParse(mimeType, data) {
124
- if (mimeType) {
125
- if (mimeType.includes('application/json') && data?.byteLength) {
126
- try {
277
+ try {
278
+ if (mimeType) {
279
+ if (mimeType.includes('application/json')) {
127
280
  const str = new TextDecoder().decode(data);
128
281
  return (0, lexicon_1.jsonStringToLex)(str);
129
282
  }
130
- catch (e) {
131
- throw new types_1.XRPCError(types_1.ResponseType.InvalidResponse, `Failed to parse response body: ${String(e)}`);
132
- }
133
- }
134
- if (mimeType.startsWith('text/') && data?.byteLength) {
135
- try {
283
+ if (mimeType.startsWith('text/')) {
136
284
  return new TextDecoder().decode(data);
137
285
  }
138
- catch (e) {
139
- throw new types_1.XRPCError(types_1.ResponseType.InvalidResponse, `Failed to parse response body: ${String(e)}`);
140
- }
141
286
  }
287
+ if (data instanceof ArrayBuffer) {
288
+ return new Uint8Array(data);
289
+ }
290
+ return data;
142
291
  }
143
- if (data instanceof ArrayBuffer) {
144
- return new Uint8Array(data);
292
+ catch (cause) {
293
+ throw new types_1.XRPCError(types_1.ResponseType.InvalidResponse, undefined, `Failed to parse response body: ${String(cause)}`, undefined, { cause });
145
294
  }
146
- return data;
147
295
  }
148
296
  exports.httpResponseBodyParse = httpResponseBodyParse;
149
297
  //# 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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"}
@@ -0,0 +1,10 @@
1
+ import { LexiconDoc, Lexicons } from '@atproto/lexicon';
2
+ import { FetchHandler, FetchHandlerOptions } from './fetch-handler';
3
+ import { CallOptions, QueryParams, XRPCResponse } from './types';
4
+ export declare class XrpcClient {
5
+ readonly fetchHandler: FetchHandler;
6
+ readonly lex: Lexicons;
7
+ constructor(fetchHandlerOpts: FetchHandler | FetchHandlerOptions, lex: Lexicons | Iterable<LexiconDoc>);
8
+ call(methodNsid: string, params?: QueryParams, data?: unknown, opts?: CallOptions): Promise<XRPCResponse>;
9
+ }
10
+ //# sourceMappingURL=xrpc-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrpc-client.d.ts","sourceRoot":"","sources":["../src/xrpc-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAmB,MAAM,kBAAkB,CAAA;AACxE,OAAO,EACL,YAAY,EACZ,mBAAmB,EAEpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,WAAW,EAIX,YAAY,EAEb,MAAM,SAAS,CAAA;AAUhB,qBAAa,UAAU;IACrB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;gBAGpB,gBAAgB,EAAE,YAAY,GAAG,mBAAmB,EAGpD,GAAG,EAAE,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;IAOhC,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC;CA8DzB"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XrpcClient = void 0;
4
+ const lexicon_1 = require("@atproto/lexicon");
5
+ const fetch_handler_1 = require("./fetch-handler");
6
+ const types_1 = require("./types");
7
+ const util_1 = require("./util");
8
+ class XrpcClient {
9
+ constructor(fetchHandlerOpts,
10
+ // "Lexicons" is redundant here (because that class implements
11
+ // "Iterable<LexiconDoc>") but we keep it for explicitness:
12
+ lex) {
13
+ Object.defineProperty(this, "fetchHandler", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "lex", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ this.fetchHandler = (0, fetch_handler_1.buildFetchHandler)(fetchHandlerOpts);
26
+ this.lex = lex instanceof lexicon_1.Lexicons ? lex : new lexicon_1.Lexicons(lex);
27
+ }
28
+ async call(methodNsid, params, data, opts) {
29
+ const def = this.lex.getDefOrThrow(methodNsid);
30
+ if (!def || (def.type !== 'query' && def.type !== 'procedure')) {
31
+ throw new TypeError(`Invalid lexicon: ${methodNsid}. Must be a query or procedure.`);
32
+ }
33
+ // @TODO: should we validate the params and data here?
34
+ // this.lex.assertValidXrpcParams(methodNsid, params)
35
+ // if (data !== undefined) {
36
+ // this.lex.assertValidXrpcInput(methodNsid, data)
37
+ // }
38
+ const reqUrl = (0, util_1.constructMethodCallUrl)(methodNsid, def, params);
39
+ const reqMethod = (0, util_1.getMethodSchemaHTTPMethod)(def);
40
+ const reqHeaders = (0, util_1.constructMethodCallHeaders)(def, data, opts);
41
+ const reqBody = (0, util_1.encodeMethodCallBody)(reqHeaders, data);
42
+ // The duplex field is required for streaming bodies, but not yet reflected
43
+ // anywhere in docs or types. See whatwg/fetch#1438, nodejs/node#46221.
44
+ const init = {
45
+ method: reqMethod,
46
+ headers: reqHeaders,
47
+ body: reqBody,
48
+ duplex: 'half',
49
+ signal: opts?.signal,
50
+ };
51
+ try {
52
+ const response = await this.fetchHandler.call(undefined, reqUrl, init);
53
+ const resStatus = response.status;
54
+ const resHeaders = Object.fromEntries(response.headers.entries());
55
+ const resBodyBytes = await response.arrayBuffer();
56
+ const resBody = (0, util_1.httpResponseBodyParse)(response.headers.get('content-type'), resBodyBytes);
57
+ const resCode = (0, types_1.httpResponseCodeToEnum)(resStatus);
58
+ if (resCode !== types_1.ResponseType.Success) {
59
+ const { error = undefined, message = undefined } = resBody && (0, util_1.isErrorResponseBody)(resBody) ? resBody : {};
60
+ throw new types_1.XRPCError(resCode, error, message, resHeaders);
61
+ }
62
+ try {
63
+ this.lex.assertValidXrpcOutput(methodNsid, resBody);
64
+ }
65
+ catch (e) {
66
+ if (e instanceof lexicon_1.ValidationError) {
67
+ throw new types_1.XRPCInvalidResponseError(methodNsid, e, resBody);
68
+ }
69
+ throw e;
70
+ }
71
+ return new types_1.XRPCResponse(resBody, resHeaders);
72
+ }
73
+ catch (err) {
74
+ throw types_1.XRPCError.from(err);
75
+ }
76
+ }
77
+ }
78
+ exports.XrpcClient = XrpcClient;
79
+ //# sourceMappingURL=xrpc-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrpc-client.js","sourceRoot":"","sources":["../src/xrpc-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/xrpc",
3
- "version": "0.5.0",
3
+ "version": "0.5.1-rc.0",
4
4
  "license": "MIT",
5
5
  "description": "atproto HTTP API (XRPC) client library",
6
6
  "keywords": [
@@ -16,7 +16,7 @@
16
16
  "main": "dist/index.js",
17
17
  "types": "dist/index.d.ts",
18
18
  "dependencies": {
19
- "zod": "^3.21.4",
19
+ "zod": "^3.23.8",
20
20
  "@atproto/lexicon": "^0.4.0"
21
21
  },
22
22
  "devDependencies": {