@ledgerhq/vault-common 1.72.0 → 1.73.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +6 -0
- package/lib/apiUser/index.d.ts +19 -0
- package/lib/apiUser/index.d.ts.map +1 -0
- package/lib/apiUser/index.js +122 -0
- package/lib/apiUser/index.js.map +1 -0
- package/lib/approveAPIRequest.d.ts +10 -0
- package/lib/approveAPIRequest.d.ts.map +1 -0
- package/lib/approveAPIRequest.js +82 -0
- package/lib/approveAPIRequest.js.map +1 -0
- package/lib/createPledge.d.ts +13 -0
- package/lib/createPledge.d.ts.map +1 -0
- package/lib/createPledge.js +126 -0
- package/lib/createPledge.js.map +1 -0
- package/lib/crypto/utils.d.ts +2 -0
- package/lib/crypto/utils.d.ts.map +1 -1
- package/lib/crypto/utils.js +23 -1
- package/lib/crypto/utils.js.map +1 -1
- package/lib/esm/apiUser/index.d.ts +19 -0
- package/lib/esm/apiUser/index.d.ts.map +1 -0
- package/lib/esm/apiUser/index.js +113 -0
- package/lib/esm/apiUser/index.js.map +1 -0
- package/lib/esm/approveAPIRequest.d.ts +10 -0
- package/lib/esm/approveAPIRequest.d.ts.map +1 -0
- package/lib/esm/approveAPIRequest.js +77 -0
- package/lib/esm/approveAPIRequest.js.map +1 -0
- package/lib/esm/createPledge.d.ts +13 -0
- package/lib/esm/createPledge.d.ts.map +1 -0
- package/lib/esm/createPledge.js +121 -0
- package/lib/esm/createPledge.js.map +1 -0
- package/lib/esm/crypto/utils.d.ts +2 -0
- package/lib/esm/crypto/utils.d.ts.map +1 -1
- package/lib/esm/crypto/utils.js +20 -0
- package/lib/esm/crypto/utils.js.map +1 -1
- package/lib/esm/index.d.ts +3 -1
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +3 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types/index.d.ts +15 -0
- package/lib/esm/types/index.d.ts.map +1 -1
- package/lib/esm/types/tradelink.d.ts +30 -0
- package/lib/esm/types/tradelink.d.ts.map +1 -0
- package/lib/esm/types/tradelink.js +2 -0
- package/lib/esm/types/tradelink.js.map +1 -0
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/types/index.d.ts +15 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/tradelink.d.ts +30 -0
- package/lib/types/tradelink.d.ts.map +1 -0
- package/lib/types/tradelink.js +3 -0
- package/lib/types/tradelink.js.map +1 -0
- package/package.json +3 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/vault-common@1.
|
|
2
|
+
> @ledgerhq/vault-common@1.73.0 build /home/runner/work/vault-ts/vault-ts/packages/common
|
|
3
3
|
> pnpm clean && pnpm build:cjs && pnpm build:esm
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @ledgerhq/vault-common@1.
|
|
6
|
+
> @ledgerhq/vault-common@1.73.0 clean /home/runner/work/vault-ts/vault-ts/packages/common
|
|
7
7
|
> rm -rf lib
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @ledgerhq/vault-common@1.
|
|
10
|
+
> @ledgerhq/vault-common@1.73.0 build:cjs /home/runner/work/vault-ts/vault-ts/packages/common
|
|
11
11
|
> tsc -P tsconfig.build.json --module commonjs --target es5 --outDir lib
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
> @ledgerhq/vault-common@1.
|
|
14
|
+
> @ledgerhq/vault-common@1.73.0 build:esm /home/runner/work/vault-ts/vault-ts/packages/common
|
|
15
15
|
> tsc -P tsconfig.build.json --module es2015 --target es5 --outDir lib/esm
|
|
16
16
|
|
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { APIRequestResponse, DevicesPool, ManifestAPIV2User, Network } from "../types";
|
|
2
|
+
export type APIChallenge = {
|
|
3
|
+
challenge: string;
|
|
4
|
+
decodedChallenge: any;
|
|
5
|
+
};
|
|
6
|
+
export declare function authenticate(pool: DevicesPool, apiNetwork: Network, apiUser: ManifestAPIV2User): Promise<string>;
|
|
7
|
+
export declare function decodeChallenge({ apiNetwork, bearerToken, requestID, }: {
|
|
8
|
+
apiNetwork: Network;
|
|
9
|
+
bearerToken: string;
|
|
10
|
+
requestID: number;
|
|
11
|
+
}): Promise<APIChallenge>;
|
|
12
|
+
export declare function signAndApprove({ apiNetwork, bearerToken, requestID, apiUser, challenge, }: {
|
|
13
|
+
apiNetwork: Network;
|
|
14
|
+
bearerToken: string;
|
|
15
|
+
requestID: number;
|
|
16
|
+
apiUser: ManifestAPIV2User;
|
|
17
|
+
challenge: string;
|
|
18
|
+
}): Promise<APIRequestResponse>;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apiUser/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACR,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,GAAG,CAAC;CACvB,CAAC;AACF,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,WAAW,EACX,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBxB;AAED,wBAAsB,cAAc,CAAC,EACnC,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB9B"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.signAndApprove = exports.decodeChallenge = exports.authenticate = void 0;
|
|
43
|
+
var createDefaultRunner_1 = __importDefault(require("../createDefaultRunner"));
|
|
44
|
+
var utils_1 = require("../crypto/utils");
|
|
45
|
+
function authenticate(pool, apiNetwork, apiUser) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
+
var runner, postApiUserAccess, userAccessRequest, apiUserAuth, bearerResp;
|
|
48
|
+
return __generator(this, function (_a) {
|
|
49
|
+
switch (_a.label) {
|
|
50
|
+
case 0:
|
|
51
|
+
runner = (0, createDefaultRunner_1.default)(pool, {});
|
|
52
|
+
postApiUserAccess = {
|
|
53
|
+
user: apiUser,
|
|
54
|
+
publicKey: (0, utils_1.genKeys)(apiUser.name).hexPubKey,
|
|
55
|
+
role: apiUser.role,
|
|
56
|
+
name: apiUser.name,
|
|
57
|
+
};
|
|
58
|
+
return [4, runner.createAPIV2UserAccess(postApiUserAccess)];
|
|
59
|
+
case 1:
|
|
60
|
+
userAccessRequest = _a.sent();
|
|
61
|
+
apiUserAuth = {
|
|
62
|
+
api_key_id: userAccessRequest.api_key_id,
|
|
63
|
+
api_key_secret: userAccessRequest.api_key_secret,
|
|
64
|
+
};
|
|
65
|
+
return [4, apiNetwork("POST", "/auth/token", apiUserAuth, {
|
|
66
|
+
headers: { "X-Ledger-Workspace": "minivault" },
|
|
67
|
+
})];
|
|
68
|
+
case 2:
|
|
69
|
+
bearerResp = _a.sent();
|
|
70
|
+
return [2, bearerResp.access_token];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
exports.authenticate = authenticate;
|
|
76
|
+
function decodeChallenge(_a) {
|
|
77
|
+
var apiNetwork = _a.apiNetwork, bearerToken = _a.bearerToken, requestID = _a.requestID;
|
|
78
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
79
|
+
var challengeResp;
|
|
80
|
+
return __generator(this, function (_b) {
|
|
81
|
+
switch (_b.label) {
|
|
82
|
+
case 0: return [4, apiNetwork("GET", "/requests/".concat(requestID, "/challenge"), {}, {
|
|
83
|
+
headers: {
|
|
84
|
+
"X-Ledger-Workspace": "minivault",
|
|
85
|
+
"Content-Type": "application/json",
|
|
86
|
+
Authorization: "Bearer ".concat(bearerToken),
|
|
87
|
+
},
|
|
88
|
+
})];
|
|
89
|
+
case 1:
|
|
90
|
+
challengeResp = _b.sent();
|
|
91
|
+
return [2, {
|
|
92
|
+
challenge: challengeResp.challenge,
|
|
93
|
+
decodedChallenge: (0, utils_1.decodeData)(challengeResp.challenge),
|
|
94
|
+
}];
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
exports.decodeChallenge = decodeChallenge;
|
|
100
|
+
function signAndApprove(_a) {
|
|
101
|
+
var apiNetwork = _a.apiNetwork, bearerToken = _a.bearerToken, requestID = _a.requestID, apiUser = _a.apiUser, challenge = _a.challenge;
|
|
102
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
103
|
+
var keys, jws;
|
|
104
|
+
return __generator(this, function (_b) {
|
|
105
|
+
switch (_b.label) {
|
|
106
|
+
case 0:
|
|
107
|
+
keys = (0, utils_1.genKeys)(apiUser.name);
|
|
108
|
+
jws = (0, utils_1.sign)(String(keys.privateKey), challenge);
|
|
109
|
+
return [4, apiNetwork("POST", "/requests/".concat(requestID, "/approve"), { jws: jws }, {
|
|
110
|
+
headers: {
|
|
111
|
+
"X-Ledger-Workspace": "minivault",
|
|
112
|
+
"Content-Type": "application/json",
|
|
113
|
+
Authorization: "Bearer ".concat(bearerToken),
|
|
114
|
+
},
|
|
115
|
+
})];
|
|
116
|
+
case 1: return [2, _b.sent()];
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
exports.signAndApprove = signAndApprove;
|
|
122
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apiUser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+EAAyD;AACzD,yCAA4D;AAc5D,SAAsB,YAAY,CAChC,IAAiB,EACjB,UAAmB,EACnB,OAA0B;;;;;;oBAEpB,MAAM,GAAG,IAAA,6BAAmB,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACvC,iBAAiB,GAAG;wBACxB,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS;wBAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC;oBACwB,WAAM,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAA;;oBAAzE,iBAAiB,GAAG,SAAqD;oBACzE,WAAW,GAAG;wBAClB,UAAU,EAAE,iBAAiB,CAAC,UAAU;wBACxC,cAAc,EAAE,iBAAiB,CAAC,cAAc;qBACjD,CAAC;oBAEiB,WAAM,UAAU,CAAyB,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE;4BAC9F,OAAO,EAAE,EAAE,oBAAoB,EAAE,WAAW,EAAE;yBAC/C,CAAC,EAAA;;oBAFI,UAAU,GAAG,SAEjB;oBACF,WAAO,UAAU,CAAC,YAAY,EAAC;;;;CAChC;AAtBD,oCAsBC;AAED,SAAsB,eAAe,CAAC,EAQrC;QAPC,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,SAAS,eAAA;;;;;wBAMa,WAAM,UAAU,CACpC,KAAK,EACL,oBAAa,SAAS,eAAY,EAClC,EAAE,EACF;wBACE,OAAO,EAAE;4BACP,oBAAoB,EAAE,WAAW;4BACjC,cAAc,EAAE,kBAAkB;4BAClC,aAAa,EAAE,iBAAU,WAAW,CAAE;yBACvC;qBACF,CACF,EAAA;;oBAXK,aAAa,GAAG,SAWrB;oBACD,WAAO;4BACL,SAAS,EAAE,aAAa,CAAC,SAAS;4BAClC,gBAAgB,EAAE,IAAA,kBAAU,EAAC,aAAa,CAAC,SAAS,CAAC;yBACtD,EAAC;;;;CACH;AAzBD,0CAyBC;AAED,SAAsB,cAAc,CAAC,EAYpC;QAXC,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,OAAO,aAAA,EACP,SAAS,eAAA;;;;;;oBAQH,IAAI,GAAG,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAE7B,GAAG,GAAG,IAAA,YAAI,EAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC9C,WAAM,UAAU,CACrB,MAAM,EACN,oBAAa,SAAS,aAAU,EAChC,EAAE,GAAG,KAAA,EAAE,EACP;4BACE,OAAO,EAAE;gCACP,oBAAoB,EAAE,WAAW;gCACjC,cAAc,EAAE,kBAAkB;gCAClC,aAAa,EAAE,iBAAU,WAAW,CAAE;6BACvC;yBACF,CACF,EAAA;wBAXD,WAAO,SAWN,EAAC;;;;CACH;AA5BD,wCA4BC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { APIRequestResponse, DevicesPool, ManifestAPIV2User, RunnableOptions } from "./types";
|
|
2
|
+
export type ApproveAPIRequestOptions = {
|
|
3
|
+
pool: DevicesPool;
|
|
4
|
+
requestID: number;
|
|
5
|
+
apiUser: ManifestAPIV2User;
|
|
6
|
+
apiGateway: string;
|
|
7
|
+
};
|
|
8
|
+
declare function approveAPIRequest({ pool, requestID, apiUser, apiGateway }: ApproveAPIRequestOptions, { logger }?: RunnableOptions): Promise<APIRequestResponse>;
|
|
9
|
+
export default approveAPIRequest;
|
|
10
|
+
//# sourceMappingURL=approveAPIRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approveAPIRequest.d.ts","sourceRoot":"","sources":["../src/approveAPIRequest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE9F,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAe,iBAAiB,CAC9B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,wBAAwB,EAClE,EAAE,MAAsB,EAAE,GAAE,eAAoB,GAC/C,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var vault_utils_1 = require("@ledgerhq/vault-utils");
|
|
43
|
+
var apiUser_1 = require("./apiUser");
|
|
44
|
+
var createNetwork_1 = __importDefault(require("./createNetwork"));
|
|
45
|
+
function approveAPIRequest(_a, _b) {
|
|
46
|
+
var pool = _a.pool, requestID = _a.requestID, apiUser = _a.apiUser, apiGateway = _a.apiGateway;
|
|
47
|
+
var _c = _b === void 0 ? {} : _b, _d = _c.logger, logger = _d === void 0 ? vault_utils_1.SILENT_LOGGER : _d;
|
|
48
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
49
|
+
var apiNetwork, bearerToken, apiChallenge;
|
|
50
|
+
return __generator(this, function (_e) {
|
|
51
|
+
switch (_e.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
apiNetwork = (0, createNetwork_1.default)({
|
|
54
|
+
baseURL: apiGateway,
|
|
55
|
+
});
|
|
56
|
+
logger.info("Autenticate for ".concat(apiUser.name));
|
|
57
|
+
return [4, (0, apiUser_1.authenticate)(pool, apiNetwork, apiUser)];
|
|
58
|
+
case 1:
|
|
59
|
+
bearerToken = _e.sent();
|
|
60
|
+
logger.info("Decode challenge");
|
|
61
|
+
return [4, (0, apiUser_1.decodeChallenge)({
|
|
62
|
+
apiNetwork: apiNetwork,
|
|
63
|
+
bearerToken: bearerToken,
|
|
64
|
+
requestID: requestID,
|
|
65
|
+
})];
|
|
66
|
+
case 2:
|
|
67
|
+
apiChallenge = _e.sent();
|
|
68
|
+
logger.info(apiChallenge.decodedChallenge);
|
|
69
|
+
logger.info("Sign and approve");
|
|
70
|
+
return [2, (0, apiUser_1.signAndApprove)({
|
|
71
|
+
apiNetwork: apiNetwork,
|
|
72
|
+
bearerToken: bearerToken,
|
|
73
|
+
requestID: requestID,
|
|
74
|
+
apiUser: apiUser,
|
|
75
|
+
challenge: apiChallenge.challenge,
|
|
76
|
+
})];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
exports.default = approveAPIRequest;
|
|
82
|
+
//# sourceMappingURL=approveAPIRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approveAPIRequest.js","sourceRoot":"","sources":["../src/approveAPIRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsD;AAEtD,qCAA0E;AAC1E,kEAA4C;AAU5C,SAAe,iBAAiB,CAC9B,EAAkE,EAClE,EAAgD;QAD9C,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,OAAO,aAAA,EAAE,UAAU,gBAAA;QACtC,qBAA8C,EAAE,KAAA,EAA9C,cAAsB,EAAtB,MAAM,mBAAG,2BAAa,KAAA;;;;;;oBAElB,UAAU,GAAG,IAAA,uBAAa,EAAC;wBAC/B,OAAO,EAAE,UAAU;qBACpB,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,0BAAmB,OAAO,CAAC,IAAI,CAAE,CAAC,CAAC;oBAC3B,WAAM,IAAA,sBAAY,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAA;;oBAA3D,WAAW,GAAG,SAA6C;oBACjE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACX,WAAM,IAAA,yBAAe,EAAC;4BACzC,UAAU,YAAA;4BACV,WAAW,aAAA;4BACX,SAAS,WAAA;yBACV,CAAC,EAAA;;oBAJI,YAAY,GAAG,SAInB;oBAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;oBAC3C,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAEhC,WAAO,IAAA,wBAAc,EAAC;4BACpB,UAAU,YAAA;4BACV,WAAW,aAAA;4BACX,SAAS,WAAA;4BACT,OAAO,SAAA;4BACP,SAAS,EAAE,YAAY,CAAC,SAAS;yBAClC,CAAC,EAAC;;;;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { APIRequestResponse, DevicesPool, GateAccount, ManifestAPIV2User, ManifestAccount, RunnableOptions } from "./types";
|
|
2
|
+
export type CreatePledgeOptions = {
|
|
3
|
+
pool: DevicesPool;
|
|
4
|
+
account: ManifestAccount;
|
|
5
|
+
accountsByName: Record<string, GateAccount>;
|
|
6
|
+
exchange: string;
|
|
7
|
+
amount: string;
|
|
8
|
+
apiUser: ManifestAPIV2User;
|
|
9
|
+
apiGateway: string;
|
|
10
|
+
};
|
|
11
|
+
declare function createPledge({ pool, account, accountsByName, exchange, amount, apiUser, apiGateway }: CreatePledgeOptions, { logger }?: RunnableOptions): Promise<APIRequestResponse>;
|
|
12
|
+
export default createPledge;
|
|
13
|
+
//# sourceMappingURL=createPledge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPledge.d.ts","sourceRoot":"","sources":["../src/createPledge.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,kBAAkB,EAElB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,SAAS,CAAC;AAIjB,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAe,YAAY,CACzB,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAC7F,EAAE,MAAsB,EAAE,GAAE,eAAoB,GAC/C,OAAO,CAAC,kBAAkB,CAAC,CAwE7B;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var vault_utils_1 = require("@ledgerhq/vault-utils");
|
|
43
|
+
var apiUser_1 = require("./apiUser");
|
|
44
|
+
var createNetwork_1 = __importDefault(require("./createNetwork"));
|
|
45
|
+
var utils_1 = require("./utils");
|
|
46
|
+
function createPledge(_a, _b) {
|
|
47
|
+
var pool = _a.pool, account = _a.account, accountsByName = _a.accountsByName, exchange = _a.exchange, amount = _a.amount, apiUser = _a.apiUser, apiGateway = _a.apiGateway;
|
|
48
|
+
var _c = _b === void 0 ? {} : _b, _d = _c.logger, logger = _d === void 0 ? vault_utils_1.SILENT_LOGGER : _d;
|
|
49
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
+
var gateAccount, apiNetwork, bearerToken, pledgesResp, pledgeResp, unit, serializedAmount, data, pledgeRequestResp, apiChallenge;
|
|
51
|
+
return __generator(this, function (_e) {
|
|
52
|
+
switch (_e.label) {
|
|
53
|
+
case 0:
|
|
54
|
+
gateAccount = accountsByName[account.name];
|
|
55
|
+
if (!gateAccount)
|
|
56
|
+
throw new Error("Can't find account with name ".concat(account.name));
|
|
57
|
+
apiNetwork = (0, createNetwork_1.default)({
|
|
58
|
+
baseURL: apiGateway,
|
|
59
|
+
});
|
|
60
|
+
logger.info("Authenticate for ".concat(apiUser.name));
|
|
61
|
+
return [4, (0, apiUser_1.authenticate)(pool, apiNetwork, apiUser)];
|
|
62
|
+
case 1:
|
|
63
|
+
bearerToken = _e.sent();
|
|
64
|
+
return [4, apiNetwork("GET", "/pledges?account_id=".concat(gateAccount.id), {}, {
|
|
65
|
+
headers: {
|
|
66
|
+
"X-Ledger-Workspace": "minivault",
|
|
67
|
+
"Content-Type": "application/json",
|
|
68
|
+
Authorization: "Bearer ".concat(bearerToken),
|
|
69
|
+
},
|
|
70
|
+
})];
|
|
71
|
+
case 2:
|
|
72
|
+
pledgesResp = _e.sent();
|
|
73
|
+
pledgeResp = pledgesResp.edges.find(function (p) { return p.node.exchange.name == exchange; });
|
|
74
|
+
if (!pledgeResp)
|
|
75
|
+
throw new Error("Exchange '".concat(exchange, "' not found"));
|
|
76
|
+
if (!("currency" in account))
|
|
77
|
+
throw Error("Account ".concat(account.name, " doesn't have currency"));
|
|
78
|
+
logger.info("Create pledge");
|
|
79
|
+
unit = (0, utils_1.getAccountUnit)(account, []);
|
|
80
|
+
serializedAmount = (0, utils_1.serializeUnitValue)(unit, amount);
|
|
81
|
+
data = {
|
|
82
|
+
type: "CREATE_PLEDGE_INCREMENT",
|
|
83
|
+
data: {
|
|
84
|
+
pledge_account_id: pledgeResp.node.pledge_subaccount_id,
|
|
85
|
+
pledge_data: {
|
|
86
|
+
amount: serializedAmount,
|
|
87
|
+
account_name: account.name,
|
|
88
|
+
currency: account.currency,
|
|
89
|
+
exchange_name: exchange,
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
return [4, apiNetwork("POST", "/requests", data, {
|
|
94
|
+
headers: {
|
|
95
|
+
"X-Ledger-Workspace": "minivault",
|
|
96
|
+
"Content-Type": "application/json",
|
|
97
|
+
Authorization: "Bearer ".concat(bearerToken),
|
|
98
|
+
},
|
|
99
|
+
})];
|
|
100
|
+
case 3:
|
|
101
|
+
pledgeRequestResp = _e.sent();
|
|
102
|
+
logger.info("Approving pledge ".concat(pledgeRequestResp.id));
|
|
103
|
+
logger.info("Decode challenge");
|
|
104
|
+
return [4, (0, apiUser_1.decodeChallenge)({
|
|
105
|
+
apiNetwork: apiNetwork,
|
|
106
|
+
bearerToken: bearerToken,
|
|
107
|
+
requestID: pledgeRequestResp.id,
|
|
108
|
+
})];
|
|
109
|
+
case 4:
|
|
110
|
+
apiChallenge = _e.sent();
|
|
111
|
+
logger.info(apiChallenge.decodedChallenge);
|
|
112
|
+
logger.info("Sign and approve");
|
|
113
|
+
return [4, (0, apiUser_1.signAndApprove)({
|
|
114
|
+
apiNetwork: apiNetwork,
|
|
115
|
+
bearerToken: bearerToken,
|
|
116
|
+
requestID: pledgeRequestResp.id,
|
|
117
|
+
apiUser: apiUser,
|
|
118
|
+
challenge: apiChallenge.challenge,
|
|
119
|
+
})];
|
|
120
|
+
case 5: return [2, _e.sent()];
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
exports.default = createPledge;
|
|
126
|
+
//# sourceMappingURL=createPledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPledge.js","sourceRoot":"","sources":["../src/createPledge.ts"],"names":[],"mappings":"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"}
|
package/lib/crypto/utils.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ type GeneratedKeys = {
|
|
|
5
5
|
publicKey: string;
|
|
6
6
|
hexPubKey: string;
|
|
7
7
|
};
|
|
8
|
+
export declare function decodeData(challenge: string): void;
|
|
9
|
+
export declare function sign(privateKey: string, challenge: string): string;
|
|
8
10
|
export declare function genKeys(entropy?: string): GeneratedKeys;
|
|
9
11
|
export {};
|
|
10
12
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";AAQA,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,MAEtC,CAAC;AAgBF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGlD;AAED,wBAAgB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAczD;AAMD,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAwBvD"}
|
package/lib/crypto/utils.js
CHANGED
|
@@ -26,11 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.genKeys = exports.hashCode = void 0;
|
|
29
|
+
exports.genKeys = exports.sign = exports.decodeData = exports.hashCode = void 0;
|
|
30
30
|
var crypto_1 = __importDefault(require("crypto"));
|
|
31
31
|
var enc_hex_1 = __importDefault(require("crypto-js/enc-hex"));
|
|
32
32
|
var sha256_1 = __importDefault(require("crypto-js/sha256"));
|
|
33
33
|
var elliptic = __importStar(require("elliptic"));
|
|
34
|
+
var jwt = __importStar(require("jsonwebtoken"));
|
|
34
35
|
var keyEncoder_1 = __importDefault(require("./keyEncoder"));
|
|
35
36
|
var hashCode = function (str) {
|
|
36
37
|
return Buffer.from(enc_hex_1.default.stringify((0, sha256_1.default)(str)), "hex");
|
|
@@ -44,6 +45,27 @@ function extractPublicKey(pemKey) {
|
|
|
44
45
|
var actualKeyBuffer = keyBuffer.slice(26);
|
|
45
46
|
return actualKeyBuffer.toString("hex");
|
|
46
47
|
}
|
|
48
|
+
function decodeData(challenge) {
|
|
49
|
+
var decodedString = atob(challenge);
|
|
50
|
+
return JSON.parse(decodedString);
|
|
51
|
+
}
|
|
52
|
+
exports.decodeData = decodeData;
|
|
53
|
+
function sign(privateKey, challenge) {
|
|
54
|
+
var pKey = crypto_1.default.createPrivateKey({
|
|
55
|
+
key: String(privateKey),
|
|
56
|
+
format: "pem",
|
|
57
|
+
});
|
|
58
|
+
var privateKeyPem = pKey.export({ format: "pem", type: "sec1" });
|
|
59
|
+
var dataTosign = Buffer.from(challenge, "base64").toString("hex");
|
|
60
|
+
return jwt.sign(Buffer.from(dataTosign, "hex"), privateKeyPem, {
|
|
61
|
+
algorithm: "ES256",
|
|
62
|
+
header: {
|
|
63
|
+
alg: "ES256",
|
|
64
|
+
typ: "JWT",
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
exports.sign = sign;
|
|
47
69
|
function genKeys(entropy) {
|
|
48
70
|
if (entropy) {
|
|
49
71
|
var ec = new elliptic.ec("p256");
|
package/lib/crypto/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,8DAAoC;AACpC,4DAAsC;AACtC,iDAAqC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { APIRequestResponse, DevicesPool, ManifestAPIV2User, Network } from "../types";
|
|
2
|
+
export type APIChallenge = {
|
|
3
|
+
challenge: string;
|
|
4
|
+
decodedChallenge: any;
|
|
5
|
+
};
|
|
6
|
+
export declare function authenticate(pool: DevicesPool, apiNetwork: Network, apiUser: ManifestAPIV2User): Promise<string>;
|
|
7
|
+
export declare function decodeChallenge({ apiNetwork, bearerToken, requestID, }: {
|
|
8
|
+
apiNetwork: Network;
|
|
9
|
+
bearerToken: string;
|
|
10
|
+
requestID: number;
|
|
11
|
+
}): Promise<APIChallenge>;
|
|
12
|
+
export declare function signAndApprove({ apiNetwork, bearerToken, requestID, apiUser, challenge, }: {
|
|
13
|
+
apiNetwork: Network;
|
|
14
|
+
bearerToken: string;
|
|
15
|
+
requestID: number;
|
|
16
|
+
apiUser: ManifestAPIV2User;
|
|
17
|
+
challenge: string;
|
|
18
|
+
}): Promise<APIRequestResponse>;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/apiUser/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACR,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,GAAG,CAAC;CACvB,CAAC;AACF,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,WAAW,EACX,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBxB;AAED,wBAAsB,cAAc,CAAC,EACnC,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB9B"}
|