first commit

This commit is contained in:
Stefan Hacker
2026-04-03 09:38:48 +02:00
commit 37ad745546
47450 changed files with 3120798 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseByteMap = void 0;
function parseByteMap(stream, map, elements, start = null, length = null) {
if (start === null) {
start = 0;
}
if (start > (stream.length - 1)) {
return [];
}
if (length === null) {
length = stream.length - start;
}
if (length > (stream.length - start)) {
length = stream.length - start;
}
let dataView;
if ((start == 0) && (length == stream.length)) {
dataView = stream.view;
}
else {
dataView = new Uint8Array(stream.buffer, start, length);
}
const resultArray = new Array(elements);
let elementsCount = 0;
let count = 0;
const mapLength = map.length;
while (count < length) {
let structureLength = 0;
resultArray[elementsCount] = {};
for (let i = 0; i < mapLength; i++) {
if (map[i].maxlength == 0) {
if ("defaultValue" in map[i]) {
(resultArray[elementsCount])[map[i].name] = map[i].defaultValue;
}
continue;
}
const array = new Uint8Array(map[i].maxlength);
for (let j = 0; j < map[i].maxlength; j++) {
array[j] = dataView[count++];
}
const result = (map[i].func)(array);
if (result.status == (-1)) {
if (resultArray.length == 1) {
return [];
}
return resultArray.slice(0, resultArray.length - 1);
}
if (map[i].type != "check") {
(resultArray[elementsCount])[map[i].name] = result.value;
}
count -= (map[i].maxlength - result.length);
structureLength += result.length;
}
(resultArray[elementsCount++]).structureLength = structureLength;
}
return resultArray;
}
exports.parseByteMap = parseByteMap;