Rocky_Mountain_Vending/.pnpm-store/v10/files/24/b86db43aa5d8b06bbdb2e2b8663c20dff186833642ee2ceb4e18b625f477c9641d87b21ad2979c9c658e86952efb1805b49dfdf494dfd919509be8b481f0bd
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

1 line
No EOL
10 KiB
Text

{"version":3,"sources":["../../../../src/server/lib/cache-handlers/default.ts"],"sourcesContent":["/**\n * This is the default \"use cache\" handler it defaults to an in-memory store.\n * In-memory caches are fragile and should not use stale-while-revalidate\n * semantics on the caches because it's not worth warming up an entry that's\n * likely going to get evicted before we get to use it anyway. However, we also\n * don't want to reuse a stale entry for too long so stale entries should be\n * considered expired/missing in such cache handlers.\n */\n\nimport { LRUCache } from '../lru-cache'\nimport type { CacheEntry, CacheHandler } from './types'\nimport {\n areTagsExpired,\n areTagsStale,\n tagsManifest,\n type TagManifestEntry,\n} from '../incremental-cache/tags-manifest.external'\n\ntype PrivateCacheEntry = {\n entry: CacheEntry\n\n // For the default cache we store errored cache\n // entries and allow them to be used up to 3 times\n // after that we want to dispose it and try for fresh\n\n // If an entry is errored we return no entry\n // three times so that we retry hitting origin (MISS)\n // and then if it still fails to set after the third we\n // return the errored content and use expiration of\n // Math.min(30, entry.expiration)\n isErrored: boolean\n errorRetryCount: number\n\n // compute size on set since we need to read size\n // of the ReadableStream for LRU evicting\n size: number\n}\n\nexport function createDefaultCacheHandler(maxSize: number): CacheHandler {\n // If the max size is 0, return a cache handler that doesn't cache anything,\n // this avoids an unnecessary LRUCache instance and potential memory\n // allocation.\n if (maxSize === 0) {\n return {\n get: () => Promise.resolve(undefined),\n set: () => Promise.resolve(),\n refreshTags: () => Promise.resolve(),\n getExpiration: () => Promise.resolve(0),\n updateTags: () => Promise.resolve(),\n }\n }\n\n const memoryCache = new LRUCache<PrivateCacheEntry>(\n maxSize,\n (entry) => entry.size\n )\n const pendingSets = new Map<string, Promise<void>>()\n\n const debug = process.env.NEXT_PRIVATE_DEBUG_CACHE\n ? console.debug.bind(console, 'DefaultCacheHandler:')\n : undefined\n\n return {\n async get(cacheKey) {\n const pendingPromise = pendingSets.get(cacheKey)\n\n if (pendingPromise) {\n debug?.('get', cacheKey, 'pending')\n await pendingPromise\n }\n\n const privateEntry = memoryCache.get(cacheKey)\n\n if (!privateEntry) {\n debug?.('get', cacheKey, 'not found')\n return undefined\n }\n\n const entry = privateEntry.entry\n if (\n performance.timeOrigin + performance.now() >\n entry.timestamp + entry.revalidate * 1000\n ) {\n // In-memory caches should expire after revalidate time because it is\n // unlikely that a new entry will be able to be used before it is dropped\n // from the cache.\n debug?.('get', cacheKey, 'expired')\n\n return undefined\n }\n\n let revalidate = entry.revalidate\n\n if (areTagsExpired(entry.tags, entry.timestamp)) {\n debug?.('get', cacheKey, 'had expired tag')\n return undefined\n }\n\n if (areTagsStale(entry.tags, entry.timestamp)) {\n debug?.('get', cacheKey, 'had stale tag')\n revalidate = -1\n }\n\n const [returnStream, newSaved] = entry.value.tee()\n entry.value = newSaved\n\n debug?.('get', cacheKey, 'found', {\n tags: entry.tags,\n timestamp: entry.timestamp,\n expire: entry.expire,\n revalidate,\n })\n\n return {\n ...entry,\n revalidate,\n value: returnStream,\n }\n },\n\n async set(cacheKey, pendingEntry) {\n debug?.('set', cacheKey, 'start')\n\n let resolvePending: () => void = () => {}\n const pendingPromise = new Promise<void>((resolve) => {\n resolvePending = resolve\n })\n pendingSets.set(cacheKey, pendingPromise)\n\n const entry = await pendingEntry\n\n let size = 0\n\n try {\n const [value, clonedValue] = entry.value.tee()\n entry.value = value\n const reader = clonedValue.getReader()\n\n for (let chunk; !(chunk = await reader.read()).done; ) {\n size += Buffer.from(chunk.value).byteLength\n }\n\n memoryCache.set(cacheKey, {\n entry,\n isErrored: false,\n errorRetryCount: 0,\n size,\n })\n\n debug?.('set', cacheKey, 'done')\n } catch (err) {\n // TODO: store partial buffer with error after we retry 3 times\n debug?.('set', cacheKey, 'failed', err)\n } finally {\n resolvePending()\n pendingSets.delete(cacheKey)\n }\n },\n\n async refreshTags() {\n // Nothing to do for an in-memory cache handler.\n },\n\n async getExpiration(tags) {\n const expirations = tags.map((tag) => {\n const entry = tagsManifest.get(tag)\n if (!entry) return 0\n // Return the most recent timestamp (either expired or stale)\n return entry.expired || 0\n })\n\n const expiration = Math.max(...expirations, 0)\n\n debug?.('getExpiration', { tags, expiration })\n\n return expiration\n },\n\n async updateTags(tags, durations) {\n const now = Math.round(performance.timeOrigin + performance.now())\n debug?.('updateTags', { tags, timestamp: now })\n\n for (const tag of tags) {\n // TODO: update file-system-cache?\n const existingEntry = tagsManifest.get(tag) || {}\n\n if (durations) {\n // Use provided durations directly\n const updates: TagManifestEntry = { ...existingEntry }\n\n // mark as stale immediately\n updates.stale = now\n\n if (durations.expire !== undefined) {\n updates.expired = now + durations.expire * 1000 // Convert seconds to ms\n }\n\n tagsManifest.set(tag, updates)\n } else {\n // Update expired field for immediate expiration (default behavior when no durations provided)\n tagsManifest.set(tag, { ...existingEntry, expired: now })\n }\n }\n },\n }\n}\n"],"names":["createDefaultCacheHandler","maxSize","get","Promise","resolve","undefined","set","refreshTags","getExpiration","updateTags","memoryCache","LRUCache","entry","size","pendingSets","Map","debug","process","env","NEXT_PRIVATE_DEBUG_CACHE","console","bind","cacheKey","pendingPromise","privateEntry","performance","timeOrigin","now","timestamp","revalidate","areTagsExpired","tags","areTagsStale","returnStream","newSaved","value","tee","expire","pendingEntry","resolvePending","clonedValue","reader","getReader","chunk","read","done","Buffer","from","byteLength","isErrored","errorRetryCount","err","delete","expirations","map","tag","tagsManifest","expired","expiration","Math","max","durations","round","existingEntry","updates","stale"],"mappings":"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","ignoreList":[0]}