@beinformed/ui 1.59.15 → 1.59.16-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [1.59.16-beta.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.15...v1.59.16-beta.0) (2025-01-16)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **cors:** set withCredentials always on true to send cookies with cors request ([108091b](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/108091b0056a7797ff14a2302fb2983dc89c450e))
11
+
5
12
  ## [1.59.15](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.14...v1.59.15) (2025-01-07)
6
13
 
7
14
 
@@ -255,7 +255,6 @@ class XHR {
255
255
  */
256
256
  setBasicAuthentication() {
257
257
  if (Cache.hasItem("basic")) {
258
- this.xmlhttp.withCredentials = true;
259
258
  const basicToken = Cache.getItem("basic");
260
259
  if (typeof basicToken === "string") {
261
260
  this.xmlhttp.setRequestHeader("Authorization", `Basic ${basicToken}`);
@@ -280,6 +279,7 @@ class XHR {
280
279
  /**
281
280
  */
282
281
  setOtherOptions() {
282
+ this.xmlhttp.withCredentials = true;
283
283
  this.xmlhttp.responseType = this.responseType;
284
284
  this.xmlhttp.timeout = this.timeout;
285
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.js","names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","getSetting","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includesInstanceProperty","call","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","errorHandler","responseJSON","arguments","length","undefined","status","isReload","getResponse","response","getResponseHeader","JSON","parse","error","responseHandler","resolve","setEventListeners","forEach","eventType","addEventListener","_Object$keys","eventName","openConnection","open","setBasicAuthentication","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","sendData","send","stringData","_JSON$stringify","setXMLHttpRequest","_Promise","XMLHttpRequest","fetch","err","validateInputArguments","args","toString","xhr"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n this.xmlhttp.withCredentials = true;\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"xhr.js","names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","getSetting","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includesInstanceProperty","call","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","errorHandler","responseJSON","arguments","length","undefined","status","isReload","getResponse","response","getResponseHeader","JSON","parse","error","responseHandler","resolve","setEventListeners","forEach","eventType","addEventListener","_Object$keys","eventName","openConnection","open","setBasicAuthentication","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_JSON$stringify","setXMLHttpRequest","_Promise","XMLHttpRequest","fetch","err","validateInputArguments","args","toString","xhr"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.withCredentials = true;\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
@@ -262,7 +262,6 @@ class XHR {
262
262
  */
263
263
  setBasicAuthentication() {
264
264
  if (_Cache.default.hasItem("basic")) {
265
- this.xmlhttp.withCredentials = true;
266
265
  const basicToken = _Cache.default.getItem("basic");
267
266
  if (typeof basicToken === "string") {
268
267
  this.xmlhttp.setRequestHeader("Authorization", `Basic ${basicToken}`);
@@ -287,6 +286,7 @@ class XHR {
287
286
  /**
288
287
  */
289
288
  setOtherOptions() {
289
+ this.xmlhttp.withCredentials = true;
290
290
  this.xmlhttp.responseType = this.responseType;
291
291
  this.xmlhttp.timeout = this.timeout;
292
292
  }
@@ -288,7 +288,6 @@ class XHR {
288
288
  */
289
289
  setBasicAuthentication() {
290
290
  if (Cache.hasItem("basic")) {
291
- this.xmlhttp.withCredentials = true;
292
291
  const basicToken = Cache.getItem("basic");
293
292
 
294
293
  if (typeof basicToken === "string") {
@@ -314,6 +313,7 @@ class XHR {
314
313
  /**
315
314
  */
316
315
  setOtherOptions() {
316
+ this.xmlhttp.withCredentials = true;
317
317
  this.xmlhttp.responseType = this.responseType;
318
318
  this.xmlhttp.timeout = this.timeout;
319
319
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","arguments","length","undefined","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","toString","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n this.xmlhttp.withCredentials = true;\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","arguments","length","undefined","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","toString","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.withCredentials = true;\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beinformed/ui",
3
- "version": "1.59.15",
3
+ "version": "1.59.16-beta.0",
4
4
  "description": "Toolbox for be informed javascript layouts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "bugs": "http://support.beinformed.com",
@@ -288,7 +288,6 @@ class XHR {
288
288
  */
289
289
  setBasicAuthentication() {
290
290
  if (Cache.hasItem("basic")) {
291
- this.xmlhttp.withCredentials = true;
292
291
  const basicToken = Cache.getItem("basic");
293
292
 
294
293
  if (typeof basicToken === "string") {
@@ -314,6 +313,7 @@ class XHR {
314
313
  /**
315
314
  */
316
315
  setOtherOptions() {
316
+ this.xmlhttp.withCredentials = true;
317
317
  this.xmlhttp.responseType = this.responseType;
318
318
  this.xmlhttp.timeout = this.timeout;
319
319
  }