PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-coin-sui/dist/src/lib/mystenlab/builder

Просмотр файла: Transactions.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Transactions = exports.TransactionType = exports.PublishTransaction = exports.MakeMoveVecTransaction = exports.MergeCoinsTransaction = exports.SplitCoinsTransaction = exports.TransferObjectsTransaction = exports.MoveCallTransaction = exports.PureTransactionArgument = exports.ObjectTransactionArgument = exports.TransactionArgument = exports.TransactionBlockInput = void 0;
exports.getTransactionType = getTransactionType;
const bcs_1 = require("@mysten/bcs");
const superstruct_1 = require("superstruct");
const common_1 = require("../types/common");
const utils_1 = require("./utils");
const option = (some) => (0, superstruct_1.union)([(0, superstruct_1.object)({ None: (0, superstruct_1.literal)(null) }), (0, superstruct_1.object)({ Some: some })]);
exports.TransactionBlockInput = (0, superstruct_1.object)({
    kind: (0, superstruct_1.literal)('Input'),
    index: (0, superstruct_1.integer)(),
    value: (0, superstruct_1.optional)((0, superstruct_1.any)()),
    type: (0, superstruct_1.optional)((0, superstruct_1.union)([(0, superstruct_1.literal)('pure'), (0, superstruct_1.literal)('object')])),
});
const TransactionArgumentTypes = [
    exports.TransactionBlockInput,
    (0, superstruct_1.object)({ kind: (0, superstruct_1.literal)('GasCoin') }),
    (0, superstruct_1.object)({ kind: (0, superstruct_1.literal)('Result'), index: (0, superstruct_1.integer)() }),
    (0, superstruct_1.object)({
        kind: (0, superstruct_1.literal)('NestedResult'),
        index: (0, superstruct_1.integer)(),
        resultIndex: (0, superstruct_1.integer)(),
    }),
];
// Generic transaction argument
exports.TransactionArgument = (0, superstruct_1.union)([...TransactionArgumentTypes]);
// Transaction argument referring to an object:
exports.ObjectTransactionArgument = (0, superstruct_1.union)([...TransactionArgumentTypes]);
exports.ObjectTransactionArgument[utils_1.TRANSACTION_TYPE] = {
    kind: 'object',
};
const PureTransactionArgument = (type) => {
    const struct = (0, superstruct_1.union)([...TransactionArgumentTypes]);
    struct[utils_1.TRANSACTION_TYPE] = {
        kind: 'pure',
        type,
    };
    return struct;
};
exports.PureTransactionArgument = PureTransactionArgument;
exports.MoveCallTransaction = (0, superstruct_1.object)({
    kind: (0, superstruct_1.literal)('MoveCall'),
    target: (0, superstruct_1.define)('target', (0, superstruct_1.string)().validator),
    typeArguments: (0, superstruct_1.array)((0, superstruct_1.string)()),
    arguments: (0, superstruct_1.array)(exports.TransactionArgument),
});
exports.TransferObjectsTransaction = (0, superstruct_1.object)({
    kind: (0, superstruct_1.literal)('TransferObjects'),
    objects: (0, superstruct_1.array)(exports.ObjectTransactionArgument),
    address: (0, exports.PureTransactionArgument)(bcs_1.BCS.ADDRESS),
});
exports.SplitCoinsTransaction = (0, superstruct_1.object)({
    kind: (0, superstruct_1.literal)('SplitCoins'),
    coin: exports.ObjectTransactionArgument,
    amounts: (0, superstruct_1.array)((0, exports.PureTransactionArgument)('u64')),
});
exports.MergeCoinsTransaction = (0, superstruct_1.object)({
    kind: (0, superstruct_1.literal)('MergeCoins'),
    destination: exports.ObjectTransactionArgument,
    sources: (0, superstruct_1.array)(exports.ObjectTransactionArgument),
});
exports.MakeMoveVecTransaction = (0, superstruct_1.object)({
    kind: (0, superstruct_1.literal)('MakeMoveVec'),
    type: (0, superstruct_1.optional)(option((0, superstruct_1.string)())),
    objects: (0, superstruct_1.array)(exports.ObjectTransactionArgument),
});
exports.PublishTransaction = (0, superstruct_1.object)({
    kind: (0, superstruct_1.literal)('Publish'),
    modules: (0, superstruct_1.array)((0, superstruct_1.array)((0, superstruct_1.integer)())),
    dependencies: (0, superstruct_1.array)(common_1.ObjectId),
});
const TransactionTypes = [
    exports.MoveCallTransaction,
    exports.TransferObjectsTransaction,
    exports.SplitCoinsTransaction,
    exports.MergeCoinsTransaction,
    exports.PublishTransaction,
    exports.MakeMoveVecTransaction,
];
exports.TransactionType = (0, superstruct_1.union)([...TransactionTypes]);
function getTransactionType(data) {
    (0, superstruct_1.assert)(data, exports.TransactionType);
    return TransactionTypes.find((schema) => (0, superstruct_1.is)(data, schema));
}
/**
 * Simple helpers used to construct transactions:
 */
