veryfront 0.1.1110 → 0.1.1111

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.1110",
3
+ "version": "0.1.1111",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -4,5 +4,6 @@
4
4
  * @module modules/react-loader/ssr-module-loader/cache
5
5
  */
6
6
  export { acquireTransformSlot, clearSSRModuleCache, clearSSRModuleCacheForProject, failedComponents, getTransformSemaphore, getTransformStats, globalCrossProjectCache, globalInProgress, globalModuleCache, globalTmpDirs, releaseTransformSlot, tryAcquireTransformSlot, } from "./memory.js";
7
+ export type { ClearSSRModuleCacheForProjectOptions } from "./memory.js";
7
8
  export { getFromRedis, initializeSSRDistributedCache, isSSRDistributedCacheEnabled, setInRedis, } from "./redis.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/modules/react-loader/ssr-module-loader/cache/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,6BAA6B,EAC7B,4BAA4B,EAC5B,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/modules/react-loader/ssr-module-loader/cache/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EACL,YAAY,EACZ,6BAA6B,EAC7B,4BAA4B,EAC5B,UAAU,GACX,MAAM,YAAY,CAAC"}
@@ -20,6 +20,15 @@ export declare const globalCrossProjectCache: LRUCache<string, ModuleCacheEntry>
20
20
  export declare const globalInProgress: Map<string, Promise<void>>;
21
21
  export declare const globalTmpDirs: LRUCache<string, string>;
22
22
  export declare const failedComponents: Map<string, FailureRecord>;
23
+ export interface ClearSSRModuleCacheForProjectOptions {
24
+ /**
25
+ * Preserve live transform ownership and per-project capacity waiters while
26
+ * clearing request-visible cache entries. Dev SSR request starts use this so
27
+ * concurrent cold requests do not delete another request's transform leader
28
+ * before it can publish its completed cache entry.
29
+ */
30
+ preserveActiveTransforms?: boolean;
31
+ }
23
32
  export declare function getTransformSemaphore(): Semaphore;
