- Add GETTING_STARTED.md with quick start guide and development modes - Add INSTALL.sh automated installation script - Add INSTALLATION_CHECKLIST.md, INSTALLATION_SUCCESS.md, and INSTALLATION_SUMMARY.md - Add QUICK_REFERENCE.md for common commands - Add SETUP_GUIDE.md with detailed setup instructions - Update README.md with improved project overview - Add did-wallet app dependencies and node_modules
175 lines
5.1 KiB
JavaScript
175 lines
5.1 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
var token = require('./token.js');
|
|
var _0uint = require('./0uint.js');
|
|
var _1negint = require('./1negint.js');
|
|
var _2bytes = require('./2bytes.js');
|
|
var _3string = require('./3string.js');
|
|
var _4array = require('./4array.js');
|
|
var _5map = require('./5map.js');
|
|
var _6tag = require('./6tag.js');
|
|
var _7float = require('./7float.js');
|
|
var common = require('./common.js');
|
|
var byteUtils = require('./byte-utils.js');
|
|
|
|
function invalidMinor(data, pos, minor) {
|
|
throw new Error(`${ common.decodeErrPrefix } encountered invalid minor (${ minor }) for major ${ data[pos] >>> 5 }`);
|
|
}
|
|
function errorer(msg) {
|
|
return () => {
|
|
throw new Error(`${ common.decodeErrPrefix } ${ msg }`);
|
|
};
|
|
}
|
|
const jump = [];
|
|
for (let i = 0; i <= 23; i++) {
|
|
jump[i] = invalidMinor;
|
|
}
|
|
jump[24] = _0uint.decodeUint8;
|
|
jump[25] = _0uint.decodeUint16;
|
|
jump[26] = _0uint.decodeUint32;
|
|
jump[27] = _0uint.decodeUint64;
|
|
jump[28] = invalidMinor;
|
|
jump[29] = invalidMinor;
|
|
jump[30] = invalidMinor;
|
|
jump[31] = invalidMinor;
|
|
for (let i = 32; i <= 55; i++) {
|
|
jump[i] = invalidMinor;
|
|
}
|
|
jump[56] = _1negint.decodeNegint8;
|
|
jump[57] = _1negint.decodeNegint16;
|
|
jump[58] = _1negint.decodeNegint32;
|
|
jump[59] = _1negint.decodeNegint64;
|
|
jump[60] = invalidMinor;
|
|
jump[61] = invalidMinor;
|
|
jump[62] = invalidMinor;
|
|
jump[63] = invalidMinor;
|
|
for (let i = 64; i <= 87; i++) {
|
|
jump[i] = _2bytes.decodeBytesCompact;
|
|
}
|
|
jump[88] = _2bytes.decodeBytes8;
|
|
jump[89] = _2bytes.decodeBytes16;
|
|
jump[90] = _2bytes.decodeBytes32;
|
|
jump[91] = _2bytes.decodeBytes64;
|
|
jump[92] = invalidMinor;
|
|
jump[93] = invalidMinor;
|
|
jump[94] = invalidMinor;
|
|
jump[95] = errorer('indefinite length bytes/strings are not supported');
|
|
for (let i = 96; i <= 119; i++) {
|
|
jump[i] = _3string.decodeStringCompact;
|
|
}
|
|
jump[120] = _3string.decodeString8;
|
|
jump[121] = _3string.decodeString16;
|
|
jump[122] = _3string.decodeString32;
|
|
jump[123] = _3string.decodeString64;
|
|
jump[124] = invalidMinor;
|
|
jump[125] = invalidMinor;
|
|
jump[126] = invalidMinor;
|
|
jump[127] = errorer('indefinite length bytes/strings are not supported');
|
|
for (let i = 128; i <= 151; i++) {
|
|
jump[i] = _4array.decodeArrayCompact;
|
|
}
|
|
jump[152] = _4array.decodeArray8;
|
|
jump[153] = _4array.decodeArray16;
|
|
jump[154] = _4array.decodeArray32;
|
|
jump[155] = _4array.decodeArray64;
|
|
jump[156] = invalidMinor;
|
|
jump[157] = invalidMinor;
|
|
jump[158] = invalidMinor;
|
|
jump[159] = _4array.decodeArrayIndefinite;
|
|
for (let i = 160; i <= 183; i++) {
|
|
jump[i] = _5map.decodeMapCompact;
|
|
}
|
|
jump[184] = _5map.decodeMap8;
|
|
jump[185] = _5map.decodeMap16;
|
|
jump[186] = _5map.decodeMap32;
|
|
jump[187] = _5map.decodeMap64;
|
|
jump[188] = invalidMinor;
|
|
jump[189] = invalidMinor;
|
|
jump[190] = invalidMinor;
|
|
jump[191] = _5map.decodeMapIndefinite;
|
|
for (let i = 192; i <= 215; i++) {
|
|
jump[i] = _6tag.decodeTagCompact;
|
|
}
|
|
jump[216] = _6tag.decodeTag8;
|
|
jump[217] = _6tag.decodeTag16;
|
|
jump[218] = _6tag.decodeTag32;
|
|
jump[219] = _6tag.decodeTag64;
|
|
jump[220] = invalidMinor;
|
|
jump[221] = invalidMinor;
|
|
jump[222] = invalidMinor;
|
|
jump[223] = invalidMinor;
|
|
for (let i = 224; i <= 243; i++) {
|
|
jump[i] = errorer('simple values are not supported');
|
|
}
|
|
jump[244] = invalidMinor;
|
|
jump[245] = invalidMinor;
|
|
jump[246] = invalidMinor;
|
|
jump[247] = _7float.decodeUndefined;
|
|
jump[248] = errorer('simple values are not supported');
|
|
jump[249] = _7float.decodeFloat16;
|
|
jump[250] = _7float.decodeFloat32;
|
|
jump[251] = _7float.decodeFloat64;
|
|
jump[252] = invalidMinor;
|
|
jump[253] = invalidMinor;
|
|
jump[254] = invalidMinor;
|
|
jump[255] = _7float.decodeBreak;
|
|
const quick = [];
|
|
for (let i = 0; i < 24; i++) {
|
|
quick[i] = new token.Token(token.Type.uint, i, 1);
|
|
}
|
|
for (let i = -1; i >= -24; i--) {
|
|
quick[31 - i] = new token.Token(token.Type.negint, i, 1);
|
|
}
|
|
quick[64] = new token.Token(token.Type.bytes, new Uint8Array(0), 1);
|
|
quick[96] = new token.Token(token.Type.string, '', 1);
|
|
quick[128] = new token.Token(token.Type.array, 0, 1);
|
|
quick[160] = new token.Token(token.Type.map, 0, 1);
|
|
quick[244] = new token.Token(token.Type.false, false, 1);
|
|
quick[245] = new token.Token(token.Type.true, true, 1);
|
|
quick[246] = new token.Token(token.Type.null, null, 1);
|
|
function quickEncodeToken(token$1) {
|
|
switch (token$1.type) {
|
|
case token.Type.false:
|
|
return byteUtils.fromArray([244]);
|
|
case token.Type.true:
|
|
return byteUtils.fromArray([245]);
|
|
case token.Type.null:
|
|
return byteUtils.fromArray([246]);
|
|
case token.Type.bytes:
|
|
if (!token$1.value.length) {
|
|
return byteUtils.fromArray([64]);
|
|
}
|
|
return;
|
|
case token.Type.string:
|
|
if (token$1.value === '') {
|
|
return byteUtils.fromArray([96]);
|
|
}
|
|
return;
|
|
case token.Type.array:
|
|
if (token$1.value === 0) {
|
|
return byteUtils.fromArray([128]);
|
|
}
|
|
return;
|
|
case token.Type.map:
|
|
if (token$1.value === 0) {
|
|
return byteUtils.fromArray([160]);
|
|
}
|
|
return;
|
|
case token.Type.uint:
|
|
if (token$1.value < 24) {
|
|
return byteUtils.fromArray([Number(token$1.value)]);
|
|
}
|
|
return;
|
|
case token.Type.negint:
|
|
if (token$1.value >= -24) {
|
|
return byteUtils.fromArray([31 - Number(token$1.value)]);
|
|
}
|
|
}
|
|
}
|
|
|
|
exports.jump = jump;
|
|
exports.quick = quick;
|
|
exports.quickEncodeToken = quickEncodeToken;
|