@coherent.js/core 1.0.0-beta.8 → 1.0.0-rc.1

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 (109) hide show
  1. package/package.json +2 -2
  2. package/dist/coherent.d.ts +0 -472
  3. package/dist/coherent.d.ts.map +0 -1
  4. package/dist/coherent.js +0 -590
  5. package/dist/coherent.js.map +0 -1
  6. package/dist/components/component-system.d.ts +0 -1138
  7. package/dist/components/component-system.d.ts.map +0 -1
  8. package/dist/components/component-system.js +0 -2220
  9. package/dist/components/component-system.js.map +0 -1
  10. package/dist/components/lifecycle.d.ts +0 -212
  11. package/dist/components/lifecycle.d.ts.map +0 -1
  12. package/dist/components/lifecycle.js +0 -525
  13. package/dist/components/lifecycle.js.map +0 -1
  14. package/dist/core/html-utils.d.ts +0 -14
  15. package/dist/core/html-utils.d.ts.map +0 -1
  16. package/dist/core/html-utils.js +0 -166
  17. package/dist/core/html-utils.js.map +0 -1
  18. package/dist/core/object-factory.d.ts +0 -38
  19. package/dist/core/object-factory.d.ts.map +0 -1
  20. package/dist/core/object-factory.js +0 -63
  21. package/dist/core/object-factory.js.map +0 -1
  22. package/dist/core/object-utils.d.ts +0 -77
  23. package/dist/core/object-utils.d.ts.map +0 -1
  24. package/dist/core/object-utils.js +0 -502
  25. package/dist/core/object-utils.js.map +0 -1
  26. package/dist/dev/dev-tools.d.ts +0 -194
  27. package/dist/dev/dev-tools.d.ts.map +0 -1
  28. package/dist/dev/dev-tools.js +0 -846
  29. package/dist/dev/dev-tools.js.map +0 -1
  30. package/dist/forms/validation.d.ts +0 -271
  31. package/dist/forms/validation.d.ts.map +0 -1
  32. package/dist/forms/validation.js +0 -573
  33. package/dist/forms/validation.js.map +0 -1
  34. package/dist/performance/bundle-optimizer.d.ts +0 -95
  35. package/dist/performance/bundle-optimizer.d.ts.map +0 -1
  36. package/dist/performance/bundle-optimizer.js +0 -192
  37. package/dist/performance/bundle-optimizer.js.map +0 -1
  38. package/dist/performance/cache-manager.d.ts +0 -107
  39. package/dist/performance/cache-manager.d.ts.map +0 -1
  40. package/dist/performance/cache-manager.js +0 -314
  41. package/dist/performance/cache-manager.js.map +0 -1
  42. package/dist/performance/component-cache.d.ts +0 -120
  43. package/dist/performance/component-cache.d.ts.map +0 -1
  44. package/dist/performance/component-cache.js +0 -364
  45. package/dist/performance/component-cache.js.map +0 -1
  46. package/dist/performance/monitor.d.ts +0 -189
  47. package/dist/performance/monitor.d.ts.map +0 -1
  48. package/dist/performance/monitor.js +0 -347
  49. package/dist/performance/monitor.js.map +0 -1
  50. package/dist/rendering/base-renderer.d.ts +0 -140
  51. package/dist/rendering/base-renderer.d.ts.map +0 -1
  52. package/dist/rendering/base-renderer.js +0 -409
  53. package/dist/rendering/base-renderer.js.map +0 -1
  54. package/dist/rendering/css-manager.d.ts +0 -73
  55. package/dist/rendering/css-manager.d.ts.map +0 -1
  56. package/dist/rendering/css-manager.js +0 -176
  57. package/dist/rendering/css-manager.js.map +0 -1
  58. package/dist/rendering/dom-renderer.d.ts +0 -62
  59. package/dist/rendering/dom-renderer.d.ts.map +0 -1
  60. package/dist/rendering/dom-renderer.js +0 -252
  61. package/dist/rendering/dom-renderer.js.map +0 -1
  62. package/dist/rendering/html-renderer.d.ts +0 -67
  63. package/dist/rendering/html-renderer.d.ts.map +0 -1
  64. package/dist/rendering/html-renderer.js +0 -444
  65. package/dist/rendering/html-renderer.js.map +0 -1
  66. package/dist/rendering/renderer-config.d.ts +0 -282
  67. package/dist/rendering/renderer-config.d.ts.map +0 -1
  68. package/dist/rendering/renderer-config.js +0 -144
  69. package/dist/rendering/renderer-config.js.map +0 -1
  70. package/dist/rendering/streaming-renderer.d.ts +0 -117
  71. package/dist/rendering/streaming-renderer.d.ts.map +0 -1
  72. package/dist/rendering/streaming-renderer.js +0 -326
  73. package/dist/rendering/streaming-renderer.js.map +0 -1
  74. package/dist/rendering/vdom-diff.d.ts +0 -47
  75. package/dist/rendering/vdom-diff.d.ts.map +0 -1
  76. package/dist/rendering/vdom-diff.js +0 -416
  77. package/dist/rendering/vdom-diff.js.map +0 -1
  78. package/dist/routing/router.d.ts +0 -241
  79. package/dist/routing/router.d.ts.map +0 -1
  80. package/dist/routing/router.js +0 -648
  81. package/dist/routing/router.js.map +0 -1
  82. package/dist/state/reactive-state.d.ts +0 -166
  83. package/dist/state/reactive-state.d.ts.map +0 -1
  84. package/dist/state/reactive-state.js +0 -546
  85. package/dist/state/reactive-state.js.map +0 -1
  86. package/dist/state/state-manager.d.ts +0 -45
  87. package/dist/state/state-manager.d.ts.map +0 -1
  88. package/dist/state/state-manager.js +0 -151
  89. package/dist/state/state-manager.js.map +0 -1
  90. package/dist/types/constants.d.ts +0 -8
  91. package/dist/types/constants.d.ts.map +0 -1
  92. package/dist/types/constants.js +0 -36
  93. package/dist/types/constants.js.map +0 -1
  94. package/dist/utils/dependency-utils.d.ts +0 -43
  95. package/dist/utils/dependency-utils.d.ts.map +0 -1
  96. package/dist/utils/dependency-utils.js +0 -105
  97. package/dist/utils/dependency-utils.js.map +0 -1
  98. package/dist/utils/error-handler.d.ts +0 -148
  99. package/dist/utils/error-handler.d.ts.map +0 -1
  100. package/dist/utils/error-handler.js +0 -468
  101. package/dist/utils/error-handler.js.map +0 -1
  102. package/dist/utils/normalization.d.ts +0 -3
  103. package/dist/utils/normalization.d.ts.map +0 -1
  104. package/dist/utils/normalization.js +0 -24
  105. package/dist/utils/normalization.js.map +0 -1
  106. package/dist/utils/validation.d.ts +0 -10
  107. package/dist/utils/validation.d.ts.map +0 -1
  108. package/dist/utils/validation.js +0 -32
  109. package/dist/utils/validation.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle-optimizer.d.ts","sourceRoot":"","sources":["../../../../src/performance/bundle-optimizer.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;IAEQ,yBAA+B;IAC/B,wBAA8B;IAC9B,qCAAsC;IACtC,qBAA2B;IAI/B;;;;;;;;;;;;;;;;;;;;;;MASC;IAED,kEAkBC;IAED,yEA0BC;IAED,qDA+BC;IAED,sCASC;IAGD;;;;;;;;;;;;;;;;;;;;;;MAQC;IAED;;;;;QA8BC;IAED;;;;;;;MAaC;IAED;;;;QAoBC;IAGD;;;;;;;;;;;;;;MAmBC;CACJ;AAED,8CAAqD"}
