PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/sdk-core/dist/src/bitgo/trading/network
Просмотр файла: network.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TradingNetwork = void 0;
const uuid_1 = require("uuid");
const crypto_1 = __importDefault(require("crypto"));
class TradingNetwork {
constructor(enterpriseId, wallet, bitgo) {
this.enterpriseId = enterpriseId;
this.wallet = wallet;
this.bitgo = bitgo;
}
getBalances(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/balances`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getPartners(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/partners`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getSupportedCurrencies(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/supportedCurrencies`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getConnections(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/connections`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getConnectionById({ connectionId, ...params }) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/connections/${connectionId}`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
createConnection(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/connections`);
return this.bitgo.post(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
updateConnection({ connectionId, ...params }) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/connections/${connectionId}`);
return this.bitgo.put(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getAllocations(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/allocations`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getAllocationById({ allocationId, ...params }) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/allocations/${allocationId}`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
/**
* Prepare an allocation for submission
* @param {string} walletPassphrase ofc wallet passphrase
* @param {string} connectionId connection to whom to make the allocation or deallocation
* @param {string=} clientExternalId one time generated uuid v4
* @param {string} currency currency for which the allocation should be made. e.g. btc / tbtc
* @param {string} quantity base amount. e.g. 10000000 (1 BTC)
* @param {string} notes Private note that you can view and edit
* @param {string=} nonce one time generated string .e.g. crypto.randomBytes(32).toString('hex')
* @returns
*/
async prepareAllocation({ walletPassphrase, ...body }) {
if (!body.clientExternalId) {
body.clientExternalId = (0, uuid_1.v4)();
}
if (!body.nonce) {
body.nonce = crypto_1.default.randomBytes(32).toString('hex');
}
const payload = JSON.stringify(body);
const prv = await this.wallet.getPrv({ walletPassphrase });
const signedBuffer = await this.wallet.baseCoin.signMessage({ prv }, payload);
const signature = signedBuffer.toString('hex');
return {
...body,
payload,
signature,
};
}
createAllocation({ connectionId, ...params }) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/connections/${connectionId}/allocations`);
return this.bitgo.post(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
createDeallocation({ connectionId, ...params }) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/connections/${connectionId}/deallocations`);
return this.bitgo.post(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getSettlements(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/settlements`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getSettlementById({ settlementId, ...params }) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/settlements/${settlementId}`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
getSettlementTransfers(params) {
const url = this.bitgo.microservicesUrl(`/api/network/v1/enterprises/${this.enterpriseId}/clients/settlementTransfers`);
return this.bitgo.get(url).set('enterprise-id', this.enterpriseId).send(params).result();
}
}
exports.TradingNetwork = TradingNetwork;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby90cmFkaW5nL25ldHdvcmsvbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBb0M7QUFDcEMsb0RBQTRCO0FBb0M1QixNQUFhLGNBQWM7SUFNekIsWUFBWSxZQUFvQixFQUFFLE1BQWUsRUFBRSxLQUFnQjtRQUNqRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWlDO1FBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsK0JBQStCLElBQUksQ0FBQyxZQUFZLG1CQUFtQixDQUFDLENBQUM7UUFDN0csT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFpQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLCtCQUErQixJQUFJLENBQUMsWUFBWSxXQUFXLENBQUMsQ0FBQztRQUNyRyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzRixDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBMkM7UUFDaEUs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QUNyQywrQkFBK0IsSUFBSSxDQUFDLFlBQVksd0JBQXdCLFlBQVksRUFBRSxDQUN2RixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQTRDO1FBQ2pFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQ3JDLCtCQUErQixJQUFJLENBQUMsWUFBWSw4QkFBOEIsQ0FDL0UsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNGLENBQUM7Q0FDRjtBQXBKRCx3Q0FvSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2NCBhcyB1dWlkVjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vLi4vd2FsbGV0JztcbmltcG9ydCB7XG4gIENyZWF0ZU5ldHdvcmtBbGxvY2F0aW9uUGFyYW1zLFxuICBDcmVhdGVOZXR3b3JrQWxsb2NhdGlvblJlc3BvbnNlLFxuICBDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblBhcmFtcyxcbiAgQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSxcbiAgQ3JlYXRlTmV0d29ya0RlYWxsb2NhdGlvblBhcmFtcyxcbiAgQ3JlYXRlTmV0d29ya0RlYWxsb2NhdGlvblJlc3BvbnNlLFxuICBHZXROZXR3b3JrQWxsb2NhdGlvbkJ5SWRQYXJhbXMsXG4gIEdldE5ldHdvcmtBbGxvY2F0aW9uQnlJZFJlc3BvbnNlLFxuICBHZXROZXR3b3JrQWxsb2NhdGlvbnNQYXJhbXMsXG4gIEdldE5ldHdvcmtBbGxvY2F0aW9uc1Jlc3BvbnNlLFxuICBHZXROZXR3b3JrQmFsYW5jZXNQYXJhbXMsXG4gIEdldE5ldHdvcmtCYWxhbmNlc1Jlc3BvbnNlLFxuICBHZXROZXR3b3JrQ29ubmVjdGlvbkJ5SWRQYXJhbXMsXG4gIEdldE5ldHdvcmtDb25uZWN0aW9uQnlJZFJlc3BvbnNlLFxuICBHZXROZXR3b3JrQ29ubmVjdGlvbnNQYXJhbXMsXG4gIEdldE5ldHdvcmtDb25uZWN0aW9uc1Jlc3BvbnNlLFxuICBHZXROZXR3b3JrUGFydG5lcnNQYXJhbXMsXG4gIEdldE5ldHdvcmtQYXJ0bmVyc1Jlc3BvbnNlLFxuICBHZXROZXR3b3JrU2V0dGxlbWVudEJ5SWRQYXJhbXMsXG4gIEdldE5ldHdvcmtTZXR0bGVtZW50QnlJZFJlc3BvbnNlLFxuICBHZXROZXR3b3JrU2V0dGxlbWVudFRyYW5zZmVyc1BhcmFtcyxcbiAgR2V0TmV0d29ya1NldHRsZW1lbnRUcmFuc2ZlcnNSZXNwb25zZSxcbiAgR2V0TmV0d29ya1NldHRsZW1lbnRzUGFyYW1zLFxuICBHZXROZXR3b3JrU2V0dGxlbWVudHNSZXNwb25zZSxcbiAgR2V0TmV0d29ya1N1cHBvcnRlZEN1cnJlbmNpZXNQYXJhbXMsXG4gIEdldE5ldHdvcmtTdXBwb3J0ZWRDdXJyZW5jaWVzUmVzcG9uc2UsXG4gIElUcmFkaW5nTmV0d29yayxcbiAgUHJlcGFyZU5ldHdvcmtBbGxvY2F0aW9uUGFyYW1zLFxuICBVcGRhdGVOZXR3b3JrQ29ubmVjdGlvblBhcmFtcyxcbiAgVXBkYXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFkaW5nTmV0d29yayBpbXBsZW1lbnRzIElUcmFkaW5nTmV0d29yayB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRlcnByaXNlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgd2FsbGV0OiBJV2FsbGV0O1xuXG4gIGNvbnN0cnVjdG9yKGVudGVycHJpc2VJZDogc3RyaW5nLCB3YWxsZXQ6IElXYWxsZXQsIGJpdGdvOiBCaXRHb0Jhc2UpIHtcbiAgICB0aGlzLmVudGVycHJpc2VJZCA9IGVudGVycHJpc2VJZDtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gIH1cblxuICBnZXRCYWxhbmNlcyhwYXJhbXM/OiBHZXROZXR3b3JrQmFsYW5jZXNQYXJhbXMpOiBQcm9taXNlPEdldE5ldHdvcmtCYWxhbmNlc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vY2xpZW50cy9iYWxhbmNlc2ApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICBnZXRQYXJ0bmVycyhwYXJhbXM/OiBHZXROZXR3b3JrUGFydG5lcnNQYXJhbXMpOiBQcm9taXNlPEdldE5ldHdvcmtQYXJ0bmVyc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vcGFydG5lcnNgKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnby5nZXQodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgZ2V0U3VwcG9ydGVkQ3VycmVuY2llcyhwYXJhbXM6IEdldE5ldHdvcmtTdXBwb3J0ZWRDdXJyZW5jaWVzUGFyYW1zKTogUHJvbWlzZTxHZXROZXR3b3JrU3VwcG9ydGVkQ3VycmVuY2llc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vc3VwcG9ydGVkQ3VycmVuY2llc2ApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICBnZXRDb25uZWN0aW9ucyhwYXJhbXM/OiBHZXROZXR3b3JrQ29ubmVjdGlvbnNQYXJhbXMpOiBQcm9taXNlPEdldE5ldHdvcmtDb25uZWN0aW9uc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vY2xpZW50cy9jb25uZWN0aW9uc2ApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICBnZXRDb25uZWN0aW9uQnlJZCh7XG4gICAgY29ubmVjdGlvbklkLFxuICAgIC4uLnBhcmFtc1xuICB9OiBHZXROZXR3b3JrQ29ubmVjdGlvbkJ5SWRQYXJhbXMpOiBQcm9taXNlPEdldE5ldHdvcmtDb25uZWN0aW9uQnlJZFJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKFxuICAgICAgYC9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy8ke3RoaXMuZW50ZXJwcmlzZUlkfS9jbGllbnRzL2Nvbm5lY3Rpb25zLyR7Y29ubmVjdGlvbklkfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICBjcmVhdGVDb25uZWN0aW9uKHBhcmFtczogQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25QYXJhbXMpOiBQcm9taXNlPENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoYC9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy8ke3RoaXMuZW50ZXJwcmlzZUlkfS9jbGllbnRzL2Nvbm5lY3Rpb25zYCk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28ucG9zdCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICB1cGRhdGVDb25uZWN0aW9uKHtcbiAgICBjb25uZWN0aW9uSWQsXG4gICAgLi4ucGFyYW1zXG4gIH06IFVwZGF0ZU5ldHdvcmtDb25uZWN0aW9uUGFyYW1zKTogUHJvbWlzZTxVcGRhdGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKFxuICAgICAgYC9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy8ke3RoaXMuZW50ZXJwcmlzZUlkfS9jbGllbnRzL2Nvbm5lY3Rpb25zLyR7Y29ubmVjdGlvbklkfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnB1dCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICBnZXRBbGxvY2F0aW9ucyhwYXJhbXM/OiBHZXROZXR3b3JrQWxsb2NhdGlvbnNQYXJhbXMpOiBQcm9taXNlPEdldE5ldHdvcmtBbGxvY2F0aW9uc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vY2xpZW50cy9hbGxvY2F0aW9uc2ApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICBnZXRBbGxvY2F0aW9uQnlJZCh7XG4gICAgYWxsb2NhdGlvbklkLFxuICAgIC4uLnBhcmFtc1xuICB9OiBHZXROZXR3b3JrQWxsb2NhdGlvbkJ5SWRQYXJhbXMpOiBQcm9taXNlPEdldE5ldHdvcmtBbGxvY2F0aW9uQnlJZFJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKFxuICAgICAgYC9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy8ke3RoaXMuZW50ZXJwcmlzZUlkfS9jbGllbnRzL2FsbG9jYXRpb25zLyR7YWxsb2NhdGlvbklkfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBhbiBhbGxvY2F0aW9uIGZvciBzdWJtaXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB3YWxsZXRQYXNzcGhyYXNlIG9mYyB3YWxsZXQgcGFzc3BocmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29ubmVjdGlvbklkIGNvbm5lY3Rpb24gdG8gd2hvbSB0byBtYWtlIHRoZSBhbGxvY2F0aW9uIG9yIGRlYWxsb2NhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZz19IGNsaWVudEV4dGVybmFsSWQgb25lIHRpbWUgZ2VuZXJhdGVkIHV1aWQgdjRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbmN5IGN1cnJlbmN5IGZvciB3aGljaCB0aGUgYWxsb2NhdGlvbiBzaG91bGQgYmUgbWFkZS4gZS5nLiBidGMgLyB0YnRjXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWFudGl0eSBiYXNlIGFtb3VudC4gZS5nLiAxMDAwMDAwMCAoMSBCVEMpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBub3RlcyBQcml2YXRlIG5vdGUgdGhhdCB5b3UgY2FuIHZpZXcgYW5kIGVkaXRcbiAgICogQHBhcmFtIHtzdHJpbmc9fSBub25jZSBvbmUgdGltZSBnZW5lcmF0ZWQgc3RyaW5nIC5lLmcuIGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhc3luYyBwcmVwYXJlQWxsb2NhdGlvbih7XG4gICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICAuLi5ib2R5XG4gIH06IFByZXBhcmVOZXR3b3JrQWxsb2NhdGlvblBhcmFtcyk6IFByb21pc2U8Q3JlYXRlTmV0d29ya0FsbG9jYXRpb25QYXJhbXM+IHtcbiAgICBpZiAoIWJvZHkuY2xpZW50RXh0ZXJuYWxJZCkge1xuICAgICAgYm9keS5jbGllbnRFeHRlcm5hbElkID0gdXVpZFY0KCk7XG4gICAgfVxuICAgIGlmICghYm9keS5ub25jZSkge1xuICAgICAgYm9keS5ub25jZSA9IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcblxuICAgIGNvbnN0IHBydiA9IGF3YWl0IHRoaXMud2FsbGV0LmdldFBydih7IHdhbGxldFBhc3NwaHJhc2UgfSk7XG4gICAgY29uc3Qgc2lnbmVkQnVmZmVyOiBCdWZmZXIgPSBhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5zaWduTWVzc2FnZSh7IHBydiB9LCBwYXlsb2FkKTtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBzaWduZWRCdWZmZXIudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJvZHksXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2lnbmF0dXJlLFxuICAgIH07XG4gIH1cblxuICBjcmVhdGVBbGxvY2F0aW9uKHtcbiAgICBjb25uZWN0aW9uSWQsXG4gICAgLi4ucGFyYW1zXG4gIH06IENyZWF0ZU5ldHdvcmtBbGxvY2F0aW9uUGFyYW1zKTogUHJvbWlzZTxDcmVhdGVOZXR3b3JrQWxsb2NhdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKFxuICAgICAgYC9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy8ke3RoaXMuZW50ZXJwcmlzZUlkfS9jbGllbnRzL2Nvbm5lY3Rpb25zLyR7Y29ubmVjdGlvbklkfS9hbGxvY2F0aW9uc2BcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnBvc3QodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgY3JlYXRlRGVhbGxvY2F0aW9uKHtcbiAgICBjb25uZWN0aW9uSWQsXG4gICAgLi4ucGFyYW1zXG4gIH06IENyZWF0ZU5ldHdvcmtEZWFsbG9jYXRpb25QYXJhbXMpOiBQcm9taXNlPENyZWF0ZU5ldHdvcmtEZWFsbG9jYXRpb25SZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChcbiAgICAgIGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vY2xpZW50cy9jb25uZWN0aW9ucy8ke2Nvbm5lY3Rpb25JZH0vZGVhbGxvY2F0aW9uc2BcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnBvc3QodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgZ2V0U2V0dGxlbWVudHMocGFyYW1zPzogR2V0TmV0d29ya1NldHRsZW1lbnRzUGFyYW1zKTogUHJvbWlzZTxHZXROZXR3b3JrU2V0dGxlbWVudHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChgL2FwaS9uZXR3b3JrL3YxL2VudGVycHJpc2VzLyR7dGhpcy5lbnRlcnByaXNlSWR9L2NsaWVudHMvc2V0dGxlbWVudHNgKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnby5nZXQodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgZ2V0U2V0dGxlbWVudEJ5SWQoe1xuICAgIHNldHRsZW1lbnRJZCxcbiAgICAuLi5wYXJhbXNcbiAgfTogR2V0TmV0d29ya1NldHRsZW1lbnRCeUlkUGFyYW1zKTogUHJvbWlzZTxHZXROZXR3b3JrU2V0dGxlbWVudEJ5SWRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChcbiAgICAgIGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vY2xpZW50cy9zZXR0bGVtZW50cy8ke3NldHRsZW1lbnRJZH1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnby5nZXQodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgZ2V0U2V0dGxlbWVudFRyYW5zZmVycyhwYXJhbXM/OiBHZXROZXR3b3JrU2V0dGxlbWVudFRyYW5zZmVyc1BhcmFtcyk6IFByb21pc2U8R2V0TmV0d29ya1NldHRsZW1lbnRUcmFuc2ZlcnNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChcbiAgICAgIGAvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvJHt0aGlzLmVudGVycHJpc2VJZH0vY2xpZW50cy9zZXR0bGVtZW50VHJhbnNmZXJzYFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28uZ2V0KHVybCkuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!