@trustpayments/http-client 2.0.129 → 2.0.133
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/dist/{httpclient/src/IHttpClientConfig.d.ts → IHttpClientConfig.d.ts} +0 -0
- package/dist/IHttpClientConfig.js +1 -7
- package/dist/{httpclient/src/IHttpClientResponse.d.ts → IHttpClientResponse.d.ts} +0 -0
- package/dist/IHttpClientResponse.js +1 -7
- package/dist/{httpclient/src/httpclient.d.ts → httpclient.d.ts} +0 -0
- package/dist/httpclient.js +2 -99
- package/package.json +3 -3
- package/dist/httpclient.spec.js +0 -194
- package/dist/iinlookup/src/cardtype.d.ts +0 -6
- package/dist/iinlookup/src/iinlookup.d.ts +0 -59
- package/dist/iinlookup/src/types.d.ts +0 -14
- package/dist/iinlookup/src/utils.d.ts +0 -20
- package/dist/jwtgenerator/cli.d.ts +0 -2
- package/dist/jwtgenerator/src/IPayload.d.ts +0 -10
- package/dist/jwtgenerator/src/jwtgenerator.d.ts +0 -2
- package/dist/luhncheck/src/luhncheck.d.ts +0 -1
|
File without changes
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.object.define-property.js");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
1
|
+
"use strict";require("core-js/modules/es.object.define-property.js"),Object.defineProperty(exports,"__esModule",{value:!0});
|
|
8
2
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
|
|
File without changes
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.object.define-property.js");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
1
|
+
"use strict";require("core-js/modules/es.object.define-property.js"),Object.defineProperty(exports,"__esModule",{value:!0});
|
|
8
2
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
|
|
File without changes
|
package/dist/httpclient.js
CHANGED
|
@@ -1,99 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.array.map.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.object.define-property.js");
|
|
6
|
-
|
|
7
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, "__esModule", {
|
|
10
|
-
value: true
|
|
11
|
-
});
|
|
12
|
-
exports.HttpClient = void 0;
|
|
13
|
-
Object.defineProperty(exports, "IHttpClientConfig", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function get() {
|
|
16
|
-
return _IHttpClientConfig.IHttpClientConfig;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(exports, "IHttpClientResponse", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _IHttpClientResponse.IHttpClientResponse;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
exports["default"] = void 0;
|
|
26
|
-
|
|
27
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
28
|
-
|
|
29
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
30
|
-
|
|
31
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
32
|
-
|
|
33
|
-
var _rxjs = require("rxjs");
|
|
34
|
-
|
|
35
|
-
var _operators = require("rxjs/operators");
|
|
36
|
-
|
|
37
|
-
var _IHttpClientConfig = require("./IHttpClientConfig");
|
|
38
|
-
|
|
39
|
-
var _IHttpClientResponse = require("./IHttpClientResponse");
|
|
40
|
-
|
|
41
|
-
var HttpClient = /*#__PURE__*/function () {
|
|
42
|
-
function HttpClient() {
|
|
43
|
-
(0, _classCallCheck2["default"])(this, HttpClient);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
(0, _createClass2["default"])(HttpClient, [{
|
|
47
|
-
key: "get$",
|
|
48
|
-
value: function get$(url, config) {
|
|
49
|
-
return (0, _rxjs.from)(_axios["default"].get(url, config)).pipe((0, _operators.first)(), (0, _operators.map)(function (response) {
|
|
50
|
-
return HttpClient.mapAxiosResponseToHttpClientResponse(response);
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
}, {
|
|
54
|
-
key: "post$",
|
|
55
|
-
value: function post$(url, data, config) {
|
|
56
|
-
return (0, _rxjs.from)(_axios["default"].post(url, data, config)).pipe((0, _operators.first)(), (0, _operators.map)(function (response) {
|
|
57
|
-
return HttpClient.mapAxiosResponseToHttpClientResponse(response);
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
}, {
|
|
61
|
-
key: "put$",
|
|
62
|
-
value: function put$(url, data, config) {
|
|
63
|
-
return (0, _rxjs.from)(_axios["default"].put(url, data, config)).pipe((0, _operators.first)(), (0, _operators.map)(function (response) {
|
|
64
|
-
return HttpClient.mapAxiosResponseToHttpClientResponse(response);
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
}, {
|
|
68
|
-
key: "patch$",
|
|
69
|
-
value: function patch$(url, data, config) {
|
|
70
|
-
return (0, _rxjs.from)(_axios["default"].patch(url, data, config)).pipe((0, _operators.first)(), (0, _operators.map)(function (response) {
|
|
71
|
-
return HttpClient.mapAxiosResponseToHttpClientResponse(response);
|
|
72
|
-
}));
|
|
73
|
-
}
|
|
74
|
-
}, {
|
|
75
|
-
key: "delete$",
|
|
76
|
-
value: function delete$(url, config) {
|
|
77
|
-
return (0, _rxjs.from)(_axios["default"]["delete"](url, config)).pipe((0, _operators.first)(), (0, _operators.map)(function (response) {
|
|
78
|
-
return HttpClient.mapAxiosResponseToHttpClientResponse(response);
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
}], [{
|
|
82
|
-
key: "mapAxiosResponseToHttpClientResponse",
|
|
83
|
-
value: function mapAxiosResponseToHttpClientResponse(axiosResponse) {
|
|
84
|
-
return {
|
|
85
|
-
data: axiosResponse.data,
|
|
86
|
-
status: axiosResponse.status,
|
|
87
|
-
statusText: axiosResponse.statusText,
|
|
88
|
-
headers: axiosResponse.headers,
|
|
89
|
-
config: axiosResponse.config
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}]);
|
|
93
|
-
return HttpClient;
|
|
94
|
-
}();
|
|
95
|
-
|
|
96
|
-
exports.HttpClient = HttpClient;
|
|
97
|
-
var _default = HttpClient;
|
|
98
|
-
exports["default"] = _default;
|
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwY2xpZW50LnRzIl0sIm5hbWVzIjpbIkh0dHBDbGllbnQiLCJ1cmwiLCJjb25maWciLCJheGlvcyIsImdldCIsInBpcGUiLCJyZXNwb25zZSIsIm1hcEF4aW9zUmVzcG9uc2VUb0h0dHBDbGllbnRSZXNwb25zZSIsImRhdGEiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJheGlvc1Jlc3BvbnNlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztJQUVNQSxVOzs7Ozs7O1dBQ0osY0FBUUMsR0FBUixFQUFxQkMsTUFBckIsRUFBcUY7QUFDbkYsYUFBTyxnQkFBS0Msa0JBQU1DLEdBQU4sQ0FBK0JILEdBQS9CLEVBQW9DQyxNQUFwQyxDQUFMLEVBQWtERyxJQUFsRCxDQUNMLHVCQURLLEVBRUwsb0JBQUksVUFBQ0MsUUFBRDtBQUFBLGVBQWdDTixVQUFVLENBQUNPLG9DQUFYLENBQWdERCxRQUFoRCxDQUFoQztBQUFBLE9BQUosQ0FGSyxDQUFQO0FBSUQ7OztXQUVELGVBQ0VMLEdBREYsRUFFRU8sSUFGRixFQUdFTixNQUhGLEVBSXNDO0FBQ3BDLGFBQU8sZ0JBQUtDLGtCQUFNTSxJQUFOLENBQWdDUixHQUFoQyxFQUFxQ08sSUFBckMsRUFBMkNOLE1BQTNDLENBQUwsRUFBeURHLElBQXpELENBQ0wsdUJBREssRUFFTCxvQkFBSSxVQUFDQyxRQUFEO0FBQUEsZUFBZ0NOLFVBQVUsQ0FBQ08sb0NBQVgsQ0FBZ0RELFFBQWhELENBQWhDO0FBQUEsT0FBSixDQUZLLENBQVA7QUFJRDs7O1dBRUQsY0FBdUJMLEdBQXZCLEVBQW9DTyxJQUFwQyxFQUE4Q04sTUFBOUMsRUFBOEc7QUFDNUcsYUFBTyxnQkFBS0Msa0JBQU1PLEdBQU4sQ0FBK0JULEdBQS9CLEVBQW9DTyxJQUFwQyxFQUEwQ04sTUFBMUMsQ0FBTCxFQUF3REcsSUFBeEQsQ0FDTCx1QkFESyxFQUVMLG9CQUFJLFVBQUNDLFFBQUQ7QUFBQSxlQUFnQ04sVUFBVSxDQUFDTyxvQ0FBWCxDQUFnREQsUUFBaEQsQ0FBaEM7QUFBQSxPQUFKLENBRkssQ0FBUDtBQUlEOzs7V0FFRCxnQkFDRUwsR0FERixFQUVFTyxJQUZGLEVBR0VOLE1BSEYsRUFJc0M7QUFDcEMsYUFBTyxnQkFBS0Msa0JBQU1RLEtBQU4sQ0FBaUNWLEdBQWpDLEVBQXNDTyxJQUF0QyxFQUE0Q04sTUFBNUMsQ0FBTCxFQUEwREcsSUFBMUQsQ0FDTCx1QkFESyxFQUVMLG9CQUFJLFVBQUNDLFFBQUQ7QUFBQSxlQUFnQ04sVUFBVSxDQUFDTyxvQ0FBWCxDQUFnREQsUUFBaEQsQ0FBaEM7QUFBQSxPQUFKLENBRkssQ0FBUDtBQUlEOzs7V0FFRCxpQkFBV0wsR0FBWCxFQUF3QkMsTUFBeEIsRUFBd0Y7QUFDdEYsYUFBTyxnQkFBS0MsNEJBQWtDRixHQUFsQyxFQUF1Q0MsTUFBdkMsQ0FBTCxFQUFxREcsSUFBckQsQ0FDTCx1QkFESyxFQUVMLG9CQUFJLFVBQUNDLFFBQUQ7QUFBQSxlQUFnQ04sVUFBVSxDQUFDTyxvQ0FBWCxDQUFnREQsUUFBaEQsQ0FBaEM7QUFBQSxPQUFKLENBRkssQ0FBUDtBQUlEOzs7V0FFRCw4Q0FBdURNLGFBQXZELEVBQWdIO0FBQzlHLGFBQU87QUFDTEosUUFBQUEsSUFBSSxFQUFFSSxhQUFhLENBQUNKLElBRGY7QUFFTEssUUFBQUEsTUFBTSxFQUFFRCxhQUFhLENBQUNDLE1BRmpCO0FBR0xDLFFBQUFBLFVBQVUsRUFBRUYsYUFBYSxDQUFDRSxVQUhyQjtBQUlMQyxRQUFBQSxPQUFPLEVBQUVILGFBQWEsQ0FBQ0csT0FKbEI7QUFLTGIsUUFBQUEsTUFBTSxFQUFFVSxhQUFhLENBQUNWO0FBTGpCLE9BQVA7QUFPRDs7Ozs7O2VBUVlGLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJSHR0cENsaWVudENvbmZpZyB9IGZyb20gJy4vSUh0dHBDbGllbnRDb25maWcnO1xuaW1wb3J0IHsgSUh0dHBDbGllbnRSZXNwb25zZSB9IGZyb20gJy4vSUh0dHBDbGllbnRSZXNwb25zZSc7XG5cbmNsYXNzIEh0dHBDbGllbnQge1xuICBnZXQkPFQ+KHVybDogc3RyaW5nLCBjb25maWc/OiBJSHR0cENsaWVudENvbmZpZyk6IE9ic2VydmFibGU8SUh0dHBDbGllbnRSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiBmcm9tKGF4aW9zLmdldDxULCBBeGlvc1Jlc3BvbnNlPFQ+Pih1cmwsIGNvbmZpZykpLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgbWFwKChyZXNwb25zZTogQXhpb3NSZXNwb25zZTxUPikgPT4gSHR0cENsaWVudC5tYXBBeGlvc1Jlc3BvbnNlVG9IdHRwQ2xpZW50UmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICk7XG4gIH1cblxuICBwb3N0JDxULCBEID0gdW5kZWZpbmVkPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhPzogRCxcbiAgICBjb25maWc/OiBJSHR0cENsaWVudENvbmZpZ1xuICApOiBPYnNlcnZhYmxlPElIdHRwQ2xpZW50UmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gZnJvbShheGlvcy5wb3N0PFQsIEF4aW9zUmVzcG9uc2U8VD4+KHVybCwgZGF0YSwgY29uZmlnKSkucGlwZShcbiAgICAgIGZpcnN0KCksXG4gICAgICBtYXAoKHJlc3BvbnNlOiBBeGlvc1Jlc3BvbnNlPFQ+KSA9PiBIdHRwQ2xpZW50Lm1hcEF4aW9zUmVzcG9uc2VUb0h0dHBDbGllbnRSZXNwb25zZShyZXNwb25zZSkpXG4gICAgKTtcbiAgfVxuXG4gIHB1dCQ8VCwgRCA9IHVuZGVmaW5lZD4odXJsOiBzdHJpbmcsIGRhdGE/OiBELCBjb25maWc/OiBJSHR0cENsaWVudENvbmZpZyk6IE9ic2VydmFibGU8SUh0dHBDbGllbnRSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiBmcm9tKGF4aW9zLnB1dDxULCBBeGlvc1Jlc3BvbnNlPFQ+Pih1cmwsIGRhdGEsIGNvbmZpZykpLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgbWFwKChyZXNwb25zZTogQXhpb3NSZXNwb25zZTxUPikgPT4gSHR0cENsaWVudC5tYXBBeGlvc1Jlc3BvbnNlVG9IdHRwQ2xpZW50UmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICk7XG4gIH1cblxuICBwYXRjaCQ8VCwgRCA9IHVuZGVmaW5lZD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YT86IEQsXG4gICAgY29uZmlnPzogSUh0dHBDbGllbnRDb25maWdcbiAgKTogT2JzZXJ2YWJsZTxJSHR0cENsaWVudFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIGZyb20oYXhpb3MucGF0Y2g8VCwgQXhpb3NSZXNwb25zZTxUPj4odXJsLCBkYXRhLCBjb25maWcpKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCgocmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8VD4pID0+IEh0dHBDbGllbnQubWFwQXhpb3NSZXNwb25zZVRvSHR0cENsaWVudFJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlJDxUPih1cmw6IHN0cmluZywgY29uZmlnPzogSUh0dHBDbGllbnRDb25maWcpOiBPYnNlcnZhYmxlPElIdHRwQ2xpZW50UmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gZnJvbShheGlvcy5kZWxldGU8VCwgQXhpb3NSZXNwb25zZTxUPj4odXJsLCBjb25maWcpKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCgocmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8VD4pID0+IEh0dHBDbGllbnQubWFwQXhpb3NSZXNwb25zZVRvSHR0cENsaWVudFJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwQXhpb3NSZXNwb25zZVRvSHR0cENsaWVudFJlc3BvbnNlPFQ+KGF4aW9zUmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8VD4pOiBJSHR0cENsaWVudFJlc3BvbnNlPFQ+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogYXhpb3NSZXNwb25zZS5kYXRhIGFzIFQsXG4gICAgICBzdGF0dXM6IGF4aW9zUmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogYXhpb3NSZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgICAgaGVhZGVyczogYXhpb3NSZXNwb25zZS5oZWFkZXJzLFxuICAgICAgY29uZmlnOiBheGlvc1Jlc3BvbnNlLmNvbmZpZyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCB7XG4gIEh0dHBDbGllbnQsXG4gIElIdHRwQ2xpZW50Q29uZmlnLFxuICBJSHR0cENsaWVudFJlc3BvbnNlLFxufTtcbmV4cG9ydCBkZWZhdWx0IEh0dHBDbGllbnQ7XG4iXX0=
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");require("core-js/modules/es.array.map.js"),require("core-js/modules/es.object.define-property.js");Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpClient=void 0,Object.defineProperty(exports,"IHttpClientConfig",{enumerable:!0,get:function get(){return _IHttpClientConfig.IHttpClientConfig}}),Object.defineProperty(exports,"IHttpClientResponse",{enumerable:!0,get:function get(){return _IHttpClientResponse.IHttpClientResponse}}),exports["default"]=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")),_createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass")),_axios=_interopRequireDefault(require("axios")),_rxjs=require("rxjs"),_operators=require("rxjs/operators"),_IHttpClientConfig=require("./IHttpClientConfig"),_IHttpClientResponse=require("./IHttpClientResponse"),HttpClient=function(){function a(){(0,_classCallCheck2["default"])(this,a)}return(0,_createClass2["default"])(a,[{key:"get$",value:function get$(b,c){return(0,_rxjs.from)(_axios["default"].get(b,c)).pipe((0,_operators.first)(),(0,_operators.map)(function(b){return a.mapAxiosResponseToHttpClientResponse(b)}))}},{key:"post$",value:function post$(b,c,d){return(0,_rxjs.from)(_axios["default"].post(b,c,d)).pipe((0,_operators.first)(),(0,_operators.map)(function(b){return a.mapAxiosResponseToHttpClientResponse(b)}))}},{key:"put$",value:function put$(b,c,d){return(0,_rxjs.from)(_axios["default"].put(b,c,d)).pipe((0,_operators.first)(),(0,_operators.map)(function(b){return a.mapAxiosResponseToHttpClientResponse(b)}))}},{key:"patch$",value:function patch$(b,c,d){return(0,_rxjs.from)(_axios["default"].patch(b,c,d)).pipe((0,_operators.first)(),(0,_operators.map)(function(b){return a.mapAxiosResponseToHttpClientResponse(b)}))}},{key:"delete$",value:function delete$(b,c){return(0,_rxjs.from)(_axios["default"]["delete"](b,c)).pipe((0,_operators.first)(),(0,_operators.map)(function(b){return a.mapAxiosResponseToHttpClientResponse(b)}))}}],[{key:"mapAxiosResponseToHttpClientResponse",value:function mapAxiosResponseToHttpClientResponse(a){return{data:a.data,status:a.status,statusText:a.statusText,headers:a.headers,config:a.config}}}]),a}();exports.HttpClient=HttpClient;var _default=HttpClient;exports["default"]=_default;
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwY2xpZW50LnRzIl0sIm5hbWVzIjpbIkh0dHBDbGllbnQiLCJ1cmwiLCJjb25maWciLCJheGlvcyIsImdldCIsInBpcGUiLCJyZXNwb25zZSIsIm1hcEF4aW9zUmVzcG9uc2VUb0h0dHBDbGllbnRSZXNwb25zZSIsImRhdGEiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJheGlvc1Jlc3BvbnNlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXSwibWFwcGluZ3MiOiIrN0JBTU1BLFUseUhBQ0osY0FBUUMsQ0FBUixDQUFxQkMsQ0FBckIsQ0FBcUYsQ0FDbkYsTUFBTyxlQUFLQyxrQkFBTUMsR0FBTixDQUErQkgsQ0FBL0IsQ0FBb0NDLENBQXBDLENBQUwsRUFBa0RHLElBQWxELENBQ0wsc0JBREssQ0FFTCxtQkFBSSxTQUFDQyxDQUFELFFBQWdDTixDQUFBQSxDQUFVLENBQUNPLG9DQUFYLENBQWdERCxDQUFoRCxDQUFoQyxDQUFKLENBRkssQ0FJUixDLHFCQUVELGVBQ0VMLENBREYsQ0FFRU8sQ0FGRixDQUdFTixDQUhGLENBSXNDLENBQ3BDLE1BQU8sZUFBS0Msa0JBQU1NLElBQU4sQ0FBZ0NSLENBQWhDLENBQXFDTyxDQUFyQyxDQUEyQ04sQ0FBM0MsQ0FBTCxFQUF5REcsSUFBekQsQ0FDTCxzQkFESyxDQUVMLG1CQUFJLFNBQUNDLENBQUQsUUFBZ0NOLENBQUFBLENBQVUsQ0FBQ08sb0NBQVgsQ0FBZ0RELENBQWhELENBQWhDLENBQUosQ0FGSyxDQUlSLEMsb0JBRUQsY0FBdUJMLENBQXZCLENBQW9DTyxDQUFwQyxDQUE4Q04sQ0FBOUMsQ0FBOEcsQ0FDNUcsTUFBTyxlQUFLQyxrQkFBTU8sR0FBTixDQUErQlQsQ0FBL0IsQ0FBb0NPLENBQXBDLENBQTBDTixDQUExQyxDQUFMLEVBQXdERyxJQUF4RCxDQUNMLHNCQURLLENBRUwsbUJBQUksU0FBQ0MsQ0FBRCxRQUFnQ04sQ0FBQUEsQ0FBVSxDQUFDTyxvQ0FBWCxDQUFnREQsQ0FBaEQsQ0FBaEMsQ0FBSixDQUZLLENBSVIsQyxzQkFFRCxnQkFDRUwsQ0FERixDQUVFTyxDQUZGLENBR0VOLENBSEYsQ0FJc0MsQ0FDcEMsTUFBTyxlQUFLQyxrQkFBTVEsS0FBTixDQUFpQ1YsQ0FBakMsQ0FBc0NPLENBQXRDLENBQTRDTixDQUE1QyxDQUFMLEVBQTBERyxJQUExRCxDQUNMLHNCQURLLENBRUwsbUJBQUksU0FBQ0MsQ0FBRCxRQUFnQ04sQ0FBQUEsQ0FBVSxDQUFDTyxvQ0FBWCxDQUFnREQsQ0FBaEQsQ0FBaEMsQ0FBSixDQUZLLENBSVIsQyx1QkFFRCxpQkFBV0wsQ0FBWCxDQUF3QkMsQ0FBeEIsQ0FBd0YsQ0FDdEYsTUFBTyxlQUFLQyw0QkFBa0NGLENBQWxDLENBQXVDQyxDQUF2QyxDQUFMLEVBQXFERyxJQUFyRCxDQUNMLHNCQURLLENBRUwsbUJBQUksU0FBQ0MsQ0FBRCxRQUFnQ04sQ0FBQUEsQ0FBVSxDQUFDTyxvQ0FBWCxDQUFnREQsQ0FBaEQsQ0FBaEMsQ0FBSixDQUZLLENBSVIsQyxzREFFRCw4Q0FBdURNLENBQXZELENBQWdILENBQzlHLE1BQU8sQ0FDTEosSUFBSSxDQUFFSSxDQUFhLENBQUNKLElBRGYsQ0FFTEssTUFBTSxDQUFFRCxDQUFhLENBQUNDLE1BRmpCLENBR0xDLFVBQVUsQ0FBRUYsQ0FBYSxDQUFDRSxVQUhyQixDQUlMQyxPQUFPLENBQUVILENBQWEsQ0FBQ0csT0FKbEIsQ0FLTGIsTUFBTSxDQUFFVSxDQUFhLENBQUNWLE1BTGpCLENBT1IsQyxvREFRWUYsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcywgeyBBeGlvc1Jlc3BvbnNlIH0gZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElIdHRwQ2xpZW50Q29uZmlnIH0gZnJvbSAnLi9JSHR0cENsaWVudENvbmZpZyc7XG5pbXBvcnQgeyBJSHR0cENsaWVudFJlc3BvbnNlIH0gZnJvbSAnLi9JSHR0cENsaWVudFJlc3BvbnNlJztcblxuY2xhc3MgSHR0cENsaWVudCB7XG4gIGdldCQ8VD4odXJsOiBzdHJpbmcsIGNvbmZpZz86IElIdHRwQ2xpZW50Q29uZmlnKTogT2JzZXJ2YWJsZTxJSHR0cENsaWVudFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIGZyb20oYXhpb3MuZ2V0PFQsIEF4aW9zUmVzcG9uc2U8VD4+KHVybCwgY29uZmlnKSkucGlwZShcbiAgICAgIGZpcnN0KCksXG4gICAgICBtYXAoKHJlc3BvbnNlOiBBeGlvc1Jlc3BvbnNlPFQ+KSA9PiBIdHRwQ2xpZW50Lm1hcEF4aW9zUmVzcG9uc2VUb0h0dHBDbGllbnRSZXNwb25zZShyZXNwb25zZSkpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3QkPFQsIEQgPSB1bmRlZmluZWQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE/OiBELFxuICAgIGNvbmZpZz86IElIdHRwQ2xpZW50Q29uZmlnXG4gICk6IE9ic2VydmFibGU8SUh0dHBDbGllbnRSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiBmcm9tKGF4aW9zLnBvc3Q8VCwgQXhpb3NSZXNwb25zZTxUPj4odXJsLCBkYXRhLCBjb25maWcpKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCgocmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8VD4pID0+IEh0dHBDbGllbnQubWFwQXhpb3NSZXNwb25zZVRvSHR0cENsaWVudFJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICApO1xuICB9XG5cbiAgcHV0JDxULCBEID0gdW5kZWZpbmVkPih1cmw6IHN0cmluZywgZGF0YT86IEQsIGNvbmZpZz86IElIdHRwQ2xpZW50Q29uZmlnKTogT2JzZXJ2YWJsZTxJSHR0cENsaWVudFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIGZyb20oYXhpb3MucHV0PFQsIEF4aW9zUmVzcG9uc2U8VD4+KHVybCwgZGF0YSwgY29uZmlnKSkucGlwZShcbiAgICAgIGZpcnN0KCksXG4gICAgICBtYXAoKHJlc3BvbnNlOiBBeGlvc1Jlc3BvbnNlPFQ+KSA9PiBIdHRwQ2xpZW50Lm1hcEF4aW9zUmVzcG9uc2VUb0h0dHBDbGllbnRSZXNwb25zZShyZXNwb25zZSkpXG4gICAgKTtcbiAgfVxuXG4gIHBhdGNoJDxULCBEID0gdW5kZWZpbmVkPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhPzogRCxcbiAgICBjb25maWc/OiBJSHR0cENsaWVudENvbmZpZ1xuICApOiBPYnNlcnZhYmxlPElIdHRwQ2xpZW50UmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gZnJvbShheGlvcy5wYXRjaDxULCBBeGlvc1Jlc3BvbnNlPFQ+Pih1cmwsIGRhdGEsIGNvbmZpZykpLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgbWFwKChyZXNwb25zZTogQXhpb3NSZXNwb25zZTxUPikgPT4gSHR0cENsaWVudC5tYXBBeGlvc1Jlc3BvbnNlVG9IdHRwQ2xpZW50UmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICk7XG4gIH1cblxuICBkZWxldGUkPFQ+KHVybDogc3RyaW5nLCBjb25maWc/OiBJSHR0cENsaWVudENvbmZpZyk6IE9ic2VydmFibGU8SUh0dHBDbGllbnRSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiBmcm9tKGF4aW9zLmRlbGV0ZTxULCBBeGlvc1Jlc3BvbnNlPFQ+Pih1cmwsIGNvbmZpZykpLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgbWFwKChyZXNwb25zZTogQXhpb3NSZXNwb25zZTxUPikgPT4gSHR0cENsaWVudC5tYXBBeGlvc1Jlc3BvbnNlVG9IdHRwQ2xpZW50UmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXBBeGlvc1Jlc3BvbnNlVG9IdHRwQ2xpZW50UmVzcG9uc2U8VD4oYXhpb3NSZXNwb25zZTogQXhpb3NSZXNwb25zZTxUPik6IElIdHRwQ2xpZW50UmVzcG9uc2U8VD4ge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBheGlvc1Jlc3BvbnNlLmRhdGEgYXMgVCxcbiAgICAgIHN0YXR1czogYXhpb3NSZXNwb25zZS5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiBheGlvc1Jlc3BvbnNlLnN0YXR1c1RleHQsXG4gICAgICBoZWFkZXJzOiBheGlvc1Jlc3BvbnNlLmhlYWRlcnMsXG4gICAgICBjb25maWc6IGF4aW9zUmVzcG9uc2UuY29uZmlnLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgSHR0cENsaWVudCxcbiAgSUh0dHBDbGllbnRDb25maWcsXG4gIElIdHRwQ2xpZW50UmVzcG9uc2UsXG59O1xuZXhwb3J0IGRlZmF1bHQgSHR0cENsaWVudDtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trustpayments/http-client",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.133",
|
|
4
4
|
"description": "Generic http client",
|
|
5
5
|
"author": "Trust Payments <support@trustpayments.com>",
|
|
6
6
|
"homepage": "https://docs.trustpayments.com",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@babel/runtime": "7.16.0",
|
|
36
36
|
"axios": "0.24.0",
|
|
37
|
-
"core-js": "3.19.
|
|
37
|
+
"core-js": "3.19.3",
|
|
38
38
|
"rxjs": "7.4.0"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "66bcb509335377080ea3bb5e7a8b4cbf5215fca6"
|
|
41
41
|
}
|
package/dist/httpclient.spec.js
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.object.to-string.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.promise.js");
|
|
8
|
-
|
|
9
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
10
|
-
|
|
11
|
-
var _rxjs = require("rxjs");
|
|
12
|
-
|
|
13
|
-
var _operators = require("rxjs/operators");
|
|
14
|
-
|
|
15
|
-
var _httpclient = _interopRequireDefault(require("./httpclient"));
|
|
16
|
-
|
|
17
|
-
jest.mock('axios');
|
|
18
|
-
describe('HttpClientService', function () {
|
|
19
|
-
var httpClientService;
|
|
20
|
-
var mockUrl = '/';
|
|
21
|
-
var mockConfig = {
|
|
22
|
-
headers: {
|
|
23
|
-
'Content-Type': 'application/json'
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
var mockAxiosResponse = {
|
|
27
|
-
data: {},
|
|
28
|
-
status: 200,
|
|
29
|
-
statusText: 'Ok',
|
|
30
|
-
headers: {},
|
|
31
|
-
config: mockConfig
|
|
32
|
-
};
|
|
33
|
-
var mockData = {};
|
|
34
|
-
var mockErrorResponse = {
|
|
35
|
-
status: 404
|
|
36
|
-
};
|
|
37
|
-
beforeAll(function () {
|
|
38
|
-
httpClientService = new _httpclient["default"]();
|
|
39
|
-
});
|
|
40
|
-
beforeEach(function () {
|
|
41
|
-
jest.clearAllMocks();
|
|
42
|
-
});
|
|
43
|
-
describe('get$()', function () {
|
|
44
|
-
it('should invoke axios with proper parameters and resolve successfully', function (done) {
|
|
45
|
-
_axios["default"].get = jest.fn().mockImplementationOnce(function () {
|
|
46
|
-
return Promise.resolve(mockAxiosResponse);
|
|
47
|
-
});
|
|
48
|
-
httpClientService.get$(mockUrl, mockConfig).subscribe(function (response) {
|
|
49
|
-
expect(response.data).toEqual({});
|
|
50
|
-
expect(response.status).toBe(200);
|
|
51
|
-
expect(response.statusText).toBe('Ok');
|
|
52
|
-
expect(response.headers).toEqual({});
|
|
53
|
-
expect(response.config).toEqual(mockConfig);
|
|
54
|
-
expect(_axios["default"].get).toHaveBeenCalledWith(mockUrl, mockConfig);
|
|
55
|
-
expect(_axios["default"].get).toHaveBeenCalledTimes(1);
|
|
56
|
-
done();
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
it('should invoke axios with proper parameters and catch an error', function (done) {
|
|
60
|
-
_axios["default"].get = jest.fn().mockImplementationOnce(function () {
|
|
61
|
-
return Promise.reject(mockErrorResponse);
|
|
62
|
-
});
|
|
63
|
-
httpClientService.get$(mockUrl, mockConfig).pipe((0, _operators.catchError)(function (err, caught) {
|
|
64
|
-
expect(err).toEqual(mockErrorResponse);
|
|
65
|
-
expect(_axios["default"].get).toHaveBeenCalledWith(mockUrl, mockConfig);
|
|
66
|
-
expect(_axios["default"].get).toHaveBeenCalledTimes(1);
|
|
67
|
-
return (0, _rxjs.of)(err);
|
|
68
|
-
})).subscribe(function () {
|
|
69
|
-
return done();
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
describe('post$()', function () {
|
|
74
|
-
it('should invoke axios with proper parameters and resolve successfully', function (done) {
|
|
75
|
-
_axios["default"].post = jest.fn().mockImplementationOnce(function () {
|
|
76
|
-
return Promise.resolve(mockAxiosResponse);
|
|
77
|
-
});
|
|
78
|
-
httpClientService.post$(mockUrl, mockData, mockConfig).subscribe(function (response) {
|
|
79
|
-
expect(response.data).toEqual({});
|
|
80
|
-
expect(response.status).toBe(200);
|
|
81
|
-
expect(response.statusText).toBe('Ok');
|
|
82
|
-
expect(response.headers).toEqual({});
|
|
83
|
-
expect(response.config).toEqual(mockConfig);
|
|
84
|
-
expect(_axios["default"].post).toHaveBeenCalledWith(mockUrl, mockData, mockConfig);
|
|
85
|
-
expect(_axios["default"].post).toHaveBeenCalledTimes(1);
|
|
86
|
-
done();
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
it('should invoke axios with proper parameters and catch an error', function (done) {
|
|
90
|
-
_axios["default"].post = jest.fn().mockImplementationOnce(function () {
|
|
91
|
-
return Promise.reject(mockErrorResponse);
|
|
92
|
-
});
|
|
93
|
-
httpClientService.post$(mockUrl, mockData, mockConfig).pipe((0, _operators.catchError)(function (err, caught) {
|
|
94
|
-
expect(err).toEqual(mockErrorResponse);
|
|
95
|
-
expect(_axios["default"].post).toHaveBeenCalledWith(mockUrl, mockData, mockConfig);
|
|
96
|
-
expect(_axios["default"].post).toHaveBeenCalledTimes(1);
|
|
97
|
-
return (0, _rxjs.of)(err);
|
|
98
|
-
})).subscribe(function () {
|
|
99
|
-
return done();
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
describe('put$()', function () {
|
|
104
|
-
it('should invoke axios with proper parameters', function (done) {
|
|
105
|
-
_axios["default"].put = jest.fn().mockImplementationOnce(function () {
|
|
106
|
-
return Promise.resolve(mockAxiosResponse);
|
|
107
|
-
});
|
|
108
|
-
httpClientService.put$(mockUrl, mockData, mockConfig).subscribe(function (response) {
|
|
109
|
-
expect(response.data).toEqual({});
|
|
110
|
-
expect(response.status).toBe(200);
|
|
111
|
-
expect(response.statusText).toBe('Ok');
|
|
112
|
-
expect(response.headers).toEqual({});
|
|
113
|
-
expect(response.config).toEqual(mockConfig);
|
|
114
|
-
expect(_axios["default"].put).toHaveBeenCalledWith(mockUrl, mockData, mockConfig);
|
|
115
|
-
expect(_axios["default"].put).toHaveBeenCalledTimes(1);
|
|
116
|
-
done();
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
it('should invoke axios with proper parameters and catch an error', function (done) {
|
|
120
|
-
_axios["default"].put = jest.fn().mockImplementationOnce(function () {
|
|
121
|
-
return Promise.reject(mockErrorResponse);
|
|
122
|
-
});
|
|
123
|
-
httpClientService.put$(mockUrl, mockData, mockConfig).pipe((0, _operators.catchError)(function (err, caught) {
|
|
124
|
-
expect(err).toEqual(mockErrorResponse);
|
|
125
|
-
expect(_axios["default"].put).toHaveBeenCalledWith(mockUrl, mockData, mockConfig);
|
|
126
|
-
expect(_axios["default"].put).toHaveBeenCalledTimes(1);
|
|
127
|
-
return (0, _rxjs.of)(err);
|
|
128
|
-
})).subscribe(function () {
|
|
129
|
-
return done();
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
describe('patch$()', function () {
|
|
134
|
-
it('should invoke axios with proper parameters', function (done) {
|
|
135
|
-
_axios["default"].patch = jest.fn().mockImplementationOnce(function () {
|
|
136
|
-
return Promise.resolve(mockAxiosResponse);
|
|
137
|
-
});
|
|
138
|
-
httpClientService.patch$(mockUrl, mockData, mockConfig).subscribe(function (response) {
|
|
139
|
-
expect(response.data).toEqual({});
|
|
140
|
-
expect(response.status).toBe(200);
|
|
141
|
-
expect(response.statusText).toBe('Ok');
|
|
142
|
-
expect(response.headers).toEqual({});
|
|
143
|
-
expect(response.config).toEqual(mockConfig);
|
|
144
|
-
expect(_axios["default"].patch).toHaveBeenCalledWith(mockUrl, mockData, mockConfig);
|
|
145
|
-
expect(_axios["default"].patch).toHaveBeenCalledTimes(1);
|
|
146
|
-
done();
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
it('should invoke axios with proper parameters and catch an error', function (done) {
|
|
150
|
-
_axios["default"].patch = jest.fn().mockImplementationOnce(function () {
|
|
151
|
-
return Promise.reject(mockErrorResponse);
|
|
152
|
-
});
|
|
153
|
-
httpClientService.patch$(mockUrl, mockData, mockConfig).pipe((0, _operators.catchError)(function (err, caught) {
|
|
154
|
-
expect(err).toEqual(mockErrorResponse);
|
|
155
|
-
expect(_axios["default"].patch).toHaveBeenCalledWith(mockUrl, mockData, mockConfig);
|
|
156
|
-
expect(_axios["default"].patch).toHaveBeenCalledTimes(1);
|
|
157
|
-
return (0, _rxjs.of)(err);
|
|
158
|
-
})).subscribe(function () {
|
|
159
|
-
return done();
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
describe('delete$()', function () {
|
|
164
|
-
it('should invoke axios with proper parameters', function (done) {
|
|
165
|
-
_axios["default"]["delete"] = jest.fn().mockImplementationOnce(function () {
|
|
166
|
-
return Promise.resolve(mockAxiosResponse);
|
|
167
|
-
});
|
|
168
|
-
httpClientService.delete$(mockUrl, mockConfig).subscribe(function (response) {
|
|
169
|
-
expect(response.data).toEqual({});
|
|
170
|
-
expect(response.status).toBe(200);
|
|
171
|
-
expect(response.statusText).toBe('Ok');
|
|
172
|
-
expect(response.headers).toEqual({});
|
|
173
|
-
expect(response.config).toEqual(mockConfig);
|
|
174
|
-
expect(_axios["default"]["delete"]).toHaveBeenCalledWith(mockUrl, mockConfig);
|
|
175
|
-
expect(_axios["default"]["delete"]).toHaveBeenCalledTimes(1);
|
|
176
|
-
done();
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
it('should invoke axios with proper parameters and catch an error', function (done) {
|
|
180
|
-
_axios["default"]["delete"] = jest.fn().mockImplementationOnce(function () {
|
|
181
|
-
return Promise.reject(mockErrorResponse);
|
|
182
|
-
});
|
|
183
|
-
httpClientService.delete$(mockUrl, mockConfig).pipe((0, _operators.catchError)(function (err, caught) {
|
|
184
|
-
expect(err).toEqual(mockErrorResponse);
|
|
185
|
-
expect(_axios["default"]["delete"]).toHaveBeenCalledWith(mockUrl, mockConfig);
|
|
186
|
-
expect(_axios["default"]["delete"]).toHaveBeenCalledTimes(1);
|
|
187
|
-
return (0, _rxjs.of)(err);
|
|
188
|
-
})).subscribe(function () {
|
|
189
|
-
return done();
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwY2xpZW50LnNwZWMudHMiXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJkZXNjcmliZSIsImh0dHBDbGllbnRTZXJ2aWNlIiwibW9ja1VybCIsIm1vY2tDb25maWciLCJoZWFkZXJzIiwibW9ja0F4aW9zUmVzcG9uc2UiLCJkYXRhIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsImNvbmZpZyIsIm1vY2tEYXRhIiwibW9ja0Vycm9yUmVzcG9uc2UiLCJiZWZvcmVBbGwiLCJIdHRwQ2xpZW50IiwiYmVmb3JlRWFjaCIsImNsZWFyQWxsTW9ja3MiLCJpdCIsImRvbmUiLCJheGlvcyIsImdldCIsImZuIiwibW9ja0ltcGxlbWVudGF0aW9uT25jZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiZ2V0JCIsInN1YnNjcmliZSIsInJlc3BvbnNlIiwiZXhwZWN0IiwidG9FcXVhbCIsInRvQmUiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsInJlamVjdCIsInBpcGUiLCJlcnIiLCJjYXVnaHQiLCJwb3N0IiwicG9zdCQiLCJwdXQiLCJwdXQkIiwicGF0Y2giLCJwYXRjaCQiLCJkZWxldGUkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxPQUFWO0FBRUFDLFFBQVEsQ0FBQyxtQkFBRCxFQUFzQixZQUFNO0FBQ2xDLE1BQUlDLGlCQUFKO0FBRUEsTUFBTUMsT0FBTyxHQUFHLEdBQWhCO0FBQ0EsTUFBTUMsVUFBNkIsR0FBRztBQUNwQ0MsSUFBQUEsT0FBTyxFQUFFO0FBQ1Asc0JBQWdCO0FBRFQ7QUFEMkIsR0FBdEM7QUFLQSxNQUFNQyxpQkFBZ0MsR0FBRztBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLEVBRGlDO0FBRXZDQyxJQUFBQSxNQUFNLEVBQUUsR0FGK0I7QUFHdkNDLElBQUFBLFVBQVUsRUFBRSxJQUgyQjtBQUl2Q0osSUFBQUEs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QUEsRUFBRSxDQUFDLCtEQUFELEVBQWtFLFVBQUNDLElBQUQsRUFBNkI7QUFDL0ZDLG9DQUFlcEIsSUFBSSxDQUFDc0IsRUFBTCxHQUFVQyxzQkFBVixDQUFpQztBQUFBLGVBQU1DLE9BQU8sQ0FBQ1UsTUFBUixDQUFlckIsaUJBQWYsQ0FBTjtBQUFBLE9BQWpDLENBQWY7QUFFQVYsTUFBQUEsaUJBQWlCLENBQUN5QyxPQUFsQixDQUEwQnhDLE9BQTFCLEVBQW1DQyxVQUFuQyxFQUNHOEIsSUFESCxDQUVJLDJCQUFXLFVBQUNDLEdBQUQsRUFBTUMsTUFBTixFQUFpQjtBQUMxQlIsUUFBQUEsTUFBTSxDQUFDTyxHQUFELENBQU4sQ0FBWU4sT0FBWixDQUFvQmpCLGlCQUFwQjtBQUNBZ0IsUUFBQUEsTUFBTSxDQUFDVCwyQkFBRCxDQUFOLENBQXFCWSxvQkFBckIsQ0FBMEM1QixPQUExQyxFQUFtREMsVUFBbkQ7QUFDQXdCLFFBQUFBLE1BQU0sQ0FBQ1QsMkJBQUQsQ0FBTixDQUFxQmEscUJBQXJCLENBQTJDLENBQTNDO0FBRUEsZUFBTyxjQUFHRyxHQUFILENBQVA7QUFDRCxPQU5ELENBRkosRUFTSVQsU0FUSixDQVNjO0FBQUEsZUFBTVIsSUFBSSxFQUFWO0FBQUEsT0FUZDtBQVVELEtBYkMsQ0FBRjtBQWNELEdBL0JPLENBQVI7QUFnQ0QsQ0E5TE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcywgeyBBeGlvc1Jlc3BvbnNlIH0gZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgSHR0cENsaWVudCBmcm9tICcuL2h0dHBjbGllbnQnO1xuaW1wb3J0IHsgSUh0dHBDbGllbnRDb25maWcgfSBmcm9tICcuL0lIdHRwQ2xpZW50Q29uZmlnJztcblxuamVzdC5tb2NrKCdheGlvcycpO1xuXG5kZXNjcmliZSgnSHR0cENsaWVudFNlcnZpY2UnLCAoKSA9PiB7XG4gIGxldCBodHRwQ2xpZW50U2VydmljZTogSHR0cENsaWVudDtcblxuICBjb25zdCBtb2NrVXJsID0gJy8nO1xuICBjb25zdCBtb2NrQ29uZmlnOiBJSHR0cENsaWVudENvbmZpZyA9IHtcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH0sXG4gIH07XG4gIGNvbnN0IG1vY2tBeGlvc1Jlc3BvbnNlOiBBeGlvc1Jlc3BvbnNlID0ge1xuICAgIGRhdGE6IHt9LFxuICAgIHN0YXR1czogMjAwLFxuICAgIHN0YXR1c1RleHQ6ICdPaycsXG4gICAgaGVhZGVyczoge30sXG4gICAgY29uZmlnOiBtb2NrQ29uZmlnLFxuICB9O1xuICBjb25zdCBtb2NrRGF0YSA9IHt9O1xuICBjb25zdCBtb2NrRXJyb3JSZXNwb25zZTogeyBzdGF0dXM6IG51bWJlcjsgfSA9IHsgc3RhdHVzOiA0MDQgfTtcblxuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIGh0dHBDbGllbnRTZXJ2aWNlID0gbmV3IEh0dHBDbGllbnQoKTtcbiAgfSk7XG5cbiAgYmVmb3JlRWFjaCgoKT0+e1xuICAgIGplc3QuY2xlYXJBbGxNb2NrcygpO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0JCgpJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgaW52b2tlIGF4aW9zIHdpdGggcHJvcGVyIHBhcmFtZXRlcnMgYW5kIHJlc29sdmUgc3VjY2Vzc2Z1bGx5JywgKGRvbmU6IGplc3QuRG9uZUNhbGxiYWNrKSA9PiB7XG4gICAgICBheGlvcy5nZXQgPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiBQcm9taXNlLnJlc29sdmUobW9ja0F4aW9zUmVzcG9uc2UpKTtcblxuICAgICAgaHR0cENsaWVudFNlcnZpY2UuZ2V0JChtb2NrVXJsLCBtb2NrQ29uZmlnKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICBleHBlY3QocmVzcG9uc2UuZGF0YSkudG9FcXVhbCh7fSk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXMpLnRvQmUoMjAwKTtcbiAgICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c1RleHQpLnRvQmUoJ09rJyk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5oZWFkZXJzKS50b0VxdWFsKHt9KTtcbiAgICAgICAgZXhwZWN0KHJlc3BvbnNlLmNvbmZpZykudG9FcXVhbChtb2NrQ29uZmlnKTtcbiAgICAgICAgZXhwZWN0KGF4aW9zLmdldCkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja1VybCwgbW9ja0NvbmZpZyk7XG4gICAgICAgIGV4cGVjdChheGlvcy5nZXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICBkb25lKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW52b2tlIGF4aW9zIHdpdGggcHJvcGVyIHBhcmFtZXRlcnMgYW5kIGNhdGNoIGFuIGVycm9yJywgKGRvbmU6IGplc3QuRG9uZUNhbGxiYWNrKSA9PiB7XG4gICAgICBheGlvcy5nZXQgPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiBQcm9taXNlLnJlamVjdChtb2NrRXJyb3JSZXNwb25zZSkpO1xuXG4gICAgICBodHRwQ2xpZW50U2VydmljZS5nZXQkKG1vY2tVcmwsIG1vY2tDb25maWcpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XG4gICAgICAgICAgZXhwZWN0KGVycikudG9FcXVhbChtb2NrRXJyb3JSZXNwb25zZSk7XG4gICAgICAgICAgZXhwZWN0KGF4aW9zLmdldCkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja1VybCwgbW9ja0NvbmZpZyk7XG4gICAgICAgICAgZXhwZWN0KGF4aW9zLmdldCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXG4gICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiBkb25lKCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncG9zdCQoKScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGludm9rZSBheGlvcyB3aXRoIHByb3BlciBwYXJhbWV0ZXJzIGFuZCByZXNvbHZlIHN1Y2Nlc3NmdWxseScsIChkb25lOiBqZXN0LkRvbmVDYWxsYmFjaykgPT4ge1xuICAgICAgYXhpb3MucG9zdCA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IFByb21pc2UucmVzb2x2ZShtb2NrQXhpb3NSZXNwb25zZSkpO1xuXG4gICAgICBodHRwQ2xpZW50U2VydmljZS5wb3N0JChtb2NrVXJsLCBtb2NrRGF0YSwgbW9ja0NvbmZpZykuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgZXhwZWN0KHJlc3BvbnNlLmRhdGEpLnRvRXF1YWwoe30pO1xuICAgICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzKS50b0JlKDIwMCk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNUZXh0KS50b0JlKCdPaycpO1xuICAgICAgICBleHBlY3QocmVzcG9uc2UuaGVhZGVycykudG9FcXVhbCh7fSk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5jb25maWcpLnRvRXF1YWwobW9ja0NvbmZpZyk7XG4gICAgICAgIGV4cGVjdChheGlvcy5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrVXJsLCBtb2NrRGF0YSwgbW9ja0NvbmZpZyk7XG4gICAgICAgIGV4cGVjdChheGlvcy5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGludm9rZSBheGlvcyB3aXRoIHByb3BlciBwYXJhbWV0ZXJzIGFuZCBjYXRjaCBhbiBlcnJvcicsIChkb25lOiBqZXN0LkRvbmVDYWxsYmFjaykgPT4ge1xuICAgICAgYXhpb3MucG9zdCA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IFByb21pc2UucmVqZWN0KG1vY2tFcnJvclJlc3BvbnNlKSk7XG5cbiAgICAgIGh0dHBDbGllbnRTZXJ2aWNlLnBvc3QkKG1vY2tVcmwsIG1vY2tEYXRhLCBtb2NrQ29uZmlnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KGVycikudG9FcXVhbChtb2NrRXJyb3JSZXNwb25zZSk7XG4gICAgICAgICAgICBleHBlY3QoYXhpb3MucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja1VybCwgbW9ja0RhdGEsIG1vY2tDb25maWcpO1xuICAgICAgICAgICAgZXhwZWN0KGF4aW9zLnBvc3QpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gZG9uZSgpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3B1dCQoKScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGludm9rZSBheGlvcyB3aXRoIHByb3BlciBwYXJhbWV0ZXJzJywgKGRvbmU6IGplc3QuRG9uZUNhbGxiYWNrKSA9PiB7XG4gICAgICBheGlvcy5wdXQgPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiBQcm9taXNlLnJlc29sdmUobW9ja0F4aW9zUmVzcG9uc2UpKTtcblxuICAgICAgaHR0cENsaWVudFNlcnZpY2UucHV0JChtb2NrVXJsLCBtb2NrRGF0YSwgbW9ja0NvbmZpZykuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgZXhwZWN0KHJlc3BvbnNlLmRhdGEpLnRvRXF1YWwoe30pO1xuICAgICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzKS50b0JlKDIwMCk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNUZXh0KS50b0JlKCdPaycpO1xuICAgICAgICBleHBlY3QocmVzcG9uc2UuaGVhZGVycykudG9FcXVhbCh7fSk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5jb25maWcpLnRvRXF1YWwobW9ja0NvbmZpZyk7XG4gICAgICAgIGV4cGVjdChheGlvcy5wdXQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tVcmwsIG1vY2tEYXRhLCBtb2NrQ29uZmlnKTtcbiAgICAgICAgZXhwZWN0KGF4aW9zLnB1dCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbnZva2UgYXhpb3Mgd2l0aCBwcm9wZXIgcGFyYW1ldGVycyBhbmQgY2F0Y2ggYW4gZXJyb3InLCAoZG9uZTogamVzdC5Eb25lQ2FsbGJhY2spID0+IHtcbiAgICAgIGF4aW9zLnB1dCA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IFByb21pc2UucmVqZWN0KG1vY2tFcnJvclJlc3BvbnNlKSk7XG5cbiAgICAgIGh0dHBDbGllbnRTZXJ2aWNlLnB1dCQobW9ja1VybCwgbW9ja0RhdGEsIG1vY2tDb25maWcpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XG4gICAgICAgICAgICBleHBlY3QoZXJyKS50b0VxdWFsKG1vY2tFcnJvclJlc3BvbnNlKTtcbiAgICAgICAgICAgIGV4cGVjdChheGlvcy5wdXQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tVcmwsIG1vY2tEYXRhLCBtb2NrQ29uZmlnKTtcbiAgICAgICAgICAgIGV4cGVjdChheGlvcy5wdXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gZG9uZSgpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3BhdGNoJCgpJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgaW52b2tlIGF4aW9zIHdpdGggcHJvcGVyIHBhcmFtZXRlcnMnLCAoZG9uZTogamVzdC5Eb25lQ2FsbGJhY2spID0+IHtcbiAgICAgIGF4aW9zLnBhdGNoID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG1vY2tBeGlvc1Jlc3BvbnNlKSk7XG5cbiAgICAgIGh0dHBDbGllbnRTZXJ2aWNlLnBhdGNoJChtb2NrVXJsLCBtb2NrRGF0YSwgbW9ja0NvbmZpZykuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgZXhwZWN0KHJlc3BvbnNlLmRhdGEpLnRvRXF1YWwoe30pO1xuICAgICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzKS50b0JlKDIwMCk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNUZXh0KS50b0JlKCdPaycpO1xuICAgICAgICBleHBlY3QocmVzcG9uc2UuaGVhZGVycykudG9FcXVhbCh7fSk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5jb25maWcpLnRvRXF1YWwobW9ja0NvbmZpZyk7XG4gICAgICAgIGV4cGVjdChheGlvcy5wYXRjaCkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja1VybCwgbW9ja0RhdGEsIG1vY2tDb25maWcpO1xuICAgICAgICBleHBlY3QoYXhpb3MucGF0Y2gpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICBkb25lKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW52b2tlIGF4aW9zIHdpdGggcHJvcGVyIHBhcmFtZXRlcnMgYW5kIGNhdGNoIGFuIGVycm9yJywgKGRvbmU6IGplc3QuRG9uZUNhbGxiYWNrKSA9PiB7XG4gICAgICBheGlvcy5wYXRjaCA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IFByb21pc2UucmVqZWN0KG1vY2tFcnJvclJlc3BvbnNlKSk7XG5cbiAgICAgIGh0dHBDbGllbnRTZXJ2aWNlLnBhdGNoJChtb2NrVXJsLCBtb2NrRGF0YSwgbW9ja0NvbmZpZylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChlcnIpLnRvRXF1YWwobW9ja0Vycm9yUmVzcG9uc2UpO1xuICAgICAgICAgICAgZXhwZWN0KGF4aW9zLnBhdGNoKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrVXJsLCBtb2NrRGF0YSwgbW9ja0NvbmZpZyk7XG4gICAgICAgICAgICBleHBlY3QoYXhpb3MucGF0Y2gpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gZG9uZSgpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RlbGV0ZSQoKScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGludm9rZSBheGlvcyB3aXRoIHByb3BlciBwYXJhbWV0ZXJzJywgKGRvbmU6IGplc3QuRG9uZUNhbGxiYWNrKSA9PiB7XG4gICAgICBheGlvcy5kZWxldGUgPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiBQcm9taXNlLnJlc29sdmUobW9ja0F4aW9zUmVzcG9uc2UpKTtcblxuICAgICAgaHR0cENsaWVudFNlcnZpY2UuZGVsZXRlJChtb2NrVXJsLCBtb2NrQ29uZmlnKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICBleHBlY3QocmVzcG9uc2UuZGF0YSkudG9FcXVhbCh7fSk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXMpLnRvQmUoMjAwKTtcbiAgICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c1RleHQpLnRvQmUoJ09rJyk7XG4gICAgICAgIGV4cGVjdChyZXNwb25zZS5oZWFkZXJzKS50b0VxdWFsKHt9KTtcbiAgICAgICAgZXhwZWN0KHJlc3BvbnNlLmNvbmZpZykudG9FcXVhbChtb2NrQ29uZmlnKTtcbiAgICAgICAgZXhwZWN0KGF4aW9zLmRlbGV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja1VybCwgbW9ja0NvbmZpZyk7XG4gICAgICAgIGV4cGVjdChheGlvcy5kZWxldGUpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICBkb25lKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW52b2tlIGF4aW9zIHdpdGggcHJvcGVyIHBhcmFtZXRlcnMgYW5kIGNhdGNoIGFuIGVycm9yJywgKGRvbmU6IGplc3QuRG9uZUNhbGxiYWNrKSA9PiB7XG4gICAgICBheGlvcy5kZWxldGUgPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiBQcm9taXNlLnJlamVjdChtb2NrRXJyb3JSZXNwb25zZSkpO1xuXG4gICAgICBodHRwQ2xpZW50U2VydmljZS5kZWxldGUkKG1vY2tVcmwsIG1vY2tDb25maWcpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XG4gICAgICAgICAgICBleHBlY3QoZXJyKS50b0VxdWFsKG1vY2tFcnJvclJlc3BvbnNlKTtcbiAgICAgICAgICAgIGV4cGVjdChheGlvcy5kZWxldGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tVcmwsIG1vY2tDb25maWcpO1xuICAgICAgICAgICAgZXhwZWN0KGF4aW9zLmRlbGV0ZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXG4gICAgICAgICAgICByZXR1cm4gb2YoZXJyKTtcbiAgICAgICAgICB9KVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiBkb25lKCkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { BrandDetailsType } from './types';
|
|
2
|
-
export interface IBinLookupConfigType {
|
|
3
|
-
defaultCardType: string;
|
|
4
|
-
minMatch: number;
|
|
5
|
-
maxMatch: number;
|
|
6
|
-
supported: string[];
|
|
7
|
-
}
|
|
8
|
-
declare class IinLookup {
|
|
9
|
-
readonly minMatch: number;
|
|
10
|
-
readonly maxMatch: number;
|
|
11
|
-
readonly supported: string[];
|
|
12
|
-
readonly default: BrandDetailsType | null;
|
|
13
|
-
constructor(config?: IBinLookupConfigType);
|
|
14
|
-
/**
|
|
15
|
-
* Lookup the type of a card
|
|
16
|
-
* @param number Card number to lookup
|
|
17
|
-
* @return BrandDetails for the brand identified
|
|
18
|
-
*/
|
|
19
|
-
lookup(number: string): BrandDetailsType;
|
|
20
|
-
/**
|
|
21
|
-
* ForEachBreak helper function that only runs over supported brands
|
|
22
|
-
* @param callback Callback to run over the supported brands
|
|
23
|
-
* @return first truthy result of the callback or null
|
|
24
|
-
*/
|
|
25
|
-
private forEachBreakBrands;
|
|
26
|
-
/**
|
|
27
|
-
* All text brand names the wywtem knows about
|
|
28
|
-
* @return array of all text brand names
|
|
29
|
-
*/
|
|
30
|
-
private getAllBrands;
|
|
31
|
-
/**
|
|
32
|
-
* Test if a brand is supported with the current configuration
|
|
33
|
-
* @param brand the brand to lookup
|
|
34
|
-
* @return Whether this brand is supported
|
|
35
|
-
*/
|
|
36
|
-
private isSupported;
|
|
37
|
-
/**
|
|
38
|
-
* Look up a brand given it's text name (rather than the internal ID)
|
|
39
|
-
* @param type The name of the brand to get the details for
|
|
40
|
-
* @return The details about the named brand
|
|
41
|
-
*/
|
|
42
|
-
private getCard;
|
|
43
|
-
/**
|
|
44
|
-
* Tree key searching function
|
|
45
|
-
* @param number Card number to check against this key
|
|
46
|
-
* @param key Search key to test against
|
|
47
|
-
* @return whether the card number matches this key
|
|
48
|
-
*/
|
|
49
|
-
private matchKey;
|
|
50
|
-
/**
|
|
51
|
-
* Recursive lookup helper function
|
|
52
|
-
* @param number Card number to lookup
|
|
53
|
-
* @param tree Recursively searched tree branch
|
|
54
|
-
* @return The succesfully found brand for this card number or null
|
|
55
|
-
*/
|
|
56
|
-
private recursiveLookup;
|
|
57
|
-
}
|
|
58
|
-
declare const iinLookup: IinLookup;
|
|
59
|
-
export { iinLookup, IinLookup };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
declare type Brand = number;
|
|
2
|
-
declare type CardTreeNode = CardTreeType | Brand;
|
|
3
|
-
declare type CardTreeType = {
|
|
4
|
-
D?: Brand;
|
|
5
|
-
[key: string]: CardTreeNode;
|
|
6
|
-
};
|
|
7
|
-
declare type BrandDetailsType = {
|
|
8
|
-
type: string;
|
|
9
|
-
luhn?: boolean;
|
|
10
|
-
length?: number[];
|
|
11
|
-
cvcLength?: number[];
|
|
12
|
-
format?: string;
|
|
13
|
-
};
|
|
14
|
-
export { Brand, CardTreeNode, CardTreeType, BrandDetailsType };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utils method class
|
|
3
|
-
*/
|
|
4
|
-
export default class Utils {
|
|
5
|
-
/**
|
|
6
|
-
* Test if item is in array
|
|
7
|
-
* @param array An array of items
|
|
8
|
-
* @param item the item to test for
|
|
9
|
-
* @return boolean Whether the item is i the array
|
|
10
|
-
*/
|
|
11
|
-
static inArray<T>(array: ArrayLike<T>, item: T): boolean;
|
|
12
|
-
/**
|
|
13
|
-
* This is a custom implementation of Array.some which returns the first
|
|
14
|
-
* truthy response rather than boolean
|
|
15
|
-
* @param iterable The iterable to iterate over
|
|
16
|
-
* @param callback A callback function to find the result
|
|
17
|
-
* @return returnType The first non-falsy return value of the callback function or null
|
|
18
|
-
*/
|
|
19
|
-
static forEachBreak<inputType, returnType>(iterable: ArrayLike<inputType>, callback: (item: inputType) => returnType): returnType;
|
|
20
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function luhnCheck(cardNumber: string): boolean;
|