@kelvininc/node-client-sdk 7.18.0 → 8.14.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 +283 -0
- package/dist/cjs/adapters/http/config.d.ts +6 -0
- package/dist/cjs/adapters/http/config.js +12 -0
- package/dist/cjs/adapters/http/config.js.map +1 -0
- package/dist/cjs/adapters/http/fetch-http.d.ts +4 -0
- package/dist/cjs/adapters/http/fetch-http.js +11 -0
- package/dist/cjs/adapters/http/fetch-http.js.map +1 -0
- package/dist/cjs/adapters/http/http-requester.d.ts +8 -0
- package/dist/cjs/adapters/http/http-requester.js +26 -0
- package/dist/cjs/adapters/http/http-requester.js.map +1 -0
- package/dist/cjs/adapters/http/node-fetch-http.d.ts +5 -0
- package/dist/cjs/adapters/http/node-fetch-http.js +15 -0
- package/dist/cjs/adapters/http/node-fetch-http.js.map +1 -0
- package/dist/cjs/adapters/http/util.d.ts +12 -0
- package/dist/cjs/adapters/http/util.js +192 -0
- package/dist/cjs/adapters/http/util.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kelvin-node-sdk.d.ts +2 -1
- package/dist/cjs/kelvin-node-sdk.js +4 -3
- package/dist/cjs/kelvin-node-sdk.js.map +1 -1
- package/dist/cjs/models.d.ts +1 -0
- package/dist/cjs/models.js +14 -0
- package/dist/cjs/models.js.map +1 -0
- package/dist/cjs/types.d.ts +14 -0
- package/dist/cjs/types.js +9 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/adapters/http/config.d.ts +6 -0
- package/dist/esm/adapters/http/config.js +9 -0
- package/dist/esm/adapters/http/config.js.map +1 -0
- package/dist/esm/adapters/http/fetch-http.d.ts +4 -0
- package/dist/esm/adapters/http/fetch-http.js +7 -0
- package/dist/esm/adapters/http/fetch-http.js.map +1 -0
- package/dist/esm/adapters/http/http-requester.d.ts +8 -0
- package/dist/esm/adapters/http/http-requester.js +22 -0
- package/dist/esm/adapters/http/http-requester.js.map +1 -0
- package/dist/esm/adapters/http/node-fetch-http.d.ts +5 -0
- package/dist/esm/adapters/http/node-fetch-http.js +8 -0
- package/dist/esm/adapters/http/node-fetch-http.js.map +1 -0
- package/dist/esm/adapters/http/util.d.ts +12 -0
- package/dist/esm/adapters/http/util.js +181 -0
- package/dist/esm/adapters/http/util.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kelvin-node-sdk.d.ts +2 -1
- package/dist/esm/kelvin-node-sdk.js +4 -3
- package/dist/esm/kelvin-node-sdk.js.map +1 -1
- package/dist/esm/models.d.ts +1 -0
- package/dist/esm/models.js +2 -0
- package/dist/esm/models.js.map +1 -0
- package/dist/esm/types.d.ts +14 -0
- package/dist/esm/types.js +6 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +27 -9
- package/dist/cjs/adapters/http.d.ts +0 -7
- package/dist/cjs/adapters/http.js +0 -67
- package/dist/cjs/adapters/http.js.map +0 -1
- package/dist/esm/adapters/http.d.ts +0 -7
- package/dist/esm/adapters/http.js +0 -60
- package/dist/esm/adapters/http.js.map +0 -1
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.KelvinSDK = void 0;
|
|
4
4
|
const js_client_sdk_1 = require("@kelvininc/js-client-sdk");
|
|
5
|
-
const http_1 = require("./adapters/http");
|
|
6
5
|
const storage_1 = require("./adapters/storage");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
const config_1 = require("./adapters/http/config");
|
|
7
8
|
class KelvinSDK {
|
|
8
|
-
static initialize(configuration) {
|
|
9
|
-
js_client_sdk_1.init(Object.assign(Object.assign({}, configuration), { httpAdapter:
|
|
9
|
+
static initialize(configuration, adapter = types_1.EHttpAdapterType.NodeFetch) {
|
|
10
|
+
js_client_sdk_1.init(Object.assign(Object.assign({}, configuration), { httpAdapter: config_1.HTTP_ADAPTER[adapter], storageAdapter: new storage_1.NodeStorageAdapter() }));
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
exports.KelvinSDK = KelvinSDK;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kelvin-node-sdk.js","sourceRoot":"","sources":["../../src/kelvin-node-sdk.ts"],"names":[],"mappings":";;;AAAA,4DAGkC;AAClC,
|
|
1
|
+
{"version":3,"file":"kelvin-node-sdk.js","sourceRoot":"","sources":["../../src/kelvin-node-sdk.ts"],"names":[],"mappings":";;;AAAA,4DAGkC;AAClC,gDAAwD;AACxD,mCAA2C;AAC3C,mDAAsD;AAEtD,MAAa,SAAS;IACrB,MAAM,CAAC,UAAU,CAChB,aAAmC,EACnC,OAAO,GAAG,wBAAgB,CAAC,SAAS;QAEpC,oBAAc,iCACV,aAAa,KAChB,WAAW,EAAE,qBAAY,CAAC,OAAO,CAAC,EAClC,cAAc,EAAE,IAAI,4BAAkB,EAAE,IACvC,CAAC;IACJ,CAAC;CACD;AAXD,8BAWC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@kelvininc/js-client-sdk/models';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("@kelvininc/js-client-sdk/models"), exports);
|
|
14
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kEAAgD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IKvHttpRequest, IKvHttpRequestOptions } from '@kelvininc/js-client-sdk';
|
|
2
|
+
export declare enum EHttpAdapterType {
|
|
3
|
+
Fetch = "fetch",
|
|
4
|
+
NodeFetch = "node-fetch"
|
|
5
|
+
}
|
|
6
|
+
export declare type KvNodeHttpRequestOptions<L extends RequestInit> = IKvHttpRequestOptions & {
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
} & L;
|
|
9
|
+
export interface IKvNodeHttpRequest<L extends {}> extends IKvHttpRequest {
|
|
10
|
+
options?: KvNodeHttpRequestOptions<L>;
|
|
11
|
+
}
|
|
12
|
+
export declare type XHRResponseHeaders = XMLHttpRequest & {
|
|
13
|
+
headers: Headers;
|
|
14
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EHttpAdapterType = void 0;
|
|
4
|
+
var EHttpAdapterType;
|
|
5
|
+
(function (EHttpAdapterType) {
|
|
6
|
+
EHttpAdapterType["Fetch"] = "fetch";
|
|
7
|
+
EHttpAdapterType["NodeFetch"] = "node-fetch";
|
|
8
|
+
})(EHttpAdapterType = exports.EHttpAdapterType || (exports.EHttpAdapterType = {}));
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAKA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC3B,mCAAe,CAAA;IACf,4CAAwB,CAAA;AACzB,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EHttpAdapterType } from '../../types';
|
|
2
|
+
import { NodeFetchHttpAdapter } from './node-fetch-http';
|
|
3
|
+
import { FetchHttpAdapter } from './fetch-http';
|
|
4
|
+
export const HTTP_ADAPTER = {
|
|
5
|
+
[EHttpAdapterType.NodeFetch]: new NodeFetchHttpAdapter(),
|
|
6
|
+
[EHttpAdapterType.Fetch]: new FetchHttpAdapter()
|
|
7
|
+
};
|
|
8
|
+
export const FETCH_ABORT_ERROR_NAME = 'AbortError';
|
|
9
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/adapters/http/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAkD;IAC1E,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,oBAAoB,EAAE;IACxD,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,gBAAgB,EAAE;CAChD,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-http.js","sourceRoot":"","sources":["../../../../src/adapters/http/fetch-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAClD,cAAc,CAAC,GAAW,EAAE,IAAkB;QAC7C,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IKvHttpAdapter, IKvHttpResponse } from '@kelvininc/js-client-sdk';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { IKvNodeHttpRequest } from 'src/types';
|
|
4
|
+
import { Response as NF_Response, ResponseInit as NF_RequestInit } from 'node-fetch';
|
|
5
|
+
export declare abstract class HTTPRequester implements IKvHttpAdapter {
|
|
6
|
+
request<L = {}>(requestPayload: IKvNodeHttpRequest<L>): Observable<IKvHttpResponse>;
|
|
7
|
+
abstract requestAdapter(url: string, requestOptions: RequestInit | NF_RequestInit): Promise<Response | NF_Response>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { EKvHttpMethod } from '@kelvininc/js-client-sdk';
|
|
2
|
+
import { from } from 'rxjs';
|
|
3
|
+
import { buildFetchRequestInit, buildFetchUrl, checkBuildController, handleFetchResponse, handleUploadWithProgress } from './util';
|
|
4
|
+
export class HTTPRequester {
|
|
5
|
+
request(requestPayload) {
|
|
6
|
+
const { options, data, method } = requestPayload;
|
|
7
|
+
/**
|
|
8
|
+
* fetch/node-fetch doesn't support progress report for upload.
|
|
9
|
+
* switched to XHR api.
|
|
10
|
+
* */
|
|
11
|
+
if ((options === null || options === void 0 ? void 0 : options.reportProgress) &&
|
|
12
|
+
data instanceof FormData &&
|
|
13
|
+
method === EKvHttpMethod.POST) {
|
|
14
|
+
return handleUploadWithProgress(requestPayload);
|
|
15
|
+
}
|
|
16
|
+
const [updatedRequestPayload, controller] = checkBuildController(requestPayload);
|
|
17
|
+
const requestInitConfig = buildFetchRequestInit(updatedRequestPayload);
|
|
18
|
+
const requestInstance$ = from(this.requestAdapter(buildFetchUrl(requestPayload), Object.assign({}, requestInitConfig)));
|
|
19
|
+
return handleFetchResponse(updatedRequestPayload, requestInstance$, controller);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=http-requester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-requester.js","sourceRoot":"","sources":["../../../../src/adapters/http/http-requester.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EAGb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,IAAI,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EACN,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,MAAM,QAAQ,CAAC;AAMhB,MAAM,OAAgB,aAAa;IAClC,OAAO,CACN,cAAqC;QAErC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;QAEjD;;;aAGK;QACL,IACC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACvB,IAAI,YAAY,QAAQ;YACxB,MAAM,KAAK,aAAa,CAAC,IAAI,EAC5B;YACD,OAAO,wBAAwB,CAAI,cAAc,CAAC,CAAC;SACnD;QAED,MAAM,CAAC,qBAAqB,EAAE,UAAU,CAAC,GACxC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACtC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,IAAI,CAC5B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,oBAC7C,iBAAiB,EACnB,CACF,CAAC;QAEF,OAAO,mBAAmB,CACzB,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,CACV,CAAC;IACH,CAAC;CAMD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-fetch-http.js","sourceRoot":"","sources":["../../../../src/adapters/http/node-fetch-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACtD,cAAc,CAAC,GAAW,EAAE,IAAkB;QAC7C,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IKvHttpRequest, IKvHttpResponse } from '@kelvininc/js-client-sdk';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Response as NF_Response, ResponseInit as NF_RequestInit } from 'node-fetch';
|
|
4
|
+
import { IKvNodeHttpRequest } from '../../types';
|
|
5
|
+
export declare const handleFetchError: (response: Response | NF_Response, request: IKvHttpRequest) => Observable<IKvHttpResponse>;
|
|
6
|
+
export declare const handleFetchRequest: (response: Response | NF_Response, request: IKvHttpRequest) => Observable<IKvHttpResponse>;
|
|
7
|
+
export declare const isEmptyParam: (value: string | string[]) => boolean;
|
|
8
|
+
export declare const buildFetchUrl: ({ url, params }: IKvHttpRequest) => string;
|
|
9
|
+
export declare const buildFetchRequestInit: ({ method, data, headers: requestHeaders, options }: IKvHttpRequest) => RequestInit | NF_RequestInit;
|
|
10
|
+
export declare const handleFetchResponse: (request: IKvHttpRequest, response$: Observable<Response | NF_Response>, controller?: AbortController) => Observable<IKvHttpResponse>;
|
|
11
|
+
export declare const handleUploadWithProgress: <L>(requestPayload: IKvNodeHttpRequest<L>) => Observable<IKvHttpResponse>;
|
|
12
|
+
export declare const checkBuildController: <L>(requestPayload: IKvNodeHttpRequest<L>) => [IKvNodeHttpRequest<L>, AbortController];
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { EKvHttpMediaType, EKvHttpMethod, EKvHttpResponseType, EKvHttpStatusCode, parseChunkedBody } from '@kelvininc/js-client-sdk';
|
|
2
|
+
import { from, of, throwError } from 'rxjs';
|
|
3
|
+
import { catchError, finalize, map, switchMap, tap } from 'rxjs/operators';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { FETCH_ABORT_ERROR_NAME } from './config';
|
|
6
|
+
const isObject = (value) => {
|
|
7
|
+
const type = typeof value;
|
|
8
|
+
return value !== null && (type === 'object' || type === 'function');
|
|
9
|
+
};
|
|
10
|
+
const isEmptyResponseBody = (res) => {
|
|
11
|
+
return res.headers.get('content-length') === '0' || res.status === EKvHttpStatusCode.NoContent;
|
|
12
|
+
};
|
|
13
|
+
const handleResponse = (response) => {
|
|
14
|
+
try {
|
|
15
|
+
return JSON.parse(response);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
return response;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const transformXHRHeaders = (headers) => {
|
|
22
|
+
const mappedHeaders = headers
|
|
23
|
+
.trim()
|
|
24
|
+
.split('\n')
|
|
25
|
+
.map((header) => header.trim().split(':'));
|
|
26
|
+
return new Headers(mappedHeaders);
|
|
27
|
+
};
|
|
28
|
+
const transformToSuccessResponse = (httpResponse, body, config) => {
|
|
29
|
+
const { status, headers, statusText } = httpResponse;
|
|
30
|
+
return {
|
|
31
|
+
type: EKvHttpResponseType.Response,
|
|
32
|
+
body,
|
|
33
|
+
status,
|
|
34
|
+
statusText,
|
|
35
|
+
headers,
|
|
36
|
+
config,
|
|
37
|
+
httpResponse
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export const handleFetchError = (response, request) => {
|
|
41
|
+
const { statusText, status, headers } = response;
|
|
42
|
+
const error = {
|
|
43
|
+
status,
|
|
44
|
+
statusText,
|
|
45
|
+
headers,
|
|
46
|
+
config: request
|
|
47
|
+
};
|
|
48
|
+
return from(response.text()).pipe(map((data) => handleResponse(data)), switchMap((httpResponse) => throwError(Object.assign(Object.assign({}, error), { httpResponse }))));
|
|
49
|
+
};
|
|
50
|
+
const handleResponseData = (response, request) => {
|
|
51
|
+
if (isEmptyResponseBody(response)) {
|
|
52
|
+
return Promise.resolve();
|
|
53
|
+
}
|
|
54
|
+
switch (request.mediaType) {
|
|
55
|
+
case EKvHttpMediaType.json:
|
|
56
|
+
return response.json();
|
|
57
|
+
case EKvHttpMediaType.jsonStream:
|
|
58
|
+
return response.text();
|
|
59
|
+
case EKvHttpMediaType.zip:
|
|
60
|
+
return response.blob();
|
|
61
|
+
case EKvHttpMediaType.csv:
|
|
62
|
+
return response.text();
|
|
63
|
+
default:
|
|
64
|
+
return response.text();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
export const handleFetchRequest = (response, request) => {
|
|
68
|
+
const responseData = handleResponseData(response, request);
|
|
69
|
+
return from(responseData).pipe(map((data) => {
|
|
70
|
+
const isChunked = request.mediaType === EKvHttpMediaType.jsonStream;
|
|
71
|
+
const parsedData = isChunked ? parseChunkedBody(data) : data;
|
|
72
|
+
return transformToSuccessResponse(response, parsedData, request);
|
|
73
|
+
}));
|
|
74
|
+
};
|
|
75
|
+
export const isEmptyParam = (value) => {
|
|
76
|
+
if (typeof value === 'string') {
|
|
77
|
+
return !value.trim();
|
|
78
|
+
}
|
|
79
|
+
if (Array.isArray(value)) {
|
|
80
|
+
return !value.filter((item) => item !== undefined && item !== null && item !== '').length;
|
|
81
|
+
}
|
|
82
|
+
return false;
|
|
83
|
+
};
|
|
84
|
+
export const buildFetchUrl = ({ url, params }) => {
|
|
85
|
+
if (params) {
|
|
86
|
+
const filteredParams = Object.fromEntries(Object.entries(params).filter(([_, value]) => !isEmptyParam(value)));
|
|
87
|
+
const searchParams = new URLSearchParams(filteredParams);
|
|
88
|
+
return `${url}?${searchParams.toString()}`;
|
|
89
|
+
}
|
|
90
|
+
return url;
|
|
91
|
+
};
|
|
92
|
+
export const buildFetchRequestInit = ({ method, data, headers: requestHeaders, options = {} }) => {
|
|
93
|
+
const isFormData = data instanceof FormData;
|
|
94
|
+
const isDataObject = isObject(data) && !isFormData;
|
|
95
|
+
const headers = isDataObject
|
|
96
|
+
? Object.assign({ 'Content-Type': EKvHttpMediaType.json }, requestHeaders) : requestHeaders;
|
|
97
|
+
const body = isDataObject ? JSON.stringify(data) : data;
|
|
98
|
+
return Object.assign({ method,
|
|
99
|
+
headers,
|
|
100
|
+
body, redirect: 'error' }, options);
|
|
101
|
+
};
|
|
102
|
+
export const handleFetchResponse = (request, response$, controller) => {
|
|
103
|
+
// All requests can be abortable initially,
|
|
104
|
+
// but after the response is received, it should not be abortable
|
|
105
|
+
let abortable = true;
|
|
106
|
+
return response$.pipe(switchMap((response) => response.ok
|
|
107
|
+
? handleFetchRequest(response, request)
|
|
108
|
+
: handleFetchError(response, request)), tap(() => {
|
|
109
|
+
abortable = false;
|
|
110
|
+
}), catchError((err) => {
|
|
111
|
+
if (err instanceof DOMException &&
|
|
112
|
+
err.name === FETCH_ABORT_ERROR_NAME) {
|
|
113
|
+
return of({
|
|
114
|
+
type: EKvHttpResponseType.Response,
|
|
115
|
+
status: EKvHttpStatusCode.RequestClosed,
|
|
116
|
+
statusText: err.message,
|
|
117
|
+
config: request
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
abortable = false;
|
|
121
|
+
return throwError(err);
|
|
122
|
+
}), finalize(() => {
|
|
123
|
+
if (controller && abortable) {
|
|
124
|
+
controller.abort(EKvHttpStatusCode.RequestClosed);
|
|
125
|
+
}
|
|
126
|
+
}));
|
|
127
|
+
};
|
|
128
|
+
const transformXHRError = (xhr, config) => {
|
|
129
|
+
const { status, statusText, responseText } = xhr;
|
|
130
|
+
return {
|
|
131
|
+
type: EKvHttpResponseType.Response,
|
|
132
|
+
httpResponse: this,
|
|
133
|
+
config,
|
|
134
|
+
status,
|
|
135
|
+
statusText,
|
|
136
|
+
body: handleResponse(responseText)
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
export const handleUploadWithProgress = (requestPayload) => {
|
|
140
|
+
const xhr = new XMLHttpRequest();
|
|
141
|
+
const response$ = new Subject();
|
|
142
|
+
xhr.onload = function () {
|
|
143
|
+
const { status, response } = this;
|
|
144
|
+
if (status >= EKvHttpStatusCode.Ok &&
|
|
145
|
+
status < EKvHttpStatusCode.MultipleChoices) {
|
|
146
|
+
const data = handleResponse(response);
|
|
147
|
+
const headers = transformXHRHeaders(this.getAllResponseHeaders());
|
|
148
|
+
response$.next(transformToSuccessResponse(Object.assign(Object.assign({}, this), { headers }), data, requestPayload));
|
|
149
|
+
response$.complete();
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
response$.error(transformXHRError(this, requestPayload));
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
xhr.upload.onprogress = function (httpResponse) {
|
|
156
|
+
response$.next({
|
|
157
|
+
type: EKvHttpResponseType.UploadProgress,
|
|
158
|
+
config: requestPayload,
|
|
159
|
+
httpResponse
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
xhr.onerror = function () {
|
|
163
|
+
response$.error(transformXHRError(this, requestPayload));
|
|
164
|
+
};
|
|
165
|
+
xhr.open(EKvHttpMethod.POST, requestPayload.url, true);
|
|
166
|
+
if (requestPayload.headers) {
|
|
167
|
+
Object.entries(requestPayload.headers).forEach(([key, value]) => xhr.setRequestHeader(key, value));
|
|
168
|
+
}
|
|
169
|
+
xhr.send(requestPayload.data);
|
|
170
|
+
return response$;
|
|
171
|
+
};
|
|
172
|
+
export const checkBuildController = (requestPayload) => {
|
|
173
|
+
// The abort proccess is already handled by the user
|
|
174
|
+
if (requestPayload.options && requestPayload.options.signal) {
|
|
175
|
+
return [requestPayload, undefined];
|
|
176
|
+
}
|
|
177
|
+
const controller = new AbortController();
|
|
178
|
+
const newPayload = Object.assign(Object.assign({}, requestPayload), { options: Object.assign(Object.assign({}, requestPayload.options), { signal: controller.signal }) });
|
|
179
|
+
return [newPayload, controller];
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/adapters/http/util.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IKvEnvironmentConfig } from '@kelvininc/js-client-sdk';
|
|
2
|
+
import { EHttpAdapterType } from './types';
|
|
2
3
|
export declare class KelvinSDK {
|
|
3
|
-
static initialize(configuration: IKvEnvironmentConfig): void;
|
|
4
|
+
static initialize(configuration: IKvEnvironmentConfig, adapter?: EHttpAdapterType): void;
|
|
4
5
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { init as initKelvinCore } from '@kelvininc/js-client-sdk';
|
|
2
|
-
import { NodeHttpAdapter } from './adapters/http';
|
|
3
2
|
import { NodeStorageAdapter } from './adapters/storage';
|
|
3
|
+
import { EHttpAdapterType } from './types';
|
|
4
|
+
import { HTTP_ADAPTER } from './adapters/http/config';
|
|
4
5
|
export class KelvinSDK {
|
|
5
|
-
static initialize(configuration) {
|
|
6
|
-
initKelvinCore(Object.assign(Object.assign({}, configuration), { httpAdapter:
|
|
6
|
+
static initialize(configuration, adapter = EHttpAdapterType.NodeFetch) {
|
|
7
|
+
initKelvinCore(Object.assign(Object.assign({}, configuration), { httpAdapter: HTTP_ADAPTER[adapter], storageAdapter: new NodeStorageAdapter() }));
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=kelvin-node-sdk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kelvin-node-sdk.js","sourceRoot":"","sources":["../../src/kelvin-node-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,IAAI,IAAI,cAAc,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"kelvin-node-sdk.js","sourceRoot":"","sources":["../../src/kelvin-node-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,IAAI,IAAI,cAAc,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,OAAO,SAAS;IACrB,MAAM,CAAC,UAAU,CAChB,aAAmC,EACnC,OAAO,GAAG,gBAAgB,CAAC,SAAS;QAEpC,cAAc,iCACV,aAAa,KAChB,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,EAClC,cAAc,EAAE,IAAI,kBAAkB,EAAE,IACvC,CAAC;IACJ,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@kelvininc/js-client-sdk/models';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IKvHttpRequest, IKvHttpRequestOptions } from '@kelvininc/js-client-sdk';
|
|
2
|
+
export declare enum EHttpAdapterType {
|
|
3
|
+
Fetch = "fetch",
|
|
4
|
+
NodeFetch = "node-fetch"
|
|
5
|
+
}
|
|
6
|
+
export declare type KvNodeHttpRequestOptions<L extends RequestInit> = IKvHttpRequestOptions & {
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
} & L;
|
|
9
|
+
export interface IKvNodeHttpRequest<L extends {}> extends IKvHttpRequest {
|
|
10
|
+
options?: KvNodeHttpRequestOptions<L>;
|
|
11
|
+
}
|
|
12
|
+
export declare type XHRResponseHeaders = XMLHttpRequest & {
|
|
13
|
+
headers: Headers;
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC3B,mCAAe,CAAA;IACf,4CAAwB,CAAA;AACzB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kelvininc/node-client-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.14.0",
|
|
4
4
|
"description": "Kelvin SDK Client for Node applications",
|
|
5
5
|
"homepage": "https://docs.kelvininc.com",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"kelvin node client"
|
|
11
11
|
],
|
|
12
12
|
"author": {
|
|
13
|
-
"name": "
|
|
13
|
+
"name": "Kelvin Inc.",
|
|
14
14
|
"email": "support@kelvininc.com",
|
|
15
15
|
"url": "https://kelvininc.com"
|
|
16
16
|
},
|
|
@@ -18,32 +18,50 @@
|
|
|
18
18
|
"email": "support@kelvininc.com",
|
|
19
19
|
"url": "https://support.kelvininc.com"
|
|
20
20
|
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/kelvininc/core-sdk-javascript"
|
|
24
|
+
},
|
|
21
25
|
"type": "module",
|
|
22
26
|
"main": "dist/cjs/index.js",
|
|
23
27
|
"module": "dist/esm/index.js",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"require": "./dist/cjs/index.js",
|
|
31
|
+
"import": "./dist/esm/index.js",
|
|
32
|
+
"types": "./dist/index.d.ts"
|
|
33
|
+
},
|
|
34
|
+
"./models": {
|
|
35
|
+
"require": "./dist/cjs/models.js",
|
|
36
|
+
"import": "./dist/esm/models.js",
|
|
37
|
+
"types": "./dist/esm/models.d.ts"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
24
40
|
"files": [
|
|
25
41
|
"dist"
|
|
26
42
|
],
|
|
27
43
|
"scripts": {
|
|
28
44
|
"clean": "rm -f -r node_modules dist",
|
|
29
45
|
"build": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && cp package-cjs.json dist/cjs/package.json",
|
|
30
|
-
"
|
|
46
|
+
"build:watch": "tsc -p tsconfig.json --watch",
|
|
47
|
+
"lint": "tslint -p tsconfig.json",
|
|
31
48
|
"lint:fix": "tslint -p tsconfig.json --fix",
|
|
32
49
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
33
50
|
},
|
|
34
51
|
"dependencies": {
|
|
35
|
-
"@kelvininc/js-client-sdk": "
|
|
52
|
+
"@kelvininc/js-client-sdk": "8.14.0",
|
|
53
|
+
"encoding": "^0.1.0",
|
|
54
|
+
"node-fetch": "^2.6.7"
|
|
36
55
|
},
|
|
37
56
|
"devDependencies": {
|
|
38
|
-
"@types/node
|
|
57
|
+
"@types/node": "^16.11.68",
|
|
58
|
+
"@types/node-fetch": "2.6.1",
|
|
39
59
|
"rxjs": "~6.6.7",
|
|
40
60
|
"tslint": "^6.1.2",
|
|
41
61
|
"tslint-defocus": "^2.0.6",
|
|
42
|
-
"typescript": "
|
|
62
|
+
"typescript": "~4.1.0"
|
|
43
63
|
},
|
|
44
64
|
"peerDependencies": {
|
|
45
|
-
"node-fetch": "^2.6.0",
|
|
46
65
|
"rxjs": "~6.6.7"
|
|
47
|
-
}
|
|
48
|
-
"gitHead": "57fedbf26d4f679b5bd220d20680584e7ea995c3"
|
|
66
|
+
}
|
|
49
67
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { IKvHttpAdapter, IKvHttpRequest, IKvHttpResponse } from '@kelvininc/js-client-sdk';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
export declare class NodeHttpAdapter implements IKvHttpAdapter {
|
|
4
|
-
request(requestPayload: IKvHttpRequest): Observable<IKvHttpResponse>;
|
|
5
|
-
private handleRequest;
|
|
6
|
-
private handleError;
|
|
7
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NodeHttpAdapter = void 0;
|
|
7
|
-
const js_client_sdk_1 = require("@kelvininc/js-client-sdk");
|
|
8
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
9
|
-
const rxjs_1 = require("rxjs");
|
|
10
|
-
const operators_1 = require("rxjs/operators");
|
|
11
|
-
class NodeHttpAdapter {
|
|
12
|
-
request(requestPayload) {
|
|
13
|
-
const { method, url, data, headers: requestHeaders, params, mediaType } = requestPayload;
|
|
14
|
-
const isChunked = mediaType === js_client_sdk_1.EKvHttpMediaType.jsonStream;
|
|
15
|
-
const isJSONObject = !mediaType || mediaType === js_client_sdk_1.EKvHttpMediaType.json;
|
|
16
|
-
const headers = data instanceof Object
|
|
17
|
-
? Object.assign({ 'Content-Type': js_client_sdk_1.EKvHttpMediaType.json }, requestHeaders) : requestHeaders;
|
|
18
|
-
const urlRequest = params
|
|
19
|
-
? `${url}?${new URLSearchParams(params).toString()}`
|
|
20
|
-
: url;
|
|
21
|
-
const requestInstance$ = rxjs_1.from(node_fetch_1.default(urlRequest, {
|
|
22
|
-
method,
|
|
23
|
-
headers,
|
|
24
|
-
body: data instanceof Object ? JSON.stringify(data) : data
|
|
25
|
-
}));
|
|
26
|
-
return requestInstance$.pipe(operators_1.switchMap(response => response.ok
|
|
27
|
-
? this.handleRequest(response, requestPayload, isChunked, isJSONObject)
|
|
28
|
-
: this.handleError(response, requestPayload)));
|
|
29
|
-
}
|
|
30
|
-
handleRequest(response, request, isChunked, isJSONObject) {
|
|
31
|
-
return rxjs_1.from(isJSONObject ? response.json() : response.text())
|
|
32
|
-
.pipe(operators_1.map(data => {
|
|
33
|
-
const { headers, status, statusText, body: httpResponse } = response;
|
|
34
|
-
let parsedData = data;
|
|
35
|
-
if (isChunked) {
|
|
36
|
-
try {
|
|
37
|
-
parsedData = parsedData ? JSON.parse(parsedData.replace(/\]\n\[/g, ',')) : [];
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
console.error('Error during parsing chunk data');
|
|
41
|
-
parsedData = [];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
type: js_client_sdk_1.EKvHttpResponseType.Response,
|
|
46
|
-
body: parsedData,
|
|
47
|
-
status,
|
|
48
|
-
statusText,
|
|
49
|
-
headers,
|
|
50
|
-
config: request,
|
|
51
|
-
httpResponse
|
|
52
|
-
};
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
55
|
-
handleError({ statusText, status, headers, body }, request) {
|
|
56
|
-
const error = {
|
|
57
|
-
status,
|
|
58
|
-
statusText,
|
|
59
|
-
headers,
|
|
60
|
-
config: request,
|
|
61
|
-
httpResponse: body
|
|
62
|
-
};
|
|
63
|
-
return rxjs_1.throwError(error);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
exports.NodeHttpAdapter = NodeHttpAdapter;
|
|
67
|
-
//# sourceMappingURL=http.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/adapters/http.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAkI;AAClI,4DAA6C;AAC7C,+BAAoD;AACpD,8CAAgD;AAEhD,MAAa,eAAe;IAE3B,OAAO,CAAC,cAA8B;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;QACzF,MAAM,SAAS,GAAG,SAAS,KAAK,gCAAgB,CAAC,UAAU,CAAC;QAC5D,MAAM,YAAY,GAAG,CAAC,SAAS,IAAI,SAAS,KAAK,gCAAgB,CAAC,IAAI,CAAC;QAEvE,MAAM,OAAO,GAAG,IAAI,YAAY,MAAM;YACrC,CAAC,iBAAG,cAAc,EAAE,gCAAgB,CAAC,IAAI,IAAK,cAAc,EAC5D,CAAC,CAAC,cAAc,CAAC;QAElB,MAAM,UAAU,GAAW,MAAM;YAChC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpD,CAAC,CAAC,GAAa,CAAC;QAEjB,MAAM,gBAAgB,GAAG,WAAI,CAAC,oBAAK,CAAC,UAAU,EAAE;YAC/C,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAC1D,CAAC,CAAC,CAAC;QAEJ,OAAO,gBAAgB,CAAC,IAAI,CAC3B,qBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;YAChC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,CAAC;YACvE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAC9C,CAAC;IACH,CAAC;IAEO,aAAa,CACpB,QAAkB,EAClB,OAAuB,EACvB,SAAkB,EAClB,YAAqB;QAErB,OAAO,WAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC3D,IAAI,CACJ,eAAG,CAAC,IAAI,CAAC,EAAE;YACV,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;YACrE,IAAI,UAAU,GAAG,IAAI,CAAC;YAEtB,IAAI,SAAS,EAAE;gBACd,IAAI;oBACH,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9E;gBAAC,OAAO,KAAK,EAAE;oBACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBACjD,UAAU,GAAG,EAAE,CAAC;iBAChB;aACD;YAED,OAAO;gBACN,IAAI,EAAE,mCAAmB,CAAC,QAAQ;gBAClC,IAAI,EAAE,UAAU;gBAChB,MAAM;gBACN,UAAU;gBACV,OAAO;gBACP,MAAM,EAAE,OAAO;gBACf,YAAY;aACO,CAAC;QACtB,CAAC,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAY,EAAE,OAAuB;QAC3F,MAAM,KAAK,GAAG;YACb,MAAM;YACN,UAAU;YACV,OAAO;YACP,MAAM,EAAE,OAAO;YACf,YAAY,EAAE,IAAI;SAClB,CAAC;QAEF,OAAO,iBAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD;AAzED,0CAyEC"}
|