REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 3.01 KB
Close
/proc/thread-self/root/home/byroehnu/.trash/node_modules11/restructure/src/VersionedStruct.js
Text
Base64
import {Struct} from './Struct.js'; const getPath = (object, pathArray) => { return pathArray.reduce((prevObj, key) => prevObj && prevObj[key], object); }; export class VersionedStruct extends Struct { constructor(type, versions = {}) { super(); this.type = type; this.versions = versions; if (typeof type === 'string') { this.versionPath = type.split('.'); } } decode(stream, parent, length = 0) { const res = this._setup(stream, parent, length); if (typeof this.type === 'string') { res.version = getPath(parent, this.versionPath); } else { res.version = this.type.decode(stream); } if (this.versions.header) { this._parseFields(stream, res, this.versions.header); } const fields = this.versions[res.version]; if ((fields == null)) { throw new Error(`Unknown version ${res.version}`); } if (fields instanceof VersionedStruct) { return fields.decode(stream, parent); } this._parseFields(stream, res, fields); if (this.process != null) { this.process.call(res, stream); } return res; } size(val, parent, includePointers = true) { let key, type; if (!val) { throw new Error('Not a fixed size'); } if (this.preEncode != null) { this.preEncode.call(val); } const ctx = { parent, val, pointerSize: 0 }; let size = 0; if (typeof this.type !== 'string') { size += this.type.size(val.version, ctx); } if (this.versions.header) { for (key in this.versions.header) { type = this.versions.header[key]; if (type.size != null) { size += type.size(val[key], ctx); } } } const fields = this.versions[val.version]; if ((fields == null)) { throw new Error(`Unknown version ${val.version}`); } for (key in fields) { type = fields[key]; if (type.size != null) { size += type.size(val[key], ctx); } } if (includePointers) { size += ctx.pointerSize; } return size; } encode(stream, val, parent) { let key, type; if (this.preEncode != null) { this.preEncode.call(val, stream); } const ctx = { pointers: [], startOffset: stream.pos, parent, val, pointerSize: 0 }; ctx.pointerOffset = stream.pos + this.size(val, ctx, false); if (typeof this.type !== 'string') { this.type.encode(stream, val.version); } if (this.versions.header) { for (key in this.versions.header) { type = this.versions.header[key]; if (type.encode != null) { type.encode(stream, val[key], ctx); } } } const fields = this.versions[val.version]; for (key in fields) { type = fields[key]; if (type.encode != null) { type.encode(stream, val[key], ctx); } } let i = 0; while (i < ctx.pointers.length) { const ptr = ctx.pointers[i++]; ptr.type.encode(stream, ptr.val, ptr.parent); } } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 17
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Array.js
2.43 KB
lrw-r--r--
2026-02-14 19:19:14
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Base.js
412 B
lrw-r--r--
2026-02-14 19:19:14
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Bitfield.js
741 B
lrw-r--r--
2026-02-14 19:19:14
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Boolean.js
398 B
lrw-r--r--
2026-02-14 19:19:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Buffer.js
795 B
lrw-r--r--
2026-02-14 19:19:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
DecodeStream.js
1.85 KB
lrw-r--r--
2026-02-14 19:19:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
EncodeStream.js
3.13 KB
lrw-r--r--
2026-02-14 19:19:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Enum.js
533 B
lrw-r--r--
2026-02-14 19:19:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
LazyArray.js
1.62 KB
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Number.js
2.23 KB
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Optional.js
920 B
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Pointer.js
4.09 KB
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Reserved.js
519 B
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
String.js
3.71 KB
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Struct.js
2.33 KB
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
utils.js
723 B
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
VersionedStruct.js
3.01 KB
lrw-r--r--
2026-02-14 19:19:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).