@revealui/core 0.3.0 → 0.5.2

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 (155) hide show
  1. package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -1
  2. package/dist/client/admin/components/AdminDashboard.js +20 -3
  3. package/dist/client/richtext/index.d.ts.map +1 -1
  4. package/dist/client/richtext/plugins/FloatingToolbarPlugin.js +1 -3
  5. package/dist/collections/operations/create.d.ts +2 -1
  6. package/dist/collections/operations/create.d.ts.map +1 -1
  7. package/dist/collections/operations/create.js +28 -1
  8. package/dist/database/type-adapter.d.ts.map +1 -1
  9. package/dist/features.d.ts +13 -3
  10. package/dist/features.d.ts.map +1 -1
  11. package/dist/features.js +17 -0
  12. package/dist/globals/GlobalOperations.d.ts.map +1 -1
  13. package/dist/globals/GlobalOperations.js +12 -2
  14. package/dist/index.d.ts +11 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +11 -1
  17. package/dist/license.d.ts +6 -0
  18. package/dist/license.d.ts.map +1 -1
  19. package/dist/license.js +14 -1
  20. package/dist/monitoring/alerts.d.ts +4 -4
  21. package/dist/monitoring/alerts.d.ts.map +1 -1
  22. package/dist/plugins/nested-docs.d.ts.map +1 -1
  23. package/dist/plugins/nested-docs.js +0 -1
  24. package/dist/queries/queryBuilder.d.ts.map +1 -1
  25. package/dist/queries/queryBuilder.js +4 -3
  26. package/dist/richtext/index.d.ts.map +1 -1
  27. package/dist/storage/vercel-blob.d.ts.map +1 -1
  28. package/dist/storage/vercel-blob.js +3 -0
  29. package/dist/types/api.d.ts.map +1 -1
  30. package/dist/types/config.d.ts.map +1 -1
  31. package/dist/types/core.d.ts +1 -1
  32. package/dist/types/core.d.ts.map +1 -1
  33. package/dist/types/extensions.d.ts.map +1 -1
  34. package/dist/types/frontend.d.ts.map +1 -1
  35. package/dist/types/legacy.d.ts.map +1 -1
  36. package/dist/types/query.d.ts.map +1 -1
  37. package/dist/types/runtime.d.ts +1 -0
  38. package/dist/types/runtime.d.ts.map +1 -1
  39. package/dist/utils/error-responses.d.ts.map +1 -1
  40. package/dist/utils/error-responses.js +2 -3
  41. package/package.json +24 -24
  42. package/dist/caching/app-cache.d.ts +0 -242
  43. package/dist/caching/app-cache.d.ts.map +0 -1
  44. package/dist/caching/app-cache.js +0 -438
  45. package/dist/caching/cdn-config.d.ts +0 -155
  46. package/dist/caching/cdn-config.d.ts.map +0 -1
  47. package/dist/caching/cdn-config.js +0 -415
  48. package/dist/caching/edge-cache.d.ts +0 -177
  49. package/dist/caching/edge-cache.d.ts.map +0 -1
  50. package/dist/caching/edge-cache.js +0 -414
  51. package/dist/caching/service-worker.d.ts +0 -157
  52. package/dist/caching/service-worker.d.ts.map +0 -1
  53. package/dist/caching/service-worker.js +0 -438
  54. package/dist/client/admin/utils/auth.d.ts +0 -23
  55. package/dist/client/admin/utils/auth.d.ts.map +0 -1
  56. package/dist/client/admin/utils/auth.js +0 -52
  57. package/dist/client/http/client.d.ts +0 -15
  58. package/dist/client/http/client.d.ts.map +0 -1
  59. package/dist/client/http/client.js +0 -49
  60. package/dist/client/http/fetchBanner.d.ts +0 -18
  61. package/dist/client/http/fetchBanner.d.ts.map +0 -1
  62. package/dist/client/http/fetchBanner.js +0 -44
  63. package/dist/client/http/fetchCard.d.ts +0 -18
  64. package/dist/client/http/fetchCard.d.ts.map +0 -1
  65. package/dist/client/http/fetchCard.js +0 -46
  66. package/dist/client/http/fetchEvents.d.ts +0 -18
  67. package/dist/client/http/fetchEvents.d.ts.map +0 -1
  68. package/dist/client/http/fetchEvents.js +0 -44
  69. package/dist/client/http/fetchHero.d.ts +0 -17
  70. package/dist/client/http/fetchHero.d.ts.map +0 -1
  71. package/dist/client/http/fetchHero.js +0 -55
  72. package/dist/client/http/fetchMainInfos.d.ts +0 -17
  73. package/dist/client/http/fetchMainInfos.d.ts.map +0 -1
  74. package/dist/client/http/fetchMainInfos.js +0 -44
  75. package/dist/client/http/fetchVideos.d.ts +0 -13
  76. package/dist/client/http/fetchVideos.d.ts.map +0 -1
  77. package/dist/client/http/fetchVideos.js +0 -36
  78. package/dist/client/http/index.d.ts +0 -19
  79. package/dist/client/http/index.d.ts.map +0 -1
  80. package/dist/client/http/index.js +0 -11
  81. package/dist/error-handling/circuit-breaker.d.ts +0 -262
  82. package/dist/error-handling/circuit-breaker.d.ts.map +0 -1
  83. package/dist/error-handling/circuit-breaker.js +0 -550
  84. package/dist/error-handling/retry.d.ts +0 -194
  85. package/dist/error-handling/retry.d.ts.map +0 -1
  86. package/dist/error-handling/retry.js +0 -455
  87. package/dist/errors/index.d.ts +0 -23
  88. package/dist/errors/index.d.ts.map +0 -1
  89. package/dist/errors/index.js +0 -40
  90. package/dist/generated/agents/index.d.ts +0 -8
  91. package/dist/generated/agents/index.d.ts.map +0 -1
  92. package/dist/generated/agents/index.js +0 -7
  93. package/dist/generated/components/index.d.ts +0 -8
  94. package/dist/generated/components/index.d.ts.map +0 -1
  95. package/dist/generated/components/index.js +0 -7
  96. package/dist/generated/functions/index.d.ts +0 -8
  97. package/dist/generated/functions/index.d.ts.map +0 -1
  98. package/dist/generated/functions/index.js +0 -7
  99. package/dist/generated/hooks/index.d.ts +0 -8
  100. package/dist/generated/hooks/index.d.ts.map +0 -1
  101. package/dist/generated/hooks/index.js +0 -7
  102. package/dist/generated/plans/index.d.ts +0 -8
  103. package/dist/generated/plans/index.d.ts.map +0 -1
  104. package/dist/generated/plans/index.js +0 -7
  105. package/dist/generated/prompts/index.d.ts +0 -8
  106. package/dist/generated/prompts/index.d.ts.map +0 -1
  107. package/dist/generated/prompts/index.js +0 -7
  108. package/dist/generated/tools/index.d.ts +0 -8
  109. package/dist/generated/tools/index.d.ts.map +0 -1
  110. package/dist/generated/tools/index.js +0 -7
  111. package/dist/generated/types/supabase.d.ts +0 -193
  112. package/dist/generated/types/supabase.d.ts.map +0 -1
  113. package/dist/generated/types/supabase.js +0 -5
  114. package/dist/optimization/asset-optimizer.d.ts +0 -206
  115. package/dist/optimization/asset-optimizer.d.ts.map +0 -1
  116. package/dist/optimization/asset-optimizer.js +0 -336
  117. package/dist/optimization/build-optimizer.d.ts +0 -202
  118. package/dist/optimization/build-optimizer.d.ts.map +0 -1
  119. package/dist/optimization/build-optimizer.js +0 -271
  120. package/dist/optimization/bundle-analyzer.d.ts +0 -98
  121. package/dist/optimization/bundle-analyzer.d.ts.map +0 -1
  122. package/dist/optimization/bundle-analyzer.js +0 -346
  123. package/dist/optimization/code-splitting.d.ts +0 -121
  124. package/dist/optimization/code-splitting.d.ts.map +0 -1
  125. package/dist/optimization/code-splitting.js +0 -261
  126. package/dist/plugin/index.d.ts +0 -12
  127. package/dist/plugin/index.d.ts.map +0 -1
  128. package/dist/plugin/index.js +0 -4
  129. package/dist/security/audit.d.ts +0 -188
  130. package/dist/security/audit.d.ts.map +0 -1
  131. package/dist/security/audit.js +0 -433
  132. package/dist/security/auth.d.ts +0 -110
  133. package/dist/security/auth.d.ts.map +0 -1
  134. package/dist/security/auth.js +0 -257
  135. package/dist/security/authorization.d.ts +0 -211
  136. package/dist/security/authorization.d.ts.map +0 -1
  137. package/dist/security/authorization.js +0 -492
  138. package/dist/security/encryption.d.ts +0 -226
  139. package/dist/security/encryption.d.ts.map +0 -1
  140. package/dist/security/encryption.js +0 -534
  141. package/dist/security/gdpr-storage.d.ts +0 -102
  142. package/dist/security/gdpr-storage.d.ts.map +0 -1
  143. package/dist/security/gdpr-storage.js +0 -65
  144. package/dist/security/gdpr.d.ts +0 -320
  145. package/dist/security/gdpr.d.ts.map +0 -1
  146. package/dist/security/gdpr.js +0 -531
  147. package/dist/security/headers.d.ts +0 -184
  148. package/dist/security/headers.d.ts.map +0 -1
  149. package/dist/security/headers.js +0 -420
  150. package/dist/utils/jwt-validation.d.ts +0 -14
  151. package/dist/utils/jwt-validation.d.ts.map +0 -1
  152. package/dist/utils/jwt-validation.js +0 -36
  153. package/dist/utils/request-headers.d.ts +0 -15
  154. package/dist/utils/request-headers.d.ts.map +0 -1
  155. package/dist/utils/request-headers.js +0 -31
