UNPKG

cnpmcore

Version:
145 lines 11.8 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 __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var _ChromeForTestingBinary_instances, _a, _ChromeForTestingBinary_timestamp, _ChromeForTestingBinary_syncDirItems; var ChromeForTestingBinary_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.ChromeForTestingBinary = void 0; const path_1 = require("path"); const tegg_1 = require("@eggjs/tegg"); const Binary_1 = require("../../enum/Binary"); const AbstractBinary_1 = require("./AbstractBinary"); let ChromeForTestingBinary = ChromeForTestingBinary_1 = _a = class ChromeForTestingBinary extends AbstractBinary_1.AbstractBinary { constructor() { super(...arguments); _ChromeForTestingBinary_instances.add(this); _ChromeForTestingBinary_timestamp.set(this, ''); } async initFetch() { this.dirItems = undefined; } async finishFetch(success) { if (success && __classPrivateFieldGet(this, _ChromeForTestingBinary_timestamp, "f") && ChromeForTestingBinary_1.lastTimestamp !== __classPrivateFieldGet(this, _ChromeForTestingBinary_timestamp, "f")) { ChromeForTestingBinary_1.lastTimestamp = __classPrivateFieldGet(this, _ChromeForTestingBinary_timestamp, "f"); } } async fetch(dir) { // use https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints if (!this.dirItems) { await __classPrivateFieldGet(this, _ChromeForTestingBinary_instances, "m", _ChromeForTestingBinary_syncDirItems).call(this); } return { items: this.dirItems[dir], nextParams: null }; } }; exports.ChromeForTestingBinary = ChromeForTestingBinary; _ChromeForTestingBinary_timestamp = new WeakMap(); _ChromeForTestingBinary_instances = new WeakSet(); _ChromeForTestingBinary_syncDirItems = async function _ChromeForTestingBinary_syncDirItems() { this.dirItems = {}; this.dirItems['/'] = []; const jsonApiEndpoint = 'https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json'; const { data, status, headers } = await this.httpclient.request(jsonApiEndpoint, { dataType: 'json', timeout: 30000, followRedirect: true, gzip: true, }); if (status !== 200) { this.logger.warn('[ChromeForTestingBinary.request:non-200-status] url: %s, status: %s, headers: %j, data: %j', jsonApiEndpoint, status, headers, data); return; } __classPrivateFieldSet(this, _ChromeForTestingBinary_timestamp, data.timestamp, "f"); const hasNewData = __classPrivateFieldGet(this, _ChromeForTestingBinary_timestamp, "f") !== ChromeForTestingBinary_1.lastTimestamp; this.logger.info('[ChromeForTestingBinary] remote data timestamp: %j, last timestamp: %j, hasNewData: %s', __classPrivateFieldGet(this, _ChromeForTestingBinary_timestamp, "f"), ChromeForTestingBinary_1.lastTimestamp, hasNewData); if (!hasNewData) { return; } // "timestamp": "2023-09-16T00:21:21.964Z", // "versions": [ // { // "version": "113.0.5672.0", // "revision": "1121455", // "downloads": { // "chrome": [ // { // "platform": "linux64", // "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/linux64/chrome-linux64.zip" // }, // { // "platform": "mac-arm64", // "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/mac-arm64/chrome-mac-arm64.zip" // }, // { // "platform": "mac-x64", // "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/mac-x64/chrome-mac-x64.zip" // }, // { // "platform": "win32", // "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/win32/chrome-win32.zip" // }, // { // "platform": "win64", // "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/win64/chrome-win64.zip" // } // ] // } // }, const versions = data.versions; for (const item of versions) { this.dirItems['/'].push({ name: `${item.version}/`, date: item.revision, size: '-', isDir: true, url: '', }); const versionDir = `/${item.version}/`; if (!this.dirItems[versionDir]) { this.dirItems[versionDir] = []; } for (const category in item.downloads) { const downloads = item.downloads[category]; for (const download of downloads) { const platformDir = `${versionDir}${download.platform}/`; if (!this.dirItems[platformDir]) { this.dirItems[platformDir] = []; this.dirItems[versionDir].push({ name: `${download.platform}/`, date: item.revision, size: '-', isDir: true, url: '', }); } this.dirItems[platformDir].push({ name: (0, path_1.basename)(download.url), date: data.timestamp, size: '-', isDir: false, url: download.url, }); } } } }; ChromeForTestingBinary.lastTimestamp = ''; exports.ChromeForTestingBinary = ChromeForTestingBinary = ChromeForTestingBinary_1 = __decorate([ (0, tegg_1.SingletonProto)(), (0, AbstractBinary_1.BinaryAdapter)(Binary_1.BinaryType.ChromeForTesting) ], ChromeForTestingBinary); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hyb21lRm9yVGVzdGluZ0JpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvQ2hyb21lRm9yVGVzdGluZ0JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLHNDQUE2QztBQUM3Qyw4Q0FBK0M7QUFDL0MscURBQTBGO0FBSW5GLElBQU0sc0JBQXNCLG1DQUE1QixNQUFNLHNCQUF1QixTQUFRLCtCQUFjO0lBQW5EOzs7UUFFTCw0Q0FBYSxFQUFFLEVBQUM7SUE0SGxCLENBQUM7SUF0SEMsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFnQjtRQUNoQyxJQUFJLE9BQU8sSUFBSSx1QkFBQSxJQUFJLHlDQUFXLElBQUksd0JBQXNCLENBQUMsYUFBYSxLQUFLLHVCQUFBLElBQUkseUNBQVcsRUFBRTtZQUMxRix3QkFBc0IsQ0FBQyxhQUFhLEdBQUcsdUJBQUEsSUFBSSx5Q0FBVyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQXVHRCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVc7UUFDckIsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE1BQU0sdUJBQUEsSUFBSSwrRUFBYyxNQUFsQixJQUFJLENBQWdCLENBQUM7U0FDNUI7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUM7O0FBN0hVLHdEQUFzQjs7O3VDQWtCakMsS0FBSztJQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksQ0FBQyxRQUFRLENB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