cnpmcore
Version:
145 lines • 11.8 kB
JavaScript
;
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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