UNPKG

cnpmcore

Version:

Private NPM Registry for Enterprise

103 lines 12.7 kB
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; }; import { basename } from 'node:path'; import dayjs from 'dayjs'; import { SingletonProto } from 'egg'; import binaries from "../../../../config/binaries.js"; import { BinaryType } from "../../enum/Binary.js"; import { AbstractBinary, BinaryAdapter } from "./AbstractBinary.js"; let NodeBinary = class NodeBinary extends AbstractBinary { async initFetch() { // do nothing return; } async fetch(dir, binaryName) { const binaryConfig = binaries[binaryName]; const url = `${binaryConfig.distUrl}${dir}`; const html = await this.requestXml(url); // <a href="v9.8.0/">v9.8.0/</a> 08-Mar-2018 01:55 - // <a href="v9.9.0/">v9.9.0/</a> 21-Mar-2018 15:47 - // <a href="index.json">index.json</a> 17-Dec-2021 23:16 219862 // <a href="index.tab">index.tab</a> 17-Dec-2021 23:16 136319 // <a href="node-0.0.1.tar.gz">node-0.0.1.tar.gz</a> 26-Aug-2011 16:22 2846972 // <a href="node-v14.0.0-nightly20200119b318926634-linux-armv7l.tar.xz">node-v14.0.0-nightly20200119b318926634-linux-ar..&gt;</a> 19-Jan-2020 06:07 18565976 // new html format // <a href="docs/">docs/</a> - - // <a href="win-x64/">win-x64/</a> - - // <a href="win-x86/">win-x86/</a> - - // <a href="/dist/v18.15.0/SHASUMS256.txt.asc">SHASUMS256.txt.asc</a> 04-Nov-2024 17:29 3.7 KB // <a href="/dist/v18.15.0/SHASUMS256.txt.sig">SHASUMS256.txt.sig</a> 04-Nov-2024 17:29 310 B // <a href="/dist/v18.15.0/SHASUMS256.txt">SHASUMS256.txt</a> 04-Nov-2024 17:29 3.2 KB // <a href="/dist/latest-v20.x/SHASUMS256.txt.asc">SHASUMS256.txt.asc</a> 03 Sept 2025, 18:20 4.7 KB // <a href="/dist/latest-v20.x/SHASUMS256.txt.sig">SHASUMS256.txt.sig</a> 03 Sept 2025, 18:20 566 B // <a href="/dist/latest-v20.x/SHASUMS256.txt">SHASUMS256.txt</a> 03 Sept 2025, 18:19 3.8 KB // <a href="/dist/latest-v20.x/node-v20.19.5-aix-ppc64.tar.gz">node-v20.19.5-aix-ppc64.tar.gz</a> 03 Sept 2025, 18:19 60 MB // <a href="/dist/latest-v20.x/node-v20.19.5-arm64.msi">node-v20.19.5-arm64.msi</a> 03 Sept 2025, 18:19 24 MB // <a href="/dist/latest-v20.x/node-v20.19.5-darwin-arm64.tar.gz">node-v20.19.5-darwin-arm64.tar.gz</a> 03 Sept 2025, 18:19 41 MB // <a href="/dist/latest-v20.x/node-v20.19.5-darwin-arm64.tar.xz">node-v20.19.5-darwin-arm64.tar.xz</a> 03 Sept 2025, 18:19 21 MB // <a href="/dist/latest-v20.x/node-v20.19.5-darwin-x64.tar.gz">node-v20.19.5-darwin-x64.tar.gz</a> 03 Sept 2025, 18:19 43 MB // <a href="/dist/latest-v20.x/node-v20.19.5-darwin-x64.tar.xz">node-v20.19.5-darwin-x64.tar.xz</a> 03 Sept 2025, 18:19 23 MB // <a href="/dist/latest-v20.x/node-v20.19.5-headers.tar.gz">node-v20.19.5-headers.tar.gz</a> 03 Sept 2025, 18:19 8.7 MB // <a href="/dist/latest-v20.x/node-v20.19.5-headers.tar.xz">node-v20.19.5-headers.tar.xz</a> 03 Sept 2025, 18:19 524 KB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-arm64.tar.gz">node-v20.19.5-linux-arm64.tar.gz</a> 03 Sept 2025, 18:19 47 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-arm64.tar.xz">node-v20.19.5-linux-arm64.tar.xz</a> 03 Sept 2025, 18:19 25 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-armv7l.tar.gz">node-v20.19.5-linux-armv7l.tar.gz</a> 03 Sept 2025, 18:19 43 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-armv7l.tar.xz">node-v20.19.5-linux-armv7l.tar.xz</a> 03 Sept 2025, 18:19 22 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-ppc64le.tar.gz">node-v20.19.5-linux-ppc64le.tar.gz</a> 03 Sept 2025, 18:19 49 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-ppc64le.tar.xz">node-v20.19.5-linux-ppc64le.tar.xz</a> 03 Sept 2025, 18:19 26 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-s390x.tar.gz">node-v20.19.5-linux-s390x.tar.gz</a> 03 Sept 2025, 18:19 47 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-s390x.tar.xz">node-v20.19.5-linux-s390x.tar.xz</a> 03 Sept 2025, 18:19 25 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-x64.tar.gz">node-v20.19.5-linux-x64.tar.gz</a> 03 Sept 2025, 18:19 47 MB // <a href="/dist/latest-v20.x/node-v20.19.5-linux-x64.tar.xz">node-v20.19.5-linux-x64.tar.xz</a> 03 Sept 2025, 18:19 26 MB // <a href="/dist/latest-v20.x/node-v20.19.5-win-arm64.7z">node-v20.19.5-win-arm64.7z</a> 03 Sept 2025, 18:19 17 MB // <a href="/dist/latest-v20.x/node-v20.19.5-win-arm64.zip">node-v20.19.5-win-arm64.zip</a> 03 Sept 2025, 18:19 26 MB // <a href="/dist/latest-v20.x/node-v20.19.5-win-x64.7z">node-v20.19.5-win-x64.7z</a> 03 Sept 2025, 18:19 19 MB // <a href="/dist/latest-v20.x/node-v20.19.5-win-x64.zip">node-v20.19.5-win-x64.zip</a> 03 Sept 2025, 18:19 30 MB // <a href="/dist/latest-v20.x/node-v20.19.5-win-x86.7z">node-v20.19.5-win-x86.7z</a> 03 Sept 2025, 18:19 18 MB // <a href="/dist/latest-v20.x/node-v20.19.5-win-x86.zip">node-v20.19.5-win-x86.zip</a> 03 Sept 2025, 18:19 28 MB // <a href="/dist/latest-v20.x/node-v20.19.5-x64.msi">node-v20.19.5-x64.msi</a> 03 Sept 2025, 18:19 27 MB // <a href="/dist/latest-v20.x/node-v20.19.5-x86.msi">node-v20.19.5-x86.msi</a> 03 Sept 2025, 18:19 25 MB // <a href="/dist/latest-v20.x/node-v20.19.5.pkg">node-v20.19.5.pkg</a> 03 Sept 2025, 18:19 72 MB // <a href="/dist/latest-v20.x/node-v20.19.5.tar.gz">node-v20.19.5.tar.gz</a> 03 Sept 2025, 18:19 89 MB // <a href="/dist/latest-v20.x/node-v20.19.5.tar.xz">node-v20.19.5.tar.xz</a> 03 Sept 2025, 18:19 43 MB // date format: 19-Jan-2020 06:07 or 03 Sept 2025, 18:19 const re = /<a href="([^"]+?)"[^>]*?>[^<]+?<\/a>\s+?((?:[\w-]+? \w{2}:\d{2})|(?:\d{2} [A-Za-z]{3,9} \d{4}, \d{2}:\d{2})|-)\s+?([\d.\-\s\w]+)/gi; const matchs = html.matchAll(re); const items = []; for (const m of matchs) { let name = m[1]; const isDir = name.endsWith('/'); if (!isDir) { // /dist/v18.15.0/SHASUMS256.txt => SHASUMS256.txt name = basename(name); } const fileUrl = isDir ? '' : `${url}${name}`; const date = m[2] === '-' ? '-' : dayjs(m[2]).format('DD-MMM-YYYY HH:mm'); const size = m[3].trim(); if (size === '0') continue; if (binaryConfig.ignoreFiles?.includes(`${dir}${name}`)) continue; const item = { name, isDir, url: fileUrl, size, date, ignoreDownloadStatuses: binaryConfig.options?.ignoreDownloadStatuses, }; items.push(item); } return { items, nextParams: null }; } }; NodeBinary = __decorate([ SingletonProto(), BinaryAdapter(BinaryType.Node) ], NodeBinary); export { NodeBinary }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZUJpbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9iaW5hcnkvTm9kZUJpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXJDLE9BQU8sUUFBNkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQXFDLE1BQU0scUJBQXFCLENBQUM7QUFJaEcsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVyxTQUFRLGNBQWM7SUFDNUMsS0FBSyxDQUFDLFNBQVM7UUFDYixhQUFhO1FBQ2IsT0FBTztJQUNULENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVcsRUFBRSxVQUFzQjtRQUM3QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxpSEFBaUg7UUFDakgsaUhBQWlIO1FBQ2pILG9IQUFvSDtRQUNwSCxtSEFBbUg7UUFDbkgsMkhBQTJIO1FBQzNILHVLQUF1SztRQUV2SyxrQkFBa0I7UUFDbEIsa0hBQWtIO1FBQ2xILGlIQUFpSDtRQUNqSCxpSEFBaUg7UUFDakgsNElBQTRJO1FBQzVJLDRJQUE0STtRQUM1SSx3SUFBd0k7UUFFeEksa0pBQWtKO1FBQ2xKLGtKQUFrSjtRQUNsSiw4SUFBOEk7UUFDOUksOEpBQThKO1FBQzlKLHVKQUF1SjtRQUN2SixpS0FBaUs7UUFDakssaUtBQWlLO1FBQ2pLLCtKQUErSjtRQUMvSiwrSkFBK0o7UUFDL0osNEpBQTRKO1FBQzVKLDRKQUE0SjtRQUM1SixnS0FBZ0s7UUFDaEssZ0tBQWdLO1FBQ2hLLGlLQUFpSztRQUNqSyxpS0FBaUs7UUFDakssa0tBQWtLO1FBQ2xLLGtLQUFrSztRQUNsSyxnS0FBZ0s7UUFDaEssZ0tBQWdLO1FBQ2hLLDhKQUE4SjtRQUM5Siw4SkFBOEo7UUFDOUosMEpBQTBKO1FBQzFKLDJKQUEySjtRQUMzSix3SkFBd0o7UUFDeEoseUpBQXlKO1FBQ3pKLHdKQUF3SjtRQUN4Six5SkFBeUo7UUFDekoscUpBQXFKO1FBQ3JKLHFKQUFxSjtRQUNySixpSkFBaUo7UUFDakosb0pBQW9KO1FBQ3BKLG9KQUFvSjtRQUVwSix3REFBd0Q7UUFDeEQsTUFBTSxFQUFFLEdBQ04sb0lBQW9JLENBQUM7UUFDdkksTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBaUIsRUFBRSxDQUFDO1FBQy9CLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLGtEQUFrRDtnQkFDbEQsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksS0FBSyxHQUFHO2dCQUFFLFNBQVM7WUFDM0IsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQztnQkFBRSxTQUFTO1lBRWxFLE1BQU0sSUFBSSxHQUFHO2dCQUNYLElBQUk7Z0JBQ0osS0FBSztnQkFDTCxHQUFHLEVBQUUsT0FBTztnQkFDWixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osc0JBQXNCLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxzQkFBc0I7YUFDckUsQ0FBQztZQUNGLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7Q0FDRixDQUFBO0FBekZZLFVBQVU7SUFGdEIsY0FBYyxFQUFFO0lBQ2hCLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0dBQ2xCLFVBQVUsQ0F5RnRCIn0=