Lines 539-579javascript
540 return versionData.dist.tarball;
542 async getPackageFiles(packageName, version) {
543 const metadata = await this.getPackageMetadata(packageName);
544 const versionData = metadata.versions[version];
547 `Version ${version} not found for package ${packageName}`
550 const files = /* @__PURE__ */ new Map();
551 files.set("package.json", JSON.stringify(versionData, null, 2));
553 const tarballUrl = versionData.dist.tarball;
554 const response = await fetch(tarballUrl);
556 throw new Error(`Failed to fetch tarball from ${tarballUrl}`);
558 const arrayBuffer = await response.arrayBuffer();
559 const buffer = Buffer.from(arrayBuffer);
560 const { Readable } = await import('stream');
561 const tar = await import('tar');
MediumDynamic Require
Package source references dynamic require/import behavior.
dist/index.jsView on unpkg · L559 562 await new Promise((resolve, reject) => {
563 const readable = Readable.from(buffer);
564 const parser = new tar.Parser();
565 parser.on("entry", (entry) => {
566 const isInteresting = entry.type === "File" && (entry.path.endsWith(".js") || entry.path.endsWith(".ts") || entry.path.endsWith(".json") || entry.path.endsWith(".sh") || entry.path.endsWith(".bat"));
567 if (!isInteresting) {
572 entry.on("data", (chunk) => chunks.push(chunk));
573 entry.on("end", () => {
574 const content = Buffer.concat(chunks).toString("utf-8");
575 const cleanPath = entry.path.replace(/^package\//, "");
576 files.set(cleanPath, content);
579 parser.on("end", () => resolve());