CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
zip.js66 linesDownload Raw Back to out
1"use strict";2Object.defineProperty(exports, "__esModule", { value: true });3exports.readZip = readZip;4exports.readVSIXPackage = readVSIXPackage;5const yauzl_1 = require("yauzl");6const xml_1 = require("./xml");7const util_1 = require("./util");8const package_1 = require("./package");9async function bufferStream(stream) {10    return await new Promise((c, e) => {11        const buffers = [];12        stream.on('data', buffer => buffers.push(buffer));13        stream.once('error', e);14        stream.once('end', () => c(Buffer.concat(buffers)));15    });16}17async function readZip(packagePath, filter) {18    const zipfile = await new Promise((c, e) => (0, yauzl_1.open)(packagePath, { lazyEntries: true }, (err, zipfile) => (err ? e(err) : c(zipfile))));19    return await new Promise((c, e) => {20        const result = new Map();21        zipfile.once('close', () => c(result));22        zipfile.readEntry();23        zipfile.on('entry', (entry) => {24            const name = entry.fileName.toLowerCase();25            if (filter(name)) {26                zipfile.openReadStream(entry, (err, stream) => {27                    if (err) {28                        zipfile.close();29                        return e(err);30                    }31                    bufferStream(stream).then(buffer => {32                        result.set(name, buffer);33                        zipfile.readEntry();34                    });35                });36            }37            else {38                zipfile.readEntry();39            }40        });41    });42}43async function readVSIXPackage(packagePath) {44    const map = await readZip(packagePath, name => /^extension\/package\.json$|^extension\.vsixmanifest$/i.test(name));45    const rawManifest = map.get((0, util_1.filePathToVsixPath)('package.json'));46    if (!rawManifest) {47        throw new Error('Manifest not found');48    }49    const rawXmlManifest = map.get('extension.vsixmanifest');50    if (!rawXmlManifest) {51        throw new Error('VSIX manifest not found');52    }53    const manifest = JSON.parse(rawManifest.toString('utf8'));54    let manifestValidated;55    try {56        manifestValidated = (0, package_1.validateManifestForPackaging)(manifest);57    }58    catch (error) {59        throw new Error(`Invalid extension VSIX manifest: ${error}`);60    }61    return {62        manifest: manifestValidated,63        xmlManifest: await (0, xml_1.parseXmlManifest)(rawXmlManifest.toString('utf8')),64    };65}66//# sourceMappingURL=zip.js.map
basant307/AI_Governance_Project · CoolFace