@alfresco/js-api 9.3.0-17240447502 → 9.3.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/esm2015/package.json +2 -2
- package/esm2015/src/alfrescoApi.js +14 -14
- package/esm2015/src/alfrescoApi.js.map +1 -1
- package/esm2015/src/alfrescoApiClient.js +28 -14
- package/esm2015/src/alfrescoApiClient.js.map +1 -1
- package/esm2015/src/api/content-custom-api/api/upload.api.js +52 -1
- package/esm2015/src/api/content-custom-api/api/upload.api.js.map +1 -1
- package/esm2015/src/api-clients/http-client.interface.js.map +1 -1
- package/esm2015/src/authentication/contentAuth.js +4 -7
- package/esm2015/src/authentication/contentAuth.js.map +1 -1
- package/esm2015/src/authentication/oauth2Auth.js +3 -4
- package/esm2015/src/authentication/oauth2Auth.js.map +1 -1
- package/esm2015/src/authentication/processAuth.js +3 -5
- package/esm2015/src/authentication/processAuth.js.map +1 -1
- package/esm2015/src/axiosHttpClient.js +283 -0
- package/esm2015/src/axiosHttpClient.js.map +1 -0
- package/esm5/package.json +2 -2
- package/esm5/src/alfrescoApi.js +14 -14
- package/esm5/src/alfrescoApi.js.map +1 -1
- package/esm5/src/alfrescoApiClient.js +28 -14
- package/esm5/src/alfrescoApiClient.js.map +1 -1
- package/esm5/src/api/content-custom-api/api/upload.api.js +52 -1
- package/esm5/src/api/content-custom-api/api/upload.api.js.map +1 -1
- package/esm5/src/api-clients/http-client.interface.js.map +1 -1
- package/esm5/src/authentication/contentAuth.js +4 -7
- package/esm5/src/authentication/contentAuth.js.map +1 -1
- package/esm5/src/authentication/oauth2Auth.js +3 -4
- package/esm5/src/authentication/oauth2Auth.js.map +1 -1
- package/esm5/src/authentication/processAuth.js +3 -5
- package/esm5/src/authentication/processAuth.js.map +1 -1
- package/esm5/src/axiosHttpClient.js +283 -0
- package/esm5/src/axiosHttpClient.js.map +1 -0
- package/package.json +2 -2
- package/src/alfrescoApi.js +14 -15
- package/src/alfrescoApi.js.map +1 -1
- package/src/alfrescoApiClient.js +28 -15
- package/src/alfrescoApiClient.js.map +1 -1
- package/src/api/content-custom-api/api/upload.api.js +52 -1
- package/src/api/content-custom-api/api/upload.api.js.map +1 -1
- package/src/api-clients/http-client.interface.js.map +1 -1
- package/src/authentication/contentAuth.js +4 -8
- package/src/authentication/contentAuth.js.map +1 -1
- package/src/authentication/oauth2Auth.js +3 -4
- package/src/authentication/oauth2Auth.js.map +1 -1
- package/src/authentication/processAuth.js +3 -6
- package/src/authentication/processAuth.js.map +1 -1
- package/src/axiosHttpClient.js +287 -0
- package/src/axiosHttpClient.js.map +1 -0
- package/typings/package.json +2 -2
- package/typings/src/alfrescoApi.d.ts +2 -10
- package/typings/src/alfrescoApiClient.d.ts +14 -11
- package/typings/src/api-clients/http-client.interface.d.ts +10 -3
- package/typings/src/authentication/oauth2Auth.d.ts +1 -1
- package/typings/src/{superagentHttpClient.d.ts → axiosHttpClient.d.ts} +5 -5
- package/esm2015/src/superagentHttpClient.js +0 -264
- package/esm2015/src/superagentHttpClient.js.map +0 -1
- package/esm5/src/superagentHttpClient.js +0 -264
- package/esm5/src/superagentHttpClient.js.map +0 -1
- package/src/superagentHttpClient.js +0 -269
- package/src/superagentHttpClient.js.map +0 -1
@@ -1,269 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
/*!
|
3
|
-
* @license
|
4
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
5
|
-
*
|
6
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
* you may not use this file except in compliance with the License.
|
8
|
-
* You may obtain a copy of the License at
|
9
|
-
*
|
10
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
*
|
12
|
-
* Unless required by applicable law or agreed to in writing, software
|
13
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
* See the License for the specific language governing permissions and
|
16
|
-
* limitations under the License.
|
17
|
-
*/
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
19
|
-
exports.SuperagentHttpClient = void 0;
|
20
|
-
const tslib_1 = require("tslib");
|
21
|
-
const superagent_1 = tslib_1.__importDefault(require("superagent"));
|
22
|
-
const utils_1 = require("./utils");
|
23
|
-
const isProgressEvent = (event) => event === null || event === void 0 ? void 0 : event.lengthComputable;
|
24
|
-
class SuperagentHttpClient {
|
25
|
-
constructor() {
|
26
|
-
this.timeout = undefined;
|
27
|
-
}
|
28
|
-
post(url, options, securityOptions, emitters) {
|
29
|
-
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'POST' }), securityOptions, emitters);
|
30
|
-
}
|
31
|
-
put(url, options, securityOptions, emitters) {
|
32
|
-
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'PUT' }), securityOptions, emitters);
|
33
|
-
}
|
34
|
-
get(url, options, securityOptions, emitters) {
|
35
|
-
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'GET' }), securityOptions, emitters);
|
36
|
-
}
|
37
|
-
delete(url, options, securityOptions, emitters) {
|
38
|
-
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'DELETE' }), securityOptions, emitters);
|
39
|
-
}
|
40
|
-
request(url, options, securityOptions, emitters) {
|
41
|
-
const { httpMethod, queryParams, headerParams, formParams, bodyParam, contentType, accept, responseType, returnType } = options;
|
42
|
-
const { eventEmitter, apiClientEmitter } = emitters;
|
43
|
-
let request = this.buildRequest(httpMethod, url, queryParams, headerParams, formParams, bodyParam, contentType, accept, responseType, eventEmitter, returnType, securityOptions);
|
44
|
-
if (returnType === 'Binary') {
|
45
|
-
request = request.buffer(true).parse(superagent_1.default.parse['application/octet-stream']);
|
46
|
-
}
|
47
|
-
const promise = new Promise((resolve, reject) => {
|
48
|
-
request.on('abort', () => {
|
49
|
-
eventEmitter.emit('abort');
|
50
|
-
});
|
51
|
-
request.end((error, response) => {
|
52
|
-
if (error) {
|
53
|
-
apiClientEmitter.emit('error', error);
|
54
|
-
eventEmitter.emit('error', error);
|
55
|
-
if (error.status === 401) {
|
56
|
-
apiClientEmitter.emit('unauthorized');
|
57
|
-
eventEmitter.emit('unauthorized');
|
58
|
-
}
|
59
|
-
if (response === null || response === void 0 ? void 0 : response.text) {
|
60
|
-
error = error || {};
|
61
|
-
reject(Object.assign(error, { message: response.text }));
|
62
|
-
}
|
63
|
-
else {
|
64
|
-
reject({ error });
|
65
|
-
}
|
66
|
-
}
|
67
|
-
else {
|
68
|
-
if (securityOptions.isBpmRequest) {
|
69
|
-
const hasSetCookie = Object.prototype.hasOwnProperty.call(response.header, 'set-cookie');
|
70
|
-
if (response.header && hasSetCookie) {
|
71
|
-
securityOptions.authentications.cookie = response.header['set-cookie'][0];
|
72
|
-
}
|
73
|
-
}
|
74
|
-
let data = {};
|
75
|
-
if (response.type === 'text/html') {
|
76
|
-
data = SuperagentHttpClient.deserialize(response);
|
77
|
-
}
|
78
|
-
else {
|
79
|
-
data = SuperagentHttpClient.deserialize(response, returnType);
|
80
|
-
}
|
81
|
-
eventEmitter.emit('success', data);
|
82
|
-
resolve(data);
|
83
|
-
}
|
84
|
-
});
|
85
|
-
});
|
86
|
-
promise.abort = function () {
|
87
|
-
request.abort();
|
88
|
-
return this;
|
89
|
-
};
|
90
|
-
return promise;
|
91
|
-
}
|
92
|
-
buildRequest(httpMethod, url, queryParams, headerParams, formParams, bodyParam, contentType, accept, responseType, eventEmitter, returnType, securityOptions) {
|
93
|
-
const request = (0, superagent_1.default)(httpMethod, url);
|
94
|
-
const { isBpmRequest, authentications, defaultHeaders = {}, enableCsrf, withCredentials = false } = securityOptions;
|
95
|
-
this.applyAuthToRequest(request, authentications);
|
96
|
-
request.query(SuperagentHttpClient.normalizeParams(queryParams));
|
97
|
-
request.set(defaultHeaders).set(SuperagentHttpClient.normalizeParams(headerParams));
|
98
|
-
if (isBpmRequest && enableCsrf) {
|
99
|
-
this.setCsrfToken(request);
|
100
|
-
}
|
101
|
-
if (withCredentials) {
|
102
|
-
request.withCredentials();
|
103
|
-
}
|
104
|
-
if (isBpmRequest) {
|
105
|
-
request.withCredentials();
|
106
|
-
if (securityOptions.authentications.cookie) {
|
107
|
-
if (!(0, utils_1.isBrowser)()) {
|
108
|
-
request.set('Cookie', securityOptions.authentications.cookie);
|
109
|
-
}
|
110
|
-
}
|
111
|
-
}
|
112
|
-
request.timeout(this.timeout);
|
113
|
-
if (contentType && contentType !== 'multipart/form-data') {
|
114
|
-
request.type(contentType);
|
115
|
-
}
|
116
|
-
else if (!request.header['Content-Type'] && contentType !== 'multipart/form-data') {
|
117
|
-
request.type('application/json');
|
118
|
-
}
|
119
|
-
if (contentType === 'application/x-www-form-urlencoded') {
|
120
|
-
request.send(SuperagentHttpClient.normalizeParams(formParams)).on('progress', (event) => {
|
121
|
-
this.progress(event, eventEmitter);
|
122
|
-
});
|
123
|
-
}
|
124
|
-
else if (contentType === 'multipart/form-data') {
|
125
|
-
const _formParams = SuperagentHttpClient.normalizeParams(formParams);
|
126
|
-
for (const key in _formParams) {
|
127
|
-
if (Object.prototype.hasOwnProperty.call(_formParams, key)) {
|
128
|
-
if (SuperagentHttpClient.isFileParam(_formParams[key])) {
|
129
|
-
request.attach(key, _formParams[key]).on('progress', (event) => {
|
130
|
-
this.progress(event, eventEmitter);
|
131
|
-
});
|
132
|
-
}
|
133
|
-
else {
|
134
|
-
request.field(key, _formParams[key]).on('progress', (event) => {
|
135
|
-
this.progress(event, eventEmitter);
|
136
|
-
});
|
137
|
-
}
|
138
|
-
}
|
139
|
-
}
|
140
|
-
}
|
141
|
-
else if (bodyParam) {
|
142
|
-
request.send(bodyParam).on('progress', (event) => {
|
143
|
-
this.progress(event, eventEmitter);
|
144
|
-
});
|
145
|
-
}
|
146
|
-
if (accept) {
|
147
|
-
request.accept(accept);
|
148
|
-
}
|
149
|
-
if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob') {
|
150
|
-
request.responseType('blob');
|
151
|
-
}
|
152
|
-
else if (returnType === 'String') {
|
153
|
-
request.responseType('string');
|
154
|
-
}
|
155
|
-
return request;
|
156
|
-
}
|
157
|
-
setCsrfToken(request) {
|
158
|
-
const token = SuperagentHttpClient.createCSRFToken();
|
159
|
-
request.set('X-CSRF-TOKEN', token);
|
160
|
-
if (!(0, utils_1.isBrowser)()) {
|
161
|
-
request.set('Cookie', 'CSRF-TOKEN=' + token + ';path=/');
|
162
|
-
}
|
163
|
-
try {
|
164
|
-
document.cookie = 'CSRF-TOKEN=' + token + ';path=/';
|
165
|
-
}
|
166
|
-
catch (_a) {
|
167
|
-
}
|
168
|
-
}
|
169
|
-
applyAuthToRequest(request, authentications) {
|
170
|
-
if (authentications) {
|
171
|
-
switch (authentications.type) {
|
172
|
-
case 'basic': {
|
173
|
-
const basicAuth = authentications.basicAuth;
|
174
|
-
if (basicAuth.username || basicAuth.password) {
|
175
|
-
request.auth(basicAuth.username || '', basicAuth.password || '');
|
176
|
-
}
|
177
|
-
break;
|
178
|
-
}
|
179
|
-
case 'activiti': {
|
180
|
-
if (authentications.basicAuth.ticket) {
|
181
|
-
request.set({ Authorization: authentications.basicAuth.ticket });
|
182
|
-
}
|
183
|
-
break;
|
184
|
-
}
|
185
|
-
case 'oauth2': {
|
186
|
-
const oauth2 = authentications.oauth2;
|
187
|
-
if (oauth2.accessToken) {
|
188
|
-
request.set({ Authorization: 'Bearer ' + oauth2.accessToken });
|
189
|
-
}
|
190
|
-
break;
|
191
|
-
}
|
192
|
-
default:
|
193
|
-
throw new Error('Unknown authentication type: ' + authentications.type);
|
194
|
-
}
|
195
|
-
}
|
196
|
-
}
|
197
|
-
progress(event, eventEmitter) {
|
198
|
-
if (isProgressEvent(event)) {
|
199
|
-
const percent = Math.round((event.loaded / event.total) * 100);
|
200
|
-
const progress = {
|
201
|
-
total: event.total,
|
202
|
-
loaded: event.loaded,
|
203
|
-
percent
|
204
|
-
};
|
205
|
-
eventEmitter.emit('progress', progress);
|
206
|
-
}
|
207
|
-
}
|
208
|
-
static createCSRFToken(a) {
|
209
|
-
return a
|
210
|
-
? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
|
211
|
-
: ([1e16] + (1e16).toString()).replace(/[01]/g, SuperagentHttpClient.createCSRFToken);
|
212
|
-
}
|
213
|
-
static deserialize(response, returnType) {
|
214
|
-
if (response === null) {
|
215
|
-
return null;
|
216
|
-
}
|
217
|
-
let data = response.body;
|
218
|
-
if (data === null) {
|
219
|
-
data = response.text;
|
220
|
-
}
|
221
|
-
if (returnType) {
|
222
|
-
if (returnType === 'blob' && (0, utils_1.isBrowser)()) {
|
223
|
-
data = new Blob([data], { type: response.header['content-type'] });
|
224
|
-
}
|
225
|
-
else if (returnType === 'blob' && !(0, utils_1.isBrowser)()) {
|
226
|
-
data = new Buffer.from(data, 'binary');
|
227
|
-
}
|
228
|
-
else if (Array.isArray(data)) {
|
229
|
-
data = data.map((element) => new returnType(element));
|
230
|
-
}
|
231
|
-
else {
|
232
|
-
data = new returnType(data);
|
233
|
-
}
|
234
|
-
}
|
235
|
-
return data;
|
236
|
-
}
|
237
|
-
static normalizeParams(params) {
|
238
|
-
const newParams = {};
|
239
|
-
for (const key in params) {
|
240
|
-
if (Object.prototype.hasOwnProperty.call(params, key) && params[key] !== undefined && params[key] !== null) {
|
241
|
-
const value = params[key];
|
242
|
-
if (SuperagentHttpClient.isFileParam(value) || Array.isArray(value)) {
|
243
|
-
newParams[key] = value;
|
244
|
-
}
|
245
|
-
else {
|
246
|
-
newParams[key] = (0, utils_1.paramToString)(value);
|
247
|
-
}
|
248
|
-
}
|
249
|
-
}
|
250
|
-
return newParams;
|
251
|
-
}
|
252
|
-
static isFileParam(param) {
|
253
|
-
if (typeof Buffer === 'function' && (param instanceof Buffer || param.path)) {
|
254
|
-
return true;
|
255
|
-
}
|
256
|
-
if (typeof Blob === 'function' && param instanceof Blob) {
|
257
|
-
return true;
|
258
|
-
}
|
259
|
-
if (typeof File === 'function' && param instanceof File) {
|
260
|
-
return true;
|
261
|
-
}
|
262
|
-
if (typeof File === 'object' && param instanceof File) {
|
263
|
-
return true;
|
264
|
-
}
|
265
|
-
return false;
|
266
|
-
}
|
267
|
-
}
|
268
|
-
exports.SuperagentHttpClient = SuperagentHttpClient;
|
269
|
-
//# sourceMappingURL=../../../../lib/js-api/src/superagentHttpClient.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"superagentHttpClient.js","sourceRoot":"","sources":["superagentHttpClient.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ee, { Emitter } from 'event-emitter';\nimport superagent, { Response, SuperAgentRequest } from 'superagent';\nimport { Authentication } from './authentication/authentication';\nimport { RequestOptions, HttpClient, SecurityOptions, Emitters } from './api-clients/http-client.interface';\nimport { Oauth2 } from './authentication/oauth2';\nimport { BasicAuth } from './authentication/basicAuth';\nimport { isBrowser, paramToString } from './utils';\n\ndeclare const Blob: any;\ndeclare const Buffer: any;\n\nconst isProgressEvent = (event: ProgressEvent | unknown): event is ProgressEvent => (event as ProgressEvent)?.lengthComputable;\n\nexport class SuperagentHttpClient implements HttpClient {\n /**\n * The default HTTP timeout for all API calls.\n */\n timeout: number | { deadline?: number; response?: number } = undefined;\n\n post<T = any>(url: string, options: RequestOptions, securityOptions: SecurityOptions, emitters: Emitters): Promise<T> {\n return this.request<T>(url, { ...options, httpMethod: 'POST' }, securityOptions, emitters);\n }\n\n put<T = any>(url: string, options: RequestOptions, securityOptions: SecurityOptions, emitters: Emitters): Promise<T> {\n return this.request<T>(url, { ...options, httpMethod: 'PUT' }, securityOptions, emitters);\n }\n\n get<T = any>(url: string, options: RequestOptions, securityOptions: SecurityOptions, emitters: Emitters): Promise<T> {\n return this.request<T>(url, { ...options, httpMethod: 'GET' }, securityOptions, emitters);\n }\n\n delete<T = void>(url: string, options: RequestOptions, securityOptions: SecurityOptions, emitters: Emitters): Promise<T> {\n return this.request<T>(url, { ...options, httpMethod: 'DELETE' }, securityOptions, emitters);\n }\n\n request<T = any>(url: string, options: RequestOptions, securityOptions: SecurityOptions, emitters: Emitters): Promise<T> {\n const { httpMethod, queryParams, headerParams, formParams, bodyParam, contentType, accept, responseType, returnType } = options;\n const { eventEmitter, apiClientEmitter } = emitters;\n\n let request = this.buildRequest(\n httpMethod,\n url,\n queryParams,\n headerParams,\n formParams,\n bodyParam,\n contentType,\n accept,\n responseType,\n eventEmitter,\n returnType,\n securityOptions\n );\n\n if (returnType === 'Binary') {\n request = request.buffer(true).parse(superagent.parse['application/octet-stream']);\n }\n\n const promise: any = new Promise((resolve, reject) => {\n request.on('abort', () => {\n eventEmitter.emit('abort');\n });\n request.end((error: any, response: Response) => {\n if (error) {\n apiClientEmitter.emit('error', error);\n eventEmitter.emit('error', error);\n\n if (error.status === 401) {\n apiClientEmitter.emit('unauthorized');\n eventEmitter.emit('unauthorized');\n }\n\n if (response?.text) {\n error = error || {};\n reject(Object.assign(error, { message: response.text }));\n } else {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject({ error });\n }\n } else {\n if (securityOptions.isBpmRequest) {\n const hasSetCookie = Object.prototype.hasOwnProperty.call(response.header, 'set-cookie');\n if (response.header && hasSetCookie) {\n // mutate the passed value from AlfrescoApiClient class for backward compatibility\n securityOptions.authentications.cookie = response.header['set-cookie'][0];\n }\n }\n let data = {};\n if (response.type === 'text/html') {\n data = SuperagentHttpClient.deserialize(response);\n } else {\n data = SuperagentHttpClient.deserialize(response, returnType);\n }\n\n eventEmitter.emit('success', data);\n resolve(data);\n }\n });\n });\n\n promise.abort = function () {\n request.abort();\n return this;\n };\n\n return promise;\n }\n\n private buildRequest(\n httpMethod: string,\n url: string,\n queryParams: { [key: string]: any },\n headerParams: { [key: string]: any },\n formParams: { [key: string]: any },\n // eslint-disable-next-line @typescript-eslint/ban-types\n bodyParam: string | Object,\n contentType: string,\n accept: string,\n responseType: string,\n eventEmitter: ee.Emitter,\n returnType: string,\n securityOptions: SecurityOptions\n ) {\n const request = superagent(httpMethod, url);\n\n const { isBpmRequest, authentications, defaultHeaders = {}, enableCsrf, withCredentials = false } = securityOptions;\n\n // apply authentications\n this.applyAuthToRequest(request, authentications);\n\n // set query parameters\n request.query(SuperagentHttpClient.normalizeParams(queryParams));\n\n // set header parameters\n request.set(defaultHeaders).set(SuperagentHttpClient.normalizeParams(headerParams));\n\n if (isBpmRequest && enableCsrf) {\n this.setCsrfToken(request);\n }\n\n if (withCredentials) {\n request.withCredentials();\n }\n\n // add cookie for activiti\n if (isBpmRequest) {\n request.withCredentials();\n if (securityOptions.authentications.cookie) {\n if (!isBrowser()) {\n request.set('Cookie', securityOptions.authentications.cookie);\n }\n }\n }\n\n // set request timeout\n request.timeout(this.timeout);\n\n if (contentType && contentType !== 'multipart/form-data') {\n request.type(contentType);\n } else if (!(request as any).header['Content-Type'] && contentType !== 'multipart/form-data') {\n request.type('application/json');\n }\n\n if (contentType === 'application/x-www-form-urlencoded') {\n request.send(SuperagentHttpClient.normalizeParams(formParams)).on('progress', (event: any) => {\n this.progress(event, eventEmitter);\n });\n } else if (contentType === 'multipart/form-data') {\n const _formParams = SuperagentHttpClient.normalizeParams(formParams);\n for (const key in _formParams) {\n if (Object.prototype.hasOwnProperty.call(_formParams, key)) {\n if (SuperagentHttpClient.isFileParam(_formParams[key])) {\n // file field\n request.attach(key, _formParams[key]).on('progress', (event: ProgressEvent) => {\n // jshint ignore:line\n this.progress(event, eventEmitter);\n });\n } else {\n request.field(key, _formParams[key]).on('progress', (event: ProgressEvent) => {\n // jshint ignore:line\n this.progress(event, eventEmitter);\n });\n }\n }\n }\n } else if (bodyParam) {\n request.send(bodyParam).on('progress', (event: any) => {\n this.progress(event, eventEmitter);\n });\n }\n\n if (accept) {\n request.accept(accept);\n }\n\n if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob') {\n request.responseType('blob');\n } else if (returnType === 'String') {\n request.responseType('string');\n }\n\n return request;\n }\n\n setCsrfToken(request: SuperAgentRequest): void {\n const token = SuperagentHttpClient.createCSRFToken();\n request.set('X-CSRF-TOKEN', token);\n\n if (!isBrowser()) {\n request.set('Cookie', 'CSRF-TOKEN=' + token + ';path=/');\n }\n\n try {\n document.cookie = 'CSRF-TOKEN=' + token + ';path=/';\n } catch {\n /* continue regardless of error */\n }\n }\n\n /**\n * Applies authentication headers to the request.\n * @param request The request object created by a <code>superagent()</code> call.\n * @param authentications authentications\n */\n private applyAuthToRequest(request: SuperAgentRequest, authentications: Authentication) {\n if (authentications) {\n switch (authentications.type) {\n case 'basic': {\n const basicAuth: BasicAuth = authentications.basicAuth;\n if (basicAuth.username || basicAuth.password) {\n request.auth(basicAuth.username || '', basicAuth.password || '');\n }\n break;\n }\n case 'activiti': {\n if (authentications.basicAuth.ticket) {\n request.set({ Authorization: authentications.basicAuth.ticket });\n }\n break;\n }\n case 'oauth2': {\n const oauth2: Oauth2 = authentications.oauth2;\n if (oauth2.accessToken) {\n request.set({ Authorization: 'Bearer ' + oauth2.accessToken });\n }\n break;\n }\n default:\n throw new Error('Unknown authentication type: ' + authentications.type);\n }\n }\n }\n\n private progress(event: ProgressEvent | unknown, eventEmitter: Emitter): void {\n if (isProgressEvent(event)) {\n const percent = Math.round((event.loaded / event.total) * 100);\n\n const progress = {\n total: event.total,\n loaded: event.loaded,\n percent\n };\n\n eventEmitter.emit('progress', progress);\n }\n }\n\n private static createCSRFToken(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ([1e16] + (1e16).toString()).replace(/[01]/g, SuperagentHttpClient.createCSRFToken);\n }\n\n /**\n * Deserializes an HTTP response body into a value of the specified type.\n * @param response A SuperAgent response object.\n * @param returnType The type to return. Pass a string for simple types\n * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n * all properties on <code>data<code> will be converted to this type.\n * @returns A value of the specified type.\n */\n private static deserialize(response: Response, returnType?: any): any {\n if (response === null) {\n return null;\n }\n\n let data = response.body;\n\n if (data === null) {\n data = response.text;\n }\n\n if (returnType) {\n if (returnType === 'blob' && isBrowser()) {\n data = new Blob([data], { type: response.header['content-type'] });\n } else if (returnType === 'blob' && !isBrowser()) {\n data = new Buffer.from(data, 'binary');\n } else if (Array.isArray(data)) {\n data = data.map((element) => new returnType(element));\n } else {\n data = new returnType(data);\n }\n }\n\n return data;\n }\n\n /**\n * Normalizes parameter values:\n * <ul>\n * <li>remove nils</li>\n * <li>keep files and arrays</li>\n * <li>format to string with `paramToString` for other cases</li>\n * </ul>\n * @param params The parameters as object properties.\n * @returns normalized parameters.\n */\n private static normalizeParams(params: { [key: string]: any }): { [key: string]: any } {\n const newParams: { [key: string]: any } = {};\n\n for (const key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key) && params[key] !== undefined && params[key] !== null) {\n const value = params[key];\n if (SuperagentHttpClient.isFileParam(value) || Array.isArray(value)) {\n newParams[key] = value;\n } else {\n newParams[key] = paramToString(value);\n }\n }\n }\n return newParams;\n }\n\n /**\n * Checks whether the given parameter value represents file-like content.\n * @param param The parameter to check.\n * @returns <code>true</code> if <code>param</code> represents a file.\n */\n private static isFileParam(param: any): boolean {\n // Buffer in Node.js\n if (typeof Buffer === 'function' && (param instanceof Buffer || param.path)) {\n return true;\n }\n // Blob in browser\n if (typeof Blob === 'function' && param instanceof Blob) {\n return true;\n }\n // File in browser (it seems File object is also instance of Blob, but keep this for safe)\n if (typeof File === 'function' && param instanceof File) {\n return true;\n }\n // Safari fix\n if (typeof File === 'object' && param instanceof File) {\n return true;\n }\n\n return false;\n }\n}\n"]}
|