veryfront 0.1.95 → 0.1.97

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 (76) hide show
  1. package/esm/deno.js +1 -1
  2. package/esm/src/html/schemas/html.schema.d.ts +2 -2
  3. package/esm/src/jobs/runtime-env.d.ts +5 -0
  4. package/esm/src/jobs/runtime-env.d.ts.map +1 -0
  5. package/esm/src/jobs/runtime-env.js +101 -0
  6. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  7. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +32 -1
  8. package/esm/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.d.ts.map +1 -1
  9. package/esm/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.js +31 -2
  10. package/esm/src/modules/react-loader/ssr-module-loader/vf-module-resolver.d.ts.map +1 -1
  11. package/esm/src/modules/react-loader/ssr-module-loader/vf-module-resolver.js +1 -0
  12. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  13. package/esm/src/rendering/orchestrator/module-loader/index.js +6 -1
  14. package/esm/src/rendering/page-rendering.d.ts +8 -0
  15. package/esm/src/rendering/page-rendering.d.ts.map +1 -1
  16. package/esm/src/rendering/page-rendering.js +29 -18
  17. package/esm/src/task/runner.d.ts.map +1 -1
  18. package/esm/src/task/runner.js +2 -6
  19. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts +5 -1
  20. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts.map +1 -1
  21. package/esm/src/transforms/mdx/esm-module-loader/cache/index.js +18 -2
  22. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts +2 -1
  23. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts.map +1 -1
  24. package/esm/src/transforms/mdx/esm-module-loader/cache-format.js +12 -5
  25. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts.map +1 -1
  26. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.js +1 -0
  27. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts +1 -1
  28. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts.map +1 -1
  29. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.js +2 -2
  30. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/dependency-recovery.d.ts +23 -0
  31. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/dependency-recovery.d.ts.map +1 -0
  32. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/dependency-recovery.js +112 -0
  33. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.d.ts +2 -2
  34. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.d.ts.map +1 -1
  35. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.js +33 -4
  36. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.d.ts +6 -1
  37. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.d.ts.map +1 -1
  38. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.js +31 -1
  39. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts +1 -0
  40. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
  41. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +15 -6
  42. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts +1 -0
  43. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts.map +1 -1
  44. package/esm/src/utils/version.d.ts +1 -1
  45. package/esm/src/utils/version.js +1 -1
  46. package/esm/src/workflow/executor/workflow-executor.d.ts.map +1 -1
  47. package/esm/src/workflow/executor/workflow-executor.js +7 -1
  48. package/esm/src/workflow/types.d.ts +1 -0
  49. package/esm/src/workflow/types.d.ts.map +1 -1
  50. package/esm/src/workflow/worker/dynamic-job-entrypoint.d.ts.map +1 -1
  51. package/esm/src/workflow/worker/dynamic-job-entrypoint.js +18 -1
  52. package/esm/src/workflow/worker/job-entrypoint.d.ts.map +1 -1
  53. package/esm/src/workflow/worker/job-entrypoint.js +18 -1
  54. package/package.json +1 -1
  55. package/src/deno.js +1 -1
  56. package/src/src/jobs/runtime-env.ts +132 -0
  57. package/src/src/modules/react-loader/ssr-module-loader/loader.ts +34 -0
  58. package/src/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.ts +34 -2
  59. package/src/src/modules/react-loader/ssr-module-loader/vf-module-resolver.ts +1 -0
  60. package/src/src/rendering/orchestrator/module-loader/index.ts +12 -1
  61. package/src/src/rendering/page-rendering.ts +64 -39
  62. package/src/src/task/runner.ts +2 -8
  63. package/src/src/transforms/mdx/esm-module-loader/cache/index.ts +18 -1
  64. package/src/src/transforms/mdx/esm-module-loader/cache-format.ts +33 -1
  65. package/src/src/transforms/mdx/esm-module-loader/loader-helpers.ts +1 -0
  66. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.ts +2 -1
  67. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/dependency-recovery.ts +173 -0
  68. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.ts +43 -3
  69. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.ts +37 -0
  70. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts +26 -11
  71. package/src/src/transforms/mdx/esm-module-loader/types.ts +1 -0
  72. package/src/src/utils/version.ts +1 -1
  73. package/src/src/workflow/executor/workflow-executor.ts +7 -1
  74. package/src/src/workflow/types.ts +1 -0
  75. package/src/src/workflow/worker/dynamic-job-entrypoint.ts +19 -1
  76. package/src/src/workflow/worker/job-entrypoint.ts +19 -1
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Distributed recovery for missing MDX ESM module dependencies.
3
+ *
4
+ * Restores missing vfmod files on fresh pods from the distributed transform
5
+ * cache, scoped to the current project and content source.
6
+ *
7
+ * @module transforms/mdx/esm-module-loader/module-fetcher/dependency-recovery
8
+ */
9
+ import type { CacheBackend } from "../../../../cache/types.js";
10
+ import type { Logger } from "../../../../utils/logger/logger.js";
11
+ interface EnsureMdxModuleDependenciesOptions {
12
+ projectId: string;
13
+ contentSourceId: string;
14
+ log: Logger;
15
+ distributedCache?: CacheBackend | null;
16
+ }
17
+ interface EnsureMdxModuleDependenciesResult {
18
+ recovered: string[];
19
+ missing: string[];
20
+ }
21
+ export declare function ensureMdxModuleDependencies(code: string, options: EnsureMdxModuleDependenciesOptions): Promise<EnsureMdxModuleDependenciesResult>;
22
+ export {};
23
+ //# sourceMappingURL=dependency-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-recovery.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/dependency-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAWjE,UAAU,kCAAkC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACxC;AAED,UAAU,iCAAiC;IACzC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAiHD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,iCAAiC,CAAC,CAuB5C"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Distributed recovery for missing MDX ESM module dependencies.
3
+ *
4
+ * Restores missing vfmod files on fresh pods from the distributed transform
5
+ * cache, scoped to the current project and content source.
6
+ *
7
+ * @module transforms/mdx/esm-module-loader/module-fetcher/dependency-recovery
8
+ */
9
+ import { basename, dirname } from "../../../../platform/compat/path/index.js";
10
+ import { detokenizeAllCachePaths } from "../../../../cache/index.js";
11
+ import { getDistributedTransformBackend } from "../../../esm/transform-cache.js";
12
+ import { ensureHttpBundlesExist } from "../../../esm/http-cache.js";
13
+ import { extractHttpBundlePaths } from "../../../../modules/react-loader/ssr-module-loader/http-bundle-helpers.js";
14
+ import { getHttpBundleCacheDir } from "../../../../utils/cache-dir.js";
15
+ import { LOG_PREFIX_MDX_LOADER } from "../constants.js";
16
+ import { getLocalFs } from "../cache/index.js";
17
+ import { buildMdxEsmModuleRecoveryCacheKey } from "../cache-format.js";
18
+ const MDX_VFMOD_FILE_URL_PATTERN = /file:\/\/([^"'\s]+veryfront-mdx-esm\/[^"'\s]+\.mjs)/gi;
19
+ function extractMdxModuleDependencyPaths(code) {
20
+ const paths = [];
21
+ const seen = new Set();
22
+ let match;
23
+ while ((match = MDX_VFMOD_FILE_URL_PATTERN.exec(code)) !== null) {
24
+ const rawPath = match[1];
25
+ if (!rawPath)
26
+ continue;
27
+ const cleanPath = rawPath.replace(/\?.*$/, "");
28
+ if (seen.has(cleanPath))
29
+ continue;
30
+ seen.add(cleanPath);
31
+ paths.push(cleanPath);
32
+ }
33
+ return paths;
34
+ }
35
+ async function ensureHttpBundleDependencies(code, log) {
36
+ const bundlePaths = extractHttpBundlePaths(code);
37
+ if (bundlePaths.length === 0)
38
+ return true;
39
+ const failed = await ensureHttpBundlesExist(bundlePaths, getHttpBundleCacheDir());
40
+ if (failed.length === 0)
41
+ return true;
42
+ log.warn(`${LOG_PREFIX_MDX_LOADER} Failed to recover HTTP bundles for vfmod dependency`, {
43
+ failed,
44
+ totalBundles: bundlePaths.length,
45
+ });
46
+ return false;
47
+ }
48
+ async function ensureModuleFileAndDeps(absolutePath, distributedCache, options, visited, recovered) {
49
+ if (visited.has(absolutePath))
50
+ return true;
51
+ visited.add(absolutePath);
52
+ const localFs = getLocalFs();
53
+ try {
54
+ const stat = await localFs.stat(absolutePath);
55
+ if (stat?.isFile) {
56
+ const existingCode = await localFs.readTextFile(absolutePath);
57
+ if (!(await ensureHttpBundleDependencies(existingCode, options.log)))
58
+ return false;
59
+ for (const nestedPath of extractMdxModuleDependencyPaths(existingCode)) {
60
+ if (!(await ensureModuleFileAndDeps(nestedPath, distributedCache, options, visited, recovered))) {
61
+ return false;
62
+ }
63
+ }
64
+ return true;
65
+ }
66
+ }
67
+ catch (_) {
68
+ /* expected: dependency may not exist on this pod yet */
69
+ }
70
+ const recoveryKey = buildMdxEsmModuleRecoveryCacheKey(options.projectId, options.contentSourceId, basename(absolutePath));
71
+ const portableCode = await distributedCache.get(recoveryKey);
72
+ if (!portableCode) {
73
+ options.log.debug(`${LOG_PREFIX_MDX_LOADER} No distributed vfmod recovery entry`, {
74
+ dependencyPath: absolutePath,
75
+ recoveryKey,
76
+ });
77
+ return false;
78
+ }
79
+ const recoveredCode = detokenizeAllCachePaths(portableCode);
80
+ if (!(await ensureHttpBundleDependencies(recoveredCode, options.log)))
81
+ return false;
82
+ for (const nestedPath of extractMdxModuleDependencyPaths(recoveredCode)) {
83
+ if (!(await ensureModuleFileAndDeps(nestedPath, distributedCache, options, visited, recovered))) {
84
+ return false;
85
+ }
86
+ }
87
+ await localFs.mkdir(dirname(absolutePath), { recursive: true });
88
+ await localFs.writeTextFile(absolutePath, recoveredCode);
89
+ recovered.add(absolutePath);
90
+ options.log.debug(`${LOG_PREFIX_MDX_LOADER} Recovered vfmod dependency from distributed cache`, {
91
+ dependencyPath: absolutePath,
92
+ recoveryKey,
93
+ });
94
+ return true;
95
+ }
96
+ export async function ensureMdxModuleDependencies(code, options) {
97
+ const distributedCache = options.distributedCache ?? (await getDistributedTransformBackend());
98
+ if (!distributedCache)
99
+ return { recovered: [], missing: extractMdxModuleDependencyPaths(code) };
100
+ const visited = new Set();
101
+ const recovered = new Set();
102
+ const missing = [];
103
+ for (const dependencyPath of extractMdxModuleDependencyPaths(code)) {
104
+ const ok = await ensureModuleFileAndDeps(dependencyPath, distributedCache, options, visited, recovered);
105
+ if (!ok)
106
+ missing.push(dependencyPath);
107
+ }
108
+ return {
109
+ recovered: [...recovered],
110
+ missing,
111
+ };
112
+ }
@@ -36,7 +36,7 @@ interface DistributedCacheReadResult {
36
36
  * Returns null only if no distributed cache backend is available.
37
37
  * Otherwise returns `{ code, distributedCache }` where `code` may be null (cache miss).
38
38
  */
39
- export declare function readDistributedCache(transformCacheKey: string, normalizedPath: string, projectSlug: string, projectDir: string, reactVersion: string | undefined, log: Logger): Promise<DistributedCacheReadResult | null>;
39
+ export declare function readDistributedCache(transformCacheKey: string, projectId: string, contentSourceId: string | undefined, normalizedPath: string, projectSlug: string, projectDir: string, reactVersion: string | undefined, log: Logger): Promise<DistributedCacheReadResult | null>;
40
40
  /**
41
41
  * Write a fully-resolved module to the distributed transform cache.
42
42
  *
@@ -45,6 +45,6 @@ export declare function readDistributedCache(transformCacheKey: string, normaliz
45
45
  *
46
46
  * This is fire-and-forget: errors are logged but do not propagate.
47
47
  */
48
- export declare function writeDistributedCache(distributedCache: DistributedCache, transformCacheKey: string, moduleCode: string, normalizedPath: string, log: Logger): void;
48
+ export declare function writeDistributedCache(distributedCache: DistributedCache, transformCacheKey: string, projectId: string, contentSourceId: string, moduleCode: string, normalizedPath: string, log: Logger): void;
49
49
  export {};
50
50
  //# sourceMappingURL=distributed-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"distributed-cache.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AASjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAWjF,qDAAqD;AACrD,KAAK,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC,CAAC;AAEhG;;;;;GAKG;AACH,UAAU,0BAA0B;IAClC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,4DAA4D;IAC5D,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAoG5C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GACV,IAAI,CAqCN"}
1
+ {"version":3,"file":"distributed-cache.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AASjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAcjF,qDAAqD;AACrD,KAAK,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC,CAAC;AAEhG;;;;;GAKG;AACH,UAAU,0BAA0B;IAClC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,4DAA4D;IAC5D,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAoH5C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GACV,IAAI,CAsDN"}
@@ -18,6 +18,9 @@ import { getDistributedTransformBackend } from "../../../esm/transform-cache.js"
18
18
  import { TRANSFORM_DISTRIBUTED_TTL_SEC } from "../../../../utils/constants/cache.js";
19
19
  import { hasUnresolvedImports } from "./nested-imports.js";
20
20
  import { findMissingFileDependenciesInCode, hasIncompatibleFrameworkPaths, } from "./framework-validator.js";
21
+ import { ensureMdxModuleDependencies } from "./dependency-recovery.js";
22
+ import { buildMdxEsmModuleFileName, buildMdxEsmModuleRecoveryCacheKey } from "../cache-format.js";
23
+ import { hashString } from "../utils/hash.js";
21
24
  /** TTL for cached transforms (uses centralized config) */
22
25
  const TRANSFORM_CACHE_TTL_SECONDS = TRANSFORM_DISTRIBUTED_TTL_SEC;
23
26
  /**
@@ -34,7 +37,7 @@ const TRANSFORM_CACHE_TTL_SECONDS = TRANSFORM_DISTRIBUTED_TTL_SEC;
34
37
  * Returns null only if no distributed cache backend is available.
35
38
  * Otherwise returns `{ code, distributedCache }` where `code` may be null (cache miss).
36
39
  */
37
- export async function readDistributedCache(transformCacheKey, normalizedPath, projectSlug, projectDir, reactVersion, log) {
40
+ export async function readDistributedCache(transformCacheKey, projectId, contentSourceId, normalizedPath, projectSlug, projectDir, reactVersion, log) {
38
41
  const distributedCache = await getDistributedTransformBackend();
39
42
  if (!distributedCache)
40
43
  return null;
@@ -87,8 +90,23 @@ export async function readDistributedCache(transformCacheKey, normalizedPath, pr
87
90
  // that don't exist on this machine.
88
91
  if (moduleCode) {
89
92
  const missingDeps = await findMissingFileDependenciesInCode(moduleCode, log);
90
- if (missingDeps.length > 0) {
91
- log.warn(`${LOG_PREFIX_MDX_LOADER} Cached code has ${missingDeps.length} missing file dependencies, invalidating`, { normalizedPath, missingDeps: missingDeps.slice(0, 5) });
93
+ if (missingDeps.length > 0 && contentSourceId) {
94
+ const recovered = await ensureMdxModuleDependencies(moduleCode, {
95
+ distributedCache,
96
+ projectId,
97
+ contentSourceId,
98
+ log,
99
+ });
100
+ if (recovered.recovered.length > 0) {
101
+ log.debug(`${LOG_PREFIX_MDX_LOADER} Recovered missing vfmod dependencies from cache`, {
102
+ normalizedPath,
103
+ recovered: recovered.recovered.slice(0, 5),
104
+ });
105
+ }
106
+ }
107
+ const unresolvedDeps = await findMissingFileDependenciesInCode(moduleCode, log);
108
+ if (unresolvedDeps.length > 0) {
109
+ log.warn(`${LOG_PREFIX_MDX_LOADER} Cached code has ${unresolvedDeps.length} missing file dependencies, invalidating`, { normalizedPath, missingDeps: unresolvedDeps.slice(0, 5) });
92
110
  moduleCode = null;
93
111
  }
94
112
  }
@@ -127,7 +145,7 @@ export async function readDistributedCache(transformCacheKey, normalizedPath, pr
127
145
  *
128
146
  * This is fire-and-forget: errors are logged but do not propagate.
129
147
  */
130
- export function writeDistributedCache(distributedCache, transformCacheKey, moduleCode, normalizedPath, log) {
148
+ export function writeDistributedCache(distributedCache, transformCacheKey, projectId, contentSourceId, moduleCode, normalizedPath, log) {
131
149
  // Tokenize all cache paths for cross-environment portability
132
150
  // Uses aggressive tokenization to catch paths from ANY environment (build server, other pods)
133
151
  const portableCode = tokenizeAllVeryFrontPaths(moduleCode);
@@ -140,6 +158,17 @@ export function writeDistributedCache(distributedCache, transformCacheKey, modul
140
158
  error,
141
159
  });
142
160
  });
161
+ const moduleFileName = buildMdxEsmModuleFileName(hashString(normalizedPath + moduleCode));
162
+ const moduleRecoveryKey = buildMdxEsmModuleRecoveryCacheKey(projectId, contentSourceId, moduleFileName);
163
+ distributedCache
164
+ .set(moduleRecoveryKey, portableCode, TRANSFORM_CACHE_TTL_SECONDS)
165
+ .catch((error) => {
166
+ log.debug(`${LOG_PREFIX_MDX_LOADER} Distributed vfmod recovery set failed`, {
167
+ normalizedPath,
168
+ moduleRecoveryKey,
169
+ error,
170
+ });
171
+ });
143
172
  // Create and store bundle manifest companion key for atomic validation
144
173
  const bundlePaths = extractHttpBundlePaths(moduleCode);
145
174
  if (bundlePaths.length > 0) {
@@ -7,6 +7,10 @@
7
7
  * @module transforms/mdx/esm-module-loader/module-fetcher/framework-validator
8
8
  */
9
9
  import type { Logger } from "../../../../utils/logger/logger.js";
10
+ interface MdxRecoveryOptions {
11
+ projectId: string;
12
+ contentSourceId: string;
13
+ }
10
14
  /**
11
15
  * Check if cached code has file:// paths that are incompatible with this environment.
12
16
  * Returns true if the cached code should be invalidated (has paths from a different environment).
@@ -29,5 +33,6 @@ export declare function hasIncompatibleFrameworkPaths(code: string, log: Logger)
29
33
  * to vfmod modules that were created on a different pod/run with different hashes.
30
34
  */
31
35
  export declare function findMissingFileDependenciesInCode(code: string, log: Logger): Promise<string[]>;
32
- export declare function validateCachedModule(normalizedPath: string, cachedPath: string, cachedCode: string, log: Logger, pathCache: Map<string, string>, versionedKey: string): Promise<boolean>;
36
+ export declare function validateCachedModule(normalizedPath: string, cachedPath: string, cachedCode: string, log: Logger, pathCache: Map<string, string>, versionedKey: string, recoveryOptions?: MdxRecoveryOptions): Promise<boolean>;
37
+ export {};
33
38
  //# sourceMappingURL=framework-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"framework-validator.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAQjE;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqE/F;AAED;;;;;;GAMG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAYD,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAkDlB"}
1
+ {"version":3,"file":"framework-validator.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/framework-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AASjE,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqE/F;AAED;;;;;;GAMG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAYD,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,kBAAkB,GACnC,OAAO,CAAC,OAAO,CAAC,CAgFlB"}
@@ -12,6 +12,7 @@ import { getLocalFs } from "../cache/index.js";
12
12
  import { extractHttpBundlePaths } from "../../../../modules/react-loader/ssr-module-loader/http-bundle-helpers.js";
13
13
  import { ensureHttpBundlesExist } from "../../../esm/http-cache.js";
14
14
  import { MDX_ESM_MJS_FILE_URL_PATTERN_SOURCE } from "../cache-format.js";
15
+ import { ensureMdxModuleDependencies } from "./dependency-recovery.js";
15
16
  /**
16
17
  * Check if cached code has file:// paths that are incompatible with this environment.
17
18
  * Returns true if the cached code should be invalidated (has paths from a different environment).
@@ -133,7 +134,7 @@ function hasRawHttpImports(code) {
133
134
  const httpImportPattern = /from\s+["'](https?:\/\/[^"']+)["']/gi;
134
135
  return httpImportPattern.test(code);
135
136
  }
136
- export async function validateCachedModule(normalizedPath, cachedPath, cachedCode, log, pathCache, versionedKey) {
137
+ export async function validateCachedModule(normalizedPath, cachedPath, cachedCode, log, pathCache, versionedKey, recoveryOptions) {
137
138
  // Reject caches with raw HTTP URLs - all modules should use file:// paths.
138
139
  // This ensures consistency between compiled and non-compiled modes.
139
140
  if (hasRawHttpImports(cachedCode)) {
@@ -164,6 +165,35 @@ export async function validateCachedModule(normalizedPath, cachedPath, cachedCod
164
165
  return false;
165
166
  }
166
167
  }
168
+ if (recoveryOptions) {
169
+ const recovered = await ensureMdxModuleDependencies(cachedCode, {
170
+ ...recoveryOptions,
171
+ log,
172
+ });
173
+ if (recovered.recovered.length > 0) {
174
+ log.debug(`${LOG_PREFIX_MDX_LOADER} Recovered cached module vfmod dependencies`, {
175
+ normalizedPath,
176
+ cachedPath,
177
+ recovered: recovered.recovered.slice(0, 5),
178
+ });
179
+ }
180
+ }
181
+ const missingDeps = await findMissingFileDependenciesInCode(cachedCode, log);
182
+ if (missingDeps.length > 0) {
183
+ log.warn(`${LOG_PREFIX_MDX_LOADER} Cached module has missing vfmod dependencies`, {
184
+ normalizedPath,
185
+ cachedPath,
186
+ missingDeps: missingDeps.slice(0, 5),
187
+ });
188
+ pathCache.delete(versionedKey);
189
+ try {
190
+ await getLocalFs().remove(cachedPath);
191
+ }
192
+ catch (_) {
193
+ /* expected: cached file may already be removed */
194
+ }
195
+ return false;
196
+ }
167
197
  if (!(await hasIncompatibleFrameworkPaths(cachedCode, log)))
168
198
  return true;
169
199
  log.warn(`${LOG_PREFIX_MDX_LOADER} Cached module has incompatible framework paths`, {
@@ -37,6 +37,7 @@ export declare function fetchAndCacheModule(modulePath: string, context: ModuleF
37
37
  * Create a module fetcher context.
38
38
  */
39
39
  export declare function createModuleFetcherContext(esmCacheDir: string, adapter: RuntimeAdapter, projectDir: string, projectId: string, options?: {
40
+ contentSourceId?: string;
40
41
  isLocalProject?: boolean;
41
42
  projectSlug?: string;
42
43
  reactVersion?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAM5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAexD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS5E;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAOtD;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,SAAS,EAAE,MAAM;CAI9B;AAcD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,EAC7B,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwFxB;AAuQD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GACA,oBAAoB,CAUtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAM5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAexD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS5E;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAOtD;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,SAAS,EAAE,MAAM;CAI9B;AAcD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,EAC7B,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwFxB;AAqRD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GACA,oBAAoB,CAUtB"}
@@ -148,7 +148,7 @@ export async function fetchAndCacheModule(modulePath, context, parentModulePath,
148
148
  */
149
149
  async function doFetchAndCacheModule(normalizedPath, context, fetchAndCacheModuleFn, projectSlug, parentModulePath) {
150
150
  const log = getLog(context);
151
- const { esmCacheDir, adapter, projectDir, projectId } = context;
151
+ const { esmCacheDir, adapter, projectDir, projectId, contentSourceId } = context;
152
152
  const pathCache = await getModulePathCache(esmCacheDir);
153
153
  const versionedKey = getVersionedPathCacheKey(normalizedPath);
154
154
  const cachedPath = pathCache.get(versionedKey);
@@ -157,7 +157,12 @@ async function doFetchAndCacheModule(normalizedPath, context, fetchAndCacheModul
157
157
  const stat = await getLocalFs().stat(cachedPath);
158
158
  if (stat?.isFile) {
159
159
  const cachedCode = await getLocalFs().readTextFile(cachedPath);
160
- if (await validateCachedModule(normalizedPath, cachedPath, cachedCode, log, pathCache, versionedKey)) {
160
+ if (await validateCachedModule(normalizedPath, cachedPath, cachedCode, log, pathCache, versionedKey, context.contentSourceId
161
+ ? {
162
+ projectId: context.projectId,
163
+ contentSourceId: context.contentSourceId,
164
+ }
165
+ : undefined)) {
161
166
  recordModuleToSession(normalizedPath);
162
167
  return cachedPath;
163
168
  }
@@ -186,13 +191,17 @@ async function doFetchAndCacheModule(normalizedPath, context, fetchAndCacheModul
186
191
  }
187
192
  const { sourceCode, actualFilePath } = resolved;
188
193
  const contentHash = hashString(sourceCode);
189
- const transformCacheKey = getTransformCacheKey(projectId, normalizedPath, contentHash);
194
+ const transformCacheKey = contentSourceId
195
+ ? getTransformCacheKey(projectId, contentSourceId, normalizedPath, contentHash)
196
+ : null;
190
197
  let moduleCode = null;
191
198
  let needsDistributedCacheWrite = false;
192
199
  // Try distributed cache read with full validation.
193
200
  // Returns null only if no distributed backend is configured.
194
201
  // Otherwise returns { code, distributedCache } where code may be null (miss).
195
- const distResult = await readDistributedCache(transformCacheKey, normalizedPath, projectSlug, projectDir, context.reactVersion, log);
202
+ const distResult = transformCacheKey
203
+ ? await readDistributedCache(transformCacheKey, projectId, contentSourceId, normalizedPath, projectSlug, projectDir, context.reactVersion, log)
204
+ : null;
196
205
  if (distResult?.code) {
197
206
  moduleCode = distResult.code;
198
207
  }
@@ -299,8 +308,8 @@ async function doFetchAndCacheModule(normalizedPath, context, fetchAndCacheModul
299
308
  moduleCode = await processNestedImports(moduleCode, relativeResults, esmCacheDir, context.strictMissingModules ?? true, normalizedPath, projectSlug);
300
309
  // Write to distributed cache AFTER nested imports are resolved.
301
310
  // This ensures other pods get fully-resolved code without /_vf_modules/ paths.
302
- if (needsDistributedCacheWrite && distResult?.distributedCache) {
303
- writeDistributedCache(distResult.distributedCache, transformCacheKey, moduleCode, normalizedPath, log);
311
+ if (needsDistributedCacheWrite && distResult?.distributedCache && transformCacheKey) {
312
+ writeDistributedCache(distResult.distributedCache, transformCacheKey, projectId, contentSourceId, moduleCode, normalizedPath, log);
304
313
  }
305
314
  log.debug(`${LOG_PREFIX_MDX_LOADER} [fetchAndCacheModule] cacheModule START`, {
306
315
  projectSlug,
@@ -40,6 +40,7 @@ export interface ModuleFetcherContext {
40
40
  adapter: RuntimeAdapter;
41
41
  projectDir: string;
42
42
  projectId: string;
43
+ contentSourceId?: string;
43
44
  projectSlug?: string;
44
45
  isLocalProject?: boolean;
45
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/transforms/mdx/esm-module-loader/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACzD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAaD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACtD,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/transforms/mdx/esm-module-loader/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACzD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAaD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACtD,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "0.1.95";
1
+ export declare const VERSION = "0.1.97";
2
2
  export declare function normalizeVeryfrontVersion(version: string | undefined): string | undefined;
3
3
  export declare function resolveRuntimeVersion(options?: {
4
4
  veryfrontVersion?: string;
@@ -2,7 +2,7 @@ import denoConfig from "../../deno.js";
2
2
  import { getEnv } from "../platform/compat/process.js";
3
3
  // Keep in sync with deno.json version.
4
4
  // scripts/release.ts updates this constant during releases.
5
- export const VERSION = "0.1.95";
5
+ export const VERSION = "0.1.97";
6
6
  export function normalizeVeryfrontVersion(version) {
7
7
  if (!version)
8
8
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-executor.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/executor/workflow-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-executor.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/executor/workflow-executor.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import { INVALID_ARGUMENT, ORCHESTRATION_ERROR, RESOURCE_NOT_FOUND, TIMEOUT_ERRO
10
10
  import { generateId, parseDuration } from "../types.js";
11
11
  import { hasLockSupport } from "../backends/types.js";
12
12
  import { getCurrentRequestContext } from "../../platform/adapters/fs/veryfront/multi-project-adapter.js";
13
+ import { env as getProcessEnv } from "../../platform/compat/process.js";
14
+ import { mergeInjectedWorkflowEnv } from "../../jobs/runtime-env.js";
13
15
  import { DAGExecutor } from "./dag-executor.js";
14
16
  import { CheckpointManager } from "./checkpoint-manager.js";
15
17
  import { runWithWorkflowTenant, StepExecutor } from "./step-executor.js";
@@ -113,6 +115,7 @@ export class WorkflowExecutor {
113
115
  releaseId: requestCtx.releaseId ?? null,
114
116
  }
115
117
  : undefined;
118
+ const injectedProjectEnv = mergeInjectedWorkflowEnv(undefined, getProcessEnv());
116
119
  const run = {
117
120
  id: options?.runId ?? generateId("run"),
118
121
  workflowId,
@@ -121,7 +124,10 @@ export class WorkflowExecutor {
121
124
  input,
122
125
  nodeStates: {},
123
126
  currentNodes: [],
124
- context: { input },
127
+ context: {
128
+ input,
129
+ ...(injectedProjectEnv ? { env: injectedProjectEnv } : {}),
130
+ },
125
131
  checkpoints: [],
126
132
  pendingApprovals: [],
127
133
  createdAt: new Date(),
@@ -9,6 +9,7 @@ import type { LoopExecutionContext, NodeState, ParallelStrategy, PendingApproval
9
9
  */
10
10
  export interface WorkflowContext {
11
11
  input: unknown;
12
+ env?: Record<string, string>;
12
13
  _tenant?: CapturedTenantContext;
13
14
  [nodeId: string]: unknown;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/workflow/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/workflow/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-job-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/dynamic-job-entrypoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC;IAEzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC,CAiKjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iCAAiC;IAChD,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAchC"}
1
+ {"version":3,"file":"dynamic-job-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/dynamic-job-entrypoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC;IAEzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC,CAiLjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iCAAiC;IAChD,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAchC"}
@@ -26,9 +26,11 @@
26
26
  */
27
27
  import { logger as baseLogger } from "../../utils/index.js";
28
28
  import { getEnv } from "../../platform/compat/process.js";
29
+ import { env as getProcessEnv } from "../../platform/compat/process.js";
29
30
  import { runWithRequestContext } from "../../platform/adapters/fs/veryfront/multi-project-adapter.js";
30
31
  import { enhanceAdapterWithFS } from "../../platform/adapters/fs/integration.js";
31
32
  import { denoAdapter } from "../../platform/adapters/runtime/deno/index.js";
33
+ import { mergeInjectedWorkflowEnv } from "../../jobs/runtime-env.js";
32
34
  import { discoverWorkflows } from "../discovery/index.js";
33
35
  import { WorkflowExecutor } from "../executor/workflow-executor.js";
34
36
  const logger = baseLogger.component("dynamic-job");
@@ -83,11 +85,26 @@ export async function runDynamicWorkflowJob(config) {
83
85
  }
84
86
  try {
85
87
  // Fetch the workflow run
86
- const run = await backend.getRun(runId);
88
+ let run = await backend.getRun(runId);
87
89
  if (!run) {
88
90
  logger.error(`Workflow run not found: ${runId}`);
89
91
  return DYNAMIC_EXIT_CODES.NOT_FOUND;
90
92
  }
93
+ const injectedEnv = mergeInjectedWorkflowEnv(run.context.env, getProcessEnv());
94
+ if (injectedEnv) {
95
+ const currentEnv = run.context.env;
96
+ const currentSerialized = currentEnv ? JSON.stringify(currentEnv) : "";
97
+ const nextSerialized = JSON.stringify(injectedEnv);
98
+ if (currentSerialized !== nextSerialized) {
99
+ await backend.updateRun(runId, {
100
+ context: {
101
+ ...run.context,
102
+ env: injectedEnv,
103
+ },
104
+ });
105
+ run = (await backend.getRun(runId)) ?? run;
106
+ }
107
+ }
91
108
  // Get tenant context (from env or from stored run)
92
109
  const tenant = getTenantFromEnv() ?? run._tenant;
93
110
  if (!tenant) {
@@ -1 +1 @@
1
- {"version":3,"file":"job-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/job-entrypoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAyB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAI7E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC;IAEzB,wBAAwB;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAsBX;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmGjF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,0BAA0B;IACzC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAErD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CA0BhC"}
1
+ {"version":3,"file":"job-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/job-entrypoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAyB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAI7E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC;IAEzB,wBAAwB;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAsBX;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmHjF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,0BAA0B;IACzC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAErD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CA0BhC"}
@@ -21,7 +21,9 @@
21
21
  */
22
22
  import { logger as baseLogger } from "../../utils/index.js";
23
23
  import { getEnv } from "../../platform/compat/process.js";
24
+ import { env as getProcessEnv } from "../../platform/compat/process.js";
24
25
  import { runWithRequestContext } from "../../platform/adapters/fs/veryfront/multi-project-adapter.js";
26
+ import { mergeInjectedWorkflowEnv } from "../../jobs/runtime-env.js";
25
27
  const logger = baseLogger.component("workflow-job");
26
28
  /**
27
29
  * Exit codes for the job
@@ -89,11 +91,26 @@ export async function runWorkflowJob(config) {
89
91
  }
90
92
  try {
91
93
  // Fetch the workflow run
92
- const run = await backend.getRun(runId);
94
+ let run = await backend.getRun(runId);
93
95
  if (!run) {
94
96
  logger.error(`Workflow run not found: ${runId}`);
95
97
  return EXIT_CODES.NOT_FOUND;
96
98
  }
99
+ const injectedEnv = mergeInjectedWorkflowEnv(run.context.env, getProcessEnv());
100
+ if (injectedEnv) {
101
+ const currentEnv = run.context.env;
102
+ const currentSerialized = currentEnv ? JSON.stringify(currentEnv) : "";
103
+ const nextSerialized = JSON.stringify(injectedEnv);
104
+ if (currentSerialized !== nextSerialized) {
105
+ await backend.updateRun(runId, {
106
+ context: {
107
+ ...run.context,
108
+ env: injectedEnv,
109
+ },
110
+ });
111
+ run = (await backend.getRun(runId)) ?? run;
112
+ }
113
+ }
97
114
  // Get tenant context (from env or from stored run)
98
115
  const tenant = getTenantFromEnv() ?? run._tenant;
99
116
  if (debug) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.95",
3
+ "version": "0.1.97",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",
package/src/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.95",
3
+ "version": "0.1.97",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [