PHP WebShell
Текущая директория: /opt/BitGoJS/modules/abstract-lightning/dist/test/unit/lightning
Просмотр файла: signableJson.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const lightning_1 = require("../../../src/lightning");
const assert_1 = __importDefault(require("assert"));
describe('canonicalizeObject', function () {
it('should return the canonicalized object with sorted keys', function () {
const input = { b: 1, a: 2 };
const expected = { a: 2, b: 1 };
const result = (0, lightning_1.canonicalizeObject)(input);
assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
});
it('should handle nested objects and sort their keys', function () {
const input = { b: { d: 4, c: 3 }, a: 2 };
const expected = { a: 2, b: { c: 3, d: 4 } };
const result = (0, lightning_1.canonicalizeObject)(input);
assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
});
it('should handle arrays within objects', function () {
const input = { b: [3, 2, 1], a: 2 };
const expected = { a: 2, b: [3, 2, 1] };
const result = (0, lightning_1.canonicalizeObject)(input);
assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
});
it('should handle arrays of objects and sort their keys', function () {
const input = [
{ b: 2, a: 1 },
{ d: 4, c: 3 },
];
const expected = [
{ a: 1, b: 2 },
{ c: 3, d: 4 },
];
const result = (0, lightning_1.canonicalizeObject)(input);
assert_1.default.notDeepStrictEqual(JSON.stringify(input), JSON.stringify(expected));
assert_1.default.deepStrictEqual(JSON.stringify(result), JSON.stringify(expected));
});
it('should return primitive values as is', function () {
assert_1.default.strictEqual(JSON.stringify((0, lightning_1.canonicalizeObject)(42)), JSON.stringify(42));
assert_1.default.strictEqual(JSON.stringify((0, lightning_1.canonicalizeObject)('string')), JSON.stringify('string'));
});
it('should throw an error for invalid object types', function () {
assert_1.default.throws(() => (0, lightning_1.canonicalizeObject)(null), /Invalid object type/);
assert_1.default.throws(() => (0, lightning_1.canonicalizeObject)(undefined), /Invalid object type/);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFibGVKc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2xpZ2h0bmluZy9zaWduYWJsZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBNEQ7QUFDNUQsb0RBQTRCO0FBRTVCLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixFQUFFLENBQUMseURBQXlELEVBQUU7UUFDNUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQWtCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsZ0JBQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMzRSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3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QUUsQ0FBQyxJQUFBLDhCQUFrQixFQUFDLFNBQWtCLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYW5vbmljYWxpemVPYmplY3QgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGlnaHRuaW5nJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZGVzY3JpYmUoJ2Nhbm9uaWNhbGl6ZU9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGNhbm9uaWNhbGl6ZWQgb2JqZWN0IHdpdGggc29ydGVkIGtleXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB7IGI6IDEsIGE6IDIgfTtcbiAgICBjb25zdCBleHBlY3RlZCA9IHsgYTogMiwgYjogMSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbm9uaWNhbGl6ZU9iamVjdChpbnB1dCk7XG4gICAgYXNzZXJ0Lm5vdERlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShpbnB1dCksIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkKSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShyZXN1bHQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBuZXN0ZWQgb2JqZWN0cyBhbmQgc29ydCB0aGVpciBrZXlzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGlucHV0ID0geyBiOiB7IGQ6IDQsIGM6IDMgfSwgYTogMiB9O1xuICAgIGNvbnN0IGV4cGVjdGVkID0geyBhOiAyLCBiOiB7IGM6IDMsIGQ6IDQgfSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbm9uaWNhbGl6ZU9iamVjdChpbnB1dCk7XG4gICAgYXNzZXJ0Lm5vdERlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShpbnB1dCksIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkKSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChKU09OLnN0cmluZ2lmeShyZXN1bHQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBhcnJheXMgd2l0aGluIG9iamVjdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB7IGI6IFszLCAyLCAxXSwgYTogMiB9O1xuICAgIGNvbnN0IGV4cGVjdGVkID0geyBhOiAyLCBiOiBbMywgMiwgMV0gfTtcbiAgICBjb25zdCByZXN1bHQgPSBjYW5vbmljYWxpemVPYmplY3QoaW5wdXQpO1xuICAgIGFzc2VydC5ub3REZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkoaW5wdXQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYXJyYXlzIG9mIG9iamVjdHMgYW5kIHNvcnQgdGhlaXIga2V5cycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBpbnB1dCA9IFtcbiAgICAgIHsgYjogMiwgYTogMSB9LFxuICAgICAgeyBkOiA0LCBjOiAzIH0sXG4gICAgXTtcbiAgICBjb25zdCBleHBlY3RlZCA9IFtcbiAgICAgIHsgYTogMSwgYjogMiB9LFxuICAgICAgeyBjOiAzLCBkOiA0IH0sXG4gICAgXTtcbiAgICBjb25zdCByZXN1bHQgPSBjYW5vbmljYWxpemVPYmplY3QoaW5wdXQpO1xuICAgIGFzc2VydC5ub3REZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkoaW5wdXQpLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZCkpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gcHJpbWl0aXZlIHZhbHVlcyBhcyBpcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplT2JqZWN0KDQyKSksIEpTT04uc3RyaW5naWZ5KDQyKSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKEpTT04uc3RyaW5naWZ5KGNhbm9uaWNhbGl6ZU9iamVjdCgnc3RyaW5nJykpLCBKU09OLnN0cmluZ2lmeSgnc3RyaW5nJykpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGZvciBpbnZhbGlkIG9iamVjdCB0eXBlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IGNhbm9uaWNhbGl6ZU9iamVjdChudWxsIGFzIG5ldmVyKSwgL0ludmFsaWQgb2JqZWN0IHR5cGUvKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IGNhbm9uaWNhbGl6ZU9iamVjdCh1bmRlZmluZWQgYXMgbmV2ZXIpLCAvSW52YWxpZCBvYmplY3QgdHlwZS8pO1xuICB9KTtcbn0pO1xuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!