PHP WebShell
Текущая директория: /opt/BitGoJS/modules/deser-lib/dist/src
Просмотр файла: cbor.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.transform = transform;
exports.untransform = untransform;
exports.serialize = serialize;
exports.deserialize = deserialize;
const cbor_1 = require("cbor");
/**
* Transform value into its canonical, serializable form.
* @param value - Value to transform.
* @returns Canonical, serializable form of value.
*/
function transform(value) {
if (value === null || value === undefined) {
return value;
}
if (typeof value === 'string') {
// Transform hex strings to buffers.
if (value.startsWith('0x')) {
if (!value.match(/^0x([0-9a-fA-F]{2})*$/)) {
throw new Error('0x prefixed string contains non-hex characters.');
}
return Buffer.from(value.slice(2), 'hex');
}
else if (value.startsWith('\\0x')) {
return value.slice(1);
}
}
else if (value instanceof Array) {
value = [...value];
return value.map(transform);
}
else if (value instanceof Object) {
const properties = Object.getOwnPropertyNames(value);
return properties.reduce((acc, name) => {
acc[name] = transform(value[name]);
return acc;
}, {});
}
return value;
}
/**
* Untransform value into its human readable form.
* @param value - Value to untransform.
* @returns Untransformed, human readable form of value.
*/
function untransform(value) {
if (Buffer.isBuffer(value)) {
return '0x' + value.toString('hex');
}
else if (typeof value === 'string') {
if (value.startsWith('0x')) {
return '\\' + value;
}
}
else if (value instanceof Array) {
return value.map(untransform);
}
else if (value instanceof Object) {
const properties = Object.getOwnPropertyNames(value);
return properties.reduce((acc, name) => {
acc[name] = untransform(value[name]);
return acc;
}, {});
}
return value;
}
/**
* Serialize a value.
* @param value - Value to serialize.
* @returns Buffer representing serialized value.
*/
function serialize(value) {
return (0, cbor_1.encode)(transform(value));
}
/**
* Deserialize a value.
* @param value - Buffer to deserialize.
* @returns Deserialized value.
*/
function deserialize(value) {
return untransform((0, cbor_1.decodeFirstSync)(value));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Jvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOEJBeUJDO0FBT0Qsa0NBaUJDO0FBT0QsOEJBRUM7QUFPRCxrQ0FFQztBQTFFRCwrQkFBK0M7QUFFL0M7Ozs7R0FJRztBQUNILFNBQWdCLFNBQVMsQ0FBSSxLQUFRO0lBQ25DLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixvQ0FBb0M7UUFDcEMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7WUFDckUsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFpQixDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDbEMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQWlCLENBQUM7UUFDbkMsT0FBUSxLQUFtQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQWlCLENBQUM7SUFDN0UsQ0FBQztTQUFNLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQWlCLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUksS0FBUTtJQUNyQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztTQUFNLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQWlCLENBQUM7SUFDaEQsQ0FBQztTQUFNLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQWlCLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixTQUFTLENBQUksS0FBUTtJQUNuQyxPQUFPLElBQUEsYUFBTSxFQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQWE7SUFDdkMsT0FBTyxXQUFXLENBQUMsSUFBQSxzQkFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZUZpcnN0U3luYywgZW5jb2RlIH0gZnJvbSAnY2Jvcic7XG5cbi8qKlxuICogVHJhbnNmb3JtIHZhbHVlIGludG8gaXRzIGNhbm9uaWNhbCwgc2VyaWFsaXphYmxlIGZvcm0uXG4gKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyBDYW5vbmljYWwsIHNlcmlhbGl6YWJsZSBmb3JtIG9mIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtPFQ+KHZhbHVlOiBUKTogVCB8IEJ1ZmZlciB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gVHJhbnNmb3JtIGhleCBzdHJpbmdzIHRvIGJ1ZmZlcnMuXG4gICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJzB4JykpIHtcbiAgICAgIGlmICghdmFsdWUubWF0Y2goL14weChbMC05YS1mQS1GXXsyfSkqJC8pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignMHggcHJlZml4ZWQgc3RyaW5nIGNvbnRhaW5zIG5vbi1oZXggY2hhcmFjdGVycy4nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbSh2YWx1ZS5zbGljZSgyKSwgJ2hleCcpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUuc3RhcnRzV2l0aCgnXFxcXDB4JykpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5zbGljZSgxKSBhcyB1bmtub3duIGFzIFQ7XG4gICAgfVxuICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICB2YWx1ZSA9IFsuLi52YWx1ZV0gYXMgdW5rbm93biBhcyBUO1xuICAgIHJldHVybiAodmFsdWUgYXMgdW5rbm93biBhcyBBcnJheTx1bmtub3duPikubWFwKHRyYW5zZm9ybSkgYXMgdW5rbm93biBhcyBUO1xuICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbHVlKTtcbiAgICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2UoKGFjYywgbmFtZSkgPT4ge1xuICAgICAgYWNjW25hbWVdID0gdHJhbnNmb3JtKHZhbHVlW25hbWVdKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pIGFzIHVua25vd24gYXMgVDtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogVW50cmFuc2Zvcm0gdmFsdWUgaW50byBpdHMgaHVtYW4gcmVhZGFibGUgZm9ybS5cbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIHVudHJhbnNmb3JtLlxuICogQHJldHVybnMgVW50cmFuc2Zvcm1lZCwgaHVtYW4gcmVhZGFibGUgZm9ybSBvZiB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVudHJhbnNmb3JtPFQ+KHZhbHVlOiBUKTogVCB8IHN0cmluZyB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgcmV0dXJuICcweCcgKyB2YWx1ZS50b1N0cmluZygnaGV4Jyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCcweCcpKSB7XG4gICAgICByZXR1cm4gJ1xcXFwnICsgdmFsdWU7XG4gICAgfVxuICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHVudHJhbnNmb3JtKSBhcyB1bmtub3duIGFzIFQ7XG4gIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsdWUpO1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLnJlZHVjZSgoYWNjLCBuYW1lKSA9PiB7XG4gICAgICBhY2NbbmFtZV0gPSB1bnRyYW5zZm9ybSh2YWx1ZVtuYW1lXSk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KSBhcyB1bmtub3duIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHZhbHVlLlxuICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gc2VyaWFsaXplLlxuICogQHJldHVybnMgQnVmZmVyIHJlcHJlc2VudGluZyBzZXJpYWxpemVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplPFQ+KHZhbHVlOiBUKTogQnVmZmVyIHtcbiAgcmV0dXJuIGVuY29kZSh0cmFuc2Zvcm0odmFsdWUpKTtcbn1cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZSBhIHZhbHVlLlxuICogQHBhcmFtIHZhbHVlIC0gQnVmZmVyIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybnMgRGVzZXJpYWxpemVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemUodmFsdWU6IEJ1ZmZlcik6IHVua25vd24ge1xuICByZXR1cm4gdW50cmFuc2Zvcm0oZGVjb2RlRmlyc3RTeW5jKHZhbHVlKSk7XG59XG4iXX0=Выполнить команду
Для локальной разработки. Не используйте в интернете!