UNPKG

cnpmcore

Version:
94 lines 8.14 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BucketBinary = void 0; const tegg_1 = require("@eggjs/tegg"); const Binary_1 = require("../../enum/Binary"); const binaries_1 = __importDefault(require("../../../../config/binaries")); const path_1 = __importDefault(require("path")); const AbstractBinary_1 = require("./AbstractBinary"); let BucketBinary = class BucketBinary extends AbstractBinary_1.AbstractBinary { async initFetch() { // do nothing return; } async fetch(dir, binaryName) { // /foo/ => foo/ const binaryConfig = binaries_1.default[binaryName]; const subDir = dir.substring(1); const url = `${binaryConfig.distUrl}?delimiter=/&prefix=${encodeURIComponent(subDir)}`; const xml = await this.requestXml(url); return { items: this.parseItems(xml, dir, binaryConfig), nextParams: null }; } parseItems(xml, dir, binaryConfig) { const items = []; // https://nwjs2.s3.amazonaws.com/?prefix=v0.59.0%2Fx64%2F // https://chromedriver.storage.googleapis.com/?delimiter=/&prefix= // <Contents><Key>2.0/chromedriver_linux32.zip</Key><Generation>1380149859530000</Generation><MetaGeneration>2</MetaGeneration><LastModified>2013-09-25T22:57:39.349Z</LastModified><ETag>"c0d96102715c4916b872f91f5bf9b12c"</ETag><Size>7262134</Size><Owner/></Contents><Contents> // <Contents><Key>v0.59.0/nwjs-v0.59.0-linux-ia32.tar.gz</Key><LastModified>2015-11-02T02:34:18.000Z</LastModified><ETag>&quot;b1b7a52928e9f874bad0cabf7f74ba8e&quot;</ETag><Size>22842</Size><StorageClass>STANDARD</StorageClass></Contents> const fileRe = /<Contents><Key>([^<]+?)<\/Key>(?:<Generation>\d+?<\/Generation>)?(?:<MetaGeneration>\d+?<\/MetaGeneration>)?<LastModified>([^<]+?)<\/LastModified><ETag>[^<]+?<\/ETag><Size>(\d+?)<\/Size>/g; let matchs = xml.matchAll(fileRe); for (const m of matchs) { const fullname = m[1].trim(); // <Key>2.43/</Key> // <Generation>1410297711522000</Generation> // <MetaGeneration>1</MetaGeneration> // <LastModified>2014-09-09T21:21:51.522Z</LastModified> // <ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag> // <Size>0</Size> // ignore size = 0 dir if (fullname.endsWith('/')) continue; const name = path_1.default.basename(fullname); const date = m[2].trim(); const size = parseInt(m[3].trim()); items.push({ name, isDir: false, url: `${binaryConfig.distUrl}${fullname}`, size, date, }); } // <CommonPrefixes><Prefix>v0.59.0/x64/</Prefix></CommonPrefixes> const dirRe = /<CommonPrefixes><Prefix>([^<]+?)<\/Prefix><\/CommonPrefixes>/g; matchs = xml.matchAll(dirRe); for (const m of matchs) { // <Prefix>AWSLogs/</Prefix> // ignore AWSLogs // Download https://node-inspector.s3.amazonaws.com/AWSLogs/077447786745/CloudTrail/us-west-2/2015/12/10/077447786745_CloudTrail_us-west-2_20151210T1015Z_JNWlbeBTILiSzPCq.json.gz status(403) invalid const fullname = m[1].trim(); const name = `${path_1.default.basename(fullname)}/`; const fullpath = `${dir}${name}`; if (binaryConfig.ignoreDirs?.includes(fullpath)) continue; let date = '-'; // root dir children, should set date to '2022-04-19T01:00:00Z', sync per hour if (dir === '/') { date = new Date().toISOString().split(':', 1)[0] + ':00:00Z'; } items.push({ name, isDir: true, url: '', size: '-', date, }); } return items; } }; exports.BucketBinary = BucketBinary; exports.BucketBinary = BucketBinary = __decorate([ (0, tegg_1.SingletonProto)(), (0, AbstractBinary_1.BinaryAdapter)(Binary_1.BinaryType.Bucket) ], BucketBinary); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVja2V0QmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL2NvbW1vbi9hZGFwdGVyL2JpbmFyeS9CdWNrZXRCaW5hcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQTZDO0FBQzdDLDhDQUErQztBQUMvQywyRUFBcUY7QUFDckYsZ0RBQXdCO0FBQ3hCLHFEQUEwRjtBQUluRixJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFhLFNBQVEsK0JBQWM7SUFDOUMsS0FBSyxDQUFDLFNBQVM7UUFDYixhQUFhO1FBQ2IsT0FBTztJQUNULENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVcsRUFBRSxVQUFzQjtRQUM3QyxnQkFBZ0I7UUFDaEIsTUFBTSxZQUFZLEdBQUcsa0JBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sdUJBQXVCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkYsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRVMsVUFBVSxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsWUFBOEI7UUFDM0UsTUFBTSxLQUFLLEdBQWlCLEVBQUUsQ0FBQztRQUMvQiwwREFBMEQ7UUFDMUQsbUVBQW1FO1FBQ25FLG9SQUFvUjtRQUNwUiw4T0FBOE87UUFDOU8sTUFBTSxNQUFNLEdBQUcsNkxBQTZMLENBQUM7UUFDN00sSUFB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