@@ -1,438 +0,0 @@
1
- /**
2
- * Application-Level Caching
3
- *
4
- * Utilities for React Query, SWR, and application-level cache management
5
- */
6
- import { logger } from '../observability/logger.js';
7
- export const DEFAULT_REACT_QUERY_CONFIG = {
8
- defaultOptions: {
9
- queries: {
10
- staleTime: 1000 * 60 * 5, // 5 minutes
11
- cacheTime: 1000 * 60 * 30, // 30 minutes
12
- refetchOnWindowFocus: true,
13
- refetchOnReconnect: true,
14
- refetchOnMount: true,
15
- retry: 3,
16
- retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000),
17
- },
18
- mutations: {
19
- retry: 3,
20
- retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000),
21
- },
22
- },
23
- };
24
- export const DEFAULT_SWR_CONFIG = {
25
- revalidateOnFocus: true,
26
- revalidateOnReconnect: true,
27
- refreshInterval: 0,
28
- dedupingInterval: 2000,
29
- loadingTimeout: 3000,
30
- errorRetryInterval: 5000,
31
- errorRetryCount: 3,
32
- focusThrottleInterval: 5000,
33
- shouldRetryOnError: true,
34
- keepPreviousData: false,
35
- };
36
- /**
37
- * Cache Key Generator
38
- */
39
- export class CacheKeyGenerator {
40
- prefix;
41
- constructor(prefix = 'app') {
42
- this.prefix = prefix;
43
- }
44
- /**
45
- * Generate key for list queries
46
- */
47
- list(resource, filters) {
48
- const key = [this.prefix, resource, 'list'];
49
- if (filters && Object.keys(filters).length > 0) {
50
- key.push(JSON.stringify(filters));
51
- }
52
- return key;
53
- }
54
- /**
55
- * Generate key for detail queries
56
- */
57
- detail(resource, id) {
58
- return [this.prefix, resource, 'detail', String(id)];
59
- }
60
- /**
61
- * Generate key for custom queries
62
- */
63
- custom(...parts) {
64
- return [
65
- this.prefix,
66
- ...parts.map((part) => (typeof part === 'object' ? JSON.stringify(part) : String(part))),
67
- ];
68
- }
69
- /**
70
- * Generate key for infinite queries
71
- */
72
- infinite(resource, filters) {
73
- const key = [this.prefix, resource, 'infinite'];
74
- if (filters && Object.keys(filters).length > 0) {
75
- key.push(JSON.stringify(filters));
76
- }
77
- return key;
78
- }
79
- }
80
- /**
81
- * Cache Invalidation Strategies
82
- */
83
- export class CacheInvalidator {
84
- /**
85
- * Invalidate by resource
86
- */
87
- static byResource(resource) {
88
- return ['app', resource];
89
- }
90
- /**
91
- * Invalidate by ID
92
- */
93
- static byId(resource, id) {
94
- return ['app', resource, 'detail', String(id)];
95
- }
96
- /**
97
- * Invalidate lists
98
- */
99
- static lists(resource) {
100
- return ['app', resource, 'list'];
101
- }
102
- /**
103
- * Invalidate infinite queries
104
- */
105
- static infinite(resource) {
106
- return ['app', resource, 'infinite'];
107
- }
108
- /**
109
- * Invalidate all
110
- */
111
- static all() {
112
- return ['app'];
113
- }
114
- }
115
- /**
116
- * Optimistic Update Helper
117
- */
118
- export class OptimisticUpdater {
119
- /**
120
- * Update list (add item)
121
- */
122
- static addToList(oldData, newItem) {
123
- if (!oldData)
124
- return [newItem];
125
- return [...oldData, newItem];
126
- }
127
- /**
128
- * Update list (remove item)
129
- */
130
- static removeFromList(oldData, id) {
131
- if (!oldData)
132
- return [];
133
- return oldData.filter((item) => item.id !== id);
134
- }
135
- /**
136
- * Update list (update item)
137
- */
138
- static updateInList(oldData, id, updates) {
139
- if (!oldData)
140
- return [];
141
- return oldData.map((item) => (item.id === id ? { ...item, ...updates } : item));
142
- }
143
- /**
144
- * Update detail
145
- */
146
- static updateDetail(oldData, updates) {
147
- if (!oldData)
148
- return undefined;
149
- return { ...oldData, ...updates };
150
- }
151
- /**
152
- * Update paginated list
153
- */
154
- static updatePaginatedList(oldData, id, updates) {
155
- if (!oldData)
156
- return undefined;
157
- return {
158
- ...oldData,
159
- pages: oldData.pages.map((page) => ({
160
- ...page,
161
- data: page.data.map((item) => (item.id === id ? { ...item, ...updates } : item)),
162
- })),
163
- };
164
- }
165
- }
166
- export class CachePrefetcher {
167
- /**
168
- * Prefetch on hover
169
- */
170
- static onHover(prefetchFn, delay = 300) {
171
- let timeout = null;
172
- return {
173
- onMouseEnter: () => {
174
- timeout = setTimeout(() => {
175
- prefetchFn();
176
- }, delay);
177
- },
178
- onMouseLeave: () => {
179
- if (timeout) {
180
- clearTimeout(timeout);
181
- timeout = null;
182
- }
183
- },
184
- };
185
- }
186
- /**
187
- * Prefetch on visibility
188
- */
189
- static onVisible(element, prefetchFn, options) {
190
- if (!element || typeof IntersectionObserver === 'undefined') {
191
- return () => { };
192
- }
193
- const observer = new IntersectionObserver((entries) => {
194
- for (const entry of entries) {
195
- if (entry.isIntersecting) {
196
- prefetchFn();
197
- observer.disconnect();
198
- }
199
- }
200
- }, options);
201
- observer.observe(element);
202
- return () => observer.disconnect();
203
- }
204
- /**
205
- * Prefetch on idle
206
- */
207
- static onIdle(prefetchFn) {
208
- if ('requestIdleCallback' in window) {
209
- window.requestIdleCallback(() => prefetchFn());
210
- }
211
- else {
212
- setTimeout(() => prefetchFn(), 1);
213
- }
214
- }
215
- }
216
- export class CachePersistence {
217
- config;
218
- constructor(config) {
219
- this.config = {
220
- storage: 'localStorage',
221
- version: 1,
222
- maxAge: 1000 * 60 * 60 * 24, // 1 day
223
- ...config,
224
- };
225
- }
226
- /**
227
- * Save to storage
228
- */
229
- async save(data) {
230
- const entry = {
231
- data,
232
- version: this.config.version,
233
- timestamp: Date.now(),
234
- };
235
- try {
236
- if (this.config.storage === 'indexedDB') {
237
- await this.saveToIndexedDB(entry);
238
- }
239
- else {
240
- const storage = this.config.storage === 'localStorage' ? localStorage : sessionStorage;
241
- storage.setItem(this.config.key, JSON.stringify(entry));
242
- }
243
- }
244
- catch (error) {
245
- logger.error('Cache persistence save failed', error instanceof Error ? error : new Error(String(error)));
246
- }
247
- }
248
- /**
249
- * Load from storage
250
- */
251
- async load() {
252
- try {
253
- let entry;
254
- if (this.config.storage === 'indexedDB') {
255
- entry = await this.loadFromIndexedDB();
256
- }
257
- else {
258
- const storage = this.config.storage === 'localStorage' ? localStorage : sessionStorage;
259
- const stored = storage.getItem(this.config.key);
260
- if (!stored)
261
- return null;
262
- entry = JSON.parse(stored);
263
- }
264
- if (!entry)
265
- return null;
266
- // Check version
267
- if (entry.version !== this.config.version) {
268
- await this.remove();
269
- return null;
270
- }
271
- // Check age
272
- const age = Date.now() - entry.timestamp;
273
- if (age > this.config.maxAge) {
274
- await this.remove();
275
- return null;
276
- }
277
- return entry.data;
278
- }
279
- catch (error) {
280
- logger.error('Cache persistence load failed', error instanceof Error ? error : new Error(String(error)));
281
- return null;
282
- }
283
- }
284
- /**
285
- * Remove from storage
286
- */
287
- async remove() {
288
- try {
289
- if (this.config.storage === 'indexedDB') {
290
- await this.removeFromIndexedDB();
291
- }
292
- else {
293
- const storage = this.config.storage === 'localStorage' ? localStorage : sessionStorage;
294
- storage.removeItem(this.config.key);
295
- }
296
- }
297
- catch (error) {
298
- logger.error('Cache persistence remove failed', error instanceof Error ? error : new Error(String(error)));
299
- }
300
- }
301
- /**
302
- * Save to IndexedDB
303
- */
304
- async saveToIndexedDB(entry) {
305
- return new Promise((resolve, reject) => {
306
- const request = indexedDB.open('app-cache', 1);
307
- request.onerror = () => reject(request.error);
308
- request.onsuccess = () => {
309
- const db = request.result;
310
- const transaction = db.transaction(['cache'], 'readwrite');
311
- const store = transaction.objectStore('cache');
312
- const putRequest = store.put(entry, this.config.key);
313
- putRequest.onerror = () => reject(putRequest.error);
314
- putRequest.onsuccess = () => resolve();
315
- };
316
- request.onupgradeneeded = (event) => {
317
- const db = event.target.result;
318
- if (!db.objectStoreNames.contains('cache')) {
319
- db.createObjectStore('cache');
320
- }
321
- };
322
- });
323
- }
324
- /**
325
- * Load from IndexedDB
326
- */
327
- async loadFromIndexedDB() {
328
- return new Promise((resolve, reject) => {
329
- const request = indexedDB.open('app-cache', 1);
330
- request.onerror = () => reject(request.error);
331
- request.onsuccess = () => {
332
- const db = request.result;
333
- const transaction = db.transaction(['cache'], 'readonly');
334
- const store = transaction.objectStore('cache');
335
- const getRequest = store.get(this.config.key);
336
- getRequest.onerror = () => reject(getRequest.error);
337
- getRequest.onsuccess = () => resolve(getRequest.result || null);
338
- };
339
- request.onupgradeneeded = (event) => {
340
- const db = event.target.result;
341
- if (!db.objectStoreNames.contains('cache')) {
342
- db.createObjectStore('cache');
343
- }
344
- };
345
- });
346
- }
347
- /**
348
- * Remove from IndexedDB
349
- */
350
- async removeFromIndexedDB() {
351
- return new Promise((resolve, reject) => {
352
- const request = indexedDB.open('app-cache', 1);
353
- request.onerror = () => reject(request.error);
354
- request.onsuccess = () => {
355
- const db = request.result;
356
- const transaction = db.transaction(['cache'], 'readwrite');
357
- const store = transaction.objectStore('cache');
358
- const deleteRequest = store.delete(this.config.key);
359
- deleteRequest.onerror = () => reject(deleteRequest.error);
360
- deleteRequest.onsuccess = () => resolve();
361
- };
362
- });
363
- }
364
- }
365
- export class CacheStatsTracker {
366
- hits = 0;
367
- misses = 0;
368
- _cacheSize = 0;
369
- /**
370
- * Record cache hit
371
- */
372
- recordHit() {
373
- this.hits++;
374
- }
375
- /**
376
- * Record cache miss
377
- */
378
- recordMiss() {
379
- this.misses++;
380
- }
381
- /**
382
- * Update the reported cache size (call from the cache implementation)
383
- */
384
- setCacheSize(size) {
385
- this._cacheSize = size;
386
- }
387
- /**
388
- * Get statistics
389
- */
390
- getStats() {
391
- const totalQueries = this.hits + this.misses;
392
- const hitRate = totalQueries > 0 ? (this.hits / totalQueries) * 100 : 0;
393
- return {
394
- hits: this.hits,
395
- misses: this.misses,
396
- hitRate,
397
- totalQueries,
398
- cacheSize: this._cacheSize,
399
- };
400
- }
401
- /**
402
- * Reset statistics
403
- */
404
- reset() {
405
- this.hits = 0;
406
- this.misses = 0;
407
- this._cacheSize = 0;
408
- }
409
- }
410
- /**
411
- * Query dedupe helper
412
- */
413
- export class QueryDeduplicator {
414
- pending = new Map();
415
- /**
416
- * Deduplicate query
417
- */
418
- async dedupe(key, queryFn) {
419
- // Check if query is already pending
420
- const existing = this.pending.get(key);
421
- if (existing) {
422
- return existing;
423
- }
424
- // Execute query
425
- const promise = queryFn();
426
- // Store pending query
427
- this.pending.set(key, promise);
428
- // Remove from pending when done
429
- promise.then(() => this.pending.delete(key)).catch(() => this.pending.delete(key));
430
- return promise;
431
- }
432
- /**
433
- * Clear pending queries
434
- */
435
- clear() {
436
- this.pending.clear();
437
- }
438
- }
@@ -1,155 +0,0 @@
1
- /**
2
- * CDN Configuration and Cache Management
3
- *
4
- * Utilities for CDN caching, edge caching, and cache invalidation
5
- */
6
- /**
7
- * CDN Cache Configuration
8
- */
9
- export interface CDNCacheConfig {
10
- provider?: 'cloudflare' | 'vercel' | 'fastly' | 'custom';
11
- zones?: string[];
12
- ttl?: number;
13
- staleWhileRevalidate?: number;
14
- staleIfError?: number;
15
- bypassCache?: boolean;
16
- cacheKey?: string[];
17
- varyHeaders?: string[];
18
- }
19
- export declare const DEFAULT_CDN_CONFIG: CDNCacheConfig;
20
- /**
21
- * Generate Cache-Control header
22
- */
23
- export declare function generateCacheControl(config: {
24
- maxAge?: number;
25
- sMaxAge?: number;
26
- staleWhileRevalidate?: number;
27
- staleIfError?: number;
28
- public?: boolean;
29
- private?: boolean;
30
- immutable?: boolean;
31
- noCache?: boolean;
32
- noStore?: boolean;
33
- }): string;
34
- /**
35
- * Cache presets for different asset types
36
- */
37
- export declare const CDN_CACHE_PRESETS: {
38
- readonly immutable: {
39
- readonly maxAge: 31536000;
40
- readonly sMaxAge: 31536000;
41
- readonly public: true;
42
- readonly immutable: true;
43
- };
44
- readonly static: {
45
- readonly maxAge: 2592000;
46
- readonly sMaxAge: 31536000;
47
- readonly staleWhileRevalidate: 86400;
48
- readonly public: true;
49
- };
50
- readonly api: {
51
- readonly maxAge: 0;
52
- readonly sMaxAge: 60;
53
- readonly staleWhileRevalidate: 30;
54
- readonly public: true;
55
- };
56
- readonly page: {
57
- readonly maxAge: 0;
58
- readonly sMaxAge: 300;
59
- readonly staleWhileRevalidate: 60;
60
- readonly public: true;
61
- };
62
- readonly private: {
63
- readonly maxAge: 300;
64
- readonly private: true;
65
- readonly staleWhileRevalidate: 60;
66
- };
67
- readonly noCache: {
68
- readonly noStore: true;
69
- };
70
- readonly revalidate: {
71
- readonly maxAge: 0;
72
- readonly sMaxAge: 0;
73
- readonly noCache: true;
74
- };
75
- };
76
- /**
77
- * CDN Purge Configuration
78
- */
79
- export interface CDNPurgeConfig {
80
- provider: 'cloudflare' | 'vercel' | 'fastly';
81
- apiKey?: string;
82
- apiSecret?: string;
83
- zoneId?: string;
84
- distributionId?: string;
85
- }
86
- /**
87
- * Purge CDN cache
88
- */
89
- export declare function purgeCDNCache(urls: string[], config: CDNPurgeConfig): Promise<{
90
- success: boolean;
91
- purged: number;
92
- errors?: string[];
93
- }>;
94
- /**
95
- * Purge by cache tag
96
- */
97
- export declare function purgeCacheByTag(tags: string[], config: CDNPurgeConfig): Promise<{
98
- success: boolean;
99
- purged: number;
100
- errors?: string[];
101
- }>;
102
- /**
103
- * Purge everything
104
- */
105
- export declare function purgeAllCache(config: CDNPurgeConfig): Promise<{
106
- success: boolean;
107
- errors?: string[];
108
- }>;
109
- /**
110
- * CDN cache warming
111
- */
112
- export declare function warmCDNCache(urls: string[], options?: {
113
- concurrency?: number;
114
- headers?: Record<string, string>;
115
- }): Promise<{
116
- warmed: number;
117
- failed: number;
118
- errors: string[];
119
- }>;
120
- /**
121
- * Generate cache tags
122
- */
123
- export declare function generateCacheTags(resource: {
124
- type: string;
125
- id?: string | number;
126
- related?: string[];
127
- }): string[];
128
- /**
129
- * Edge cache configuration for Vercel
130
- */
131
- export declare function generateVercelCacheConfig(preset: keyof typeof CDN_CACHE_PRESETS): {
132
- headers: {
133
- 'Cache-Control': string;
134
- 'CDN-Cache-Control': string;
135
- 'Vercel-CDN-Cache-Control': string;
136
- };
137
- };
138
- /**
139
- * Edge cache configuration for Cloudflare
140
- */
141
- export declare function generateCloudflareConfig(preset: keyof typeof CDN_CACHE_PRESETS, options?: {
142
- cacheTags?: string[];
143
- bypassOnCookie?: string;
144
- }): {
145
- headers: Record<string, string>;
146
- };
147
- /**
148
- * Check if response should be cached
149
- */
150
- export declare function shouldCacheResponse(status: number, headers: Headers): boolean;
151
- /**
152
- * Calculate cache TTL from headers
153
- */
154
- export declare function getCacheTTL(headers: Headers): number;
155
- //# sourceMappingURL=cdn-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cdn-config.d.ts","sourceRoot":"","sources":["../../src/caching/cdn-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,cAQhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,MAAM,CA8CT;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDpB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAalE;AA+HD;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuClE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqClD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAsC/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,MAAM,EAAE,CAiBX;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,OAAO,iBAAiB;;;;;;EAW/E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,OAAO,iBAAiB,EACtC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB;;EAoBP;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAiB7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAwBpD"}