@@ -1,192 +0,0 @@
1
- /**
2
- * Bundle size optimization through tree-shaking and code analysis
3
- */
4
- export class BundleOptimizer {
5
- constructor() {
6
- this.usedComponents = new Set();
7
- this.usedUtilities = new Set();
8
- this.componentDependencies = new Map();
9
- this.unusedCode = new Set();
10
- }
11
- // Analyze component tree to identify what's actually used
12
- analyzeUsage(rootComponent, props = {}) {
13
- const analysisContext = {
14
- componentStack: [],
15
- propsFlow: new Map(),
16
- conditionalBranches: new Set()
17
- };
18
- this.traverseComponent(rootComponent, props, analysisContext);
19
- return this.generateOptimizationReport();
20
- }
21
- traverseComponent(component, props, _context) {
22
- const componentName = this.getComponentName(component);
23
- // Track component usage
24
- this.usedComponents.add(componentName);
25
- context.componentStack.push(componentName);
26
- // Track props flow for optimization
27
- context.propsFlow.set(componentName, Object.keys(_props));
28
- // Analyze component implementation
29
- if (typeof component === 'function') {
30
- this.analyzeFunctionComponent(component, props, _context);
31
- }
32
- else if (typeof component === 'object') {
33
- this.analyzeObjectComponent(component, _context);
34
- }
35
- context.componentStack.pop();
36
- }
37
- analyzeFunctionComponent(component, props, _context) {
38
- const componentStr = component.toString();
39
- // Detect conditional rendering patterns
40
- const conditionalPatterns = [
41
- /\?\s*\{/g, // Conditional objects
42
- /&&\s*\{/g, // Logical AND rendering
43
- /if\s*\(/g // If statements
44
- ];
45
- for (const pattern of conditionalPatterns) {
46
- const matches = componentStr.match(pattern);
47
- if (matches) {
48
- context.conditionalBranches.add(`${this.getComponentName(component)}_conditional`);
49
- }
50
- }
51
- // Try to execute with sample props to discover runtime paths
52
- try {
53
- const result = component(_props);
54
- if (result) {
55
- this.traverseComponent(result, {}, _context);
56
- }
57
- }
58
- catch {
59
- // Component might need specific props, skip runtime analysis
60
- }
61
- }
62
- analyzeObjectComponent(obj, _context) {
63
- if (Array.isArray(obj)) {
64
- obj.forEach(item => {
65
- if (item && typeof item === 'object') {
66
- this.traverseComponent(item, {}, _context);
67
- }
68
- });
69
- return;
70
- }
71
- const keys = Object.keys(obj);
72
- if (keys.length === 1) {
73
- const tagName = keys[0];
74
- const props = obj[tagName];
75
- // Track HTML tag usage
76
- this.usedComponents.add(`html_${tagName}`);
77
- // Traverse children
78
- if (props && typeof props === 'object') {
79
- if (props.children) {
80
- if (Array.isArray(props.children)) {
81
- props.children.forEach(child => {
82
- this.traverseComponent(child, {}, _context);
83
- });
84
- }
85
- else {
86
- this.traverseComponent(props.children, {}, _context);
87
- }
88
- }
89
- }
90
- }
91
- }
92
- getComponentName(component) {
93
- if (typeof component === 'function') {
94
- return component.name || 'AnonymousFunction';
95
- }
96
- if (typeof component === 'object' && component) {
97
- const keys = Object.keys(component);
98
- return keys.length > 0 ? `Object_${keys[0]}` : 'EmptyObject';
99
- }
100
- return 'Unknown';
101
- }
102
- // Generate optimization recommendations
103
- generateOptimizationReport() {
104
- return {
105
- usedComponents: Array.from(this.usedComponents),
106
- componentDependencies: Object.fromEntries(this.componentDependencies),
107
- optimizationOpportunities: this.findOptimizationOpportunities(),
108
- bundleEstimate: this.estimateBundleSize(),
109
- recommendations: this.generateRecommendations()
110
- };
111
- }
112
- findOptimizationOpportunities() {
113
- const opportunities = [];
114
- // Check for unused utilities
115
- const coreUtilities = ['validateCoherentObject', 'mergeProps', 'cloneCoherentObject'];
116
- const unusedUtilities = coreUtilities.filter(util => !this.usedUtilities.has(util));
117
- if (unusedUtilities.length > 0) {
118
- opportunities.push({
119
- type: 'unused_utilities',
120
- impact: 'medium',
121
- description: `Remove unused utilities: ${unusedUtilities.join(', ')}`,
122
- estimatedSavings: unusedUtilities.length * 2 // KB estimate
123
- });
124
- }
125
- // Check for component consolidation opportunities
126
- const htmlComponents = Array.from(this.usedComponents)
127
- .filter(name => name.startsWith('html_'));
128
- if (htmlComponents.length < 10) {
129
- opportunities.push({
130
- type: 'minimal_html_tags',
131
- impact: 'high',
132
- description: 'Create minimal HTML tag bundle for smaller apps',
133
- estimatedSavings: 15 // KB estimate
134
- });
135
- }
136
- return opportunities;
137
- }
138
- estimateBundleSize() {
139
- const baseFrameworkSize = 25; // KB
140
- const componentOverhead = this.usedComponents.size * 0.5; // KB per component
141
- const utilitySize = this.usedUtilities.size * 2; // KB per utility
142
- return {
143
- estimated: baseFrameworkSize + componentOverhead + utilitySize,
144
- breakdown: {
145
- framework: baseFrameworkSize,
146
- components: componentOverhead,
147
- utilities: utilitySize
148
- }
149
- };
150
- }
151
- generateRecommendations() {
152
- const recommendations = [];
153
- if (this.usedComponents.size < 5) {
154
- recommendations.push({
155
- priority: 'high',
156
- action: 'Consider creating a minimal bundle with only required components',
157
- impact: 'Reduce bundle size by 40-60%'
158
- });
159
- }
160
- if (this.usedComponents.size > 50) {
161
- recommendations.push({
162
- priority: 'medium',
163
- action: 'Implement code-splitting to load components on demand',
164
- impact: 'Improve initial load time by 30-50%'
165
- });
166
- }
167
- return recommendations;
168
- }
169
- // Generate optimized bundle configuration
170
- generateOptimizedConfig() {
171
- return {
172
- entryPoints: {
173
- core: ['./src/coherent.js'],
174
- components: Array.from(this.usedComponents)
175
- .filter(name => !name.startsWith('html_'))
176
- .map(name => `./src/components/${name}.js`),
177
- utilities: Array.from(this.usedUtilities)
178
- .map(name => `./src/core/${name}.js`)
179
- },
180
- treeShaking: {
181
- unusedExports: Array.from(this.unusedCode),
182
- sideEffects: false
183
- },
184
- optimization: {
185
- minify: true,
186
- splitChunks: this.usedComponents.size > 20
187
- }
188
- };
189
- }
190
- }
191
- export const bundleOptimizer = new BundleOptimizer();
192
- //# sourceMappingURL=bundle-optimizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle-optimizer.js","sourceRoot":"","sources":["../../../../src/performance/bundle-optimizer.js"],"names":[],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- /**
2
- * Advanced caching system with memory management and smart invalidation for Coherent.js
3
- *
4
- * @module @coherent/performance/cache-manager
5
- * @license MIT
6
- */
7
- /**
8
- * @typedef {Object} CacheEntry
9
- * @property {any} value - The cached value
10
- * @property {number} timestamp - When the entry was created
11
- * @property {number} lastAccess - Last access time
12
- * @property {number} size - Approximate size in bytes
13
- * @property {Object} metadata - Additional metadata
14
- * @property {number} accessCount - Number of times accessed
15
- */
16
- /**
17
- * @typedef {Object} CacheStats
18
- * @property {number} hits - Number of cache hits
19
- * @property {number} misses - Number of cache misses
20
- * @property {number} size - Current cache size in bytes
21
- * @property {number} entries - Number of cache entries
22
- * @property {Record<string, number>} hitRate - Hit rate by cache type
23
- */
24
- /**
25
- * @typedef {Object} CacheOptions
26
- * @property {number} [maxCacheSize=1000] - Maximum number of entries per cache type
27
- * @property {number} [maxMemoryMB=100] - Maximum memory usage in MB
28
- * @property {number} [ttlMs=300000] - Default time-to-live in milliseconds (5 minutes)
29
- * @property {boolean} [enableStatistics=true] - Whether to collect usage statistics
30
- */
31
- /**
32
- * Creates a new CacheManager instance
33
- * @param {CacheOptions} [options] - Configuration options
34
- * @returns {Object} Cache manager instance
35
- */
36
- export function createCacheManager(options?: CacheOptions): Object;
37
- export const cacheManager: Object;
38
- export namespace CacheManager {
39
- export { createCacheManager as create };
40
- }
41
- export type CacheEntry = {
42
- /**
43
- * - The cached value
44
- */
45
- value: any;
46
- /**
47
- * - When the entry was created
48
- */
49
- timestamp: number;
50
- /**
51
- * - Last access time
52
- */
53
- lastAccess: number;
54
- /**
55
- * - Approximate size in bytes
56
- */
57
- size: number;
58
- /**
59
- * - Additional metadata
60
- */
61
- metadata: Object;
62
- /**
63
- * - Number of times accessed
64
- */
65
- accessCount: number;
66
- };
67
- export type CacheStats = {
68
- /**
69
- * - Number of cache hits
70
- */
71
- hits: number;
72
- /**
73
- * - Number of cache misses
74
- */
75
- misses: number;
76
- /**
77
- * - Current cache size in bytes
78
- */
79
- size: number;
80
- /**
81
- * - Number of cache entries
82
- */
83
- entries: number;
84
- /**
85
- * - Hit rate by cache type
86
- */
87
- hitRate: Record<string, number>;
88
- };
89
- export type CacheOptions = {
90
- /**
91
- * - Maximum number of entries per cache type
92
- */
93
- maxCacheSize?: number | undefined;
94
- /**
95
- * - Maximum memory usage in MB
96
- */
97
- maxMemoryMB?: number | undefined;
98
- /**
99
- * - Default time-to-live in milliseconds (5 minutes)
100
- */
101
- ttlMs?: number | undefined;
102
- /**
103
- * - Whether to collect usage statistics
104
- */
105
- enableStatistics?: boolean | undefined;
106
- };
107
- //# sourceMappingURL=cache-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../../../src/performance/cache-manager.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AACH,6CAHW,YAAY,GACV,MAAM,CAkTlB;AAGD,kCAAiD;;;;;;;;WAjVnC,GAAG;;;;eACH,MAAM;;;;gBACN,MAAM;;;;UACN,MAAM;;;;cACN,MAAM;;;;iBACN,MAAM;;;;;;UAKN,MAAM;;;;YACN,MAAM;;;;UACN,MAAM;;;;aACN,MAAM;;;;aACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC"}
@@ -1,314 +0,0 @@
1
- /**
2
- * Advanced caching system with memory management and smart invalidation for Coherent.js
3
- *
4
- * @module @coherent/performance/cache-manager
5
- * @license MIT
6
- */
7
- /**
8
- * @typedef {Object} CacheEntry
9
- * @property {any} value - The cached value
10
- * @property {number} timestamp - When the entry was created
11
- * @property {number} lastAccess - Last access time
12
- * @property {number} size - Approximate size in bytes
13
- * @property {Object} metadata - Additional metadata
14
- * @property {number} accessCount - Number of times accessed
15
- */
16
- /**
17
- * @typedef {Object} CacheStats
18
- * @property {number} hits - Number of cache hits
19
- * @property {number} misses - Number of cache misses
20
- * @property {number} size - Current cache size in bytes
21
- * @property {number} entries - Number of cache entries
22
- * @property {Record<string, number>} hitRate - Hit rate by cache type
23
- */
24
- /**
25
- * @typedef {Object} CacheOptions
26
- * @property {number} [maxCacheSize=1000] - Maximum number of entries per cache type
27
- * @property {number} [maxMemoryMB=100] - Maximum memory usage in MB
28
- * @property {number} [ttlMs=300000] - Default time-to-live in milliseconds (5 minutes)
29
- * @property {boolean} [enableStatistics=true] - Whether to collect usage statistics
30
- */
31
- /**
32
- * Creates a new CacheManager instance
33
- * @param {CacheOptions} [options] - Configuration options
34
- * @returns {Object} Cache manager instance
35
- */
36
- export function createCacheManager(options = {}) {
37
- const { maxCacheSize = 1000, maxMemoryMB = 100, ttlMs = 1000 * 60 * 5, // 5 minutes
38
- enableStatistics = true } = options;
39
- // Internal state
40
- const caches = {
41
- static: new Map(), // Never-changing components
42
- component: new Map(), // Component results with deps
43
- template: new Map(), // Template strings
44
- data: new Map() // General purpose data
45
- };
46
- let memoryUsage = 0;
47
- const stats = {
48
- hits: 0,
49
- misses: 0,
50
- hitRate: {
51
- static: 0,
52
- component: 0,
53
- template: 0,
54
- data: 0
55
- },
56
- accessCount: {
57
- static: 0,
58
- component: 0,
59
- template: 0,
60
- data: 0
61
- }
62
- };
63
- // Cleanup interval (doesn't keep Node.js process alive)
64
- let cleanupInterval;
65
- if (typeof setInterval === 'function') {
66
- cleanupInterval = setInterval(() => cleanup(), 30000);
67
- if (cleanupInterval.unref) {
68
- cleanupInterval.unref();
69
- }
70
- }
71
- /**
72
- * Generate a cache key from component and props
73
- * @param {any} component - Component or component name
74
- * @param {Object} [props={}] - Component props
75
- * @param {Object} [context={}] - Additional context
76
- * @returns {string} Cache key
77
- */
78
- function generateCacheKey(component, props = {}, context = {}) {
79
- const componentStr = typeof component === 'function'
80
- ? component.name || component.toString()
81
- : JSON.stringify(component);
82
- const propsStr = JSON.stringify(props, Object.keys(_props).sort());
83
- const contextStr = JSON.stringify(_context);
84
- const hash = simpleHash(componentStr + propsStr + contextStr);
85
- return `${extractComponentName(component)}_${hash}`;
86
- }
87
- /**
88
- * Get a value from the cache
89
- * @param {string} key - Cache key
90
- * @param {string} [type='component'] - Cache type
91
- * @returns {any|null} Cached value or null if not found
92
- */
93
- function get(key, type = 'component') {
94
- const cache = caches[type] || caches.component;
95
- const _entry = cache.get(key);
96
- if (!entry) {
97
- stats.misses++;
98
- if (enableStatistics)
99
- stats.accessCount[type]++;
100
- return null;
101
- }
102
- // Check TTL
103
- if (Date.now() - entry.timestamp > ttlMs) {
104
- cache.delete(key);
105
- updateMemoryUsage(-entry.size);
106
- stats.misses++;
107
- if (enableStatistics)
108
- stats.accessCount[type]++;
109
- return null;
110
- }
111
- // Update access time and stats
112
- entry.lastAccess = Date.now();
113
- entry.accessCount++;
114
- stats.hits++;
115
- if (enableStatistics) {
116
- stats.accessCount[type]++;
117
- stats.hitRate[type] = (stats.hits / (stats.hits + stats.misses)) * 100;
118
- }
119
- return entry.value;
120
- }
121
- /**
122
- * Store a value in the cache
123
- * @param {string} key - Cache key
124
- * @param {any} value - Value to cache
125
- * @param {string} [type='component'] - Cache type
126
- * @param {Object} [metadata={}] - Additional metadata
127
- */
128
- function set(key, value, type = 'component', metadata = {}) {
129
- const cache = caches[type] || caches.component;
130
- const size = calculateSize(value);
131
- // Check memory limits
132
- if (memoryUsage + size > maxMemoryMB * 1024 * 1024) {
133
- optimize(type, size);
134
- }
135
- const _entry = {
136
- value,
137
- timestamp: Date.now(),
138
- lastAccess: Date.now(),
139
- size,
140
- metadata,
141
- accessCount: 0
142
- };
143
- // Remove existing entry if it exists
144
- const existing = cache.get(key);
145
- if (existing) {
146
- updateMemoryUsage(-existing.size);
147
- }
148
- cache.set(key, entry);
149
- updateMemoryUsage(size);
150
- // Enforce cache size limits
151
- if (cache.size > maxCacheSize) {
152
- optimize(type);
153
- }
154
- }
155
- /**
156
- * Remove an entry from the cache
157
- * @param {string} key - Cache key
158
- * @param {string} [type] - Cache type (optional, checks all caches if not provided)
159
- * @returns {boolean} True if an entry was removed
160
- */
161
- function remove(key, type) {
162
- if (type) {
163
- const cache = caches[type];
164
- if (!cache)
165
- return false;
166
- const _entry = cache.get(key);
167
- if (entry) {
168
- updateMemoryUsage(-entry.size);
169
- return cache.delete(key);
170
- }
171
- return false;
172
- }
173
- // Check all caches if no type specified
174
- for (const [, cache] of Object.entries(caches)) {
175
- const _entry = cache.get(key);
176
- if (entry) {
177
- updateMemoryUsage(-entry.size);
178
- return cache.delete(key);
179
- }
180
- }
181
- return false;
182
- }
183
- /**
184
- * Clear all caches or a specific cache type
185
- * @param {string} [type] - Cache type to clear (optional, clears all if not provided)
186
- */
187
- function clear(type) {
188
- if (type) {
189
- const cache = caches[type];
190
- if (cache) {
191
- cache.clear();
192
- }
193
- }
194
- else {
195
- Object.values(caches).forEach(cache => cache.clear());
196
- }
197
- memoryUsage = 0;
198
- }
199
- /**
200
- * Get cache statistics
201
- * @returns {CacheStats} Cache statistics
202
- */
203
- function getStats() {
204
- const entries = Object.values(caches).reduce((sum, cache) => sum + cache.size, 0);
205
- return {
206
- hits: stats.hits,
207
- misses: stats.misses,
208
- size: memoryUsage,
209
- entries,
210
- hitRate: stats.hitRate,
211
- accessCount: stats.accessCount
212
- };
213
- }
214
- /**
215
- * Clean up expired entries
216
- */
217
- function cleanup() {
218
- const now = Date.now();
219
- let freed = 0;
220
- for (const [, cache] of Object.entries(caches)) {
221
- for (const [key, entry] of cache.entries()) {
222
- if (now - entry.timestamp > ttlMs) {
223
- cache.delete(key);
224
- updateMemoryUsage(-entry.size);
225
- freed++;
226
- }
227
- }
228
- }
229
- return { freed };
230
- }
231
- // Internal helper functions
232
- function calculateSize(value) {
233
- if (value === null || value === undefined)
234
- return 0;
235
- if (typeof value === 'string')
236
- return value.length * 2; // UTF-16
237
- if (typeof value === 'number')
238
- return 8; // 64-bit float
239
- if (typeof value === 'boolean')
240
- return 4;
241
- if (Array.isArray(value)) {
242
- return value.reduce((sum, item) => sum + calculateSize(item), 0);
243
- }
244
- if (typeof value === 'object') {
245
- return Object.values(value).reduce((sum, val) => sum + calculateSize(val), 0);
246
- }
247
- return 0;
248
- }
249
- function updateMemoryUsage(delta) {
250
- memoryUsage = Math.max(0, memoryUsage + delta);
251
- }
252
- function optimize(type, requiredSpace = 0) {
253
- const cache = caches[type] || caches.component;
254
- const entries = Array.from(cache.entries())
255
- .sort(([, a], [, b]) => a.lastAccess - b.lastAccess);
256
- let freed = 0;
257
- for (const [key, entry] of entries) {
258
- if (freed >= requiredSpace)
259
- break;
260
- cache.delete(key);
261
- updateMemoryUsage(-entry.size);
262
- freed += entry.size;
263
- }
264
- return { freed };
265
- }
266
- function simpleHash(str) {
267
- let hash = 0;
268
- for (let i = 0; i < str.length; i++) {
269
- const char = str.charCodeAt(i);
270
- hash = ((hash << 5) - hash) + char;
271
- hash = hash & hash; // Convert to 32-bit integer
272
- }
273
- return Math.abs(hash).toString(36);
274
- }
275
- function extractComponentName(component) {
276
- if (typeof component === 'function') {
277
- return component.name || 'AnonymousComponent';
278
- }
279
- if (component && typeof component === 'object') {
280
- const keys = Object.keys(component);
281
- return keys.length > 0 ? keys[0] : 'ObjectComponent';
282
- }
283
- return 'UnknownComponent';
284
- }
285
- // Clean up on destroy
286
- function destroy() {
287
- if (cleanupInterval) {
288
- clearInterval(cleanupInterval);
289
- }
290
- clear();
291
- }
292
- // Public API
293
- return {
294
- get,
295
- set,
296
- remove,
297
- clear,
298
- getStats,
299
- cleanup,
300
- destroy,
301
- generateCacheKey,
302
- get memoryUsage() {
303
- return memoryUsage;
304
- },
305
- get maxMemory() {
306
- return maxMemoryMB * 1024 * 1024;
307
- }
308
- };
309
- }
310
- // Create a default instance for convenience
311
- export const cacheManager = createCacheManager();
312
- // For backward compatibility
313
- export const CacheManager = { create: createCacheManager };
314
- //# sourceMappingURL=cache-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../../../../src/performance/cache-manager.js"],"names":[],"mappings":"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"}