veryfront 0.1.764 → 0.1.765
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/cache/keys/builders/render.d.ts +8 -1
- package/esm/src/cache/keys/builders/render.d.ts.map +1 -1
- package/esm/src/cache/keys/builders/render.js +10 -2
- package/esm/src/html/html-shell-generator.d.ts.map +1 -1
- package/esm/src/html/html-shell-generator.js +24 -4
- package/esm/src/html/schemas/html.schema.d.ts +2 -0
- package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
- package/esm/src/html/schemas/html.schema.js +1 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/adapter.js +31 -0
- package/esm/src/platform/adapters/veryfront-api-client/client.d.ts +31 -0
- package/esm/src/platform/adapters/veryfront-api-client/client.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/client.js +21 -0
- package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts +6 -1
- package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/operations.js +59 -1
- package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts +22 -0
- package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.js +39 -0
- package/esm/src/platform/adapters/veryfront-api-client/schemas/index.d.ts +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/schemas/index.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/schemas/index.js +1 -1
- package/esm/src/proxy/asset-handler.d.ts +30 -0
- package/esm/src/proxy/asset-handler.d.ts.map +1 -0
- package/esm/src/proxy/asset-handler.js +108 -0
- package/esm/src/proxy/main.js +4 -0
- package/esm/src/release-assets/build-executor.d.ts +89 -0
- package/esm/src/release-assets/build-executor.d.ts.map +1 -0
- package/esm/src/release-assets/build-executor.js +405 -0
- package/esm/src/release-assets/constants.d.ts +35 -0
- package/esm/src/release-assets/constants.d.ts.map +1 -0
- package/esm/src/release-assets/constants.js +50 -0
- package/esm/src/release-assets/hash.d.ts +14 -0
- package/esm/src/release-assets/hash.d.ts.map +1 -0
- package/esm/src/release-assets/hash.js +22 -0
- package/esm/src/release-assets/html-consumption.d.ts +31 -0
- package/esm/src/release-assets/html-consumption.d.ts.map +1 -0
- package/esm/src/release-assets/html-consumption.js +64 -0
- package/esm/src/release-assets/manifest-cache.d.ts +70 -0
- package/esm/src/release-assets/manifest-cache.d.ts.map +1 -0
- package/esm/src/release-assets/manifest-cache.js +178 -0
- package/esm/src/release-assets/manifest-schema.d.ts +70 -0
- package/esm/src/release-assets/manifest-schema.d.ts.map +1 -0
- package/esm/src/release-assets/manifest-schema.js +126 -0
- package/esm/src/rendering/context/render-context.d.ts.map +1 -1
- package/esm/src/rendering/context/render-context.js +3 -1
- package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/html.js +16 -0
- package/esm/src/rendering/orchestrator/types.d.ts +2 -0
- package/esm/src/rendering/orchestrator/types.d.ts.map +1 -1
- package/esm/src/server/context/enriched-context.d.ts.map +1 -1
- package/esm/src/server/context/enriched-context.js +2 -1
- package/esm/src/server/handlers/request/project-run-execute.handler.d.ts +5 -0
- package/esm/src/server/handlers/request/project-run-execute.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/project-run-execute.handler.js +86 -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
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release Asset Manifest — v1 body schema, types, and validator.
|
|
3
|
+
*
|
|
4
|
+
* The manifest body is content-addressed metadata describing the transformed
|
|
5
|
+
* browser modules and compiled CSS for a release, plus the per-route closure
|
|
6
|
+
* used to drive preload hints and asset URL rewriting.
|
|
7
|
+
*
|
|
8
|
+
* Validation follows the repo's `defineSchema` convention (zod via the
|
|
9
|
+
* `SchemaValidator` extension contract). The schema is materialized lazily so
|
|
10
|
+
* core modules can import these types without pulling in the validator.
|
|
11
|
+
*
|
|
12
|
+
* @module release-assets/manifest-schema
|
|
13
|
+
*/
|
|
14
|
+
import { defineSchema } from "../schemas/index.js";
|
|
15
|
+
import { RELEASE_ASSET_MANIFEST_SCHEMA_VERSION } from "./constants.js";
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Schema fragments
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
const assetEntryShape = (v) => ({
|
|
20
|
+
contentHash: v.string(),
|
|
21
|
+
size: v.number(),
|
|
22
|
+
contentType: v.string(),
|
|
23
|
+
});
|
|
24
|
+
const cssEntryShape = (v) => ({
|
|
25
|
+
contentHash: v.string(),
|
|
26
|
+
size: v.number(),
|
|
27
|
+
contentType: v.string(),
|
|
28
|
+
styleProfileHash: v.string().nullable(),
|
|
29
|
+
});
|
|
30
|
+
const routeEntryShape = (v) => ({
|
|
31
|
+
modules: v.array(v.string()),
|
|
32
|
+
css: v.array(v.string()),
|
|
33
|
+
});
|
|
34
|
+
const fallbackShape = (v) => ({
|
|
35
|
+
mode: v.literal("jit"),
|
|
36
|
+
gaps: v.array(v.string()),
|
|
37
|
+
});
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Exported schema getter
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
export const getReleaseAssetManifestSchema = defineSchema((v) => v.object({
|
|
42
|
+
schemaVersion: v.literal(RELEASE_ASSET_MANIFEST_SCHEMA_VERSION),
|
|
43
|
+
projectId: v.string(),
|
|
44
|
+
releaseId: v.string(),
|
|
45
|
+
releaseVersion: v.number(),
|
|
46
|
+
manifestVersion: v.number(),
|
|
47
|
+
builderVersion: v.string(),
|
|
48
|
+
sourceContentHash: v.string(),
|
|
49
|
+
createdAt: v.string(),
|
|
50
|
+
assetBasePath: v.string(),
|
|
51
|
+
modules: v.record(v.string(), v.object(assetEntryShape(v))),
|
|
52
|
+
css: v.array(v.object(cssEntryShape(v))),
|
|
53
|
+
routes: v.record(v.string(), v.object(routeEntryShape(v))),
|
|
54
|
+
// `dependencies` is reserved for S7 vendoring — always {} in v1, but the
|
|
55
|
+
// validator accepts entries shaped like `modules` values keyed by specifier.
|
|
56
|
+
dependencies: v.record(v.string(), v.object(assetEntryShape(v))),
|
|
57
|
+
fallback: v.object(fallbackShape(v)),
|
|
58
|
+
}));
|
|
59
|
+
/**
|
|
60
|
+
* Hand-rolled structural validator.
|
|
61
|
+
*
|
|
62
|
+
* Used on consumption paths (HTML/proxy) where the `SchemaValidator` extension
|
|
63
|
+
* may not be registered. Returns the typed manifest on success, or null. Does
|
|
64
|
+
* not throw — consumption is always best-effort with a JIT fallback.
|
|
65
|
+
*/
|
|
66
|
+
export function parseReleaseAssetManifest(value) {
|
|
67
|
+
if (!isRecord(value))
|
|
68
|
+
return null;
|
|
69
|
+
if (value.schemaVersion !== RELEASE_ASSET_MANIFEST_SCHEMA_VERSION)
|
|
70
|
+
return null;
|
|
71
|
+
if (typeof value.projectId !== "string" ||
|
|
72
|
+
typeof value.releaseId !== "string" ||
|
|
73
|
+
typeof value.releaseVersion !== "number" ||
|
|
74
|
+
typeof value.manifestVersion !== "number" ||
|
|
75
|
+
typeof value.builderVersion !== "string" ||
|
|
76
|
+
typeof value.sourceContentHash !== "string" ||
|
|
77
|
+
typeof value.createdAt !== "string" ||
|
|
78
|
+
typeof value.assetBasePath !== "string") {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
if (!isAssetEntryRecord(value.modules))
|
|
82
|
+
return null;
|
|
83
|
+
if (!isAssetEntryRecord(value.dependencies))
|
|
84
|
+
return null;
|
|
85
|
+
if (!Array.isArray(value.css) || !value.css.every(isCssEntry))
|
|
86
|
+
return null;
|
|
87
|
+
if (!isRouteRecord(value.routes))
|
|
88
|
+
return null;
|
|
89
|
+
if (!isFallback(value.fallback))
|
|
90
|
+
return null;
|
|
91
|
+
return value;
|
|
92
|
+
}
|
|
93
|
+
function isRecord(value) {
|
|
94
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
95
|
+
}
|
|
96
|
+
function isAssetEntry(value) {
|
|
97
|
+
return (isRecord(value) &&
|
|
98
|
+
typeof value.contentHash === "string" &&
|
|
99
|
+
typeof value.size === "number" &&
|
|
100
|
+
typeof value.contentType === "string");
|
|
101
|
+
}
|
|
102
|
+
function isAssetEntryRecord(value) {
|
|
103
|
+
return isRecord(value) && Object.values(value).every(isAssetEntry);
|
|
104
|
+
}
|
|
105
|
+
function isCssEntry(value) {
|
|
106
|
+
return (isRecord(value) &&
|
|
107
|
+
typeof value.contentHash === "string" &&
|
|
108
|
+
typeof value.size === "number" &&
|
|
109
|
+
typeof value.contentType === "string" &&
|
|
110
|
+
(value.styleProfileHash === null || typeof value.styleProfileHash === "string"));
|
|
111
|
+
}
|
|
112
|
+
function isRouteRecord(value) {
|
|
113
|
+
if (!isRecord(value))
|
|
114
|
+
return false;
|
|
115
|
+
return Object.values(value).every((entry) => isRecord(entry) &&
|
|
116
|
+
Array.isArray(entry.modules) &&
|
|
117
|
+
entry.modules.every((m) => typeof m === "string") &&
|
|
118
|
+
Array.isArray(entry.css) &&
|
|
119
|
+
entry.css.every((c) => typeof c === "string"));
|
|
120
|
+
}
|
|
121
|
+
function isFallback(value) {
|
|
122
|
+
return (isRecord(value) &&
|
|
123
|
+
value.mode === "jit" &&
|
|
124
|
+
Array.isArray(value.gaps) &&
|
|
125
|
+
value.gaps.every((g) => typeof g === "string"));
|
|
126
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-context.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/context/render-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,EAIL,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"render-context.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/context/render-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,EAIL,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,2GAA2G;IAC3G,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE,0BAA0B,GACnC,aAAa,CAkDf;AAoBD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,0BAA0B,GACnC,aAAa,CA8Bf;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,eAAO,MAAM,aAAa,4BAAsB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAExE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { INVALID_ARGUMENT } from "../../errors/error-registry.js";
|
|
2
2
|
import { buildRenderCacheKey, buildRenderCachePrefix, computeContentSourceId, parseRenderCacheKey, } from "../../cache/keys.js";
|
|
3
|
+
import { getReadyManifestForRender } from "../../release-assets/manifest-cache.js";
|
|
3
4
|
export function createRenderContext(ctx, options) {
|
|
4
5
|
if (ctx.enriched)
|
|
5
6
|
return createRenderContextFromEnriched(ctx.enriched, options);
|
|
@@ -18,7 +19,8 @@ export function createRenderContext(ctx, options) {
|
|
|
18
19
|
const isLocal = !!ctx.isLocalProject;
|
|
19
20
|
const contentSourceId = computeContentSourceId(isLocal, environment, branch, ctx.releaseId);
|
|
20
21
|
const releaseKey = getReleaseKey(isLocal, environment, branch, ctx.releaseId);
|
|
21
|
-
const
|
|
22
|
+
const readyManifest = getReadyManifestForRender(ctx.releaseId);
|
|
23
|
+
const cachePrefix = buildRenderCachePrefix(projectId, environment, releaseKey, readyManifest?.manifestVersion);
|
|
22
24
|
return {
|
|
23
25
|
projectId,
|
|
24
26
|
projectSlug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/html.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/html.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AA4ElF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIjC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BjE,kBAAkB,CACtB,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAC3C,OAAO,CAAC,cAAc,CAAC;YAqEZ,sBAAsB;YAqDtB,4BAA4B;YAiB5B,wBAAwB;YAmBxB,gBAAgB;YAyBhB,kBAAkB;IAwDhC,OAAO,CAAC,cAAc;YAQR,eAAe;YAaf,gBAAgB;IAiF9B;;;;OAIG;YACW,gBAAgB;CAc/B"}
|
|
@@ -14,6 +14,21 @@ import { extractProjectClassesForRoute, startPreparedCSSWarmup, startProjectCSSP
|
|
|
14
14
|
import { buildHeadElements as buildCollectedHeadElements, mergeFrontmatter as mergeCollectedFrontmatter, } from "./html-head.js";
|
|
15
15
|
import { mergeImportedCSS as mergeImportedProjectCss } from "./html-imported-css.js";
|
|
16
16
|
const logger = rendererLogger.component("html-generator");
|
|
17
|
+
/**
|
|
18
|
+
* Resolve the release ID for manifest consumption from render options.
|
|
19
|
+
*
|
|
20
|
+
* Prefers an explicit `releaseId`, then derives it from a production
|
|
21
|
+
* `contentSourceId` of the form `release-<id>`. Returns undefined for
|
|
22
|
+
* preview/local renders so manifest consumption stays inert there.
|
|
23
|
+
*/
|
|
24
|
+
function resolveReleaseId(options) {
|
|
25
|
+
if (options?.releaseId)
|
|
26
|
+
return options.releaseId;
|
|
27
|
+
const source = options?.contentSourceId;
|
|
28
|
+
if (source && source.startsWith("release-"))
|
|
29
|
+
return source.slice("release-".length);
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
17
32
|
function applyExplicitThemeToDocument(html, colorScheme, enabled) {
|
|
18
33
|
if (!enabled || !colorScheme)
|
|
19
34
|
return html;
|
|
@@ -279,6 +294,7 @@ export class HTMLGenerator {
|
|
|
279
294
|
studioEmbed: context.options?.studioEmbed,
|
|
280
295
|
projectId: context.options?.projectId,
|
|
281
296
|
projectSlug: context.options?.projectSlug,
|
|
297
|
+
releaseId: resolveReleaseId(context.options),
|
|
282
298
|
pageId: context.options?.pageId,
|
|
283
299
|
sourceHash,
|
|
284
300
|
colorScheme: context.options?.colorScheme,
|
|
@@ -45,6 +45,8 @@ export interface RenderOptions {
|
|
|
45
45
|
projectSlug?: string;
|
|
46
46
|
/** Content source identifier for cache isolation (branch name or release ID) */
|
|
47
47
|
contentSourceId?: string;
|
|
48
|
+
/** Release ID for production renders (drives release asset manifest consumption) */
|
|
49
|
+
releaseId?: string;
|
|
48
50
|
/** Skip cache check in pipeline (cache already checked by Renderer) */
|
|
49
51
|
skipCacheCheck?: boolean;
|
|
50
52
|
/** Skip cache persistence (used for prefetch/aux renders like CSS generation) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enriched-context.d.ts","sourceRoot":"","sources":["../../../../src/src/server/context/enriched-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"enriched-context.d.ts","sourceRoot":"","sources":["../../../../src/src/server/context/enriched-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEhG,YAAY,EACV,2BAA2B,EAC3B,eAAe,EACf,WAAW,GACZ,MAAM,6BAA6B,CAAC;AAErC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,eAAe,CAmD1F;AAMD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAK/E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { buildRenderCachePrefix } from "../../cache/keys.js";
|
|
2
2
|
import { INVALID_ARGUMENT } from "../../errors/error-registry.js";
|
|
3
|
+
import { getReadyManifestForRender } from "../../release-assets/manifest-cache.js";
|
|
3
4
|
export function buildEnrichedContext(options) {
|
|
4
5
|
if (!options.contentSourceId) {
|
|
5
6
|
throw INVALID_ARGUMENT.create({ detail: `Missing contentSourceId for ${options.projectSlug}` });
|
|
@@ -35,7 +36,7 @@ export function buildEnrichedContext(options) {
|
|
|
35
36
|
projectData: options.projectData,
|
|
36
37
|
adapter: options.adapter,
|
|
37
38
|
config: options.config,
|
|
38
|
-
cachePrefix: buildRenderCachePrefix(options.projectId, options.environment, releaseKey),
|
|
39
|
+
cachePrefix: buildRenderCachePrefix(options.projectId, options.environment, releaseKey, getReadyManifestForRender(options.releaseId)?.manifestVersion),
|
|
39
40
|
moduleServerUrl: options.moduleServerUrl,
|
|
40
41
|
nonce: options.nonce,
|
|
41
42
|
debug: options.debug,
|
|
@@ -63,6 +63,11 @@ export interface ProjectRunExecuteHandlerDeps {
|
|
|
63
63
|
ctx: HandlerContext;
|
|
64
64
|
req: Request;
|
|
65
65
|
}): Promise<ProjectRunExecuteResponse>;
|
|
66
|
+
executeReleaseAssetBuild(input: {
|
|
67
|
+
request: ProjectRunExecuteRequest;
|
|
68
|
+
ctx: HandlerContext;
|
|
69
|
+
req: Request;
|
|
70
|
+
}): Promise<ProjectRunExecuteResponse>;
|
|
66
71
|
sleep(ms: number): Promise<void>;
|
|
67
72
|
now(): number;
|
|
68
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-run-execute.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/project-run-execute.handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-run-execute.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/project-run-execute.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -404,6 +404,86 @@ async function executeKnowledgeIngestRun(input) {
|
|
|
404
404
|
await dntShim.Deno.remove(outputDir, { recursive: true }).catch(() => undefined);
|
|
405
405
|
}
|
|
406
406
|
}
|
|
407
|
+
function getNumberConfig(config, keys) {
|
|
408
|
+
for (const key of keys) {
|
|
409
|
+
const value = config[key];
|
|
410
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
411
|
+
return value;
|
|
412
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
413
|
+
const parsed = Number.parseInt(value, 10);
|
|
414
|
+
if (Number.isFinite(parsed))
|
|
415
|
+
return parsed;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return undefined;
|
|
419
|
+
}
|
|
420
|
+
async function executeReleaseAssetBuildRun(input) {
|
|
421
|
+
const startedAt = Date.now();
|
|
422
|
+
const config = input.request.config ?? {};
|
|
423
|
+
const projectReference = input.ctx.projectSlug ?? input.request.projectId;
|
|
424
|
+
const releaseId = getStringConfig(config, ["release_id", "releaseId"]);
|
|
425
|
+
const releaseVersion = getNumberConfig(config, ["release_version", "releaseVersion"]);
|
|
426
|
+
const tempDir = await dntShim.Deno.makeTempDir({ prefix: "veryfront-release-assets-" });
|
|
427
|
+
try {
|
|
428
|
+
if (!releaseId || releaseVersion === undefined) {
|
|
429
|
+
throw new Error("Missing release_id or release_version for release asset build");
|
|
430
|
+
}
|
|
431
|
+
const { VeryfrontApiClient } = await import("../../../platform/adapters/veryfront-api-client/client.js");
|
|
432
|
+
const { resolveProjectReactVersion } = await import("../../../transforms/esm/package-registry.js");
|
|
433
|
+
const { runReleaseAssetBuild } = await import("../../../release-assets/build-executor.js");
|
|
434
|
+
const apiBaseUrl = getEnvironmentConfig().apiBaseUrl;
|
|
435
|
+
const token = input.req.headers.get("x-token") ?? input.ctx.proxyToken ??
|
|
436
|
+
input.ctx.requestContext?.token ?? "";
|
|
437
|
+
if (!token)
|
|
438
|
+
throw new Error("Missing project runtime API token");
|
|
439
|
+
const apiClient = new VeryfrontApiClient({
|
|
440
|
+
apiBaseUrl,
|
|
441
|
+
apiToken: token,
|
|
442
|
+
projectSlug: projectReference,
|
|
443
|
+
projectId: input.ctx.projectId,
|
|
444
|
+
});
|
|
445
|
+
apiClient.setProjectSlug(projectReference);
|
|
446
|
+
const reactVersion = await resolveProjectReactVersion({
|
|
447
|
+
projectDir: input.ctx.projectDir,
|
|
448
|
+
config: input.ctx.config,
|
|
449
|
+
});
|
|
450
|
+
const releaseVersionRef = releaseId;
|
|
451
|
+
const result = await runReleaseAssetBuild({
|
|
452
|
+
projectReference,
|
|
453
|
+
projectId: input.ctx.projectId ?? input.request.projectId,
|
|
454
|
+
releaseId,
|
|
455
|
+
releaseVersion,
|
|
456
|
+
releaseVersionRef,
|
|
457
|
+
reactVersion,
|
|
458
|
+
adapter: input.ctx.adapter,
|
|
459
|
+
client: {
|
|
460
|
+
beginReleaseAssetManifestBuild: (version) => apiClient.beginReleaseAssetManifestBuild(version),
|
|
461
|
+
listAllReleaseFiles: (version) => apiClient.listAllReleaseFiles(version),
|
|
462
|
+
uploadReleaseAsset: (version, hash, contentType, bytes) => apiClient.uploadReleaseAsset(version, hash, contentType, bytes),
|
|
463
|
+
putReleaseAssetManifest: (version, manifest) => apiClient.putReleaseAssetManifest(version, manifest),
|
|
464
|
+
reportReleaseAssetManifestState: (version, state, error) => apiClient.reportReleaseAssetManifestState(version, state, error),
|
|
465
|
+
},
|
|
466
|
+
}, tempDir);
|
|
467
|
+
return {
|
|
468
|
+
success: result.success,
|
|
469
|
+
result,
|
|
470
|
+
error: result.error ?? null,
|
|
471
|
+
logs: null,
|
|
472
|
+
duration_ms: Date.now() - startedAt,
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
catch (error) {
|
|
476
|
+
return {
|
|
477
|
+
success: false,
|
|
478
|
+
error: errorMessage(error),
|
|
479
|
+
logs: null,
|
|
480
|
+
duration_ms: Date.now() - startedAt,
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
finally {
|
|
484
|
+
await dntShim.Deno.remove(tempDir, { recursive: true }).catch(() => undefined);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
407
487
|
const defaultDeps = {
|
|
408
488
|
findTaskById,
|
|
409
489
|
runTask,
|
|
@@ -411,6 +491,7 @@ const defaultDeps = {
|
|
|
411
491
|
createWorkflowClient: createRuntimeWorkflowClient,
|
|
412
492
|
ensureProjectDiscovery,
|
|
413
493
|
executeKnowledgeIngest: executeKnowledgeIngestRun,
|
|
494
|
+
executeReleaseAssetBuild: executeReleaseAssetBuildRun,
|
|
414
495
|
sleep: (ms) => new Promise((resolve) => dntShim.setTimeout(resolve, ms)),
|
|
415
496
|
now: () => Date.now(),
|
|
416
497
|
};
|
|
@@ -454,9 +535,11 @@ export class ProjectRunExecuteHandler extends BaseHandler {
|
|
|
454
535
|
try {
|
|
455
536
|
const response = request.kind === "task" && request.target === "task:knowledge-ingest"
|
|
456
537
|
? await this.deps.executeKnowledgeIngest({ request, ctx, req })
|
|
457
|
-
: request.kind === "task"
|
|
458
|
-
? await
|
|
459
|
-
:
|
|
538
|
+
: request.kind === "task" && request.target === "task:release-asset-build"
|
|
539
|
+
? await this.deps.executeReleaseAssetBuild({ request, ctx, req })
|
|
540
|
+
: request.kind === "task"
|
|
541
|
+
? await executeTaskRun(request, ctx, this.deps)
|
|
542
|
+
: await executeWorkflowRun(request, ctx, this.deps);
|
|
460
543
|
return this.respond(builder.json(response, 200));
|
|
461
544
|
}
|
|
462
545
|
catch (error) {
|