@coherent.js/core 1.0.0-beta.2 → 1.0.0-beta.5
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/dist/coherent.d.ts +10 -150
- package/dist/coherent.d.ts.map +1 -1
- package/dist/coherent.js +33 -166
- package/dist/coherent.js.map +1 -1
- package/dist/components/component-system.js +109 -109
- package/dist/core/html-utils.js +5 -5
- package/dist/core/object-factory.js +21 -21
- package/dist/core/object-utils.js +2 -2
- package/dist/database/adapters/mongodb.d.ts +15 -0
- package/dist/database/adapters/mongodb.d.ts.map +1 -0
- package/dist/database/adapters/mongodb.js +216 -0
- package/dist/database/adapters/mongodb.js.map +1 -0
- package/dist/database/adapters/mysql.d.ts +12 -0
- package/dist/database/adapters/mysql.d.ts.map +1 -0
- package/dist/database/adapters/mysql.js +171 -0
- package/dist/database/adapters/mysql.js.map +1 -0
- package/dist/database/adapters/postgresql.d.ts +12 -0
- package/dist/database/adapters/postgresql.d.ts.map +1 -0
- package/dist/database/adapters/postgresql.js +177 -0
- package/dist/database/adapters/postgresql.js.map +1 -0
- package/dist/database/adapters/sqlite.d.ts +15 -0
- package/dist/database/adapters/sqlite.d.ts.map +1 -0
- package/dist/database/adapters/sqlite.js +241 -0
- package/dist/database/adapters/sqlite.js.map +1 -0
- package/dist/database/connection-manager.d.ts +135 -0
- package/dist/database/connection-manager.d.ts.map +1 -0
- package/dist/database/connection-manager.js +362 -0
- package/dist/database/connection-manager.js.map +1 -0
- package/dist/database/index.d.ts +38 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +60 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/middleware.d.ts +122 -0
- package/dist/database/middleware.d.ts.map +1 -0
- package/dist/database/middleware.js +390 -0
- package/dist/database/middleware.js.map +1 -0
- package/dist/database/migration.d.ts +62 -0
- package/dist/database/migration.d.ts.map +1 -0
- package/dist/database/migration.js +423 -0
- package/dist/database/migration.js.map +1 -0
- package/dist/database/model.d.ts +8 -0
- package/dist/database/model.d.ts.map +1 -0
- package/dist/database/model.js +167 -0
- package/dist/database/model.js.map +1 -0
- package/dist/database/query-builder.d.ts +111 -0
- package/dist/database/query-builder.d.ts.map +1 -0
- package/dist/database/query-builder.js +187 -0
- package/dist/database/query-builder.js.map +1 -0
- package/dist/database/utils.d.ts +196 -0
- package/dist/database/utils.d.ts.map +1 -0
- package/dist/database/utils.js +372 -0
- package/dist/database/utils.js.map +1 -0
- package/dist/dev/dev-tools.d.ts +1 -1
- package/dist/dev/dev-tools.js +28 -28
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +2 -2
- package/dist/performance/bundle-optimizer.js +11 -11
- package/dist/performance/cache-manager.js +6 -6
- package/dist/performance/monitor.js +10 -10
- package/dist/performance/monitor.js.map +1 -1
- package/dist/rendering/base-renderer.js +13 -13
- package/dist/rendering/dom-renderer.d.ts +0 -23
- package/dist/rendering/dom-renderer.d.ts.map +1 -1
- package/dist/rendering/dom-renderer.js +9 -77
- package/dist/rendering/dom-renderer.js.map +1 -1
- package/dist/rendering/html-renderer.d.ts +0 -15
- package/dist/rendering/html-renderer.d.ts.map +1 -1
- package/dist/rendering/html-renderer.js +4 -85
- package/dist/rendering/html-renderer.js.map +1 -1
- package/dist/rendering/streaming-renderer.js +12 -12
- package/dist/utils/dependency-utils.js +2 -2
- package/dist/utils/normalization.js +1 -1
- package/dist/utils/validation.js +1 -1
- package/package.json +22 -1
- package/dist/components/lifecycle.d.ts +0 -212
- package/dist/components/lifecycle.d.ts.map +0 -1
- package/dist/components/lifecycle.js +0 -525
- package/dist/components/lifecycle.js.map +0 -1
- package/dist/forms/validation.d.ts +0 -271
- package/dist/forms/validation.d.ts.map +0 -1
- package/dist/forms/validation.js +0 -573
- package/dist/forms/validation.js.map +0 -1
- package/dist/performance/component-cache.d.ts +0 -120
- package/dist/performance/component-cache.d.ts.map +0 -1
- package/dist/performance/component-cache.js +0 -364
- package/dist/performance/component-cache.js.map +0 -1
- package/dist/rendering/css-manager.d.ts +0 -73
- package/dist/rendering/css-manager.d.ts.map +0 -1
- package/dist/rendering/css-manager.js +0 -176
- package/dist/rendering/css-manager.js.map +0 -1
- package/dist/rendering/vdom-diff.d.ts +0 -47
- package/dist/rendering/vdom-diff.d.ts.map +0 -1
- package/dist/rendering/vdom-diff.js +0 -416
- package/dist/rendering/vdom-diff.js.map +0 -1
- package/dist/routing/router.d.ts +0 -241
- package/dist/routing/router.d.ts.map +0 -1
- package/dist/routing/router.js +0 -648
- package/dist/routing/router.js.map +0 -1
- package/dist/state/reactive-state.d.ts +0 -166
- package/dist/state/reactive-state.d.ts.map +0 -1
- package/dist/state/reactive-state.js +0 -546
- package/dist/state/reactive-state.js.map +0 -1
- package/dist/utils/error-handler.d.ts +0 -148
- package/dist/utils/error-handler.d.ts.map +0 -1
- package/dist/utils/error-handler.js +0 -468
- package/dist/utils/error-handler.js.map +0 -1
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Create a new component cache instance
|
|
3
|
-
*/
|
|
4
|
-
export function createComponentCache(options?: {}): ComponentCache;
|
|
5
|
-
/**
|
|
6
|
-
* Memoization decorator for components
|
|
7
|
-
*/
|
|
8
|
-
export function memoize(component: any, keyGenerator: any, options?: {}): (...args: any[]) => any;
|
|
9
|
-
/**
|
|
10
|
-
* Component Cache Manager with intelligent invalidation
|
|
11
|
-
*/
|
|
12
|
-
export class ComponentCache {
|
|
13
|
-
constructor(options?: {});
|
|
14
|
-
options: {
|
|
15
|
-
maxSize: any;
|
|
16
|
-
defaultTTL: any;
|
|
17
|
-
cleanupInterval: any;
|
|
18
|
-
enableStats: boolean;
|
|
19
|
-
};
|
|
20
|
-
cache: Map<any, any>;
|
|
21
|
-
dependencies: Map<any, any>;
|
|
22
|
-
stats: {
|
|
23
|
-
hits: number;
|
|
24
|
-
misses: number;
|
|
25
|
-
evictions: number;
|
|
26
|
-
cleanups: number;
|
|
27
|
-
invalidations: number;
|
|
28
|
-
};
|
|
29
|
-
cleanupTimer: NodeJS.Timeout | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* Generate cache key from component and props
|
|
32
|
-
*/
|
|
33
|
-
generateKey(component: any, props?: {}, context?: {}): string;
|
|
34
|
-
/**
|
|
35
|
-
* Serialize component for cache key generation
|
|
36
|
-
*/
|
|
37
|
-
serializeComponent(component: any, maxDepth?: number, currentDepth?: number): any;
|
|
38
|
-
/**
|
|
39
|
-
* Get component from cache
|
|
40
|
-
*/
|
|
41
|
-
get(key: any, dependencies?: any[]): any;
|
|
42
|
-
/**
|
|
43
|
-
* Set component in cache
|
|
44
|
-
*/
|
|
45
|
-
set(key: any, component: any, options?: {}): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Check if component exists in cache
|
|
48
|
-
*/
|
|
49
|
-
has(key: any): any;
|
|
50
|
-
/**
|
|
51
|
-
* Invalidate cache entries by dependency
|
|
52
|
-
*/
|
|
53
|
-
invalidate(dependency: any): number;
|
|
54
|
-
/**
|
|
55
|
-
* Invalidate multiple dependencies
|
|
56
|
-
*/
|
|
57
|
-
invalidateMultiple(dependencies: any): number;
|
|
58
|
-
/**
|
|
59
|
-
* Clear entire cache
|
|
60
|
-
*/
|
|
61
|
-
clear(): number;
|
|
62
|
-
/**
|
|
63
|
-
* Add dependency mapping
|
|
64
|
-
*/
|
|
65
|
-
addDependencyMapping(dependency: any, key: any): void;
|
|
66
|
-
/**
|
|
67
|
-
* Remove dependency mappings for a cache key
|
|
68
|
-
*/
|
|
69
|
-
removeDependencyMappings(key: any): void;
|
|
70
|
-
/**
|
|
71
|
-
* Evict least recently used entry
|
|
72
|
-
*/
|
|
73
|
-
evictLeastUsed(): void;
|
|
74
|
-
/**
|
|
75
|
-
* Cleanup expired entries
|
|
76
|
-
*/
|
|
77
|
-
cleanup(): number;
|
|
78
|
-
/**
|
|
79
|
-
* Get cache statistics
|
|
80
|
-
*/
|
|
81
|
-
getStats(): {
|
|
82
|
-
size: number;
|
|
83
|
-
maxSize: any;
|
|
84
|
-
hits: number;
|
|
85
|
-
misses: number;
|
|
86
|
-
hitRate: string | number;
|
|
87
|
-
evictions: number;
|
|
88
|
-
cleanups: number;
|
|
89
|
-
invalidations: number;
|
|
90
|
-
dependencies: number;
|
|
91
|
-
memoryUsage: number;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Estimate memory usage (rough approximation)
|
|
95
|
-
*/
|
|
96
|
-
estimateMemoryUsage(): number;
|
|
97
|
-
/**
|
|
98
|
-
* Get hot path components (most accessed)
|
|
99
|
-
*/
|
|
100
|
-
getHotComponents(limit?: number): {
|
|
101
|
-
key: any;
|
|
102
|
-
accessCount: any;
|
|
103
|
-
component: any;
|
|
104
|
-
dependencies: any[];
|
|
105
|
-
}[];
|
|
106
|
-
/**
|
|
107
|
-
* Get cache recommendations
|
|
108
|
-
*/
|
|
109
|
-
getRecommendations(): {
|
|
110
|
-
type: string;
|
|
111
|
-
message: string;
|
|
112
|
-
priority: string;
|
|
113
|
-
}[];
|
|
114
|
-
/**
|
|
115
|
-
* Destroy cache and cleanup
|
|
116
|
-
*/
|
|
117
|
-
destroy(): void;
|
|
118
|
-
}
|
|
119
|
-
export default ComponentCache;
|
|
120
|
-
//# sourceMappingURL=component-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component-cache.d.ts","sourceRoot":"","sources":["../../../../src/performance/component-cache.js"],"names":[],"mappings":"AA2YA;;GAEG;AACH,mEAEC;AAED;;GAEG;AACH,2EAMsC,GAAG,WAAI,SAY5C;AA3XD;;GAEG;AACH;IACI,0BAyBC;IAxBG;;;;;MAMC;IAED,qBAAsB;IACtB,4BAA6B;IAC7B;;;;;;MAMC;IAIG,yCAEgC;IAIxC;;OAEG;IACH,8DAiBC;IAED;;OAEG;IACH,kFAyBC;IAED;;OAEG;IACH,yCA2BC;IAED;;OAEG;IACH,qDAoBC;IAED;;OAEG;IACH,mBAGC;IAED;;OAEG;IACH,oCAgBC;IAED;;OAEG;IACH,8CAMC;IAED;;OAEG;IACH,gBAKC;IAED;;OAEG;IACH,sDAKC;IAED;;OAEG;IACH,yCAOC;IAED;;OAEG;IACH,uBAgBC;IAED;;OAEG;IACH,kBAqBC;IAED;;OAEG;IACH;;;;;;;;;;;MAcC;IAED;;OAEG;IACH,8BAOC;IAED;;OAEG;IACH;;;;;QAWC;IAED;;OAEG;IACH;;;;QA6BC;IAED;;OAEG;IACH,gBAKC;CACJ"}
|
|
@@ -1,364 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Advanced Component Caching System for Coherent.js
|
|
3
|
-
* Provides intelligent caching with dependency tracking and invalidation
|
|
4
|
-
*/
|
|
5
|
-
import { deepClone } from '../core/object-utils.js';
|
|
6
|
-
/**
|
|
7
|
-
* Cache entry structure
|
|
8
|
-
*/
|
|
9
|
-
class CacheEntry {
|
|
10
|
-
constructor(key, component, deps = [], options = {}) {
|
|
11
|
-
this.key = key;
|
|
12
|
-
this.component = deepClone(component);
|
|
13
|
-
this.deps = new Set(deps);
|
|
14
|
-
this.createdAt = Date.now();
|
|
15
|
-
this.lastAccessed = Date.now();
|
|
16
|
-
this.accessCount = 1;
|
|
17
|
-
this.ttl = options.ttl || 300000; // 5 minutes default
|
|
18
|
-
this.persistent = options.persistent || false;
|
|
19
|
-
}
|
|
20
|
-
isExpired() {
|
|
21
|
-
return !this.persistent && (Date.now() - this.createdAt) > this.ttl;
|
|
22
|
-
}
|
|
23
|
-
touch() {
|
|
24
|
-
this.lastAccessed = Date.now();
|
|
25
|
-
this.accessCount++;
|
|
26
|
-
}
|
|
27
|
-
hasDependency(dep) {
|
|
28
|
-
return this.deps.has(dep);
|
|
29
|
-
}
|
|
30
|
-
addDependency(dep) {
|
|
31
|
-
this.deps.add(dep);
|
|
32
|
-
}
|
|
33
|
-
removeDependency(dep) {
|
|
34
|
-
this.deps.delete(dep);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Component Cache Manager with intelligent invalidation
|
|
39
|
-
*/
|
|
40
|
-
export class ComponentCache {
|
|
41
|
-
constructor(options = {}) {
|
|
42
|
-
this.options = {
|
|
43
|
-
maxSize: options.maxSize || 1000,
|
|
44
|
-
defaultTTL: options.defaultTTL || 300000,
|
|
45
|
-
cleanupInterval: options.cleanupInterval || 60000, // 1 minute
|
|
46
|
-
enableStats: options.enableStats !== false,
|
|
47
|
-
...options
|
|
48
|
-
};
|
|
49
|
-
this.cache = new Map();
|
|
50
|
-
this.dependencies = new Map(); // dependency -> Set of cache keys
|
|
51
|
-
this.stats = {
|
|
52
|
-
hits: 0,
|
|
53
|
-
misses: 0,
|
|
54
|
-
evictions: 0,
|
|
55
|
-
cleanups: 0,
|
|
56
|
-
invalidations: 0
|
|
57
|
-
};
|
|
58
|
-
// Start periodic cleanup
|
|
59
|
-
if (this.options.cleanupInterval > 0) {
|
|
60
|
-
this.cleanupTimer = setInterval(() => {
|
|
61
|
-
this.cleanup();
|
|
62
|
-
}, this.options.cleanupInterval);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Generate cache key from component and props
|
|
67
|
-
*/
|
|
68
|
-
generateKey(component, props = {}, context = {}) {
|
|
69
|
-
if (typeof component === 'string') {
|
|
70
|
-
return `str:${component}`;
|
|
71
|
-
}
|
|
72
|
-
if (typeof component === 'function') {
|
|
73
|
-
return `fn:${component.name || 'anonymous'}:${JSON.stringify(_props)}`;
|
|
74
|
-
}
|
|
75
|
-
if (typeof component === 'object' && component !== null) {
|
|
76
|
-
const serialized = this.serializeComponent(component);
|
|
77
|
-
const propsHash = Object.keys(_props).length > 0 ? `:${JSON.stringify(_props)}` : '';
|
|
78
|
-
const contextHash = Object.keys(_context).length > 0 ? `:${JSON.stringify(_context)}` : '';
|
|
79
|
-
return `obj:${serialized}${propsHash}${contextHash}`;
|
|
80
|
-
}
|
|
81
|
-
return `primitive:${String(component)}`;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Serialize component for cache key generation
|
|
85
|
-
*/
|
|
86
|
-
serializeComponent(component, maxDepth = 3, currentDepth = 0) {
|
|
87
|
-
if (currentDepth > maxDepth) {
|
|
88
|
-
return '[DEEP]';
|
|
89
|
-
}
|
|
90
|
-
if (typeof component !== 'object' || component === null) {
|
|
91
|
-
return String(component);
|
|
92
|
-
}
|
|
93
|
-
if (Array.isArray(component)) {
|
|
94
|
-
return `[${component.map(item => this.serializeComponent(item, maxDepth, currentDepth + 1)).join(',')}]`;
|
|
95
|
-
}
|
|
96
|
-
const entries = Object.entries(component);
|
|
97
|
-
if (entries.length === 1) {
|
|
98
|
-
const [key, value] = entries[0];
|
|
99
|
-
const serializedValue = typeof value === 'object'
|
|
100
|
-
? this.serializeComponent(value, maxDepth, currentDepth + 1)
|
|
101
|
-
: String(value);
|
|
102
|
-
return `${key}:${serializedValue}`;
|
|
103
|
-
}
|
|
104
|
-
return '[COMPLEX]';
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Get component from cache
|
|
108
|
-
*/
|
|
109
|
-
get(key, dependencies = []) {
|
|
110
|
-
const _entry = this.cache.get(key);
|
|
111
|
-
if (!entry) {
|
|
112
|
-
this.stats.misses++;
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
if (entry.isExpired()) {
|
|
116
|
-
this.cache.delete(key);
|
|
117
|
-
this.removeDependencyMappings(key);
|
|
118
|
-
this.stats.misses++;
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
entry.touch();
|
|
122
|
-
this.stats.hits++;
|
|
123
|
-
// Update dependency tracking
|
|
124
|
-
dependencies.forEach(dep => {
|
|
125
|
-
if (!entry.hasDependency(dep)) {
|
|
126
|
-
entry.addDependency(dep);
|
|
127
|
-
this.addDependencyMapping(dep, key);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
return deepClone(entry.component);
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Set component in cache
|
|
134
|
-
*/
|
|
135
|
-
set(key, component, options = {}) {
|
|
136
|
-
// Enforce size limit
|
|
137
|
-
if (this.cache.size >= this.options.maxSize) {
|
|
138
|
-
this.evictLeastUsed();
|
|
139
|
-
}
|
|
140
|
-
const deps = options.dependencies || [];
|
|
141
|
-
const _entry = new CacheEntry(key, component, deps, {
|
|
142
|
-
ttl: options.ttl || this.options.defaultTTL,
|
|
143
|
-
persistent: options.persistent || false
|
|
144
|
-
});
|
|
145
|
-
this.cache.set(key, entry);
|
|
146
|
-
// Update dependency mappings
|
|
147
|
-
deps.forEach(dep => {
|
|
148
|
-
this.addDependencyMapping(dep, key);
|
|
149
|
-
});
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Check if component exists in cache
|
|
154
|
-
*/
|
|
155
|
-
has(key) {
|
|
156
|
-
const _entry = this.cache.get(key);
|
|
157
|
-
return entry && !entry.isExpired();
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Invalidate cache entries by dependency
|
|
161
|
-
*/
|
|
162
|
-
invalidate(dependency) {
|
|
163
|
-
const dependentKeys = this.dependencies.get(dependency);
|
|
164
|
-
if (!dependentKeys) {
|
|
165
|
-
return 0;
|
|
166
|
-
}
|
|
167
|
-
let invalidated = 0;
|
|
168
|
-
for (const key of dependentKeys) {
|
|
169
|
-
if (this.cache.delete(key)) {
|
|
170
|
-
invalidated++;
|
|
171
|
-
this.stats.invalidations++;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
this.dependencies.delete(dependency);
|
|
175
|
-
return invalidated;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Invalidate multiple dependencies
|
|
179
|
-
*/
|
|
180
|
-
invalidateMultiple(dependencies) {
|
|
181
|
-
let totalInvalidated = 0;
|
|
182
|
-
dependencies.forEach(dep => {
|
|
183
|
-
totalInvalidated += this.invalidate(dep);
|
|
184
|
-
});
|
|
185
|
-
return totalInvalidated;
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Clear entire cache
|
|
189
|
-
*/
|
|
190
|
-
clear() {
|
|
191
|
-
const size = this.cache.size;
|
|
192
|
-
this.cache.clear();
|
|
193
|
-
this.dependencies.clear();
|
|
194
|
-
return size;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Add dependency mapping
|
|
198
|
-
*/
|
|
199
|
-
addDependencyMapping(dependency, key) {
|
|
200
|
-
if (!this.dependencies.has(dependency)) {
|
|
201
|
-
this.dependencies.set(dependency, new Set());
|
|
202
|
-
}
|
|
203
|
-
this.dependencies.get(dependency).add(key);
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Remove dependency mappings for a cache key
|
|
207
|
-
*/
|
|
208
|
-
removeDependencyMappings(key) {
|
|
209
|
-
for (const [dep, keys] of this.dependencies.entries()) {
|
|
210
|
-
keys.delete(key);
|
|
211
|
-
if (keys.size === 0) {
|
|
212
|
-
this.dependencies.delete(dep);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Evict least recently used entry
|
|
218
|
-
*/
|
|
219
|
-
evictLeastUsed() {
|
|
220
|
-
let oldestKey = null;
|
|
221
|
-
let oldestTime = Date.now();
|
|
222
|
-
for (const [key, entry] of this.cache.entries()) {
|
|
223
|
-
if (!entry.persistent && entry.lastAccessed < oldestTime) {
|
|
224
|
-
oldestTime = entry.lastAccessed;
|
|
225
|
-
oldestKey = key;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
if (oldestKey) {
|
|
229
|
-
this.cache.delete(oldestKey);
|
|
230
|
-
this.removeDependencyMappings(oldestKey);
|
|
231
|
-
this.stats.evictions++;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Cleanup expired entries
|
|
236
|
-
*/
|
|
237
|
-
cleanup() {
|
|
238
|
-
const before = this.cache.size;
|
|
239
|
-
const expiredKeys = [];
|
|
240
|
-
for (const [key, entry] of this.cache.entries()) {
|
|
241
|
-
if (entry.isExpired()) {
|
|
242
|
-
expiredKeys.push(key);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
expiredKeys.forEach(key => {
|
|
246
|
-
this.cache.delete(key);
|
|
247
|
-
this.removeDependencyMappings(key);
|
|
248
|
-
});
|
|
249
|
-
const cleaned = before - this.cache.size;
|
|
250
|
-
if (cleaned > 0) {
|
|
251
|
-
this.stats.cleanups++;
|
|
252
|
-
}
|
|
253
|
-
return cleaned;
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Get cache statistics
|
|
257
|
-
*/
|
|
258
|
-
getStats() {
|
|
259
|
-
const totalRequests = this.stats.hits + this.stats.misses;
|
|
260
|
-
return {
|
|
261
|
-
size: this.cache.size,
|
|
262
|
-
maxSize: this.options.maxSize,
|
|
263
|
-
hits: this.stats.hits,
|
|
264
|
-
misses: this.stats.misses,
|
|
265
|
-
hitRate: totalRequests > 0 ? (this.stats.hits / totalRequests * 100).toFixed(2) : 0,
|
|
266
|
-
evictions: this.stats.evictions,
|
|
267
|
-
cleanups: this.stats.cleanups,
|
|
268
|
-
invalidations: this.stats.invalidations,
|
|
269
|
-
dependencies: this.dependencies.size,
|
|
270
|
-
memoryUsage: this.estimateMemoryUsage()
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Estimate memory usage (rough approximation)
|
|
275
|
-
*/
|
|
276
|
-
estimateMemoryUsage() {
|
|
277
|
-
let totalSize = 0;
|
|
278
|
-
for (const entry of this.cache.values()) {
|
|
279
|
-
// Rough estimate: 1KB per component + overhead
|
|
280
|
-
totalSize += JSON.stringify(entry.component).length + 500;
|
|
281
|
-
}
|
|
282
|
-
return Math.round(totalSize / 1024); // Return in KB
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Get hot path components (most accessed)
|
|
286
|
-
*/
|
|
287
|
-
getHotComponents(limit = 10) {
|
|
288
|
-
const entries = Array.from(this.cache.entries());
|
|
289
|
-
return entries
|
|
290
|
-
.sort((a, b) => b[1].accessCount - a[1].accessCount)
|
|
291
|
-
.slice(0, limit)
|
|
292
|
-
.map(([key, entry]) => ({
|
|
293
|
-
key,
|
|
294
|
-
accessCount: entry.accessCount,
|
|
295
|
-
component: entry.component,
|
|
296
|
-
dependencies: Array.from(entry.deps)
|
|
297
|
-
}));
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Get cache recommendations
|
|
301
|
-
*/
|
|
302
|
-
getRecommendations() {
|
|
303
|
-
const stats = this.getStats();
|
|
304
|
-
const recommendations = [];
|
|
305
|
-
if (stats.hitRate < 50) {
|
|
306
|
-
recommendations.push({
|
|
307
|
-
type: 'low-hit-rate',
|
|
308
|
-
message: `Hit rate is ${stats.hitRate}%. Consider increasing cache size or TTL.`,
|
|
309
|
-
priority: 'HIGH'
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
if (stats.evictions > stats.hits * 0.1) {
|
|
313
|
-
recommendations.push({
|
|
314
|
-
type: 'frequent-evictions',
|
|
315
|
-
message: 'Frequent evictions detected. Consider increasing maxSize.',
|
|
316
|
-
priority: 'MEDIUM'
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
if (stats.invalidations > stats.hits * 0.05) {
|
|
320
|
-
recommendations.push({
|
|
321
|
-
type: 'frequent-invalidations',
|
|
322
|
-
message: 'Frequent invalidations. Review dependency tracking.',
|
|
323
|
-
priority: 'LOW'
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
return recommendations;
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Destroy cache and cleanup
|
|
330
|
-
*/
|
|
331
|
-
destroy() {
|
|
332
|
-
if (this.cleanupTimer) {
|
|
333
|
-
clearInterval(this.cleanupTimer);
|
|
334
|
-
}
|
|
335
|
-
this.clear();
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Create a new component cache instance
|
|
340
|
-
*/
|
|
341
|
-
export function createComponentCache(options = {}) {
|
|
342
|
-
return new ComponentCache(options);
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
* Memoization decorator for components
|
|
346
|
-
*/
|
|
347
|
-
export function memoize(component, keyGenerator, options = {}) {
|
|
348
|
-
const cache = new ComponentCache({
|
|
349
|
-
maxSize: options.maxSize || 100,
|
|
350
|
-
defaultTTL: options.ttl || 300000
|
|
351
|
-
});
|
|
352
|
-
return function memoizedComponent(...args) {
|
|
353
|
-
const key = keyGenerator ? keyGenerator(...args) : JSON.stringify(args);
|
|
354
|
-
const cached = cache.get(key, options.dependencies);
|
|
355
|
-
if (cached) {
|
|
356
|
-
return cached;
|
|
357
|
-
}
|
|
358
|
-
const result = typeof component === 'function' ? component(...args) : component;
|
|
359
|
-
cache.set(key, result, options);
|
|
360
|
-
return result;
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
export default ComponentCache;
|
|
364
|
-
//# sourceMappingURL=component-cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component-cache.js","sourceRoot":"","sources":["../../../../src/performance/component-cache.js"],"names":[],"mappings":"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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Create a new CSS Manager instance
|
|
3
|
-
*/
|
|
4
|
-
export function createCSSManager(options?: {}): CSSManager;
|
|
5
|
-
/**
|
|
6
|
-
* CSS Manager Class
|
|
7
|
-
* Handles CSS file loading, processing, and injection
|
|
8
|
-
*/
|
|
9
|
-
export class CSSManager {
|
|
10
|
-
constructor(options?: {});
|
|
11
|
-
options: {
|
|
12
|
-
basePath: string;
|
|
13
|
-
minify: boolean;
|
|
14
|
-
cache: boolean;
|
|
15
|
-
autoprefixer: boolean;
|
|
16
|
-
};
|
|
17
|
-
cache: Map<any, any>;
|
|
18
|
-
loadedFiles: Set<any>;
|
|
19
|
-
/**
|
|
20
|
-
* Load CSS file content
|
|
21
|
-
*/
|
|
22
|
-
loadCSSFile(filePath: any): Promise<any>;
|
|
23
|
-
/**
|
|
24
|
-
* Load multiple CSS files
|
|
25
|
-
*/
|
|
26
|
-
loadCSSFiles(filePaths: any): Promise<string>;
|
|
27
|
-
/**
|
|
28
|
-
* Generate CSS link tags for external files
|
|
29
|
-
*/
|
|
30
|
-
generateCSSLinks(filePaths: any, baseUrl?: string): any;
|
|
31
|
-
/**
|
|
32
|
-
* Generate inline style tag with CSS content
|
|
33
|
-
*/
|
|
34
|
-
generateInlineStyles(cssContent: any): string;
|
|
35
|
-
/**
|
|
36
|
-
* Basic CSS minification
|
|
37
|
-
*/
|
|
38
|
-
minifyCSS(css: any): any;
|
|
39
|
-
/**
|
|
40
|
-
* Escape HTML entities
|
|
41
|
-
*/
|
|
42
|
-
escapeHtml(text: any): any;
|
|
43
|
-
/**
|
|
44
|
-
* Clear cache
|
|
45
|
-
*/
|
|
46
|
-
clearCache(): void;
|
|
47
|
-
/**
|
|
48
|
-
* Get loaded file list
|
|
49
|
-
*/
|
|
50
|
-
getLoadedFiles(): any[];
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Default CSS Manager instance
|
|
54
|
-
*/
|
|
55
|
-
export const defaultCSSManager: CSSManager;
|
|
56
|
-
export namespace cssUtils {
|
|
57
|
-
/**
|
|
58
|
-
* Process CSS options from render options
|
|
59
|
-
*/
|
|
60
|
-
function processCSSOptions(options?: {}): {
|
|
61
|
-
files: any[];
|
|
62
|
-
inline: any;
|
|
63
|
-
links: any[];
|
|
64
|
-
basePath: any;
|
|
65
|
-
minify: any;
|
|
66
|
-
loadInline: boolean;
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* Generate complete CSS HTML for head section
|
|
70
|
-
*/
|
|
71
|
-
function generateCSSHtml(cssOptions: any, cssManager?: CSSManager): Promise<string>;
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=css-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-manager.d.ts","sourceRoot":"","sources":["../../../../src/rendering/css-manager.js"],"names":[],"mappings":"AA6MA;;GAEG;AACH,2DAEC;AA1MD;;;GAGG;AACH;IACI,0BAWC;IAVG;;;;;MAMC;IAED,qBAAsB;IACtB,sBAA4B;IAGhC;;OAEG;IACH,yCA4BC;IAED;;OAEG;IACH,8CAUC;IAED;;OAEG;IACH,wDAcC;IAED;;OAEG;IACH,8CAIC;IAED;;OAEG;IACH,yBAQC;IAED;;OAEG;IACH,2BAGC;IAED;;OAEG;IACH,mBAGC;IAED;;OAEG;IACH,wBAEC;CACJ;AAED;;GAEG;AACH,2CAAkD;;IAM9C;;OAEG;IACH;;;;;;;MAkBC;IAED;;OAEG;IACH,oFA4BC"}
|