@stacksjs/registry 0.10.24 → 0.10.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +15 -8
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -101116,7 +101116,7 @@ async function renderPackagesPage() {
101116
101116
  }
101117
101117
  return _packagesPageHtml;
101118
101118
  }
101119
- function createHandler(registry, analyticsStorage, zigPackageStorage, baseUrl, binaryStorage, phpPackageStorage, authService) {
101119
+ function createHandler(registry, analyticsStorage, zigPackageStorage, baseUrl, binaryStorage, phpPackageStorage, authService, internalBaseUrl = baseUrl) {
101120
101120
  return async (req) => {
101121
101121
  const url = new URL(req.url);
101122
101122
  const path6 = url.pathname;
@@ -101490,10 +101490,10 @@ function createHandler(registry, analyticsStorage, zigPackageStorage, baseUrl, b
101490
101490
  }
101491
101491
  }
101492
101492
  if (path6 === "/registry/download" && req.method === "POST") {
101493
- return handleRegistryDownload(req, corsHeaders);
101493
+ return handleRegistryDownload(req, corsHeaders, internalBaseUrl);
101494
101494
  }
101495
101495
  if (path6 === "/npm/download" && req.method === "POST") {
101496
- return handleRegistryDownload(req, corsHeaders);
101496
+ return handleRegistryDownload(req, corsHeaders, internalBaseUrl);
101497
101497
  }
101498
101498
  if (path6 === "/npm/resolve" && req.method === "POST") {
101499
101499
  return handleNpmResolve(req, corsHeaders);
@@ -101759,7 +101759,8 @@ function createServer(registry, port = 3000, analytics, zigStorage, binaryStorag
101759
101759
  const authSvc = new AuthService(auth);
101760
101760
  _authService = authSvc;
101761
101761
  const baseUrl = process.env.BASE_URL || `http://localhost:${port}`;
101762
- const handler = createHandler(registry, analyticsStorage, zigPackageStorage, baseUrl, binaryStorage, phpPackageStorage, authSvc);
101762
+ const internalBaseUrl = process.env.REGISTRY_INTERNAL_URL || `http://127.0.0.1:${port}`;
101763
+ const handler = createHandler(registry, analyticsStorage, zigPackageStorage, baseUrl, binaryStorage, phpPackageStorage, authSvc, internalBaseUrl);
101763
101764
  const start = () => {
101764
101765
  server = Bun.serve({
101765
101766
  port,
@@ -102748,11 +102749,17 @@ function isAllowedBulkTarballUrl(value) {
102748
102749
  return false;
102749
102750
  }
102750
102751
  }
102751
- async function fetchRegistryTarballBytes(pkg) {
102752
+ function internalBulkTarballUrl(value, internalBaseUrl) {
102753
+ const url = new URL(value);
102754
+ if (url.hostname !== "registry.pantry.dev")
102755
+ return value;
102756
+ return new URL(`${url.pathname}${url.search}`, `${internalBaseUrl.replace(/\/$/, "")}/`).href;
102757
+ }
102758
+ async function fetchRegistryTarballBytes(pkg, internalBaseUrl) {
102752
102759
  if (!isAllowedBulkTarballUrl(pkg.tarball)) {
102753
102760
  return null;
102754
102761
  }
102755
- const res = await fetch(pkg.tarball, {
102762
+ const res = await fetch(internalBulkTarballUrl(pkg.tarball, internalBaseUrl), {
102756
102763
  headers: { Accept: "application/octet-stream" }
102757
102764
  });
102758
102765
  if (!res.ok)
@@ -102785,7 +102792,7 @@ function appendTarEntry(controller, name, data) {
102785
102792
  if (padding)
102786
102793
  controller.enqueue(padding);
102787
102794
  }
102788
- async function handleRegistryDownload(req, corsHeaders) {
102795
+ async function handleRegistryDownload(req, corsHeaders, internalBaseUrl) {
102789
102796
  try {
102790
102797
  const body = await req.json();
102791
102798
  if (!Array.isArray(body?.packages) || body.packages.length === 0) {
@@ -102807,7 +102814,7 @@ async function handleRegistryDownload(req, corsHeaders) {
102807
102814
  const fetched = await Promise.all(batch.map(async (pkg, batchIndex) => ({
102808
102815
  pkg,
102809
102816
  index: i9 + batchIndex,
102810
- bytes: await fetchRegistryTarballBytes(pkg)
102817
+ bytes: await fetchRegistryTarballBytes(pkg, internalBaseUrl)
102811
102818
  })));
102812
102819
  for (const item of fetched) {
102813
102820
  if (!item.bytes || item.bytes.byteLength === 0)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stacksjs/registry",
3
- "version": "0.10.24",
3
+ "version": "0.10.28",
4
4
  "type": "module",
5
5
  "description": "Pantry package registry backend - S3 storage with DynamoDB metadata",
6
6
  "author": "Stacks.js",