cnpmcore
Version:
153 lines • 11.7 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 __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _PrismaBinary_instances, _PrismaBinary_parseItems;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrismaBinary = void 0;
const node_path_1 = __importDefault(require("node:path"));
const tegg_1 = require("@eggjs/tegg");
const Binary_1 = require("../../enum/Binary");
const binaries_1 = __importDefault(require("../../../../config/binaries"));
const AbstractBinary_1 = require("./AbstractBinary");
let PrismaBinary = class PrismaBinary extends AbstractBinary_1.AbstractBinary {
constructor() {
super(...arguments);
_PrismaBinary_instances.add(this);
this.dirItems = {};
}
async initFetch() {
// https://github.com/cnpm/cnpmcore/issues/473#issuecomment-1562115738
const pkgUrl = 'https://registry.npmjs.com/@prisma/engines';
const data = await this.requestJSON(pkgUrl);
const modified = data.time.modified;
this.dirItems = {};
this.dirItems['/'] = [
{
name: 'all_commits/',
date: modified,
size: '-',
isDir: true,
url: '',
},
];
this.dirItems['/all_commits/'] = [];
const commitIdMap = {};
// https://list-binaries.prisma-orm.workers.dev/?delimiter=/&prefix=all_commits/61023c35d2c8762f66f09bc4183d2f630b541d08/
for (const version in data.versions) {
const major = parseInt(version.split('.', 1)[0]);
// need >= 3.0.0
if (major < 3)
continue;
const date = data.time[version];
const pkg = data.versions[version];
// https://registry.npmjs.com/@prisma/engines/4.14.1
// https://registry.npmjs.com/@prisma/engines/5.7.0 should read from dependencies
const enginesVersion = pkg.devDependencies?.['@prisma/engines-version']
|| pkg.dependencies?.['@prisma/engines-version'] || '';
// "@prisma/engines-version": "4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c"
// "@prisma/engines-version": "5.7.0-41.79fb5193cf0a8fdbef536e4b4a159cad677ab1b9"
const matched = /\.(\w{30,})$/.exec(enginesVersion);
if (!matched)
continue;
const commitId = matched[1];
if (commitIdMap[commitId])
continue;
commitIdMap[commitId] = true;
this.dirItems['/all_commits/'].push({
name: `${commitId}/`,
date,
size: '-',
isDir: true,
url: '',
});
}
}
async fetch(dir, binaryName) {
const existsItems = this.dirItems[dir];
if (existsItems) {
return { items: existsItems, nextParams: null };
}
// /foo/ => foo/
const binaryConfig = binaries_1.default[binaryName];
const subDir = dir.substring(1);
const url = `${binaryConfig.distUrl}?delimiter=/&prefix=${encodeURIComponent(subDir)}`;
const result = await this.requestJSON(url);
return { items: __classPrivateFieldGet(this, _PrismaBinary_instances, "m", _PrismaBinary_parseItems).call(this, result), nextParams: null };
}
};
exports.PrismaBinary = PrismaBinary;
_PrismaBinary_instances = new WeakSet();
_PrismaBinary_parseItems = function _PrismaBinary_parseItems(result) {
const items = [];
// objects": [
// {
// "uploaded": "2023-05-23T15:43:05.772Z",
// "checksums": {
// "md5": "d41d8cd98f00b204e9800998ecf8427e"
// },
// "httpEtag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
// "etag": "d41d8cd98f00b204e9800998ecf8427e",
// "size": 0,
// "version": "7e77b6b8c1d214f2c6be3c959749b5a6",
// "key": "all_commits/61023c35d2c8762f66f09bc4183d2f630b541d08/darwin-arm64/.finished"
// },
// {
// "uploaded": "2023-05-23T15:41:33.861Z",
// "checksums": {
// "md5": "4822215a13ae372ae82afd12689fce37"
// },
// "httpEtag": "\"4822215a13ae372ae82afd12689fce37\"",
// "etag": "4822215a13ae372ae82afd12689fce37",
// "size": 96,
// "version": "7e77b6ba29d4e776023e4fa62825c13a",
// "key": "all_commits/61023c35d2c8762f66f09bc4183d2f630b541d08/darwin-arm64/libquery_engine.dylib.node.gz.sha256"
// },
// https://list-binaries.prisma-orm.workers.dev/?delimiter=/&prefix=all_commits/61023c35d2c8762f66f09bc4183d2f630b541d08/darwin-arm64/
const objects = result.objects || [];
for (const o of objects) {
const fullname = o.key;
// ignore size = 0
if (o.size === 0)
continue;
const name = node_path_1.default.basename(fullname);
items.push({
name,
isDir: false,
// https://binaries.prisma.sh/all_commits/2452cc6313d52b8b9a96999ac0e974d0aedf88db/darwin-arm64/prisma-fmt.gz
url: `https://binaries.prisma.sh/${fullname}`,
size: o.size,
date: o.uploaded,
});
}
// delimitedPrefixes: [ 'all_commits/61023c35d2c8762f66f09bc4183d2f630b541d08/darwin-arm64/' ]
// https://list-binaries.prisma-orm.workers.dev/?delimiter=/&prefix=all_commits/61023c35d2c8762f66f09bc4183d2f630b541d08/
const delimitedPrefixes = result.delimitedPrefixes || [];
for (const fullname of delimitedPrefixes) {
const name = `${node_path_1.default.basename(fullname)}/`;
items.push({
name,
isDir: true,
url: '',
size: '-',
date: new Date().toISOString(),
});
}
return items;
};
exports.PrismaBinary = PrismaBinary = __decorate([
(0, tegg_1.SingletonProto)(),
(0, AbstractBinary_1.BinaryAdapter)(Binary_1.BinaryType.Prisma)
], PrismaBinary);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpc21hQmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL2NvbW1vbi9hZGFwdGVyL2JpbmFyeS9QcmlzbWFCaW5hcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLHNDQUE2QztBQUM3Qyw4Q0FBK0M7QUFDL0MsMkVBQW1FO0FBQ25FLHFEQUEwRjtBQUluRixJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFhLFNBQVEsK0JBQWM7SUFBekM7OztRQUNHLGFBQVEsR0FFWixFQUFFLENBQUM7SUF3SFQsQ0FBQztJQXRIQyxLQUFLLENBQUMsU0FBUztRQUNiLHNFQUFzRTtRQUN0RSxNQUFNLE1BQU0sR0FBRyw0Q0FBNEMsQ0FBQztRQUM1RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRztZQUNuQjtnQkFDRSxJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsR0FBRyxFQUFFLEVBQUU7YUFDUjtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBNEIsRUFBRSxDQUFDO1FBQ2hELHlIQUF5SDtRQUN6SCxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFF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