UNPKG

recoder-code

Version:

🚀 AI-powered development platform - Chat with 32+ models, build projects, automate workflows. Free models included!

315 lines • 12.4 kB
"use strict"; /** * PackageVersion Entity * Represents a specific version of a plugin package */ 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 __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PackageVersion = exports.VersionStatus = void 0; const typeorm_1 = require("typeorm"); const Package_1 = require("./Package"); const User_1 = require("./User"); var VersionStatus; (function (VersionStatus) { VersionStatus["ACTIVE"] = "active"; VersionStatus["DEPRECATED"] = "deprecated"; VersionStatus["YANKED"] = "yanked"; })(VersionStatus = exports.VersionStatus || (exports.VersionStatus = {})); let PackageVersion = class PackageVersion { // Methods addDownload() { this.download_count += 1; } deprecate(message) { this.status = VersionStatus.DEPRECATED; this.deprecated_at = new Date(); this.deprecation_message = message; } undeprecate() { this.status = VersionStatus.ACTIVE; this.deprecated_at = undefined; this.deprecation_message = undefined; } yank(reason) { this.status = VersionStatus.YANKED; this.yanked_at = new Date(); this.yank_reason = reason; } unyank() { this.status = VersionStatus.ACTIVE; this.yanked_at = undefined; this.yank_reason = undefined; } updateSecurityScan(scan) { this.security_scan = { ...scan, scan_date: new Date().toISOString() }; } updateQualityAnalysis(analysis) { this.quality_analysis = analysis; } getDependencyCount() { const deps = this.dependencies || {}; const devDeps = this.dev_dependencies || {}; const peerDeps = this.peer_dependencies || {}; const optionalDeps = this.optional_dependencies || {}; return Object.keys(deps).length + Object.keys(devDeps).length + Object.keys(peerDeps).length + Object.keys(optionalDeps).length; } getAllDependencies() { return { ...this.dependencies, ...this.dev_dependencies, ...this.peer_dependencies, ...this.optional_dependencies }; } isPrerelease() { return /\d+\.\d+\.\d+-.+/.test(this.version); } satisfiesNodeVersion(nodeVersion) { if (!this.engine_node) return true; try { // Simple semver check - in production, use a proper semver library const required = this.engine_node.replace(/[^\d.]/g, ''); const current = nodeVersion.replace(/[^\d.]/g, ''); return current >= required; } catch { return true; } } toNpmFormat() { return { name: this.package?.name, version: this.version, description: this.description, main: this.main, module: this.module, types: this.types, exports: this.exports, scripts: this.scripts || {}, dependencies: this.dependencies || {}, devDependencies: this.dev_dependencies || {}, peerDependencies: this.peer_dependencies || {}, optionalDependencies: this.optional_dependencies || {}, bundledDependencies: this.bundled_dependencies || [], engines: this.engines || {}, os: this.os, cpu: this.cpu, files: this.files, bin: this.bin, dist: this.dist, _id: `${this.package?.name}@${this.version}`, _nodeVersion: this.npm_metadata?._nodeVersion, _npmVersion: this.npm_metadata?._npmVersion, _npmUser: this.npm_metadata?._npmUser, _hasShrinkwrap: this.npm_metadata?._hasShrinkwrap || false }; } toApiFormat() { return { id: this.id, version: this.version, description: this.description, status: this.status, dependencies: this.dependencies || {}, dev_dependencies: this.dev_dependencies || {}, peer_dependencies: this.peer_dependencies || {}, optional_dependencies: this.optional_dependencies || {}, engines: this.engines || {}, main: this.main, module: this.module, types: this.types, exports: this.exports, scripts: this.scripts || {}, files: this.files || [], bin: this.bin || {}, dist: this.dist, download_count: this.download_count, security_scan: this.security_scan, quality_analysis: this.quality_analysis, build_info: this.build_info, created_at: this.created_at, published_at: this.published_at, deprecated_at: this.deprecated_at, yanked_at: this.yanked_at, deprecation_message: this.deprecation_message, yank_reason: this.yank_reason, is_prerelease: this.isPrerelease(), dependency_count: this.getDependencyCount() }; } }; __decorate([ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'), __metadata("design:type", String) ], PackageVersion.prototype, "id", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'varchar', length: 100 }), __metadata("design:type", String) ], PackageVersion.prototype, "version", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'text', nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "description", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "dependencies", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "dev_dependencies", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "peer_dependencies", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "optional_dependencies", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Array) ], PackageVersion.prototype, "bundled_dependencies", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "engine_node", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "engines", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Array) ], PackageVersion.prototype, "os", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Array) ], PackageVersion.prototype, "cpu", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "scripts", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "bin", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Array) ], PackageVersion.prototype, "files", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "main", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "module", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "types", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "exports", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'text', nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "changelog", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "dist", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'enum', enum: VersionStatus, default: VersionStatus.ACTIVE }), __metadata("design:type", String) ], PackageVersion.prototype, "status", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'text', nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "deprecation_message", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'text', nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "yank_reason", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'int', default: 0 }), __metadata("design:type", Number) ], PackageVersion.prototype, "download_count", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "security_scan", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "quality_analysis", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "build_info", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'json', nullable: true }), __metadata("design:type", Object) ], PackageVersion.prototype, "npm_metadata", void 0); __decorate([ (0, typeorm_1.CreateDateColumn)(), __metadata("design:type", Date) ], PackageVersion.prototype, "created_at", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true }), __metadata("design:type", Date) ], PackageVersion.prototype, "published_at", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true }), __metadata("design:type", Date) ], PackageVersion.prototype, "deprecated_at", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true }), __metadata("design:type", Date) ], PackageVersion.prototype, "yanked_at", void 0); __decorate([ (0, typeorm_1.ManyToOne)(() => Package_1.Package, pkg => pkg.versions, { onDelete: 'CASCADE' }), __metadata("design:type", Package_1.Package) ], PackageVersion.prototype, "package", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'uuid' }), __metadata("design:type", String) ], PackageVersion.prototype, "package_id", void 0); __decorate([ (0, typeorm_1.ManyToOne)(() => User_1.User, { eager: false }), __metadata("design:type", User_1.User) ], PackageVersion.prototype, "published_by", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'uuid', nullable: true }), __metadata("design:type", String) ], PackageVersion.prototype, "published_by_id", void 0); PackageVersion = __decorate([ (0, typeorm_1.Entity)('package_versions'), (0, typeorm_1.Index)(['package_id', 'version'], { unique: true }), (0, typeorm_1.Index)(['version']), (0, typeorm_1.Index)(['status']) ], PackageVersion); exports.PackageVersion = PackageVersion; //# sourceMappingURL=PackageVersion.js.map