@kelvininc/web-client-sdk 7.0.0 → 7.3.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 +39 -0
- package/dist/cjs/adapters/http-adapter.d.ts +1 -7
- package/dist/cjs/adapters/http-adapter.js +15 -5
- package/dist/cjs/adapters/http-adapter.js.map +1 -1
- package/dist/esm/adapters/http-adapter.d.ts +1 -7
- package/dist/esm/adapters/http-adapter.js +14 -5
- package/dist/esm/adapters/http-adapter.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,45 @@
|
|
|
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.3.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.2.0...v7.3.0) (2022-04-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @kelvininc/web-client-sdk
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [7.2.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.1.0...v7.2.0) (2022-04-12)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **kelvin-web-sdk:** change default params serializer to use lists ([b13cf9f](https://bitbucket.org/kelvininc/kelvinjs/commits/b13cf9f8318862e289f71f5d6c12f45314237b16))
|
|
20
|
+
* **kelvin-web-sdk:** fix status error access ([f7e2fcb](https://bitbucket.org/kelvininc/kelvinjs/commits/f7e2fcb6157f036b23f9a85015bd91c6e0cb6064))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# [7.1.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.0.1...v7.1.0) (2022-02-15)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @kelvininc/web-client-sdk
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## [7.0.1](https://bitbucket.org/kelvininc/kelvinjs/compare/v7.0.0...v7.0.1) (2022-02-10)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* **http-adapter:** solving issue for data stream responses [SA-598] ([785cea1](https://bitbucket.org/kelvininc/kelvinjs/commits/785cea1ca95b19030b0ced5dd27d62441161d243))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
6
45
|
# [7.0.0](https://bitbucket.org/kelvininc/kelvinjs/compare/v6.2.0...v7.0.0) (2022-02-01)
|
|
7
46
|
|
|
8
47
|
|
|
@@ -5,12 +5,6 @@ export declare class HttpAdapter implements IKvHttpAdapter {
|
|
|
5
5
|
private httpClient;
|
|
6
6
|
constructor(httpClient: AxiosInstance);
|
|
7
7
|
request(requestPayload: IKvHttpRequest): Observable<IKvHttpResponse>;
|
|
8
|
-
handleError(err: AxiosError, config: IKvHttpRequest):
|
|
9
|
-
status: string;
|
|
10
|
-
statusText: string;
|
|
11
|
-
headers: any;
|
|
12
|
-
config: IKvHttpRequest;
|
|
13
|
-
httpResponse: AxiosResponse<any>;
|
|
14
|
-
};
|
|
8
|
+
handleError(err: AxiosError, config: IKvHttpRequest): IKvHttpResponse | AxiosError;
|
|
15
9
|
handleRequest(response: AxiosResponse, isChunked: boolean, config: IKvHttpRequest): IKvHttpResponse;
|
|
16
10
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HttpAdapter = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const js_client_sdk_1 = require("@kelvininc/js-client-sdk");
|
|
5
6
|
const rxjs_1 = require("rxjs");
|
|
7
|
+
const qs_1 = tslib_1.__importDefault(require("qs"));
|
|
6
8
|
class HttpAdapter {
|
|
7
9
|
constructor(httpClient) {
|
|
8
10
|
this.httpClient = httpClient;
|
|
@@ -18,7 +20,10 @@ class HttpAdapter {
|
|
|
18
20
|
headers,
|
|
19
21
|
data,
|
|
20
22
|
responseType,
|
|
21
|
-
params
|
|
23
|
+
params,
|
|
24
|
+
paramsSerializer: (paramsToSerialize) => {
|
|
25
|
+
return qs_1.default.stringify(paramsToSerialize, { arrayFormat: 'comma' });
|
|
26
|
+
}
|
|
22
27
|
};
|
|
23
28
|
const requestInstance$ = new rxjs_1.Subject();
|
|
24
29
|
if ((_a = requestPayload.options) === null || _a === void 0 ? void 0 : _a.reportProgress) {
|
|
@@ -47,12 +52,13 @@ class HttpAdapter {
|
|
|
47
52
|
return requestInstance$;
|
|
48
53
|
}
|
|
49
54
|
handleError(err, config) {
|
|
50
|
-
var _a;
|
|
55
|
+
var _a, _b;
|
|
51
56
|
const error = err
|
|
52
57
|
? {
|
|
53
|
-
|
|
58
|
+
type: js_client_sdk_1.EKvHttpResponseType.Response,
|
|
59
|
+
status: (_a = err.response) === null || _a === void 0 ? void 0 : _a.status,
|
|
54
60
|
statusText: err.message,
|
|
55
|
-
headers: (
|
|
61
|
+
headers: (_b = err.response) === null || _b === void 0 ? void 0 : _b.headers,
|
|
56
62
|
config,
|
|
57
63
|
httpResponse: err.response
|
|
58
64
|
}
|
|
@@ -62,7 +68,11 @@ class HttpAdapter {
|
|
|
62
68
|
handleRequest(response, isChunked, config) {
|
|
63
69
|
const { data, status, statusText, headers } = response;
|
|
64
70
|
let bodyParsed = data;
|
|
65
|
-
|
|
71
|
+
/**
|
|
72
|
+
* typeof bodyParsed == 'string' fixes a bug when the stream
|
|
73
|
+
* comes with only one array the axios framework parses it automatically
|
|
74
|
+
*/
|
|
75
|
+
if (isChunked && typeof bodyParsed === 'string') {
|
|
66
76
|
try {
|
|
67
77
|
bodyParsed = bodyParsed ? JSON.parse(data.replace(/\]\n\[/g, ',')) : [];
|
|
68
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/adapters/http-adapter.ts"],"names":[],"mappings":"
|
|
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"]}
|
|
@@ -5,12 +5,6 @@ export declare class HttpAdapter implements IKvHttpAdapter {
|
|
|
5
5
|
private httpClient;
|
|
6
6
|
constructor(httpClient: AxiosInstance);
|
|
7
7
|
request(requestPayload: IKvHttpRequest): Observable<IKvHttpResponse>;
|
|
8
|
-
handleError(err: AxiosError, config: IKvHttpRequest):
|
|
9
|
-
status: string;
|
|
10
|
-
statusText: string;
|
|
11
|
-
headers: any;
|
|
12
|
-
config: IKvHttpRequest;
|
|
13
|
-
httpResponse: AxiosResponse<any>;
|
|
14
|
-
};
|
|
8
|
+
handleError(err: AxiosError, config: IKvHttpRequest): IKvHttpResponse | AxiosError;
|
|
15
9
|
handleRequest(response: AxiosResponse, isChunked: boolean, config: IKvHttpRequest): IKvHttpResponse;
|
|
16
10
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EKvHttpMediaType, EKvHttpResponseType } from '@kelvininc/js-client-sdk';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
|
+
import qs from 'qs';
|
|
3
4
|
export class HttpAdapter {
|
|
4
5
|
constructor(httpClient) {
|
|
5
6
|
this.httpClient = httpClient;
|
|
@@ -15,7 +16,10 @@ export class HttpAdapter {
|
|
|
15
16
|
headers,
|
|
16
17
|
data,
|
|
17
18
|
responseType,
|
|
18
|
-
params
|
|
19
|
+
params,
|
|
20
|
+
paramsSerializer: (paramsToSerialize) => {
|
|
21
|
+
return qs.stringify(paramsToSerialize, { arrayFormat: 'comma' });
|
|
22
|
+
}
|
|
19
23
|
};
|
|
20
24
|
const requestInstance$ = new Subject();
|
|
21
25
|
if ((_a = requestPayload.options) === null || _a === void 0 ? void 0 : _a.reportProgress) {
|
|
@@ -44,12 +48,13 @@ export class HttpAdapter {
|
|
|
44
48
|
return requestInstance$;
|
|
45
49
|
}
|
|
46
50
|
handleError(err, config) {
|
|
47
|
-
var _a;
|
|
51
|
+
var _a, _b;
|
|
48
52
|
const error = err
|
|
49
53
|
? {
|
|
50
|
-
|
|
54
|
+
type: EKvHttpResponseType.Response,
|
|
55
|
+
status: (_a = err.response) === null || _a === void 0 ? void 0 : _a.status,
|
|
51
56
|
statusText: err.message,
|
|
52
|
-
headers: (
|
|
57
|
+
headers: (_b = err.response) === null || _b === void 0 ? void 0 : _b.headers,
|
|
53
58
|
config,
|
|
54
59
|
httpResponse: err.response
|
|
55
60
|
}
|
|
@@ -59,7 +64,11 @@ export class HttpAdapter {
|
|
|
59
64
|
handleRequest(response, isChunked, config) {
|
|
60
65
|
const { data, status, statusText, headers } = response;
|
|
61
66
|
let bodyParsed = data;
|
|
62
|
-
|
|
67
|
+
/**
|
|
68
|
+
* typeof bodyParsed == 'string' fixes a bug when the stream
|
|
69
|
+
* comes with only one array the axios framework parses it automatically
|
|
70
|
+
*/
|
|
71
|
+
if (isChunked && typeof bodyParsed === 'string') {
|
|
63
72
|
try {
|
|
64
73
|
bodyParsed = bodyParsed ? JSON.parse(data.replace(/\]\n\[/g, ',')) : [];
|
|
65
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/adapters/http-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAmD,MAAM,0BAA0B,CAAC;AAElI,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kelvininc/web-client-sdk",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.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,7 +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.
|
|
34
|
+
"@kelvininc/js-client-sdk": "^7.3.0",
|
|
35
|
+
"qs": "~6.10.3"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
38
|
"@types/axios": "^0.14.0",
|
|
@@ -44,5 +45,5 @@
|
|
|
44
45
|
"axios": "^0.21.1",
|
|
45
46
|
"rxjs": "~6.6.7"
|
|
46
47
|
},
|
|
47
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "2169bbf41c2dc80fa966649818fc792f77f5a19c"
|
|
48
49
|
}
|