@alfresco/js-api 9.6.0-27445232448 → 9.6.0-27542470517

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfresco/js-api",
3
- "version": "9.6.0-27445232448",
3
+ "version": "9.6.0-27542470517",
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",
@@ -261,7 +261,13 @@ export class FetchHttpClient {
261
261
  const normalizedParams = FetchHttpClient.normalizeParams(formParams);
262
262
  const formData = new FormData();
263
263
  for (const [key, value] of Object.entries(normalizedParams)) {
264
- formData.append(key, value);
264
+ const { data, filename } = FetchHttpClient.toFormDataValue(value);
265
+ if (filename) {
266
+ formData.append(key, data, filename);
267
+ }
268
+ else {
269
+ formData.append(key, data);
270
+ }
265
271
  }
266
272
  return formData;
267
273
  }
@@ -405,5 +411,23 @@ export class FetchHttpClient {
405
411
  }
406
412
  return false;
407
413
  }
414
+ static toFormDataValue(value) {
415
+ if (value && typeof value === 'object' && value.path && typeof value.path === 'string' && !(value instanceof Blob)) {
416
+ try {
417
+ const nodeFs = Function('return require("fs")')();
418
+ const nodePath = Function('return require("path")')();
419
+ const buffer = nodeFs.readFileSync(value.path);
420
+ const filename = nodePath.basename(value.path);
421
+ return { data: new Blob([buffer]), filename };
422
+ }
423
+ catch (_a) {
424
+ return { data: value };
425
+ }
426
+ }
427
+ if (typeof Buffer === 'function' && value instanceof Buffer) {
428
+ return { data: new Blob([value]) };
429
+ }
430
+ return { data: value };
431
+ }
408
432
  }
409
433
  //# sourceMappingURL=../../../../../lib/js-api/src/fetchHttpClient.js.map
@@ -1 +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
+ {"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 const { data, filename } = FetchHttpClient.toFormDataValue(value);\n if (filename) {\n formData.append(key, data, filename);\n } else {\n formData.append(key, data);\n }\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 private static toFormDataValue(value: any): { data: any; filename?: string } {\n if (value && typeof value === 'object' && value.path && typeof value.path === 'string' && !(value instanceof Blob)) {\n try {\n const nodeFs = Function('return require(\"fs\")')();\n const nodePath = Function('return require(\"path\")')();\n const buffer = nodeFs.readFileSync(value.path);\n const filename: string = nodePath.basename(value.path);\n return { data: new Blob([buffer]), filename };\n } catch {\n return { data: value };\n }\n }\n\n if (typeof Buffer === 'function' && value instanceof Buffer) {\n return { data: new Blob([value]) };\n }\n\n return { data: value };\n }\n}\n"]}
package/esm5/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfresco/js-api",
3
- "version": "9.6.0-27445232448",
3
+ "version": "9.6.0-27542470517",
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",
@@ -261,7 +261,13 @@ export class FetchHttpClient {
261
261
  const normalizedParams = FetchHttpClient.normalizeParams(formParams);
262
262
  const formData = new FormData();
263
263
  for (const [key, value] of Object.entries(normalizedParams)) {
264
- formData.append(key, value);
264
+ const { data, filename } = FetchHttpClient.toFormDataValue(value);
265
+ if (filename) {
266
+ formData.append(key, data, filename);
267
+ }
268
+ else {
269
+ formData.append(key, data);
270
+ }
265
271
  }
266
272
  return formData;
267
273
  }
@@ -405,5 +411,23 @@ export class FetchHttpClient {
405
411
  }
406
412
  return false;
407
413
  }
414
+ static toFormDataValue(value) {
415
+ if (value && typeof value === 'object' && value.path && typeof value.path === 'string' && !(value instanceof Blob)) {
416
+ try {
417
+ const nodeFs = Function('return require("fs")')();
418
+ const nodePath = Function('return require("path")')();
419
+ const buffer = nodeFs.readFileSync(value.path);
420
+ const filename = nodePath.basename(value.path);
421
+ return { data: new Blob([buffer]), filename };
422
+ }
423
+ catch (_a) {
424
+ return { data: value };
425
+ }
426
+ }
427
+ if (typeof Buffer === 'function' && value instanceof Buffer) {
428
+ return { data: new Blob([value]) };
429
+ }
430
+ return { data: value };
431
+ }
408
432
  }
