PHP WebShell
Текущая директория: /opt/BitGoJS/modules/abstract-lightning/dist/src/codecs/api
Просмотр файла: payment.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.LndCreatePaymentResponse = exports.SubmitPaymentParams = exports.PaymentQuery = exports.PaymentInfo = exports.PaymentFailureReason = exports.PAYMENT_FAILURE_FORCE_FAILED = exports.PAYMENT_FAILURE_CANCELED = exports.PAYMENT_FAILURE_INVOICE_EXPIRED = exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = exports.PAYMENT_FAILURE_INSUFFICIENT_CHANNEL_BALANCE = exports.PAYMENT_FAILURE_INCORRECT_DETAILS = exports.PAYMENT_FAILURE_ERROR = exports.PAYMENT_FAILURE_NO_ROUTE = exports.PAYMENT_FAILURE_TIMEOUT = exports.PaymentStatus = void 0;
const t = __importStar(require("io-ts"));
const BigIntFromString_1 = require("io-ts-types/BigIntFromString");
const DateFromISOString_1 = require("io-ts-types/DateFromISOString");
const public_types_1 = require("@bitgo/public-types");
// codecs for lightning wallet payment related apis
exports.PaymentStatus = t.union([
// Initial state when payment is initiated.
// Transitions to 'settled' or 'failed' on LND notification.
t.literal('in_flight'),
// Final state.
t.literal('settled'),
// Final state.
t.literal('failed'),
]);
exports.PAYMENT_FAILURE_TIMEOUT = 'TIMEOUT';
exports.PAYMENT_FAILURE_NO_ROUTE = 'NO_ROUTE';
/** A non-recoverable error */
exports.PAYMENT_FAILURE_ERROR = 'ERROR';
exports.PAYMENT_FAILURE_INCORRECT_DETAILS = 'INCORRECT_PAYMENT_DETAILS';
/** Insufficient channel outbound capacity */
exports.PAYMENT_FAILURE_INSUFFICIENT_CHANNEL_BALANCE = 'INSUFFICIENT_BALANCE';
/** Insufficient custodial lightning balance for the customer's wallet */
exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE = 'INSUFFICIENT_WALLET_BALANCE';
/** Excess custodial lightning balance for the customer's wallet */
exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE = 'EXCESS_WALLET_BALANCE';
exports.PAYMENT_FAILURE_INVOICE_EXPIRED = 'INVOICE_EXPIRED';
exports.PAYMENT_FAILURE_CANCELED = 'CANCELED';
exports.PAYMENT_FAILURE_FORCE_FAILED = 'FORCE_FAILED';
exports.PaymentFailureReason = t.union([
t.literal(exports.PAYMENT_FAILURE_TIMEOUT),
t.literal(exports.PAYMENT_FAILURE_NO_ROUTE),
t.literal(exports.PAYMENT_FAILURE_ERROR),
t.literal(exports.PAYMENT_FAILURE_INCORRECT_DETAILS),
t.literal(exports.PAYMENT_FAILURE_INSUFFICIENT_CHANNEL_BALANCE),
t.literal(exports.PAYMENT_FAILURE_INSUFFICIENT_WALLET_BALANCE),
t.literal(exports.PAYMENT_FAILURE_EXCESS_WALLET_BALANCE),
t.literal(exports.PAYMENT_FAILURE_INVOICE_EXPIRED),
t.literal(exports.PAYMENT_FAILURE_CANCELED),
t.literal(exports.PAYMENT_FAILURE_FORCE_FAILED),
]);
/**
* Off-chain payment information
*/
exports.PaymentInfo = t.intersection([
t.type({
paymentHash: t.string,
walletId: t.string,
txRequestId: t.string,
status: exports.PaymentStatus,
invoice: t.string,
feeLimitMsat: BigIntFromString_1.BigIntFromString,
destination: t.string,
updatedAt: DateFromISOString_1.DateFromISOString,
createdAt: DateFromISOString_1.DateFromISOString,
amountMsat: BigIntFromString_1.BigIntFromString,
}),
t.partial({
feeMsat: BigIntFromString_1.BigIntFromString,
failureReason: exports.PaymentFailureReason,
paymentPreimage: t.string,
}),
], 'PaymentInfo');
/**
* Payment query parameters
*/
exports.PaymentQuery = t.partial({
status: exports.PaymentStatus,
limit: BigIntFromString_1.BigIntFromString,
startDate: DateFromISOString_1.DateFromISOString,
endDate: DateFromISOString_1.DateFromISOString,
}, 'PaymentQuery');
exports.SubmitPaymentParams = t.intersection([
public_types_1.LightningPaymentRequest,
t.type({
passphrase: t.string,
}),
t.partial({
sequenceId: public_types_1.optionalString,
comment: public_types_1.optionalString,
}),
]);
exports.LndCreatePaymentResponse = t.intersection([
t.type({
status: exports.PaymentStatus,
paymentHash: t.string,
}),
t.partial({
paymentPreimage: t.string,
amountMsat: t.string,
feeMsat: t.string,
failureReason: exports.PaymentFailureReason,
}),
], 'LndCreatePaymentResponse');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2RlY3MvYXBpL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTJCO0FBQzNCLG1FQUFnRTtBQUNoRSxxRUFBa0U7QUFDbEUsc0RBQThFO0FBRTlFLG1EQUFtRDtBQUV0QyxRQUFBLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25DLDJDQUEyQztJQUMzQyw0REFBNEQ7SUFDNUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDdEIsZUFBZTtJQUNmLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BCLGVBQWU7SUFDZixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztDQUNwQixDQUFDLENBQUM7QUFHVSxRQUFBLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztBQUNwQyxRQUFBLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztBQUNuRCw4QkFBOEI7QUFDakIsUUFBQSxxQkFBcUIsR0FBRyxPQUFPLENBQUM7QUFDaEMsUUFBQSxpQ0FBaUMsR0FBRywyQkFBMkIsQ0FBQztBQUM3RSw2Q0FBNkM7QUFDaEMsUUFBQSw0Q0FBNEMsR0FBRyxzQkFBc0IsQ0FBQztBQUNuRix5RUFBeUU7QUFDNUQsUUFBQSwyQ0FBMkMsR0FBRyw2QkFBNkIsQ0FBQztBQUN6RixtRUFBbUU7QUFDdEQsUUFBQSxxQ0FBcUMsR0FBRyx1QkFBdUIsQ0FBQztBQUNoRSxRQUFBLCtCQUErQixHQUFHLGlCQUFpQixDQUFDO0FBQ3BELFFBQUEsd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLFFBQUEsNEJBQTRCLEdBQUcsY0FBYyxDQUFDO0FBRTlDLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUF1QixDQUFDO0lBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0NBQXdCLENBQUM7SUFDbkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw2QkFBcUIsQ0FBQztJQUNoQyxDQUFDLENBQUMsT0FBTyxDQUFDLHlDQUFpQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxPQUFPLENBQUMsb0RBQTRDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtREFBMkMsQ0FBQztJQUN0RCxDQUFDLENBQUMsT0FBTyxDQUFDLDZDQUFxQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxPQUFPLENBQUMsdUNBQStCLENBQUM7SUFDMUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQ0FBd0IsQ0FBQztJQUNuQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9DQUE0QixDQUFDO0NBQ3hDLENBQUMsQ0FBQztBQUlIOztHQUVHO0FBQ1UsUUFBQSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FDdkM7SUFDRSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ0wsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3JCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNsQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDckIsTUFBTSxFQUFFLHFCQUFhO1FBQ3JCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixZQUFZLEVBQUUsbUNBQWdCO1FBQzlCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNyQixTQUFTLEVBQUUscUNBQWlCO1FBQzVCLFNBQVMsRUFBRSxxQ0FBaUI7UUFDNUIsVUFBVSxFQUFFLG1DQUFnQjtLQUM3QixDQUFDO0lBQ0YsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNSLE9BQU8sRUFBRSxtQ0FBZ0I7UUFDekIsYUFBYSxFQUFFLDRCQUFvQjtRQUNuQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDMUIsQ0FBQztDQUNILEVBQ0QsYUFBYSxDQUNkLENBQUM7QUFJRjs7R0FFRztBQUNVLFFBQUEsWUFBWSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQ25DO0lBQ0UsTUFBTSxFQUFFLHFCQUFhO0lBQ3JCLEtBQUssRUFBRSxtQ0FBZ0I7SUFDdkIsU0FBUyxFQUFFLHFDQUFpQjtJQUM1QixPQUFPLEVBQUUscUNBQWlCO0NBQzNCLEVBQ0QsY0FBYyxDQUNmLENBQUM7QUFHVyxRQUFBLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDaEQsc0NBQXVCO0lBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDTCxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDckIsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixVQUFVLEVBQUUsNkJBQWM7UUFDMUIsT0FBTyxFQUFFLDZCQUFjO0tBQ3hCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFJVSxRQUFBLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxZQUFZLENBQ3BEO0lBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNMLE1BQU0sRUFBRSxxQkFBYTtRQUNyQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDdEIsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixlQUFlLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDekIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3BCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixhQUFhLEVBQUUsNEJBQW9CO0tBQ3BDLENBQUM7Q0FDSCxFQUNELDBCQUEwQixDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgeyBCaWdJbnRGcm9tU3RyaW5nIH0gZnJvbSAnaW8tdHMtdHlwZXMvQmlnSW50RnJvbVN0cmluZyc7XG5pbXBvcnQgeyBEYXRlRnJvbUlTT1N0cmluZyB9IGZyb20gJ2lvLXRzLXR5cGVzL0RhdGVGcm9tSVNPU3RyaW5nJztcbmltcG9ydCB7IExpZ2h0bmluZ1BheW1lbnRSZXF1ZXN0LCBvcHRpb25hbFN0cmluZyB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuXG4vLyBjb2RlY3MgZm9yIGxpZ2h0bmluZyB3YWxsZXQgcGF5bWVudCByZWxhdGVkIGFwaXNcblxuZXhwb3J0IGNvbnN0IFBheW1lbnRTdGF0dXMgPSB0LnVuaW9uKFtcbiAgLy8gSW5pdGlhbCBzdGF0ZSB3aGVuIHBheW1lbnQgaXMgaW5pdGlhdGVkLlxuICAvLyBUcmFuc2l0aW9ucyB0byAnc2V0dGxlZCcgb3IgJ2ZhaWxlZCcgb24gTE5EIG5vdGlmaWNhdGlvbi5cbiAgdC5saXRlcmFsKCdpbl9mbGlnaHQnKSxcbiAgLy8gRmluYWwgc3RhdGUuXG4gIHQubGl0ZXJhbCgnc2V0dGxlZCcpLFxuICAvLyBGaW5hbCBzdGF0ZS5cbiAgdC5saXRlcmFsKCdmYWlsZWQnKSxcbl0pO1xuZXhwb3J0IHR5cGUgUGF5bWVudFN0YXR1cyA9IHQuVHlwZU9mPHR5cGVvZiBQYXltZW50U3RhdHVzPjtcblxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9USU1FT1VUID0gJ1RJTUVPVVQnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9OT19ST1VURSA9ICdOT19ST1VURSc7XG4vKiogQSBub24tcmVjb3ZlcmFibGUgZXJyb3IgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfRVJST1IgPSAnRVJST1InO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTkNPUlJFQ1RfREVUQUlMUyA9ICdJTkNPUlJFQ1RfUEFZTUVOVF9ERVRBSUxTJztcbi8qKiBJbnN1ZmZpY2llbnQgY2hhbm5lbCBvdXRib3VuZCBjYXBhY2l0eSAqL1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTlNVRkZJQ0lFTlRfQ0hBTk5FTF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9CQUxBTkNFJztcbi8qKiBJbnN1ZmZpY2llbnQgY3VzdG9kaWFsIGxpZ2h0bmluZyBiYWxhbmNlIGZvciB0aGUgY3VzdG9tZXIncyB3YWxsZXQgKi9cbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX1dBTExFVF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9XQUxMRVRfQkFMQU5DRSc7XG4vKiogRXhjZXNzIGN1c3RvZGlhbCBsaWdodG5pbmcgYmFsYW5jZSBmb3IgdGhlIGN1c3RvbWVyJ3Mgd2FsbGV0ICovXG5leHBvcnQgY29uc3QgUEFZTUVOVF9GQUlMVVJFX0VYQ0VTU19XQUxMRVRfQkFMQU5DRSA9ICdFWENFU1NfV0FMTEVUX0JBTEFOQ0UnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9JTlZPSUNFX0VYUElSRUQgPSAnSU5WT0lDRV9FWFBJUkVEJztcbmV4cG9ydCBjb25zdCBQQVlNRU5UX0ZBSUxVUkVfQ0FOQ0VMRUQgPSAnQ0FOQ0VMRUQnO1xuZXhwb3J0IGNvbnN0IFBBWU1FTlRfRkFJTFVSRV9GT1JDRV9GQUlMRUQgPSAnRk9SQ0VfRkFJTEVEJztcblxuZXhwb3J0IGNvbnN0IFBheW1lbnRGYWlsdXJlUmVhc29uID0gdC51bmlvbihbXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfVElNRU9VVCksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfTk9fUk9VVEUpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0VSUk9SKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9JTkNPUlJFQ1RfREVUQUlMUyksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX0NIQU5ORUxfQkFMQU5DRSksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfSU5TVUZGSUNJRU5UX1dBTExFVF9CQUxBTkNFKSxcbiAgdC5saXRlcmFsKFBBWU1FTlRfRkFJTFVSRV9FWENFU1NfV0FMTEVUX0JBTEFOQ0UpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0lOVk9JQ0VfRVhQSVJFRCksXG4gIHQubGl0ZXJhbChQQVlNRU5UX0ZBSUxVUkVfQ0FOQ0VMRUQpLFxuICB0LmxpdGVyYWwoUEFZTUVOVF9GQUlMVVJFX0ZPUkNFX0ZBSUxFRCksXG5dKTtcblxuZXhwb3J0IHR5cGUgUGF5bWVudEZhaWx1cmVSZWFzb24gPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudEZhaWx1cmVSZWFzb24+O1xuXG4vKipcbiAqIE9mZi1jaGFpbiBwYXltZW50IGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBQYXltZW50SW5mbyA9IHQuaW50ZXJzZWN0aW9uKFxuICBbXG4gICAgdC50eXBlKHtcbiAgICAgIHBheW1lbnRIYXNoOiB0LnN0cmluZyxcbiAgICAgIHdhbGxldElkOiB0LnN0cmluZyxcbiAgICAgIHR4UmVxdWVzdElkOiB0LnN0cmluZyxcbiAgICAgIHN0YXR1czogUGF5bWVudFN0YXR1cyxcbiAgICAgIGludm9pY2U6IHQuc3RyaW5nLFxuICAgICAgZmVlTGltaXRNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgICAgZGVzdGluYXRpb246IHQuc3RyaW5nLFxuICAgICAgdXBkYXRlZEF0OiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgICAgIGNyZWF0ZWRBdDogRGF0ZUZyb21JU09TdHJpbmcsXG4gICAgICBhbW91bnRNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgIH0pLFxuICAgIHQucGFydGlhbCh7XG4gICAgICBmZWVNc2F0OiBCaWdJbnRGcm9tU3RyaW5nLFxuICAgICAgZmFpbHVyZVJlYXNvbjogUGF5bWVudEZhaWx1cmVSZWFzb24sXG4gICAgICBwYXltZW50UHJlaW1hZ2U6IHQuc3RyaW5nLFxuICAgIH0pLFxuICBdLFxuICAnUGF5bWVudEluZm8nXG4pO1xuXG5leHBvcnQgdHlwZSBQYXltZW50SW5mbyA9IHQuVHlwZU9mPHR5cGVvZiBQYXltZW50SW5mbz47XG5cbi8qKlxuICogUGF5bWVudCBxdWVyeSBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBQYXltZW50UXVlcnkgPSB0LnBhcnRpYWwoXG4gIHtcbiAgICBzdGF0dXM6IFBheW1lbnRTdGF0dXMsXG4gICAgbGltaXQ6IEJpZ0ludEZyb21TdHJpbmcsXG4gICAgc3RhcnREYXRlOiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgICBlbmREYXRlOiBEYXRlRnJvbUlTT1N0cmluZyxcbiAgfSxcbiAgJ1BheW1lbnRRdWVyeSdcbik7XG5leHBvcnQgdHlwZSBQYXltZW50UXVlcnkgPSB0LlR5cGVPZjx0eXBlb2YgUGF5bWVudFF1ZXJ5PjtcblxuZXhwb3J0IGNvbnN0IFN1Ym1pdFBheW1lbnRQYXJhbXMgPSB0LmludGVyc2VjdGlvbihbXG4gIExpZ2h0bmluZ1BheW1lbnRSZXF1ZXN0LFxuICB0LnR5cGUoe1xuICAgIHBhc3NwaHJhc2U6IHQuc3RyaW5nLFxuICB9KSxcbiAgdC5wYXJ0aWFsKHtcbiAgICBzZXF1ZW5jZUlkOiBvcHRpb25hbFN0cmluZyxcbiAgICBjb21tZW50OiBvcHRpb25hbFN0cmluZyxcbiAgfSksXG5dKTtcblxuZXhwb3J0IHR5cGUgU3VibWl0UGF5bWVudFBhcmFtcyA9IHQuVHlwZU9mPHR5cGVvZiBTdWJtaXRQYXltZW50UGFyYW1zPjtcblxuZXhwb3J0IGNvbnN0IExuZENyZWF0ZVBheW1lbnRSZXNwb25zZSA9IHQuaW50ZXJzZWN0aW9uKFxuICBbXG4gICAgdC50eXBlKHtcbiAgICAgIHN0YXR1czogUGF5bWVudFN0YXR1cyxcbiAgICAgIHBheW1lbnRIYXNoOiB0LnN0cmluZyxcbiAgICB9KSxcbiAgICB0LnBhcnRpYWwoe1xuICAgICAgcGF5bWVudFByZWltYWdlOiB0LnN0cmluZyxcbiAgICAgIGFtb3VudE1zYXQ6IHQuc3RyaW5nLFxuICAgICAgZmVlTXNhdDogdC5zdHJpbmcsXG4gICAgICBmYWlsdXJlUmVhc29uOiBQYXltZW50RmFpbHVyZVJlYXNvbixcbiAgICB9KSxcbiAgXSxcbiAgJ0xuZENyZWF0ZVBheW1lbnRSZXNwb25zZSdcbik7XG5cbmV4cG9ydCB0eXBlIExuZENyZWF0ZVBheW1lbnRSZXNwb25zZSA9IHQuVHlwZU9mPHR5cGVvZiBMbmRDcmVhdGVQYXltZW50UmVzcG9uc2U+O1xuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!