@alfresco/js-api 9.5.0-25850979174 → 9.5.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 +1 -2
- package/esm2015/src/alfrescoApiClient.js +2 -2
- package/esm2015/src/alfrescoApiClient.js.map +1 -1
- package/esm2015/src/authentication/oauth2Auth.js +9 -5
- package/esm2015/src/authentication/oauth2Auth.js.map +1 -1
- package/esm2015/src/fetchHttpClient.js +409 -0
- package/esm2015/src/fetchHttpClient.js.map +1 -0
- package/esm2015/src/utils/is-browser.js.map +1 -1
- package/esm5/package.json +1 -2
- package/esm5/src/alfrescoApiClient.js +2 -2
- package/esm5/src/alfrescoApiClient.js.map +1 -1
- package/esm5/src/authentication/oauth2Auth.js +9 -5
- package/esm5/src/authentication/oauth2Auth.js.map +1 -1
- package/esm5/src/fetchHttpClient.js +409 -0
- package/esm5/src/fetchHttpClient.js.map +1 -0
- package/esm5/src/utils/is-browser.js.map +1 -1
- package/package.json +1 -2
- package/src/alfrescoApiClient.js +2 -2
- package/src/alfrescoApiClient.js.map +1 -1
- package/src/authentication/oauth2Auth.js +9 -5
- package/src/authentication/oauth2Auth.js.map +1 -1
- package/src/fetchHttpClient.js +413 -0
- package/src/fetchHttpClient.js.map +1 -0
- package/src/utils/is-browser.js.map +1 -1
- package/typings/package.json +1 -2
- package/typings/src/fetchHttpClient.d.ts +45 -0
- 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
- package/typings/src/superagentHttpClient.d.ts +0 -69
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { __awaiter } from "tslib";
|
|
18
|
+
import { isBrowser, paramToString } from './utils';
|
|
19
|
+
export class FetchHttpClient {
|
|
20
|
+
constructor(customFetch) {
|
|
21
|
+
this.timeout = undefined;
|
|
22
|
+
this.customFetch = customFetch;
|
|
23
|
+
}
|
|
24
|
+
getFetch() {
|
|
25
|
+
return this.customFetch || (typeof process !== 'undefined' && process.__test_fetch__) || globalThis.fetch;
|
|
26
|
+
}
|
|
27
|
+
hasNativeXhr() {
|
|
28
|
+
if (this.customFetch || (typeof process !== 'undefined' && process.__test_fetch__)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return typeof XMLHttpRequest !== 'undefined';
|
|
32
|
+
}
|
|
33
|
+
post(url, options, securityOptions, emitters) {
|
|
34
|
+
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'POST' }), securityOptions, emitters);
|
|
35
|
+
}
|
|
36
|
+
put(url, options, securityOptions, emitters) {
|
|
37
|
+
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'PUT' }), securityOptions, emitters);
|
|
38
|
+
}
|
|
39
|
+
get(url, options, securityOptions, emitters) {
|
|
40
|
+
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'GET' }), securityOptions, emitters);
|
|
41
|
+
}
|
|
42
|
+
delete(url, options, securityOptions, emitters) {
|
|
43
|
+
return this.request(url, Object.assign(Object.assign({}, options), { httpMethod: 'DELETE' }), securityOptions, emitters);
|
|
44
|
+
}
|
|
45
|
+
request(url, options, securityOptions, emitters) {
|
|
46
|
+
const { httpMethod, queryParams, headerParams, formParams, bodyParam, contentType, accept, responseType, returnType } = options;
|
|
47
|
+
const headers = this.buildHeaders(headerParams, securityOptions, contentType, accept);
|
|
48
|
+
const queryString = FetchHttpClient.buildQueryString(queryParams);
|
|
49
|
+
const fullUrl = queryString ? `${url}${url.includes('?') ? '&' : '?'}${queryString}` : url;
|
|
50
|
+
const body = this.buildBody(contentType, formParams, bodyParam);
|
|
51
|
+
const hasBody = body !== undefined && httpMethod !== 'GET' && httpMethod !== 'HEAD';
|
|
52
|
+
const withCredentials = securityOptions.withCredentials || securityOptions.isBpmRequest;
|
|
53
|
+
if (hasBody && this.hasNativeXhr()) {
|
|
54
|
+
return this.requestWithXhr(fullUrl, httpMethod, headers, body, withCredentials, returnType, responseType, securityOptions, emitters);
|
|
55
|
+
}
|
|
56
|
+
return this.requestWithFetch(fullUrl, httpMethod, headers, hasBody ? body : undefined, withCredentials, returnType, responseType, securityOptions, emitters);
|
|
57
|
+
}
|
|
58
|
+
requestWithFetch(url, method, headers, body, withCredentials, returnType, responseType, securityOptions, emitters) {
|
|
59
|
+
var _a;
|
|
60
|
+
const { eventEmitter } = emitters;
|
|
61
|
+
const controller = new AbortController();
|
|
62
|
+
const timeoutMs = typeof this.timeout === 'number' ? this.timeout : (_a = this.timeout) === null || _a === void 0 ? void 0 : _a.deadline;
|
|
63
|
+
if (timeoutMs) {
|
|
64
|
+
if (typeof AbortSignal.timeout === 'function') {
|
|
65
|
+
AbortSignal.timeout(timeoutMs).addEventListener('abort', () => controller.abort());
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
setTimeout(() => controller.abort(), timeoutMs);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const init = {
|
|
72
|
+
method,
|
|
73
|
+
headers,
|
|
74
|
+
signal: controller.signal,
|
|
75
|
+
credentials: withCredentials ? 'include' : 'same-origin'
|
|
76
|
+
};
|
|
77
|
+
if (body !== undefined) {
|
|
78
|
+
init.body = body;
|
|
79
|
+
}
|
|
80
|
+
const fn = this.getFetch();
|
|
81
|
+
const promise = new Promise((resolve, reject) => {
|
|
82
|
+
const execute = () => __awaiter(this, void 0, void 0, function* () {
|
|
83
|
+
const response = yield fn(url, init);
|
|
84
|
+
if (!response.ok) {
|
|
85
|
+
const errorText = yield response.text().catch(() => '');
|
|
86
|
+
const error = new Error(errorText || response.statusText);
|
|
87
|
+
error.status = response.status;
|
|
88
|
+
error.response = response;
|
|
89
|
+
FetchHttpClient.emitErrorEvents(error, response.status, emitters);
|
|
90
|
+
reject({ error, status: response.status, message: errorText || response.statusText });
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (securityOptions.isBpmRequest) {
|
|
94
|
+
const setCookie = response.headers.get('set-cookie');
|
|
95
|
+
if (setCookie) {
|
|
96
|
+
securityOptions.authentications.cookie = setCookie;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const data = yield this.deserializeResponse(response, returnType, responseType);
|
|
100
|
+
eventEmitter.emit('success', data);
|
|
101
|
+
resolve(data);
|
|
102
|
+
});
|
|
103
|
+
execute().catch((error) => {
|
|
104
|
+
if (error.name === 'AbortError') {
|
|
105
|
+
eventEmitter.emit('abort');
|
|
106
|
+
reject(error);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (!error.status) {
|
|
110
|
+
FetchHttpClient.emitErrorEvents(error, 0, emitters);
|
|
111
|
+
}
|
|
112
|
+
reject(error.status ? { error, status: error.status, message: error.message } : { error });
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
promise.abort = () => {
|
|
116
|
+
controller.abort();
|
|
117
|
+
return promise;
|
|
118
|
+
};
|
|
119
|
+
return promise;
|
|
120
|
+
}
|
|
121
|
+
requestWithXhr(url, method, headers, body, withCredentials, returnType, responseType, securityOptions, emitters) {
|
|
122
|
+
var _a;
|
|
123
|
+
const { eventEmitter } = emitters;
|
|
124
|
+
const timeoutMs = typeof this.timeout === 'number' ? this.timeout : (_a = this.timeout) === null || _a === void 0 ? void 0 : _a.deadline;
|
|
125
|
+
let xhr;
|
|
126
|
+
const promise = new Promise((resolve, reject) => {
|
|
127
|
+
xhr = new XMLHttpRequest();
|
|
128
|
+
xhr.open(method, url, true);
|
|
129
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
130
|
+
xhr.setRequestHeader(key, value);
|
|
131
|
+
}
|
|
132
|
+
if (withCredentials) {
|
|
133
|
+
xhr.withCredentials = true;
|
|
134
|
+
}
|
|
135
|
+
if (timeoutMs) {
|
|
136
|
+
xhr.timeout = timeoutMs;
|
|
137
|
+
}
|
|
138
|
+
if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob' || returnType === 'Binary') {
|
|
139
|
+
xhr.responseType = 'blob';
|
|
140
|
+
}
|
|
141
|
+
xhr.upload.onprogress = (event) => {
|
|
142
|
+
if (event.lengthComputable) {
|
|
143
|
+
const percent = Math.round((event.loaded / event.total) * 100);
|
|
144
|
+
eventEmitter.emit('progress', { total: event.total, loaded: event.loaded, percent });
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
xhr.onload = () => {
|
|
148
|
+
if (xhr.status >= 200 && xhr.status < 300) {
|
|
149
|
+
if (securityOptions.isBpmRequest) {
|
|
150
|
+
const setCookie = xhr.getResponseHeader('set-cookie');
|
|
151
|
+
if (setCookie) {
|
|
152
|
+
securityOptions.authentications.cookie = setCookie;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
const data = this.deserializeXhrResponse(xhr, returnType, responseType);
|
|
156
|
+
eventEmitter.emit('success', data);
|
|
157
|
+
resolve(data);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
const errorText = xhr.responseText || xhr.statusText;
|
|
161
|
+
const error = new Error(errorText);
|
|
162
|
+
error.status = xhr.status;
|
|
163
|
+
error.message = errorText;
|
|
164
|
+
FetchHttpClient.emitErrorEvents(error, xhr.status, emitters);
|
|
165
|
+
reject({ error, status: xhr.status, message: errorText });
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
xhr.onerror = () => {
|
|
169
|
+
const error = new Error('Network request failed');
|
|
170
|
+
FetchHttpClient.emitErrorEvents(error, 0, emitters);
|
|
171
|
+
reject({ error });
|
|
172
|
+
};
|
|
173
|
+
xhr.onabort = () => {
|
|
174
|
+
eventEmitter.emit('abort');
|
|
175
|
+
reject(new DOMException('The operation was aborted.', 'AbortError'));
|
|
176
|
+
};
|
|
177
|
+
xhr.ontimeout = () => {
|
|
178
|
+
const error = new Error('Request timed out');
|
|
179
|
+
FetchHttpClient.emitErrorEvents(error, 0, emitters);
|
|
180
|
+
reject({ error });
|
|
181
|
+
};
|
|
182
|
+
xhr.send(body);
|
|
183
|
+
});
|
|
184
|
+
promise.abort = () => {
|
|
185
|
+
if (xhr) {
|
|
186
|
+
xhr.abort();
|
|
187
|
+
}
|
|
188
|
+
return promise;
|
|
189
|
+
};
|
|
190
|
+
return promise;
|
|
191
|
+
}
|
|
192
|
+
deserializeXhrResponse(xhr, returnType, responseType) {
|
|
193
|
+
if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob' || returnType === 'Binary') {
|
|
194
|
+
return xhr.response;
|
|
195
|
+
}
|
|
196
|
+
if (returnType === 'String') {
|
|
197
|
+
return xhr.responseText;
|
|
198
|
+
}
|
|
199
|
+
const contentType = xhr.getResponseHeader('content-type') || '';
|
|
200
|
+
if (contentType.includes('text/html')) {
|
|
201
|
+
return xhr.responseText;
|
|
202
|
+
}
|
|
203
|
+
try {
|
|
204
|
+
const text = xhr.responseText;
|
|
205
|
+
if (!text) {
|
|
206
|
+
return {};
|
|
207
|
+
}
|
|
208
|
+
const data = JSON.parse(text);
|
|
209
|
+
if (returnType && Array.isArray(data)) {
|
|
210
|
+
return data.map((element) => new returnType(element));
|
|
211
|
+
}
|
|
212
|
+
if (returnType && typeof returnType === 'function') {
|
|
213
|
+
return new returnType(data);
|
|
214
|
+
}
|
|
215
|
+
return data;
|
|
216
|
+
}
|
|
217
|
+
catch (_a) {
|
|
218
|
+
return xhr.responseText || '';
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
setCsrfToken(headers) {
|
|
222
|
+
const token = FetchHttpClient.createCSRFToken();
|
|
223
|
+
headers['X-CSRF-TOKEN'] = token;
|
|
224
|
+
if (!isBrowser()) {
|
|
225
|
+
headers['Cookie'] = 'CSRF-TOKEN=' + token + ';path=/';
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
document.cookie = 'CSRF-TOKEN=' + token + ';path=/';
|
|
229
|
+
}
|
|
230
|
+
catch (_a) {
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
buildHeaders(headerParams, securityOptions, contentType, accept) {
|
|
234
|
+
const headers = Object.assign(Object.assign({}, securityOptions.defaultHeaders), FetchHttpClient.normalizeParams(headerParams));
|
|
235
|
+
this.applyAuthHeaders(headers, securityOptions.authentications);
|
|
236
|
+
if (securityOptions.isBpmRequest && securityOptions.enableCsrf) {
|
|
237
|
+
this.setCsrfToken(headers);
|
|
238
|
+
}
|
|
239
|
+
if (securityOptions.isBpmRequest && securityOptions.authentications.cookie && !isBrowser()) {
|
|
240
|
+
headers['Cookie'] = headers['Cookie']
|
|
241
|
+
? headers['Cookie'] + '; ' + securityOptions.authentications.cookie
|
|
242
|
+
: securityOptions.authentications.cookie;
|
|
243
|
+
}
|
|
244
|
+
if (contentType && contentType !== 'multipart/form-data') {
|
|
245
|
+
headers['Content-Type'] = contentType;
|
|
246
|
+
}
|
|
247
|
+
else if (contentType !== 'multipart/form-data' && !headers['Content-Type']) {
|
|
248
|
+
headers['Content-Type'] = 'application/json';
|
|
249
|
+
}
|
|
250
|
+
if (accept) {
|
|
251
|
+
headers['Accept'] = accept;
|
|
252
|
+
}
|
|
253
|
+
return headers;
|
|
254
|
+
}
|
|
255
|
+
buildBody(contentType, formParams, bodyParam) {
|
|
256
|
+
if (contentType === 'application/x-www-form-urlencoded') {
|
|
257
|
+
const params = FetchHttpClient.normalizeParams(formParams);
|
|
258
|
+
return new URLSearchParams(params).toString();
|
|
259
|
+
}
|
|
260
|
+
if (contentType === 'multipart/form-data') {
|
|
261
|
+
const normalizedParams = FetchHttpClient.normalizeParams(formParams);
|
|
262
|
+
const formData = new FormData();
|
|
263
|
+
for (const [key, value] of Object.entries(normalizedParams)) {
|
|
264
|
+
formData.append(key, value);
|
|
265
|
+
}
|
|
266
|
+
return formData;
|
|
267
|
+
}
|
|
268
|
+
if (bodyParam) {
|
|
269
|
+
return typeof bodyParam === 'string' ? bodyParam : JSON.stringify(bodyParam);
|
|
270
|
+
}
|
|
271
|
+
return undefined;
|
|
272
|
+
}
|
|
273
|
+
static emitErrorEvents(error, status, emitters) {
|
|
274
|
+
const { eventEmitter, apiClientEmitter } = emitters;
|
|
275
|
+
apiClientEmitter.emit('error', error);
|
|
276
|
+
eventEmitter.emit('error', error);
|
|
277
|
+
if (status === 401) {
|
|
278
|
+
apiClientEmitter.emit('unauthorized');
|
|
279
|
+
eventEmitter.emit('unauthorized');
|
|
280
|
+
}
|
|
281
|
+
if (status === 403) {
|
|
282
|
+
apiClientEmitter.emit('forbidden');
|
|
283
|
+
eventEmitter.emit('forbidden');
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
applyAuthHeaders(headers, authentications) {
|
|
287
|
+
if (!authentications) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
switch (authentications.type) {
|
|
291
|
+
case 'basic': {
|
|
292
|
+
const basicAuth = authentications.basicAuth;
|
|
293
|
+
if (basicAuth.username || basicAuth.password) {
|
|
294
|
+
const encoded = typeof btoa === 'function'
|
|
295
|
+
? btoa((basicAuth.username || '') + ':' + (basicAuth.password || ''))
|
|
296
|
+
: Buffer.from((basicAuth.username || '') + ':' + (basicAuth.password || '')).toString('base64');
|
|
297
|
+
headers['Authorization'] = 'Basic ' + encoded;
|
|
298
|
+
}
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
case 'activiti': {
|
|
302
|
+
if (authentications.basicAuth.ticket) {
|
|
303
|
+
headers['Authorization'] = authentications.basicAuth.ticket;
|
|
304
|
+
}
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
case 'oauth2': {
|
|
308
|
+
const oauth2 = authentications.oauth2;
|
|
309
|
+
if (oauth2.accessToken) {
|
|
310
|
+
headers['Authorization'] = 'Bearer ' + oauth2.accessToken;
|
|
311
|
+
}
|
|
312
|
+
break;
|
|
313
|
+
}
|
|
314
|
+
default:
|
|
315
|
+
throw new Error('Unknown authentication type: ' + authentications.type);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
deserializeResponse(response, returnType, responseType) {
|
|
319
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
320
|
+
if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob' || returnType === 'Binary') {
|
|
321
|
+
const blob = yield response.blob();
|
|
322
|
+
if (isBrowser()) {
|
|
323
|
+
return blob;
|
|
324
|
+
}
|
|
325
|
+
const arrayBuffer = yield blob.arrayBuffer();
|
|
326
|
+
return Buffer.from(arrayBuffer);
|
|
327
|
+
}
|
|
328
|
+
if (returnType === 'String') {
|
|
329
|
+
return response.text();
|
|
330
|
+
}
|
|
331
|
+
const contentTypeHeader = response.headers.get('content-type') || '';
|
|
332
|
+
if (contentTypeHeader.includes('text/html')) {
|
|
333
|
+
return response.text();
|
|
334
|
+
}
|
|
335
|
+
const text = yield response.text();
|
|
336
|
+
if (!text) {
|
|
337
|
+
return {};
|
|
338
|
+
}
|
|
339
|
+
try {
|
|
340
|
+
const data = JSON.parse(text);
|
|
341
|
+
if (returnType && Array.isArray(data)) {
|
|
342
|
+
return data.map((element) => new returnType(element));
|
|
343
|
+
}
|
|
344
|
+
if (returnType && typeof returnType === 'function') {
|
|
345
|
+
return new returnType(data);
|
|
346
|
+
}
|
|
347
|
+
return data;
|
|
348
|
+
}
|
|
349
|
+
catch (_a) {
|
|
350
|
+
return text;
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
static createCSRFToken() {
|
|
355
|
+
if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
|
|
356
|
+
return crypto.randomUUID();
|
|
357
|
+
}
|
|
358
|
+
const bytes = new Uint8Array(16);
|
|
359
|
+
crypto.getRandomValues(bytes);
|
|
360
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
361
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
362
|
+
const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
|
|
363
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
364
|
+
}
|
|
365
|
+
static buildQueryString(params) {
|
|
366
|
+
if (!params) {
|
|
367
|
+
return '';
|
|
368
|
+
}
|
|
369
|
+
const normalized = FetchHttpClient.normalizeParams(params);
|
|
370
|
+
const searchParams = new URLSearchParams();
|
|
371
|
+
for (const [key, value] of Object.entries(normalized)) {
|
|
372
|
+
if (Array.isArray(value)) {
|
|
373
|
+
value.forEach((v) => searchParams.append(key, v));
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
searchParams.append(key, value);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return searchParams.toString();
|
|
380
|
+
}
|
|
381
|
+
static normalizeParams(params) {
|
|
382
|
+
if (!params) {
|
|
383
|
+
return {};
|
|
384
|
+
}
|
|
385
|
+
const newParams = {};
|
|
386
|
+
for (const [key, value] of Object.entries(params)) {
|
|
387
|
+
if (value != null) {
|
|
388
|
+
newParams[key] = FetchHttpClient.isFileParam(value) || Array.isArray(value) ? value : paramToString(value);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return newParams;
|
|
392
|
+
}
|
|
393
|
+
static isFileParam(param) {
|
|
394
|
+
if (typeof Buffer === 'function' && (param instanceof Buffer || (param === null || param === void 0 ? void 0 : param.path))) {
|
|
395
|
+
return true;
|
|
396
|
+
}
|
|
397
|
+
if (typeof Blob === 'function' && param instanceof Blob) {
|
|
398
|
+
return true;
|
|
399
|
+
}
|
|
400
|
+
if (typeof File === 'function' && param instanceof File) {
|
|
401
|
+
return true;
|
|
402
|
+
}
|
|
403
|
+
if (typeof File === 'object' && param instanceof File) {
|
|
404
|
+
return true;
|
|
405
|
+
}
|
|
406
|
+
return false;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=../../../../../lib/js-api/src/fetchHttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchHttpClient.js","sourceRoot":"","sources":["fetchHttpClient.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 { 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;\ndeclare const process: any;\ndeclare const XMLHttpRequest: any;\n\nexport class FetchHttpClient implements HttpClient {\n timeout: number | { deadline?: number; response?: number } = undefined;\n private readonly customFetch?: typeof fetch;\n\n constructor(customFetch?: typeof fetch) {\n this.customFetch = customFetch;\n }\n\n private getFetch(): typeof fetch {\n // eslint-disable-next-line no-underscore-dangle\n return this.customFetch || (typeof process !== 'undefined' && (process as any).__test_fetch__) || globalThis.fetch;\n }\n\n private hasNativeXhr(): boolean {\n // eslint-disable-next-line no-underscore-dangle\n if (this.customFetch || (typeof process !== 'undefined' && (process as any).__test_fetch__)) {\n return false;\n }\n return typeof XMLHttpRequest !== 'undefined';\n }\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\n const headers = this.buildHeaders(headerParams, securityOptions, contentType, accept);\n const queryString = FetchHttpClient.buildQueryString(queryParams);\n const fullUrl = queryString ? `${url}${url.includes('?') ? '&' : '?'}${queryString}` : url;\n const body = this.buildBody(contentType, formParams, bodyParam);\n const hasBody = body !== undefined && httpMethod !== 'GET' && httpMethod !== 'HEAD';\n const withCredentials = securityOptions.withCredentials || securityOptions.isBpmRequest;\n\n if (hasBody && this.hasNativeXhr()) {\n return this.requestWithXhr<T>(fullUrl, httpMethod, headers, body, withCredentials, returnType, responseType, securityOptions, emitters);\n }\n\n return this.requestWithFetch<T>(\n fullUrl,\n httpMethod,\n headers,\n hasBody ? body : undefined,\n withCredentials,\n returnType,\n responseType,\n securityOptions,\n emitters\n );\n }\n\n private requestWithFetch<T>(\n url: string,\n method: string,\n headers: Record<string, string>,\n body: any,\n withCredentials: boolean,\n returnType: string,\n responseType: string,\n securityOptions: SecurityOptions,\n emitters: Emitters\n ): Promise<T> {\n const { eventEmitter } = emitters;\n const controller = new AbortController();\n const timeoutMs = typeof this.timeout === 'number' ? this.timeout : this.timeout?.deadline;\n\n if (timeoutMs) {\n if (typeof AbortSignal.timeout === 'function') {\n AbortSignal.timeout(timeoutMs).addEventListener('abort', () => controller.abort());\n } else {\n setTimeout(() => controller.abort(), timeoutMs);\n }\n }\n\n const init: RequestInit = {\n method,\n headers,\n signal: controller.signal,\n credentials: withCredentials ? 'include' : 'same-origin'\n };\n\n if (body !== undefined) {\n init.body = body;\n }\n\n const fn = this.getFetch();\n\n const promise: any = new Promise<T>((resolve, reject) => {\n const execute = async () => {\n const response = await fn(url, init);\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => '');\n const error: any = new Error(errorText || response.statusText);\n error.status = response.status;\n error.response = response;\n\n FetchHttpClient.emitErrorEvents(error, response.status, emitters);\n // eslint-disable-next-line prefer-promise-reject-errors\n reject({ error, status: response.status, message: errorText || response.statusText });\n return;\n }\n\n if (securityOptions.isBpmRequest) {\n const setCookie = response.headers.get('set-cookie');\n if (setCookie) {\n securityOptions.authentications.cookie = setCookie;\n }\n }\n\n const data = await this.deserializeResponse(response, returnType, responseType);\n eventEmitter.emit('success', data);\n resolve(data as T);\n };\n\n execute().catch((error: any) => {\n if (error.name === 'AbortError') {\n eventEmitter.emit('abort');\n reject(error);\n return;\n }\n if (!error.status) {\n FetchHttpClient.emitErrorEvents(error, 0, emitters);\n }\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(error.status ? { error, status: error.status, message: error.message } : { error });\n });\n });\n\n promise.abort = () => {\n controller.abort();\n return promise;\n };\n\n return promise;\n }\n\n private requestWithXhr<T>(\n url: string,\n method: string,\n headers: Record<string, string>,\n body: any,\n withCredentials: boolean,\n returnType: string,\n responseType: string,\n securityOptions: SecurityOptions,\n emitters: Emitters\n ): Promise<T> {\n const { eventEmitter } = emitters;\n const timeoutMs = typeof this.timeout === 'number' ? this.timeout : this.timeout?.deadline;\n let xhr: any;\n\n const promise: any = new Promise<T>((resolve, reject) => {\n xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n\n for (const [key, value] of Object.entries(headers)) {\n xhr.setRequestHeader(key, value);\n }\n\n if (withCredentials) {\n xhr.withCredentials = true;\n }\n\n if (timeoutMs) {\n xhr.timeout = timeoutMs;\n }\n\n if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob' || returnType === 'Binary') {\n xhr.responseType = 'blob';\n }\n\n xhr.upload.onprogress = (event: any) => {\n if (event.lengthComputable) {\n const percent = Math.round((event.loaded / event.total) * 100);\n eventEmitter.emit('progress', { total: event.total, loaded: event.loaded, percent });\n }\n };\n\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n if (securityOptions.isBpmRequest) {\n const setCookie = xhr.getResponseHeader('set-cookie');\n if (setCookie) {\n securityOptions.authentications.cookie = setCookie;\n }\n }\n\n const data = this.deserializeXhrResponse(xhr, returnType, responseType);\n eventEmitter.emit('success', data);\n resolve(data as T);\n } else {\n const errorText = xhr.responseText || xhr.statusText;\n const error: any = new Error(errorText);\n error.status = xhr.status;\n error.message = errorText;\n\n FetchHttpClient.emitErrorEvents(error, xhr.status, emitters);\n // eslint-disable-next-line prefer-promise-reject-errors\n reject({ error, status: xhr.status, message: errorText });\n }\n };\n\n xhr.onerror = () => {\n const error = new Error('Network request failed');\n FetchHttpClient.emitErrorEvents(error, 0, emitters);\n // eslint-disable-next-line prefer-promise-reject-errors\n reject({ error });\n };\n\n xhr.onabort = () => {\n eventEmitter.emit('abort');\n reject(new DOMException('The operation was aborted.', 'AbortError'));\n };\n\n xhr.ontimeout = () => {\n const error = new Error('Request timed out');\n FetchHttpClient.emitErrorEvents(error, 0, emitters);\n // eslint-disable-next-line prefer-promise-reject-errors\n reject({ error });\n };\n\n xhr.send(body);\n });\n\n promise.abort = () => {\n if (xhr) {\n xhr.abort();\n }\n return promise;\n };\n\n return promise;\n }\n\n private deserializeXhrResponse(xhr: any, returnType: string, responseType: string): any {\n if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob' || returnType === 'Binary') {\n return xhr.response;\n }\n\n if (returnType === 'String') {\n return xhr.responseText;\n }\n\n const contentType = xhr.getResponseHeader('content-type') || '';\n if (contentType.includes('text/html')) {\n return xhr.responseText;\n }\n\n try {\n const text = xhr.responseText;\n if (!text) {\n return {};\n }\n const data = JSON.parse(text);\n if (returnType && Array.isArray(data)) {\n return data.map((element: any) => new (returnType as any)(element));\n }\n if (returnType && typeof returnType === 'function') {\n return new (returnType as any)(data);\n }\n return data;\n } catch {\n return xhr.responseText || '';\n }\n }\n\n setCsrfToken(headers: Record<string, string>): void {\n const token = FetchHttpClient.createCSRFToken();\n headers['X-CSRF-TOKEN'] = token;\n\n if (!isBrowser()) {\n headers['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 private buildHeaders(\n headerParams: Record<string, any>,\n securityOptions: SecurityOptions,\n contentType: string,\n accept: string\n ): Record<string, string> {\n const headers: Record<string, string> = {\n ...securityOptions.defaultHeaders,\n ...FetchHttpClient.normalizeParams(headerParams)\n };\n\n this.applyAuthHeaders(headers, securityOptions.authentications);\n\n if (securityOptions.isBpmRequest && securityOptions.enableCsrf) {\n this.setCsrfToken(headers);\n }\n\n if (securityOptions.isBpmRequest && securityOptions.authentications.cookie && !isBrowser()) {\n headers['Cookie'] = headers['Cookie']\n ? headers['Cookie'] + '; ' + securityOptions.authentications.cookie\n : securityOptions.authentications.cookie;\n }\n\n if (contentType && contentType !== 'multipart/form-data') {\n headers['Content-Type'] = contentType;\n } else if (contentType !== 'multipart/form-data' && !headers['Content-Type']) {\n headers['Content-Type'] = 'application/json';\n }\n\n if (accept) {\n headers['Accept'] = accept;\n }\n\n return headers;\n }\n\n private buildBody(contentType: string, formParams: Record<string, any>, bodyParam: string | object): any {\n if (contentType === 'application/x-www-form-urlencoded') {\n const params = FetchHttpClient.normalizeParams(formParams);\n return new URLSearchParams(params).toString();\n }\n\n if (contentType === 'multipart/form-data') {\n const normalizedParams = FetchHttpClient.normalizeParams(formParams);\n const formData = new FormData();\n for (const [key, value] of Object.entries(normalizedParams)) {\n formData.append(key, value as any);\n }\n return formData;\n }\n\n if (bodyParam) {\n return typeof bodyParam === 'string' ? bodyParam : JSON.stringify(bodyParam);\n }\n\n return undefined;\n }\n\n private static emitErrorEvents(error: any, status: number, emitters: Emitters): void {\n const { eventEmitter, apiClientEmitter } = emitters;\n\n apiClientEmitter.emit('error', error);\n eventEmitter.emit('error', error);\n\n if (status === 401) {\n apiClientEmitter.emit('unauthorized');\n eventEmitter.emit('unauthorized');\n }\n\n if (status === 403) {\n apiClientEmitter.emit('forbidden');\n eventEmitter.emit('forbidden');\n }\n }\n\n private applyAuthHeaders(headers: Record<string, string>, authentications: Authentication): void {\n if (!authentications) {\n return;\n }\n\n switch (authentications.type) {\n case 'basic': {\n const basicAuth: BasicAuth = authentications.basicAuth;\n if (basicAuth.username || basicAuth.password) {\n const encoded =\n typeof btoa === 'function'\n ? btoa((basicAuth.username || '') + ':' + (basicAuth.password || ''))\n : Buffer.from((basicAuth.username || '') + ':' + (basicAuth.password || '')).toString('base64');\n headers['Authorization'] = 'Basic ' + encoded;\n }\n break;\n }\n case 'activiti': {\n if (authentications.basicAuth.ticket) {\n headers['Authorization'] = authentications.basicAuth.ticket;\n }\n break;\n }\n case 'oauth2': {\n const oauth2: Oauth2 = authentications.oauth2;\n if (oauth2.accessToken) {\n headers['Authorization'] = 'Bearer ' + oauth2.accessToken;\n }\n break;\n }\n default:\n throw new Error('Unknown authentication type: ' + authentications.type);\n }\n }\n\n private async deserializeResponse(response: Response, returnType: string, responseType: string): Promise<any> {\n if (returnType === 'blob' || returnType === 'Blob' || responseType === 'blob' || responseType === 'Blob' || returnType === 'Binary') {\n const blob = await response.blob();\n if (isBrowser()) {\n return blob;\n }\n const arrayBuffer = await blob.arrayBuffer();\n return Buffer.from(arrayBuffer);\n }\n\n if (returnType === 'String') {\n return response.text();\n }\n\n const contentTypeHeader = response.headers.get('content-type') || '';\n if (contentTypeHeader.includes('text/html')) {\n return response.text();\n }\n\n const text = await response.text();\n if (!text) {\n return {};\n }\n try {\n const data = JSON.parse(text);\n if (returnType && Array.isArray(data)) {\n return data.map((element: any) => new (returnType as any)(element));\n }\n if (returnType && typeof returnType === 'function') {\n return new (returnType as any)(data);\n }\n return data;\n } catch {\n return text;\n }\n }\n\n private static createCSRFToken(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n }\n\n private static buildQueryString(params: Record<string, any>): string {\n if (!params) {\n return '';\n }\n const normalized = FetchHttpClient.normalizeParams(params);\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(normalized)) {\n if (Array.isArray(value)) {\n value.forEach((v: any) => searchParams.append(key, v));\n } else {\n searchParams.append(key, value);\n }\n }\n return searchParams.toString();\n }\n\n private static normalizeParams(params: Record<string, any>): Record<string, any> {\n if (!params) {\n return {};\n }\n const newParams: Record<string, any> = {};\n for (const [key, value] of Object.entries(params)) {\n if (value != null) {\n newParams[key] = FetchHttpClient.isFileParam(value) || Array.isArray(value) ? value : paramToString(value);\n }\n }\n return newParams;\n }\n\n private static isFileParam(param: any): boolean {\n if (typeof Buffer === 'function' && (param instanceof Buffer || param?.path)) {\n return true;\n }\n if (typeof Blob === 'function' && param instanceof Blob) {\n return true;\n }\n if (typeof File === 'function' && param instanceof File) {\n return true;\n }\n if (typeof File === 'object' && param instanceof File) {\n return true;\n }\n return false;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-browser.js","sourceRoot":"","sources":["is-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"is-browser.js","sourceRoot":"","sources":["is-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC","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\n// eslint-disable-next-line @typescript-eslint/prefer-optional-chain\nexport const isBrowser = (): boolean => typeof window !== 'undefined' && typeof window.document !== 'undefined';\n"]}
|
package/esm5/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfresco/js-api",
|
|
3
|
-
"version": "9.5.0
|
|
3
|
+
"version": "9.5.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "JavaScript client library for the Alfresco REST API",
|
|
6
6
|
"author": "Hyland Software, Inc. and its affiliates",
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
"url": "https://github.com/Alfresco/alfresco-ng2-components/issues"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"superagent": "^9.0.1",
|
|
19
18
|
"eventemitter3": "^5.0.1",
|
|
20
19
|
"tslib": "^2.6.1"
|
|
21
20
|
},
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { EventEmitter } from 'eventemitter3';
|
|
18
|
-
import {
|
|
18
|
+
import { FetchHttpClient } from './fetchHttpClient';
|
|
19
19
|
import { paramToString } from './utils';
|
|
20
20
|
import { Storage } from './storage';
|
|
21
21
|
export function buildCollectionParam(param, collectionFormat) {
|
|
@@ -54,7 +54,7 @@ export class AlfrescoApiClient {
|
|
|
54
54
|
};
|
|
55
55
|
this.host = host;
|
|
56
56
|
this.storage = Storage.getInstance();
|
|
57
|
-
this.httpClient = httpClient || new
|
|
57
|
+
this.httpClient = httpClient || new FetchHttpClient();
|
|
58
58
|
}
|
|
59
59
|
on(event, fn, context) {
|
|
60
60
|
this.eventEmitter.on(event, fn, context);
|