@icure/api 8.6.15 → 8.6.17

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.
@@ -9,7 +9,12 @@ export declare namespace XHR {
9
9
  statusCode: number;
10
10
  contentType: string;
11
11
  body: JSON | Array<JSON> | any;
12
- constructor(status: number, contentType: string, body: JSON | Array<JSON> | any);
12
+ responseHeaders: {
13
+ [key: string]: string[];
14
+ };
15
+ constructor(status: number, contentType: string, body: JSON | Array<JSON> | any, responseHeaders?: {
16
+ [key: string]: string[];
17
+ });
13
18
  }
14
19
  class XHRError extends Error {
15
20
  statusCode: number;
@@ -19,5 +24,5 @@ export declare namespace XHR {
19
24
  url: string;
20
25
  constructor(url: string, message: string, status: number, errorCode: string, headers: Headers);
21
26
  }
22
- function sendCommand(method: string, url: string, headers: Array<Header> | null, data?: string | any, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>, contentTypeOverride?: 'application/json' | 'text/plain' | 'application/octet-stream', headerProvider?: AuthService, minimumAuthenticationClass?: number | undefined, tryHardToParseJson?: boolean): Promise<Data>;
27
+ function sendCommand(method: string, url: string, headers: Array<Header> | null, data?: string | any, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>, contentTypeOverride?: 'application/json' | 'text/plain' | 'application/octet-stream', headerProvider?: AuthService, minimumAuthenticationClass?: number | undefined, tryHardToParseJson?: boolean, collectHeaders?: string[]): Promise<Data>;
23
28
  }
@@ -23,10 +23,11 @@ var XHR;
23
23
  }
24
24
  XHR.Header = Header;
25
25
  class Data {
26
- constructor(status, contentType, body) {
26
+ constructor(status, contentType, body, responseHeaders = {}) {
27
27
  this.statusCode = status;
28
28
  this.contentType = contentType;
29
29
  this.body = body;
30
+ this.responseHeaders = responseHeaders;
30
31
  }
31
32
  }
32
33
  XHR.Data = Data;
@@ -65,7 +66,7 @@ var XHR;
65
66
  ? window.fetch
66
67
  : typeof self !== 'undefined'
67
68
  ? self.fetch
68
- : fetch, contentTypeOverride, headerProvider = new NoAuthService_1.NoAuthService(), minimumAuthenticationClass = undefined, tryHardToParseJson = false) {
69
+ : fetch, contentTypeOverride, headerProvider = new NoAuthService_1.NoAuthService(), minimumAuthenticationClass = undefined, tryHardToParseJson = false, collectHeaders = []) {
69
70
  const authHeaders = yield headerProvider.getAuthHeaders(minimumAuthenticationClass);
70
71
  const contentType = headers && headers.find((it) => (it.header ? it.header.toLowerCase() === 'content-type' : false));
71
72
  const clientTimeout = headers && headers.find((it) => (it.header ? it.header.toUpperCase() === 'X-CLIENT-SIDE-TIMEOUT' : false));
@@ -119,7 +120,32 @@ var XHR;
119
120
  })) : response.json()
120
121
  : ct.startsWith('application/xml') || ct.startsWith('text/')
121
122
  ? response.text()
122
- : response.arrayBuffer()).then((d) => new Data(response.status, ct, d));
123
+ : response.arrayBuffer()).then((d) => {
124
+ const responseHeaders = {};
125
+ if (collectHeaders.length) {
126
+ const prefixPatterns = [];
127
+ for (const h of collectHeaders) {
128
+ if (h.endsWith('*')) {
129
+ prefixPatterns.push(h.slice(0, -1).toLowerCase());
130
+ }
131
+ else if (response.headers.has(h)) {
132
+ responseHeaders[h] = [response.headers.get(h)];
133
+ }
134
+ }
135
+ if (prefixPatterns.length) {
136
+ response.headers.forEach((value, key) => {
137
+ const lowerKey = key.toLowerCase();
138
+ if (prefixPatterns.some((prefix) => lowerKey.startsWith(prefix))) {
139
+ if (!responseHeaders[key]) {
140
+ responseHeaders[key] = [];
141
+ }
142
+ responseHeaders[key].push(value);
143
+ }
144
+ });
145
+ }
146
+ }
147
+ return new Data(response.status, ct, d, responseHeaders);
148
+ });
123
149
  }
124
150
  });
125
151
  });
