@short.io/client-node 2.2.0 → 3.0.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/README.md +747 -28
- package/dist/generated/client/client.d.ts +2 -0
- package/dist/generated/client/client.gen.d.ts +2 -0
- package/dist/generated/client/client.gen.js +225 -0
- package/dist/generated/client/client.gen.js.map +1 -0
- package/dist/generated/client/client.js +141 -0
- package/dist/generated/client/client.js.map +1 -0
- package/dist/generated/client/index.d.ts +8 -4
- package/dist/generated/client/index.js +5 -115
- package/dist/generated/client/index.js.map +1 -1
- package/dist/generated/client/types.d.ts +48 -56
- package/dist/generated/client/types.gen.d.ts +68 -0
- package/dist/generated/client/types.gen.js +2 -0
- package/dist/generated/client/types.gen.js.map +1 -0
- package/dist/generated/client/types.js.map +1 -1
- package/dist/generated/client/utils.d.ts +15 -30
- package/dist/generated/client/utils.gen.d.ts +30 -0
- package/dist/generated/client/utils.gen.js +224 -0
- package/dist/generated/client/utils.gen.js.map +1 -0
- package/dist/generated/client/utils.js +101 -206
- package/dist/generated/client/utils.js.map +1 -1
- package/dist/generated/client.gen.d.ts +4 -0
- package/dist/generated/client.gen.js +3 -0
- package/dist/generated/client.gen.js.map +1 -0
- package/dist/generated/core/auth.d.ts +8 -0
- package/dist/generated/core/auth.gen.d.ts +8 -0
- package/dist/generated/core/auth.gen.js +14 -0
- package/dist/generated/core/auth.gen.js.map +1 -0
- package/dist/generated/core/auth.js +14 -0
- package/dist/generated/core/auth.js.map +1 -0
- package/dist/generated/core/bodySerializer.d.ts +17 -0
- package/dist/generated/core/bodySerializer.gen.d.ts +21 -0
- package/dist/generated/core/bodySerializer.gen.js +57 -0
- package/dist/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/generated/core/bodySerializer.js +54 -0
- package/dist/generated/core/bodySerializer.js.map +1 -0
- package/dist/generated/core/params.d.ts +23 -0
- package/dist/generated/core/params.gen.d.ts +26 -0
- package/dist/generated/core/params.gen.js +100 -0
- package/dist/generated/core/params.gen.js.map +1 -0
- package/dist/generated/core/params.js +88 -0
- package/dist/generated/core/params.js.map +1 -0
- package/dist/generated/core/pathSerializer.d.ts +30 -0
- package/dist/generated/core/pathSerializer.gen.d.ts +30 -0
- package/dist/generated/core/pathSerializer.gen.js +114 -0
- package/dist/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/generated/core/pathSerializer.js +114 -0
- package/dist/generated/core/pathSerializer.js.map +1 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts +6 -0
- package/dist/generated/core/queryKeySerializer.gen.js +84 -0
- package/dist/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts +23 -0
- package/dist/generated/core/serverSentEvents.gen.js +131 -0
- package/dist/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/generated/core/types.d.ts +32 -0
- package/dist/generated/core/types.gen.d.ts +32 -0
- package/dist/generated/core/types.gen.js +2 -0
- package/dist/generated/core/types.gen.js.map +1 -0
- package/dist/generated/core/types.js +2 -0
- package/dist/generated/core/types.js.map +1 -0
- package/dist/generated/core/utils.gen.d.ts +19 -0
- package/dist/generated/core/utils.gen.js +84 -0
- package/dist/generated/core/utils.gen.js.map +1 -0
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.js +1 -2
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/sdk.gen.d.ts +48 -474
- package/dist/generated/sdk.gen.js +299 -322
- package/dist/generated/sdk.gen.js.map +1 -1
- package/dist/generated/types.gen.d.ts +699 -190
- package/dist/generated/types.gen.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,117 +1,7 @@
|
|
|
1
|
+
import { getAuthToken } from '../core/auth.js';
|
|
2
|
+
import { jsonBodySerializer } from '../core/bodySerializer.js';
|
|
3
|
+
import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam, } from '../core/pathSerializer.js';
|
|
1
4
|
const PATH_PARAM_RE = /\{[^{}]+\}/g;
|
|
2
|
-
const serializePrimitiveParam = ({ allowReserved, name, value, }) => {
|
|
3
|
-
if (value === undefined || value === null) {
|
|
4
|
-
return '';
|
|
5
|
-
}
|
|
6
|
-
if (typeof value === 'object') {
|
|
7
|
-
throw new Error('Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.');
|
|
8
|
-
}
|
|
9
|
-
return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
|
|
10
|
-
};
|
|
11
|
-
const separatorArrayExplode = (style) => {
|
|
12
|
-
switch (style) {
|
|
13
|
-
case 'label':
|
|
14
|
-
return '.';
|
|
15
|
-
case 'matrix':
|
|
16
|
-
return ';';
|
|
17
|
-
case 'simple':
|
|
18
|
-
return ',';
|
|
19
|
-
default:
|
|
20
|
-
return '&';
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
const separatorArrayNoExplode = (style) => {
|
|
24
|
-
switch (style) {
|
|
25
|
-
case 'form':
|
|
26
|
-
return ',';
|
|
27
|
-
case 'pipeDelimited':
|
|
28
|
-
return '|';
|
|
29
|
-
case 'spaceDelimited':
|
|
30
|
-
return '%20';
|
|
31
|
-
default:
|
|
32
|
-
return ',';
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
const separatorObjectExplode = (style) => {
|
|
36
|
-
switch (style) {
|
|
37
|
-
case 'label':
|
|
38
|
-
return '.';
|
|
39
|
-
case 'matrix':
|
|
40
|
-
return ';';
|
|
41
|
-
case 'simple':
|
|
42
|
-
return ',';
|
|
43
|
-
default:
|
|
44
|
-
return '&';
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
const serializeArrayParam = ({ allowReserved, explode, name, style, value, }) => {
|
|
48
|
-
if (!explode) {
|
|
49
|
-
const joinedValues = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
|
|
50
|
-
switch (style) {
|
|
51
|
-
case 'label':
|
|
52
|
-
return `.${joinedValues}`;
|
|
53
|
-
case 'matrix':
|
|
54
|
-
return `;${name}=${joinedValues}`;
|
|
55
|
-
case 'simple':
|
|
56
|
-
return joinedValues;
|
|
57
|
-
default:
|
|
58
|
-
return `${name}=${joinedValues}`;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
const separator = separatorArrayExplode(style);
|
|
62
|
-
const joinedValues = value
|
|
63
|
-
.map((v) => {
|
|
64
|
-
if (style === 'label' || style === 'simple') {
|
|
65
|
-
return allowReserved ? v : encodeURIComponent(v);
|
|
66
|
-
}
|
|
67
|
-
return serializePrimitiveParam({
|
|
68
|
-
allowReserved,
|
|
69
|
-
name,
|
|
70
|
-
value: v,
|
|
71
|
-
});
|
|
72
|
-
})
|
|
73
|
-
.join(separator);
|
|
74
|
-
return style === 'label' || style === 'matrix'
|
|
75
|
-
? separator + joinedValues
|
|
76
|
-
: joinedValues;
|
|
77
|
-
};
|
|
78
|
-
const serializeObjectParam = ({ allowReserved, explode, name, style, value, }) => {
|
|
79
|
-
if (value instanceof Date) {
|
|
80
|
-
return `${name}=${value.toISOString()}`;
|
|
81
|
-
}
|
|
82
|
-
if (style !== 'deepObject' && !explode) {
|
|
83
|
-
let values = [];
|
|
84
|
-
Object.entries(value).forEach(([key, v]) => {
|
|
85
|
-
values = [
|
|
86
|
-
...values,
|
|
87
|
-
key,
|
|
88
|
-
allowReserved ? v : encodeURIComponent(v),
|
|
89
|
-
];
|
|
90
|
-
});
|
|
91
|
-
const joinedValues = values.join(',');
|
|
92
|
-
switch (style) {
|
|
93
|
-
case 'form':
|
|
94
|
-
return `${name}=${joinedValues}`;
|
|
95
|
-
case 'label':
|
|
96
|
-
return `.${joinedValues}`;
|
|
97
|
-
case 'matrix':
|
|
98
|
-
return `;${name}=${joinedValues}`;
|
|
99
|
-
default:
|
|
100
|
-
return joinedValues;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
const separator = separatorObjectExplode(style);
|
|
104
|
-
const joinedValues = Object.entries(value)
|
|
105
|
-
.map(([key, v]) => serializePrimitiveParam({
|
|
106
|
-
allowReserved,
|
|
107
|
-
name: style === 'deepObject' ? `${name}[${key}]` : key,
|
|
108
|
-
value: v,
|
|
109
|
-
}))
|
|
110
|
-
.join(separator);
|
|
111
|
-
return style === 'label' || style === 'matrix'
|
|
112
|
-
? separator + joinedValues
|
|
113
|
-
: joinedValues;
|
|
114
|
-
};
|
|
115
5
|
const defaultPathSerializer = ({ path, url: _url }) => {
|
|
116
6
|
let url = _url;
|
|
117
7
|
const matches = _url.match(PATH_PARAM_RE);
|
|
@@ -146,6 +36,7 @@ const defaultPathSerializer = ({ path, url: _url }) => {
|
|
|
146
36
|
name,
|
|
147
37
|
style,
|
|
148
38
|
value: value,
|
|
39
|
+
valueOnly: true,
|
|
149
40
|
}));
|
|
150
41
|
continue;
|
|
151
42
|
}
|
|
@@ -164,7 +55,7 @@ const defaultPathSerializer = ({ path, url: _url }) => {
|
|
|
164
55
|
};
|
|
165
56
|
export const createQuerySerializer = ({ allowReserved, array, object, } = {}) => {
|
|
166
57
|
const querySerializer = (queryParams) => {
|
|
167
|
-
|
|
58
|
+
const search = [];
|
|
168
59
|
if (queryParams && typeof queryParams === 'object') {
|
|
169
60
|
for (const name in queryParams) {
|
|
170
61
|
const value = queryParams[name];
|
|
@@ -172,41 +63,38 @@ export const createQuerySerializer = ({ allowReserved, array, object, } = {}) =>
|
|
|
172
63
|
continue;
|
|
173
64
|
}
|
|
174
65
|
if (Array.isArray(value)) {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
];
|
|
186
|
-
continue;
|
|
66
|
+
const serializedArray = serializeArrayParam({
|
|
67
|
+
allowReserved,
|
|
68
|
+
explode: true,
|
|
69
|
+
name,
|
|
70
|
+
style: 'form',
|
|
71
|
+
value,
|
|
72
|
+
...array,
|
|
73
|
+
});
|
|
74
|
+
if (serializedArray)
|
|
75
|
+
search.push(serializedArray);
|
|
187
76
|
}
|
|
188
|
-
if (typeof value === 'object') {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
];
|
|
200
|
-
continue;
|
|
77
|
+
else if (typeof value === 'object') {
|
|
78
|
+
const serializedObject = serializeObjectParam({
|
|
79
|
+
allowReserved,
|
|
80
|
+
explode: true,
|
|
81
|
+
name,
|
|
82
|
+
style: 'deepObject',
|
|
83
|
+
value: value,
|
|
84
|
+
...object,
|
|
85
|
+
});
|
|
86
|
+
if (serializedObject)
|
|
87
|
+
search.push(serializedObject);
|
|
201
88
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
serializePrimitiveParam({
|
|
89
|
+
else {
|
|
90
|
+
const serializedPrimitive = serializePrimitiveParam({
|
|
205
91
|
allowReserved,
|
|
206
92
|
name,
|
|
207
93
|
value: value,
|
|
208
|
-
})
|
|
209
|
-
|
|
94
|
+
});
|
|
95
|
+
if (serializedPrimitive)
|
|
96
|
+
search.push(serializedPrimitive);
|
|
97
|
+
}
|
|
210
98
|
}
|
|
211
99
|
}
|
|
212
100
|
return search.join('&');
|
|
@@ -215,9 +103,12 @@ export const createQuerySerializer = ({ allowReserved, array, object, } = {}) =>
|
|
|
215
103
|
};
|
|
216
104
|
export const getParseAs = (contentType) => {
|
|
217
105
|
if (!contentType) {
|
|
106
|
+
return 'stream';
|
|
107
|
+
}
|
|
108
|
+
const cleanContent = contentType.split(';')[0]?.trim();
|
|
109
|
+
if (!cleanContent) {
|
|
218
110
|
return;
|
|
219
111
|
}
|
|
220
|
-
const cleanContent = contentType.split(';')[0].trim();
|
|
221
112
|
if (cleanContent.startsWith('application/json') ||
|
|
222
113
|
cleanContent.endsWith('+json')) {
|
|
223
114
|
return 'json';
|
|
@@ -231,10 +122,48 @@ export const getParseAs = (contentType) => {
|
|
|
231
122
|
if (cleanContent.startsWith('text/')) {
|
|
232
123
|
return 'text';
|
|
233
124
|
}
|
|
125
|
+
return;
|
|
126
|
+
};
|
|
127
|
+
export const setAuthParams = async ({ security, ...options }) => {
|
|
128
|
+
for (const auth of security) {
|
|
129
|
+
const token = await getAuthToken(auth, options.auth);
|
|
130
|
+
if (!token) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const name = auth.name ?? 'Authorization';
|
|
134
|
+
switch (auth.in) {
|
|
135
|
+
case 'query':
|
|
136
|
+
if (!options.query) {
|
|
137
|
+
options.query = {};
|
|
138
|
+
}
|
|
139
|
+
options.query[name] = token;
|
|
140
|
+
break;
|
|
141
|
+
case 'cookie':
|
|
142
|
+
options.headers.append('Cookie', `${name}=${token}`);
|
|
143
|
+
break;
|
|
144
|
+
case 'header':
|
|
145
|
+
default:
|
|
146
|
+
options.headers.set(name, token);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
export const buildUrl = (options) => {
|
|
153
|
+
const url = getUrl({
|
|
154
|
+
baseUrl: options.baseUrl,
|
|
155
|
+
path: options.path,
|
|
156
|
+
query: options.query,
|
|
157
|
+
querySerializer: typeof options.querySerializer === 'function'
|
|
158
|
+
? options.querySerializer
|
|
159
|
+
: createQuerySerializer(options.querySerializer),
|
|
160
|
+
url: options.url,
|
|
161
|
+
});
|
|
162
|
+
return url;
|
|
234
163
|
};
|
|
235
164
|
export const getUrl = ({ baseUrl, path, query, querySerializer, url: _url, }) => {
|
|
236
165
|
const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;
|
|
237
|
-
let url = baseUrl + pathUrl;
|
|
166
|
+
let url = (baseUrl ?? '') + pathUrl;
|
|
238
167
|
if (path) {
|
|
239
168
|
url = defaultPathSerializer({ path, url });
|
|
240
169
|
}
|
|
@@ -286,17 +215,37 @@ class Interceptors {
|
|
|
286
215
|
clear() {
|
|
287
216
|
this._fns = [];
|
|
288
217
|
}
|
|
289
|
-
|
|
290
|
-
|
|
218
|
+
getInterceptorIndex(id) {
|
|
219
|
+
if (typeof id === 'number') {
|
|
220
|
+
return this._fns[id] ? id : -1;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
return this._fns.indexOf(id);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exists(id) {
|
|
227
|
+
const index = this.getInterceptorIndex(id);
|
|
228
|
+
return !!this._fns[index];
|
|
291
229
|
}
|
|
292
|
-
eject(
|
|
293
|
-
const index = this.
|
|
294
|
-
if (index
|
|
295
|
-
this._fns
|
|
230
|
+
eject(id) {
|
|
231
|
+
const index = this.getInterceptorIndex(id);
|
|
232
|
+
if (this._fns[index]) {
|
|
233
|
+
this._fns[index] = null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
update(id, fn) {
|
|
237
|
+
const index = this.getInterceptorIndex(id);
|
|
238
|
+
if (this._fns[index]) {
|
|
239
|
+
this._fns[index] = fn;
|
|
240
|
+
return id;
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
return false;
|
|
296
244
|
}
|
|
297
245
|
}
|
|
298
246
|
use(fn) {
|
|
299
247
|
this._fns = [...this._fns, fn];
|
|
248
|
+
return this._fns.length - 1;
|
|
300
249
|
}
|
|
301
250
|
}
|
|
302
251
|
export const createInterceptors = () => ({
|
|
@@ -304,59 +253,6 @@ export const createInterceptors = () => ({
|
|
|
304
253
|
request: new Interceptors(),
|
|
305
254
|
response: new Interceptors(),
|
|
306
255
|
});
|
|
307
|
-
const serializeFormDataPair = (data, key, value) => {
|
|
308
|
-
if (typeof value === 'string' || value instanceof Blob) {
|
|
309
|
-
data.append(key, value);
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
data.append(key, JSON.stringify(value));
|
|
313
|
-
}
|
|
314
|
-
};
|
|
315
|
-
export const formDataBodySerializer = {
|
|
316
|
-
bodySerializer: (body) => {
|
|
317
|
-
const data = new FormData();
|
|
318
|
-
Object.entries(body).forEach(([key, value]) => {
|
|
319
|
-
if (value === undefined || value === null) {
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
if (Array.isArray(value)) {
|
|
323
|
-
value.forEach((v) => serializeFormDataPair(data, key, v));
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
serializeFormDataPair(data, key, value);
|
|
327
|
-
}
|
|
328
|
-
});
|
|
329
|
-
return data;
|
|
330
|
-
},
|
|
331
|
-
};
|
|
332
|
-
export const jsonBodySerializer = {
|
|
333
|
-
bodySerializer: (body) => JSON.stringify(body),
|
|
334
|
-
};
|
|
335
|
-
const serializeUrlSearchParamsPair = (data, key, value) => {
|
|
336
|
-
if (typeof value === 'string') {
|
|
337
|
-
data.append(key, value);
|
|
338
|
-
}
|
|
339
|
-
else {
|
|
340
|
-
data.append(key, JSON.stringify(value));
|
|
341
|
-
}
|
|
342
|
-
};
|
|
343
|
-
export const urlSearchParamsBodySerializer = {
|
|
344
|
-
bodySerializer: (body) => {
|
|
345
|
-
const data = new URLSearchParams();
|
|
346
|
-
Object.entries(body).forEach(([key, value]) => {
|
|
347
|
-
if (value === undefined || value === null) {
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
if (Array.isArray(value)) {
|
|
351
|
-
value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
serializeUrlSearchParamsPair(data, key, value);
|
|
355
|
-
}
|
|
356
|
-
});
|
|
357
|
-
return data;
|
|
358
|
-
},
|
|
359
|
-
};
|
|
360
256
|
const defaultQuerySerializer = createQuerySerializer({
|
|
361
257
|
allowReserved: false,
|
|
362
258
|
array: {
|
|
@@ -373,7 +269,6 @@ const defaultHeaders = {
|
|
|
373
269
|
};
|
|
374
270
|
export const createConfig = (override = {}) => ({
|
|
375
271
|
...jsonBodySerializer,
|
|
376
|
-
baseUrl: '',
|
|
377
272
|
headers: defaultHeaders,
|
|
378
273
|
parseAs: 'auto',
|
|
379
274
|
querySerializer: defaultQuerySerializer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/generated/client/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Config } from './types';\n\ninterface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nconst PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\ntype ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\ntype ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: any) => any;\n\ninterface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\ninterface SerializeOptions<T>\n extends SerializePrimitiveOptions,\n SerializerOptions<T> {}\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport interface QuerySerializerOptions {\n allowReserved?: boolean;\n array?: SerializerOptions<ArrayStyle>;\n object?: SerializerOptions<ObjectStyle>;\n}\n\nconst serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nconst separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nconst separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nconst separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nconst serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n\nconst serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n}) => {\n if (value instanceof Date) {\n return `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [\n ...values,\n key,\n allowReserved ? (v as string) : encodeURIComponent(v as string),\n ];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n\nconst defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(\n match,\n serializeArrayParam({ explode, name, style, value }),\n );\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const createQuerySerializer = <T = unknown>({\n allowReserved,\n array,\n object,\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n let search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n search = [\n ...search,\n serializeArrayParam({\n allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...array,\n }),\n ];\n continue;\n }\n\n if (typeof value === 'object') {\n search = [\n ...search,\n serializeObjectParam({\n allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...object,\n }),\n ];\n continue;\n }\n\n search = [\n ...search,\n serializePrimitiveParam({\n allowReserved,\n name,\n value: value as string,\n }),\n ];\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (\n contentType: string | null,\n): Exclude<Config['parseAs'], 'auto' | 'stream'> => {\n if (!contentType) {\n return;\n }\n\n const cleanContent = contentType.split(';')[0].trim();\n\n if (\n cleanContent.startsWith('application/json') ||\n cleanContent.endsWith('+json')\n ) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) =>\n cleanContent.startsWith(type),\n )\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = baseUrl + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n) => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header || typeof header !== 'object') {\n continue;\n }\n\n const iterator =\n header instanceof Headers ? header.entries() : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n response: Res,\n request: Req,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (\n request: Req,\n options: Options,\n) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n _fns: Interceptor[];\n\n constructor() {\n this._fns = [];\n }\n\n clear() {\n this._fns = [];\n }\n\n exists(fn: Interceptor) {\n return this._fns.indexOf(fn) !== -1;\n }\n\n eject(fn: Interceptor) {\n const index = this._fns.indexOf(fn);\n if (index !== -1) {\n this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)];\n }\n }\n\n use(fn: Interceptor) {\n this._fns = [...this._fns, fn];\n }\n}\n\n// `createInterceptors()` response, meant for external use as it does not\n// expose internals\nexport interface Middleware<Req, Res, Err, Options> {\n error: Pick<\n Interceptors<ErrInterceptor<Err, Res, Req, Options>>,\n 'eject' | 'use'\n >;\n request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;\n response: Pick<\n Interceptors<ResInterceptor<Res, Req, Options>>,\n 'eject' | 'use'\n >;\n}\n\n// do not add `Middleware` as return type so we can use _fns internally\nexport const createInterceptors = <Req, Res, Err, Options>() => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown) => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ) => {\n const data = new FormData();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: <T>(body: T) => JSON.stringify(body),\n};\n\nconst serializeUrlSearchParamsPair = (\n data: URLSearchParams,\n key: string,\n value: unknown,\n) => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ) => {\n const data = new URLSearchParams();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = (override: Config = {}): Config => ({\n ...jsonBodySerializer,\n baseUrl: '',\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/generated/client/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { getAuthToken } from '../core/auth';\nimport type {\n QuerySerializer,\n QuerySerializerOptions,\n} from '../core/bodySerializer';\nimport { jsonBodySerializer } from '../core/bodySerializer';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types';\n\ninterface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nconst PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\ntype ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\ntype ArraySeparatorStyle = ArrayStyle | MatrixStyle;\n\nconst defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(\n match,\n serializeArrayParam({ explode, name, style, value }),\n );\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const createQuerySerializer = <T = unknown>({\n allowReserved,\n array,\n object,\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (\n contentType: string | null,\n): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (\n cleanContent.startsWith('application/json') ||\n cleanContent.endsWith('+json')\n ) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) =>\n cleanContent.startsWith(type),\n )\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n\n return;\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) => {\n const url = getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header || typeof header !== 'object') {\n continue;\n }\n\n const iterator =\n header instanceof Headers ? header.entries() : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n response: Res,\n request: Req,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (\n request: Req,\n options: Options,\n) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n _fns: (Interceptor | null)[];\n\n constructor() {\n this._fns = [];\n }\n\n clear() {\n this._fns = [];\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this._fns[id] ? id : -1;\n } else {\n return this._fns.indexOf(id);\n }\n }\n exists(id: number | Interceptor) {\n const index = this.getInterceptorIndex(id);\n return !!this._fns[index];\n }\n\n eject(id: number | Interceptor) {\n const index = this.getInterceptorIndex(id);\n if (this._fns[index]) {\n this._fns[index] = null;\n }\n }\n\n update(id: number | Interceptor, fn: Interceptor) {\n const index = this.getInterceptorIndex(id);\n if (this._fns[index]) {\n this._fns[index] = fn;\n return id;\n } else {\n return false;\n }\n }\n\n use(fn: Interceptor) {\n this._fns = [...this._fns, fn];\n return this._fns.length - 1;\n }\n}\n\n// `createInterceptors()` response, meant for external use as it does not\n// expose internals\nexport interface Middleware<Req, Res, Err, Options> {\n error: Pick<\n Interceptors<ErrInterceptor<Err, Res, Req, Options>>,\n 'eject' | 'use'\n >;\n request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;\n response: Pick<\n Interceptors<ResInterceptor<Res, Req, Options>>,\n 'eject' | 'use'\n >;\n}\n\n// do not add `Middleware` as return type so we can use _fns internally\nexport const createInterceptors = <Req, Res, Err, Options>() => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ClientOptions, type Config } from './client/index.js';
|
|
2
|
+
import type { ClientOptions as ClientOptions2 } from './types.gen.js';
|
|
3
|
+
export type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;
|
|
4
|
+
export declare const client: import("./client/index.js").Client;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.gen.js","sourceRoot":"","sources":["../../src/generated/client.gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAavF,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAiB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC","sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://api.short.io' }));\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type AuthToken = string | undefined;
|
|
2
|
+
export interface Auth {
|
|
3
|
+
in?: 'header' | 'query' | 'cookie';
|
|
4
|
+
name?: string;
|
|
5
|
+
scheme?: 'basic' | 'bearer';
|
|
6
|
+
type: 'apiKey' | 'http';
|
|
7
|
+
}
|
|
8
|
+
export declare const getAuthToken: (auth: Auth, callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken) => Promise<string | undefined>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type AuthToken = string | undefined;
|
|
2
|
+
export interface Auth {
|
|
3
|
+
in?: 'header' | 'query' | 'cookie';
|
|
4
|
+
name?: string;
|
|
5
|
+
scheme?: 'basic' | 'bearer';
|
|
6
|
+
type: 'apiKey' | 'http';
|
|
7
|
+
}
|
|
8
|
+
export declare const getAuthToken: (auth: Auth, callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken) => Promise<string | undefined>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const getAuthToken = async (auth, callback) => {
|
|
2
|
+
const token = typeof callback === 'function' ? await callback(auth) : callback;
|
|
3
|
+
if (!token) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
if (auth.scheme === 'bearer') {
|
|
7
|
+
return `Bearer ${token}`;
|
|
8
|
+
}
|
|
9
|
+
if (auth.scheme === 'basic') {
|
|
10
|
+
return `Basic ${btoa(token)}`;
|
|
11
|
+
}
|
|
12
|
+
return token;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=auth.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.gen.js","sourceRoot":"","sources":["../../../src/generated/core/auth.gen.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAU,EACV,QAAsE,EACzC,EAAE;IAC/B,MAAM,KAAK,GACT,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,UAAU,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token =\n typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const getAuthToken = async (auth, callback) => {
|
|
2
|
+
const token = typeof callback === 'function' ? await callback(auth) : callback;
|
|
3
|
+
if (!token) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
if (auth.scheme === 'bearer') {
|
|
7
|
+
return `Bearer ${token}`;
|
|
8
|
+
}
|
|
9
|
+
if (auth.scheme === 'basic') {
|
|
10
|
+
return `Basic ${btoa(token)}`;
|
|
11
|
+
}
|
|
12
|
+
return token;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/generated/core/auth.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAU,EACV,QAAsE,EACzC,EAAE;IAC/B,MAAM,KAAK,GACT,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,UAAU,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["export type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token =\n typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.js';
|
|
2
|
+
export type QuerySerializer = (query: Record<string, unknown>) => string;
|
|
3
|
+
export type BodySerializer = (body: any) => any;
|
|
4
|
+
export interface QuerySerializerOptions {
|
|
5
|
+
allowReserved?: boolean;
|
|
6
|
+
array?: SerializerOptions<ArrayStyle>;
|
|
7
|
+
object?: SerializerOptions<ObjectStyle>;
|
|
8
|
+
}
|
|
9
|
+
export declare const formDataBodySerializer: {
|
|
10
|
+
bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(body: T) => FormData;
|
|
11
|
+
};
|
|
12
|
+
export declare const jsonBodySerializer: {
|
|
13
|
+
bodySerializer: <T>(body: T) => string;
|
|
14
|
+
};
|
|
15
|
+
export declare const urlSearchParamsBodySerializer: {
|
|
16
|
+
bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(body: T) => string;
|
|
17
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen.js';
|
|
2
|
+
export type QuerySerializer = (query: Record<string, unknown>) => string;
|
|
3
|
+
export type BodySerializer = (body: any) => any;
|
|
4
|
+
type QuerySerializerOptionsObject = {
|
|
5
|
+
allowReserved?: boolean;
|
|
6
|
+
array?: Partial<SerializerOptions<ArrayStyle>>;
|
|
7
|
+
object?: Partial<SerializerOptions<ObjectStyle>>;
|
|
8
|
+
};
|
|
9
|
+
export type QuerySerializerOptions = QuerySerializerOptionsObject & {
|
|
10
|
+
parameters?: Record<string, QuerySerializerOptionsObject>;
|
|
11
|
+
};
|
|
12
|
+
export declare const formDataBodySerializer: {
|
|
13
|
+
bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(body: T) => FormData;
|
|
14
|
+
};
|
|
15
|
+
export declare const jsonBodySerializer: {
|
|
16
|
+
bodySerializer: <T>(body: T) => string;
|
|
17
|
+
};
|
|
18
|
+
export declare const urlSearchParamsBodySerializer: {
|
|
19
|
+
bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(body: T) => string;
|
|
20
|
+
};
|
|
21
|
+
export {};
|