veryfront 0.1.809 → 0.1.811
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.d.ts +3 -0
- package/esm/deno.js +5 -2
- package/esm/src/agent/factory.d.ts.map +1 -1
- package/esm/src/agent/factory.js +18 -6
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.d.ts.map +1 -1
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.js +1 -0
- package/esm/src/agent/types.d.ts +8 -0
- package/esm/src/agent/types.d.ts.map +1 -1
- package/esm/src/build/production-build/build/build-executor.d.ts +2 -0
- package/esm/src/build/production-build/build/build-executor.d.ts.map +1 -1
- package/esm/src/build/production-build/build/build-orchestrator.d.ts.map +1 -1
- package/esm/src/build/production-build/build/build-orchestrator.js +9 -0
- package/esm/src/build/production-build/build/output-generator.d.ts +2 -0
- package/esm/src/build/production-build/build/output-generator.d.ts.map +1 -1
- package/esm/src/build/production-build/build/output-generator.js +9 -7
- package/esm/src/build/production-build/local-release-assets.d.ts +2 -1
- package/esm/src/build/production-build/local-release-assets.d.ts.map +1 -1
- package/esm/src/build/production-build/local-release-assets.js +14 -4
- package/esm/src/build/production-build/static-generation.d.ts +2 -0
- package/esm/src/build/production-build/static-generation.d.ts.map +1 -1
- package/esm/src/build/production-build/static-generation.js +29 -5
- package/esm/src/config/schemas/config.schema.d.ts +12 -0
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +12 -0
- package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.js +6 -1
- package/esm/src/discovery/handlers/index.d.ts +1 -0
- package/esm/src/discovery/handlers/index.d.ts.map +1 -1
- package/esm/src/discovery/handlers/index.js +1 -0
- package/esm/src/discovery/handlers/work-handler.d.ts +7 -0
- package/esm/src/discovery/handlers/work-handler.d.ts.map +1 -0
- package/esm/src/discovery/handlers/work-handler.js +19 -0
- package/esm/src/discovery/import-rewriter.d.ts +1 -1
- package/esm/src/discovery/import-rewriter.d.ts.map +1 -1
- package/esm/src/discovery/import-rewriter.js +1 -0
- package/esm/src/discovery/project-discovery-config.d.ts +2 -0
- package/esm/src/discovery/project-discovery-config.d.ts.map +1 -1
- package/esm/src/discovery/project-discovery-config.js +2 -0
- package/esm/src/discovery/transpiler.d.ts.map +1 -1
- package/esm/src/discovery/transpiler.js +2 -0
- package/esm/src/discovery/types.d.ts +3 -0
- package/esm/src/discovery/types.d.ts.map +1 -1
- package/esm/src/html/utils.d.ts.map +1 -1
- package/esm/src/html/utils.js +8 -8
- package/esm/src/observability/request-profiler.d.ts +1 -0
- package/esm/src/observability/request-profiler.d.ts.map +1 -1
- package/esm/src/observability/request-profiler.js +6 -0
- package/esm/src/release-assets/build-executor.d.ts +14 -0
- package/esm/src/release-assets/build-executor.d.ts.map +1 -1
- package/esm/src/release-assets/build-executor.js +158 -20
- package/esm/src/rendering/cache/cache-coordinator.d.ts +3 -0
- package/esm/src/rendering/cache/cache-coordinator.d.ts.map +1 -1
- package/esm/src/rendering/cache/cache-coordinator.js +26 -2
- package/esm/src/rendering/renderer.d.ts.map +1 -1
- package/esm/src/rendering/renderer.js +3 -1
- package/esm/src/rendering/shared/context-aware-cache.d.ts +3 -0
- package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.js +24 -2
- package/esm/src/server/build-app-route-renderer.d.ts +2 -0
- package/esm/src/server/build-app-route-renderer.d.ts.map +1 -1
- package/esm/src/server/build-app-route-renderer.js +3 -2
- package/esm/src/server/dev-server/server.d.ts.map +1 -1
- package/esm/src/server/dev-server/server.js +4 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/work/factory.d.ts +4 -0
- package/esm/src/work/factory.d.ts.map +1 -0
- package/esm/src/work/factory.js +51 -0
- package/esm/src/work/index.d.ts +27 -0
- package/esm/src/work/index.d.ts.map +1 -0
- package/esm/src/work/index.js +25 -0
- package/esm/src/work/prompt-augmentation.d.ts +6 -0
- package/esm/src/work/prompt-augmentation.d.ts.map +1 -0
- package/esm/src/work/prompt-augmentation.js +30 -0
- package/esm/src/work/registry.d.ts +10 -0
- package/esm/src/work/registry.d.ts.map +1 -0
- package/esm/src/work/registry.js +23 -0
- package/esm/src/work/types.d.ts +30 -0
- package/esm/src/work/types.d.ts.map +1 -0
- package/esm/src/work/types.js +1 -0
- package/package.json +5 -1
|
@@ -8,5 +8,6 @@ export { agentHandler } from "./agent-handler.js";
|
|
|
8
8
|
export { resourceHandler } from "./resource-handler.js";
|
|
9
9
|
export { promptHandler } from "./prompt-handler.js";
|
|
10
10
|
export { workflowHandler } from "./workflow-handler.js";
|
|
11
|
+
export { workHandler } from "./work-handler.js";
|
|
11
12
|
export { taskHandler } from "./task-handler.js";
|
|
12
13
|
export { discoverSkills } from "./skill-handler.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/discovery/handlers/work-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAexD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Work Discovery Handler
|
|
3
|
+
*/
|
|
4
|
+
import { workRegistry } from "../../work/index.js";
|
|
5
|
+
export const workHandler = {
|
|
6
|
+
typeName: "work",
|
|
7
|
+
validate: (item) => item !== null &&
|
|
8
|
+
typeof item === "object" &&
|
|
9
|
+
typeof item.id === "string" &&
|
|
10
|
+
typeof item.outcome === "string" &&
|
|
11
|
+
Array.isArray(item.acceptanceCriteria),
|
|
12
|
+
getId: (definition) => definition.id,
|
|
13
|
+
register: (id, definition) => {
|
|
14
|
+
const definitionWithId = definition.id === id ? definition : { ...definition, id };
|
|
15
|
+
workRegistry.register(id, definitionWithId);
|
|
16
|
+
return definitionWithId;
|
|
17
|
+
},
|
|
18
|
+
getResultMap: (result) => result.works,
|
|
19
|
+
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* (Deno, Node.js) and handles veryfront package resolution.
|
|
6
6
|
*/
|
|
7
7
|
import { createFileSystem } from "../platform/compat/fs.js";
|
|
8
|
-
export declare const DISCOVERY_GLOBAL_VERYFRONT_MODULES: readonly ["veryfront/agent", "veryfront/tool", "veryfront/platform", "veryfront/prompt", "veryfront/resource", "veryfront/embedding", "veryfront/workflow", "veryfront/schemas"];
|
|
8
|
+
export declare const DISCOVERY_GLOBAL_VERYFRONT_MODULES: readonly ["veryfront/agent", "veryfront/tool", "veryfront/platform", "veryfront/prompt", "veryfront/resource", "veryfront/embedding", "veryfront/workflow", "veryfront/work", "veryfront/schemas"];
|
|
9
9
|
interface DenoRewriteOptions {
|
|
10
10
|
compiled?: boolean;
|
|
11
11
|
resolveSpecifier?: (specifier: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-rewriter.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/import-rewriter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,eAAO,MAAM,kCAAkC,
|
|
1
|
+
{"version":3,"file":"import-rewriter.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/import-rewriter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,eAAO,MAAM,kCAAkC,oMAUrC,CAAC;AAEX,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAkHD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CA2BR;AAqFD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA2PjB"}
|
|
@@ -8,6 +8,7 @@ export declare const DEFAULT_PROJECT_DISCOVERY_DIRS: {
|
|
|
8
8
|
resourceDirs: string[];
|
|
9
9
|
promptDirs: string[];
|
|
10
10
|
workflowDirs: string[];
|
|
11
|
+
workDirs: string[];
|
|
11
12
|
taskDirs: string[];
|
|
12
13
|
};
|
|
13
14
|
type ProjectDiscoveryConfigInput = {
|
|
@@ -23,6 +24,7 @@ export type ProjectDiscoveryConfig = DiscoveryConfig & {
|
|
|
23
24
|
resourceDirs: string[];
|
|
24
25
|
promptDirs: string[];
|
|
25
26
|
workflowDirs: string[];
|
|
27
|
+
workDirs: string[];
|
|
26
28
|
taskDirs: string[];
|
|
27
29
|
};
|
|
28
30
|
export declare function createProjectDiscoveryConfig(input: ProjectDiscoveryConfigInput): ProjectDiscoveryConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-discovery-config.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/project-discovery-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,8BAA8B
|
|
1
|
+
{"version":3,"file":"project-discovery-config.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/project-discovery-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,8BAA8B;;;;;;;;;CAS1C,CAAC;AAOF,KAAK,2BAA2B,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG;IACrD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAgBF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAwCxB"}
|
|
@@ -5,6 +5,7 @@ export const DEFAULT_PROJECT_DISCOVERY_DIRS = {
|
|
|
5
5
|
resourceDirs: ["resources"],
|
|
6
6
|
promptDirs: ["prompts"],
|
|
7
7
|
workflowDirs: ["workflows"],
|
|
8
|
+
workDirs: ["work"],
|
|
8
9
|
taskDirs: ["tasks"],
|
|
9
10
|
};
|
|
10
11
|
function isDiscoveryEnabled(discovery) {
|
|
@@ -26,6 +27,7 @@ export function createProjectDiscoveryConfig(input) {
|
|
|
26
27
|
resourceDirs: resolveDiscoveryPaths(aiConfig?.resources?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.resourceDirs),
|
|
27
28
|
promptDirs: resolveDiscoveryPaths(aiConfig?.prompts?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.promptDirs),
|
|
28
29
|
workflowDirs: resolveDiscoveryPaths(aiConfig?.workflows?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.workflowDirs),
|
|
30
|
+
workDirs: resolveDiscoveryPaths(aiConfig?.work?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.workDirs),
|
|
29
31
|
taskDirs: resolveDiscoveryPaths(aiConfig?.tasks?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.taskDirs),
|
|
30
32
|
fsAdapter: input.fsAdapter,
|
|
31
33
|
verbose: input.verbose ?? false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/transpiler.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/transpiler.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqIvD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAkGlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -20,6 +20,7 @@ import * as promptMod from "../prompt/index.js";
|
|
|
20
20
|
import * as resourceMod from "../resource/index.js";
|
|
21
21
|
import * as embeddingMod from "../embedding/index.js";
|
|
22
22
|
import * as workflowMod from "../workflow/index.js";
|
|
23
|
+
import * as workMod from "../work/index.js";
|
|
23
24
|
import * as schemasMod from "../schemas/index.js";
|
|
24
25
|
const transpileCache = new Map();
|
|
25
26
|
// Setup veryfront modules as globals for compiled binary support
|
|
@@ -38,6 +39,7 @@ async function ensureVeryfrontGlobals() {
|
|
|
38
39
|
"veryfront/resource": resourceMod,
|
|
39
40
|
"veryfront/embedding": embeddingMod,
|
|
40
41
|
"veryfront/workflow": workflowMod,
|
|
42
|
+
"veryfront/work": workMod,
|
|
41
43
|
"veryfront/schemas": schemasMod,
|
|
42
44
|
};
|
|
43
45
|
dntShim.dntGlobalThis.__VERYFRONT_MODULES__ = modules;
|
|
@@ -8,6 +8,7 @@ import type { Prompt } from "../prompt/types.js";
|
|
|
8
8
|
import type { Resource } from "../resource/types.js";
|
|
9
9
|
import type { Skill } from "../skill/types.js";
|
|
10
10
|
import type { Tool } from "../tool/types.js";
|
|
11
|
+
import type { WorkDefinition } from "../work/index.js";
|
|
11
12
|
import type { Workflow } from "../workflow/types.js";
|
|
12
13
|
import type { TaskDefinition } from "../task/types.js";
|
|
13
14
|
import type { Platform } from "../platform/core-platform.js";
|
|
@@ -35,6 +36,7 @@ export interface DiscoveryConfig {
|
|
|
35
36
|
resourceDirs?: string[];
|
|
36
37
|
promptDirs?: string[];
|
|
37
38
|
workflowDirs?: string[];
|
|
39
|
+
workDirs?: string[];
|
|
38
40
|
taskDirs?: string[];
|
|
39
41
|
verbose?: boolean;
|
|
40
42
|
fsAdapter?: FileSystemAdapter;
|
|
@@ -49,6 +51,7 @@ export interface DiscoveryResult {
|
|
|
49
51
|
resources: Map<string, Resource>;
|
|
50
52
|
prompts: Map<string, Prompt>;
|
|
51
53
|
workflows: Map<string, Workflow>;
|
|
54
|
+
works: Map<string, WorkDefinition>;
|
|
52
55
|
tasks: Map<string, TaskDefinition>;
|
|
53
56
|
errors: Array<{
|
|
54
57
|
file: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,cAAc,SAAS,CAAC,CAAC;QAC7B,IAAI,EAAE,cAAc,WAAW,CAAC,CAAC;KAClC,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC;IACvC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,CAAC;IAChE,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CAC3D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAejF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AAaD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AA4DD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AA6JF,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpD;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAejF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AAaD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AA4DD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AA6JF,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpD;AAgFD,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC,CA+DzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElF"}
|
package/esm/src/html/utils.js
CHANGED
|
@@ -226,14 +226,14 @@ function applyManifestDependencies(imports, manifest) {
|
|
|
226
226
|
dependencyAssets.set(canonicalDependencyUrl(specifier), assetUrl);
|
|
227
227
|
}
|
|
228
228
|
return Object.fromEntries(Object.entries(imports).map(([specifier, url]) => {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
];
|
|
229
|
+
const directAsset = dependencyAssets.get(specifier);
|
|
230
|
+
if (directAsset)
|
|
231
|
+
return [specifier, directAsset];
|
|
232
|
+
const urlAsset = dependencyAssets.get(url) ??
|
|
233
|
+
dependencyAssets.get(canonicalDependencyUrl(url));
|
|
234
|
+
if (urlAsset)
|
|
235
|
+
return [specifier, urlAsset];
|
|
236
|
+
return [specifier, url];
|
|
237
237
|
}));
|
|
238
238
|
}
|
|
239
239
|
function isImportMapOnlyOptions(options) {
|
|
@@ -24,6 +24,7 @@ export declare function runWithRequestProfiling<T>(options: {
|
|
|
24
24
|
requestMode?: string;
|
|
25
25
|
}, fn: () => Promise<T>): Promise<T>;
|
|
26
26
|
export declare function profilePhase<T>(name: string, fn: () => Promise<T>): Promise<T>;
|
|
27
|
+
export declare function markRequestProfilePhase(name: string, durationMs?: number): void;
|
|
27
28
|
export declare function profileSyncPhase<T>(name: string, fn: () => T): T;
|
|
28
29
|
export declare function updateRequestProfileContext(update: RequestProfileContextUpdate): void;
|
|
29
30
|
export declare function finalizeRequestProfiling(status?: number): RequestProfileRecord | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-profiler.d.ts","sourceRoot":"","sources":["../../../src/src/observability/request-profiler.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWpF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAWhE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI,CAMrF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAsBrF;AAUD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAQ5E;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAClC,QAAQ,CAiBV;AAED,wBAAgB,uBAAuB,IAAI;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAMA;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
|
|
1
|
+
{"version":3,"file":"request-profiler.d.ts","sourceRoot":"","sources":["../../../src/src/observability/request-profiler.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWpF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,IAAI,CAK1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAWhE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI,CAMrF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAsBrF;AAUD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAQ5E;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAClC,QAAQ,CAiBV;AAED,wBAAgB,uBAAuB,IAAI;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAMA;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
|
|
@@ -55,6 +55,12 @@ export async function profilePhase(name, fn) {
|
|
|
55
55
|
session.phases.set(name, roundMs((session.phases.get(name) ?? 0) + duration));
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
export function markRequestProfilePhase(name, durationMs = 0) {
|
|
59
|
+
const session = storage.getStore();
|
|
60
|
+
if (!session)
|
|
61
|
+
return;
|
|
62
|
+
session.phases.set(name, roundMs((session.phases.get(name) ?? 0) + durationMs));
|
|
63
|
+
}
|
|
58
64
|
export function profileSyncPhase(name, fn) {
|
|
59
65
|
const session = storage.getStore();
|
|
60
66
|
if (!session)
|
|
@@ -125,6 +125,8 @@ interface PreparedAsset {
|
|
|
125
125
|
export interface PreparedReleaseAsset extends PreparedAsset {
|
|
126
126
|
bytes: Uint8Array;
|
|
127
127
|
}
|
|
128
|
+
export declare function releaseAssetDependencyUrlForSpecifier(dependencyUrls: Map<string, string>, specifier: string): string | null;
|
|
129
|
+
export declare function buildReleaseAssetDependencyUrlMap(dependencies: Record<string, PreparedAsset>): Map<string, string>;
|
|
128
130
|
export declare function buildReactImportMapDependencyAssets(options: {
|
|
129
131
|
tempDir: string;
|
|
130
132
|
reactVersion?: string;
|
|
@@ -141,6 +143,18 @@ export declare function buildCachedHttpDependencyAssets(options: {
|
|
|
141
143
|
assets: PreparedReleaseAsset[];
|
|
142
144
|
gaps: string[];
|
|
143
145
|
}>;
|
|
146
|
+
export declare function buildFrameworkDependencyAssets(options: {
|
|
147
|
+
tempDir: string;
|
|
148
|
+
adapter: any;
|
|
149
|
+
reactVersion?: string;
|
|
150
|
+
projectId?: string;
|
|
151
|
+
transform?: ReleaseAssetTransform;
|
|
152
|
+
dependencyUrls: Map<string, string>;
|
|
153
|
+
}): Promise<{
|
|
154
|
+
dependencies: Record<string, PreparedAsset>;
|
|
155
|
+
assets: PreparedReleaseAsset[];
|
|
156
|
+
gaps: string[];
|
|
157
|
+
}>;
|
|
144
158
|
/**
|
|
145
159
|
* Execute a release asset build. Pure orchestration over the injected client
|
|
146
160
|
* and a runtime-provided temp dir + react version.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-executor.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/build-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"build-executor.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/build-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ import { VERSION } from "../utils/version.js";
|
|
|
19
19
|
import { createFileSystem } from "../platform/compat/fs.js";
|
|
20
20
|
import { getHostEnv } from "../platform/compat/process.js";
|
|
21
21
|
import { dirname, join, normalize } from "../platform/compat/path/index.js";
|
|
22
|
-
import { resolveFrameworkSourcePath } from "../platform/compat/framework-source-resolver.js";
|
|
22
|
+
import { FRAMEWORK_EMBEDDED_SRC_DIR, FRAMEWORK_SRC_DIR, resolveFrameworkSourcePath, resolveRelativeFrameworkSourceImport, } from "../platform/compat/framework-source-resolver.js";
|
|
23
23
|
import { transformToESM } from "../transforms/esm-transform.js";
|
|
24
24
|
import { cacheHttpImportsToLocal, normalizeHttpUrl } from "../transforms/esm/http-cache.js";
|
|
25
25
|
import { extractSourceUrl } from "../transforms/esm/source-url-embed.js";
|
|
@@ -54,6 +54,20 @@ function frameworkModuleUrlToSourceKey(moduleUrl) {
|
|
|
54
54
|
.slice(FRAMEWORK_MODULE_URL_PREFIX.length)
|
|
55
55
|
.replace(/\.(mjs|cjs|js|jsx|ts|tsx)$/, "");
|
|
56
56
|
}
|
|
57
|
+
function frameworkSourceKeyToModuleUrl(sourceKey) {
|
|
58
|
+
return `${FRAMEWORK_MODULE_URL_PREFIX}${sourceKey}.js`;
|
|
59
|
+
}
|
|
60
|
+
function frameworkSourcePathToSourceKey(sourcePath, lookupDirs) {
|
|
61
|
+
for (const lookupDir of lookupDirs) {
|
|
62
|
+
if (!sourcePath.startsWith(`${lookupDir}/`))
|
|
63
|
+
continue;
|
|
64
|
+
const relativePath = sourcePath.slice(lookupDir.length + 1)
|
|
65
|
+
.replace(/\.src$/, "")
|
|
66
|
+
.replace(/\.(tsx?|jsx?|mjs|mdx?|js)$/, "");
|
|
67
|
+
return normalizeLogicalPath(relativePath);
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
57
71
|
/** Sanitize an error for state reporting (no internal paths / stack traces). */
|
|
58
72
|
function sanitizeError(error) {
|
|
59
73
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -205,11 +219,11 @@ async function collectProjectModuleImports(code, logicalPath, knownPaths) {
|
|
|
205
219
|
}
|
|
206
220
|
async function rewriteProjectModuleImports(code, logicalPath, moduleAssets, knownPaths, dependencyUrls) {
|
|
207
221
|
function rewriteSpecifier(specifier) {
|
|
208
|
-
const dependencyUrl = dependencyUrls
|
|
222
|
+
const dependencyUrl = dependencyUrlForSpecifier(dependencyUrls, specifier);
|
|
209
223
|
if (dependencyUrl)
|
|
210
224
|
return dependencyUrl;
|
|
211
225
|
if (specifier.startsWith("/_vf_modules/")) {
|
|
212
|
-
const dependencyUrl = dependencyUrls
|
|
226
|
+
const dependencyUrl = dependencyUrlForSpecifier(dependencyUrls, specifier);
|
|
213
227
|
if (dependencyUrl)
|
|
214
228
|
return dependencyUrl;
|
|
215
229
|
}
|
|
@@ -219,21 +233,51 @@ async function rewriteProjectModuleImports(code, logicalPath, moduleAssets, know
|
|
|
219
233
|
}
|
|
220
234
|
return await replaceSpecifiers(code, (specifier) => rewriteSpecifier(specifier));
|
|
221
235
|
}
|
|
236
|
+
function dependencyUrlForSpecifier(dependencyUrls, specifier) {
|
|
237
|
+
const direct = dependencyUrls.get(specifier) ??
|
|
238
|
+
dependencyUrls.get(normalizeDependencySpecifier(specifier));
|
|
239
|
+
if (direct)
|
|
240
|
+
return direct;
|
|
241
|
+
if (specifier.startsWith("http://") || specifier.startsWith("https://")) {
|
|
242
|
+
const normalized = normalizeHttpUrl(specifier);
|
|
243
|
+
return dependencyUrls.get(normalized) ??
|
|
244
|
+
dependencyUrls.get(normalizeDependencySpecifier(normalized)) ?? null;
|
|
245
|
+
}
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
export function releaseAssetDependencyUrlForSpecifier(dependencyUrls, specifier) {
|
|
249
|
+
return dependencyUrlForSpecifier(dependencyUrls, specifier);
|
|
250
|
+
}
|
|
222
251
|
function buildDependencyUrlMap(dependencies, dependencyModules) {
|
|
223
252
|
const urls = new Map();
|
|
224
253
|
for (const [manifestKey, entry] of Object.entries(dependencies)) {
|
|
225
254
|
const dependency = dependencyModules?.get(manifestKey);
|
|
226
|
-
if (!dependency)
|
|
227
|
-
continue;
|
|
228
255
|
const url = releaseAssetUrl(entry.contentHash, "js");
|
|
229
256
|
urls.set(manifestKey, url);
|
|
257
|
+
urls.set(normalizeDependencySpecifier(manifestKey), url);
|
|
258
|
+
if (manifestKey.startsWith("http://") || manifestKey.startsWith("https://")) {
|
|
259
|
+
const normalized = normalizeHttpUrl(manifestKey);
|
|
260
|
+
urls.set(normalized, url);
|
|
261
|
+
urls.set(normalizeDependencySpecifier(normalized), url);
|
|
262
|
+
}
|
|
263
|
+
if (!dependency)
|
|
264
|
+
continue;
|
|
230
265
|
urls.set(entry.logicalPath, url);
|
|
231
266
|
for (const specifier of dependency.specifiers) {
|
|
267
|
+
urls.set(specifier, url);
|
|
232
268
|
urls.set(normalizeDependencySpecifier(specifier), url);
|
|
269
|
+
if (specifier.startsWith("http://") || specifier.startsWith("https://")) {
|
|
270
|
+
const normalized = normalizeHttpUrl(specifier);
|
|
271
|
+
urls.set(normalized, url);
|
|
272
|
+
urls.set(normalizeDependencySpecifier(normalized), url);
|
|
273
|
+
}
|
|
233
274
|
}
|
|
234
275
|
}
|
|
235
276
|
return urls;
|
|
236
277
|
}
|
|
278
|
+
export function buildReleaseAssetDependencyUrlMap(dependencies) {
|
|
279
|
+
return buildDependencyUrlMap(dependencies);
|
|
280
|
+
}
|
|
237
281
|
function exposeDependencySpecifierAliases(assets, dependencyModules) {
|
|
238
282
|
const aliased = { ...assets };
|
|
239
283
|
for (const dependency of dependencyModules.values()) {
|
|
@@ -761,20 +805,38 @@ async function addPreparedJavaScriptAsset(logicalPath, code, uploadQueue, pendin
|
|
|
761
805
|
}
|
|
762
806
|
return entry;
|
|
763
807
|
}
|
|
764
|
-
async function buildFrameworkDependencies(input, tempDir, transform, uploadQueue, pendingBytes, gaps) {
|
|
808
|
+
async function buildFrameworkDependencies(input, tempDir, transform, dependencyUrls, uploadQueue, pendingBytes, gaps) {
|
|
765
809
|
const fs = createFileSystem();
|
|
766
810
|
const dependencies = {};
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
811
|
+
const lookupDirs = [FRAMEWORK_SRC_DIR, FRAMEWORK_EMBEDDED_SRC_DIR, join(tempDir, "src")];
|
|
812
|
+
const moduleAssets = new Map();
|
|
813
|
+
const visiting = new Set();
|
|
814
|
+
async function resolveFrameworkImport(specifier, fromSourcePath) {
|
|
815
|
+
if (specifier.startsWith("./") || specifier.startsWith("../")) {
|
|
816
|
+
const resolvedPath = await resolveRelativeFrameworkSourceImport(specifier, fromSourcePath);
|
|
817
|
+
return resolvedPath ? frameworkSourcePathToSourceKey(resolvedPath, lookupDirs) : null;
|
|
818
|
+
}
|
|
819
|
+
if (specifier.startsWith(FRAMEWORK_MODULE_URL_PREFIX)) {
|
|
820
|
+
return frameworkModuleUrlToSourceKey(specifier);
|
|
821
|
+
}
|
|
822
|
+
return null;
|
|
823
|
+
}
|
|
824
|
+
async function processFrameworkModule(sourceKey, publicSpecifier) {
|
|
825
|
+
const existing = moduleAssets.get(sourceKey);
|
|
826
|
+
if (existing)
|
|
827
|
+
return existing;
|
|
828
|
+
if (visiting.has(sourceKey)) {
|
|
829
|
+
gaps.push(`dependency-cycle:${publicSpecifier}:${sourceKey}`);
|
|
830
|
+
return null;
|
|
831
|
+
}
|
|
771
832
|
const frameworkSource = await resolveFrameworkSourcePath(sourceKey, {
|
|
772
833
|
extraLookupDirs: [join(tempDir, "src")],
|
|
773
834
|
});
|
|
774
835
|
if (!frameworkSource) {
|
|
775
|
-
gaps.push(`dependency-missing:${
|
|
776
|
-
|
|
836
|
+
gaps.push(`dependency-missing:${publicSpecifier}:${sourceKey}`);
|
|
837
|
+
return null;
|
|
777
838
|
}
|
|
839
|
+
visiting.add(sourceKey);
|
|
778
840
|
let code;
|
|
779
841
|
try {
|
|
780
842
|
const source = await fs.readTextFile(frameworkSource.path);
|
|
@@ -784,24 +846,98 @@ async function buildFrameworkDependencies(input, tempDir, transform, uploadQueue
|
|
|
784
846
|
ssr: false,
|
|
785
847
|
reactVersion: input.reactVersion,
|
|
786
848
|
});
|
|
849
|
+
const frameworkImportUrls = new Map();
|
|
850
|
+
let hasUnresolvedFrameworkImport = false;
|
|
851
|
+
for (const imp of await parseImports(code)) {
|
|
852
|
+
if (!imp.n)
|
|
853
|
+
continue;
|
|
854
|
+
const importedSourceKey = await resolveFrameworkImport(imp.n, frameworkSource.path);
|
|
855
|
+
if (!importedSourceKey)
|
|
856
|
+
continue;
|
|
857
|
+
const importedAsset = await processFrameworkModule(importedSourceKey, publicSpecifier);
|
|
858
|
+
if (!importedAsset) {
|
|
859
|
+
hasUnresolvedFrameworkImport = true;
|
|
860
|
+
break;
|
|
861
|
+
}
|
|
862
|
+
frameworkImportUrls.set(imp.n, releaseAssetUrl(importedAsset.contentHash, "js"));
|
|
863
|
+
}
|
|
864
|
+
if (hasUnresolvedFrameworkImport) {
|
|
865
|
+
visiting.delete(sourceKey);
|
|
866
|
+
return null;
|
|
867
|
+
}
|
|
868
|
+
code = await replaceSpecifiers(code, (specifier) => frameworkImportUrls.get(specifier) ??
|
|
869
|
+
dependencyUrlForSpecifier(dependencyUrls, specifier));
|
|
787
870
|
}
|
|
788
871
|
catch (error) {
|
|
789
|
-
gaps.push(`dependency-transform-failed:${
|
|
872
|
+
gaps.push(`dependency-transform-failed:${publicSpecifier}:${sourceKey}`);
|
|
790
873
|
logger.warn("Framework dependency transform failed during release asset build", {
|
|
791
|
-
specifier,
|
|
874
|
+
specifier: publicSpecifier,
|
|
875
|
+
sourceKey,
|
|
792
876
|
error: sanitizeError(error),
|
|
793
877
|
});
|
|
794
|
-
|
|
878
|
+
visiting.delete(sourceKey);
|
|
879
|
+
return null;
|
|
795
880
|
}
|
|
796
|
-
|
|
881
|
+
visiting.delete(sourceKey);
|
|
882
|
+
const entry = await addPreparedJavaScriptAsset(`__dependencies__/${frameworkSourceKeyToModuleUrl(sourceKey)}`, code, uploadQueue, pendingBytes);
|
|
883
|
+
if (!entry) {
|
|
884
|
+
gaps.push(`dependency-oversized:${publicSpecifier}:${sourceKey}`);
|
|
885
|
+
return null;
|
|
886
|
+
}
|
|
887
|
+
moduleAssets.set(sourceKey, entry);
|
|
888
|
+
return entry;
|
|
889
|
+
}
|
|
890
|
+
for (const [specifier, moduleUrl] of Object.entries(PLATFORM_UTILITIES)) {
|
|
891
|
+
const sourceKey = frameworkModuleUrlToSourceKey(moduleUrl);
|
|
892
|
+
if (!sourceKey)
|
|
893
|
+
continue;
|
|
894
|
+
const entry = await processFrameworkModule(sourceKey, specifier);
|
|
797
895
|
if (!entry) {
|
|
798
|
-
gaps.push(`dependency-oversized:${specifier}`);
|
|
799
896
|
continue;
|
|
800
897
|
}
|
|
801
898
|
dependencies[specifier] = entry;
|
|
802
899
|
}
|
|
803
900
|
return dependencies;
|
|
804
901
|
}
|
|
902
|
+
export async function buildFrameworkDependencyAssets(options) {
|
|
903
|
+
const uploadQueue = [];
|
|
904
|
+
const pendingBytes = new Map();
|
|
905
|
+
const gaps = [];
|
|
906
|
+
const transform = options.transform ?? transformToESM;
|
|
907
|
+
const dependencies = await buildFrameworkDependencies({
|
|
908
|
+
projectReference: options.projectId ?? "local",
|
|
909
|
+
projectId: options.projectId ?? "local",
|
|
910
|
+
releaseId: "local",
|
|
911
|
+
releaseVersion: 0,
|
|
912
|
+
releaseVersionRef: "local",
|
|
913
|
+
reactVersion: options.reactVersion,
|
|
914
|
+
client: undefined,
|
|
915
|
+
adapter: options.adapter,
|
|
916
|
+
transform,
|
|
917
|
+
}, options.tempDir, transform, options.dependencyUrls, uploadQueue, pendingBytes, gaps);
|
|
918
|
+
return {
|
|
919
|
+
dependencies,
|
|
920
|
+
assets: uploadQueue.flatMap((asset) => {
|
|
921
|
+
const stored = pendingBytes.get(asset.contentHash);
|
|
922
|
+
if (!stored)
|
|
923
|
+
return [];
|
|
924
|
+
return [{
|
|
925
|
+
...asset,
|
|
926
|
+
bytes: stored.bytes,
|
|
927
|
+
}];
|
|
928
|
+
}),
|
|
929
|
+
gaps,
|
|
930
|
+
};
|
|
931
|
+
}
|
|
932
|
+
function addFrameworkDependencyUrlAliases(urls, dependencies) {
|
|
933
|
+
for (const [specifier, entry] of Object.entries(dependencies)) {
|
|
934
|
+
const url = releaseAssetUrl(entry.contentHash, "js");
|
|
935
|
+
urls.set(specifier, url);
|
|
936
|
+
const moduleUrl = PLATFORM_UTILITIES[specifier];
|
|
937
|
+
if (moduleUrl)
|
|
938
|
+
urls.set(moduleUrl, url);
|
|
939
|
+
}
|
|
940
|
+
}
|
|
805
941
|
/**
|
|
806
942
|
* Walk the static import graph from a set of entry points using BFS.
|
|
807
943
|
* Returns all reachable logical paths (entries included).
|
|
@@ -986,7 +1122,6 @@ async function runBuildInner(input, tempDir, client, transform) {
|
|
|
986
1122
|
};
|
|
987
1123
|
}
|
|
988
1124
|
}
|
|
989
|
-
const frameworkDependencies = await buildFrameworkDependencies(input, tempDir, transform, uploadQueue, pendingBytes, gaps);
|
|
990
1125
|
let httpDependencies;
|
|
991
1126
|
let httpDependencyFallbackUrls;
|
|
992
1127
|
try {
|
|
@@ -1011,11 +1146,14 @@ async function runBuildInner(input, tempDir, client, transform) {
|
|
|
1011
1146
|
};
|
|
1012
1147
|
}
|
|
1013
1148
|
httpDependencies = exposeDependencySpecifierAliases(httpDependencies, dependencyModules);
|
|
1014
|
-
const
|
|
1015
|
-
const dependencyUrls = buildDependencyUrlMap(dependencies, dependencyModules);
|
|
1149
|
+
const dependencyUrls = buildDependencyUrlMap(httpDependencies, dependencyModules);
|
|
1016
1150
|
for (const [specifier, url] of httpDependencyFallbackUrls) {
|
|
1017
1151
|
dependencyUrls.set(specifier, url);
|
|
1018
1152
|
}
|
|
1153
|
+
const frameworkDependencies = await buildFrameworkDependencies(input, tempDir, transform, dependencyUrls, uploadQueue, pendingBytes, gaps);
|
|
1154
|
+
if (vendorDependencies)
|
|
1155
|
+
addFrameworkDependencyUrlAliases(dependencyUrls, frameworkDependencies);
|
|
1156
|
+
const dependencies = { ...frameworkDependencies, ...httpDependencies };
|
|
1019
1157
|
const { modules, skippedModules } = await finalizeProjectModules(transformedModules, knownPaths, dependencyUrls, uploadQueue, pendingBytes, gaps);
|
|
1020
1158
|
for (const logicalPath of transformedModules.keys()) {
|
|
1021
1159
|
if (modules[logicalPath])
|
|
@@ -23,11 +23,14 @@ export interface CacheCoordinatorOptions {
|
|
|
23
23
|
*/
|
|
24
24
|
contentSourceId?: string;
|
|
25
25
|
}
|
|
26
|
+
export type CacheLookupStatus = "hit" | "miss" | "expired";
|
|
26
27
|
export interface CacheLookupResult {
|
|
27
28
|
cachedResult?: RenderResult;
|
|
28
29
|
depAwareSlug: string;
|
|
29
30
|
moduleCacheKey: string;
|
|
30
31
|
cachedModule?: RenderResult["pageModule"];
|
|
32
|
+
cacheStatus: CacheLookupStatus;
|
|
33
|
+
lookupDurationMs: number;
|
|
31
34
|
}
|
|
32
35
|
export declare class CacheCoordinator {
|
|
33
36
|
private store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-coordinator.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/cache/cache-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"cache-coordinator.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/cache/cache-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAQnF,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAC1C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,OAAO,GAAE,uBAA4B;IAyBjD;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAKrB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0CvE,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;CAkBtB"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { rendererLogger as logger } from "../../utils/index.js";
|
|
2
2
|
import { MemoryCacheStore } from "./stores/index.js";
|
|
3
3
|
import { withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
4
|
+
import { markRequestProfilePhase } from "../../observability/request-profiler.js";
|
|
5
|
+
import { metrics } from "../../observability/simple-metrics/index.js";
|
|
4
6
|
/** Default TTL for cache entries (5 minutes) */
|
|
5
7
|
const DEFAULT_CACHE_TTL_MS = 5 * 60 * 1_000;
|
|
6
8
|
export class CacheCoordinator {
|
|
@@ -41,19 +43,33 @@ export class CacheCoordinator {
|
|
|
41
43
|
checkCache(slug, cacheKey) {
|
|
42
44
|
const key = this.buildCacheKey(slug, cacheKey);
|
|
43
45
|
return withSpan("cache.checkCache", async () => {
|
|
46
|
+
const lookupStart = performance.now();
|
|
44
47
|
const cached = await this.store.get(key);
|
|
45
48
|
if (!cached) {
|
|
46
|
-
|
|
49
|
+
const lookupDurationMs = roundDurationMs(performance.now() - lookupStart);
|
|
50
|
+
recordCacheLookup("miss", lookupDurationMs);
|
|
51
|
+
return { depAwareSlug: slug, moduleCacheKey: key, cacheStatus: "miss", lookupDurationMs };
|
|
47
52
|
}
|
|
48
53
|
if (this.isExpired(cached)) {
|
|
49
54
|
await this.store.delete(key);
|
|
50
|
-
|
|
55
|
+
const lookupDurationMs = roundDurationMs(performance.now() - lookupStart);
|
|
56
|
+
recordCacheLookup("expired", lookupDurationMs);
|
|
57
|
+
return {
|
|
58
|
+
depAwareSlug: slug,
|
|
59
|
+
moduleCacheKey: key,
|
|
60
|
+
cacheStatus: "expired",
|
|
61
|
+
lookupDurationMs,
|
|
62
|
+
};
|
|
51
63
|
}
|
|
64
|
+
const lookupDurationMs = roundDurationMs(performance.now() - lookupStart);
|
|
65
|
+
recordCacheLookup("hit", lookupDurationMs);
|
|
52
66
|
return {
|
|
53
67
|
cachedResult: this.hydrateResult(cached),
|
|
54
68
|
depAwareSlug: slug,
|
|
55
69
|
moduleCacheKey: key,
|
|
56
70
|
cachedModule: cached.result.pageModule,
|
|
71
|
+
cacheStatus: "hit",
|
|
72
|
+
lookupDurationMs,
|
|
57
73
|
};
|
|
58
74
|
}, { "cache.slug": slug, "cache.key": key, "cache.projectId": this.projectId ?? "unknown" });
|
|
59
75
|
}
|
|
@@ -128,3 +144,11 @@ export class CacheCoordinator {
|
|
|
128
144
|
};
|
|
129
145
|
}
|
|
130
146
|
}
|
|
147
|
+
function roundDurationMs(value) {
|
|
148
|
+
return Math.round(value * 100) / 100;
|
|
149
|
+
}
|
|
150
|
+
function recordCacheLookup(status, durationMs) {
|
|
151
|
+
markRequestProfilePhase("render.cache_lookup", durationMs);
|
|
152
|
+
markRequestProfilePhase(`render.cache_${status}`);
|
|
153
|
+
metrics.recordCacheGet(status === "hit");
|
|
154
|
+
}
|