veryfront 0.1.815 → 0.1.818
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/esm/deno.js +1 -1
- package/esm/src/html/hydration-script-builder/templates/router.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/router.js +32 -5
- package/esm/src/platform/adapters/base.d.ts +2 -0
- package/esm/src/platform/adapters/base.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/cache/file-cache.d.ts +1 -0
- package/esm/src/platform/adapters/fs/cache/file-cache.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/cache/file-cache.js +10 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts +1 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/adapter.js +37 -0
- package/esm/src/platform/adapters/fs/veryfront/types.d.ts +1 -0
- package/esm/src/platform/adapters/fs/veryfront/types.d.ts.map +1 -1
- package/esm/src/proxy/handler.d.ts +2 -0
- package/esm/src/proxy/handler.d.ts.map +1 -1
- package/esm/src/proxy/handler.js +225 -31
- package/esm/src/proxy/main.js +1 -1
- package/esm/src/proxy/proxy-token-resolution.d.ts +1 -0
- package/esm/src/proxy/proxy-token-resolution.d.ts.map +1 -1
- package/esm/src/proxy/proxy-token-resolution.js +7 -1
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/pipeline.js +28 -1
- package/esm/src/rendering/page-rendering.d.ts +10 -0
- package/esm/src/rendering/page-rendering.d.ts.map +1 -1
- package/esm/src/rendering/page-rendering.js +64 -2
- package/esm/src/security/http/response/cache-handler.d.ts.map +1 -1
- package/esm/src/security/http/response/cache-handler.js +3 -0
- package/esm/src/security/http/response/types.d.ts +1 -0
- package/esm/src/security/http/response/types.d.ts.map +1 -1
- package/esm/src/server/handlers/request/module/page-data-endpoint-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/module/page-data-endpoint-handler.js +96 -15
- package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/cache/index.js +35 -0
- package/esm/src/transforms/mdx/esm-module-loader/index.d.ts +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/index.js +1 -1
- package/esm/src/utils/memory/profiler.d.ts +22 -0
- package/esm/src/utils/memory/profiler.d.ts.map +1 -1
- package/esm/src/utils/memory/profiler.js +48 -3
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,7 @@ let memoryCheckInterval;
|
|
|
19
19
|
let memoryCheckIntervalMs;
|
|
20
20
|
let lastHeapUsed = 0;
|
|
21
21
|
let heapGrowthWarningThreshold = 0.8;
|
|
22
|
+
let pendingRapidHeapGrowth;
|
|
22
23
|
export function registerCache(name, getStats) {
|
|
23
24
|
cacheRegistry.set(name, getStats);
|
|
24
25
|
logger.debug(`Registered cache: ${name}`);
|
|
@@ -119,6 +120,39 @@ export function getMemoryMonitoringConfig(env) {
|
|
|
119
120
|
: DEFAULT_MEMORY_MONITORING_INTERVAL_MS;
|
|
120
121
|
return { enabled, intervalMs };
|
|
121
122
|
}
|
|
123
|
+
function roundMemoryMB(value) {
|
|
124
|
+
return Math.round(value * 100) / 100;
|
|
125
|
+
}
|
|
126
|
+
export function getInitialRapidHeapGrowthState(initialHeapUsedMB) {
|
|
127
|
+
return {
|
|
128
|
+
lastHeapUsedMB: initialHeapUsedMB,
|
|
129
|
+
pending: undefined,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export function getRapidHeapGrowthEvaluation(input) {
|
|
133
|
+
const intervalGrowthMB = roundMemoryMB(input.currentHeapUsedMB - input.previousHeapUsedMB);
|
|
134
|
+
if (input.pending) {
|
|
135
|
+
const sustainedGrowthMB = roundMemoryMB(input.currentHeapUsedMB - input.pending.baselineHeapUsedMB);
|
|
136
|
+
if (sustainedGrowthMB > input.thresholdMB) {
|
|
137
|
+
return {
|
|
138
|
+
shouldWarn: true,
|
|
139
|
+
growthMB: sustainedGrowthMB,
|
|
140
|
+
observedGrowthMB: input.pending.observedGrowthMB,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
return { shouldWarn: false };
|
|
144
|
+
}
|
|
145
|
+
if (intervalGrowthMB > input.thresholdMB) {
|
|
146
|
+
return {
|
|
147
|
+
shouldWarn: false,
|
|
148
|
+
pending: {
|
|
149
|
+
baselineHeapUsedMB: input.previousHeapUsedMB,
|
|
150
|
+
observedGrowthMB: intervalGrowthMB,
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return { shouldWarn: false };
|
|
155
|
+
}
|
|
122
156
|
export function getMemoryMonitoringState() {
|
|
123
157
|
return {
|
|
124
158
|
active: memoryCheckInterval !== undefined,
|
|
@@ -142,6 +176,9 @@ export function startMemoryMonitoring(intervalMs = DEFAULT_MEMORY_MONITORING_INT
|
|
|
142
176
|
clearInterval(memoryCheckInterval);
|
|
143
177
|
logger.info(`Starting memory monitoring (interval: ${intervalMs}ms)`);
|
|
144
178
|
memoryCheckIntervalMs = intervalMs;
|
|
179
|
+
const rapidGrowthState = getInitialRapidHeapGrowthState(getHeapStats().usedHeapSizeMB);
|
|
180
|
+
lastHeapUsed = rapidGrowthState.lastHeapUsedMB;
|
|
181
|
+
pendingRapidHeapGrowth = rapidGrowthState.pending;
|
|
145
182
|
memoryCheckInterval = dntShim.setInterval(() => {
|
|
146
183
|
const snapshot = getMemorySnapshot();
|
|
147
184
|
const { heap } = snapshot;
|
|
@@ -156,10 +193,17 @@ export function startMemoryMonitoring(intervalMs = DEFAULT_MEMORY_MONITORING_INT
|
|
|
156
193
|
caches: snapshot.caches.map((c) => `${c.name}: ${c.entries}`).join(", "),
|
|
157
194
|
});
|
|
158
195
|
}
|
|
159
|
-
const
|
|
160
|
-
|
|
196
|
+
const rapidGrowthEvaluation = getRapidHeapGrowthEvaluation({
|
|
197
|
+
previousHeapUsedMB: lastHeapUsed,
|
|
198
|
+
currentHeapUsedMB: heap.usedHeapSizeMB,
|
|
199
|
+
pending: pendingRapidHeapGrowth,
|
|
200
|
+
thresholdMB: HEAP_RAPID_GROWTH_THRESHOLD_MB,
|
|
201
|
+
});
|
|
202
|
+
pendingRapidHeapGrowth = rapidGrowthEvaluation.pending;
|
|
203
|
+
if (rapidGrowthEvaluation.shouldWarn) {
|
|
161
204
|
logger.warn("Rapid heap growth detected", {
|
|
162
|
-
growthMB:
|
|
205
|
+
growthMB: rapidGrowthEvaluation.growthMB,
|
|
206
|
+
observedGrowthMB: rapidGrowthEvaluation.observedGrowthMB,
|
|
163
207
|
intervalMs,
|
|
164
208
|
topCaches: monitoringContext.topCaches,
|
|
165
209
|
});
|
|
@@ -187,6 +231,7 @@ export function stopMemoryMonitoring() {
|
|
|
187
231
|
clearInterval(memoryCheckInterval);
|
|
188
232
|
memoryCheckInterval = undefined;
|
|
189
233
|
memoryCheckIntervalMs = undefined;
|
|
234
|
+
pendingRapidHeapGrowth = undefined;
|
|
190
235
|
logger.info("Memory monitoring stopped");
|
|
191
236
|
}
|
|
192
237
|
export function setHeapWarningThreshold(threshold) {
|