@package-broker/core 0.19.5 → 0.19.8
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.
- package/dist/jobs/processor.d.ts.map +1 -1
- package/dist/jobs/processor.js +15 -5
- package/dist/jobs/processor.js.map +1 -1
- package/dist/modules/packages/packages.handlers.d.ts.map +1 -1
- package/dist/modules/packages/packages.handlers.js +9 -14
- package/dist/modules/packages/packages.handlers.js.map +1 -1
- package/dist/queue/consumer.d.ts +0 -8
- package/dist/queue/consumer.d.ts.map +1 -1
- package/dist/queue/consumer.js +0 -21
- package/dist/queue/consumer.js.map +1 -1
- package/dist/queue/index.d.ts +2 -0
- package/dist/queue/index.d.ts.map +1 -1
- package/dist/queue/index.js +2 -0
- package/dist/queue/index.js.map +1 -1
- package/dist/routes/composer.d.ts +7 -1
- package/dist/routes/composer.d.ts.map +1 -1
- package/dist/routes/composer.js +108 -79
- package/dist/routes/composer.js.map +1 -1
- package/dist/routes/package-revalidation.d.ts +38 -0
- package/dist/routes/package-revalidation.d.ts.map +1 -0
- package/dist/routes/package-revalidation.js +66 -0
- package/dist/routes/package-revalidation.js.map +1 -0
- package/dist/utils/upstream-fetch.d.ts +11 -0
- package/dist/utils/upstream-fetch.d.ts.map +1 -1
- package/dist/utils/upstream-fetch.js +58 -5
- package/dist/utils/upstream-fetch.js.map +1 -1
- package/package.json +2 -2
package/dist/routes/composer.js
CHANGED
|
@@ -7,12 +7,12 @@ import { repositories, packages } from '../db/schema';
|
|
|
7
7
|
import { eq, and, inArray } from 'drizzle-orm';
|
|
8
8
|
import { createJobProcessor } from '../jobs/processor';
|
|
9
9
|
import { isPackagistMirroringEnabled, isPackageCachingEnabled } from '../modules/admin';
|
|
10
|
-
import { COMPOSER_USER_AGENT } from '@package-broker/shared';
|
|
11
10
|
import { nanoid } from 'nanoid';
|
|
12
11
|
import { encryptCredentials } from '../utils/encryption';
|
|
13
12
|
import { getLogger } from '../utils/logger';
|
|
14
13
|
import { getAnalytics } from '../utils/analytics';
|
|
15
14
|
import { runInBackground } from '../utils/background';
|
|
15
|
+
import { revalidateStalePackage, REVALIDATION_TTL_SECONDS } from './package-revalidation';
|
|
16
16
|
/** Default maximum versions per package to avoid CPU timeout on Cloudflare Workers */
|
|
17
17
|
export const DEFAULT_MAX_VERSIONS = 50;
|
|
18
18
|
/**
|
|
@@ -134,9 +134,12 @@ export async function packagesJsonRoute(c) {
|
|
|
134
134
|
}
|
|
135
135
|
// No cache - build packages.json from database
|
|
136
136
|
const packagesJson = await buildPackagesJson(c);
|
|
137
|
-
// Cache the result (fire-and-forget to avoid blocking on KV rate limits)
|
|
137
|
+
// Cache the result (fire-and-forget to avoid blocking on KV rate limits).
|
|
138
|
+
// Never cache while repository syncs are pending or in flight: the list is
|
|
139
|
+
// built from pre-sync data and would otherwise be pinned in KV until the
|
|
140
|
+
// next manual purge.
|
|
138
141
|
const cachingEnabled = await isPackageCachingEnabled(c.env.KV);
|
|
139
|
-
if (cachingEnabled && c.env.KV) {
|
|
142
|
+
if (cachingEnabled && c.env.KV && !hasPendingRepos) {
|
|
140
143
|
runInBackground(c, Promise.all([
|
|
141
144
|
c.env.KV.put(kvKey, JSON.stringify(packagesJson)).catch(() => { }),
|
|
142
145
|
c.env.KV.put(metadataKey, JSON.stringify({ lastModified: Date.now() })).catch(() => { })
|
|
@@ -187,6 +190,36 @@ function matchesPackageFilter(packageName, filter) {
|
|
|
187
190
|
return pkgLower === pattern;
|
|
188
191
|
});
|
|
189
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Fetch package metadata from a single repository, dispatching on vcs_type.
|
|
195
|
+
* Returns the raw upstream package data, or null when the repo does not
|
|
196
|
+
* provide the package (filter mismatch, unsupported host, not found).
|
|
197
|
+
*/
|
|
198
|
+
export async function fetchPackageFromRepository(repo, packageName, encryptionKey) {
|
|
199
|
+
if (!matchesPackageFilter(packageName, repo.package_filter)) {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
const repoRef = {
|
|
203
|
+
id: repo.id,
|
|
204
|
+
url: repo.url,
|
|
205
|
+
vcs_type: repo.vcs_type,
|
|
206
|
+
credential_type: repo.credential_type,
|
|
207
|
+
auth_credentials: repo.auth_credentials,
|
|
208
|
+
package_filter: repo.package_filter,
|
|
209
|
+
};
|
|
210
|
+
if (repo.vcs_type === 'composer') {
|
|
211
|
+
const { fetchPackageFromUpstream } = await import('../utils/upstream-fetch');
|
|
212
|
+
return fetchPackageFromUpstream(repoRef, packageName, encryptionKey);
|
|
213
|
+
}
|
|
214
|
+
if (repo.vcs_type === 'git') {
|
|
215
|
+
const { fetchPackageFromGitHub, isGitHubUrl } = await import('../utils/upstream-fetch');
|
|
216
|
+
if (!isGitHubUrl(repo.url)) {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
return fetchPackageFromGitHub(repoRef, packageName, encryptionKey);
|
|
220
|
+
}
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
190
223
|
/**
|
|
191
224
|
* Lazy load package metadata from all available repositories
|
|
192
225
|
* Returns package data and repo_id if found, null otherwise
|
|
@@ -199,35 +232,7 @@ export async function lazyLoadPackageFromRepositories(db, packageName, encryptio
|
|
|
199
232
|
const sortedRepos = sortRepositoriesByPriority(allRepos);
|
|
200
233
|
for (const repo of sortedRepos) {
|
|
201
234
|
try {
|
|
202
|
-
|
|
203
|
-
continue;
|
|
204
|
-
}
|
|
205
|
-
let packageData = null;
|
|
206
|
-
if (repo.vcs_type === 'composer') {
|
|
207
|
-
const { fetchPackageFromUpstream } = await import('../utils/upstream-fetch');
|
|
208
|
-
packageData = await fetchPackageFromUpstream({
|
|
209
|
-
id: repo.id,
|
|
210
|
-
url: repo.url,
|
|
211
|
-
vcs_type: repo.vcs_type,
|
|
212
|
-
credential_type: repo.credential_type,
|
|
213
|
-
auth_credentials: repo.auth_credentials,
|
|
214
|
-
package_filter: repo.package_filter,
|
|
215
|
-
}, packageName, encryptionKey);
|
|
216
|
-
}
|
|
217
|
-
else if (repo.vcs_type === 'git') {
|
|
218
|
-
const { fetchPackageFromGitHub, isGitHubUrl } = await import('../utils/upstream-fetch');
|
|
219
|
-
if (!isGitHubUrl(repo.url)) {
|
|
220
|
-
continue;
|
|
221
|
-
}
|
|
222
|
-
packageData = await fetchPackageFromGitHub({
|
|
223
|
-
id: repo.id,
|
|
224
|
-
url: repo.url,
|
|
225
|
-
vcs_type: repo.vcs_type,
|
|
226
|
-
credential_type: repo.credential_type,
|
|
227
|
-
auth_credentials: repo.auth_credentials,
|
|
228
|
-
package_filter: repo.package_filter,
|
|
229
|
-
}, packageName, encryptionKey);
|
|
230
|
-
}
|
|
235
|
+
const packageData = await fetchPackageFromRepository(repo, packageName, encryptionKey);
|
|
231
236
|
if (packageData) {
|
|
232
237
|
return { packageData, repoId: repo.id };
|
|
233
238
|
}
|
|
@@ -247,14 +252,9 @@ export async function lazyLoadPackageFromRepositories(db, packageName, encryptio
|
|
|
247
252
|
if (mirroringEnabled) {
|
|
248
253
|
try {
|
|
249
254
|
await ensurePackagistRepository(db, encryptionKey, kv || undefined);
|
|
250
|
-
const
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
'User-Agent': COMPOSER_USER_AGENT,
|
|
254
|
-
},
|
|
255
|
-
});
|
|
256
|
-
if (response.ok) {
|
|
257
|
-
const packageData = await response.json();
|
|
255
|
+
const { fetchFullPackageFromPackagist } = await import('../utils/upstream-fetch');
|
|
256
|
+
const packageData = await fetchFullPackageFromPackagist(packageName);
|
|
257
|
+
if (packageData) {
|
|
258
258
|
return { packageData, repoId: 'packagist' };
|
|
259
259
|
}
|
|
260
260
|
}
|
|
@@ -276,13 +276,17 @@ export async function lazyLoadPackageFromRepositories(db, packageName, encryptio
|
|
|
276
276
|
export async function p2PackageRoute(c) {
|
|
277
277
|
const vendor = c.req.param('vendor');
|
|
278
278
|
const packageFile = c.req.param('package');
|
|
279
|
-
|
|
279
|
+
// Strip only the trailing extension - package names may contain ".json"
|
|
280
|
+
const requestedPackageName = `${vendor}/${packageFile?.replace(/\.json$/, '')}`;
|
|
281
|
+
const packageName = requestedPackageName.replace(/~(?:dev|stable|alpha|beta|RC)$/, '');
|
|
280
282
|
if (!vendor || !packageFile) {
|
|
281
283
|
return c.json({ error: 'Bad Request', message: 'Invalid package name' }, 400);
|
|
282
284
|
}
|
|
283
|
-
const kvKey = `p2:${
|
|
284
|
-
const metadataKey = `p2:${
|
|
285
|
+
const kvKey = `p2:${requestedPackageName}`;
|
|
286
|
+
const metadataKey = `p2:${requestedPackageName}:metadata`;
|
|
285
287
|
const db = c.get('database');
|
|
288
|
+
const requestUrl = new URL(c.req.url);
|
|
289
|
+
const requestBaseUrl = `${requestUrl.protocol}//${requestUrl.host}`;
|
|
286
290
|
// Check conditional request
|
|
287
291
|
const ifModifiedSince = c.req.header('If-Modified-Since');
|
|
288
292
|
const metadata = c.env.KV ? await c.env.KV.get(metadataKey, 'json') : null;
|
|
@@ -353,16 +357,41 @@ export async function p2PackageRoute(c) {
|
|
|
353
357
|
if (existingPackages.length > 0) {
|
|
354
358
|
// Build response from database packages
|
|
355
359
|
const maxVersions = getMaxVersions(c.env);
|
|
356
|
-
const
|
|
357
|
-
const baseUrl = `${url.protocol}//${url.host}`;
|
|
358
|
-
const packageData = buildP2Response(packageName, existingPackages, maxVersions, baseUrl);
|
|
360
|
+
const packageData = buildP2Response(packageName, existingPackages, maxVersions, requestBaseUrl);
|
|
359
361
|
// Cache the result (fire-and-forget to avoid blocking on KV rate limits)
|
|
362
|
+
// TTL keeps cached responses from outliving the revalidation window
|
|
360
363
|
const cachingEnabled = await isPackageCachingEnabled(c.env.KV);
|
|
361
364
|
if (cachingEnabled && c.env.KV) {
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
365
|
+
const kv = c.env.KV;
|
|
366
|
+
// Stale-while-revalidate: this branch is only reached when the cached
|
|
367
|
+
// response has expired (at most once per TTL), so it doubles as the
|
|
368
|
+
// trigger to re-check upstream for new releases. The cache write MUST
|
|
369
|
+
// complete before revalidation runs - otherwise revalidation's cache
|
|
370
|
+
// purge could be overwritten by this stale response.
|
|
371
|
+
// Pinned to the repos the rows came from - see package-revalidation.ts.
|
|
372
|
+
const repoIds = [...new Set(existingPackages.map((pkg) => pkg.repo_id))];
|
|
373
|
+
runInBackground(c, (async () => {
|
|
374
|
+
await Promise.all([
|
|
375
|
+
kv.put(kvKey, JSON.stringify(packageData), { expirationTtl: REVALIDATION_TTL_SECONDS }).catch(() => { }),
|
|
376
|
+
kv.put(metadataKey, JSON.stringify({ lastModified: Date.now() }), { expirationTtl: REVALIDATION_TTL_SECONDS }).catch(() => { })
|
|
377
|
+
]);
|
|
378
|
+
await revalidateStalePackage({
|
|
379
|
+
db,
|
|
380
|
+
cache: kv,
|
|
381
|
+
packageName,
|
|
382
|
+
repoIds,
|
|
383
|
+
encryptionKey: c.env.ENCRYPTION_KEY,
|
|
384
|
+
proxyBaseUrl: requestBaseUrl,
|
|
385
|
+
loadPackageFromRepo: fetchPackageFromRepository,
|
|
386
|
+
storePackages: transformPackageDistUrls,
|
|
387
|
+
});
|
|
388
|
+
})().catch((error) => {
|
|
389
|
+
const logger = getLogger();
|
|
390
|
+
logger.warn('Background package revalidation failed', {
|
|
391
|
+
packageName,
|
|
392
|
+
error: error instanceof Error ? error.message : String(error),
|
|
393
|
+
});
|
|
394
|
+
}));
|
|
366
395
|
}
|
|
367
396
|
// Track metadata request (cache miss, from DB)
|
|
368
397
|
const analytics = getAnalytics();
|
|
@@ -381,15 +410,13 @@ export async function p2PackageRoute(c) {
|
|
|
381
410
|
return new Response(JSON.stringify(packageData), { status: 200, headers });
|
|
382
411
|
}
|
|
383
412
|
// Not in database - try lazy loading from upstream repositories
|
|
384
|
-
const url = new URL(c.req.url);
|
|
385
|
-
const baseUrl = `${url.protocol}//${url.host}`;
|
|
386
413
|
const maxVersions = getMaxVersions(c.env);
|
|
387
414
|
const lazyLoadResult = await lazyLoadPackageFromRepositories(db, packageName, c.env.ENCRYPTION_KEY, c.env.KV);
|
|
388
415
|
if (lazyLoadResult) {
|
|
389
416
|
const { packageData, repoId } = lazyLoadResult;
|
|
390
|
-
const transformedData = transformDistUrlsInMemory(packageData, repoId,
|
|
417
|
+
const transformedData = transformDistUrlsInMemory(packageData, repoId, requestBaseUrl, maxVersions);
|
|
391
418
|
// Store package versions in background
|
|
392
|
-
schedulePackageStorage(c, packageName, packageData, repoId,
|
|
419
|
+
schedulePackageStorage(c, packageName, packageData, repoId, requestBaseUrl);
|
|
393
420
|
// Track metadata request (cache miss, from upstream)
|
|
394
421
|
const analytics = getAnalytics();
|
|
395
422
|
const requestId = c.get('requestId');
|
|
@@ -660,13 +687,6 @@ export function buildP2Response(packageName, packageVersions, maxVersions = DEFA
|
|
|
660
687
|
// Update dist with any metadata overrides
|
|
661
688
|
versionDataBase.dist = dist;
|
|
662
689
|
versions.push(versionDataBase);
|
|
663
|
-
if (normalizedVersion && normalizedVersion !== displayVersion) {
|
|
664
|
-
versions.push({
|
|
665
|
-
...versionDataBase,
|
|
666
|
-
version: normalizedVersion,
|
|
667
|
-
version_normalized: normalizedVersion,
|
|
668
|
-
});
|
|
669
|
-
}
|
|
670
690
|
}
|
|
671
691
|
return {
|
|
672
692
|
packages: {
|
|
@@ -818,21 +838,35 @@ export async function ensurePackagistRepository(db, encryptionKey, kv) {
|
|
|
818
838
|
await kv.put(cacheKey, 'true', { expirationTtl: 3600 });
|
|
819
839
|
}
|
|
820
840
|
}
|
|
841
|
+
/** A repo stuck in 'syncing' longer than this is treated as dead (killed worker) */
|
|
842
|
+
const STALE_SYNC_THRESHOLD_SECONDS = 900;
|
|
821
843
|
/**
|
|
822
|
-
* Sync all pending repositories
|
|
823
|
-
* Uses job processor which automatically chooses sync vs async execution
|
|
824
|
-
* @returns true
|
|
844
|
+
* Sync all pending repositories in the background.
|
|
845
|
+
* Uses job processor which automatically chooses sync vs async execution.
|
|
846
|
+
* @returns true while any repository sync is pending or still running -
|
|
847
|
+
* callers must not cache packages.json built in that window
|
|
825
848
|
*/
|
|
826
849
|
async function syncPendingRepositories(c) {
|
|
827
850
|
const db = c.get('database');
|
|
828
|
-
|
|
829
|
-
const reposToSync = await db
|
|
851
|
+
const unsettledRepos = await db
|
|
830
852
|
.select()
|
|
831
853
|
.from(repositories)
|
|
832
|
-
.where(
|
|
854
|
+
.where(inArray(repositories.status, ['pending', 'syncing']));
|
|
855
|
+
const now = Math.floor(Date.now() / 1000);
|
|
856
|
+
const isStaleSync = (repo) => repo.status === 'syncing' && (repo.last_synced_at || 0) <= now - STALE_SYNC_THRESHOLD_SECONDS;
|
|
857
|
+
// Re-sync repos stuck in 'syncing' (worker killed mid-sync) along with
|
|
858
|
+
// pending ones - otherwise they would stay unsynced forever
|
|
859
|
+
const reposToSync = unsettledRepos.filter((repo) => repo.status === 'pending' || isStaleSync(repo));
|
|
860
|
+
const syncsInFlight = unsettledRepos.filter((repo) => repo.status === 'syncing' && !isStaleSync(repo));
|
|
833
861
|
if (reposToSync.length === 0) {
|
|
834
|
-
return
|
|
862
|
+
return syncsInFlight.length > 0;
|
|
835
863
|
}
|
|
864
|
+
// Claim the repos before backgrounding the sync so concurrent
|
|
865
|
+
// packages.json requests do not start duplicate syncs of the same repo
|
|
866
|
+
await db
|
|
867
|
+
.update(repositories)
|
|
868
|
+
.set({ status: 'syncing', last_synced_at: now })
|
|
869
|
+
.where(and(inArray(repositories.id, reposToSync.map((repo) => repo.id)), inArray(repositories.status, ['pending', 'syncing'])));
|
|
836
870
|
// Determine proxy base URL from request
|
|
837
871
|
const url = new URL(c.req.url);
|
|
838
872
|
const proxyBaseUrl = `${url.protocol}//${url.host}`;
|
|
@@ -853,8 +887,12 @@ async function syncPendingRepositories(c) {
|
|
|
853
887
|
type: 'sync_repository',
|
|
854
888
|
repoId: repo.id,
|
|
855
889
|
}));
|
|
856
|
-
//
|
|
857
|
-
|
|
890
|
+
// Run syncs in the background: inline sync of a large repository would
|
|
891
|
+
// otherwise block the packages.json response until every repo finishes
|
|
892
|
+
runInBackground(c, jobProcessor.enqueueAll(syncJobs).catch((error) => {
|
|
893
|
+
const logger = getLogger();
|
|
894
|
+
logger.error('Background repository sync failed', {}, error instanceof Error ? error : new Error(String(error)));
|
|
895
|
+
}));
|
|
858
896
|
return true;
|
|
859
897
|
}
|
|
860
898
|
/**
|
|
@@ -950,15 +988,6 @@ function transformDistUrlsInMemory(packageData, repoId, proxyBaseUrl, maxVersion
|
|
|
950
988
|
}
|
|
951
989
|
// Push to array (Composer 2 p2 format)
|
|
952
990
|
result.packages[pkgName].push(versionData);
|
|
953
|
-
// Add normalized version alias if different from display version
|
|
954
|
-
// This allows constraints like "== 7.17.3.0" to match "v7.17.3"
|
|
955
|
-
if (normalizedVersion && normalizedVersion !== version) {
|
|
956
|
-
result.packages[pkgName].push({
|
|
957
|
-
...versionData,
|
|
958
|
-
version: normalizedVersion,
|
|
959
|
-
version_normalized: normalizedVersion,
|
|
960
|
-
});
|
|
961
|
-
}
|
|
962
991
|
}
|
|
963
992
|
}
|
|
964
993
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/routes/composer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/routes/composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { DatabasePort } from '../ports';
|
|
2
|
+
import type { fetchPackageFromRepository, transformPackageDistUrls } from './composer';
|
|
3
|
+
/** How long a cached p2 response lives — doubles as the revalidation cadence. */
|
|
4
|
+
export declare const REVALIDATION_TTL_SECONDS = 3600;
|
|
5
|
+
/**
|
|
6
|
+
* Minimal cache surface needed for revalidation. Structurally satisfied by
|
|
7
|
+
* Cloudflare KVNamespace and by CachePort implementations (Redis, memory),
|
|
8
|
+
* keeping this module platform-neutral per the core architecture rules.
|
|
9
|
+
*/
|
|
10
|
+
export interface RevalidationCache {
|
|
11
|
+
get(key: string): Promise<string | null>;
|
|
12
|
+
put(key: string, value: string, options?: {
|
|
13
|
+
expirationTtl?: number;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
delete(key: string): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export interface RevalidationDeps {
|
|
18
|
+
db: DatabasePort;
|
|
19
|
+
cache: RevalidationCache;
|
|
20
|
+
packageName: string;
|
|
21
|
+
/** Repositories the stored rows came from — revalidation is pinned to them
|
|
22
|
+
* so a refresh can never migrate versions to a different repo_id
|
|
23
|
+
* (cross-repo collisions, see issue #99). */
|
|
24
|
+
repoIds: string[];
|
|
25
|
+
encryptionKey: string;
|
|
26
|
+
proxyBaseUrl: string;
|
|
27
|
+
/** Injected type-safely from routes/composer.ts (type-only import avoids a runtime cycle) */
|
|
28
|
+
loadPackageFromRepo: typeof fetchPackageFromRepository;
|
|
29
|
+
storePackages: typeof transformPackageDistUrls;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Re-fetch package metadata from the repositories it was originally stored
|
|
33
|
+
* from, and refresh the database only when the upstream content changed.
|
|
34
|
+
* On change, the cached p2 response is purged so the next request rebuilds
|
|
35
|
+
* from the refreshed rows.
|
|
36
|
+
*/
|
|
37
|
+
export declare function revalidateStalePackage(deps: RevalidationDeps): Promise<void>;
|
|
38
|
+
//# sourceMappingURL=package-revalidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-revalidation.d.ts","sourceRoot":"","sources":["../../src/routes/package-revalidation.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEvF,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB;;iDAE6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,mBAAmB,EAAE,OAAO,0BAA0B,CAAC;IACvD,aAAa,EAAE,OAAO,wBAAwB,CAAC;CAChD;AAUD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDlF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PACKAGE.broker
|
|
3
|
+
* Copyright (C) 2025 Łukasz Bajsarowicz
|
|
4
|
+
* Licensed under AGPL-3.0
|
|
5
|
+
*/
|
|
6
|
+
import { repositories } from '../db/schema';
|
|
7
|
+
import { inArray } from 'drizzle-orm';
|
|
8
|
+
import { getLogger } from '../utils/logger';
|
|
9
|
+
/** How long a cached p2 response lives — doubles as the revalidation cadence. */
|
|
10
|
+
export const REVALIDATION_TTL_SECONDS = 3600;
|
|
11
|
+
/** Dedupe concurrent revalidations of the same package within this isolate */
|
|
12
|
+
const inFlight = new Set();
|
|
13
|
+
async function sha256Hex(input) {
|
|
14
|
+
const digest = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(input));
|
|
15
|
+
return Array.from(new Uint8Array(digest), (b) => b.toString(16).padStart(2, '0')).join('');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Re-fetch package metadata from the repositories it was originally stored
|
|
19
|
+
* from, and refresh the database only when the upstream content changed.
|
|
20
|
+
* On change, the cached p2 response is purged so the next request rebuilds
|
|
21
|
+
* from the refreshed rows.
|
|
22
|
+
*/
|
|
23
|
+
export async function revalidateStalePackage(deps) {
|
|
24
|
+
const { db, cache, packageName, repoIds, encryptionKey, proxyBaseUrl } = deps;
|
|
25
|
+
if (inFlight.has(packageName)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
inFlight.add(packageName);
|
|
29
|
+
try {
|
|
30
|
+
const repos = repoIds.length > 0
|
|
31
|
+
? await db.select().from(repositories).where(inArray(repositories.id, repoIds))
|
|
32
|
+
: [];
|
|
33
|
+
let changed = false;
|
|
34
|
+
for (const repo of repos) {
|
|
35
|
+
const packageData = await deps.loadPackageFromRepo(repo, packageName, encryptionKey);
|
|
36
|
+
if (!packageData) {
|
|
37
|
+
continue; // Upstream has no data (removed or unreachable) — keep serving stored rows
|
|
38
|
+
}
|
|
39
|
+
// Skip the D1 upsert when upstream content is byte-identical to the
|
|
40
|
+
// last stored fetch — revalidating unchanged packages must not burn
|
|
41
|
+
// the D1 write budget.
|
|
42
|
+
const hashKey = `p2:${packageName}:${repo.id}:content-hash`;
|
|
43
|
+
const contentHash = await sha256Hex(JSON.stringify(packageData));
|
|
44
|
+
const previousHash = await cache.get(hashKey);
|
|
45
|
+
if (previousHash === contentHash) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
await deps.storePackages(packageData, repo.id, proxyBaseUrl, db);
|
|
49
|
+
await cache.put(hashKey, contentHash);
|
|
50
|
+
changed = true;
|
|
51
|
+
}
|
|
52
|
+
if (changed) {
|
|
53
|
+
// Purge the cached response so the next request rebuilds from refreshed rows
|
|
54
|
+
await Promise.all([
|
|
55
|
+
cache.delete(`p2:${packageName}`),
|
|
56
|
+
cache.delete(`p2:${packageName}:metadata`),
|
|
57
|
+
]);
|
|
58
|
+
const logger = getLogger();
|
|
59
|
+
logger.info('Revalidated package metadata from upstream', { packageName, repoIds });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
inFlight.delete(packageName);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=package-revalidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-revalidation.js","sourceRoot":"","sources":["../../src/routes/package-revalidation.ts"],"names":[],"mappings":"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"}
|