This is an implementation of Compound Binary File v.3
Allows reading existing files, creation of the/write operation

Usage

To parse existing Compound Binary File:

const {CompoundFile} = require('compound-binary-file-js');

const reader = new FileReader(); 
reader.onload = () => { 
    const arrayBuffer = reader.result; 
    const cfb = CompoundFile.fromUint8Array(new Uint8Array(arrayBuffer));
    const rootStorage = cfb.getRootStorage();
    const subStorages = rootStorage.storages();
    const subStreams = rootStorage.streams();
    // etc.
};

reader.readAsArrayBuffer(input.files[0]);

Or alternatively you may use the following syntax if you read file as number[]:

var cfb = CompoundFile.fromUint8Array([...arrayOfBytes]);

To create new Compound File:

const {CompoundFile} = require('compound-binary-file-js');

const cfb = CompoundFile.empty();
const storage1 = cfb.getRootStorage().addStorage('storage1');
const stream1 = storage1.addStream('stream1', [1,2,3,4]);
const fileBytes = cfb.asBytes();