@bitgo-beta/sdk-api 1.10.1-beta.162 → 1.10.1-beta.1621
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/package.json +16 -25
- package/dist/src/api.d.ts +7 -5
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +86 -47
- package/dist/src/bitgoAPI.d.ts +53 -12
- package/dist/src/bitgoAPI.d.ts.map +1 -1
- package/dist/src/bitgoAPI.js +387 -142
- package/dist/src/encrypt.d.ts +4 -4
- package/dist/src/encrypt.d.ts.map +1 -1
- package/dist/src/encrypt.js +44 -7
- package/dist/src/index.js +6 -2
- package/dist/src/types.d.ts +56 -43
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +4 -2
- package/dist/src/util.d.ts +12 -0
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +57 -4
- package/dist/src/v1/blockchain.js +25 -12
- package/dist/src/v1/keychains.js +27 -22
- package/dist/src/v1/markets.js +10 -5
- package/dist/src/v1/pendingapproval.d.ts.map +1 -1
- package/dist/src/v1/pendingapproval.js +57 -18
- package/dist/src/v1/pendingapprovals.d.ts.map +1 -1
- package/dist/src/v1/pendingapprovals.js +41 -7
- package/dist/src/v1/signPsbt.d.ts +14 -0
- package/dist/src/v1/signPsbt.d.ts.map +1 -0
- package/dist/src/v1/signPsbt.js +69 -0
- package/dist/src/v1/transactionBuilder.js +214 -90
- package/dist/src/v1/travelRule.js +60 -23
- package/dist/src/v1/verifyAddress.d.ts +6 -0
- package/dist/src/v1/verifyAddress.d.ts.map +1 -0
- package/dist/src/v1/verifyAddress.js +50 -0
- package/dist/src/v1/wallet.d.ts.map +1 -1
- package/dist/src/v1/wallet.js +479 -224
- package/dist/src/v1/wallets.js +93 -37
- package/dist/test/unit/api.d.ts +2 -0
- package/dist/test/unit/api.d.ts.map +1 -0
- package/dist/test/unit/api.js +307 -0
- package/dist/test/unit/bitgoAPI.d.ts +2 -0
- package/dist/test/unit/bitgoAPI.d.ts.map +1 -0
- package/dist/test/unit/bitgoAPI.js +540 -0
- package/dist/test/unit/encrypt.d.ts +2 -0
- package/dist/test/unit/encrypt.d.ts.map +1 -0
- package/dist/test/unit/encrypt.js +62 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +65 -0
- package/dist/test/unit/v1/fixtures/accelerate-tx.d.ts +4 -0
- package/dist/test/unit/v1/fixtures/accelerate-tx.d.ts.map +1 -0
- package/dist/test/unit/v1/fixtures/accelerate-tx.js +53 -0
- package/dist/test/unit/v1/fixtures/index.d.ts +3 -0
- package/dist/test/unit/v1/fixtures/index.d.ts.map +1 -0
- package/dist/test/unit/v1/fixtures/index.js +24 -0
- package/dist/test/unit/v1/signPsbt.d.ts +2 -0
- package/dist/test/unit/v1/signPsbt.d.ts.map +1 -0
- package/dist/test/unit/v1/signPsbt.js +53 -0
- package/dist/test/unit/v1/wallet.d.ts +2 -0
- package/dist/test/unit/v1/wallet.d.ts.map +1 -0
- package/dist/test/unit/v1/wallet.js +1603 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +16 -25
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -478
- package/dist/web/main.js +0 -2
- package/dist/web/main.js.LICENSE.txt +0 -110
package/dist/package.json
CHANGED
|
@@ -1,32 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-api",
|
|
3
|
-
"version": "1.10.1-beta.
|
|
3
|
+
"version": "1.10.1-beta.1621",
|
|
4
4
|
"description": "REST wrapper for BitGoJS",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
7
|
-
"exports": {
|
|
8
|
-
"./package.json": "./package.json",
|
|
9
|
-
".": {
|
|
10
|
-
"node": "./dist/src/index.js",
|
|
11
|
-
"default": "./dist/web/main.js"
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
7
|
"browser": {
|
|
15
8
|
"proxy-agent": false
|
|
16
9
|
},
|
|
17
10
|
"scripts": {
|
|
18
11
|
"build": "yarn tsc --build --incremental --verbose .",
|
|
19
12
|
"fmt": "prettier --write .",
|
|
20
|
-
"check-fmt": "prettier --check
|
|
13
|
+
"check-fmt": "prettier --check '**/*.{ts,js,json}'",
|
|
21
14
|
"clean": "rm -r ./dist",
|
|
22
15
|
"lint": "eslint --quiet .",
|
|
23
16
|
"prepare": "npm run build",
|
|
24
|
-
"webpack-dev": "yarn webpack",
|
|
25
|
-
"webpack-prod": "yarn webpack --mode=production --node-env=production",
|
|
26
|
-
"prepublishOnly": "yarn webpack-prod",
|
|
27
17
|
"test": "npm run coverage",
|
|
28
18
|
"coverage": "nyc -- npm run unit-test",
|
|
29
|
-
"unit-test": "mocha"
|
|
19
|
+
"unit-test": "mocha 'test/unit/**/*.ts'"
|
|
30
20
|
},
|
|
31
21
|
"author": "BitGo SDK Team <sdkteam@bitgo.com>",
|
|
32
22
|
"license": "MIT",
|
|
@@ -50,23 +40,21 @@
|
|
|
50
40
|
]
|
|
51
41
|
},
|
|
52
42
|
"dependencies": {
|
|
53
|
-
"@bitgo-beta/sdk-core": "8.2.1-beta.
|
|
54
|
-
"@bitgo-beta/
|
|
55
|
-
"@bitgo-beta/
|
|
56
|
-
"@bitgo-beta/
|
|
43
|
+
"@bitgo-beta/sdk-core": "8.2.1-beta.1622",
|
|
44
|
+
"@bitgo-beta/sdk-hmac": "1.0.1-beta.990",
|
|
45
|
+
"@bitgo-beta/sjcl": "1.0.2-beta.1862",
|
|
46
|
+
"@bitgo-beta/unspents": "0.13.2-beta.1623",
|
|
47
|
+
"@bitgo-beta/utxo-lib": "8.0.3-beta.1624",
|
|
57
48
|
"@types/superagent": "4.1.15",
|
|
58
|
-
"bitcoinjs-message": "npm:@bitgo-forks/bitcoinjs-message@1.0.0-master.
|
|
59
|
-
"bluebird": "^3.5.3",
|
|
60
|
-
"browser-or-node": "2.0.0",
|
|
61
|
-
"bs58": "^2.0.1",
|
|
49
|
+
"bitcoinjs-message": "npm:@bitgo-forks/bitcoinjs-message@1.0.0-master.3",
|
|
62
50
|
"debug": "3.1.0",
|
|
63
51
|
"eol": "^0.5.0",
|
|
64
52
|
"lodash": "^4.17.15",
|
|
65
|
-
"proxy-agent": "6.
|
|
53
|
+
"proxy-agent": "6.4.0",
|
|
66
54
|
"sanitize-html": "^2.11",
|
|
67
|
-
"secp256k1": "
|
|
55
|
+
"secp256k1": "5.0.1",
|
|
68
56
|
"secrets.js-grempe": "^1.1.0",
|
|
69
|
-
"superagent": "
|
|
57
|
+
"superagent": "^9.0.1"
|
|
70
58
|
},
|
|
71
59
|
"overrides": {
|
|
72
60
|
"degenerator": "5.0.0"
|
|
@@ -74,5 +62,8 @@
|
|
|
74
62
|
"resolutions": {
|
|
75
63
|
"degenerator": "5.0.0"
|
|
76
64
|
},
|
|
77
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "c11439c936e77f669d9847f8aa4e06b16d98d6ee",
|
|
66
|
+
"files": [
|
|
67
|
+
"dist"
|
|
68
|
+
]
|
|
78
69
|
}
|
package/dist/src/api.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import superagent from 'superagent';
|
|
2
2
|
import { BitGoRequest } from '@bitgo-beta/sdk-core';
|
|
3
|
-
import { VerifyResponseOptions } from './types';
|
|
3
|
+
import { AuthVersion, VerifyResponseOptions } from './types';
|
|
4
4
|
import { BitGoAPI } from './bitgoAPI';
|
|
5
5
|
/**
|
|
6
6
|
* Add the bitgo-specific result() function on a superagent request.
|
|
@@ -29,8 +29,10 @@ export declare function handleResponseError(e: Error & {
|
|
|
29
29
|
response?: superagent.Response;
|
|
30
30
|
}): never;
|
|
31
31
|
/**
|
|
32
|
-
* Serialize request data based on the request content type
|
|
33
|
-
*
|
|
32
|
+
* Serialize request data based on the request content type.
|
|
33
|
+
* If data is already a string, returns it as-is to preserve exact bytes for HMAC.
|
|
34
|
+
* If data is a Buffer, converts to UTF-8 string.
|
|
35
|
+
* If data is an object, serializes it based on Content-Type.
|
|
34
36
|
* @param req
|
|
35
37
|
*/
|
|
36
38
|
export declare function serializeRequestData(req: superagent.Request): string | undefined;
|
|
@@ -43,5 +45,5 @@ export declare function setRequestQueryString(req: superagent.SuperAgentRequest)
|
|
|
43
45
|
* Verify that the response received from the server is signed correctly.
|
|
44
46
|
* Right now, it is very permissive with the timestamp variance.
|
|
45
47
|
*/
|
|
46
|
-
export declare function verifyResponse(bitgo: BitGoAPI, token: string | undefined, method: VerifyResponseOptions['method'], req: superagent.SuperAgentRequest, response: superagent.Response): superagent.Response;
|
|
48
|
+
export declare function verifyResponse(bitgo: BitGoAPI, token: string | undefined, method: VerifyResponseOptions['method'], req: superagent.SuperAgentRequest, response: superagent.Response, authVersion: AuthVersion): superagent.Response;
|
|
47
49
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/src/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAOA,OAAO,UAAU,MAAM,YAAY,CAAC;AAIpC,OAAO,EAAoB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,kBAAkB,GAAG,GAAG,EACrD,GAAG,EAAE,UAAU,CAAC,iBAAiB,GAChC,YAAY,CAAC,kBAAkB,CAAC,CASlC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,kBAAkB,EACrD,aAAa,CAAC,EAAE,MAAM,GACrB,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,KAAK,kBAAkB,CAalD;AAkBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG;IAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAA;CAAE,GAAG,KAAK,CAKxF;AAgCD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAsDhF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAwB7E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,EACvC,GAAG,EAAE,UAAU,CAAC,iBAAiB,EACjC,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,WAAW,EAAE,WAAW,GACvB,UAAU,CAAC,QAAQ,CAgDrB"}
|
package/dist/src/api.js
CHANGED
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
6
|
+
exports.toBitgoRequest = toBitgoRequest;
|
|
7
|
+
exports.handleResponseResult = handleResponseResult;
|
|
8
|
+
exports.handleResponseError = handleResponseError;
|
|
9
|
+
exports.serializeRequestData = serializeRequestData;
|
|
10
|
+
exports.setRequestQueryString = setRequestQueryString;
|
|
11
|
+
exports.verifyResponse = verifyResponse;
|
|
4
12
|
/**
|
|
5
13
|
* @prettier
|
|
6
14
|
*/
|
|
7
|
-
const debug_1 = require("debug");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
15
|
+
const debug_1 = __importDefault(require("debug"));
|
|
16
|
+
const eol_1 = __importDefault(require("eol"));
|
|
17
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
18
|
+
const sanitize_html_1 = __importDefault(require("sanitize-html"));
|
|
19
|
+
const superagent_1 = __importDefault(require("superagent"));
|
|
20
|
+
const url_1 = __importDefault(require("url"));
|
|
21
|
+
const querystring_1 = __importDefault(require("querystring"));
|
|
14
22
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
15
|
-
const debug = debug_1.default('bitgo:api');
|
|
23
|
+
const debug = (0, debug_1.default)('bitgo:api');
|
|
16
24
|
/**
|
|
17
25
|
* Add the bitgo-specific result() function on a superagent request.
|
|
18
26
|
*
|
|
@@ -31,7 +39,6 @@ function toBitgoRequest(req) {
|
|
|
31
39
|
},
|
|
32
40
|
});
|
|
33
41
|
}
|
|
34
|
-
exports.toBitgoRequest = toBitgoRequest;
|
|
35
42
|
/**
|
|
36
43
|
* Return a function which extracts the specified response body property from the response if successful,
|
|
37
44
|
* otherwise throw an `ApiErrorResponse` parsed from the response body.
|
|
@@ -39,13 +46,17 @@ exports.toBitgoRequest = toBitgoRequest;
|
|
|
39
46
|
*/
|
|
40
47
|
function handleResponseResult(optionalField) {
|
|
41
48
|
return function (res) {
|
|
42
|
-
if (
|
|
43
|
-
return
|
|
49
|
+
if (lodash_1.default.isNumber(res.status) && res.status >= 200 && res.status < 300) {
|
|
50
|
+
return (
|
|
51
|
+
// If there's an optional field and the body is non-nullish with that property, return it;
|
|
52
|
+
// otherwise return the body if available; if not, return the text; and finally fallback to the entire response.
|
|
53
|
+
(optionalField && res.body && res.body[optionalField] !== undefined ? res.body[optionalField] : res.body) ??
|
|
54
|
+
res.text ??
|
|
55
|
+
res);
|
|
44
56
|
}
|
|
45
57
|
throw errFromResponse(res);
|
|
46
58
|
};
|
|
47
59
|
}
|
|
48
|
-
exports.handleResponseResult = handleResponseResult;
|
|
49
60
|
/**
|
|
50
61
|
* Extract relevant information from a successful response (that is, a response with an HTTP status code
|
|
51
62
|
* between 200 and 299), but which resulted in an application specific error and use it to construct and
|
|
@@ -54,12 +65,11 @@ exports.handleResponseResult = handleResponseResult;
|
|
|
54
65
|
* @param res
|
|
55
66
|
*/
|
|
56
67
|
function errFromResponse(res) {
|
|
57
|
-
var _a;
|
|
58
68
|
const message = createResponseErrorString(res);
|
|
59
69
|
const status = res.status;
|
|
60
70
|
const result = res.body;
|
|
61
|
-
const invalidToken =
|
|
62
|
-
const needsOtp =
|
|
71
|
+
const invalidToken = lodash_1.default.has(res.header, 'x-auth-required') && res.header['x-auth-required'] === 'true';
|
|
72
|
+
const needsOtp = res.body?.needsOTP !== undefined;
|
|
63
73
|
return new sdk_core_1.ApiResponseError(message, status, result, invalidToken, needsOtp);
|
|
64
74
|
}
|
|
65
75
|
/**
|
|
@@ -73,16 +83,14 @@ function handleResponseError(e) {
|
|
|
73
83
|
}
|
|
74
84
|
throw e;
|
|
75
85
|
}
|
|
76
|
-
exports.handleResponseError = handleResponseError;
|
|
77
86
|
/**
|
|
78
87
|
* There are many ways a request can fail, and may ways information on that failure can be
|
|
79
88
|
* communicated to the client. This function tries to handle those cases and create a sane error string
|
|
80
89
|
* @param res Response from an HTTP request
|
|
81
90
|
*/
|
|
82
91
|
function createResponseErrorString(res) {
|
|
83
|
-
var _a;
|
|
84
92
|
let errString = res.status.toString(); // at the very least we'll have the status code
|
|
85
|
-
if (
|
|
93
|
+
if (res.body?.error) {
|
|
86
94
|
// this is the case we hope for, where the server gives us a nice error from the JSON body
|
|
87
95
|
errString = res.body.error;
|
|
88
96
|
}
|
|
@@ -90,11 +98,11 @@ function createResponseErrorString(res) {
|
|
|
90
98
|
// if the response came back as text, we try to parse it as HTML and remove all tags, leaving us
|
|
91
99
|
// just the bare text, which we then trim of excessive newlines and limit to a certain length
|
|
92
100
|
try {
|
|
93
|
-
let sanitizedText =
|
|
101
|
+
let sanitizedText = (0, sanitize_html_1.default)(res.text, { allowedTags: [] });
|
|
94
102
|
sanitizedText = sanitizedText.trim();
|
|
95
|
-
sanitizedText =
|
|
96
|
-
sanitizedText =
|
|
97
|
-
sanitizedText =
|
|
103
|
+
sanitizedText = eol_1.default.lf(sanitizedText); // use '\n' for all newlines
|
|
104
|
+
sanitizedText = lodash_1.default.replace(sanitizedText, /\n[ |\t]{1,}\n/g, '\n\n'); // remove the spaces/tabs between newlines
|
|
105
|
+
sanitizedText = lodash_1.default.replace(sanitizedText, /[\n]{3,}/g, '\n\n'); // have at most 2 consecutive newlines
|
|
98
106
|
sanitizedText = sanitizedText.substring(0, 5000); // prevent message from getting too large
|
|
99
107
|
errString = errString + '\n' + sanitizedText; // add it to our existing errString (at this point the more info the better!)
|
|
100
108
|
}
|
|
@@ -106,36 +114,68 @@ function createResponseErrorString(res) {
|
|
|
106
114
|
return errString;
|
|
107
115
|
}
|
|
108
116
|
/**
|
|
109
|
-
* Serialize request data based on the request content type
|
|
110
|
-
*
|
|
117
|
+
* Serialize request data based on the request content type.
|
|
118
|
+
* If data is already a string, returns it as-is to preserve exact bytes for HMAC.
|
|
119
|
+
* If data is a Buffer, converts to UTF-8 string.
|
|
120
|
+
* If data is an object, serializes it based on Content-Type.
|
|
111
121
|
* @param req
|
|
112
122
|
*/
|
|
113
123
|
function serializeRequestData(req) {
|
|
114
|
-
|
|
115
|
-
if (typeof data
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
const data = req._data;
|
|
125
|
+
if (typeof data === 'string') {
|
|
126
|
+
return data;
|
|
127
|
+
}
|
|
128
|
+
if (Buffer.isBuffer(data)) {
|
|
129
|
+
// Convert Buffer to UTF-8 string and mutate _data to ensure consistency.
|
|
130
|
+
// This is critical: if _data stays as a Buffer, superagent will serialize it
|
|
131
|
+
// as JSON ({"type":"Buffer","data":[...]}), which won't match the HMAC.
|
|
132
|
+
// By mutating to string, superagent sends the exact bytes we hash.
|
|
133
|
+
// This is safe for retries: calling again with a string will hit the early return above.
|
|
134
|
+
const stringData = data.toString('utf8');
|
|
135
|
+
req._data = stringData;
|
|
136
|
+
return stringData;
|
|
137
|
+
}
|
|
138
|
+
if (data === undefined || data === null) {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
// Serialize object data based on Content-Type
|
|
142
|
+
let contentType = req.get('Content-Type');
|
|
143
|
+
// Parse out just the content type from the header (ignore the charset)
|
|
144
|
+
if (contentType) {
|
|
145
|
+
contentType = contentType.split(';')[0].trim();
|
|
146
|
+
}
|
|
147
|
+
let serialize;
|
|
148
|
+
const serializers = superagent_1.default.serialize;
|
|
149
|
+
if (contentType) {
|
|
150
|
+
if (Object.prototype.hasOwnProperty.call(serializers, contentType)) {
|
|
151
|
+
const candidate = serializers[contentType];
|
|
152
|
+
if (typeof candidate === 'function') {
|
|
153
|
+
serialize = candidate;
|
|
154
|
+
}
|
|
124
155
|
}
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
156
|
+
else if (/[\/+]json\b/.test(contentType)) {
|
|
157
|
+
// Fall back to the built-in JSON serializer for JSON-like content types
|
|
158
|
+
if (Object.prototype.hasOwnProperty.call(serializers, 'application/json')) {
|
|
159
|
+
const jsonSerializer = serializers['application/json'];
|
|
160
|
+
if (typeof jsonSerializer === 'function') {
|
|
161
|
+
serialize = jsonSerializer;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
129
164
|
}
|
|
130
165
|
}
|
|
166
|
+
if (serialize) {
|
|
167
|
+
const serialized = serialize(data);
|
|
168
|
+
req._data = serialized;
|
|
169
|
+
return serialized;
|
|
170
|
+
}
|
|
171
|
+
return undefined;
|
|
131
172
|
}
|
|
132
|
-
exports.serializeRequestData = serializeRequestData;
|
|
133
173
|
/**
|
|
134
174
|
* Set the superagent query string correctly for browsers or node.
|
|
135
175
|
* @param req
|
|
136
176
|
*/
|
|
137
177
|
function setRequestQueryString(req) {
|
|
138
|
-
const urlDetails =
|
|
178
|
+
const urlDetails = url_1.default.parse(req.url);
|
|
139
179
|
let queryString;
|
|
140
180
|
const query = req._query;
|
|
141
181
|
const qs = req.qs;
|
|
@@ -146,7 +186,7 @@ function setRequestQueryString(req) {
|
|
|
146
186
|
}
|
|
147
187
|
else if (qs) {
|
|
148
188
|
// node version
|
|
149
|
-
queryString =
|
|
189
|
+
queryString = querystring_1.default.stringify(qs);
|
|
150
190
|
req.qs = null;
|
|
151
191
|
}
|
|
152
192
|
if (queryString) {
|
|
@@ -156,15 +196,14 @@ function setRequestQueryString(req) {
|
|
|
156
196
|
else {
|
|
157
197
|
urlDetails.search = '?' + queryString;
|
|
158
198
|
}
|
|
159
|
-
req.url =
|
|
199
|
+
req.url = url_1.default.format(urlDetails);
|
|
160
200
|
}
|
|
161
201
|
}
|
|
162
|
-
exports.setRequestQueryString = setRequestQueryString;
|
|
163
202
|
/**
|
|
164
203
|
* Verify that the response received from the server is signed correctly.
|
|
165
204
|
* Right now, it is very permissive with the timestamp variance.
|
|
166
205
|
*/
|
|
167
|
-
function verifyResponse(bitgo, token, method, req, response) {
|
|
206
|
+
function verifyResponse(bitgo, token, method, req, response, authVersion) {
|
|
168
207
|
// we can't verify the response if we're not authenticated
|
|
169
208
|
if (!req.isV2Authenticated || !req.authenticationToken) {
|
|
170
209
|
return response;
|
|
@@ -177,6 +216,7 @@ function verifyResponse(bitgo, token, method, req, response) {
|
|
|
177
216
|
timestamp: response.header.timestamp,
|
|
178
217
|
token: req.authenticationToken,
|
|
179
218
|
method,
|
|
219
|
+
authVersion,
|
|
180
220
|
});
|
|
181
221
|
if (!verificationResponse.isValid) {
|
|
182
222
|
// calculate the HMAC
|
|
@@ -205,5 +245,4 @@ function verifyResponse(bitgo, token, method, req, response) {
|
|
|
205
245
|
}
|
|
206
246
|
return response;
|
|
207
247
|
}
|
|
208
|
-
exports.verifyResponse = verifyResponse;
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILGlDQUEwQjtBQUMxQiwyQkFBMkI7QUFDM0IsNEJBQTRCO0FBQzVCLDhDQUE4QztBQUM5Qyx5Q0FBeUM7QUFDekMsOEJBQThCO0FBQzlCLDJDQUEyQztBQUUzQyxtREFBc0U7QUFLdEUsTUFBTSxLQUFLLEdBQUcsZUFBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRWpDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixjQUFjLENBQzVCLEdBQWlDO0lBRWpDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDeEIsTUFBTSxDQUFDLGFBQXNCO1lBQzNCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FDYixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQXFCLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUMvRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQ3RDLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVhELHdDQVdDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxhQUFzQjtJQUV0QixPQUFPLFVBQVUsR0FBd0I7UUFDdkMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNuRSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztTQUMzRDtRQUNELE1BQU0sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdC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RkFBdUY7UUFDdkYsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUc7WUFDbkIsWUFBWTtZQUNaLFlBQVk7WUFDWixTQUFTLEVBQUUsZ0JBQWdCO1lBQzNCLFlBQVksRUFBRSxHQUFHLENBQUMsbUJBQW1CO1lBQ3JDLFVBQVUsRUFBRSxpQkFBaUI7U0FDOUIsQ0FBQztRQUNGLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRCxNQUFNLElBQUksMkJBQWdCLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQzNHO0lBRUQsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLEVBQUU7UUFDcEYsTUFBTSxZQUFZLEdBQUc7WUFDbkIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNwQyxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyxnQkFBZ0I7U0FDeEQsQ0FBQztRQUNGLEtBQUssQ0FBQywyREFBMkQsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRixNQUFNLElBQUksMkJBQWdCLENBQ3hCLDBGQUEwRixFQUMxRixHQUFHLEVBQ0gsWUFBWSxDQUNiLENBQUM7S0FDSDtJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFyREQsd0NBcURDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCAqIGFzIGVvbCBmcm9tICdlb2wnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgc2FuaXRpemVIdG1sIGZyb20gJ3Nhbml0aXplLWh0bWwnO1xuaW1wb3J0ICogYXMgc3VwZXJhZ2VudCBmcm9tICdzdXBlcmFnZW50JztcbmltcG9ydCAqIGFzIHVybExpYiBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuXG5pbXBvcnQgeyBBcGlSZXNwb25zZUVycm9yLCBCaXRHb1JlcXVlc3QgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB7IFZlcmlmeVJlc3BvbnNlT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICcuL2JpdGdvQVBJJztcblxuY29uc3QgZGVidWcgPSBEZWJ1ZygnYml0Z286YXBpJyk7XG5cbi8qKlxuICogQWRkIHRoZSBiaXRnby1zcGVjaWZpYyByZXN1bHQoKSBmdW5jdGlvbiBvbiBhIHN1cGVyYWdlbnQgcmVxdWVzdC5cbiAqXG4gKiBJZiB0aGUgc2VydmVyIHJlc3BvbnNlIGlzIHN1Y2Nlc3NmdWwsIHRoZSBgcmVzdWx0KClgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGVpdGhlciB0aGUgZW50aXJlIHJlc3BvbnNlIGJvZHksXG4gKiBvciB0aGUgZmllbGQgZnJvbSB0aGUgcmVzcG9uc2UgYm9keSBzcGVjaWZpZWQgYnkgdGhlIGBvcHRpb25hbEZpZWxkYCBwYXJhbWV0ZXIgaWYgaXQgaXMgcHJvdmlkZWQuXG4gKlxuICogSWYgdGhlIHNlcnZlciByZXNwb25zZSB3aXRoIGFuIGVycm9yLCBgcmVzdWx0KClgIHdpbGwgaGFuZGxlIEhUVFAgZXJyb3JzIGFwcHJvcHJpYXRlbHkgYnlcbiAqIHJldGhyb3dpbmcgdGhlbSBhcyBhbiBgQXBpUmVzcG9uc2VFcnJvcmAgaWYgcG9zc2libGUsIGFuZCBvdGhlcndpc2UgcmV0aHJvd2luZyB0aGUgdW5kZXJseWluZyByZXNwb25zZSBlcnJvci5cbiAqXG4gKiBAcGFyYW0gcmVxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0JpdGdvUmVxdWVzdDxSZXNwb25zZVJlc3VsdFR5cGUgPSBhbnk+KFxuICByZXE6IHN1cGVyYWdlbnQuU3VwZXJBZ2VudFJlcXVlc3Rcbik6IEJpdEdvUmVxdWVzdDxSZXNwb25zZVJlc3VsdFR5cGU+IHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmVxLCB7XG4gICAgcmVzdWx0KG9wdGlvbmFsRmllbGQ/OiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiByZXEudGhlbihcbiAgICAgICAgKHJlc3BvbnNlKSA9PiBoYW5kbGVSZXNwb25zZVJlc3VsdDxSZXNwb25zZVJlc3VsdFR5cGU+KG9wdGlvbmFsRmllbGQpKHJlc3BvbnNlKSxcbiAgICAgICAgKGVycm9yKSA9PiBoYW5kbGVSZXNwb25zZUVycm9yKGVycm9yKVxuICAgICAgKTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBmdW5jdGlvbiB3aGljaCBleHRyYWN0cyB0aGUgc3BlY2lmaWVkIHJlc3BvbnNlIGJvZHkgcHJvcGVydHkgZnJvbSB0aGUgcmVzcG9uc2UgaWYgc3VjY2Vzc2Z1bCxcbiAqIG90aGVyd2lzZSB0aHJvdyBhbiBgQXBpRXJyb3JSZXNwb25zZWAgcGFyc2VkIGZyb20gdGhlIHJlc3BvbnNlIGJvZHkuXG4gKiBAcGFyYW0gb3B0aW9uYWxGaWVsZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlUmVzcG9uc2VSZXN1bHQ8UmVzcG9uc2VSZXN1bHRUeXBlPihcbiAgb3B0aW9uYWxGaWVsZD86IHN0cmluZ1xuKTogKHJlczogc3VwZXJhZ2VudC5SZXNwb25zZSkgPT4gUmVzcG9uc2VSZXN1bHRUeXBlIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXM6IHN1cGVyYWdlbnQuUmVzcG9uc2UpOiBSZXNwb25zZVJlc3VsdFR5cGUge1xuICAgIGlmIChfLmlzTnVtYmVyKHJlcy5zdGF0dXMpICYmIHJlcy5zdGF0dXMgPj0gMjAwICYmIHJlcy5zdGF0dXMgPCAzMDApIHtcbiAgICAgIHJldHVybiBvcHRpb25hbEZpZWxkID8gcmVzLmJvZHlbb3B0aW9uYWxGaWVsZF0gOiByZXMuYm9keTtcbiAgICB9XG4gICAgdGhyb3cgZXJyRnJvbVJlc3BvbnNlKHJlcyk7XG4gIH07XG59XG5cbi8qKlxuICogRXh0cmFjdCByZWxldmFudCBpbmZvcm1hdGlvbiBmcm9tIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSAodGhhdCBpcywgYSByZXNwb25zZSB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGVcbiAqIGJldHdlZW4gMjAwIGFuZCAyOTkpLCBidXQgd2hpY2ggcmVzdWx0ZWQgaW4gYW4gYXBwbGljYXRpb24gc3BlY2lmaWMgZXJyb3IgYW5kIHVzZSBpdCB0byBjb25zdHJ1Y3QgYW5kXG4gKiB0aHJvdyBhbiBgQXBpRXJyb3JSZXNwb25zZWAuXG4gKlxuICogQHBhcmFtIHJlc1xuICovXG5mdW5jdGlvbiBlcnJGcm9tUmVzcG9uc2U8UmVzcG9uc2VCb2R5VHlwZT4ocmVzOiBzdXBlcmFnZW50LlJlc3BvbnNlKTogQXBpUmVzcG9uc2VFcnJvciB7XG4gIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVSZXNwb25zZUVycm9yU3RyaW5nKHJlcyk7XG4gIGNvbnN0IHN0YXR1cyA9IHJlcy5zdGF0dXM7XG4gIGNvbnN0IHJlc3VsdCA9IHJlcy5ib2R5IGFzIFJlc3BvbnNlQm9keVR5cGU7XG4gIGNvbnN0IGludmFsaWRUb2tlbiA9IF8uaGFzKHJlcy5oZWFkZXIsICd4LWF1dGgtcmVxdWlyZWQnKSAmJiByZXMuaGVhZGVyWyd4LWF1dGgtcmVxdWlyZWQnXSA9PT0gJ3RydWUnO1xuICBjb25zdCBuZWVkc090cCA9IHJlcy5ib2R5Py5uZWVkc09UUCAhPT0gdW5kZWZpbmVkO1xuICByZXR1cm4gbmV3IEFwaVJlc3BvbnNlRXJyb3IobWVzc2FnZSwgc3RhdHVzLCByZXN1bHQsIGludmFsaWRUb2tlbiwgbmVlZHNPdHApO1xufVxuXG4vKipcbiAqIEhhbmRsZSBhbiBlcnJvciBvciBhbiBlcnJvciBjb250YWluaW5nIGFuIEhUVFAgcmVzcG9uc2UgYW5kIHVzZSBpdCB0byB0aHJvdyBhIHdlbGwtZm9ybWVkIGVycm9yIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlUmVzcG9uc2VFcnJvcihlOiBFcnJvciAmIHsgcmVzcG9uc2U/OiBzdXBlcmFnZW50LlJlc3BvbnNlIH0pOiBuZXZlciB7XG4gIGlmIChlLnJlc3BvbnNlKSB7XG4gICAgdGhyb3cgZXJyRnJvbVJlc3BvbnNlKGUucmVzcG9uc2UpO1xuICB9XG4gIHRocm93IGU7XG59XG5cbi8qKlxuICogVGhlcmUgYXJlIG1hbnkgd2F5cyBhIHJlcXVlc3QgY2FuIGZhaWwsIGFuZCBtYXkgd2F5cyBpbmZvcm1hdGlvbiBvbiB0aGF0IGZhaWx1cmUgY2FuIGJlXG4gKiBjb21tdW5pY2F0ZWQgdG8gdGhlIGNsaWVudC4gVGhpcyBmdW5jdGlvbiB0cmllcyB0byBoYW5kbGUgdGhvc2UgY2FzZXMgYW5kIGNyZWF0ZSBhIHNhbmUgZXJyb3Igc3RyaW5nXG4gKiBAcGFyYW0gcmVzIFJlc3BvbnNlIGZyb20gYW4gSFRUUCByZXF1ZXN0XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlRXJyb3JTdHJpbmcocmVzOiBzdXBlcmFnZW50LlJlc3BvbnNlKTogc3RyaW5nIHtcbiAgbGV0IGVyclN0cmluZyA9IHJlcy5zdGF0dXMudG9TdHJpbmcoKTsgLy8gYXQgdGhlIHZlcnkgbGVhc3Qgd2UnbGwgaGF2ZSB0aGUgc3RhdHVzIGNvZGVcbiAgaWYgKHJlcy5ib2R5Py5lcnJvcikge1xuICAgIC8vIHRoaXMgaXMgdGhlIGNhc2Ugd2UgaG9wZSBmb3IsIHdoZXJlIHRoZSBzZXJ2ZXIgZ2l2ZXMgdXMgYSBuaWNlIGVycm9yIGZyb20gdGhlIEpTT04gYm9keVxuICAgIGVyclN0cmluZyA9IHJlcy5ib2R5LmVycm9yO1xuICB9IGVsc2UgaWYgKHJlcy50ZXh0KSB7XG4gICAgLy8gaWYgdGhlIHJlc3BvbnNlIGNhbWUgYmFjayBhcyB0ZXh0LCB3ZSB0cnkgdG8gcGFyc2UgaXQgYXMgSFRNTCBhbmQgcmVtb3ZlIGFsbCB0YWdzLCBsZWF2aW5nIHVzXG4gICAgLy8ganVzdCB0aGUgYmFyZSB0ZXh0LCB3aGljaCB3ZSB0aGVuIHRyaW0gb2YgZXhjZXNzaXZlIG5ld2xpbmVzIGFuZCBsaW1pdCB0byBhIGNlcnRhaW4gbGVuZ3RoXG4gICAgdHJ5IHtcbiAgICAgIGxldCBzYW5pdGl6ZWRUZXh0ID0gc2FuaXRpemVIdG1sKHJlcy50ZXh0LCB7IGFsbG93ZWRUYWdzOiBbXSB9KTtcbiAgICAgIHNhbml0aXplZFRleHQgPSBzYW5pdGl6ZWRUZXh0LnRyaW0oKTtcbiAgICAgIHNhbml0aXplZFRleHQgPSBlb2wubGYoc2FuaXRpemVkVGV4dCk7IC8vIHVzZSAnXFxuJyBmb3IgYWxsIG5ld2xpbmVzXG4gICAgICBzYW5pdGl6ZWRUZXh0ID0gXy5yZXBsYWNlKHNhbml0aXplZFRleHQsIC9cXG5bIHxcXHRdezEsfVxcbi9nLCAnXFxuXFxuJyk7IC8vIHJlbW92ZSB0aGUgc3BhY2VzL3RhYnMgYmV0d2VlbiBuZXdsaW5lc1xuICAgICAgc2FuaXRpemVkVGV4dCA9IF8ucmVwbGFjZShzYW5pdGl6ZWRUZXh0LCAvW1xcbl17Myx9L2csICdcXG5cXG4nKTsgLy8gaGF2ZSBhdCBtb3N0IDIgY29uc2VjdXRpdmUgbmV3bGluZXNcbiAgICAgIHNhbml0aXplZFRleHQgPSBzYW5pdGl6ZWRUZXh0LnN1YnN0cmluZygwLCA1MDAwKTsgLy8gcHJldmVudCBtZXNzYWdlIGZyb20gZ2V0dGluZyB0b28gbGFyZ2VcbiAgICAgIGVyclN0cmluZyA9IGVyclN0cmluZyArICdcXG4nICsgc2FuaXRpemVkVGV4dDsgLy8gYWRkIGl0IHRvIG91ciBleGlzdGluZyBlcnJTdHJpbmcgKGF0IHRoaXMgcG9pbnQgdGhlIG1vcmUgaW5mbyB0aGUgYmV0dGVyISlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBkbyBub3RoaW5nLCB0aGUgcmVzcG9uc2UncyBIVE1MIHdhcyB0b28gd2Fja3kgdG8gYmUgcGFyc2VkIGNsZWFubHlcbiAgICAgIGRlYnVnKCdnb3QgZXJyb3Igd2l0aCBtZXNzYWdlIFwiJXNcIiB3aGlsZSBjcmVhdGluZyByZXNwb25zZSBlcnJvciBzdHJpbmcgZnJvbSByZXNwb25zZTogJXMnLCBlLm1lc3NhZ2UsIHJlcy50ZXh0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXJyU3RyaW5nO1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSByZXF1ZXN0IGRhdGEgYmFzZWQgb24gdGhlIHJlcXVlc3QgY29udGVudCB0eXBlXG4gKiBOb3RlOiBOb3Qgc3VyZSB0aGlzIGlzIHN0aWxsIG5lZWRlZCBvciBldmVuIHVzZWZ1bC4gQ29uc2lkZXIgcmVtb3ZpbmcuXG4gKiBAcGFyYW0gcmVxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVSZXF1ZXN0RGF0YShyZXE6IHN1cGVyYWdlbnQuUmVxdWVzdCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGxldCBkYXRhOiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IChyZXEgYXMgYW55KS5fZGF0YTtcbiAgaWYgKHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xuICAgIGxldCBjb250ZW50VHlwZSA9IHJlcS5nZXQoJ0NvbnRlbnQtVHlwZScpO1xuICAgIC8vIFBhcnNlIG91dCBqdXN0IHRoZSBjb250ZW50IHR5cGUgZnJvbSB0aGUgaGVhZGVyIChpZ25vcmUgdGhlIGNoYXJzZXQpXG4gICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlLnNwbGl0KCc7JylbMF07XG4gICAgfVxuICAgIGxldCBzZXJpYWxpemUgPSBzdXBlcmFnZW50LnNlcmlhbGl6ZVtjb250ZW50VHlwZV07XG4gICAgaWYgKCFzZXJpYWxpemUgJiYgL1tcXC8rXWpzb25cXGIvLnRlc3QoY29udGVudFR5cGUpKSB7XG4gICAgICBzZXJpYWxpemUgPSBzdXBlcmFnZW50LnNlcmlhbGl6ZVsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIH1cbiAgICBpZiAoc2VyaWFsaXplKSB7XG4gICAgICBkYXRhID0gc2VyaWFsaXplKGRhdGEpO1xuICAgICAgKHJlcSBhcyBhbnkpLl9kYXRhID0gZGF0YTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNldCB0aGUgc3VwZXJhZ2VudCBxdWVyeSBzdHJpbmcgY29ycmVjdGx5IGZvciBicm93c2VycyBvciBub2RlLlxuICogQHBhcmFtIHJlcVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVxdWVzdFF1ZXJ5U3RyaW5nKHJlcTogc3VwZXJhZ2VudC5TdXBlckFnZW50UmVxdWVzdCk6IHZvaWQge1xuICBjb25zdCB1cmxEZXRhaWxzID0gdXJsTGliLnBhcnNlKHJlcS51cmwpO1xuXG4gIGxldCBxdWVyeVN0cmluZzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb25zdCBxdWVyeTogc3RyaW5nW10gPSAocmVxIGFzIGFueSkuX3F1ZXJ5O1xuICBjb25zdCBxczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IChyZXEgYXMgYW55KS5xcztcbiAgaWYgKHF1ZXJ5ICYmIHF1ZXJ5Lmxlbmd0aCA+IDApIHtcbiAgICAvLyBicm93c2VyIHZlcnNpb25cbiAgICBxdWVyeVN0cmluZyA9IHF1ZXJ5LmpvaW4oJyYnKTtcbiAgICAocmVxIGFzIGFueSkuX3F1ZXJ5ID0gW107XG4gIH0gZWxzZSBpZiAocXMpIHtcbiAgICAvLyBub2RlIHZlcnNpb25cbiAgICBxdWVyeVN0cmluZyA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShxcyk7XG4gICAgKHJlcSBhcyBhbnkpLnFzID0gbnVsbDtcbiAgfVxuXG4gIGlmIChxdWVyeVN0cmluZykge1xuICAgIGlmICh1cmxEZXRhaWxzLnNlYXJjaCkge1xuICAgICAgdXJsRGV0YWlscy5zZWFyY2ggKz0gJyYnICsgcXVlcnlTdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybERldGFpbHMuc2VhcmNoID0gJz8nICsgcXVlcnlTdHJpbmc7XG4gICAgfVxuICAgIHJlcS51cmwgPSB1cmxMaWIuZm9ybWF0KHVybERldGFpbHMpO1xuICB9XG59XG5cbi8qKlxuICogVmVyaWZ5IHRoYXQgdGhlIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlciBpcyBzaWduZWQgY29ycmVjdGx5LlxuICogUmlnaHQgbm93LCBpdCBpcyB2ZXJ5IHBlcm1pc3NpdmUgd2l0aCB0aGUgdGltZXN0YW1wIHZhcmlhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5UmVzcG9uc2UoXG4gIGJpdGdvOiBCaXRHb0FQSSxcbiAgdG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgbWV0aG9kOiBWZXJpZnlSZXNwb25zZU9wdGlvbnNbJ21ldGhvZCddLFxuICByZXE6IHN1cGVyYWdlbnQuU3VwZXJBZ2VudFJlcXVlc3QsXG4gIHJlc3BvbnNlOiBzdXBlcmFnZW50LlJlc3BvbnNlXG4pOiBzdXBlcmFnZW50LlJlc3BvbnNlIHtcbiAgLy8gd2UgY2FuJ3QgdmVyaWZ5IHRoZSByZXNwb25zZSBpZiB3ZSdyZSBub3QgYXV0aGVudGljYXRlZFxuICBpZiAoIXJlcS5pc1YyQXV0aGVudGljYXRlZCB8fCAhcmVxLmF1dGhlbnRpY2F0aW9uVG9rZW4pIHtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBjb25zdCB2ZXJpZmljYXRpb25SZXNwb25zZSA9IGJpdGdvLnZlcmlmeVJlc3BvbnNlKHtcbiAgICB1cmw6IHJlcS51cmwsXG4gICAgaG1hYzogcmVzcG9uc2UuaGVhZGVyLmhtYWMsXG4gICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgIHRleHQ6IHJlc3BvbnNlLnRleHQsXG4gICAgdGltZXN0YW1wOiByZXNwb25zZS5oZWFkZXIudGltZXN0YW1wLFxuICAgIHRva2VuOiByZXEuYXV0aGVudGljYXRpb25Ub2tlbixcbiAgICBtZXRob2QsXG4gIH0pO1xuXG4gIGlmICghdmVyaWZpY2F0aW9uUmVzcG9uc2UuaXNWYWxpZCkge1xuICAgIC8vIGNhbGN1bGF0ZSB0aGUgSE1BQ1xuICAgIGNvbnN0IHJlY2VpdmVkSG1hYyA9IHJlc3BvbnNlLmhlYWRlci5obWFjO1xuICAgIGNvbnN0IGV4cGVjdGVkSG1hYyA9IHZlcmlmaWNhdGlvblJlc3BvbnNlLmV4cGVjdGVkSG1hYztcbiAgICBjb25zdCBzaWduYXR1cmVTdWJqZWN0ID0gdmVyaWZpY2F0aW9uUmVzcG9uc2Uuc2lnbmF0dXJlU3ViamVjdDtcbiAgICAvLyBMb2cgb25seSB0aGUgZmlyc3QgMTAgY2hhcmFjdGVycyBvZiB0aGUgdG9rZW4gdG8gZW5zdXJlIHRoZSBmdWxsIHRva2VuIGlzbid0IGxvZ2dlZC5cbiAgICBjb25zdCBwYXJ0aWFsQml0Z29Ub2tlbiA9IHRva2VuID8gdG9rZW4uc3Vic3RyaW5nKDAsIDEwKSA6ICcnO1xuICAgIGNvbnN0IGVycm9yRGV0YWlscyA9IHtcbiAgICAgIGV4cGVjdGVkSG1hYyxcbiAgICAgIHJlY2VpdmVkSG1hYyxcbiAgICAgIGhtYWNJbnB1dDogc2lnbmF0dXJlU3ViamVjdCxcbiAgICAgIHJlcXVlc3RUb2tlbjogcmVxLmF1dGhlbnRpY2F0aW9uVG9rZW4sXG4gICAgICBiaXRnb1Rva2VuOiBwYXJ0aWFsQml0Z29Ub2tlbixcbiAgICB9O1xuICAgIGRlYnVnKCdJbnZhbGlkIHJlc3BvbnNlIEhNQUM6ICVPJywgZXJyb3JEZXRhaWxzKTtcbiAgICB0aHJvdyBuZXcgQXBpUmVzcG9uc2VFcnJvcignaW52YWxpZCByZXNwb25zZSBITUFDLCBwb3NzaWJsZSBtYW4taW4tdGhlLW1pZGRsZS1hdHRhY2snLCA1MTEsIGVycm9yRGV0YWlscyk7XG4gIH1cblxuICBpZiAoYml0Z28uZ2V0QXV0aFZlcnNpb24oKSA9PT0gMyAmJiAhdmVyaWZpY2F0aW9uUmVzcG9uc2UuaXNJblJlc3BvbnNlVmFsaWRpdHlXaW5kb3cpIHtcbiAgICBjb25zdCBlcnJvckRldGFpbHMgPSB7XG4gICAgICB0aW1lc3RhbXA6IHJlc3BvbnNlLmhlYWRlci50aW1lc3RhbXAsXG4gICAgICB2ZXJpZmljYXRpb25UaW1lOiB2ZXJpZmljYXRpb25SZXNwb25zZS52ZXJpZmljYXRpb25UaW1lLFxuICAgIH07XG4gICAgZGVidWcoJ1NlcnZlciByZXNwb25zZSBvdXRzaWRlIHJlc3BvbnNlIHZhbGlkaXR5IHRpbWUgd2luZG93OiAlTycsIGVycm9yRGV0YWlscyk7XG4gICAgdGhyb3cgbmV3IEFwaVJlc3BvbnNlRXJyb3IoXG4gICAgICAnc2VydmVyIHJlc3BvbnNlIG91dHNpZGUgcmVzcG9uc2UgdmFsaWRpdHkgdGltZSB3aW5kb3csIHBvc3NpYmxlIG1hbi1pbi10aGUtbWlkZGxlLWF0dGFjaycsXG4gICAgICA1MTEsXG4gICAgICBlcnJvckRldGFpbHNcbiAgICApO1xuICB9XG4gIHJldHVybiByZXNwb25zZTtcbn1cbiJdfQ==
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTZCQSx3Q0FXQztBQU9ELG9EQWVDO0FBdUJELGtEQUtDO0FBdUNELG9EQXNEQztBQU1ELHNEQXdCQztBQU1ELHdDQXVEQztBQWxSRDs7R0FFRztBQUNILGtEQUEwQjtBQUMxQiw4Q0FBc0I7QUFDdEIsb0RBQXVCO0FBQ3ZCLGtFQUF5QztBQUN6Qyw0REFBb0M7QUFDcEMsOENBQXlCO0FBQ3pCLDhEQUFzQztBQUV0QyxtREFBc0U7QUFLdEUsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFLLEVBQUMsV0FBVyxDQUFDLENBQUM7QUFFakM7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsR0FBaUM7SUFFakMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUN4QixNQUFNLENBQUMsYUFBc0I7WUFDM0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUNiLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBcUIsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQy9FLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDdEMsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxhQUFzQjtJQUV0QixPQUFPLFVBQVUsR0FBd0I7UUFDdkMsSUFBSSxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNwRSxPQUFPO1lBQ0wsMEZBQTBGO1lBQzFGLGdIQUFnSDtZQUNoSCxDQUFDLGFBQWEsSUFBSSxHQUFHLENBQUMs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MEZBQTBGLEVBQzFGLEdBQUcsRUFDSCxZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBlb2wgZnJvbSAnZW9sJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc2FuaXRpemVIdG1sIGZyb20gJ3Nhbml0aXplLWh0bWwnO1xuaW1wb3J0IHN1cGVyYWdlbnQgZnJvbSAnc3VwZXJhZ2VudCc7XG5pbXBvcnQgdXJsTGliIGZyb20gJ3VybCc7XG5pbXBvcnQgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuXG5pbXBvcnQgeyBBcGlSZXNwb25zZUVycm9yLCBCaXRHb1JlcXVlc3QgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB7IEF1dGhWZXJzaW9uLCBWZXJpZnlSZXNwb25zZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnLi9iaXRnb0FQSSc7XG5cbmNvbnN0IGRlYnVnID0gRGVidWcoJ2JpdGdvOmFwaScpO1xuXG4vKipcbiAqIEFkZCB0aGUgYml0Z28tc3BlY2lmaWMgcmVzdWx0KCkgZnVuY3Rpb24gb24gYSBzdXBlcmFnZW50IHJlcXVlc3QuXG4gKlxuICogSWYgdGhlIHNlcnZlciByZXNwb25zZSBpcyBzdWNjZXNzZnVsLCB0aGUgYHJlc3VsdCgpYCBmdW5jdGlvbiB3aWxsIHJldHVybiBlaXRoZXIgdGhlIGVudGlyZSByZXNwb25zZSBib2R5LFxuICogb3IgdGhlIGZpZWxkIGZyb20gdGhlIHJlc3BvbnNlIGJvZHkgc3BlY2lmaWVkIGJ5IHRoZSBgb3B0aW9uYWxGaWVsZGAgcGFyYW1ldGVyIGlmIGl0IGlzIHByb3ZpZGVkLlxuICpcbiAqIElmIHRoZSBzZXJ2ZXIgcmVzcG9uc2Ugd2l0aCBhbiBlcnJvciwgYHJlc3VsdCgpYCB3aWxsIGhhbmRsZSBIVFRQIGVycm9ycyBhcHByb3ByaWF0ZWx5IGJ5XG4gKiByZXRocm93aW5nIHRoZW0gYXMgYW4gYEFwaVJlc3BvbnNlRXJyb3JgIGlmIHBvc3NpYmxlLCBhbmQgb3RoZXJ3aXNlIHJldGhyb3dpbmcgdGhlIHVuZGVybHlpbmcgcmVzcG9uc2UgZXJyb3IuXG4gKlxuICogQHBhcmFtIHJlcVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9CaXRnb1JlcXVlc3Q8UmVzcG9uc2VSZXN1bHRUeXBlID0gYW55PihcbiAgcmVxOiBzdXBlcmFnZW50LlN1cGVyQWdlbnRSZXF1ZXN0XG4pOiBCaXRHb1JlcXVlc3Q8UmVzcG9uc2VSZXN1bHRUeXBlPiB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHJlcSwge1xuICAgIHJlc3VsdChvcHRpb25hbEZpZWxkPzogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gcmVxLnRoZW4oXG4gICAgICAgIChyZXNwb25zZSkgPT4gaGFuZGxlUmVzcG9uc2VSZXN1bHQ8UmVzcG9uc2VSZXN1bHRUeXBlPihvcHRpb25hbEZpZWxkKShyZXNwb25zZSksXG4gICAgICAgIChlcnJvcikgPT4gaGFuZGxlUmVzcG9uc2VFcnJvcihlcnJvcilcbiAgICAgICk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgZnVuY3Rpb24gd2hpY2ggZXh0cmFjdHMgdGhlIHNwZWNpZmllZCByZXNwb25zZSBib2R5IHByb3BlcnR5IGZyb20gdGhlIHJlc3BvbnNlIGlmIHN1Y2Nlc3NmdWwsXG4gKiBvdGhlcndpc2UgdGhyb3cgYW4gYEFwaUVycm9yUmVzcG9uc2VgIHBhcnNlZCBmcm9tIHRoZSByZXNwb25zZSBib2R5LlxuICogQHBhcmFtIG9wdGlvbmFsRmllbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVJlc3BvbnNlUmVzdWx0PFJlc3BvbnNlUmVzdWx0VHlwZT4oXG4gIG9wdGlvbmFsRmllbGQ/OiBzdHJpbmdcbik6IChyZXM6IHN1cGVyYWdlbnQuUmVzcG9uc2UpID0+IFJlc3BvbnNlUmVzdWx0VHlwZSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVzOiBzdXBlcmFnZW50LlJlc3BvbnNlKTogUmVzcG9uc2VSZXN1bHRUeXBlIHtcbiAgICBpZiAoXy5pc051bWJlcihyZXMuc3RhdHVzKSAmJiByZXMuc3RhdHVzID49IDIwMCAmJiByZXMuc3RhdHVzIDwgMzAwKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAvLyBJZiB0aGVyZSdzIGFuIG9wdGlvbmFsIGZpZWxkIGFuZCB0aGUgYm9keSBpcyBub24tbnVsbGlzaCB3aXRoIHRoYXQgcHJvcGVydHksIHJldHVybiBpdDtcbiAgICAgICAgLy8gb3RoZXJ3aXNlIHJldHVybiB0aGUgYm9keSBpZiBhdmFpbGFibGU7IGlmIG5vdCwgcmV0dXJuIHRoZSB0ZXh0OyBhbmQgZmluYWxseSBmYWxsYmFjayB0byB0aGUgZW50aXJlIHJlc3BvbnNlLlxuICAgICAgICAob3B0aW9uYWxGaWVsZCAmJiByZXMuYm9keSAmJiByZXMuYm9keVtvcHRpb25hbEZpZWxkXSAhPT0gdW5kZWZpbmVkID8gcmVzLmJvZHlbb3B0aW9uYWxGaWVsZF0gOiByZXMuYm9keSkgPz9cbiAgICAgICAgcmVzLnRleHQgPz9cbiAgICAgICAgcmVzXG4gICAgICApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJGcm9tUmVzcG9uc2UocmVzKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IHJlbGV2YW50IGluZm9ybWF0aW9uIGZyb20gYSBzdWNjZXNzZnVsIHJlc3BvbnNlICh0aGF0IGlzLCBhIHJlc3BvbnNlIHdpdGggYW4gSFRUUCBzdGF0dXMgY29kZVxuICogYmV0d2VlbiAyMDAgYW5kIDI5OSksIGJ1dCB3aGljaCByZXN1bHRlZCBpbiBhbiBhcHBsaWNhdGlvbiBzcGVjaWZpYyBlcnJvciBhbmQgdXNlIGl0IHRvIGNvbnN0cnVjdCBhbmRcbiAqIHRocm93IGFuIGBBcGlFcnJvclJlc3BvbnNlYC5cbiAqXG4gKiBAcGFyYW0gcmVzXG4gKi9cbmZ1bmN0aW9uIGVyckZyb21SZXNwb25zZTxSZXNwb25zZUJvZHlUeXBlPihyZXM6IHN1cGVyYWdlbnQuUmVzcG9uc2UpOiBBcGlSZXNwb25zZUVycm9yIHtcbiAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZVJlc3BvbnNlRXJyb3JTdHJpbmcocmVzKTtcbiAgY29uc3Qgc3RhdHVzID0gcmVzLnN0YXR1cztcbiAgY29uc3QgcmVzdWx0ID0gcmVzLmJvZHkgYXMgUmVzcG9uc2VCb2R5VHlwZTtcbiAgY29uc3QgaW52YWxpZFRva2VuID0gXy5oYXMocmVzLmhlYWRlciwgJ3gtYXV0aC1yZXF1aXJlZCcpICYmIHJlcy5oZWFkZXJbJ3gtYXV0aC1yZXF1aXJlZCddID09PSAndHJ1ZSc7XG4gIGNvbnN0IG5lZWRzT3RwID0gcmVzLmJvZHk/Lm5lZWRzT1RQICE9PSB1bmRlZmluZWQ7XG4gIHJldHVybiBuZXcgQXBpUmVzcG9uc2VFcnJvcihtZXNzYWdlLCBzdGF0dXMsIHJlc3VsdCwgaW52YWxpZFRva2VuLCBuZWVkc090cCk7XG59XG5cbi8qKlxuICogSGFuZGxlIGFuIGVycm9yIG9yIGFuIGVycm9yIGNvbnRhaW5pbmcgYW4gSFRUUCByZXNwb25zZSBhbmQgdXNlIGl0IHRvIHRocm93IGEgd2VsbC1mb3JtZWQgZXJyb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVSZXNwb25zZUVycm9yKGU6IEVycm9yICYgeyByZXNwb25zZT86IHN1cGVyYWdlbnQuUmVzcG9uc2UgfSk6IG5ldmVyIHtcbiAgaWYgKGUucmVzcG9uc2UpIHtcbiAgICB0aHJvdyBlcnJGcm9tUmVzcG9uc2UoZS5yZXNwb25zZSk7XG4gIH1cbiAgdGhyb3cgZTtcbn1cblxuLyoqXG4gKiBUaGVyZSBhcmUgbWFueSB3YXlzIGEgcmVxdWVzdCBjYW4gZmFpbCwgYW5kIG1heSB3YXlzIGluZm9ybWF0aW9uIG9uIHRoYXQgZmFpbHVyZSBjYW4gYmVcbiAqIGNvbW11bmljYXRlZCB0byB0aGUgY2xpZW50LiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGhhbmRsZSB0aG9zZSBjYXNlcyBhbmQgY3JlYXRlIGEgc2FuZSBlcnJvciBzdHJpbmdcbiAqIEBwYXJhbSByZXMgUmVzcG9uc2UgZnJvbSBhbiBIVFRQIHJlcXVlc3RcbiAqL1xuZnVuY3Rpb24gY3JlYXRlUmVzcG9uc2VFcnJvclN0cmluZyhyZXM6IHN1cGVyYWdlbnQuUmVzcG9uc2UpOiBzdHJpbmcge1xuICBsZXQgZXJyU3RyaW5nID0gcmVzLnN0YXR1cy50b1N0cmluZygpOyAvLyBhdCB0aGUgdmVyeSBsZWFzdCB3ZSdsbCBoYXZlIHRoZSBzdGF0dXMgY29kZVxuICBpZiAocmVzLmJvZHk/LmVycm9yKSB7XG4gICAgLy8gdGhpcyBpcyB0aGUgY2FzZSB3ZSBob3BlIGZvciwgd2hlcmUgdGhlIHNlcnZlciBnaXZlcyB1cyBhIG5pY2UgZXJyb3IgZnJvbSB0aGUgSlNPTiBib2R5XG4gICAgZXJyU3RyaW5nID0gcmVzLmJvZHkuZXJyb3I7XG4gIH0gZWxzZSBpZiAocmVzLnRleHQpIHtcbiAgICAvLyBpZiB0aGUgcmVzcG9uc2UgY2FtZSBiYWNrIGFzIHRleHQsIHdlIHRyeSB0byBwYXJzZSBpdCBhcyBIVE1MIGFuZCByZW1vdmUgYWxsIHRhZ3MsIGxlYXZpbmcgdXNcbiAgICAvLyBqdXN0IHRoZSBiYXJlIHRleHQsIHdoaWNoIHdlIHRoZW4gdHJpbSBvZiBleGNlc3NpdmUgbmV3bGluZXMgYW5kIGxpbWl0IHRvIGEgY2VydGFpbiBsZW5ndGhcbiAgICB0cnkge1xuICAgICAgbGV0IHNhbml0aXplZFRleHQgPSBzYW5pdGl6ZUh0bWwocmVzLnRleHQsIHsgYWxsb3dlZFRhZ3M6IFtdIH0pO1xuICAgICAgc2FuaXRpemVkVGV4dCA9IHNhbml0aXplZFRleHQudHJpbSgpO1xuICAgICAgc2FuaXRpemVkVGV4dCA9IGVvbC5sZihzYW5pdGl6ZWRUZXh0KTsgLy8gdXNlICdcXG4nIGZvciBhbGwgbmV3bGluZXNcbiAgICAgIHNhbml0aXplZFRleHQgPSBfLnJlcGxhY2Uoc2FuaXRpemVkVGV4dCwgL1xcblsgfFxcdF17MSx9XFxuL2csICdcXG5cXG4nKTsgLy8gcmVtb3ZlIHRoZSBzcGFjZXMvdGFicyBiZXR3ZWVuIG5ld2xpbmVzXG4gICAgICBzYW5pdGl6ZWRUZXh0ID0gXy5yZXBsYWNlKHNhbml0aXplZFRleHQsIC9bXFxuXXszLH0vZywgJ1xcblxcbicpOyAvLyBoYXZlIGF0IG1vc3QgMiBjb25zZWN1dGl2ZSBuZXdsaW5lc1xuICAgICAgc2FuaXRpemVkVGV4dCA9IHNhbml0aXplZFRleHQuc3Vic3RyaW5nKDAsIDUwMDApOyAvLyBwcmV2ZW50IG1lc3NhZ2UgZnJvbSBnZXR0aW5nIHRvbyBsYXJnZVxuICAgICAgZXJyU3RyaW5nID0gZXJyU3RyaW5nICsgJ1xcbicgKyBzYW5pdGl6ZWRUZXh0OyAvLyBhZGQgaXQgdG8gb3VyIGV4aXN0aW5nIGVyclN0cmluZyAoYXQgdGhpcyBwb2ludCB0aGUgbW9yZSBpbmZvIHRoZSBiZXR0ZXIhKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmcsIHRoZSByZXNwb25zZSdzIEhUTUwgd2FzIHRvbyB3YWNreSB0byBiZSBwYXJzZWQgY2xlYW5seVxuICAgICAgZGVidWcoJ2dvdCBlcnJvciB3aXRoIG1lc3NhZ2UgXCIlc1wiIHdoaWxlIGNyZWF0aW5nIHJlc3BvbnNlIGVycm9yIHN0cmluZyBmcm9tIHJlc3BvbnNlOiAlcycsIGUubWVzc2FnZSwgcmVzLnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJTdHJpbmc7XG59XG5cbi8qKlxuICogU2VyaWFsaXplIHJlcXVlc3QgZGF0YSBiYXNlZCBvbiB0aGUgcmVxdWVzdCBjb250ZW50IHR5cGUuXG4gKiBJZiBkYXRhIGlzIGFscmVhZHkgYSBzdHJpbmcsIHJldHVybnMgaXQgYXMtaXMgdG8gcHJlc2VydmUgZXhhY3QgYnl0ZXMgZm9yIEhNQUMuXG4gKiBJZiBkYXRhIGlzIGEgQnVmZmVyLCBjb252ZXJ0cyB0byBVVEYtOCBzdHJpbmcuXG4gKiBJZiBkYXRhIGlzIGFuIG9iamVjdCwgc2VyaWFsaXplcyBpdCBiYXNlZCBvbiBDb250ZW50LVR5cGUuXG4gKiBAcGFyYW0gcmVxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVSZXF1ZXN0RGF0YShyZXE6IHN1cGVyYWdlbnQuUmVxdWVzdCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRhdGE6IHN0cmluZyB8IEJ1ZmZlciB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0gKHJlcSBhcyBhbnkpLl9kYXRhO1xuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGlmIChCdWZmZXIuaXNCdWZmZXIoZGF0YSkpIHtcbiAgICAvLyBDb252ZXJ0IEJ1ZmZlciB0byBVVEYtOCBzdHJpbmcgYW5kIG11dGF0ZSBfZGF0YSB0byBlbnN1cmUgY29uc2lzdGVuY3kuXG4gICAgLy8gVGhpcyBpcyBjcml0aWNhbDogaWYgX2RhdGEgc3RheXMgYXMgYSBCdWZmZXIsIHN1cGVyYWdlbnQgd2lsbCBzZXJpYWxpemUgaXRcbiAgICAvLyBhcyBKU09OICh7XCJ0eXBlXCI6XCJCdWZmZXJcIixcImRhdGFcIjpbLi4uXX0pLCB3aGljaCB3b24ndCBtYXRjaCB0aGUgSE1BQy5cbiAgICAvLyBCeSBtdXRhdGluZyB0byBzdHJpbmcsIHN1cGVyYWdlbnQgc2VuZHMgdGhlIGV4YWN0IGJ5dGVzIHdlIGhhc2guXG4gICAgLy8gVGhpcyBpcyBzYWZlIGZvciByZXRyaWVzOiBjYWxsaW5nIGFnYWluIHdpdGggYSBzdHJpbmcgd2lsbCBoaXQgdGhlIGVhcmx5IHJldHVybiBhYm92ZS5cbiAgICBjb25zdCBzdHJpbmdEYXRhID0gZGF0YS50b1N0cmluZygndXRmOCcpO1xuICAgIChyZXEgYXMgYW55KS5fZGF0YSA9IHN0cmluZ0RhdGE7XG4gICAgcmV0dXJuIHN0cmluZ0RhdGE7XG4gIH1cblxuICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gU2VyaWFsaXplIG9iamVjdCBkYXRhIGJhc2VkIG9uIENvbnRlbnQtVHlwZVxuICBsZXQgY29udGVudFR5cGUgPSByZXEuZ2V0KCdDb250ZW50LVR5cGUnKTtcbiAgLy8gUGFyc2Ugb3V0IGp1c3QgdGhlIGNvbnRlbnQgdHlwZSBmcm9tIHRoZSBoZWFkZXIgKGlnbm9yZSB0aGUgY2hhcnNldClcbiAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZS5zcGxpdCgnOycpWzBdLnRyaW0oKTtcbiAgfVxuICBsZXQgc2VyaWFsaXplOiAoKGJvZHk6IHVua25vd24pID0+IHN0cmluZykgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHNlcmlhbGl6ZXJzID0gc3VwZXJhZ2VudC5zZXJpYWxpemUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmIChjb250ZW50VHlwZSkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2VyaWFsaXplcnMsIGNvbnRlbnRUeXBlKSkge1xuICAgICAgY29uc3QgY2FuZGlkYXRlID0gc2VyaWFsaXplcnNbY29udGVudFR5cGVdO1xuICAgICAgaWYgKHR5cGVvZiBjYW5kaWRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgc2VyaWFsaXplID0gY2FuZGlkYXRlIGFzIChib2R5OiB1bmtub3duKSA9PiBzdHJpbmc7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICgvW1xcLytdanNvblxcYi8udGVzdChjb250ZW50VHlwZSkpIHtcbiAgICAgIC8vIEZhbGwgYmFjayB0byB0aGUgYnVpbHQtaW4gSlNPTiBzZXJpYWxpemVyIGZvciBKU09OLWxpa2UgY29udGVudCB0eXBlc1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzZXJpYWxpemVycywgJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgICBjb25zdCBqc29uU2VyaWFsaXplciA9IHNlcmlhbGl6ZXJzWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgICAgIGlmICh0eXBlb2YganNvblNlcmlhbGl6ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBzZXJpYWxpemUgPSBqc29uU2VyaWFsaXplciBhcyAoYm9keTogdW5rbm93bikgPT4gc3RyaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHNlcmlhbGl6ZSkge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzZXJpYWxpemUoZGF0YSk7XG4gICAgKHJlcSBhcyBhbnkpLl9kYXRhID0gc2VyaWFsaXplZDtcbiAgICByZXR1cm4gc2VyaWFsaXplZDtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogU2V0IHRoZSBzdXBlcmFnZW50IHF1ZXJ5IHN0cmluZyBjb3JyZWN0bHkgZm9yIGJyb3dzZXJzIG9yIG5vZGUuXG4gKiBAcGFyYW0gcmVxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZXF1ZXN0UXVlcnlTdHJpbmcocmVxOiBzdXBlcmFnZW50LlN1cGVyQWdlbnRSZXF1ZXN0KTogdm9pZCB7XG4gIGNvbnN0IHVybERldGFpbHMgPSB1cmxMaWIucGFyc2UocmVxLnVybCk7XG5cbiAgbGV0IHF1ZXJ5U3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHF1ZXJ5OiBzdHJpbmdbXSA9IChyZXEgYXMgYW55KS5fcXVlcnk7XG4gIGNvbnN0IHFzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0gKHJlcSBhcyBhbnkpLnFzO1xuICBpZiAocXVlcnkgJiYgcXVlcnkubGVuZ3RoID4gMCkge1xuICAgIC8vIGJyb3dzZXIgdmVyc2lvblxuICAgIHF1ZXJ5U3RyaW5nID0gcXVlcnkuam9pbignJicpO1xuICAgIChyZXEgYXMgYW55KS5fcXVlcnkgPSBbXTtcbiAgfSBlbHNlIGlmIChxcykge1xuICAgIC8vIG5vZGUgdmVyc2lvblxuICAgIHF1ZXJ5U3RyaW5nID0gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHFzKTtcbiAgICAocmVxIGFzIGFueSkucXMgPSBudWxsO1xuICB9XG5cbiAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgaWYgKHVybERldGFpbHMuc2VhcmNoKSB7XG4gICAgICB1cmxEZXRhaWxzLnNlYXJjaCArPSAnJicgKyBxdWVyeVN0cmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsRGV0YWlscy5zZWFyY2ggPSAnPycgKyBxdWVyeVN0cmluZztcbiAgICB9XG4gICAgcmVxLnVybCA9IHVybExpYi5mb3JtYXQodXJsRGV0YWlscyk7XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZnkgdGhhdCB0aGUgcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyIGlzIHNpZ25lZCBjb3JyZWN0bHkuXG4gKiBSaWdodCBub3csIGl0IGlzIHZlcnkgcGVybWlzc2l2ZSB3aXRoIHRoZSB0aW1lc3RhbXAgdmFyaWFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlSZXNwb25zZShcbiAgYml0Z286IEJpdEdvQVBJLFxuICB0b2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBtZXRob2Q6IFZlcmlmeVJlc3BvbnNlT3B0aW9uc1snbWV0aG9kJ10sXG4gIHJlcTogc3VwZXJhZ2VudC5TdXBlckFnZW50UmVxdWVzdCxcbiAgcmVzcG9uc2U6IHN1cGVyYWdlbnQuUmVzcG9uc2UsXG4gIGF1dGhWZXJzaW9uOiBBdXRoVmVyc2lvblxuKTogc3VwZXJhZ2VudC5SZXNwb25zZSB7XG4gIC8vIHdlIGNhbid0IHZlcmlmeSB0aGUgcmVzcG9uc2UgaWYgd2UncmUgbm90IGF1dGhlbnRpY2F0ZWRcbiAgaWYgKCFyZXEuaXNWMkF1dGhlbnRpY2F0ZWQgfHwgIXJlcS5hdXRoZW50aWNhdGlvblRva2VuKSB7XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzcG9uc2UgPSBiaXRnby52ZXJpZnlSZXNwb25zZSh7XG4gICAgdXJsOiByZXEudXJsLFxuICAgIGhtYWM6IHJlc3BvbnNlLmhlYWRlci5obWFjLFxuICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICB0ZXh0OiByZXNwb25zZS50ZXh0LFxuICAgIHRpbWVzdGFtcDogcmVzcG9uc2UuaGVhZGVyLnRpbWVzdGFtcCxcbiAgICB0b2tlbjogcmVxLmF1dGhlbnRpY2F0aW9uVG9rZW4sXG4gICAgbWV0aG9kLFxuICAgIGF1dGhWZXJzaW9uLFxuICB9KTtcblxuICBpZiAoIXZlcmlmaWNhdGlvblJlc3BvbnNlLmlzVmFsaWQpIHtcbiAgICAvLyBjYWxjdWxhdGUgdGhlIEhNQUNcbiAgICBjb25zdCByZWNlaXZlZEhtYWMgPSByZXNwb25zZS5oZWFkZXIuaG1hYztcbiAgICBjb25zdCBleHBlY3RlZEhtYWMgPSB2ZXJpZmljYXRpb25SZXNwb25zZS5leHBlY3RlZEhtYWM7XG4gICAgY29uc3Qgc2lnbmF0dXJlU3ViamVjdCA9IHZlcmlmaWNhdGlvblJlc3BvbnNlLnNpZ25hdHVyZVN1YmplY3Q7XG4gICAgLy8gTG9nIG9ubHkgdGhlIGZpcnN0IDEwIGNoYXJhY3RlcnMgb2YgdGhlIHRva2VuIHRvIGVuc3VyZSB0aGUgZnVsbCB0b2tlbiBpc24ndCBsb2dnZWQuXG4gICAgY29uc3QgcGFydGlhbEJpdGdvVG9rZW4gPSB0b2tlbiA/IHRva2VuLnN1YnN0cmluZygwLCAxMCkgOiAnJztcbiAgICBjb25zdCBlcnJvckRldGFpbHMgPSB7XG4gICAgICBleHBlY3RlZEhtYWMsXG4gICAgICByZWNlaXZlZEhtYWMsXG4gICAgICBobWFjSW5wdXQ6IHNpZ25hdHVyZVN1YmplY3QsXG4gICAgICByZXF1ZXN0VG9rZW46IHJlcS5hdXRoZW50aWNhdGlvblRva2VuLFxuICAgICAgYml0Z29Ub2tlbjogcGFydGlhbEJpdGdvVG9rZW4sXG4gICAgfTtcbiAgICBkZWJ1ZygnSW52YWxpZCByZXNwb25zZSBITUFDOiAlTycsIGVycm9yRGV0YWlscyk7XG4gICAgdGhyb3cgbmV3IEFwaVJlc3BvbnNlRXJyb3IoJ2ludmFsaWQgcmVzcG9uc2UgSE1BQywgcG9zc2libGUgbWFuLWluLXRoZS1taWRkbGUtYXR0YWNrJywgNTExLCBlcnJvckRldGFpbHMpO1xuICB9XG5cbiAgaWYgKGJpdGdvLmdldEF1dGhWZXJzaW9uKCkgPT09IDMgJiYgIXZlcmlmaWNhdGlvblJlc3BvbnNlLmlzSW5SZXNwb25zZVZhbGlkaXR5V2luZG93KSB7XG4gICAgY29uc3QgZXJyb3JEZXRhaWxzID0ge1xuICAgICAgdGltZXN0YW1wOiByZXNwb25zZS5oZWFkZXIudGltZXN0YW1wLFxuICAgICAgdmVyaWZpY2F0aW9uVGltZTogdmVyaWZpY2F0aW9uUmVzcG9uc2UudmVyaWZpY2F0aW9uVGltZSxcbiAgICB9O1xuICAgIGRlYnVnKCdTZXJ2ZXIgcmVzcG9uc2Ugb3V0c2lkZSByZXNwb25zZSB2YWxpZGl0eSB0aW1lIHdpbmRvdzogJU8nLCBlcnJvckRldGFpbHMpO1xuICAgIHRocm93IG5ldyBBcGlSZXNwb25zZUVycm9yKFxuICAgICAgJ3NlcnZlciByZXNwb25zZSBvdXRzaWRlIHJlc3BvbnNlIHZhbGlkaXR5IHRpbWUgd2luZG93LCBwb3NzaWJsZSBtYW4taW4tdGhlLW1pZGRsZS1hdHRhY2snLFxuICAgICAgNTExLFxuICAgICAgZXJyb3JEZXRhaWxzXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVzcG9uc2U7XG59XG4iXX0=
|
package/dist/src/bitgoAPI.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { BaseCoin, BitGoBase, BitGoRequest, CoinConstructor, DecryptOptions, EcdhDerivedKeypair, EncryptOptions, EnvironmentName, GetSharingKeyOptions, GetSigningKeyApi, IRequestTracer } from '@bitgo-beta/sdk-core';
|
|
1
|
+
import { BaseCoin, BitGoBase, BitGoRequest, CoinConstructor, DecryptKeysOptions, DecryptOptions, EcdhDerivedKeypair, EncryptOptions, EnvironmentName, GetSharingKeyOptions, GetSigningKeyApi, IRequestTracer } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { ECPairInterface } from '@bitgo-beta/utxo-lib';
|
|
3
3
|
import * as superagent from 'superagent';
|
|
4
|
-
import { AccessTokenOptions, AddAccessTokenOptions, AddAccessTokenResponse, AuthenticateOptions, AuthenticateWithAuthCodeOptions, BitGoAPIOptions, BitGoJson, BitGoSimulateWebhookOptions, CalculateHmacSubjectOptions, CalculateRequestHeadersOptions, CalculateRequestHmacOptions, ChangePasswordOptions, DeprecatedVerifyAddressOptions, EstimateFeeOptions, ExtendTokenOptions, GetEcdhSecretOptions, GetUserOptions, ListWebhookNotificationsOptions, LoginResponse, PingOptions, ProcessedAuthenticationOptions, ReconstitutedSecret, ReconstituteSecretOptions, RegisterPushTokenOptions, RemoveAccessTokenOptions, RequestHeaders, SplitSecret, SplitSecretOptions, TokenIssuance, TokenIssuanceResponse, UnlockOptions, User, VerifyPasswordOptions, VerifyPushTokenOptions, VerifyResponseInfo, VerifyResponseOptions, VerifyShardsOptions, WebhookOptions } from './types';
|
|
5
|
-
declare const patchedRequestMethods: readonly ["get", "post", "put", "del", "patch"];
|
|
4
|
+
import { AccessTokenOptions, AddAccessTokenOptions, AddAccessTokenResponse, AuthenticateOptions, AuthenticateWithAuthCodeOptions, BitGoAPIOptions, BitGoJson, BitGoSimulateWebhookOptions, CalculateHmacSubjectOptions, CalculateRequestHeadersOptions, CalculateRequestHmacOptions, ChangePasswordOptions, Constants, DeprecatedVerifyAddressOptions, EstimateFeeOptions, ExtendTokenOptions, GetEcdhSecretOptions, GetUserOptions, ListWebhookNotificationsOptions, LoginResponse, PingOptions, ProcessedAuthenticationOptions, ReconstitutedSecret, ReconstituteSecretOptions, RegisterPushTokenOptions, RemoveAccessTokenOptions, RequestHeaders, RequestMethods, SplitSecret, SplitSecretOptions, TokenIssuance, TokenIssuanceResponse, UnlockOptions, User, VerifyPasswordOptions, VerifyPushTokenOptions, VerifyResponseInfo, VerifyResponseOptions, VerifyShardsOptions, WebhookOptions } from './types';
|
|
6
5
|
export declare class BitGoAPI implements BitGoBase {
|
|
7
6
|
protected _keychains: any;
|
|
8
7
|
protected _wallets: any;
|
|
@@ -17,6 +16,7 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
17
16
|
protected readonly _baseUrl: string;
|
|
18
17
|
protected readonly _baseApiUrl: string;
|
|
19
18
|
protected readonly _baseApiUrlV2: string;
|
|
19
|
+
protected readonly _baseApiUrlV3: string;
|
|
20
20
|
protected readonly _env: EnvironmentName;
|
|
21
21
|
protected readonly _authVersion: Exclude<BitGoAPIOptions['authVersion'], undefined>;
|
|
22
22
|
protected _hmacVerification: boolean;
|
|
@@ -33,13 +33,22 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
33
33
|
protected readonly _clientSecret?: string;
|
|
34
34
|
protected _validate: boolean;
|
|
35
35
|
readonly cookiesPropagationEnabled: boolean;
|
|
36
|
+
private _customProxyAgent?;
|
|
37
|
+
private _requestIdPrefix?;
|
|
38
|
+
private getAdditionalHeadersCb?;
|
|
36
39
|
constructor(params?: BitGoAPIOptions);
|
|
40
|
+
/**
|
|
41
|
+
* Initialize client constants if provided.
|
|
42
|
+
* @param clientConstants - The client constants from params
|
|
43
|
+
* @private
|
|
44
|
+
*/
|
|
45
|
+
private _initializeClientConstants;
|
|
37
46
|
/**
|
|
38
47
|
* Get a superagent request for specified http method and URL configured to the SDK configuration
|
|
39
48
|
* @param method - http method for the new request
|
|
40
49
|
* @param url - URL for the new request
|
|
41
50
|
*/
|
|
42
|
-
protected getAgentRequest(method:
|
|
51
|
+
protected getAgentRequest(method: RequestMethods, url: string): superagent.SuperAgentRequest;
|
|
43
52
|
/**
|
|
44
53
|
* Create a basecoin object
|
|
45
54
|
* @param name
|
|
@@ -64,6 +73,7 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
64
73
|
put(url: string): BitGoRequest;
|
|
65
74
|
del(url: string): BitGoRequest;
|
|
66
75
|
patch(url: string): BitGoRequest;
|
|
76
|
+
options(url: string): BitGoRequest;
|
|
67
77
|
/**
|
|
68
78
|
* Calculate the HMAC for the given key and message
|
|
69
79
|
* @param key {String} - the key to use for the HMAC
|
|
@@ -78,28 +88,28 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
78
88
|
* @param timestamp request timestamp from `Date.now()`
|
|
79
89
|
* @param statusCode Only set for HTTP responses, leave blank for requests
|
|
80
90
|
* @param method request method
|
|
81
|
-
* @returns {string}
|
|
91
|
+
* @returns {string | Buffer}
|
|
82
92
|
*/
|
|
83
|
-
calculateHMACSubject
|
|
93
|
+
calculateHMACSubject<T extends string | Buffer = string>(params: CalculateHmacSubjectOptions<T>): T;
|
|
84
94
|
/**
|
|
85
95
|
* Calculate the HMAC for an HTTP request
|
|
86
96
|
*/
|
|
87
|
-
calculateRequestHMAC(
|
|
97
|
+
calculateRequestHMAC(params: CalculateRequestHmacOptions): string;
|
|
88
98
|
/**
|
|
89
99
|
* Calculate request headers with HMAC
|
|
90
100
|
*/
|
|
91
|
-
calculateRequestHeaders(
|
|
101
|
+
calculateRequestHeaders(params: CalculateRequestHeadersOptions): RequestHeaders;
|
|
92
102
|
/**
|
|
93
103
|
* Verify the HMAC for an HTTP response
|
|
94
104
|
*/
|
|
95
|
-
verifyResponse(
|
|
105
|
+
verifyResponse(params: VerifyResponseOptions): VerifyResponseInfo;
|
|
96
106
|
/**
|
|
97
107
|
* Fetch useful constant values from the BitGo server.
|
|
98
108
|
* These values do change infrequently, so they need to be fetched,
|
|
99
109
|
* but are unlikely to change during the lifetime of a BitGo object,
|
|
100
110
|
* so they can safely cached.
|
|
101
111
|
*/
|
|
102
|
-
fetchConstants(): Promise<
|
|
112
|
+
fetchConstants(): Promise<Constants>;
|
|
103
113
|
/**
|
|
104
114
|
* Create a url for calling BitGo platform APIs
|
|
105
115
|
* @param path
|
|
@@ -131,6 +141,14 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
131
141
|
* Decrypt an encrypted string locally.
|
|
132
142
|
*/
|
|
133
143
|
decrypt(params: DecryptOptions): string;
|
|
144
|
+
/**
|
|
145
|
+
* Attempt to decrypt multiple wallet keys with the provided passphrase
|
|
146
|
+
* @param {DecryptKeysOptions} params - Parameters object containing wallet key pairs and password
|
|
147
|
+
* @param {Array<{walletId: string, encryptedPrv: string}>} params.walletIdEncryptedKeyPairs - Array of wallet ID and encrypted private key pairs
|
|
148
|
+
* @param {string} params.password - The passphrase to attempt decryption with
|
|
149
|
+
* @returns {string[]} - Array of wallet IDs for which decryption failed
|
|
150
|
+
*/
|
|
151
|
+
decryptKeys(params: DecryptKeysOptions): string[];
|
|
134
152
|
/**
|
|
135
153
|
* Serialize this BitGo object to a JSON object.
|
|
136
154
|
*
|
|
@@ -154,7 +172,12 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
154
172
|
* Process the username, password and otp into an object containing the username and hashed password, ready to
|
|
155
173
|
* send to bitgo for authentication.
|
|
156
174
|
*/
|
|
157
|
-
preprocessAuthenticationParams({ username, password, otp, forceSMS, extensible, trust, }: AuthenticateOptions): ProcessedAuthenticationOptions;
|
|
175
|
+
preprocessAuthenticationParams({ username, password, otp, forceSMS, extensible, trust, forReset2FA, initialHash, fingerprintHash, }: AuthenticateOptions): ProcessedAuthenticationOptions;
|
|
176
|
+
/**
|
|
177
|
+
* Validate the passkey response is in the expected format
|
|
178
|
+
* Should be as is returned from navigator.credentials.get()
|
|
179
|
+
*/
|
|
180
|
+
validatePasskeyResponse(passkeyResponse: string): void;
|
|
158
181
|
/**
|
|
159
182
|
* Synchronous method for activating an access token.
|
|
160
183
|
*/
|
|
@@ -185,6 +208,10 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
185
208
|
* Login to the bitgo platform.
|
|
186
209
|
*/
|
|
187
210
|
authenticate(params: AuthenticateOptions): Promise<LoginResponse | any>;
|
|
211
|
+
/**
|
|
212
|
+
* Login to the bitgo platform with passkey.
|
|
213
|
+
*/
|
|
214
|
+
authenticateWithPasskey(passkey: string, initialHash?: string, fingerprintHash?: string): Promise<LoginResponse | any>;
|
|
188
215
|
/**
|
|
189
216
|
*
|
|
190
217
|
* @param responseBody Response body object
|
|
@@ -567,6 +594,20 @@ export declare class BitGoAPI implements BitGoBase {
|
|
|
567
594
|
* @return {Object} The client constants object
|
|
568
595
|
*/
|
|
569
596
|
getConstants(): any;
|
|
597
|
+
/**
|
|
598
|
+
* Execute an asset request which does not need HMAC validation
|
|
599
|
+
* @param url The URL for the asset request
|
|
600
|
+
* @returns {Promise<any>} The response body
|
|
601
|
+
*/
|
|
602
|
+
protected executeAssetRequest(url: string): Promise<any>;
|
|
603
|
+
/**
|
|
604
|
+
* Process keychain password updates in batches with retry logic
|
|
605
|
+
* @param keychains - The v1 keychains to update
|
|
606
|
+
* @param v2Keychains - The v2 keychains to update
|
|
607
|
+
* @param noOfBatches - Number of batches to split the keychains into
|
|
608
|
+
* @param maxRetries - Maximum number of retries per batch
|
|
609
|
+
* @private
|
|
610
|
+
*/
|
|
611
|
+
private processKeychainPasswordUpdatesInBatches;
|
|
570
612
|
}
|
|
571
|
-
export {};
|
|
572
613
|
//# sourceMappingURL=bitgoAPI.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitgoAPI.d.ts","sourceRoot":"","sources":["../../src/bitgoAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,SAAS,EACT,YAAY,EACZ,eAAe,EAEf,cAAc,EAEd,kBAAkB,EAClB,cAAc,EACd,eAAe,
|
|
1
|
+
{"version":3,"file":"bitgoAPI.d.ts","sourceRoot":"","sources":["../../src/bitgoAPI.ts"],"names":[],"mappings":"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"}
|