409
433
  //# sourceMappingURL=../../../../../lib/js-api/src/fetchHttpClient.js.map
@@ -1 +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
+ {"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 const { data, filename } = FetchHttpClient.toFormDataValue(value);\n if (filename) {\n formData.append(key, data, filename);\n } else {\n formData.append(key, data);\n }\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 private static toFormDataValue(value: any): { data: any; filename?: string } {\n if (value && typeof value === 'object' && value.path && typeof value.path === 'string' && !(value instanceof Blob)) {\n try {\n const nodeFs = Function('return require(\"fs\")')();\n const nodePath = Function('return require(\"path\")')();\n const buffer = nodeFs.readFileSync(value.path);\n const filename: string = nodePath.basename(value.path);\n return { data: new Blob([buffer]), filename };\n } catch {\n return { data: value };\n }\n }\n\n if (typeof Buffer === 'function' && value instanceof Buffer) {\n return { data: new Blob([value]) };\n }\n\n return { data: value };\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfresco/js-api",
3
- "version": "9.6.0-27445232448",
3
+ "version": "9.6.0-27542470517",
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",
@@ -264,7 +264,13 @@ class FetchHttpClient {
264
264
  const normalizedParams = FetchHttpClient.normalizeParams(formParams);
265
265
  const formData = new FormData();
266
266
  for (const [key, value] of Object.entries(normalizedParams)) {
267
- formData.append(key, value);
267
+ const { data, filename } = FetchHttpClient.toFormDataValue(value);
268
+ if (filename) {
269
+ formData.append(key, data, filename);
270
+ }
271
+ else {
272
+ formData.append(key, data);
273
+ }
268
274
  }
269
275
  return formData;
270
276
  }
@@ -408,6 +414,24 @@ class FetchHttpClient {
408
414
  }
409
415
  return false;
410
416
  }
417
+ static toFormDataValue(value) {
418
+ if (value && typeof value === 'object' && value.path && typeof value.path === 'string' && !(value instanceof Blob)) {
419
+ try {
420
+ const nodeFs = Function('return require("fs")')();
421
+ const nodePath = Function('return require("path")')();
422
+ const buffer = nodeFs.readFileSync(value.path);
423
+ const filename = nodePath.basename(value.path);
424
+ return { data: new Blob([buffer]), filename };
425
+ }
426
+ catch (_a) {
427
+ return { data: value };
428
+ }
429
+ }
430
+ if (typeof Buffer === 'function' && value instanceof Buffer) {
431
+ return { data: new Blob([value]) };
432
+ }
433
+ return { data: value };
434
+ }
411
435
  }
412
436
  exports.FetchHttpClient = FetchHttpClient;
413
437
  //# sourceMappingURL=../../../../lib/js-api/src/fetchHttpClient.js.map
@@ -1 +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
+ {"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 const { data, filename } = FetchHttpClient.toFormDataValue(value);\n if (filename) {\n formData.append(key, data, filename);\n } else {\n formData.append(key, data);\n }\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 private static toFormDataValue(value: any): { data: any; filename?: string } {\n if (value && typeof value === 'object' && value.path && typeof value.path === 'string' && !(value instanceof Blob)) {\n try {\n const nodeFs = Function('return require(\"fs\")')();\n const nodePath = Function('return require(\"path\")')();\n const buffer = nodeFs.readFileSync(value.path);\n const filename: string = nodePath.basename(value.path);\n return { data: new Blob([buffer]), filename };\n } catch {\n return { data: value };\n }\n }\n\n if (typeof Buffer === 'function' && value instanceof Buffer) {\n return { data: new Blob([value]) };\n }\n\n return { data: value };\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfresco/js-api",
3
- "version": "9.6.0-27445232448",
3
+ "version": "9.6.0-27542470517",
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",
@@ -42,4 +42,5 @@ export declare class FetchHttpClient implements HttpClient {
42
42
  private static buildQueryString;
43
43
  private static normalizeParams;
44
44
  private static isFileParam;
45
+ private static toFormDataValue;
45
46
  }