@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.
Files changed (62) hide show
  1. package/CHANGELOG.md +283 -0
  2. package/dist/cjs/adapters/http/config.d.ts +6 -0
  3. package/dist/cjs/adapters/http/config.js +12 -0
  4. package/dist/cjs/adapters/http/config.js.map +1 -0
  5. package/dist/cjs/adapters/http/fetch-http.d.ts +4 -0
  6. package/dist/cjs/adapters/http/fetch-http.js +11 -0
  7. package/dist/cjs/adapters/http/fetch-http.js.map +1 -0
  8. package/dist/cjs/adapters/http/http-requester.d.ts +8 -0
  9. package/dist/cjs/adapters/http/http-requester.js +26 -0
  10. package/dist/cjs/adapters/http/http-requester.js.map +1 -0
  11. package/dist/cjs/adapters/http/node-fetch-http.d.ts +5 -0
  12. package/dist/cjs/adapters/http/node-fetch-http.js +15 -0
  13. package/dist/cjs/adapters/http/node-fetch-http.js.map +1 -0
  14. package/dist/cjs/adapters/http/util.d.ts +12 -0
  15. package/dist/cjs/adapters/http/util.js +192 -0
  16. package/dist/cjs/adapters/http/util.js.map +1 -0
  17. package/dist/cjs/index.d.ts +1 -0
  18. package/dist/cjs/index.js +2 -1
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/kelvin-node-sdk.d.ts +2 -1
  21. package/dist/cjs/kelvin-node-sdk.js +4 -3
  22. package/dist/cjs/kelvin-node-sdk.js.map +1 -1
  23. package/dist/cjs/models.d.ts +1 -0
  24. package/dist/cjs/models.js +14 -0
  25. package/dist/cjs/models.js.map +1 -0
  26. package/dist/cjs/types.d.ts +14 -0
  27. package/dist/cjs/types.js +9 -0
  28. package/dist/cjs/types.js.map +1 -0
  29. package/dist/esm/adapters/http/config.d.ts +6 -0
  30. package/dist/esm/adapters/http/config.js +9 -0
  31. package/dist/esm/adapters/http/config.js.map +1 -0
  32. package/dist/esm/adapters/http/fetch-http.d.ts +4 -0
  33. package/dist/esm/adapters/http/fetch-http.js +7 -0
  34. package/dist/esm/adapters/http/fetch-http.js.map +1 -0
  35. package/dist/esm/adapters/http/http-requester.d.ts +8 -0
  36. package/dist/esm/adapters/http/http-requester.js +22 -0
  37. package/dist/esm/adapters/http/http-requester.js.map +1 -0
  38. package/dist/esm/adapters/http/node-fetch-http.d.ts +5 -0
  39. package/dist/esm/adapters/http/node-fetch-http.js +8 -0
  40. package/dist/esm/adapters/http/node-fetch-http.js.map +1 -0
  41. package/dist/esm/adapters/http/util.d.ts +12 -0
  42. package/dist/esm/adapters/http/util.js +181 -0
  43. package/dist/esm/adapters/http/util.js.map +1 -0
  44. package/dist/esm/index.d.ts +1 -0
  45. package/dist/esm/index.js +1 -0
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/kelvin-node-sdk.d.ts +2 -1
  48. package/dist/esm/kelvin-node-sdk.js +4 -3
  49. package/dist/esm/kelvin-node-sdk.js.map +1 -1
  50. package/dist/esm/models.d.ts +1 -0
  51. package/dist/esm/models.js +2 -0
  52. package/dist/esm/models.js.map +1 -0
  53. package/dist/esm/types.d.ts +14 -0
  54. package/dist/esm/types.js +6 -0
  55. package/dist/esm/types.js.map +1 -0
  56. package/package.json +27 -9
  57. package/dist/cjs/adapters/http.d.ts +0 -7
  58. package/dist/cjs/adapters/http.js +0 -67
  59. package/dist/cjs/adapters/http.js.map +0 -1
  60. package/dist/esm/adapters/http.d.ts +0 -7
  61. package/dist/esm/adapters/http.js +0 -60
  62. 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: new http_1.NodeHttpAdapter(), storageAdapter: new storage_1.NodeStorageAdapter() }));
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,0CAAkD;AAClD,gDAAwD;AAExD,MAAa,SAAS;IACrB,MAAM,CAAC,UAAU,CAAC,aAAmC;QACpD,oBAAc,iCACV,aAAa,KAChB,WAAW,EAAE,IAAI,sBAAe,EAAE,EAClC,cAAc,EAAE,IAAI,4BAAkB,EAAE,IACvC,CAAC;IACJ,CAAC;CACD;AARD,8BAQC"}
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,6 @@
1
+ import { IKvHttpAdapter } from '@kelvininc/js-client-sdk';
2
+ import { EHttpAdapterType } from '../../types';
3
+ export declare const HTTP_ADAPTER: {
4
+ [key in EHttpAdapterType]: IKvHttpAdapter;
5
+ };
6
+ export declare const FETCH_ABORT_ERROR_NAME = "AbortError";
@@ -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,4 @@
1
+ import { HTTPRequester } from './http-requester';
2
+ export declare class FetchHttpAdapter extends HTTPRequester {
3
+ requestAdapter(url: string, init?: RequestInit): Promise<Response>;
4
+ }
@@ -0,0 +1,7 @@
1
+ import { HTTPRequester } from './http-requester';
2
+ export class FetchHttpAdapter extends HTTPRequester {
3
+ requestAdapter(url, init) {
4
+ return fetch(url, init);
5
+ }
6
+ }
7
+ //# sourceMappingURL=fetch-http.js.map
@@ -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,5 @@
1
+ import { RequestInit, Response } from 'node-fetch';
2
+ import { HTTPRequester } from './http-requester';
3
+ export declare class NodeFetchHttpAdapter extends HTTPRequester {
4
+ requestAdapter(url: string, init?: RequestInit): Promise<Response>;
5
+ }
@@ -0,0 +1,8 @@
1
+ import fetch from 'node-fetch';
2
+ import { HTTPRequester } from './http-requester';
3
+ export class NodeFetchHttpAdapter extends HTTPRequester {
4
+ requestAdapter(url, init) {
5
+ return fetch(url, init);
6
+ }
7
+ }
8
+ //# sourceMappingURL=node-fetch-http.js.map
@@ -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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"}
@@ -1,2 +1,3 @@
1
1
  export * from '@kelvininc/js-client-sdk';
