@revealui/core 0.3.0 → 0.5.0

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 +7 -3
  10. package/dist/features.d.ts.map +1 -1
  11. package/dist/features.js +2 -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 +23 -23
  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,336 +0,0 @@
1
- /**
2
- * Asset Optimization
3
- *
4
- * Utilities for optimizing images, fonts, CSS, and other assets
5
- */
6
- export const DEFAULT_IMAGE_CONFIG = {
7
- quality: 75,
8
- format: 'webp',
9
- deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
10
- imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
11
- formats: ['webp'],
12
- minimumCacheTTL: 60 * 60 * 24 * 365, // 1 year
13
- disableStaticImages: false,
14
- dangerouslyAllowSVG: false,
15
- };
16
- /**
17
- * Calculate responsive image srcset
18
- */
19
- export function generateSrcSet(src, sizes) {
20
- return sizes.map((size) => `${src}?w=${size} ${size}w`).join(', ');
21
- }
22
- /**
23
- * Generate sizes attribute
24
- */
25
- export function generateSizesAttribute(breakpoints, defaultSize = '100vw') {
26
- const mediaQueries = breakpoints.map((bp) => `${bp.media} ${bp.size}`).join(', ');
27
- return mediaQueries ? `${mediaQueries}, ${defaultSize}` : defaultSize;
28
- }
29
- /**
30
- * Image format detection
31
- */
32
- export function getOptimalImageFormat(userAgent) {
33
- // Check for AVIF support (Chrome 90+, Edge 90+, Firefox 93+)
34
- const chromeMatch = userAgent.match(/Chrome\/(\d+)/);
35
- const edgeMatch = userAgent.match(/Edg\/(\d+)/);
36
- const firefoxMatch = userAgent.match(/Firefox\/(\d+)/);
37
- if ((chromeMatch && Number(chromeMatch[1]) >= 90) ||
38
- (edgeMatch && Number(edgeMatch[1]) >= 90) ||
39
- (firefoxMatch && Number(firefoxMatch[1]) >= 93)) {
40
- return 'avif';
41
- }
42
- // Check for WebP support
43
- if (userAgent.includes('Chrome') || userAgent.includes('Edge') || userAgent.includes('Firefox')) {
44
- return 'webp';
45
- }
46
- return 'jpeg';
47
- }
48
- export const DEFAULT_LAZY_LOAD_CONFIG = {
49
- rootMargin: '50px',
50
- threshold: 0.01,
51
- loading: 'lazy',
52
- };
53
- export const DEFAULT_FONT_CONFIG = {
54
- display: 'swap',
55
- preload: true,
56
- fallback: ['system-ui', 'sans-serif'],
57
- weights: [400, 700],
58
- styles: ['normal'],
59
- };
60
- /**
61
- * Generate font-face CSS
62
- */
63
- export function generateFontFace(family, src, config = {}) {
64
- const { display = 'swap', weights = [400], styles = ['normal'] } = config;
65
- const fontFaces = [];
66
- for (const weight of weights) {
67
- for (const style of styles) {
68
- fontFaces.push(`
69
- @font-face {
70
- font-family: '${family}';
71
- font-style: ${style};
72
- font-weight: ${weight};
73
- font-display: ${display};
74
- src: url('${src}') format('woff2');
75
- }`);
76
- }
77
- }
78
- return fontFaces.join('\n');
79
- }
80
- /**
81
- * Font preload link
82
- */
83
- export function generateFontPreload(href, type = 'font/woff2') {
84
- return `<link rel="preload" href="${href}" as="font" type="${type}" crossorigin>`;
85
- }
86
- export const DEFAULT_CSS_CONFIG = {
87
- minify: true,
88
- autoprefixer: true,
89
- purgecss: true,
90
- cssnano: true,
91
- inlineCritical: true,
92
- };
93
- /**
94
- * Remove CSS rules whose selectors are not in the usedSelectors set.
95
- *
96
- * This is a basic regex-based implementation that handles simple selectors.
97
- * For production use with complex CSS (media queries, keyframes, layers),
98
- * consider integrating PurgeCSS or PostCSS.
99
- */
100
- export function removeUnusedCSS(css, usedSelectors) {
101
- if (usedSelectors.length === 0)
102
- return css;
103
- const used = new Set(usedSelectors);
104
- // Match CSS rule blocks: selector { ... }
105
- // Handles nested braces up to one level deep (media queries)
106
- return css.replace(/([^{}@]+)\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g, (match, selectorGroup) => {
107
- const selectors = selectorGroup
108
- .split(',')
109
- .map((s) => s.trim())
110
- .filter(Boolean);
111
- // Keep the rule if any selector matches (class name, id, or element)
112
- const hasUsedSelector = selectors.some((selector) => {
113
- // Extract class names (.foo), IDs (#foo), and element names
114
- const tokens = selector.match(/[.#]?[a-zA-Z_][\w-]*/g);
115
- return tokens?.some((token) => used.has(token) || used.has(token.replace(/^[.#]/, '')));
116
- });
117
- return hasUsedSelector ? match : '';
118
- });
119
- }
120
- /**
121
- * Inline critical CSS
122
- */
123
- export function inlineCriticalCSS(html, css) {
124
- const headEnd = html.indexOf('</head>');
125
- if (headEnd === -1)
126
- return html;
127
- const styleTag = `<style>${css}</style>`;
128
- return html.slice(0, headEnd) + styleTag + html.slice(headEnd);
129
- }
130
- export const DEFAULT_SVG_CONFIG = {
131
- removeViewBox: false,
132
- removeXMLNS: false,
133
- removeDimensions: true,
134
- removeComments: true,
135
- removeMetadata: true,
136
- removeTitle: false,
137
- removeDesc: false,
138
- convertColors: true,
139
- removeUselessStrokeAndFill: true,
140
- };
141
- /**
142
- * Optimize SVG string
143
- */
144
- export function optimizeSVG(svg, config = {}) {
145
- let optimized = svg;
146
- const { removeComments = true, removeMetadata = true } = config;
147
- if (removeComments) {
148
- optimized = optimized.replace(/<!--[\s\S]*?-->/g, '');
149
- }
150
- if (removeMetadata) {
151
- optimized = optimized.replace(/<metadata[\s\S]*?<\/metadata>/g, '');
152
- }
153
- // Remove unnecessary whitespace
154
- optimized = optimized.replace(/>\s+</g, '><').trim();
155
- return optimized;
156
- }
157
- /**
158
- * Convert SVG to data URI
159
- */
160
- export function svgToDataURI(svg) {
161
- const optimized = optimizeSVG(svg);
162
- const encoded = encodeURIComponent(optimized).replace(/'/g, '%27').replace(/"/g, '%22');
163
- return `data:image/svg+xml,${encoded}`;
164
- }
165
- export const DEFAULT_VIDEO_CONFIG = {
166
- preload: 'metadata',
167
- formats: ['webm', 'mp4'],
168
- quality: 80,
169
- };
170
- /**
171
- * Generate video element
172
- */
173
- export function generateVideoElement(sources, config = {}) {
174
- const { poster, preload = 'metadata' } = config;
175
- const sourceElements = sources
176
- .map((source) => `<source src="${source.src}" type="${source.type}">`)
177
- .join('\n ');
178
- return `
179
- <video ${poster ? `poster="${poster}"` : ''} preload="${preload}" controls>
180
- ${sourceElements}
181
- Your browser does not support the video tag.
182
- </video>`;
183
- }
184
- export const DEFAULT_COMPRESSION_CONFIG = {
185
- brotli: true,
186
- gzip: true,
187
- level: 11, // Maximum compression for static assets
188
- };
189
- /**
190
- * Check if file should be compressed
191
- */
192
- export function shouldCompressAsset(filePath, size) {
193
- const compressibleExts = ['.js', '.css', '.html', '.svg', '.json', '.xml'];
194
- const ext = filePath.substring(filePath.lastIndexOf('.'));
195
- // Compress if compressible type and size > 1KB
196
- return compressibleExts.includes(ext) && size > 1024;
197
- }
198
- export function generateResourceHint(hint) {
199
- const { type, href, as, crossorigin } = hint;
200
- const attributes = [
201
- `rel="${type}"`,
202
- `href="${href}"`,
203
- as ? `as="${as}"` : '',
204
- crossorigin ? 'crossorigin' : '',
205
- ]
206
- .filter(Boolean)
207
- .join(' ');
208
- return `<link ${attributes}>`;
209
- }
210
- /**
211
- * Preload critical assets
212
- */
213
- export function preloadCriticalAssets(assets) {
214
- return assets
215
- .map((asset) => generateResourceHint({
216
- type: 'preload',
217
- href: asset.href,
218
- as: asset.as,
219
- }))
220
- .join('\n');
221
- }
222
- /**
223
- * Prefetch next page assets
224
- */
225
- export function prefetchNextPage(hrefs) {
226
- return hrefs
227
- .map((href) => generateResourceHint({
228
- type: 'prefetch',
229
- href,
230
- }))
231
- .join('\n');
232
- }
233
- /**
234
- * DNS prefetch for external resources
235
- */
236
- export function dnsPrefetch(domains) {
237
- return domains
238
- .map((domain) => generateResourceHint({
239
- type: 'dns-prefetch',
240
- href: domain,
241
- }))
242
- .join('\n');
243
- }
244
- /**
245
- * Preconnect to critical origins
246
- */
247
- export function preconnect(origins) {
248
- return origins
249
- .map((origin) => generateResourceHint({
250
- type: 'preconnect',
251
- href: origin,
252
- crossorigin: true,
253
- }))
254
- .join('\n');
255
- }
256
- export function getAssetPriority(assetPath, isAboveFold) {
257
- // Critical: Above fold images, fonts, critical CSS/JS
258
- if (isAboveFold) {
259
- return 'critical';
260
- }
261
- // High: Fonts, above fold CSS/JS
262
- if (assetPath.includes('font') || assetPath.endsWith('.css')) {
263
- return 'high';
264
- }
265
- // Medium: Below fold images, async scripts
266
- if (assetPath.match(/\.(jpg|jpeg|png|webp|avif)$/)) {
267
- return 'medium';
268
- }
269
- // Low: Everything else
270
- return 'low';
271
- }
272
- /**
273
- * Generate Next.js Image config
274
- */
275
- export function generateNextImageConfig(domains = []) {
276
- return {
277
- domains,
278
- deviceSizes: DEFAULT_IMAGE_CONFIG.deviceSizes,
279
- imageSizes: DEFAULT_IMAGE_CONFIG.imageSizes,
280
- formats: DEFAULT_IMAGE_CONFIG.formats,
281
- };
282
- }
283
- export const DEFAULT_ASSET_BUDGETS = {
284
- images: 200 * 1024, // 200KB for images
285
- scripts: 300 * 1024, // 300KB for scripts
286
- styles: 50 * 1024, // 50KB for styles
287
- fonts: 100 * 1024, // 100KB for fonts
288
- total: 500 * 1024, // 500KB total
289
- };
290
- /**
291
- * Check asset budgets
292
- */
293
- export function checkAssetBudgets(assets, budgets = DEFAULT_ASSET_BUDGETS) {
294
- const violations = [];
295
- const totals = {
296
- images: 0,
297
- scripts: 0,
298
- styles: 0,
299
- fonts: 0,
300
- total: 0,
301
- };
302
- for (const asset of assets) {
303
- totals.total += asset.size;
304
- if (asset.type.startsWith('image/')) {
305
- totals.images += asset.size;
306
- }
307
- else if (asset.type === 'text/javascript' || asset.type === 'application/javascript') {
308
- totals.scripts += asset.size;
309
- }
310
- else if (asset.type === 'text/css') {
311
- totals.styles += asset.size;
312
- }
313
- else if (asset.type.includes('font')) {
314
- totals.fonts += asset.size;
315
- }
316
- }
317
- if (budgets.images && totals.images > budgets.images) {
318
- violations.push(`Images exceed budget: ${totals.images} > ${budgets.images}`);
319
- }
320
- if (budgets.scripts && totals.scripts > budgets.scripts) {
321
- violations.push(`Scripts exceed budget: ${totals.scripts} > ${budgets.scripts}`);
322
- }
323
- if (budgets.styles && totals.styles > budgets.styles) {
324
- violations.push(`Styles exceed budget: ${totals.styles} > ${budgets.styles}`);
325
- }
326
- if (budgets.fonts && totals.fonts > budgets.fonts) {
327
- violations.push(`Fonts exceed budget: ${totals.fonts} > ${budgets.fonts}`);
328
- }
329
- if (budgets.total && totals.total > budgets.total) {
330
- violations.push(`Total assets exceed budget: ${totals.total} > ${budgets.total}`);
331
- }
332
- return {
333
- exceeded: violations.length > 0,
334
- violations,
335
- };
336
- }
@@ -1,202 +0,0 @@
1
- /**
2
- * Build Performance Optimization
3
- *
4
- * Utilities for optimizing build performance and configuration
5
- */
6
- /**
7
- * Next.js optimization configuration
8
- */
9
- export interface NextOptimizationConfig {
10
- compiler?: {
11
- removeConsole?: boolean | {
12
- exclude?: string[];
13
- };
14
- reactRemoveProperties?: boolean | {
15
- properties?: string[];
16
- };
17
- styledComponents?: boolean;
18
- emotion?: boolean;
19
- };
20
- swcMinify?: boolean;
21
- outputFileTracing?: boolean;
22
- experimental?: {
23
- optimizeCss?: boolean;
24
- optimizePackageImports?: string[];
25
- turbotrace?: {
26
- logLevel?: 'bug' | 'fatal' | 'error' | 'warning' | 'hint' | 'note' | 'suggestions' | 'info';
27
- };
28
- };
29
- productionBrowserSourceMaps?: boolean;
30
- generateEtags?: boolean;
31
- poweredByHeader?: boolean;
32
- compress?: boolean;
33
- webpack?: {
34
- analyze?: boolean;
35
- };
36
- }
37
- export declare const DEFAULT_NEXT_CONFIG: NextOptimizationConfig;
38
- /**
39
- * Webpack optimization configuration
40
- */
41
- export interface WebpackOptimizationConfig {
42
- minimize?: boolean;
43
- minimizer?: string[];
44
- splitChunks?: {
45
- chunks?: 'all' | 'async' | 'initial';
46
- minSize?: number;
47
- maxSize?: number;
48
- minChunks?: number;
49
- maxAsyncRequests?: number;
50
- maxInitialRequests?: number;
51
- automaticNameDelimiter?: string;
52
- cacheGroups?: Record<string, unknown>;
53
- };
54
- runtimeChunk?: boolean | 'single' | 'multiple';
55
- moduleIds?: 'natural' | 'named' | 'deterministic';
56
- chunkIds?: 'natural' | 'named' | 'deterministic';
57
- concatenateModules?: boolean;
58
- usedExports?: boolean;
59
- sideEffects?: boolean;
60
- providedExports?: boolean;
61
- innerGraph?: boolean;
62
- }
63
- export declare const DEFAULT_WEBPACK_CONFIG: WebpackOptimizationConfig;
64
- /**
65
- * Turbopack configuration
66
- */
67
- export interface TurbopackConfig {
68
- resolveExtensions?: string[];
69
- resolveAlias?: Record<string, string>;
70
- rules?: Array<{
71
- test: RegExp;
72
- use: string[];
73
- }>;
74
- }
75
- export declare const DEFAULT_TURBOPACK_CONFIG: TurbopackConfig;
76
- /**
77
- * Build cache configuration
78
- */
79
- export interface BuildCacheConfig {
80
- type?: 'memory' | 'filesystem';
81
- cacheDirectory?: string;
82
- compression?: boolean | 'gzip' | 'brotli';
83
- maxAge?: number;
84
- name?: string;
85
- version?: string;
86
- }
87
- export declare const DEFAULT_CACHE_CONFIG: BuildCacheConfig;
88
- /**
89
- * Tree shaking configuration
90
- */
91
- export interface TreeShakingConfig {
92
- usedExports?: boolean;
93
- sideEffects?: boolean;
94
- providedExports?: boolean;
95
- innerGraph?: boolean;
96
- mangleExports?: boolean;
97
- }
98
- export declare const DEFAULT_TREE_SHAKING_CONFIG: TreeShakingConfig;
99
- /**
100
- * Generate package.json sideEffects field
101
- */
102
- export declare function generateSideEffectsConfig(includeCSS?: boolean): boolean | string[];
103
- /**
104
- * Module resolution configuration
105
- */
106
- export interface ModuleResolutionConfig {
107
- extensions?: string[];
108
- alias?: Record<string, string>;
109
- modules?: string[];
110
- symlinks?: boolean;
111
- fullySpecified?: boolean;
112
- }
113
- export declare const DEFAULT_MODULE_RESOLUTION: ModuleResolutionConfig;
114
- /**
115
- * Parallel build configuration
116
- */
117
- export interface ParallelBuildConfig {
118
- parallel?: boolean | number;
119
- cache?: boolean;
120
- threads?: number;
121
- }
122
- export declare const DEFAULT_PARALLEL_CONFIG: ParallelBuildConfig;
123
- /**
124
- * Performance hints configuration
125
- */
126
- export interface PerformanceConfig {
127
- hints?: false | 'warning' | 'error';
128
- maxEntrypointSize?: number;
129
- maxAssetSize?: number;
130
- assetFilter?: (assetFilename: string) => boolean;
131
- }
132
- export declare const DEFAULT_PERFORMANCE_CONFIG: PerformanceConfig;
133
- /**
134
- * Build statistics
135
- */
136
- export interface BuildStats {
137
- duration: number;
138
- entrySize: number;
139
- outputSize: number;
140
- assets: Array<{
141
- name: string;
142
- size: number;
143
- }>;
144
- chunks: Array<{
145
- id: string | number;
146
- size: number;
147
- files: string[];
148
- }>;
149
- errors: string[];
150
- warnings: string[];
151
- }
152
- /**
153
- * Analyze build performance
154
- */
155
- export declare function analyzeBuildPerformance(stats: BuildStats): {
156
- score: number;
157
- issues: Array<{
158
- type: 'error' | 'warning' | 'info';
159
- message: string;
160
- }>;
161
- };
162
- /**
163
- * Generate tsconfig for optimal builds
164
- */
165
- export declare function generateOptimizedTSConfig(): {
166
- compilerOptions: Record<string, unknown>;
167
- };
168
- /**
169
- * Dependency prebuilding
170
- */
171
- export interface PrebuildConfig {
172
- include?: string[];
173
- exclude?: string[];
174
- force?: boolean;
175
- entries?: string[];
176
- }
177
- export declare function shouldPrebuildDependency(packageName: string, config?: PrebuildConfig): boolean;
178
- /**
179
- * Build profiling
180
- */
181
- export interface BuildProfile {
182
- name: string;
183
- startTime: number;
184
- endTime?: number;
185
- duration?: number;
186
- children: BuildProfile[];
187
- }
188
- export declare class BuildProfiler {
189
- private profiles;
190
- private stack;
191
- start(name: string): void;
192
- end(name: string): void;
193
- getProfile(name: string): BuildProfile | undefined;
194
- getAllProfiles(): BuildProfile[];
195
- getSlowestProfiles(limit?: number): BuildProfile[];
196
- reset(): void;
197
- }
198
- /**
199
- * Build optimization recommendations
200
- */
201
- export declare function getBuildOptimizationRecommendations(stats: BuildStats): string[];
202
- //# sourceMappingURL=build-optimizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-optimizer.d.ts","sourceRoot":"","sources":["../../src/optimization/build-optimizer.ts"],"names":[],"mappings":"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"}