24
33
  /**
25
34
  * Attempt to acquire a project-level transform slot immediately.
@@ -55,5 +64,5 @@ export declare function getTransformStats(): {
55
64
  activeProjects: Map<string, number>;
56
65
  };
57
66
  export declare function clearSSRModuleCache(): void;
58
- export declare function clearSSRModuleCacheForProject(projectId: string): void;
67
+ export declare function clearSSRModuleCacheForProject(projectId: string, options?: ClearSSRModuleCacheForProjectOptions): void;
59
68
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../../../src/src/modules/react-loader/ssr-module-loader/cache/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAO5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOnE,eAAO,MAAM,iBAAiB,oCAE5B,CAAC;AAEH,eAAO,MAAM,uBAAuB,oCAElC,CAAC;AAEH,eAAO,MAAM,gBAAgB,4BAAmC,CAAC;AAEjE,eAAO,MAAM,aAAa,0BAExB,CAAC;AAEH,eAAO,MAAM,gBAAgB,4BAAmC,CAAC;AAGjE,wBAAgB,qBAAqB,IAAI,SAAS,CAKjD;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAY/E;AA2DD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,UAAQ,GACb,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,IAAI,CAY5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAOA;AAkDD,wBAAgB,mBAAmB,IAAI,IAAI,CAsB1C;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAkDrE"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../../../src/src/modules/react-loader/ssr-module-loader/cache/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAO5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOnE,eAAO,MAAM,iBAAiB,oCAE5B,CAAC;AAEH,eAAO,MAAM,uBAAuB,oCAElC,CAAC;AAEH,eAAO,MAAM,gBAAgB,4BAAmC,CAAC;AAEjE,eAAO,MAAM,aAAa,0BAExB,CAAC;AAEH,eAAO,MAAM,gBAAgB,4BAAmC,CAAC;AAEjE,MAAM,WAAW,oCAAoC;IACnD;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAGD,wBAAgB,qBAAqB,IAAI,SAAS,CAKjD;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAY/E;AA2DD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,UAAQ,GACb,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,IAAI,CAY5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAOA;AAkDD,wBAAgB,mBAAmB,IAAI,IAAI,CAsB1C;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,oCAAyC,GACjD,IAAI,CAwDN"}
@@ -248,9 +248,10 @@ export function clearSSRModuleCache() {
248
248
  transformSlotsCleared: transformSlotsCount,
249
249
  });
250
250
  }
251
- export function clearSSRModuleCacheForProject(projectId) {
251
+ export function clearSSRModuleCacheForProject(projectId, options = {}) {
252
252
  let cleared = 0;
253
253
  const encodedProjectId = hashCodeHex(projectId);
254
+ const preserveActiveTransforms = options.preserveActiveTransforms === true;
254
255
  for (const key of globalModuleCache.keys()) {
255
256
  if (!isKeyForProject(key, projectId))
256
257
  continue;
@@ -262,10 +263,12 @@ export function clearSSRModuleCacheForProject(projectId) {
262
263
  continue;
263
264
  globalCrossProjectCache.delete(key);
264
265
  }
265
- for (const key of globalInProgress.keys()) {
266
- if (!isKeyForProject(key, projectId))
267
- continue;
268
- globalInProgress.delete(key);
266
+ if (!preserveActiveTransforms) {
267
+ for (const key of globalInProgress.keys()) {
268
+ if (!isKeyForProject(key, projectId))
269
+ continue;
270
+ globalInProgress.delete(key);
271
+ }
269
272
  }
270
273
  for (const key of failedComponents.keys()) {
271
274
  if (!isKeyForProject(key, projectId))
@@ -274,7 +277,7 @@ export function clearSSRModuleCacheForProject(projectId) {
274
277
  }
275
278
  for (const key of globalTmpDirs.keys()) {
276
279
  const parts = key.split("|");
277
- if (parts.length >= 3 && parts[1] === encodedProjectId) {
280
+ if (parts[2] === encodedProjectId || parts[1] === encodedProjectId) {
278
281
  globalTmpDirs.delete(key);
279
282
  continue;
280
283
  }
@@ -283,14 +286,17 @@ export function clearSSRModuleCacheForProject(projectId) {
283
286
  globalTmpDirs.delete(key);
284
287
  }
285
288
  }
286
- projectTransformCounts.delete(projectId);
287
- rejectProjectTransformWaiters(projectId);
289
+ if (!preserveActiveTransforms) {
290
+ projectTransformCounts.delete(projectId);
291
+ rejectProjectTransformWaiters(projectId);
292
+ }
288
293
  // Clear verified HTTP bundle paths — keys are tempPath:contentHash (not project-scoped),
289
294
  // so full clear is needed. This just forces re-verification on next access.
290
295
  verifiedHttpBundlePaths.clear();
291
296
  logger.debug("✓ Project cache cleared", {
292
297
  projectId,
293
298
  entriesCleared: cleared,
299
+ activeTransformsPreserved: preserveActiveTransforms,
294
300
  remainingModules: globalModuleCache.size,
295
301
  });
296
302
  }
@@ -7,6 +7,7 @@ export { SSRModuleLoader } from "./loader.js";
7
7
  export type { FailureRecord, ModuleCacheEntry, SSRModuleCacheStats, SSRModuleLoaderOptions, } from "./types.js";
8
8
  export { CIRCUIT_BREAKER_RESET_MS, CIRCUIT_BREAKER_THRESHOLD, getMaxConcurrentTransforms, getTransformPerProjectLimit, REDIS_KEY_PREFIX, SSR_MODULE_CACHE_MAX_ENTRIES, SSR_MODULE_CACHE_TTL_MS, SSR_TMP_DIRS_MAX_ENTRIES, } from "./constants.js";
9
9
  export { clearSSRModuleCache, clearSSRModuleCacheForProject, globalModuleCache, initializeSSRDistributedCache, isSSRDistributedCacheEnabled, } from "./cache/index.js";
10
+ export type { ClearSSRModuleCacheForProjectOptions } from "./cache/index.js";
10
11
  export { Semaphore } from "./concurrency/index.js";
11
12
  import type { SSRModuleCacheStats } from "./types.js";
12
13
  export declare function getSSRModuleCacheStats(): SSRModuleCacheStats;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/modules/react-loader/ssr-module-loader/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,iBAAiB,EACjB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,sBAAsB,IAAI,mBAAmB,CAO5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/modules/react-loader/ssr-module-loader/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,iBAAiB,EACjB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,oCAAoC,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,sBAAsB,IAAI,mBAAmB,CAO5D"}
@@ -314,7 +314,7 @@ export class RenderPipeline {
314
314
  }
315
315
  setupSSRGlobals();
316
316
  if (this.config.mode === "development") {
317
- clearSSRModuleCacheForProject(projectId);
317
+ clearSSRModuleCacheForProject(projectId, { preserveActiveTransforms: true });
318
318
  }
319
319
  const renderOnce = () => withSpan("render.page", async () => {
320
320
  const { result } = await runWithCSSCollector(async () => {
@@ -488,7 +488,7 @@ export class RenderPipeline {
488
488
  setupSSRGlobals();
489
489
  const projectId = options?.projectId ?? this.config.projectId ?? this.config.projectDir;
490
490
  if (this.config.mode === "development") {
491
- clearSSRModuleCacheForProject(projectId);
491
+ clearSSRModuleCacheForProject(projectId, { preserveActiveTransforms: true });
492
492
  }
493
493
  const pageInfo = await profilePhase("page_data.resolve_page", () => this.config.pageResolver.resolvePage(slug));
494
494
  const skipLayouts = isDotPath(slug, pageInfo.entity.path);
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.1110";
2
+ export declare const VERSION = "0.1.1111";
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.1110";
4
+ export const VERSION = "0.1.1111";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.1110",
3
+ "version": "0.1.1111",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",
@@ -332,10 +332,10 @@
332
332
  "@types/react": "19.2.14",
333
333
  "@types/react-dom": "19.2.3",
334
334
  "ws": "8.21.0",
335
- "@veryfront/ext-bundler-esbuild": "0.1.1110",
336
- "@veryfront/ext-content-mdx": "0.1.1110",
337
- "@veryfront/ext-css-tailwind": "0.1.1110",
338
- "@veryfront/ext-parser-babel": "0.1.1110"
335
+ "@veryfront/ext-bundler-esbuild": "0.1.1111",
336
+ "@veryfront/ext-content-mdx": "0.1.1111",
337
+ "@veryfront/ext-css-tailwind": "0.1.1111",
338
+ "@veryfront/ext-parser-babel": "0.1.1111"
339
339
  },
340
340
  "devDependencies": {
341
341
  "@types/node": "20.9.0"