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.
Files changed (43) hide show
  1. package/esm/deno.js +1 -1
  2. package/esm/src/html/hydration-script-builder/templates/router.d.ts.map +1 -1
  3. package/esm/src/html/hydration-script-builder/templates/router.js +32 -5
  4. package/esm/src/platform/adapters/base.d.ts +2 -0
  5. package/esm/src/platform/adapters/base.d.ts.map +1 -1
  6. package/esm/src/platform/adapters/fs/cache/file-cache.d.ts +1 -0
  7. package/esm/src/platform/adapters/fs/cache/file-cache.d.ts.map +1 -1
  8. package/esm/src/platform/adapters/fs/cache/file-cache.js +10 -0
  9. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts +1 -0
  10. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
  11. package/esm/src/platform/adapters/fs/veryfront/adapter.js +37 -0
  12. package/esm/src/platform/adapters/fs/veryfront/types.d.ts +1 -0
  13. package/esm/src/platform/adapters/fs/veryfront/types.d.ts.map +1 -1
  14. package/esm/src/proxy/handler.d.ts +2 -0
  15. package/esm/src/proxy/handler.d.ts.map +1 -1
  16. package/esm/src/proxy/handler.js +225 -31
  17. package/esm/src/proxy/main.js +1 -1
  18. package/esm/src/proxy/proxy-token-resolution.d.ts +1 -0
  19. package/esm/src/proxy/proxy-token-resolution.d.ts.map +1 -1
  20. package/esm/src/proxy/proxy-token-resolution.js +7 -1
  21. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  22. package/esm/src/rendering/orchestrator/pipeline.js +28 -1
  23. package/esm/src/rendering/page-rendering.d.ts +10 -0
  24. package/esm/src/rendering/page-rendering.d.ts.map +1 -1
  25. package/esm/src/rendering/page-rendering.js +64 -2
  26. package/esm/src/security/http/response/cache-handler.d.ts.map +1 -1
  27. package/esm/src/security/http/response/cache-handler.js +3 -0
  28. package/esm/src/security/http/response/types.d.ts +1 -0
  29. package/esm/src/security/http/response/types.d.ts.map +1 -1
  30. package/esm/src/server/handlers/request/module/page-data-endpoint-handler.d.ts.map +1 -1
  31. package/esm/src/server/handlers/request/module/page-data-endpoint-handler.js +96 -15
  32. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts +1 -0
  33. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts.map +1 -1
  34. package/esm/src/transforms/mdx/esm-module-loader/cache/index.js +35 -0
  35. package/esm/src/transforms/mdx/esm-module-loader/index.d.ts +1 -1
  36. package/esm/src/transforms/mdx/esm-module-loader/index.d.ts.map +1 -1
  37. package/esm/src/transforms/mdx/esm-module-loader/index.js +1 -1
  38. package/esm/src/utils/memory/profiler.d.ts +22 -0
  39. package/esm/src/utils/memory/profiler.d.ts.map +1 -1
  40. package/esm/src/utils/memory/profiler.js +48 -3
  41. package/esm/src/utils/version-constant.d.ts +1 -1
  42. package/esm/src/utils/version-constant.js +1 -1
  43. 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 heapGrowthMB = heap.usedHeapSizeMB - lastHeapUsed;
160
- if (heapGrowthMB > HEAP_RAPID_GROWTH_THRESHOLD_MB) {
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: heapGrowthMB,
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) {
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.815";
2
+ export declare const VERSION = "0.1.818";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.815";
4
+ export const VERSION = "0.1.818";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.815",
3
+ "version": "0.1.818",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",