@icure/api 4.2.20 → 4.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/icc-api/api/XHR.js +18 -1
- package/icc-api/api/XHR.js.map +1 -1
- package/package.json +1 -1
package/icc-api/api/XHR.js
CHANGED
|
@@ -85,7 +85,24 @@ var XHR;
|
|
|
85
85
|
})
|
|
86
86
|
: data,
|
|
87
87
|
}
|
|
88
|
-
: {}), timeout, fetchImpl)
|
|
88
|
+
: {}), timeout, fetchImpl)
|
|
89
|
+
.catch((e) => __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
if (!forceSendAuthorization) {
|
|
91
|
+
//Might be due to a 401
|
|
92
|
+
return {
|
|
93
|
+
status: 401,
|
|
94
|
+
statusText: e.message,
|
|
95
|
+
arrayBuffer: () => Promise.resolve(new ArrayBuffer(0)),
|
|
96
|
+
json: () => Promise.resolve({}),
|
|
97
|
+
text: () => Promise.resolve(''),
|
|
98
|
+
headers: new Headers(),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
throw e;
|
|
103
|
+
}
|
|
104
|
+
}))
|
|
105
|
+
.then(function (response) {
|
|
89
106
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
107
|
if (response.status === 401 && !forceSendAuthorization) {
|
|
91
108
|
return sendCommand(method, url, headers, data, fetchImpl, contentTypeOverride, true);
|
package/icc-api/api/XHR.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XHR.js","sourceRoot":"","sources":["../../../icc-api/api/XHR.ts"],"names":[],"mappings":"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","sourcesContent":["import { ua2b64 } from '../model/ModelHelper'\n\nexport namespace XHR {\n export class Header {\n header: string\n data: string\n\n constructor(header: string, data: string) {\n this.header = header\n this.data = data\n }\n }\n\n export class Data {\n statusCode: number\n contentType: string\n body: JSON | Array<JSON> | any //stream bytes|json|array<json>\n\n constructor(status: number, contentType: string, body: JSON | Array<JSON> | any) {\n this.statusCode = status\n this.contentType = contentType\n this.body = body\n }\n }\n\n export class XHRError extends Error {\n statusCode: number\n errorCode: string\n headers: Headers\n message: string\n url: string\n\n constructor(url: string, message: string, status: number, errorCode: string, headers: Headers) {\n super(message)\n this.url = url\n this.statusCode = status\n this.message = message\n this.errorCode = errorCode\n this.headers = headers\n }\n }\n\n function fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeout = 10000,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ): Promise<Response> {\n return new Promise((resolve, reject) => {\n // Set timeout timer\n let timer = setTimeout(() => reject({ message: 'Request timed out', status: 'Request timed out' }), timeout)\n fetchImpl(url, init)\n .then((response) => {\n clearTimeout(timer)\n resolve(response)\n })\n .catch((err) => {\n clearTimeout(timer)\n reject(err)\n })\n })\n }\n\n export function sendCommand(\n method: string,\n url: string,\n headers: Array<Header> | null,\n data: string | any = '',\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch,\n contentTypeOverride?: 'application/json' | 'text/plain' | 'application/octet-stream',\n forceSendAuthorization = false\n ): Promise<Data> {\n const contentType = headers && headers.find((it) => (it.header ? it.header.toLowerCase() === 'content-type' : false))\n const clientTimeout = headers && headers.find((it) => (it.header ? it.header.toUpperCase() === 'X-CLIENT-SIDE-TIMEOUT' : false))\n const timeout = clientTimeout ? Number(clientTimeout.data) : 600000\n return fetchWithTimeout(\n url,\n Object.assign(\n {\n method: method,\n credentials: 'include' as RequestCredentials,\n headers: (headers ?? [])\n .filter(\n (h) =>\n (forceSendAuthorization || h.header.toLowerCase() !== 'authorization') &&\n (h.header.toLowerCase() !== 'content-type' || h.data !== 'multipart/form-data') &&\n h.header.toUpperCase() !== 'X-CLIENT-SIDE-TIMEOUT'\n )\n .reduce(\n (acc: { [key: string]: string }, h) => {\n acc[h.header] = h.data\n return acc\n },\n { 'X-Requested-With': 'XMLHttpRequest' }\n ),\n },\n method === 'POST' || method === 'PUT'\n ? {\n body:\n !contentType || contentType.data === 'application/json'\n ? JSON.stringify(data, (k, v) => {\n return v instanceof ArrayBuffer || v instanceof Uint8Array ? ua2b64(v) : v\n })\n : data,\n }\n : {}\n ),\n timeout,\n fetchImpl\n ).then(async function (response) {\n if (response.status === 401 && !forceSendAuthorization) {\n return sendCommand(method, url, headers, data, fetchImpl, contentTypeOverride, true)\n } else {\n if (response.status >= 400) {\n const error: {\n error: string\n message: string\n status: number\n } = { error: response.statusText, message: await response.text(), status: response.status }\n throw new XHRError(url, error.message, error.status, error.error, response.headers)\n }\n const ct = contentTypeOverride || response.headers.get('content-type') || 'text/plain'\n return (\n ct.startsWith('application/json')\n ? response.json()\n : ct.startsWith('application/xml') || ct.startsWith('text/')\n ? response.text()\n : response.arrayBuffer()\n ).then((d) => new Data(response.status, ct, d))\n }\n })\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"XHR.js","sourceRoot":"","sources":["../../../icc-api/api/XHR.ts"],"names":[],"mappings":"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","sourcesContent":["import { ua2b64 } from '../model/ModelHelper'\n\nexport namespace XHR {\n export class Header {\n header: string\n data: string\n\n constructor(header: string, data: string) {\n this.header = header\n this.data = data\n }\n }\n\n export class Data {\n statusCode: number\n contentType: string\n body: JSON | Array<JSON> | any //stream bytes|json|array<json>\n\n constructor(status: number, contentType: string, body: JSON | Array<JSON> | any) {\n this.statusCode = status\n this.contentType = contentType\n this.body = body\n }\n }\n\n export class XHRError extends Error {\n statusCode: number\n errorCode: string\n headers: Headers\n message: string\n url: string\n\n constructor(url: string, message: string, status: number, errorCode: string, headers: Headers) {\n super(message)\n this.url = url\n this.statusCode = status\n this.message = message\n this.errorCode = errorCode\n this.headers = headers\n }\n }\n\n function fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeout = 10000,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ): Promise<Response> {\n return new Promise((resolve, reject) => {\n // Set timeout timer\n let timer = setTimeout(() => reject({ message: 'Request timed out', status: 'Request timed out' }), timeout)\n fetchImpl(url, init)\n .then((response) => {\n clearTimeout(timer)\n resolve(response)\n })\n .catch((err) => {\n clearTimeout(timer)\n reject(err)\n })\n })\n }\n\n export function sendCommand(\n method: string,\n url: string,\n headers: Array<Header> | null,\n data: string | any = '',\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch,\n contentTypeOverride?: 'application/json' | 'text/plain' | 'application/octet-stream',\n forceSendAuthorization = false\n ): Promise<Data> {\n const contentType = headers && headers.find((it) => (it.header ? it.header.toLowerCase() === 'content-type' : false))\n const clientTimeout = headers && headers.find((it) => (it.header ? it.header.toUpperCase() === 'X-CLIENT-SIDE-TIMEOUT' : false))\n const timeout = clientTimeout ? Number(clientTimeout.data) : 600000\n return fetchWithTimeout(\n url,\n Object.assign(\n {\n method: method,\n credentials: 'include' as RequestCredentials,\n headers: (headers ?? [])\n .filter(\n (h) =>\n (forceSendAuthorization || h.header.toLowerCase() !== 'authorization') &&\n (h.header.toLowerCase() !== 'content-type' || h.data !== 'multipart/form-data') &&\n h.header.toUpperCase() !== 'X-CLIENT-SIDE-TIMEOUT'\n )\n .reduce(\n (acc: { [key: string]: string }, h) => {\n acc[h.header] = h.data\n return acc\n },\n { 'X-Requested-With': 'XMLHttpRequest' }\n ),\n },\n method === 'POST' || method === 'PUT'\n ? {\n body:\n !contentType || contentType.data === 'application/json'\n ? JSON.stringify(data, (k, v) => {\n return v instanceof ArrayBuffer || v instanceof Uint8Array ? ua2b64(v) : v\n })\n : data,\n }\n : {}\n ),\n timeout,\n fetchImpl\n )\n .catch(async (e) => {\n if (!forceSendAuthorization) {\n //Might be due to a 401\n return {\n status: 401,\n statusText: e.message,\n arrayBuffer: () => Promise.resolve(new ArrayBuffer(0)),\n json: () => Promise.resolve({}),\n text: () => Promise.resolve(''),\n headers: new Headers(),\n }\n } else {\n throw e\n }\n })\n .then(async function (response) {\n if (response.status === 401 && !forceSendAuthorization) {\n return sendCommand(method, url, headers, data, fetchImpl, contentTypeOverride, true)\n } else {\n if (response.status >= 400) {\n const error: {\n error: string\n message: string\n status: number\n } = { error: response.statusText, message: await response.text(), status: response.status }\n throw new XHRError(url, error.message, error.status, error.error, response.headers)\n }\n const ct = contentTypeOverride || response.headers.get('content-type') || 'text/plain'\n return (\n ct.startsWith('application/json')\n ? response.json()\n : ct.startsWith('application/xml') || ct.startsWith('text/')\n ? response.text()\n : response.arrayBuffer()\n ).then((d) => new Data(response.status, ct, d))\n }\n })\n }\n}\n"]}
|