veryfront 0.1.829 → 0.1.830
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/platform/adapters/fs/veryfront/multi-project-adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/multi-project-adapter.js +5 -0
- package/esm/src/server/shared/renderer/adapter.d.ts.map +1 -1
- package/esm/src/server/shared/renderer/adapter.js +49 -17
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-project-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/multi-project-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ3D,qBAAa,qBAAsB,YAAW,SAAS;IACrD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,cAAc,CAAC,CAAqB;gBAEhC,MAAM,EAAE,eAAe;IAanC,cAAc,CAAC,CAAC,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,GACA,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-project-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/multi-project-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ3D,qBAAa,qBAAsB,YAAW,SAAS;IACrD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,cAAc,CAAC,CAAqB;gBAEhC,MAAM,EAAE,eAAe;IAanC,cAAc,CAAC,CAAC,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,GACA,OAAO,CAAC,CAAC,CAAC;IAoDb,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ3D,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;YAIxD,UAAU;IAgDxB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAKtD;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC;IAOrD,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D,OAAO,IAAI,IAAI;IAOf,eAAe,IAAI,UAAU,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAI1D,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC;IAUvF,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUpE,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAoB9E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,qBAAqB,CAExF"}
|
|
@@ -52,6 +52,11 @@ export class MultiProjectFSAdapter {
|
|
|
52
52
|
projectSlug,
|
|
53
53
|
duration: `${(performance.now() - startTime).toFixed(2)}ms`,
|
|
54
54
|
});
|
|
55
|
+
// Release asset manifest fetchers are registered by the concrete adapter.
|
|
56
|
+
// Materialize it before renderers can ask for the manifest on a first hit.
|
|
57
|
+
if (productionMode && releaseId) {
|
|
58
|
+
await this.getAdapter();
|
|
59
|
+
}
|
|
55
60
|
const result = await runWithCacheBatching(fn);
|
|
56
61
|
logger.debug("runWithContext callback complete", {
|
|
57
62
|
projectSlug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/shared/renderer/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;4BAQ4B;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAOL,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/shared/renderer/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;4BAQ4B;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAOL,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAczD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClF,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,IAAI,IAAI,CAAC;IACtB,sBAAsB,IAAI;QACxB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1E,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAChF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAC/B,KAAK,IAAI,IAAI,CAAC;KACf,CAAC;IACF,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,UAAU,CACR,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,aAAa,IAAI,OAAO,CAAC;IACzB,GAAG,IAAI,QAAQ,CAAC;IAChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AA0CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,CAAC,EAAE,mBAAmB,GAChC,IAAI,CAgBN;AAoQD,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAiCzF;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAW5D"}
|
|
@@ -14,6 +14,8 @@ import { buildEnrichedContext } from "../../context/enriched-context.js";
|
|
|
14
14
|
import { createRenderContextFromEnriched, destroyRenderer as destroySharedRenderer, getRenderer, initializeRenderer, isRendererInitialized, } from "../../../rendering/renderer.js";
|
|
15
15
|
import { APICacheStore } from "../../../rendering/cache/stores/api-store.js";
|
|
16
16
|
import { computeContentSourceId } from "../../../cache/keys.js";
|
|
17
|
+
import { isExtendedFSAdapter } from "../../../platform/adapters/fs/wrapper.js";
|
|
18
|
+
import { getHostEnv } from "../../../platform/compat/process.js";
|
|
17
19
|
const logger = rendererLogger.component("renderer-adapter");
|
|
18
20
|
/** TTL for the API-backed distributed render cache (1 hour) */
|
|
19
21
|
const RENDER_CACHE_TTL_SECONDS = 3_600;
|
|
@@ -205,21 +207,49 @@ async function createContextFromHandler(ctx) {
|
|
|
205
207
|
});
|
|
206
208
|
return renderContext;
|
|
207
209
|
}
|
|
210
|
+
function shouldUseMultiProjectContext(ctx) {
|
|
211
|
+
if (!ctx.projectSlug)
|
|
212
|
+
return false;
|
|
213
|
+
const fs = ctx.adapter?.fs;
|
|
214
|
+
if (!fs)
|
|
215
|
+
return false;
|
|
216
|
+
return isExtendedFSAdapter(fs) && fs.isMultiProjectMode();
|
|
217
|
+
}
|
|
218
|
+
function resolveContextBranch(ctx) {
|
|
219
|
+
return ctx.requestContext?.branch ?? ctx.parsedDomain?.branch ?? null;
|
|
220
|
+
}
|
|
221
|
+
function runWithProjectContext(ctx, fn) {
|
|
222
|
+
if (!shouldUseMultiProjectContext(ctx))
|
|
223
|
+
return fn();
|
|
224
|
+
const fs = ctx.adapter?.fs;
|
|
225
|
+
if (!fs || !isExtendedFSAdapter(fs))
|
|
226
|
+
return fn();
|
|
227
|
+
const environment = resolveEnvironment(ctx);
|
|
228
|
+
const token = ctx.proxyToken || getHostEnv("VERYFRONT_API_TOKEN") || "";
|
|
229
|
+
return fs.runWithContext(ctx.projectSlug, token, fn, ctx.projectId, {
|
|
230
|
+
productionMode: environment === "production",
|
|
231
|
+
releaseId: ctx.releaseId,
|
|
232
|
+
branch: resolveContextBranch(ctx),
|
|
233
|
+
environmentName: ctx.environmentName,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
208
236
|
class RendererAdapterImpl {
|
|
209
237
|
renderer;
|
|
210
238
|
ctx;
|
|
211
|
-
|
|
239
|
+
handlerCtx;
|
|
240
|
+
constructor(renderer, ctx, handlerCtx) {
|
|
212
241
|
this.renderer = renderer;
|
|
213
242
|
this.ctx = ctx;
|
|
243
|
+
this.handlerCtx = handlerCtx;
|
|
214
244
|
}
|
|
215
245
|
renderPage(slug, options) {
|
|
216
|
-
return this.renderer.renderPage(slug, this.ctx, options);
|
|
246
|
+
return runWithProjectContext(this.handlerCtx, () => this.renderer.renderPage(slug, this.ctx, options));
|
|
217
247
|
}
|
|
218
248
|
resolvePageData(slug, options) {
|
|
219
|
-
return this.renderer.resolvePageData(slug, this.ctx, options);
|
|
249
|
+
return runWithProjectContext(this.handlerCtx, () => this.renderer.resolvePageData(slug, this.ctx, options));
|
|
220
250
|
}
|
|
221
251
|
getAllPages() {
|
|
222
|
-
return this.renderer.getAllPages(this.ctx);
|
|
252
|
+
return runWithProjectContext(this.handlerCtx, () => this.renderer.getAllPages(this.ctx));
|
|
223
253
|
}
|
|
224
254
|
clearCache(slug) {
|
|
225
255
|
this.renderer.clearCache(this.ctx, slug).catch((error) => {
|
|
@@ -241,18 +271,20 @@ class RendererAdapterImpl {
|
|
|
241
271
|
}
|
|
242
272
|
async initializeComponents() { }
|
|
243
273
|
async compileMDX(content, frontmatter, filePath) {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
274
|
+
return await runWithProjectContext(this.handlerCtx, async () => {
|
|
275
|
+
const { MDXCompiler } = await import("../../../rendering/orchestrator/mdx.js");
|
|
276
|
+
const { MDXCacheAdapter } = await import("../../../transforms/mdx/index.js");
|
|
277
|
+
const mdxCacheAdapter = new MDXCacheAdapter({
|
|
278
|
+
config: this.ctx.config,
|
|
279
|
+
mode: this.ctx.mode,
|
|
280
|
+
});
|
|
281
|
+
const compiler = new MDXCompiler({
|
|
282
|
+
projectDir: this.ctx.projectDir,
|
|
283
|
+
mode: this.ctx.mode,
|
|
284
|
+
mdxCacheAdapter,
|
|
285
|
+
});
|
|
286
|
+
return compiler.compileMDX(content, frontmatter, filePath);
|
|
254
287
|
});
|
|
255
|
-
return compiler.compileMDX(content, frontmatter, filePath);
|
|
256
288
|
}
|
|
257
289
|
async destroy() { }
|
|
258
290
|
}
|
|
@@ -273,7 +305,7 @@ export async function getRendererForProject(ctx) {
|
|
|
273
305
|
});
|
|
274
306
|
const contextStartTime = performance.now();
|
|
275
307
|
logger.debug("createContextFromHandler START", { projectSlug });
|
|
276
|
-
const renderCtx = await createContextFromHandler(ctx);
|
|
308
|
+
const renderCtx = await runWithProjectContext(ctx, () => createContextFromHandler(ctx));
|
|
277
309
|
logger.debug("createContextFromHandler DONE", {
|
|
278
310
|
projectSlug,
|
|
279
311
|
duration: `${(performance.now() - contextStartTime).toFixed(2)}ms`,
|
|
@@ -283,7 +315,7 @@ export async function getRendererForProject(ctx) {
|
|
|
283
315
|
projectSlug: renderCtx.projectSlug,
|
|
284
316
|
duration: `${(performance.now() - startTime).toFixed(2)}ms`,
|
|
285
317
|
});
|
|
286
|
-
return new RendererAdapterImpl(renderer, renderCtx);
|
|
318
|
+
return new RendererAdapterImpl(renderer, renderCtx, ctx);
|
|
287
319
|
}
|
|
288
320
|
export async function destroyRendererAdapter() {
|
|
289
321
|
const pendingPromise = rendererInitState?.initializer === activeInitializer
|