@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.
@@ -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
- if (!matchesPackageFilter(packageName, repo.package_filter)) {
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 packagistUrl = `https://repo.packagist.org/p2/${packageName}.json`;
251
- const response = await fetch(packagistUrl, {
252
- headers: {
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
- const packageName = `${vendor}/${packageFile?.replace('.json', '')}`;
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:${packageName}`;
284
- const metadataKey = `p2:${packageName}:metadata`;
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 url = new URL(c.req.url);
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
- runInBackground(c, Promise.all([
363
- c.env.KV.put(kvKey, JSON.stringify(packageData)).catch(() => { }),
364
- c.env.KV.put(metadataKey, JSON.stringify({ lastModified: Date.now() })).catch(() => { })
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, baseUrl, maxVersions);
417
+ const transformedData = transformDistUrlsInMemory(packageData, repoId, requestBaseUrl, maxVersions);
391
418
  // Store package versions in background
392
- schedulePackageStorage(c, packageName, packageData, repoId, baseUrl);
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 if any repositories were synced
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
- // Get repositories that need sync (pending status)
829
- const reposToSync = await db
851
+ const unsettledRepos = await db
830
852
  .select()
831
853
  .from(repositories)
832
- .where(eq(repositories.status, 'pending'));
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 false;
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
- // Process all jobs (parallel for sync, queued for async)
857
- await jobProcessor.enqueueAll(syncJobs);
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":"AAAA;;;;GAIG;AAiBH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AA4B7C,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;AAEnC,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAsB;IACjE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE9E,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;YACrF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,SAAS,CAAC,2EAA2E;YACvF,CAAC;YAED,oEAAoE;YACpE,oEAAoE;YACpE,uBAAuB;YACvB,MAAM,OAAO,GAAG,MAAM,WAAW,IAAI,IAAI,CAAC,EAAE,eAAe,CAAC;YAC5D,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;YACjE,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YAED,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACtC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,6EAA6E;YAC7E,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,KAAK,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC;gBACjC,KAAK,CAAC,MAAM,CAAC,MAAM,WAAW,WAAW,CAAC;aAC3C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}