@atproto/xrpc 0.5.0 → 0.6.0-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/CHANGELOG.md +35 -0
- package/README.md +56 -31
- package/dist/client.d.ts +12 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +21 -80
- package/dist/client.js.map +1 -1
- package/dist/fetch-handler.d.ts +33 -0
- package/dist/fetch-handler.d.ts.map +1 -0
- package/dist/fetch-handler.js +21 -0
- package/dist/fetch-handler.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +16 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +61 -12
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +8 -5
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +290 -77
- package/dist/util.js.map +1 -1
- package/dist/xrpc-client.d.ts +10 -0
- package/dist/xrpc-client.d.ts.map +1 -0
- package/dist/xrpc-client.js +79 -0
- package/dist/xrpc-client.js.map +1 -0
- package/package.json +3 -3
- package/src/client.ts +34 -121
- package/src/fetch-handler.ts +68 -0
- package/src/index.ts +5 -1
- package/src/types.ts +77 -24
- package/src/util.ts +353 -84
- package/src/xrpc-client.ts +108 -0
package/dist/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XRPCInvalidResponseError = exports.XRPCError = exports.XRPCResponse = exports.ResponseTypeStrings = exports.ResponseTypeNames = exports.ResponseType = exports.errorResponseBody = void 0;
|
|
3
|
+
exports.XRPCInvalidResponseError = exports.XRPCError = exports.XRPCResponse = exports.httpResponseCodeToString = exports.ResponseTypeStrings = exports.httpResponseCodeToName = exports.ResponseTypeNames = exports.httpResponseCodeToEnum = exports.ResponseType = exports.errorResponseBody = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
exports.errorResponseBody = zod_1.z.object({
|
|
6
6
|
error: zod_1.z.string().optional(),
|
|
@@ -23,7 +23,29 @@ var ResponseType;
|
|
|
23
23
|
ResponseType[ResponseType["NotEnoughResources"] = 503] = "NotEnoughResources";
|
|
24
24
|
ResponseType[ResponseType["UpstreamTimeout"] = 504] = "UpstreamTimeout";
|
|
25
25
|
})(ResponseType || (exports.ResponseType = ResponseType = {}));
|
|
26
|
+
function httpResponseCodeToEnum(status) {
|
|
27
|
+
if (status in ResponseType) {
|
|
28
|
+
return status;
|
|
29
|
+
}
|
|
30
|
+
else if (status >= 100 && status < 200) {
|
|
31
|
+
return ResponseType.XRPCNotSupported;
|
|
32
|
+
}
|
|
33
|
+
else if (status >= 200 && status < 300) {
|
|
34
|
+
return ResponseType.Success;
|
|
35
|
+
}
|
|
36
|
+
else if (status >= 300 && status < 400) {
|
|
37
|
+
return ResponseType.XRPCNotSupported;
|
|
38
|
+
}
|
|
39
|
+
else if (status >= 400 && status < 500) {
|
|
40
|
+
return ResponseType.InvalidRequest;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return ResponseType.InternalServerError;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.httpResponseCodeToEnum = httpResponseCodeToEnum;
|
|
26
47
|
exports.ResponseTypeNames = {
|
|
48
|
+
[ResponseType.Unknown]: 'Unknown',
|
|
27
49
|
[ResponseType.InvalidResponse]: 'InvalidResponse',
|
|
28
50
|
[ResponseType.Success]: 'Success',
|
|
29
51
|
[ResponseType.InvalidRequest]: 'InvalidRequest',
|
|
@@ -38,7 +60,12 @@ exports.ResponseTypeNames = {
|
|
|
38
60
|
[ResponseType.NotEnoughResources]: 'NotEnoughResources',
|
|
39
61
|
[ResponseType.UpstreamTimeout]: 'UpstreamTimeout',
|
|
40
62
|
};
|
|
63
|
+
function httpResponseCodeToName(status) {
|
|
64
|
+
return exports.ResponseTypeNames[httpResponseCodeToEnum(status)];
|
|
65
|
+
}
|
|
66
|
+
exports.httpResponseCodeToName = httpResponseCodeToName;
|
|
41
67
|
exports.ResponseTypeStrings = {
|
|
68
|
+
[ResponseType.Unknown]: 'Unknown',
|
|
42
69
|
[ResponseType.InvalidResponse]: 'Invalid Response',
|
|
43
70
|
[ResponseType.Success]: 'Success',
|
|
44
71
|
[ResponseType.InvalidRequest]: 'Invalid Request',
|
|
@@ -53,6 +80,10 @@ exports.ResponseTypeStrings = {
|
|
|
53
80
|
[ResponseType.NotEnoughResources]: 'Not Enough Resources',
|
|
54
81
|
[ResponseType.UpstreamTimeout]: 'Upstream Timeout',
|
|
55
82
|
};
|
|
83
|
+
function httpResponseCodeToString(status) {
|
|
84
|
+
return exports.ResponseTypeStrings[httpResponseCodeToEnum(status)];
|
|
85
|
+
}
|
|
86
|
+
exports.httpResponseCodeToString = httpResponseCodeToString;
|
|
56
87
|
class XRPCResponse {
|
|
57
88
|
constructor(data, headers) {
|
|
58
89
|
Object.defineProperty(this, "data", {
|
|
@@ -77,19 +108,19 @@ class XRPCResponse {
|
|
|
77
108
|
}
|
|
78
109
|
exports.XRPCResponse = XRPCResponse;
|
|
79
110
|
class XRPCError extends Error {
|
|
80
|
-
constructor(
|
|
81
|
-
super(message || error ||
|
|
82
|
-
Object.defineProperty(this, "
|
|
111
|
+
constructor(statusCode, error = httpResponseCodeToName(statusCode), message, headers, options) {
|
|
112
|
+
super(message || error || httpResponseCodeToString(statusCode), options);
|
|
113
|
+
Object.defineProperty(this, "error", {
|
|
83
114
|
enumerable: true,
|
|
84
115
|
configurable: true,
|
|
85
116
|
writable: true,
|
|
86
|
-
value:
|
|
117
|
+
value: error
|
|
87
118
|
});
|
|
88
|
-
Object.defineProperty(this, "
|
|
119
|
+
Object.defineProperty(this, "headers", {
|
|
89
120
|
enumerable: true,
|
|
90
121
|
configurable: true,
|
|
91
122
|
writable: true,
|
|
92
|
-
value:
|
|
123
|
+
value: headers
|
|
93
124
|
});
|
|
94
125
|
Object.defineProperty(this, "success", {
|
|
95
126
|
enumerable: true,
|
|
@@ -97,22 +128,40 @@ class XRPCError extends Error {
|
|
|
97
128
|
writable: true,
|
|
98
129
|
value: false
|
|
99
130
|
});
|
|
100
|
-
Object.defineProperty(this, "
|
|
131
|
+
Object.defineProperty(this, "status", {
|
|
101
132
|
enumerable: true,
|
|
102
133
|
configurable: true,
|
|
103
134
|
writable: true,
|
|
104
135
|
value: void 0
|
|
105
136
|
});
|
|
106
|
-
|
|
107
|
-
|
|
137
|
+
this.status = httpResponseCodeToEnum(statusCode);
|
|
138
|
+
// Pre 2022 runtimes won't handle the "options" constructor argument
|
|
139
|
+
const cause = options?.cause;
|
|
140
|
+
if (this.cause === undefined && cause !== undefined) {
|
|
141
|
+
this.cause = cause;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
static from(cause, fallbackStatus) {
|
|
145
|
+
if (cause instanceof XRPCError) {
|
|
146
|
+
return cause;
|
|
108
147
|
}
|
|
109
|
-
|
|
148
|
+
// Extract status code from "http-errors" like errors
|
|
149
|
+
const statusCode = cause instanceof Error
|
|
150
|
+
? ('statusCode' in cause ? cause.statusCode : undefined) ??
|
|
151
|
+
('status' in cause ? cause.status : undefined)
|
|
152
|
+
: undefined;
|
|
153
|
+
const status = typeof statusCode === 'number'
|
|
154
|
+
? httpResponseCodeToEnum(statusCode)
|
|
155
|
+
: fallbackStatus ?? ResponseType.Unknown;
|
|
156
|
+
const error = exports.ResponseTypeNames[status];
|
|
157
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
158
|
+
return new XRPCError(status, error, message, undefined, { cause });
|
|
110
159
|
}
|
|
111
160
|
}
|
|
112
161
|
exports.XRPCError = XRPCError;
|
|
113
162
|
class XRPCInvalidResponseError extends XRPCError {
|
|
114
163
|
constructor(lexiconNsid, validationError, responseBody) {
|
|
115
|
-
super(ResponseType.InvalidResponse, exports.ResponseTypeStrings[ResponseType.InvalidResponse], `The server gave an invalid response and may be out of date
|
|
164
|
+
super(ResponseType.InvalidResponse, exports.ResponseTypeStrings[ResponseType.InvalidResponse], `The server gave an invalid response and may be out of date.`, undefined, { cause: validationError });
|
|
116
165
|
Object.defineProperty(this, "lexiconNsid", {
|
|
117
166
|
enumerable: true,
|
|
118
167
|
configurable: true,
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;
|
|
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,
|
|
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
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
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
|
package/dist/util.d.ts.map
CHANGED
|
@@ -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,
|
|
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;AA6FD,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.
|
|
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.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
55
|
+
if (!searchParams.length)
|
|
56
|
+
return pathname;
|
|
57
|
+
return `${pathname}?${new URLSearchParams(searchParams).toString()}`;
|
|
37
58
|
}
|
|
38
|
-
exports.
|
|
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,284 @@ 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
|
-
|
|
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
|
|
102
|
+
headers.set('content-type', opts.encoding);
|
|
74
103
|
}
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
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
|
|
85
|
-
if (!
|
|
86
|
-
return
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
146
|
+
function combineHeaders(headersInit, defaultHeaders) {
|
|
147
|
+
if (!defaultHeaders)
|
|
148
|
+
return headersInit;
|
|
149
|
+
let headers = undefined;
|
|
150
|
+
for (const [key, getter] of defaultHeaders) {
|
|
151
|
+
// Ignore undefined values (allowed for convenience when using
|
|
152
|
+
// Object.entries).
|
|
153
|
+
if (getter === undefined)
|
|
154
|
+
continue;
|
|
155
|
+
// Lazy initialization of the headers object
|
|
156
|
+
headers ?? (headers = new Headers(headersInit));
|
|
157
|
+
if (headers.has(key))
|
|
158
|
+
continue;
|
|
159
|
+
const value = typeof getter === 'function' ? getter() : getter;
|
|
160
|
+
if (typeof value === 'string')
|
|
161
|
+
headers.set(key, value);
|
|
162
|
+
else if (value === null)
|
|
163
|
+
headers.delete(key);
|
|
164
|
+
else
|
|
165
|
+
throw new TypeError(`Invalid "${key}" header value: ${typeof value}`);
|
|
90
166
|
}
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
95
|
-
|
|
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.
|
|
100
|
-
function
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
106
|
-
|
|
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
|
-
|
|
109
|
-
|
|
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;
|
|
110
230
|
}
|
|
111
|
-
|
|
112
|
-
|
|
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);
|
|
113
235
|
}
|
|
114
|
-
|
|
115
|
-
|
|
236
|
+
if (contentType.startsWith('text/')) {
|
|
237
|
+
return new TextEncoder().encode(String(data));
|
|
116
238
|
}
|
|
117
|
-
|
|
118
|
-
|
|
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);
|
|
119
247
|
}
|
|
120
|
-
|
|
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`);
|
|
121
259
|
}
|
|
122
|
-
exports.
|
|
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);
|
|
268
|
+
}
|
|
269
|
+
// Note, in environments where ReadableStream is not available either, we
|
|
270
|
+
// *could* load the iterable into memory and create an Arraybuffer from it.
|
|
271
|
+
// However, this would be a bad idea for large iterables. In order to keep
|
|
272
|
+
// things simple, we'll just allow the anonymous ReadableStream constructor
|
|
273
|
+
// to throw an error in those environments, hinting the user of the lib to find
|
|
274
|
+
// an alternate solution in that case (e.g. use a Blob if available).
|
|
275
|
+
let generator;
|
|
276
|
+
return new ReadableStream({
|
|
277
|
+
type: 'bytes',
|
|
278
|
+
start() {
|
|
279
|
+
// Wrap the iterable in an async generator to handle both sync and async
|
|
280
|
+
// iterables, and make sure that the return() method exists.
|
|
281
|
+
generator = (async function* () {
|
|
282
|
+
yield* iterable;
|
|
283
|
+
})();
|
|
284
|
+
},
|
|
285
|
+
async pull(controller) {
|
|
286
|
+
const { done, value } = await generator.next();
|
|
287
|
+
if (done) {
|
|
288
|
+
controller.close();
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
try {
|
|
292
|
+
const buf = toUint8Array(value);
|
|
293
|
+
if (buf)
|
|
294
|
+
controller.enqueue(buf);
|
|
295
|
+
}
|
|
296
|
+
catch (cause) {
|
|
297
|
+
// ReadableStream won't call cancel() if the stream is errored.
|
|
298
|
+
await generator.return();
|
|
299
|
+
controller.error(new TypeError('Converting iterable body to ReadableStream requires Buffer, ArrayBuffer or string values', { cause }));
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
async cancel() {
|
|
304
|
+
await generator.return();
|
|
305
|
+
},
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
// Browsers don't have Buffer. This syntax is to avoid bundlers from including
|
|
309
|
+
// a Buffer polyfill in the bundle if it's not used elsewhere.
|
|
310
|
+
const globalName = `${{ toString: () => 'Buf' }}fer`;
|
|
311
|
+
const Buffer = typeof globalThis[globalName] === 'function'
|
|
312
|
+
? globalThis[globalName]
|
|
313
|
+
: undefined;
|
|
314
|
+
const toUint8Array = Buffer
|
|
315
|
+
? (value) => {
|
|
316
|
+
// @ts-expect-error Buffer.from will throw if value is not a valid input
|
|
317
|
+
const buf = Buffer.isBuffer(value) ? value : Buffer.from(value);
|
|
318
|
+
return buf.byteLength ? new Uint8Array(buf) : undefined;
|
|
319
|
+
}
|
|
320
|
+
: (value) => {
|
|
321
|
+
if (value instanceof ArrayBuffer) {
|
|
322
|
+
const buf = new Uint8Array(value);
|
|
323
|
+
return buf.byteLength ? buf : undefined;
|
|
324
|
+
}
|
|
325
|
+
// Simulate Buffer.from() behavior for strings and and coercion
|
|
326
|
+
if (typeof value === 'string') {
|
|
327
|
+
return value.length ? new TextEncoder().encode(value) : undefined;
|
|
328
|
+
}
|
|
329
|
+
else if (typeof value?.valueOf === 'function') {
|
|
330
|
+
const coerced = value.valueOf();
|
|
331
|
+
if (coerced instanceof ArrayBuffer) {
|
|
332
|
+
const buf = new Uint8Array(coerced);
|
|
333
|
+
return buf.byteLength ? buf : undefined;
|
|
334
|
+
}
|
|
335
|
+
else if (typeof coerced === 'string') {
|
|
336
|
+
return coerced.length ? new TextEncoder().encode(coerced) : undefined;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
throw new TypeError(`Unable to convert "${typeof value}" to Uint8Array`);
|
|
340
|
+
};
|
|
123
341
|
function httpResponseBodyParse(mimeType, data) {
|
|
124
|
-
|
|
125
|
-
if (mimeType
|
|
126
|
-
|
|
342
|
+
try {
|
|
343
|
+
if (mimeType) {
|
|
344
|
+
if (mimeType.includes('application/json')) {
|
|
127
345
|
const str = new TextDecoder().decode(data);
|
|
128
346
|
return (0, lexicon_1.jsonStringToLex)(str);
|
|
129
347
|
}
|
|
130
|
-
|
|
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 {
|
|
348
|
+
if (mimeType.startsWith('text/')) {
|
|
136
349
|
return new TextDecoder().decode(data);
|
|
137
350
|
}
|
|
138
|
-
catch (e) {
|
|
139
|
-
throw new types_1.XRPCError(types_1.ResponseType.InvalidResponse, `Failed to parse response body: ${String(e)}`);
|
|
140
|
-
}
|
|
141
351
|
}
|
|
352
|
+
if (data instanceof ArrayBuffer) {
|
|
353
|
+
return new Uint8Array(data);
|
|
354
|
+
}
|
|
355
|
+
return data;
|
|
142
356
|
}
|
|
143
|
-
|
|
144
|
-
|
|
357
|
+
catch (cause) {
|
|
358
|
+
throw new types_1.XRPCError(types_1.ResponseType.InvalidResponse, undefined, `Failed to parse response body: ${String(cause)}`, undefined, { cause });
|
|
145
359
|
}
|
|
146
|
-
return data;
|
|
147
360
|
}
|
|
148
361
|
exports.httpResponseBodyParse = httpResponseBodyParse;
|
|
149
362
|
//# 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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"}
|