veryfront 0.1.833 → 0.1.835
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/html/hydration-script-builder/hydration-data-generator.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/hydration-data-generator.js +1 -0
- package/esm/src/html/hydration-script-builder/templates/loader.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/loader.js +17 -0
- package/esm/src/html/hydration-script-builder/templates/renderer.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/renderer.js +3 -0
- package/esm/src/html/hydration-script-builder/templates/router.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/router.js +6 -0
- package/esm/src/html/hydration-script-builder/templates/spa-renderer.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/spa-renderer.js +3 -0
- package/esm/src/html/hydration-script-builder/types.d.ts +2 -0
- package/esm/src/html/hydration-script-builder/types.d.ts.map +1 -1
- package/esm/src/modules/server/module-response-cache.d.ts +27 -0
- package/esm/src/modules/server/module-response-cache.d.ts.map +1 -0
- package/esm/src/modules/server/module-response-cache.js +105 -0
- package/esm/src/modules/server/module-server.d.ts.map +1 -1
- package/esm/src/modules/server/module-server.js +56 -5
- package/esm/src/release-assets/module-consumption.d.ts +8 -0
- package/esm/src/release-assets/module-consumption.d.ts.map +1 -1
- package/esm/src/release-assets/module-consumption.js +16 -2
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/pipeline.js +1 -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/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":"hydration-data-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/hydration-data-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA8BzD,KAAK,gBAAgB,GAAG,qBAAqB,GAAG;IAC9C,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpD,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,MAAM,
|
|
1
|
+
{"version":3,"file":"hydration-data-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/hydration-data-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA8BzD,KAAK,gBAAgB,GAAG,qBAAqB,GAAG;IAC9C,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpD,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,MAAM,CAkDR"}
|
|
@@ -52,6 +52,7 @@ export function generateHydrationData(slug, params, props, options, serializeOpt
|
|
|
52
52
|
isLocalProject: options.isLocalProject,
|
|
53
53
|
environment: options.environment,
|
|
54
54
|
}),
|
|
55
|
+
releaseId: options.releaseId,
|
|
55
56
|
releaseAssetModules: buildReleaseAssetModules(options.releaseAssetManifest),
|
|
56
57
|
frontmatter: options.frontmatter,
|
|
57
58
|
layoutProps: options.layoutProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/loader.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,QAAO,MA8JlC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { VERSION } from "../../../utils/version.js";
|
|
1
2
|
export const getLoaderScript = () => `
|
|
2
3
|
// Note: DEBUG, log, logError are defined in router.ts which loads first
|
|
3
4
|
|
|
5
|
+
const VERYFRONT_RUNTIME_VERSION = '${VERSION}';
|
|
4
6
|
const componentCache = new Map();
|
|
5
7
|
const loadingPromises = new Map();
|
|
6
8
|
|
|
@@ -22,6 +24,20 @@ export const getLoaderScript = () => `
|
|
|
22
24
|
return url + (url.includes('?') ? '&' : '?') + key + '=' + value;
|
|
23
25
|
}
|
|
24
26
|
|
|
27
|
+
let __releaseId = null;
|
|
28
|
+
function setReleaseId(value) {
|
|
29
|
+
__releaseId = typeof value === 'string' && value ? value : null;
|
|
30
|
+
window.__veryfrontReleaseId = __releaseId;
|
|
31
|
+
}
|
|
32
|
+
window.__veryfrontSetReleaseId = setReleaseId;
|
|
33
|
+
|
|
34
|
+
function appendReleaseModuleVersion(url) {
|
|
35
|
+
if (!__releaseId || url.includes('vf_release=')) return url;
|
|
36
|
+
let versionedUrl = appendQueryParam(url, 'vf_release', encodeURIComponent(__releaseId));
|
|
37
|
+
versionedUrl = appendQueryParam(versionedUrl, 'vf_runtime', encodeURIComponent(VERYFRONT_RUNTIME_VERSION));
|
|
38
|
+
return versionedUrl;
|
|
39
|
+
}
|
|
40
|
+
|
|
25
41
|
let __releaseAssetModules = null;
|
|
26
42
|
function setReleaseAssetModules(value) {
|
|
27
43
|
__releaseAssetModules =
|
|
@@ -76,6 +92,7 @@ export const getLoaderScript = () => `
|
|
|
76
92
|
|
|
77
93
|
if (studioEmbed) url = appendQueryParam(url, 'studio_embed', 'true');
|
|
78
94
|
if (__hmrRefreshTimestamp) url = appendQueryParam(url, 't', __hmrRefreshTimestamp);
|
|
95
|
+
if (!studioEmbed && !__hmrRefreshTimestamp) url = appendReleaseModuleVersion(url);
|
|
79
96
|
|
|
80
97
|
return url;
|
|
81
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/renderer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/renderer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,cAwN7B,CAAC"}
|
|
@@ -33,6 +33,9 @@ export const getRendererScript = () => `
|
|
|
33
33
|
if (data.studioEmbed && window.__veryfrontSetStudioEmbed) {
|
|
34
34
|
window.__veryfrontSetStudioEmbed(true);
|
|
35
35
|
}
|
|
36
|
+
if (window.__veryfrontSetReleaseId) {
|
|
37
|
+
window.__veryfrontSetReleaseId(data.releaseId || null);
|
|
38
|
+
}
|
|
36
39
|
if (data.releaseAssetModules && window.__veryfrontSetReleaseAssetModules) {
|
|
37
40
|
window.__veryfrontSetReleaseAssetModules(data.releaseAssetModules);
|
|
38
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/router.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/router.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,cAm0B3B,CAAC"}
|
|
@@ -502,6 +502,9 @@ export const getRouterScript = () => `
|
|
|
502
502
|
// Render page from page data
|
|
503
503
|
// ============================================
|
|
504
504
|
async function renderPageFromData(pageData, targetPath) {
|
|
505
|
+
if (window.__veryfrontSetReleaseId) {
|
|
506
|
+
window.__veryfrontSetReleaseId(pageData.releaseId || null);
|
|
507
|
+
}
|
|
505
508
|
if (window.__veryfrontSetReleaseAssetModules) {
|
|
506
509
|
window.__veryfrontSetReleaseAssetModules(pageData.releaseAssetModules || null);
|
|
507
510
|
}
|
|
@@ -633,6 +636,9 @@ export const getRouterScript = () => `
|
|
|
633
636
|
|
|
634
637
|
async function preloadModulesForPageData(pageData, path) {
|
|
635
638
|
if (!pageData) return;
|
|
639
|
+
if (pageData.releaseId && window.__veryfrontSetReleaseId) {
|
|
640
|
+
window.__veryfrontSetReleaseId(pageData.releaseId);
|
|
641
|
+
}
|
|
636
642
|
if (pageData.releaseAssetModules && window.__veryfrontSetReleaseAssetModules) {
|
|
637
643
|
window.__veryfrontSetReleaseAssetModules(pageData.releaseAssetModules);
|
|
638
644
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spa-renderer.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/spa-renderer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAO,
|
|
1
|
+
{"version":3,"file":"spa-renderer.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/spa-renderer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAO,MAsEvC,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,MAoCrC,CAAC"}
|
|
@@ -22,6 +22,9 @@ export const getSpaRendererScript = () => `
|
|
|
22
22
|
if (initialData.releaseAssetModules && window.__veryfrontSetReleaseAssetModules) {
|
|
23
23
|
window.__veryfrontSetReleaseAssetModules(initialData.releaseAssetModules);
|
|
24
24
|
}
|
|
25
|
+
if (window.__veryfrontSetReleaseId) {
|
|
26
|
+
window.__veryfrontSetReleaseId(initialData.releaseId || null);
|
|
27
|
+
}
|
|
25
28
|
|
|
26
29
|
try {
|
|
27
30
|
const pageComponent = await loadComponent(initialData.pagePath);
|
|
@@ -12,6 +12,8 @@ export interface HydrationDataStructure {
|
|
|
12
12
|
pagePath?: string;
|
|
13
13
|
pageType?: "mdx" | "md" | "tsx" | "jsx" | "ts" | "js";
|
|
14
14
|
clientModuleStrategy?: ClientModuleStrategy;
|
|
15
|
+
/** Production release id used to version fallback module URLs. */
|
|
16
|
+
releaseId?: string;
|
|
15
17
|
/** Production release asset URLs keyed by logical source path. */
|
|
16
18
|
releaseAssetModules?: Record<string, string>;
|
|
17
19
|
frontmatter?: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAE1F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IACtD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAE1F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IACtD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CacheBackend } from "../../cache/types.js";
|
|
2
|
+
export interface ReleaseModuleResponseCacheEntry {
|
|
3
|
+
body: string;
|
|
4
|
+
status: number;
|
|
5
|
+
headers: Array<[string, string]>;
|
|
6
|
+
}
|
|
7
|
+
export interface ReleaseModuleResponseCacheKeyOptions {
|
|
8
|
+
projectIdentity: string;
|
|
9
|
+
projectDir: string;
|
|
10
|
+
projectSlug?: string | null;
|
|
11
|
+
branch?: string | null;
|
|
12
|
+
releaseId: string;
|
|
13
|
+
runtimeVersion: string;
|
|
14
|
+
reactVersion?: string;
|
|
15
|
+
releaseDependencyManifestVersion?: number | null;
|
|
16
|
+
modulePath: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ReleaseModuleResponseCacheHit {
|
|
19
|
+
entry: ReleaseModuleResponseCacheEntry;
|
|
20
|
+
source: "memory" | "distributed";
|
|
21
|
+
}
|
|
22
|
+
export declare function buildReleaseModuleResponseCacheKey(options: ReleaseModuleResponseCacheKeyOptions): string;
|
|
23
|
+
export declare function getReleaseModuleResponse(cacheKey: string): Promise<ReleaseModuleResponseCacheHit | undefined>;
|
|
24
|
+
export declare function rememberReleaseModuleResponse(cacheKey: string, entry: ReleaseModuleResponseCacheEntry): Promise<void>;
|
|
25
|
+
export declare function clearReleaseModuleResponseCache(): void;
|
|
26
|
+
export declare function __setReleaseModuleResponseDistributedCacheForTests(cache: CacheBackend | null | undefined): void;
|
|
27
|
+
//# sourceMappingURL=module-response-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-response-cache.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/server/module-response-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQzD,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,oCAAoC;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,+BAA+B,CAAC;IACvC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAAC;CAClC;AAiDD,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,oCAAoC,GAC5C,MAAM,CAmBR;AAED,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAqBpD;AAED,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAED,wBAAgB,kDAAkD,CAChE,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GACrC,IAAI,CAEN"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { registerLRUCache } from "../../cache/index.js";
|
|
2
|
+
import { CacheBackends, createDistributedCacheAccessor } from "../../cache/backend.js";
|
|
3
|
+
import { hashString } from "../../cache/hash.js";
|
|
4
|
+
import { LRUCache } from "../../utils/lru-wrapper.js";
|
|
5
|
+
import { TRANSFORM_DISTRIBUTED_TTL_SEC } from "../../utils/constants/cache.js";
|
|
6
|
+
const RELEASE_MODULE_RESPONSE_CACHE_MAX_ENTRIES = 10_000;
|
|
7
|
+
const RELEASE_MODULE_RESPONSE_CACHE_MAX_BYTES = 64 * 1024 * 1024;
|
|
8
|
+
const RELEASE_MODULE_RESPONSE_DISTRIBUTED_TTL_SEC = TRANSFORM_DISTRIBUTED_TTL_SEC;
|
|
9
|
+
const releaseModuleResponseCache = new LRUCache({
|
|
10
|
+
maxEntries: RELEASE_MODULE_RESPONSE_CACHE_MAX_ENTRIES,
|
|
11
|
+
maxSizeBytes: RELEASE_MODULE_RESPONSE_CACHE_MAX_BYTES,
|
|
12
|
+
});
|
|
13
|
+
registerLRUCache("module-server-release-response-cache", releaseModuleResponseCache);
|
|
14
|
+
const getDistributedModuleResponseCache = createDistributedCacheAccessor(() => CacheBackends.module(), "MODULE-RESPONSE-CACHE");
|
|
15
|
+
let injectedDistributedCache;
|
|
16
|
+
function parseDistributedEntry(raw) {
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(raw);
|
|
19
|
+
if (typeof parsed.body !== "string")
|
|
20
|
+
return null;
|
|
21
|
+
if (typeof parsed.status !== "number")
|
|
22
|
+
return null;
|
|
23
|
+
if (!Array.isArray(parsed.headers) ||
|
|
24
|
+
!parsed.headers.every((entry) => Array.isArray(entry) &&
|
|
25
|
+
entry.length === 2 &&
|
|
26
|
+
typeof entry[0] === "string" &&
|
|
27
|
+
typeof entry[1] === "string"))
|
|
28
|
+
return null;
|
|
29
|
+
return {
|
|
30
|
+
body: parsed.body,
|
|
31
|
+
status: parsed.status,
|
|
32
|
+
headers: parsed.headers,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function getDistributedCache() {
|
|
40
|
+
const cache = injectedDistributedCache !== undefined
|
|
41
|
+
? injectedDistributedCache
|
|
42
|
+
: await getDistributedModuleResponseCache();
|
|
43
|
+
if (!cache)
|
|
44
|
+
return null;
|
|
45
|
+
return cache.type === "api" || cache.type === "redis" ? cache : null;
|
|
46
|
+
}
|
|
47
|
+
export function buildReleaseModuleResponseCacheKey(options) {
|
|
48
|
+
const projectScope = [
|
|
49
|
+
options.projectIdentity,
|
|
50
|
+
options.projectDir,
|
|
51
|
+
options.projectSlug ?? "",
|
|
52
|
+
options.branch ?? "",
|
|
53
|
+
].join("\0");
|
|
54
|
+
return [
|
|
55
|
+
"module-server-release-response",
|
|
56
|
+
hashString(projectScope),
|
|
57
|
+
options.releaseId,
|
|
58
|
+
options.runtimeVersion,
|
|
59
|
+
options.reactVersion ?? "",
|
|
60
|
+
options.releaseDependencyManifestVersion == null
|
|
61
|
+
? ""
|
|
62
|
+
: `release-dependency-manifest:${options.releaseDependencyManifestVersion}`,
|
|
63
|
+
options.modulePath,
|
|
64
|
+
].join("\0");
|
|
65
|
+
}
|
|
66
|
+
export async function getReleaseModuleResponse(cacheKey) {
|
|
67
|
+
const localEntry = releaseModuleResponseCache.get(cacheKey);
|
|
68
|
+
if (localEntry) {
|
|
69
|
+
return { entry: localEntry, source: "memory" };
|
|
70
|
+
}
|
|
71
|
+
const distributedCache = await getDistributedCache();
|
|
72
|
+
if (!distributedCache)
|
|
73
|
+
return undefined;
|
|
74
|
+
try {
|
|
75
|
+
const raw = await distributedCache.get(cacheKey);
|
|
76
|
+
if (!raw)
|
|
77
|
+
return undefined;
|
|
78
|
+
const entry = parseDistributedEntry(raw);
|
|
79
|
+
if (!entry)
|
|
80
|
+
return undefined;
|
|
81
|
+
releaseModuleResponseCache.set(cacheKey, entry);
|
|
82
|
+
return { entry, source: "distributed" };
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export async function rememberReleaseModuleResponse(cacheKey, entry) {
|
|
89
|
+
releaseModuleResponseCache.set(cacheKey, entry);
|
|
90
|
+
const distributedCache = await getDistributedCache();
|
|
91
|
+
if (!distributedCache)
|
|
92
|
+
return;
|
|
93
|
+
try {
|
|
94
|
+
await distributedCache.set(cacheKey, JSON.stringify(entry), RELEASE_MODULE_RESPONSE_DISTRIBUTED_TTL_SEC);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
/* best-effort shared cache */
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export function clearReleaseModuleResponseCache() {
|
|
101
|
+
releaseModuleResponseCache.clear();
|
|
102
|
+
}
|
|
103
|
+
export function __setReleaseModuleResponseDistributedCacheForTests(cache) {
|
|
104
|
+
injectedDistributedCache = cache;
|
|
105
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-server.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/server/module-server.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"module-server.d.ts","sourceRoot":"","sources":["../../../../src/src/modules/server/module-server.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAyDtE;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwDrD,CAAC;AA6DF,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,uBAAuB;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAubzF;AAwWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGrD"}
|
|
@@ -8,7 +8,7 @@ import { getContentTypeForPath } from "../../server/handlers/utils/content-types
|
|
|
8
8
|
import { createSecureFs } from "../../security/index.js";
|
|
9
9
|
import { getErrorMessage } from "../../errors/veryfront-error.js";
|
|
10
10
|
import { getApiBaseUrlEnv } from "../../config/env.js";
|
|
11
|
-
import { profilePhase } from "../../observability/request-profiler.js";
|
|
11
|
+
import { markRequestProfilePhase, profilePhase, } from "../../observability/request-profiler.js";
|
|
12
12
|
import { metrics } from "../../observability/simple-metrics/index.js";
|
|
13
13
|
import { injectContext, withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
14
14
|
import { injectNodePositions } from "../../transforms/plugins/babel-node-positions.js";
|
|
@@ -20,9 +20,10 @@ import { FRAMEWORK_ROOT, resolveFrameworkSourcePath, } from "../../platform/comp
|
|
|
20
20
|
import { getReactUrls, REACT_DEFAULT_VERSION } from "../../utils/constants/cdn.js";
|
|
21
21
|
import { readLimitedCrossProjectSource } from "./cross-project-source-limit.js";
|
|
22
22
|
import { sha256Short } from "../../cache/hash.js";
|
|
23
|
-
import { rewriteReleaseDependencyImportsForModule } from "../../release-assets/module-consumption.js";
|
|
23
|
+
import { getReleaseDependencyRewriteManifestState, rewriteReleaseDependencyImportsForModule, } from "../../release-assets/module-consumption.js";
|
|
24
24
|
import { RELEASE_ASSET_IMMUTABLE_MAX_AGE_SECONDS, RELEASE_MODULE_RUNTIME_VERSION_PARAM, RELEASE_MODULE_VERSION_PARAM, } from "../../release-assets/constants.js";
|
|
25
25
|
import { buildSourceMissCacheKey, hasSourceMiss, rememberSourceMiss, } from "./module-source-resolution-cache.js";
|
|
26
|
+
import { buildReleaseModuleResponseCacheKey, getReleaseModuleResponse, rememberReleaseModuleResponse, } from "./module-response-cache.js";
|
|
26
27
|
import { ensureFilenameDefaultExport } from "../loader-shared/filename-default-export.js";
|
|
27
28
|
const logger = serverLogger.component("module-server");
|
|
28
29
|
const PROJECT_FALLBACK_EMBEDDED_POLYFILLS = new Set(["deno"]);
|
|
@@ -111,7 +112,9 @@ function appendReleaseModuleVersion(url, releaseId) {
|
|
|
111
112
|
return `${url}${separator}${params.toString()}`;
|
|
112
113
|
}
|
|
113
114
|
function shouldCacheReleaseVersionedModule(url, options, isSSR) {
|
|
114
|
-
if (options.dev || isSSR || !options.releaseId)
|
|
115
|
+
if (options.dev || options.mode === "preview" || isSSR || !options.releaseId)
|
|
116
|
+
return false;
|
|
117
|
+
if (url.searchParams.get("studio_embed") === "true" || url.searchParams.has("t"))
|
|
115
118
|
return false;
|
|
116
119
|
return url.searchParams.get(RELEASE_MODULE_VERSION_PARAM) === options.releaseId &&
|
|
117
120
|
url.searchParams.get(RELEASE_MODULE_RUNTIME_VERSION_PARAM) === VERSION;
|
|
@@ -319,6 +322,46 @@ export function serveModule(req, options) {
|
|
|
319
322
|
projectSlug = parsedHost.slug;
|
|
320
323
|
branch ??= parsedHost.branch;
|
|
321
324
|
}
|
|
325
|
+
const isSSR = isSSRModuleRequest(req, url);
|
|
326
|
+
const canUseReleaseModuleResponseCache = method === "GET" || method === "HEAD";
|
|
327
|
+
const canCacheReleaseVersionedModule = canUseReleaseModuleResponseCache &&
|
|
328
|
+
shouldCacheReleaseVersionedModule(url, options, isSSR);
|
|
329
|
+
let releaseDependencyManifest = null;
|
|
330
|
+
let releaseDependencyManifestVersion = null;
|
|
331
|
+
let releaseDependencyManifestReady = true;
|
|
332
|
+
if (canCacheReleaseVersionedModule) {
|
|
333
|
+
const manifestState = await getReleaseDependencyRewriteManifestState(options.releaseId);
|
|
334
|
+
if (manifestState.enabled) {
|
|
335
|
+
releaseDependencyManifest = manifestState.manifest;
|
|
336
|
+
releaseDependencyManifestVersion = manifestState.manifest?.manifestVersion ?? null;
|
|
337
|
+
releaseDependencyManifestReady = manifestState.manifest !== null;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
const releaseModuleResponseCacheKey = canCacheReleaseVersionedModule &&
|
|
341
|
+
releaseDependencyManifestReady
|
|
342
|
+
? buildReleaseModuleResponseCacheKey({
|
|
343
|
+
projectIdentity: effectiveProjectId,
|
|
344
|
+
projectDir,
|
|
345
|
+
projectSlug,
|
|
346
|
+
branch,
|
|
347
|
+
releaseId: options.releaseId,
|
|
348
|
+
runtimeVersion: VERSION,
|
|
349
|
+
reactVersion,
|
|
350
|
+
releaseDependencyManifestVersion,
|
|
351
|
+
modulePath,
|
|
352
|
+
})
|
|
353
|
+
: null;
|
|
354
|
+
if (releaseModuleResponseCacheKey) {
|
|
355
|
+
const cachedResponse = await getReleaseModuleResponse(releaseModuleResponseCacheKey);
|
|
356
|
+
if (cachedResponse?.entry) {
|
|
357
|
+
markRequestProfilePhase("module.response_cache_hit");
|
|
358
|
+
if (cachedResponse.source === "distributed") {
|
|
359
|
+
markRequestProfilePhase("module.response_cache_distributed_hit");
|
|
360
|
+
}
|
|
361
|
+
return createModuleResponse(method, cachedResponse.entry.body, cachedResponse.entry.status, Object.fromEntries(cachedResponse.entry.headers));
|
|
362
|
+
}
|
|
363
|
+
markRequestProfilePhase("module.response_cache_miss");
|
|
364
|
+
}
|
|
322
365
|
try {
|
|
323
366
|
const findResult = await profilePhase("module.source_lookup", () => findSourceFile(secureFs, projectDir, filePathWithoutExt, {
|
|
324
367
|
projectId: effectiveProjectId,
|
|
@@ -356,7 +399,6 @@ export function serveModule(req, options) {
|
|
|
356
399
|
: await secureFs.readFile(sourceFile);
|
|
357
400
|
}
|
|
358
401
|
const userAgent = req.headers.get("user-agent") ?? "";
|
|
359
|
-
const isSSR = isSSRModuleRequest(req, url);
|
|
360
402
|
const studioEmbed = url.searchParams.get("studio_embed") === "true";
|
|
361
403
|
const shouldInjectPositions = dev || options.mode === "preview";
|
|
362
404
|
const isJsxFile = /\.(tsx|jsx)$/i.test(sourceFile);
|
|
@@ -408,18 +450,27 @@ export function serveModule(req, options) {
|
|
|
408
450
|
if (!isSSR) {
|
|
409
451
|
code = await rewriteReleaseDependencyImportsForModule(code, {
|
|
410
452
|
releaseId: options.releaseId,
|
|
453
|
+
manifest: releaseDependencyManifest ?? undefined,
|
|
411
454
|
readDependencySource: (path) => platformFs.readTextFile(path),
|
|
412
455
|
});
|
|
413
456
|
code = await addReleaseVersionToFallbackImports(code, options.releaseId);
|
|
414
457
|
}
|
|
415
458
|
}
|
|
416
459
|
const headers = getModuleHeaders(modulePath, {
|
|
417
|
-
cacheable:
|
|
460
|
+
cacheable: releaseModuleResponseCacheKey !== null,
|
|
418
461
|
});
|
|
419
462
|
logger.debug("Request complete", {
|
|
420
463
|
path: modulePath,
|
|
421
464
|
durationMs: (performance.now() - startTime).toFixed(1),
|
|
422
465
|
});
|
|
466
|
+
if (releaseModuleResponseCacheKey && method === "GET") {
|
|
467
|
+
void rememberReleaseModuleResponse(releaseModuleResponseCacheKey, {
|
|
468
|
+
body: code,
|
|
469
|
+
status: HTTP_OK,
|
|
470
|
+
headers: Object.entries(headers),
|
|
471
|
+
});
|
|
472
|
+
markRequestProfilePhase("module.response_cache_store");
|
|
473
|
+
}
|
|
423
474
|
return createModuleResponse(method, code, HTTP_OK, headers);
|
|
424
475
|
}
|
|
425
476
|
catch (error) {
|
|
@@ -8,9 +8,17 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @module release-assets/module-consumption
|
|
10
10
|
*/
|
|
11
|
+
import type { ReleaseAssetManifest } from "./manifest-schema.js";
|
|
11
12
|
export interface RewriteReleaseDependencyImportsOptions {
|
|
12
13
|
releaseId?: string | null;
|
|
13
14
|
readDependencySource: (path: string) => Promise<string>;
|
|
15
|
+
manifest?: ReleaseAssetManifest | null;
|
|
14
16
|
}
|
|
17
|
+
export interface ReleaseDependencyRewriteManifestState {
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
manifest: ReleaseAssetManifest | null;
|
|
20
|
+
}
|
|
21
|
+
export declare function isReleaseDependencyImportMapRewriteEnabled(): boolean;
|
|
22
|
+
export declare function getReleaseDependencyRewriteManifestState(releaseId: string | null | undefined): Promise<ReleaseDependencyRewriteManifestState>;
|
|
15
23
|
export declare function rewriteReleaseDependencyImportsForModule(code: string, options: RewriteReleaseDependencyImportsOptions): Promise<string>;
|
|
16
24
|
//# sourceMappingURL=module-consumption.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-consumption.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/module-consumption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"module-consumption.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/module-consumption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,sCAAsC;IACrD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC;AAED,wBAAgB,0CAA0C,IAAI,OAAO,CAEpE;AAED,wBAAsB,wCAAwC,CAC5D,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,OAAO,CAAC,qCAAqC,CAAC,CAShD;AAmDD,wBAAsB,wCAAwC,CAC5D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
|
|
@@ -14,6 +14,18 @@ import { parseImports, replaceSpecifiers } from "../transforms/esm/lexer.js";
|
|
|
14
14
|
import { extractSourceUrl } from "../transforms/esm/source-url-embed.js";
|
|
15
15
|
import { RELEASE_ASSET_DEPENDENCY_IMPORT_MAP_ENV_FLAG, releaseAssetUrl } from "./constants.js";
|
|
16
16
|
import { getReadyManifestForRenderAsync } from "./manifest-cache.js";
|
|
17
|
+
export function isReleaseDependencyImportMapRewriteEnabled() {
|
|
18
|
+
return getHostEnv(RELEASE_ASSET_DEPENDENCY_IMPORT_MAP_ENV_FLAG) === "1";
|
|
19
|
+
}
|
|
20
|
+
export async function getReleaseDependencyRewriteManifestState(releaseId) {
|
|
21
|
+
if (!releaseId || !isReleaseDependencyImportMapRewriteEnabled()) {
|
|
22
|
+
return { enabled: false, manifest: null };
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
enabled: true,
|
|
26
|
+
manifest: await getReadyManifestForRenderAsync(releaseId),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
17
29
|
function dependencyAssetUrl(manifest, specifier) {
|
|
18
30
|
const direct = manifest.dependencies[specifier] ??
|
|
19
31
|
manifest.dependencies[specifier.replace(/[?#].*$/, "")];
|
|
@@ -63,11 +75,13 @@ async function sourceUrlForLocalHttpBundle(specifier, readDependencySource) {
|
|
|
63
75
|
export async function rewriteReleaseDependencyImportsForModule(code, options) {
|
|
64
76
|
if (!options.releaseId)
|
|
65
77
|
return code;
|
|
66
|
-
if (
|
|
78
|
+
if (!isReleaseDependencyImportMapRewriteEnabled())
|
|
67
79
|
return code;
|
|
68
80
|
if (!code.includes("http") && !code.includes("veryfront-http-bundle"))
|
|
69
81
|
return code;
|
|
70
|
-
const manifest =
|
|
82
|
+
const manifest = options.manifest !== undefined
|
|
83
|
+
? options.manifest
|
|
84
|
+
: await getReadyManifestForRenderAsync(options.releaseId);
|
|
71
85
|
if (!manifest || Object.keys(manifest.dependencies).length === 0)
|
|
72
86
|
return code;
|
|
73
87
|
const replacements = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA+ChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxE,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,OAAO,qBAAqB,EAAE,sBAAsB,CAAC;CAC1E;AA0BD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,MAAM,EAAE,oBAAoB;IAaxC;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAKxB,OAAO,CAAC,UAAU;YAIJ,0BAA0B;IAaxC;;;;;;;;;OASG;YACW,qBAAqB;IAyDnC;;;OAGG;YACW,mBAAmB;IA8GjC,OAAO,CAAC,uBAAuB;IAkCzB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsS9E,+EAA+E;IACzE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA+ChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxE,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,OAAO,qBAAqB,EAAE,sBAAsB,CAAC;CAC1E;AA0BD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,MAAM,EAAE,oBAAoB;IAaxC;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAKxB,OAAO,CAAC,UAAU;YAIJ,0BAA0B;IAaxC;;;;;;;;;OASG;YACW,qBAAqB;IAyDnC;;;OAGG;YACW,mBAAmB;IA8GjC,OAAO,CAAC,uBAAuB;IAkCzB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsS9E,+EAA+E;IACzE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAkGzE,kBAAkB;YA2ClB,cAAc;IAW5B,OAAO,CAAC,uBAAuB;YAYjB,kBAAkB;IAyFhC,OAAO,CAAC,kBAAkB;YAQZ,uBAAuB;IAmBrC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;CAStB"}
|
|
@@ -454,6 +454,7 @@ export class RenderPipeline {
|
|
|
454
454
|
layoutProps,
|
|
455
455
|
buildVersion: createBuildVersion(projectUpdatedAt),
|
|
456
456
|
appPath,
|
|
457
|
+
releaseId: options?.releaseId,
|
|
457
458
|
releaseAssetModules: buildReleaseAssetModules(options?.releaseAssetManifest),
|
|
458
459
|
headings,
|
|
459
460
|
css,
|
|
@@ -81,6 +81,8 @@ export interface PageDataResponse {
|
|
|
81
81
|
layoutProps: Record<string, Record<string, unknown>>;
|
|
82
82
|
buildVersion: BuildVersion;
|
|
83
83
|
appPath?: string;
|
|
84
|
+
/** Production release id used to version fallback module URLs. */
|
|
85
|
+
releaseId?: string;
|
|
84
86
|
/** Production release asset URLs keyed by logical source path. */
|
|
85
87
|
releaseAssetModules?: Record<string, string>;
|
|
86
88
|
/** Headings extracted from MDX for sidebar/TOC navigation */
|
|
@@ -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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"}
|