ludc
2023-08-24 56c45e1f4be85d6bbfb3a03437021c6742b32ad9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* Part 3 Section 4 Manifest File */
var CT_ODS = "application/vnd.oasis.opendocument.spreadsheet";
var parse_manifest = function(d, opts) {
    var str = xlml_normalize(d);
    var Rn;
    var FEtag;
    while((Rn = xlmlregex.exec(str))) switch(Rn[3]) {
        case 'manifest': break; // 4.2 <manifest:manifest>
        case 'file-entry': // 4.3 <manifest:file-entry>
            FEtag = parsexmltag(Rn[0]);
            if(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error("This OpenDocument is not a spreadsheet");
            break;
        case 'encryption-data': // 4.4 <manifest:encryption-data>
        case 'algorithm': // 4.5 <manifest:algorithm>
        case 'start-key-generation': // 4.6 <manifest:start-key-generation>
        case 'key-derivation': // 4.7 <manifest:key-derivation>
            throw new Error("Unsupported ODS Encryption");
        default: throw Rn;
    }
};