2
2
  export * from './kelvin-node-sdk';
3
+ export * from './types';
package/dist/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from '@kelvininc/js-client-sdk';
2
2
  export * from './kelvin-node-sdk';
3
+ export * from './types';
3
4
  //# sourceMappingURL=index.js.map
@@ -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: new NodeHttpAdapter(), storageAdapter: new NodeStorageAdapter() }));
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,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,OAAO,SAAS;IACrB,MAAM,CAAC,UAAU,CAAC,aAAmC;QACpD,cAAc,iCACV,aAAa,KAChB,WAAW,EAAE,IAAI,eAAe,EAAE,EAClC,cAAc,EAAE,IAAI,kBAAkB,EAAE,IACvC,CAAC;IACJ,CAAC;CACD"}
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,2 @@
1
+ export * from '@kelvininc/js-client-sdk/models';
2
+ //# sourceMappingURL=models.js.map
@@ -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,6 @@
1
+ export var EHttpAdapterType;
2
+ (function (EHttpAdapterType) {
3
+ EHttpAdapterType["Fetch"] = "fetch";
4
+ EHttpAdapterType["NodeFetch"] = "node-fetch";
5
+ })(EHttpAdapterType || (EHttpAdapterType = {}));
6
+ //# sourceMappingURL=types.js.map
@@ -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": "7.18.0",
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": "Kevin Inc.",
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
- "tslint": "tslint",
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": "^7.18.0"
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-fetch": "^2.5.7",
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": "^3.9.7"
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"}