@everystack/cli 0.2.25 → 0.2.27
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/package.json +1 -1
- package/src/cli/discover.ts +18 -1
package/package.json
CHANGED
package/src/cli/discover.ts
CHANGED
|
@@ -294,6 +294,19 @@ export async function discoverConfig(
|
|
|
294
294
|
);
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
+
// Media bucket fallback: if not found via naming convention (custom/pre-existing bucket),
|
|
298
|
+
// try reading from .sst/outputs.json where sst.config.ts return values land.
|
|
299
|
+
let mediaBucket = bucketsResult.mediaBucket;
|
|
300
|
+
if (!mediaBucket) {
|
|
301
|
+
try {
|
|
302
|
+
const raw = await fs.readFile(path.resolve('.sst', 'outputs.json'), 'utf8');
|
|
303
|
+
const outputs = JSON.parse(raw);
|
|
304
|
+
if (outputs.mediaBucket) mediaBucket = outputs.mediaBucket;
|
|
305
|
+
} catch {
|
|
306
|
+
// outputs.json not available — non-fatal
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
297
310
|
return {
|
|
298
311
|
baseUrl: lambdaResult.routerUrl || '',
|
|
299
312
|
region,
|
|
@@ -302,7 +315,7 @@ export async function discoverConfig(
|
|
|
302
315
|
workerFunctionName: workerFn,
|
|
303
316
|
updatesBucket: bucketsResult.updatesBucket,
|
|
304
317
|
clientBundlesBucket: bucketsResult.clientBundlesBucket,
|
|
305
|
-
mediaBucket
|
|
318
|
+
mediaBucket,
|
|
306
319
|
kvsArn: cfResult.kvsArn,
|
|
307
320
|
distributionId,
|
|
308
321
|
};
|
|
@@ -313,9 +326,11 @@ export async function discoverConfig(
|
|
|
313
326
|
// ---------------------------------------------------------------------------
|
|
314
327
|
|
|
315
328
|
const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
329
|
+
const CACHE_VERSION = 2; // Bump when CachedOutputs schema changes to invalidate stale caches
|
|
316
330
|
|
|
317
331
|
interface CachedOutputs {
|
|
318
332
|
_cachedAt: number;
|
|
333
|
+
_version?: number;
|
|
319
334
|
routerUrl?: string;
|
|
320
335
|
apiFunctionName?: string;
|
|
321
336
|
imageFunctionName?: string;
|
|
@@ -335,6 +350,7 @@ export async function getCachedConfig(stage: string): Promise<DiscoveredConfig |
|
|
|
335
350
|
try {
|
|
336
351
|
const raw = await fs.readFile(cachePath(stage), 'utf8');
|
|
337
352
|
const cached: CachedOutputs = JSON.parse(raw);
|
|
353
|
+
if ((cached._version || 0) < CACHE_VERSION) return null;
|
|
338
354
|
if (Date.now() - cached._cachedAt > CACHE_TTL_MS) return null;
|
|
339
355
|
if (!cached.apiFunctionName || !cached.updatesBucket || !cached.clientBundlesBucket) {
|
|
340
356
|
return null;
|
|
@@ -359,6 +375,7 @@ export async function getCachedConfig(stage: string): Promise<DiscoveredConfig |
|
|
|
359
375
|
export async function setCachedConfig(stage: string, config: DiscoveredConfig): Promise<void> {
|
|
360
376
|
const data: CachedOutputs = {
|
|
361
377
|
_cachedAt: Date.now(),
|
|
378
|
+
_version: CACHE_VERSION,
|
|
362
379
|
routerUrl: config.baseUrl,
|
|
363
380
|
apiFunctionName: config.apiFunctionName,
|
|
364
381
|
imageFunctionName: config.imageFunctionName,
|