exports.Transactions = {
    MoveCall(input) {
        return (0, utils_1.create)({
            kind: 'MoveCall',
            target: input.target,
            arguments: input.arguments ?? [],
            typeArguments: input.typeArguments ?? [],
        }, exports.MoveCallTransaction);
    },
    TransferObjects(objects, address) {
        return (0, utils_1.create)({ kind: 'TransferObjects', objects, address }, exports.TransferObjectsTransaction);
    },
    SplitCoins(coin, amounts) {
        return (0, utils_1.create)({ kind: 'SplitCoins', coin, amounts }, exports.SplitCoinsTransaction);
    },
    MergeCoins(destination, sources) {
        return (0, utils_1.create)({ kind: 'MergeCoins', destination, sources }, exports.MergeCoinsTransaction);
    },
    Publish(modules, dependencies) {
        return (0, utils_1.create)({ kind: 'Publish', modules, dependencies }, exports.PublishTransaction);
    },
    MakeMoveVec({ type, objects, }) {
        return (0, utils_1.create)({
            kind: 'MakeMoveVec',
            type: type ? { Some: type } : { None: null },
            objects,
        }, exports.MakeMoveVecTransaction);
    },
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvYnVpbGRlci9UcmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbUhBLGdEQUdDO0FBdEhELHFDQUFrQztBQUNsQyw2Q0FjcUI7QUFDckIsNENBQTJDO0FBQzNDLG1DQUFzRTtBQUV0RSxNQUFNLE1BQU0sR0FBRyxDQUE2QixJQUFPLEVBQUUsRUFBRSxDQUNyRCxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxJQUFBLG9CQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBQSxxQkFBTyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFBLG9CQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdEQsUUFBQSxxQkFBcUIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDMUMsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyxPQUFPLENBQUM7SUFDdEIsS0FBSyxFQUFFLElBQUEscUJBQU8sR0FBRTtJQUNoQixLQUFLLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsaUJBQUcsR0FBRSxDQUFDO0lBQ3RCLElBQUksRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxxQkFBTyxFQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEscUJBQU8sRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDNUQsQ0FBQyxDQUFDO0FBR0gsTUFBTSx3QkFBd0IsR0FBRztJQUMvQiw2QkFBcUI7SUFDckIsSUFBQSxvQkFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQ3BDLElBQUEsb0JBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUEscUJBQU8sR0FBRSxFQUFFLENBQUM7SUFDckQsSUFBQSxvQkFBTSxFQUFDO1FBQ0wsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyxjQUFjLENBQUM7UUFDN0IsS0FBSyxFQUFFLElBQUEscUJBQU8sR0FBRTtRQUNoQixXQUFXLEVBQUUsSUFBQSxxQkFBTyxHQUFFO0tBQ3ZCLENBQUM7Q0FDTSxDQUFDO0FBRVgsK0JBQStCO0FBQ2xCLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7QUFHeEUsK0NBQStDO0FBQ2xDLFFBQUEseUJBQXlCLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7QUFDN0UsaUNBQWlDLENBQUMsd0JBQWdCLENBQUMsR0FBRztJQUNyRCxJQUFJLEVBQUUsUUFBUTtDQUNNLENBQUM7QUFFaEIsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUEsbUJBQUssRUFBQyxDQUFDLEdBQUcsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQ25ELE1BQWMsQ0FBQyx3QkFBZ0IsQ0FBQyxHQUFHO1FBQ2xDLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSTtLQUNnQixDQUFDO0lBQ3ZCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQVBXLFFBQUEsdUJBQXVCLDJCQU9sQztBQUVXLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ3hDLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsVUFBVSxDQUFDO0lBQ3pCLE1BQU0sRUFBRSxJQUFBLG9CQUFNLEVBQW9DLFFBQVEsRUFBRSxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxTQUFTLENBQUM7SUFDL0UsYUFBYSxFQUFFLElBQUEsbUJBQUssRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztJQUM5QixTQUFTLEVBQUUsSUFBQSxtQkFBSyxFQUFDLDJCQUFtQixDQUFDO0NBQ3RDLENBQUMsQ0FBQztBQUdVLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQy9DLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsaUJBQWlCLENBQUM7SUFDaEMsT0FBTyxFQUFFLElBQUEsbUJBQUssRUFBQyxpQ0FBeUIsQ0FBQztJQUN6QyxPQUFPLEVBQUUsSUFBQSwrQkFBdUIsRUFBQyxTQUFHLENBQUMsT0FBTyxDQUFDO0NBQzlDLENBQUMsQ0FBQztBQUdVLFFBQUEscUJBQXFCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzFDLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsWUFBWSxDQUFDO0lBQzNCLElBQUksRUFBRSxpQ0FBeUI7SUFDL0IsT0FBTyxFQUFFLElBQUEsbUJBQUssRUFBQyxJQUFBLCtCQUF1QixFQUFDLEtBQUssQ0FBQyxDQUFDO0NBQy9DLENBQUMsQ0FBQztBQUdVLFFBQUEscUJBQXFCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzFDLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsWUFBWSxDQUFDO0lBQzNCLFdBQVcsRUFBRSxpQ0FBeUI7SUFDdEMsT0FBTyxFQUFFLElBQUEsbUJBQUssRUFBQyxpQ0FBeUIsQ0FBQztDQUMxQyxDQUFDLENBQUM7QUFHVSxRQUFBLHNCQUFzQixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUMzQyxJQUFJLEVBQUUsSUFBQSxxQkFBTyxFQUFDLGFBQWEsQ0FBQztJQUM1QixJQUFJLEVBQUUsSUFBQSxzQkFBUSxFQUFDLE1BQU0sQ0FBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxJQUFBLG1CQUFLLEVBQUMsaUNBQXlCLENBQUM7Q0FDMUMsQ0FBQyxDQUFDO0FBR1UsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDdkMsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyxTQUFTLENBQUM7SUFDeEIsT0FBTyxFQUFFLElBQUEsbUJBQUssRUFBQyxJQUFBLG1CQUFLLEVBQUMsSUFBQSxxQkFBTyxHQUFFLENBQUMsQ0FBQztJQUNoQyxZQUFZLEVBQUUsSUFBQSxtQkFBSyxFQUFDLGlCQUFRLENBQUM7Q0FDOUIsQ0FBQyxDQUFDO0FBR0gsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QiwyQkFBbUI7SUFDbkIsa0NBQTBCO0lBQzFCLDZCQUFxQjtJQUNyQiw2QkFBcUI7SUFDckIsMEJBQWtCO0lBQ2xCLDhCQUFzQjtDQUNkLENBQUM7QUFFRSxRQUFBLGVBQWUsR0FBRyxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUc1RCxTQUFnQixrQkFBa0IsQ0FBQyxJQUFhO0lBQzlDLElBQUEsb0JBQU0sRUFBQyxJQUFJLEVBQUUsdUJBQWUsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGdCQUFFLEVBQUMsSUFBSSxFQUFFLE1BQWdCLENBQUMsQ0FBRSxDQUFDO0FBQ3hFLENBQUM7QUFFRDs7R0FFRztBQUNVLFFBQUEsWUFBWSxHQUFHO0lBQzFCLFFBQVEsQ0FDTixLQUdDO1FBRUQsT0FBTyxJQUFBLGNBQU0sRUFDWDtZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ2hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUU7U0FDekMsRUFDRCwyQkFBbUIsQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFDRCxlQUFlLENBQUMsT0FBOEIsRUFBRSxPQUE0QjtRQUMxRSxPQUFPLElBQUEsY0FBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxrQ0FBMEIsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBeUIsRUFBRSxPQUE4QjtRQUNsRSxPQUFPLElBQUEsY0FBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsNkJBQXFCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsVUFBVSxDQUFDLFdBQWdDLEVBQUUsT0FBOEI7UUFDekUsT0FBTyxJQUFBLGNBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLDZCQUFxQixDQUFDLENBQUM7SUFDckYsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFtQixFQUFFLFlBQXdCO1FBQ25ELE9BQU8sSUFBQSxjQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSwwQkFBa0IsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxXQUFXLENBQUMsRUFDVixJQUFJLEVBQ0osT0FBTyxHQUdSO1FBQ0MsT0FBTyxJQUFBLGNBQU0sRUFDWDtZQUNFLElBQUksRUFBRSxhQUFhO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDNUMsT0FBTztTQUNSLEVBQ0QsOEJBQXNCLENBQ3ZCLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJDUyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCB7XG4gIGlzLFxuICBhbnksXG4gIGFycmF5LFxuICBJbmZlcixcbiAgaW50ZWdlcixcbiAgbGl0ZXJhbCxcbiAgb2JqZWN0LFxuICBvcHRpb25hbCxcbiAgc3RyaW5nLFxuICB1bmlvbixcbiAgYXNzZXJ0LFxuICBTdHJ1Y3QsXG4gIGRlZmluZSxcbn0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgT2JqZWN0SWQgfSBmcm9tICcuLi90eXBlcy9jb21tb24nO1xuaW1wb3J0IHsgVFJBTlNBQ1RJT05fVFlQRSwgV2VsbEtub3duRW5jb2RpbmcsIGNyZWF0ZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBvcHRpb24gPSA8VCBleHRlbmRzIFN0cnVjdDxhbnksIGFueT4+KHNvbWU6IFQpID0+XG4gIHVuaW9uKFtvYmplY3QoeyBOb25lOiBsaXRlcmFsKG51bGwpIH0pLCBvYmplY3QoeyBTb21lOiBzb21lIH0pXSk7XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkJsb2NrSW5wdXQgPSBvYmplY3Qoe1xuICBraW5kOiBsaXRlcmFsKCdJbnB1dCcpLFxuICBpbmRleDogaW50ZWdlcigpLFxuICB2YWx1ZTogb3B0aW9uYWwoYW55KCkpLFxuICB0eXBlOiBvcHRpb25hbCh1bmlvbihbbGl0ZXJhbCgncHVyZScpLCBsaXRlcmFsKCdvYmplY3QnKV0pKSxcbn0pO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25CbG9ja0lucHV0ID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uQmxvY2tJbnB1dD47XG5cbmNvbnN0IFRyYW5zYWN0aW9uQXJndW1lbnRUeXBlcyA9IFtcbiAgVHJhbnNhY3Rpb25CbG9ja0lucHV0LFxuICBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdHYXNDb2luJykgfSksXG4gIG9iamVjdCh7IGtpbmQ6IGxpdGVyYWwoJ1Jlc3VsdCcpLCBpbmRleDogaW50ZWdlcigpIH0pLFxuICBvYmplY3Qoe1xuICAgIGtpbmQ6IGxpdGVyYWwoJ05lc3RlZFJlc3VsdCcpLFxuICAgIGluZGV4OiBpbnRlZ2VyKCksXG4gICAgcmVzdWx0SW5kZXg6IGludGVnZXIoKSxcbiAgfSksXG5dIGFzIGNvbnN0O1xuXG4vLyBHZW5lcmljIHRyYW5zYWN0aW9uIGFyZ3VtZW50XG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25Bcmd1bWVudCA9IHVuaW9uKFsuLi5UcmFuc2FjdGlvbkFyZ3VtZW50VHlwZXNdKTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uQXJndW1lbnQgPSBJbmZlcjx0eXBlb2YgVHJhbnNhY3Rpb25Bcmd1bWVudD47XG5cbi8vIFRyYW5zYWN0aW9uIGFyZ3VtZW50IHJlZmVycmluZyB0byBhbiBvYmplY3Q6XG5leHBvcnQgY29uc3QgT2JqZWN0VHJhbnNhY3Rpb25Bcmd1bWVudCA9IHVuaW9uKFsuLi5UcmFuc2FjdGlvbkFyZ3VtZW50VHlwZXNdKTtcbihPYmplY3RUcmFuc2FjdGlvbkFyZ3VtZW50IGFzIGFueSlbVFJBTlNBQ1RJT05fVFlQRV0gPSB7XG4gIGtpbmQ6ICdvYmplY3QnLFxufSBhcyBXZWxsS25vd25FbmNvZGluZztcblxuZXhwb3J0IGNvbnN0IFB1cmVUcmFuc2FjdGlvbkFyZ3VtZW50ID0gKHR5cGU6IHN0cmluZykgPT4ge1xuICBjb25zdCBzdHJ1Y3QgPSB1bmlvbihbLi4uVHJhbnNhY3Rpb25Bcmd1bWVudFR5cGVzXSk7XG4gIChzdHJ1Y3QgYXMgYW55KVtUUkFOU0FDVElPTl9UWVBFXSA9IHtcbiAgICBraW5kOiAncHVyZScsXG4gICAgdHlwZSxcbiAgfSBhcyBXZWxsS25vd25FbmNvZGluZztcbiAgcmV0dXJuIHN0cnVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBNb3ZlQ2FsbFRyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAga2luZDogbGl0ZXJhbCgnTW92ZUNhbGwnKSxcbiAgdGFyZ2V0OiBkZWZpbmU8YCR7c3RyaW5nfTo6JHtzdHJpbmd9Ojoke3N0cmluZ31gPigndGFyZ2V0Jywgc3RyaW5nKCkudmFsaWRhdG9yKSxcbiAgdHlwZUFyZ3VtZW50czogYXJyYXkoc3RyaW5nKCkpLFxuICBhcmd1bWVudHM6IGFycmF5KFRyYW5zYWN0aW9uQXJndW1lbnQpLFxufSk7XG5leHBvcnQgdHlwZSBNb3ZlQ2FsbFRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIE1vdmVDYWxsVHJhbnNhY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgVHJhbnNmZXJPYmplY3RzVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBraW5kOiBsaXRlcmFsKCdUcmFuc2Zlck9iamVjdHMnKSxcbiAgb2JqZWN0czogYXJyYXkoT2JqZWN0VHJhbnNhY3Rpb25Bcmd1bWVudCksXG4gIGFkZHJlc3M6IFB1cmVUcmFuc2FjdGlvbkFyZ3VtZW50KEJDUy5BRERSRVNTKSxcbn0pO1xuZXhwb3J0IHR5cGUgVHJhbnNmZXJPYmplY3RzVHJhbnNhY3Rpb24gPSBJbmZlcjx0eXBlb2YgVHJhbnNmZXJPYmplY3RzVHJhbnNhY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgU3BsaXRDb2luc1RyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAga2luZDogbGl0ZXJhbCgnU3BsaXRDb2lucycpLFxuICBjb2luOiBPYmplY3RUcmFuc2FjdGlvbkFyZ3VtZW50LFxuICBhbW91bnRzOiBhcnJheShQdXJlVHJhbnNhY3Rpb25Bcmd1bWVudCgndTY0JykpLFxufSk7XG5leHBvcnQgdHlwZSBTcGxpdENvaW5zVHJhbnNhY3Rpb24gPSBJbmZlcjx0eXBlb2YgU3BsaXRDb2luc1RyYW5zYWN0aW9uPjtcblxuZXhwb3J0IGNvbnN0IE1lcmdlQ29pbnNUcmFuc2FjdGlvbiA9IG9iamVjdCh7XG4gIGtpbmQ6IGxpdGVyYWwoJ01lcmdlQ29pbnMnKSxcbiAgZGVzdGluYXRpb246IE9iamVjdFRyYW5zYWN0aW9uQXJndW1lbnQsXG4gIHNvdXJjZXM6IGFycmF5KE9iamVjdFRyYW5zYWN0aW9uQXJndW1lbnQpLFxufSk7XG5leHBvcnQgdHlwZSBNZXJnZUNvaW5zVHJhbnNhY3Rpb24gPSBJbmZlcjx0eXBlb2YgTWVyZ2VDb2luc1RyYW5zYWN0aW9uPjtcblxuZXhwb3J0IGNvbnN0IE1ha2VNb3ZlVmVjVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBraW5kOiBsaXRlcmFsKCdNYWtlTW92ZVZlYycpLFxuICB0eXBlOiBvcHRpb25hbChvcHRpb24oc3RyaW5nKCkpKSxcbiAgb2JqZWN0czogYXJyYXkoT2JqZWN0VHJhbnNhY3Rpb25Bcmd1bWVudCksXG59KTtcbmV4cG9ydCB0eXBlIE1ha2VNb3ZlVmVjVHJhbnNhY3Rpb24gPSBJbmZlcjx0eXBlb2YgTWFrZU1vdmVWZWNUcmFuc2FjdGlvbj47XG5cbmV4cG9ydCBjb25zdCBQdWJsaXNoVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBraW5kOiBsaXRlcmFsKCdQdWJsaXNoJyksXG4gIG1vZHVsZXM6IGFycmF5KGFycmF5KGludGVnZXIoKSkpLFxuICBkZXBlbmRlbmNpZXM6IGFycmF5KE9iamVjdElkKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVibGlzaFRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIFB1Ymxpc2hUcmFuc2FjdGlvbj47XG5cbmNvbnN0IFRyYW5zYWN0aW9uVHlwZXMgPSBbXG4gIE1vdmVDYWxsVHJhbnNhY3Rpb24sXG4gIFRyYW5zZmVyT2JqZWN0c1RyYW5zYWN0aW9uLFxuICBTcGxpdENvaW5zVHJhbnNhY3Rpb24sXG4gIE1lcmdlQ29pbnNUcmFuc2FjdGlvbixcbiAgUHVibGlzaFRyYW5zYWN0aW9uLFxuICBNYWtlTW92ZVZlY1RyYW5zYWN0aW9uLFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uVHlwZSA9IHVuaW9uKFsuLi5UcmFuc2FjdGlvblR5cGVzXSk7XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvblR5cGUgPSBJbmZlcjx0eXBlb2YgVHJhbnNhY3Rpb25UeXBlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZShkYXRhOiB1bmtub3duKSB7XG4gIGFzc2VydChkYXRhLCBUcmFuc2FjdGlvblR5cGUpO1xuICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlcy5maW5kKChzY2hlbWEpID0+IGlzKGRhdGEsIHNjaGVtYSBhcyBTdHJ1Y3QpKSE7XG59XG5cbi8qKlxuICogU2ltcGxlIGhlbHBlcnMgdXNlZCB0byBjb25zdHJ1Y3QgdHJhbnNhY3Rpb25zOlxuICovXG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25zID0ge1xuICBNb3ZlQ2FsbChcbiAgICBpbnB1dDogT21pdDxNb3ZlQ2FsbFRyYW5zYWN0aW9uLCAna2luZCcgfCAnYXJndW1lbnRzJyB8ICd0eXBlQXJndW1lbnRzJz4gJiB7XG4gICAgICBhcmd1bWVudHM/OiBUcmFuc2FjdGlvbkFyZ3VtZW50W107XG4gICAgICB0eXBlQXJndW1lbnRzPzogc3RyaW5nW107XG4gICAgfVxuICApOiBNb3ZlQ2FsbFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gY3JlYXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnTW92ZUNhbGwnLFxuICAgICAgICB0YXJnZXQ6IGlucHV0LnRhcmdldCxcbiAgICAgICAgYXJndW1lbnRzOiBpbnB1dC5hcmd1bWVudHMgPz8gW10sXG4gICAgICAgIHR5cGVBcmd1bWVudHM6IGlucHV0LnR5cGVBcmd1bWVudHMgPz8gW10sXG4gICAgICB9LFxuICAgICAgTW92ZUNhbGxUcmFuc2FjdGlvblxuICAgICk7XG4gIH0sXG4gIFRyYW5zZmVyT2JqZWN0cyhvYmplY3RzOiBUcmFuc2FjdGlvbkFyZ3VtZW50W10sIGFkZHJlc3M6IFRyYW5zYWN0aW9uQXJndW1lbnQpOiBUcmFuc2Zlck9iamVjdHNUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIGNyZWF0ZSh7IGtpbmQ6ICdUcmFuc2Zlck9iamVjdHMnLCBvYmplY3RzLCBhZGRyZXNzIH0sIFRyYW5zZmVyT2JqZWN0c1RyYW5zYWN0aW9uKTtcbiAgfSxcbiAgU3BsaXRDb2lucyhjb2luOiBUcmFuc2FjdGlvbkFyZ3VtZW50LCBhbW91bnRzOiBUcmFuc2FjdGlvbkFyZ3VtZW50W10pOiBTcGxpdENvaW5zVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBjcmVhdGUoeyBraW5kOiAnU3BsaXRDb2lucycsIGNvaW4sIGFtb3VudHMgfSwgU3BsaXRDb2luc1RyYW5zYWN0aW9uKTtcbiAgfSxcbiAgTWVyZ2VDb2lucyhkZXN0aW5hdGlvbjogVHJhbnNhY3Rpb25Bcmd1bWVudCwgc291cmNlczogVHJhbnNhY3Rpb25Bcmd1bWVudFtdKTogTWVyZ2VDb2luc1RyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gY3JlYXRlKHsga2luZDogJ01lcmdlQ29pbnMnLCBkZXN0aW5hdGlvbiwgc291cmNlcyB9LCBNZXJnZUNvaW5zVHJhbnNhY3Rpb24pO1xuICB9LFxuICBQdWJsaXNoKG1vZHVsZXM6IG51bWJlcltdW10sIGRlcGVuZGVuY2llczogT2JqZWN0SWRbXSk6IFB1Ymxpc2hUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIGNyZWF0ZSh7IGtpbmQ6ICdQdWJsaXNoJywgbW9kdWxlcywgZGVwZW5kZW5jaWVzIH0sIFB1Ymxpc2hUcmFuc2FjdGlvbik7XG4gIH0sXG4gIE1ha2VNb3ZlVmVjKHtcbiAgICB0eXBlLFxuICAgIG9iamVjdHMsXG4gIH06IE9taXQ8TWFrZU1vdmVWZWNUcmFuc2FjdGlvbiwgJ2tpbmQnIHwgJ3R5cGUnPiAmIHtcbiAgICB0eXBlPzogc3RyaW5nO1xuICB9KTogTWFrZU1vdmVWZWNUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIGNyZWF0ZShcbiAgICAgIHtcbiAgICAgICAga2luZDogJ01ha2VNb3ZlVmVjJyxcbiAgICAgICAgdHlwZTogdHlwZSA/IHsgU29tZTogdHlwZSB9IDogeyBOb25lOiBudWxsIH0sXG4gICAgICAgIG9iamVjdHMsXG4gICAgICB9LFxuICAgICAgTWFrZU1vdmVWZWNUcmFuc2FjdGlvblxuICAgICk7XG4gIH0sXG59O1xuIl19

Выполнить команду


Для локальной разработки. Не используйте в интернете!