UNPKG

@gandlaf21/bc-ur

Version:

A JS implementation of the Uniform Resources (UR) specification from Blockchain Commons

67 lines 2.77 kB
var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; import FountainEncoder from './fountainEncoder'; import bytewords from './bytewords'; var UREncoder = /** @class */ (function () { function UREncoder(_ur, maxFragmentLength, firstSeqNum, minFragmentLength) { this.ur = _ur; this.fountainEncoder = new FountainEncoder(_ur.cbor, maxFragmentLength, firstSeqNum, minFragmentLength); } Object.defineProperty(UREncoder.prototype, "fragmentsLength", { get: function () { return this.fountainEncoder.fragmentsLength; }, enumerable: false, configurable: true }); Object.defineProperty(UREncoder.prototype, "fragments", { get: function () { return this.fountainEncoder.fragments; }, enumerable: false, configurable: true }); Object.defineProperty(UREncoder.prototype, "messageLength", { get: function () { return this.fountainEncoder.messageLength; }, enumerable: false, configurable: true }); Object.defineProperty(UREncoder.prototype, "cbor", { get: function () { return this.ur.cbor; }, enumerable: false, configurable: true }); UREncoder.prototype.encodeWhole = function () { var _this = this; return __spreadArrays(new Array(this.fragmentsLength)).map(function () { return _this.nextPart(); }); }; UREncoder.prototype.nextPart = function () { var part = this.fountainEncoder.nextPart(); if (this.fountainEncoder.isSinglePart()) { return UREncoder.encodeSinglePart(this.ur); } else { return UREncoder.encodePart(this.ur.type, part); } }; UREncoder.encodeUri = function (scheme, pathComponents) { var path = pathComponents.join('/'); return [scheme, path].join(':'); }; UREncoder.encodeUR = function (pathComponents) { return UREncoder.encodeUri('ur', pathComponents); }; UREncoder.encodePart = function (type, part) { var seq = part.seqNum + "-" + part.seqLength; var body = bytewords.encode(part.cbor().toString('hex'), bytewords.STYLES.MINIMAL); return UREncoder.encodeUR([type, seq, body]); }; UREncoder.encodeSinglePart = function (ur) { var body = bytewords.encode(ur.cbor.toString('hex'), bytewords.STYLES.MINIMAL); return UREncoder.encodeUR([ur.type, body]); }; return UREncoder; }()); export default UREncoder; //# sourceMappingURL=urEncoder.js.map