@@ -1 +1 @@
1
- {"version":3,"file":"XHR.js","sourceRoot":"","sources":["../../../icc-api/api/XHR.ts"],"names":[],"mappings":"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","sourcesContent":["import {ua2b64, ua2string} from '../model/ModelHelper'\nimport {NoAuthService} from '../../icc-x-api/auth/NoAuthService'\nimport {AuthService} from '../../icc-x-api/auth/AuthService'\nimport {ua2utf8} from \"../../icc-x-api\"\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 async 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 headerProvider: AuthService = new NoAuthService(),\n minimumAuthenticationClass: number | undefined = undefined,\n tryHardToParseJson: boolean = false\n ): Promise<Data> {\n const authHeaders = await headerProvider.getAuthHeaders(minimumAuthenticationClass)\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 .concat(authHeaders)\n .filter(\n (h) =>\n (h.header?.toLowerCase() !== 'content-type' || h.data !== 'multipart/form-data') &&\n h.header?.toUpperCase() !== 'X-CLIENT-SIDE-TIMEOUT' &&\n h.header?.toLowerCase() !== 'force-authentication'\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) {\n headerProvider.invalidateHeader(new XHRError(url, await response.text(), response.status, response.statusText, response.headers))\n const requiredAuthLevelHeader = response.headers.get('Icure-Minimum-Required-Auth-Level')\n return sendCommand(\n method,\n url,\n headers,\n data,\n fetchImpl,\n contentTypeOverride,\n headerProvider,\n requiredAuthLevelHeader ? parseInt(requiredAuthLevelHeader) : undefined,\n tryHardToParseJson\n )\n } else 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 console.warn(`XHR Error: ${method} ${url} - ${error.status} - ${error.error}`, error.message)\n throw new XHRError(url, error.message, error.status, error.error, response.headers)\n } else {\n const ct = contentTypeOverride || response.headers.get('content-type') || 'text/plain'\n return (\n ct.startsWith('application/json')\n ? tryHardToParseJson ? response.arrayBuffer().then(async (ab) => {\n try {\n return JSON.parse(ua2utf8(ab))\n } catch (e) {\n console.warn('Error parsing JSON fallback on ua2string', e)\n return JSON.parse(ua2string(ab).replace(/[\\u0000-\\u001F\\u007F-\\u009F]/g, \"\"))\n }\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, ua2string} from '../model/ModelHelper'\nimport {NoAuthService} from '../../icc-x-api/auth/NoAuthService'\nimport {AuthService} from '../../icc-x-api/auth/AuthService'\nimport {ua2utf8} from \"../../icc-x-api\"\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 responseHeaders: {[key: string]: string[]}\n\n constructor(status: number, contentType: string, body: JSON | Array<JSON> | any, responseHeaders: {[key: string]: string[]} = {}) {\n this.statusCode = status\n this.contentType = contentType\n this.body = body\n this.responseHeaders = responseHeaders\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 async 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 headerProvider: AuthService = new NoAuthService(),\n minimumAuthenticationClass: number | undefined = undefined,\n tryHardToParseJson: boolean = false,\n collectHeaders: string[] = []\n ): Promise<Data> {\n const authHeaders = await headerProvider.getAuthHeaders(minimumAuthenticationClass)\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 .concat(authHeaders)\n .filter(\n (h) =>\n (h.header?.toLowerCase() !== 'content-type' || h.data !== 'multipart/form-data') &&\n h.header?.toUpperCase() !== 'X-CLIENT-SIDE-TIMEOUT' &&\n h.header?.toLowerCase() !== 'force-authentication'\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) {\n headerProvider.invalidateHeader(new XHRError(url, await response.text(), response.status, response.statusText, response.headers))\n const requiredAuthLevelHeader = response.headers.get('Icure-Minimum-Required-Auth-Level')\n return sendCommand(\n method,\n url,\n headers,\n data,\n fetchImpl,\n contentTypeOverride,\n headerProvider,\n requiredAuthLevelHeader ? parseInt(requiredAuthLevelHeader) : undefined,\n tryHardToParseJson\n )\n } else 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 console.warn(`XHR Error: ${method} ${url} - ${error.status} - ${error.error}`, error.message)\n throw new XHRError(url, error.message, error.status, error.error, response.headers)\n } else {\n const ct = contentTypeOverride || response.headers.get('content-type') || 'text/plain'\n return (\n ct.startsWith('application/json')\n ? tryHardToParseJson ? response.arrayBuffer().then(async (ab) => {\n try {\n return JSON.parse(ua2utf8(ab))\n } catch (e) {\n console.warn('Error parsing JSON fallback on ua2string', e)\n return JSON.parse(ua2string(ab).replace(/[\\u0000-\\u001F\\u007F-\\u009F]/g, \"\"))\n }\n }) : response.json()\n : ct.startsWith('application/xml') || ct.startsWith('text/')\n ? response.text()\n : response.arrayBuffer()\n ).then((d) => {\n const responseHeaders: { [key: string]: string[] } = {}\n if (collectHeaders.length) {\n const prefixPatterns: string[] = []\n for (const h of collectHeaders) {\n if (h.endsWith('*')) {\n prefixPatterns.push(h.slice(0, -1).toLowerCase())\n } else if (response.headers.has(h)) {\n responseHeaders[h] = [response.headers.get(h)!]\n }\n }\n if (prefixPatterns.length) {\n response.headers.forEach((value, key) => {\n const lowerKey = key.toLowerCase()\n if (prefixPatterns.some((prefix) => lowerKey.startsWith(prefix))) {\n if (!responseHeaders[key]) {\n responseHeaders[key] = []\n }\n responseHeaders[key].push(value)\n }\n })\n }\n }\n return new Data(response.status, ct, d, responseHeaders)\n })\n }\n })\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icure/api",
3
- "version": "8.6.15",
3
+ "version": "8.6.17",
4
4
  "description": "Typescript version of iCure standalone API client",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",