@kelvininc/web-client-sdk 7.5.0 → 7.8.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
|
@@ -3,6 +3,41 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.8.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.7.0...v7.8.0) (2022-07-06)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **kelvin-js-sdk:** rollback content type header support ([6714394](https://bitbucket.org/kelvininc/kelvinjs/commits/6714394a21cd946bd8489f3a362e4acbe9c42b9b))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **kelvin-web-sdk:** fix version due to [#434](https://bitbucket.org/kelvininc/kelvinjs/issues/434) issue ([aef2b89](https://bitbucket.org/kelvininc/kelvinjs/commits/aef2b89a56fc576efd90ba5d50f7954733d45c61))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [7.7.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.6.0...v7.7.0) (2022-05-26)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @kelvininc/web-client-sdk
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# [7.6.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.5.0...v7.6.0) (2022-05-20)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* add thread services, update asset service with templates and visualization models ([a9b6a07](https://bitbucket.org/kelvininc/kelvinjs/commits/a9b6a076a69cc50c206ecfe05034c77b3f459d01))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
6
41
|
# [7.5.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.4.1...v7.5.0) (2022-05-06)
|
|
7
42
|
|
|
8
43
|
**Note:** Version bump only for package @kelvininc/web-client-sdk
|
package/README.md
CHANGED
|
@@ -6,8 +6,8 @@ Kelvin SDK Client provides a simple way to integrate our Authentication, Service
|
|
|
6
6
|
|
|
7
7
|
To run our SDK inside your project you need to support the following versions:
|
|
8
8
|
|
|
9
|
-
- Rxjs: 6.
|
|
10
|
-
- Axios
|
|
9
|
+
- Rxjs: 6.6.X
|
|
10
|
+
- Axios: ^0.27.2
|
|
11
11
|
- Optionally, keycloak-js to handle the authentication
|
|
12
12
|
|
|
13
13
|
## Installation
|
|
@@ -15,7 +15,7 @@ To run our SDK inside your project you need to support the following versions:
|
|
|
15
15
|
Install the Kelvin SDK Client, RxJS and Axios Client:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npm install @kelvininc/web-client-sdk axios rxjs@~6.
|
|
18
|
+
npm install @kelvininc/web-client-sdk axios rxjs@~6.6.7 --save
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Setup without Keycloak
|
|
@@ -14,6 +14,9 @@ class HttpAdapter {
|
|
|
14
14
|
const { method, url, data, headers, params, mediaType } = requestPayload;
|
|
15
15
|
const isChunked = mediaType === js_client_sdk_1.EKvHttpMediaType.jsonStream;
|
|
16
16
|
const responseType = !mediaType || (mediaType === js_client_sdk_1.EKvHttpMediaType.json) ? 'json' : 'text';
|
|
17
|
+
if (data instanceof FormData) {
|
|
18
|
+
headers['Content-Type'] = 'multipart/form-data';
|
|
19
|
+
}
|
|
17
20
|
let mappedRequestPayload = {
|
|
18
21
|
method,
|
|
19
22
|
url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/adapters/http-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/adapters/http-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { EKvHttpMediaType, EKvHttpResponseType, IKvHttpAdapter, IKvHttpRequest, IKvHttpResponse } from '@kelvininc/js-client-sdk';\nimport { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Observable, Subject } from 'rxjs';\nimport qs from 'qs';\n\nexport class HttpAdapter implements IKvHttpAdapter {\n\n\tconstructor(private httpClient: AxiosInstance) { }\n\n\trequest(requestPayload: IKvHttpRequest): Observable<IKvHttpResponse> {\n\t\tconst { method, url, data, headers, params, mediaType } = requestPayload;\n\t\tconst isChunked = mediaType === EKvHttpMediaType.jsonStream;\n\t\tconst responseType = !mediaType || (mediaType === EKvHttpMediaType.json) ? 'json' : 'text';\n\n\t\tif (data instanceof FormData) {\n\t\t\theaders['Content-Type'] = 'multipart/form-data';\n\t\t}\n\n\t\tlet mappedRequestPayload: AxiosRequestConfig = {\n\t\t\tmethod,\n\t\t\turl,\n\t\t\theaders,\n\t\t\tdata,\n\t\t\tresponseType,\n\t\t\tparams,\n\t\t\tparamsSerializer: (paramsToSerialize) => {\n\t\t\t\treturn qs.stringify(paramsToSerialize, { arrayFormat: 'comma' });\n\t\t\t}\n\t\t};\n\n\t\tconst requestInstance$ = new Subject<IKvHttpResponse>();\n\t\tif (requestPayload.options?.reportProgress) {\n\t\t\tmappedRequestPayload = {\n\t\t\t\t...mappedRequestPayload,\n\t\t\t\tonDownloadProgress: (progress) => {\n\t\t\t\t\trequestInstance$.next({\n\t\t\t\t\t\thttpResponse: progress,\n\t\t\t\t\t\ttype: EKvHttpResponseType.DownloadProgress,\n\t\t\t\t\t\tconfig: requestPayload\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonUploadProgress: (progress) => {\n\t\t\t\t\trequestInstance$.next({\n\t\t\t\t\t\thttpResponse: progress,\n\t\t\t\t\t\ttype: EKvHttpResponseType.UploadProgress,\n\t\t\t\t\t\tconfig: requestPayload\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tthis.httpClient.request(mappedRequestPayload)\n\t\t\t.then((response: AxiosResponse) => {\n\t\t\t\trequestInstance$.next(this.handleRequest(response, isChunked, requestPayload));\n\t\t\t\trequestInstance$.complete();\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\trequestInstance$.error(this.handleError(error, requestPayload));\n\t\t\t});\n\t\treturn requestInstance$;\n\t}\n\n\thandleError(err: AxiosError, config: IKvHttpRequest): IKvHttpResponse | AxiosError {\n\t\tconst error = err\n\t\t\t? {\n\t\t\t\ttype: EKvHttpResponseType.Response,\n\t\t\t\tstatus: err.response?.status,\n\t\t\t\tstatusText: err.message,\n\t\t\t\theaders: err.response?.headers,\n\t\t\t\tconfig,\n\t\t\t\thttpResponse: err.response\n\t\t\t}\n\t\t\t: err;\n\n\t\treturn error;\n\t}\n\n\thandleRequest(response: AxiosResponse, isChunked: boolean, config: IKvHttpRequest): IKvHttpResponse {\n\t\tconst { data, status, statusText, headers } = response;\n\t\tlet bodyParsed = data;\n\t\t/**\n\t\t * typeof bodyParsed == 'string' fixes a bug when the stream\n\t\t * comes with only one array the axios framework parses it automatically\n\t\t */\n\t\tif (isChunked && typeof bodyParsed === 'string') {\n\t\t\ttry {\n\t\t\t\tbodyParsed = bodyParsed ? JSON.parse(data.replace(/\\]\\n\\[/g, ',')) : [];\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error during parsing chunk data');\n\t\t\t\tbodyParsed = [];\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: EKvHttpResponseType.Response,\n\t\t\tbody: bodyParsed,\n\t\t\tstatus,\n\t\t\tstatusText,\n\t\t\theaders,\n\t\t\tconfig,\n\t\t\thttpResponse: event\n\t\t};\n\t}\n}\n"]}
|
|
@@ -10,6 +10,9 @@ export class HttpAdapter {
|
|
|
10
10
|
const { method, url, data, headers, params, mediaType } = requestPayload;
|
|
11
11
|
const isChunked = mediaType === EKvHttpMediaType.jsonStream;
|
|
12
12
|
const responseType = !mediaType || (mediaType === EKvHttpMediaType.json) ? 'json' : 'text';
|
|
13
|
+
if (data instanceof FormData) {
|
|
14
|
+
headers['Content-Type'] = 'multipart/form-data';
|
|
15
|
+
}
|
|
13
16
|
let mappedRequestPayload = {
|
|
14
17
|
method,
|
|
15
18
|
url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/adapters/http-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { EKvHttpMediaType, EKvHttpResponseType, IKvHttpAdapter, IKvHttpRequest, IKvHttpResponse } from '@kelvininc/js-client-sdk';\nimport { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Observable, Subject } from 'rxjs';\nimport qs from 'qs';\n\nexport class HttpAdapter implements IKvHttpAdapter {\n\n\tconstructor(private httpClient: AxiosInstance) { }\n\n\trequest(requestPayload: IKvHttpRequest): Observable<IKvHttpResponse> {\n\t\tconst { method, url, data, headers, params, mediaType } = requestPayload;\n\t\tconst isChunked = mediaType === EKvHttpMediaType.jsonStream;\n\t\tconst responseType = !mediaType || (mediaType === EKvHttpMediaType.json) ? 'json' : 'text';\n\n\t\tlet mappedRequestPayload: AxiosRequestConfig = {\n\t\t\tmethod,\n\t\t\turl,\n\t\t\theaders,\n\t\t\tdata,\n\t\t\tresponseType,\n\t\t\tparams,\n\t\t\tparamsSerializer: (paramsToSerialize) => {\n\t\t\t\treturn qs.stringify(paramsToSerialize, { arrayFormat: 'comma' });\n\t\t\t}\n\t\t};\n\n\t\tconst requestInstance$ = new Subject<IKvHttpResponse>();\n\t\tif (requestPayload.options?.reportProgress) {\n\t\t\tmappedRequestPayload = {\n\t\t\t\t...mappedRequestPayload,\n\t\t\t\tonDownloadProgress: (progress) => {\n\t\t\t\t\trequestInstance$.next({\n\t\t\t\t\t\thttpResponse: progress,\n\t\t\t\t\t\ttype: EKvHttpResponseType.DownloadProgress,\n\t\t\t\t\t\tconfig: requestPayload\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonUploadProgress: (progress) => {\n\t\t\t\t\trequestInstance$.next({\n\t\t\t\t\t\thttpResponse: progress,\n\t\t\t\t\t\ttype: EKvHttpResponseType.UploadProgress,\n\t\t\t\t\t\tconfig: requestPayload\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tthis.httpClient.request(mappedRequestPayload)\n\t\t\t.then((response: AxiosResponse) => {\n\t\t\t\trequestInstance$.next(this.handleRequest(response, isChunked, requestPayload));\n\t\t\t\trequestInstance$.complete();\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\trequestInstance$.error(this.handleError(error, requestPayload));\n\t\t\t});\n\t\treturn requestInstance$;\n\t}\n\n\thandleError(err: AxiosError, config: IKvHttpRequest): IKvHttpResponse | AxiosError {\n\t\tconst error = err\n\t\t\t? {\n\t\t\t\ttype: EKvHttpResponseType.Response,\n\t\t\t\tstatus: err.response?.status,\n\t\t\t\tstatusText: err.message,\n\t\t\t\theaders: err.response?.headers,\n\t\t\t\tconfig,\n\t\t\t\thttpResponse: err.response\n\t\t\t}\n\t\t\t: err;\n\n\t\treturn error;\n\t}\n\n\thandleRequest(response: AxiosResponse, isChunked: boolean, config: IKvHttpRequest): IKvHttpResponse {\n\t\tconst { data, status, statusText, headers } = response;\n\t\tlet bodyParsed = data;\n\t\t/**\n\t\t * typeof bodyParsed == 'string' fixes a bug when the stream\n\t\t * comes with only one array the axios framework parses it automatically\n\t\t */\n\t\tif (isChunked && typeof bodyParsed === 'string') {\n\t\t\ttry {\n\t\t\t\tbodyParsed = bodyParsed ? JSON.parse(data.replace(/\\]\\n\\[/g, ',')) : [];\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error during parsing chunk data');\n\t\t\t\tbodyParsed = [];\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: EKvHttpResponseType.Response,\n\t\t\tbody: bodyParsed,\n\t\t\tstatus,\n\t\t\tstatusText,\n\t\t\theaders,\n\t\t\tconfig,\n\t\t\thttpResponse: event\n\t\t};\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/adapters/http-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { EKvHttpMediaType, EKvHttpResponseType, IKvHttpAdapter, IKvHttpRequest, IKvHttpResponse } from '@kelvininc/js-client-sdk';\nimport { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Observable, Subject } from 'rxjs';\nimport qs from 'qs';\n\nexport class HttpAdapter implements IKvHttpAdapter {\n\n\tconstructor(private httpClient: AxiosInstance) { }\n\n\trequest(requestPayload: IKvHttpRequest): Observable<IKvHttpResponse> {\n\t\tconst { method, url, data, headers, params, mediaType } = requestPayload;\n\t\tconst isChunked = mediaType === EKvHttpMediaType.jsonStream;\n\t\tconst responseType = !mediaType || (mediaType === EKvHttpMediaType.json) ? 'json' : 'text';\n\n\t\tif (data instanceof FormData) {\n\t\t\theaders['Content-Type'] = 'multipart/form-data';\n\t\t}\n\n\t\tlet mappedRequestPayload: AxiosRequestConfig = {\n\t\t\tmethod,\n\t\t\turl,\n\t\t\theaders,\n\t\t\tdata,\n\t\t\tresponseType,\n\t\t\tparams,\n\t\t\tparamsSerializer: (paramsToSerialize) => {\n\t\t\t\treturn qs.stringify(paramsToSerialize, { arrayFormat: 'comma' });\n\t\t\t}\n\t\t};\n\n\t\tconst requestInstance$ = new Subject<IKvHttpResponse>();\n\t\tif (requestPayload.options?.reportProgress) {\n\t\t\tmappedRequestPayload = {\n\t\t\t\t...mappedRequestPayload,\n\t\t\t\tonDownloadProgress: (progress) => {\n\t\t\t\t\trequestInstance$.next({\n\t\t\t\t\t\thttpResponse: progress,\n\t\t\t\t\t\ttype: EKvHttpResponseType.DownloadProgress,\n\t\t\t\t\t\tconfig: requestPayload\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonUploadProgress: (progress) => {\n\t\t\t\t\trequestInstance$.next({\n\t\t\t\t\t\thttpResponse: progress,\n\t\t\t\t\t\ttype: EKvHttpResponseType.UploadProgress,\n\t\t\t\t\t\tconfig: requestPayload\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tthis.httpClient.request(mappedRequestPayload)\n\t\t\t.then((response: AxiosResponse) => {\n\t\t\t\trequestInstance$.next(this.handleRequest(response, isChunked, requestPayload));\n\t\t\t\trequestInstance$.complete();\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\trequestInstance$.error(this.handleError(error, requestPayload));\n\t\t\t});\n\t\treturn requestInstance$;\n\t}\n\n\thandleError(err: AxiosError, config: IKvHttpRequest): IKvHttpResponse | AxiosError {\n\t\tconst error = err\n\t\t\t? {\n\t\t\t\ttype: EKvHttpResponseType.Response,\n\t\t\t\tstatus: err.response?.status,\n\t\t\t\tstatusText: err.message,\n\t\t\t\theaders: err.response?.headers,\n\t\t\t\tconfig,\n\t\t\t\thttpResponse: err.response\n\t\t\t}\n\t\t\t: err;\n\n\t\treturn error;\n\t}\n\n\thandleRequest(response: AxiosResponse, isChunked: boolean, config: IKvHttpRequest): IKvHttpResponse {\n\t\tconst { data, status, statusText, headers } = response;\n\t\tlet bodyParsed = data;\n\t\t/**\n\t\t * typeof bodyParsed == 'string' fixes a bug when the stream\n\t\t * comes with only one array the axios framework parses it automatically\n\t\t */\n\t\tif (isChunked && typeof bodyParsed === 'string') {\n\t\t\ttry {\n\t\t\t\tbodyParsed = bodyParsed ? JSON.parse(data.replace(/\\]\\n\\[/g, ',')) : [];\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error during parsing chunk data');\n\t\t\t\tbodyParsed = [];\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: EKvHttpResponseType.Response,\n\t\t\tbody: bodyParsed,\n\t\t\tstatus,\n\t\t\tstatusText,\n\t\t\theaders,\n\t\t\tconfig,\n\t\t\thttpResponse: event\n\t\t};\n\t}\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kelvininc/web-client-sdk",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.8.0",
|
|
4
4
|
"description": "Kelvin SDK Client for modern frontend Javascript frameworks, like Vue or React",
|
|
5
5
|
"homepage": "https://docs.kelvininc.com",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"build": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@kelvininc/js-client-sdk": "^7.
|
|
35
|
-
"qs": "
|
|
34
|
+
"@kelvininc/js-client-sdk": "^7.8.0",
|
|
35
|
+
"qs": "6.10.3"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/axios": "^0.14.0",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"typescript": "^4.1.5"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"axios": "^0.
|
|
45
|
+
"axios": "^0.27.2",
|
|
46
46
|
"rxjs": "~6.6.7"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "7e49a7220ddeae6a5f856d19c59f78996554d540"
|
|
49
49
|
}
|