@agentuity/cli 2.0.11 → 3.0.0-alpha.1
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/dist/cmd/ai/prompt/index.d.ts.map +1 -1
- package/dist/cmd/ai/prompt/index.js +2 -7
- package/dist/cmd/ai/prompt/index.js.map +1 -1
- package/dist/cmd/build/adapters/generic.d.ts +29 -0
- package/dist/cmd/build/adapters/generic.d.ts.map +1 -0
- package/dist/cmd/build/adapters/generic.js +190 -0
- package/dist/cmd/build/adapters/generic.js.map +1 -0
- package/dist/cmd/build/adapters/index.d.ts +15 -0
- package/dist/cmd/build/adapters/index.d.ts.map +1 -0
- package/dist/cmd/build/adapters/index.js +24 -0
- package/dist/cmd/build/adapters/index.js.map +1 -0
- package/dist/cmd/build/adapters/nextjs.d.ts +11 -0
- package/dist/cmd/build/adapters/nextjs.d.ts.map +1 -0
- package/dist/cmd/build/adapters/nextjs.js +118 -0
- package/dist/cmd/build/adapters/nextjs.js.map +1 -0
- package/dist/cmd/build/adapters/static-server.d.ts +23 -0
- package/dist/cmd/build/adapters/static-server.d.ts.map +1 -0
- package/dist/cmd/build/adapters/static-server.js +137 -0
- package/dist/cmd/build/adapters/static-server.js.map +1 -0
- package/dist/cmd/build/adapters/types.d.ts +71 -0
- package/dist/cmd/build/adapters/types.d.ts.map +1 -0
- package/dist/cmd/build/adapters/types.js +8 -0
- package/dist/cmd/build/adapters/types.js.map +1 -0
- package/dist/cmd/build/detect/engine.d.ts +24 -0
- package/dist/cmd/build/detect/engine.d.ts.map +1 -0
- package/dist/cmd/build/detect/engine.js +91 -0
- package/dist/cmd/build/detect/engine.js.map +1 -0
- package/dist/cmd/build/detect/frameworks.d.ts +66 -0
- package/dist/cmd/build/detect/frameworks.d.ts.map +1 -0
- package/dist/cmd/build/detect/frameworks.js +278 -0
- package/dist/cmd/build/detect/frameworks.js.map +1 -0
- package/dist/cmd/build/detect/generic.d.ts +13 -0
- package/dist/cmd/build/detect/generic.d.ts.map +1 -0
- package/dist/cmd/build/detect/generic.js +62 -0
- package/dist/cmd/build/detect/generic.js.map +1 -0
- package/dist/cmd/build/detect/index.d.ts +27 -0
- package/dist/cmd/build/detect/index.d.ts.map +1 -0
- package/dist/cmd/build/detect/index.js +76 -0
- package/dist/cmd/build/detect/index.js.map +1 -0
- package/dist/cmd/build/detect/types.d.ts +91 -0
- package/dist/cmd/build/detect/types.d.ts.map +1 -0
- package/dist/cmd/build/detect/types.js +9 -0
- package/dist/cmd/build/detect/types.js.map +1 -0
- package/dist/cmd/build/detect/util.d.ts +41 -0
- package/dist/cmd/build/detect/util.d.ts.map +1 -0
- package/dist/cmd/build/detect/util.js +101 -0
- package/dist/cmd/build/detect/util.js.map +1 -0
- package/dist/cmd/build/index.d.ts.map +1 -1
- package/dist/cmd/build/index.js +49 -22
- package/dist/cmd/build/index.js.map +1 -1
- package/dist/cmd/build/package/index.d.ts +30 -0
- package/dist/cmd/build/package/index.d.ts.map +1 -0
- package/dist/cmd/build/package/index.js +39 -0
- package/dist/cmd/build/package/index.js.map +1 -0
- package/dist/cmd/build/package/launch.d.ts +56 -0
- package/dist/cmd/build/package/launch.d.ts.map +1 -0
- package/dist/cmd/build/package/launch.js +56 -0
- package/dist/cmd/build/package/launch.js.map +1 -0
- package/dist/cmd/build/typecheck.d.ts.map +1 -1
- package/dist/cmd/build/typecheck.js +8 -0
- package/dist/cmd/build/typecheck.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +63 -13
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/coder/create.js +7 -7
- package/dist/cmd/coder/create.js.map +1 -1
- package/dist/cmd/coder/update.js +8 -8
- package/dist/cmd/coder/update.js.map +1 -1
- package/dist/cmd/coder/workspace/create.js +9 -9
- package/dist/cmd/coder/workspace/create.js.map +1 -1
- package/dist/cmd/dev/index.d.ts +9 -0
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +127 -923
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/project/auth/shared.d.ts.map +1 -1
- package/dist/cmd/project/auth/shared.js +14 -38
- package/dist/cmd/project/auth/shared.js.map +1 -1
- package/dist/cmd/project/create.d.ts.map +1 -1
- package/dist/cmd/project/create.js +12 -19
- package/dist/cmd/project/create.js.map +1 -1
- package/dist/cmd/project/frameworks-ai-examples.d.ts +15 -0
- package/dist/cmd/project/frameworks-ai-examples.d.ts.map +1 -0
- package/dist/cmd/project/frameworks-ai-examples.js +160 -0
- package/dist/cmd/project/frameworks-ai-examples.js.map +1 -0
- package/dist/cmd/project/frameworks-landing-pages.d.ts +17 -0
- package/dist/cmd/project/frameworks-landing-pages.d.ts.map +1 -0
- package/dist/cmd/project/frameworks-landing-pages.js +242 -0
- package/dist/cmd/project/frameworks-landing-pages.js.map +1 -0
- package/dist/cmd/project/frameworks.d.ts +58 -0
- package/dist/cmd/project/frameworks.d.ts.map +1 -0
- package/dist/cmd/project/frameworks.js +152 -0
- package/dist/cmd/project/frameworks.js.map +1 -0
- package/dist/cmd/project/reconcile.d.ts.map +1 -1
- package/dist/cmd/project/reconcile.js +10 -23
- package/dist/cmd/project/reconcile.js.map +1 -1
- package/dist/cmd/project/remote-import.js +1 -1
- package/dist/cmd/project/scaffold.d.ts +58 -0
- package/dist/cmd/project/scaffold.d.ts.map +1 -0
- package/dist/cmd/project/scaffold.js +223 -0
- package/dist/cmd/project/scaffold.js.map +1 -0
- package/dist/cmd/project/template-flow.d.ts +8 -4
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +93 -144
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/deploy-metadata.d.ts +49 -0
- package/dist/deploy-metadata.d.ts.map +1 -0
- package/dist/deploy-metadata.js +183 -0
- package/dist/deploy-metadata.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +24 -30
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -8
- package/src/cmd/ai/prompt/index.ts +2 -7
- package/src/cmd/build/adapters/generic.ts +239 -0
- package/src/cmd/build/adapters/index.ts +30 -0
- package/src/cmd/build/adapters/nextjs.ts +146 -0
- package/src/cmd/build/adapters/static-server.ts +143 -0
- package/src/cmd/build/adapters/types.ts +93 -0
- package/src/cmd/build/detect/engine.ts +111 -0
- package/src/cmd/build/detect/frameworks.ts +335 -0
- package/src/cmd/build/detect/generic.ts +71 -0
- package/src/cmd/build/detect/index.ts +122 -0
- package/src/cmd/build/detect/types.ts +109 -0
- package/src/cmd/build/detect/util.ts +104 -0
- package/src/cmd/build/index.ts +64 -24
- package/src/cmd/build/package/index.ts +66 -0
- package/src/cmd/build/package/launch.ts +104 -0
- package/src/cmd/build/typecheck.ts +9 -0
- package/src/cmd/cloud/deploy.ts +86 -13
- package/src/cmd/coder/create.ts +8 -8
- package/src/cmd/coder/update.ts +7 -7
- package/src/cmd/coder/workspace/create.ts +10 -10
- package/src/cmd/dev/index.ts +155 -1059
- package/src/cmd/project/auth/shared.ts +14 -39
- package/src/cmd/project/create.ts +14 -19
- package/src/cmd/project/frameworks-ai-examples.ts +166 -0
- package/src/cmd/project/frameworks-landing-pages.ts +267 -0
- package/src/cmd/project/frameworks.ts +223 -0
- package/src/cmd/project/reconcile.ts +10 -22
- package/src/cmd/project/remote-import.ts +1 -1
- package/src/cmd/project/scaffold.ts +300 -0
- package/src/cmd/project/template-flow.ts +102 -156
- package/src/deploy-metadata.ts +253 -0
- package/src/index.ts +0 -2
- package/src/types.ts +0 -31
- package/dist/agents-docs.d.ts +0 -23
- package/dist/agents-docs.d.ts.map +0 -1
- package/dist/agents-docs.js +0 -56
- package/dist/agents-docs.js.map +0 -1
- package/dist/cmd/ai/prompt/agent.d.ts +0 -10
- package/dist/cmd/ai/prompt/agent.d.ts.map +0 -1
- package/dist/cmd/ai/prompt/agent.js +0 -28
- package/dist/cmd/ai/prompt/agent.js.map +0 -1
- package/dist/cmd/build/app-router-detector.d.ts +0 -39
- package/dist/cmd/build/app-router-detector.d.ts.map +0 -1
- package/dist/cmd/build/app-router-detector.js +0 -229
- package/dist/cmd/build/app-router-detector.js.map +0 -1
- package/dist/cmd/build/format-schema.d.ts +0 -6
- package/dist/cmd/build/format-schema.d.ts.map +0 -1
- package/dist/cmd/build/format-schema.js +0 -60
- package/dist/cmd/build/format-schema.js.map +0 -1
- package/dist/cmd/build/vite/agent-discovery.d.ts +0 -37
- package/dist/cmd/build/vite/agent-discovery.d.ts.map +0 -1
- package/dist/cmd/build/vite/agent-discovery.js +0 -263
- package/dist/cmd/build/vite/agent-discovery.js.map +0 -1
- package/dist/cmd/build/vite/beacon-plugin.d.ts +0 -19
- package/dist/cmd/build/vite/beacon-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/beacon-plugin.js +0 -137
- package/dist/cmd/build/vite/beacon-plugin.js.map +0 -1
- package/dist/cmd/build/vite/browser-env-plugin.d.ts +0 -9
- package/dist/cmd/build/vite/browser-env-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/browser-env-plugin.js +0 -28
- package/dist/cmd/build/vite/browser-env-plugin.js.map +0 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts +0 -67
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +0 -1
- package/dist/cmd/build/vite/bun-dev-server.js +0 -340
- package/dist/cmd/build/vite/bun-dev-server.js.map +0 -1
- package/dist/cmd/build/vite/bundle-files.d.ts +0 -12
- package/dist/cmd/build/vite/bundle-files.d.ts.map +0 -1
- package/dist/cmd/build/vite/bundle-files.js +0 -107
- package/dist/cmd/build/vite/bundle-files.js.map +0 -1
- package/dist/cmd/build/vite/config-loader.d.ts +0 -29
- package/dist/cmd/build/vite/config-loader.d.ts.map +0 -1
- package/dist/cmd/build/vite/config-loader.js +0 -57
- package/dist/cmd/build/vite/config-loader.js.map +0 -1
- package/dist/cmd/build/vite/db-rewrite.d.ts +0 -50
- package/dist/cmd/build/vite/db-rewrite.d.ts.map +0 -1
- package/dist/cmd/build/vite/db-rewrite.js +0 -169
- package/dist/cmd/build/vite/db-rewrite.js.map +0 -1
- package/dist/cmd/build/vite/docs-generator.d.ts +0 -13
- package/dist/cmd/build/vite/docs-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/docs-generator.js +0 -97
- package/dist/cmd/build/vite/docs-generator.js.map +0 -1
- package/dist/cmd/build/vite/env-types-generator.d.ts +0 -26
- package/dist/cmd/build/vite/env-types-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/env-types-generator.js +0 -110
- package/dist/cmd/build/vite/env-types-generator.js.map +0 -1
- package/dist/cmd/build/vite/index.d.ts +0 -3
- package/dist/cmd/build/vite/index.d.ts.map +0 -1
- package/dist/cmd/build/vite/index.js +0 -4
- package/dist/cmd/build/vite/index.js.map +0 -1
- package/dist/cmd/build/vite/lifecycle-generator.d.ts +0 -19
- package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/lifecycle-generator.js +0 -328
- package/dist/cmd/build/vite/lifecycle-generator.js.map +0 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts +0 -36
- package/dist/cmd/build/vite/metadata-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/metadata-generator.js +0 -575
- package/dist/cmd/build/vite/metadata-generator.js.map +0 -1
- package/dist/cmd/build/vite/prompt-generator.d.ts +0 -23
- package/dist/cmd/build/vite/prompt-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/prompt-generator.js +0 -123
- package/dist/cmd/build/vite/prompt-generator.js.map +0 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
- package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
- package/dist/cmd/build/vite/route-discovery.d.ts +0 -64
- package/dist/cmd/build/vite/route-discovery.d.ts.map +0 -1
- package/dist/cmd/build/vite/route-discovery.js +0 -187
- package/dist/cmd/build/vite/route-discovery.js.map +0 -1
- package/dist/cmd/build/vite/server-bundler.d.ts +0 -20
- package/dist/cmd/build/vite/server-bundler.d.ts.map +0 -1
- package/dist/cmd/build/vite/server-bundler.js +0 -388
- package/dist/cmd/build/vite/server-bundler.js.map +0 -1
- package/dist/cmd/build/vite/static-renderer.d.ts +0 -26
- package/dist/cmd/build/vite/static-renderer.d.ts.map +0 -1
- package/dist/cmd/build/vite/static-renderer.js +0 -188
- package/dist/cmd/build/vite/static-renderer.js.map +0 -1
- package/dist/cmd/build/vite/tailwind-source-plugin.d.ts +0 -15
- package/dist/cmd/build/vite/tailwind-source-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/tailwind-source-plugin.js +0 -61
- package/dist/cmd/build/vite/tailwind-source-plugin.js.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts +0 -24
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +0 -285
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts +0 -30
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server.js +0 -109
- package/dist/cmd/build/vite/vite-asset-server.js.map +0 -1
- package/dist/cmd/build/vite/vite-builder.d.ts +0 -59
- package/dist/cmd/build/vite/vite-builder.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-builder.js +0 -401
- package/dist/cmd/build/vite/vite-builder.js.map +0 -1
- package/dist/cmd/build/vite/workbench-generator.d.ts +0 -10
- package/dist/cmd/build/vite/workbench-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/workbench-generator.js +0 -135
- package/dist/cmd/build/vite/workbench-generator.js.map +0 -1
- package/dist/cmd/build/vite/ws-proxy.d.ts +0 -53
- package/dist/cmd/build/vite/ws-proxy.d.ts.map +0 -1
- package/dist/cmd/build/vite/ws-proxy.js +0 -95
- package/dist/cmd/build/vite/ws-proxy.js.map +0 -1
- package/dist/cmd/build/vite-bundler.d.ts +0 -29
- package/dist/cmd/build/vite-bundler.d.ts.map +0 -1
- package/dist/cmd/build/vite-bundler.js +0 -93
- package/dist/cmd/build/vite-bundler.js.map +0 -1
- package/dist/cmd/dev/agents.d.ts +0 -2
- package/dist/cmd/dev/agents.d.ts.map +0 -1
- package/dist/cmd/dev/agents.js +0 -123
- package/dist/cmd/dev/agents.js.map +0 -1
- package/dist/cmd/dev/api.d.ts +0 -20
- package/dist/cmd/dev/api.d.ts.map +0 -1
- package/dist/cmd/dev/api.js +0 -42
- package/dist/cmd/dev/api.js.map +0 -1
- package/dist/cmd/dev/dev-lock.d.ts +0 -62
- package/dist/cmd/dev/dev-lock.d.ts.map +0 -1
- package/dist/cmd/dev/dev-lock.js +0 -250
- package/dist/cmd/dev/dev-lock.js.map +0 -1
- package/dist/cmd/dev/download.d.ts +0 -11
- package/dist/cmd/dev/download.d.ts.map +0 -1
- package/dist/cmd/dev/download.js +0 -94
- package/dist/cmd/dev/download.js.map +0 -1
- package/dist/cmd/dev/file-watcher.d.ts +0 -24
- package/dist/cmd/dev/file-watcher.d.ts.map +0 -1
- package/dist/cmd/dev/file-watcher.js +0 -349
- package/dist/cmd/dev/file-watcher.js.map +0 -1
- package/dist/cmd/dev/process-manager.d.ts +0 -104
- package/dist/cmd/dev/process-manager.d.ts.map +0 -1
- package/dist/cmd/dev/process-manager.js +0 -204
- package/dist/cmd/dev/process-manager.js.map +0 -1
- package/dist/cmd/dev/sync.d.ts +0 -12
- package/dist/cmd/dev/sync.d.ts.map +0 -1
- package/dist/cmd/dev/sync.js +0 -227
- package/dist/cmd/dev/sync.js.map +0 -1
- package/dist/cmd/dev/templates.d.ts +0 -3
- package/dist/cmd/dev/templates.d.ts.map +0 -1
- package/dist/cmd/dev/templates.js +0 -58
- package/dist/cmd/dev/templates.js.map +0 -1
- package/dist/cmd/project/download.d.ts +0 -35
- package/dist/cmd/project/download.d.ts.map +0 -1
- package/dist/cmd/project/download.js +0 -403
- package/dist/cmd/project/download.js.map +0 -1
- package/dist/cmd/project/templates.d.ts +0 -9
- package/dist/cmd/project/templates.d.ts.map +0 -1
- package/dist/cmd/project/templates.js +0 -34
- package/dist/cmd/project/templates.js.map +0 -1
- package/src/agents-docs.ts +0 -86
- package/src/cmd/ai/prompt/agent.md +0 -305
- package/src/cmd/ai/prompt/agent.ts +0 -31
- package/src/cmd/build/app-router-detector.ts +0 -320
- package/src/cmd/build/format-schema.ts +0 -66
- package/src/cmd/build/vite/agent-discovery.ts +0 -380
- package/src/cmd/build/vite/beacon-plugin.ts +0 -164
- package/src/cmd/build/vite/browser-env-plugin.ts +0 -34
- package/src/cmd/build/vite/bun-dev-server.ts +0 -458
- package/src/cmd/build/vite/bundle-files.ts +0 -135
- package/src/cmd/build/vite/config-loader.ts +0 -76
- package/src/cmd/build/vite/db-rewrite.ts +0 -189
- package/src/cmd/build/vite/docs-generator.ts +0 -103
- package/src/cmd/build/vite/env-types-generator.ts +0 -145
- package/src/cmd/build/vite/index.ts +0 -3
- package/src/cmd/build/vite/lifecycle-generator.ts +0 -381
- package/src/cmd/build/vite/metadata-generator.ts +0 -713
- package/src/cmd/build/vite/prompt-generator.ts +0 -169
- package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
- package/src/cmd/build/vite/route-discovery.ts +0 -271
- package/src/cmd/build/vite/server-bundler.ts +0 -481
- package/src/cmd/build/vite/static-renderer.ts +0 -239
- package/src/cmd/build/vite/tailwind-source-plugin.ts +0 -73
- package/src/cmd/build/vite/vite-asset-server-config.ts +0 -349
- package/src/cmd/build/vite/vite-asset-server.ts +0 -154
- package/src/cmd/build/vite/vite-builder.ts +0 -503
- package/src/cmd/build/vite/workbench-generator.ts +0 -152
- package/src/cmd/build/vite/ws-proxy.ts +0 -126
- package/src/cmd/build/vite-bundler.ts +0 -137
- package/src/cmd/dev/agents.ts +0 -140
- package/src/cmd/dev/api.ts +0 -65
- package/src/cmd/dev/dev-lock.ts +0 -332
- package/src/cmd/dev/download.ts +0 -117
- package/src/cmd/dev/file-watcher.ts +0 -423
- package/src/cmd/dev/process-manager.ts +0 -261
- package/src/cmd/dev/sync.ts +0 -411
- package/src/cmd/dev/templates.ts +0 -66
- package/src/cmd/project/download.ts +0 -505
- package/src/cmd/project/templates.ts +0 -56
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework Detection
|
|
3
|
+
*
|
|
4
|
+
* Examines a project directory and determines which JS framework is being used.
|
|
5
|
+
* Returns a DetectedFramework with all the information needed to build and launch.
|
|
6
|
+
*
|
|
7
|
+
* Detection strategy:
|
|
8
|
+
* 1. Run the framework database engine (rules derived from @vercel/frameworks)
|
|
9
|
+
* 2. Fall back to generic detection (package.json scripts)
|
|
10
|
+
*/
|
|
11
|
+
import type { DetectedFramework, PackageJsonData } from './types';
|
|
12
|
+
/**
|
|
13
|
+
* Detect the framework used by a project.
|
|
14
|
+
*
|
|
15
|
+
* @param projectDir - Absolute path to the project root
|
|
16
|
+
* @returns DetectedFramework or null if nothing could be detected
|
|
17
|
+
*/
|
|
18
|
+
export declare function detectFramework(projectDir: string): Promise<DetectedFramework | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Detect the framework, but also return the parsed package.json for reuse.
|
|
21
|
+
*/
|
|
22
|
+
export declare function detectFrameworkWithPackageJson(projectDir: string): Promise<{
|
|
23
|
+
framework: DetectedFramework | null;
|
|
24
|
+
packageJson: PackageJsonData | null;
|
|
25
|
+
}>;
|
|
26
|
+
export type { DetectedFramework, FrameworkName, PackageJsonData, PackageManager, RuntimeName, } from './types';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/detect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA8ClE;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAoB3F;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CACnD,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAAC,CAsBvF;AAGD,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,GACX,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework Detection
|
|
3
|
+
*
|
|
4
|
+
* Examines a project directory and determines which JS framework is being used.
|
|
5
|
+
* Returns a DetectedFramework with all the information needed to build and launch.
|
|
6
|
+
*
|
|
7
|
+
* Detection strategy:
|
|
8
|
+
* 1. Run the framework database engine (rules derived from @vercel/frameworks)
|
|
9
|
+
* 2. Fall back to generic detection (package.json scripts)
|
|
10
|
+
*/
|
|
11
|
+
import { readPackageJson, detectPackageManager } from './util';
|
|
12
|
+
import { frameworkDefinitions } from './frameworks';
|
|
13
|
+
import { detectFromDatabase } from './engine';
|
|
14
|
+
import { genericDetector } from './generic';
|
|
15
|
+
/**
|
|
16
|
+
* Convert a matched framework definition + project context into a DetectedFramework.
|
|
17
|
+
*/
|
|
18
|
+
async function frameworkDefToDetected(slug, _name, buildCommand, outputDirectory, staticDirectory, projectDir, pkg) {
|
|
19
|
+
const pm = await detectPackageManager(projectDir);
|
|
20
|
+
// Use the project's build script if available, otherwise the framework default
|
|
21
|
+
const resolvedBuildCommand = pkg.scripts?.build ?? buildCommand ?? 'npm run build';
|
|
22
|
+
// Resolve output directory — use framework default or '.'
|
|
23
|
+
const resolvedOutputDir = outputDirectory ?? '.';
|
|
24
|
+
// Resolve static asset directory (relative to project root):
|
|
25
|
+
// - explicit string: path relative to project root (e.g., '.next/static', '.output/public')
|
|
26
|
+
// - null: the entire output directory is static (SSGs, SPAs) — use outputDirectory
|
|
27
|
+
// - undefined: no static assets known for this framework
|
|
28
|
+
const resolvedStaticDir = staticDirectory === null
|
|
29
|
+
? resolvedOutputDir // null means entire output IS the static dir
|
|
30
|
+
: (staticDirectory ?? undefined);
|
|
31
|
+
return {
|
|
32
|
+
name: slug,
|
|
33
|
+
runtime: 'node',
|
|
34
|
+
packageManager: pm,
|
|
35
|
+
buildCommand: resolvedBuildCommand,
|
|
36
|
+
buildOutput: resolvedOutputDir,
|
|
37
|
+
staticDir: resolvedStaticDir,
|
|
38
|
+
confidence: 'high',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Detect the framework used by a project.
|
|
43
|
+
*
|
|
44
|
+
* @param projectDir - Absolute path to the project root
|
|
45
|
+
* @returns DetectedFramework or null if nothing could be detected
|
|
46
|
+
*/
|
|
47
|
+
export async function detectFramework(projectDir) {
|
|
48
|
+
const pkg = await readPackageJson(projectDir);
|
|
49
|
+
if (!pkg)
|
|
50
|
+
return null;
|
|
51
|
+
// 1. Run through the framework database
|
|
52
|
+
const match = await detectFromDatabase(projectDir, pkg, frameworkDefinitions);
|
|
53
|
+
if (match) {
|
|
54
|
+
return frameworkDefToDetected(match.slug, match.name, match.buildCommand, match.outputDirectory, match.staticDir, projectDir, pkg);
|
|
55
|
+
}
|
|
56
|
+
// 2. Generic fallback
|
|
57
|
+
return genericDetector.detect(projectDir, pkg);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Detect the framework, but also return the parsed package.json for reuse.
|
|
61
|
+
*/
|
|
62
|
+
export async function detectFrameworkWithPackageJson(projectDir) {
|
|
63
|
+
const pkg = await readPackageJson(projectDir);
|
|
64
|
+
if (!pkg)
|
|
65
|
+
return { framework: null, packageJson: null };
|
|
66
|
+
// 1. Run through the framework database
|
|
67
|
+
const match = await detectFromDatabase(projectDir, pkg, frameworkDefinitions);
|
|
68
|
+
if (match) {
|
|
69
|
+
const framework = await frameworkDefToDetected(match.slug, match.name, match.buildCommand, match.outputDirectory, match.staticDir, projectDir, pkg);
|
|
70
|
+
return { framework, packageJson: pkg };
|
|
71
|
+
}
|
|
72
|
+
// 2. Generic fallback
|
|
73
|
+
const generic = await genericDetector.detect(projectDir, pkg);
|
|
74
|
+
return { framework: generic, packageJson: pkg };
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/build/detect/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework detection types.
|
|
3
|
+
*
|
|
4
|
+
* These types define the contract between detection, adapters, and packaging.
|
|
5
|
+
* The detection system identifies what JS framework a project uses,
|
|
6
|
+
* and adapters know how to build and launch each framework.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Framework identifier.
|
|
10
|
+
*
|
|
11
|
+
* This is a string rather than a union type because the framework database
|
|
12
|
+
* (derived from @vercel/frameworks) contains 25+ slugs and may grow.
|
|
13
|
+
* Special values:
|
|
14
|
+
* - 'generic' — Fallback: has package.json with build/start scripts
|
|
15
|
+
*/
|
|
16
|
+
export type FrameworkName = string;
|
|
17
|
+
/**
|
|
18
|
+
* Runtime that executes the built application.
|
|
19
|
+
*/
|
|
20
|
+
export type RuntimeName = 'node' | 'bun';
|
|
21
|
+
/**
|
|
22
|
+
* Package manager detected or preferred.
|
|
23
|
+
*/
|
|
24
|
+
export type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn';
|
|
25
|
+
/**
|
|
26
|
+
* Result of framework detection.
|
|
27
|
+
*
|
|
28
|
+
* This is the output of the detect phase and input to the adapter/build phase.
|
|
29
|
+
*/
|
|
30
|
+
export interface DetectedFramework {
|
|
31
|
+
/** Framework identifier */
|
|
32
|
+
name: FrameworkName;
|
|
33
|
+
/** Human-readable framework version (e.g., "15.3.0" for Next.js) */
|
|
34
|
+
version?: string;
|
|
35
|
+
/** Runtime that runs the production server */
|
|
36
|
+
runtime: RuntimeName;
|
|
37
|
+
/** Detected package manager */
|
|
38
|
+
packageManager: PackageManager;
|
|
39
|
+
/** The build command to execute (e.g., "next build", "vite build") */
|
|
40
|
+
buildCommand: string;
|
|
41
|
+
/** Directory where build output is written (relative to project root) */
|
|
42
|
+
buildOutput: string;
|
|
43
|
+
/** Command to start the production server (only for mode='server') */
|
|
44
|
+
startCommand?: string;
|
|
45
|
+
/** Server entrypoint file (relative to buildOutput) */
|
|
46
|
+
serverEntry?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Static/CDN asset directory (relative to project root).
|
|
49
|
+
* After the build runs, this directory contains files suitable for CDN upload.
|
|
50
|
+
* For pure SSGs/SPAs this equals buildOutput (entire output is static).
|
|
51
|
+
* For SSR frameworks this is a subdirectory (e.g., `.next/static`, `.output/public`).
|
|
52
|
+
*/
|
|
53
|
+
staticDir?: string;
|
|
54
|
+
/** Environment variables needed at build time */
|
|
55
|
+
buildEnv?: Record<string, string>;
|
|
56
|
+
/** Port the app listens on (default: 3000) */
|
|
57
|
+
port?: number;
|
|
58
|
+
/** Detection confidence: 'high' if config file found, 'low' if inferred */
|
|
59
|
+
confidence: 'high' | 'medium' | 'low';
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A single framework detector.
|
|
63
|
+
*
|
|
64
|
+
* Each detector examines the project directory and returns a DetectedFramework
|
|
65
|
+
* if it recognizes the project, or null if it doesn't apply.
|
|
66
|
+
*/
|
|
67
|
+
export interface FrameworkDetector {
|
|
68
|
+
/** Framework this detector handles */
|
|
69
|
+
name: FrameworkName;
|
|
70
|
+
/** Priority (lower = checked first). Specific frameworks before generic. */
|
|
71
|
+
priority: number;
|
|
72
|
+
/**
|
|
73
|
+
* Examine the project and return detection result, or null if not applicable.
|
|
74
|
+
*/
|
|
75
|
+
detect(projectDir: string, packageJson: PackageJsonData): Promise<DetectedFramework | null>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Parsed package.json data relevant to detection.
|
|
79
|
+
*/
|
|
80
|
+
export interface PackageJsonData {
|
|
81
|
+
name?: string;
|
|
82
|
+
version?: string;
|
|
83
|
+
scripts?: Record<string, string>;
|
|
84
|
+
dependencies?: Record<string, string>;
|
|
85
|
+
devDependencies?: Record<string, string>;
|
|
86
|
+
main?: string;
|
|
87
|
+
module?: string;
|
|
88
|
+
type?: string;
|
|
89
|
+
engines?: Record<string, string>;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/detect/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,2BAA2B;IAC3B,IAAI,EAAE,aAAa,CAAC;IAEpB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAC;IAErB,+BAA+B;IAC/B,cAAc,EAAE,cAAc,CAAC;IAE/B,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IAErB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IAEpB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,sCAAsC;IACtC,IAAI,EAAE,aAAa,CAAC;IAEpB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CAC5F;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework detection types.
|
|
3
|
+
*
|
|
4
|
+
* These types define the contract between detection, adapters, and packaging.
|
|
5
|
+
* The detection system identifies what JS framework a project uses,
|
|
6
|
+
* and adapters know how to build and launch each framework.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/cmd/build/detect/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detection utilities shared across framework detectors.
|
|
3
|
+
*/
|
|
4
|
+
import type { PackageJsonData, PackageManager } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* Check if a file exists (any of the given names) in a directory.
|
|
7
|
+
* Returns the first matching filename, or null.
|
|
8
|
+
*/
|
|
9
|
+
export declare function findFile(dir: string, names: string[]): Promise<string | null>;
|
|
10
|
+
/**
|
|
11
|
+
* Check if a dependency exists in package.json (dependencies or devDependencies).
|
|
12
|
+
*/
|
|
13
|
+
export declare function hasDependency(pkg: PackageJsonData, name: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Get the version of a dependency from package.json.
|
|
16
|
+
* Returns the version range string, or null if not found.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getDependencyVersion(pkg: PackageJsonData, name: string): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Check if any dependency matching a pattern exists.
|
|
21
|
+
*/
|
|
22
|
+
export declare function hasDependencyMatching(pkg: PackageJsonData, pattern: RegExp): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Detect which package manager the project uses by checking lockfiles.
|
|
25
|
+
*/
|
|
26
|
+
export declare function detectPackageManager(projectDir: string): Promise<PackageManager>;
|
|
27
|
+
/**
|
|
28
|
+
* Get the run command prefix for a package manager.
|
|
29
|
+
* e.g., 'npm run', 'bun run', 'pnpm run', 'yarn'
|
|
30
|
+
*/
|
|
31
|
+
export declare function getRunCommand(pm: PackageManager): string;
|
|
32
|
+
/**
|
|
33
|
+
* Get the exec command prefix for a package manager (npx/bunx/etc.).
|
|
34
|
+
*/
|
|
35
|
+
export declare function getExecCommand(pm: PackageManager): string;
|
|
36
|
+
/**
|
|
37
|
+
* Read and parse package.json from a directory.
|
|
38
|
+
* Returns null if not found or unparseable.
|
|
39
|
+
*/
|
|
40
|
+
export declare function readPackageJson(dir: string): Promise<PackageJsonData | null>;
|
|
41
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/detect/util.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/D;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAStF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAWxD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAWzD;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAQlF"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detection utilities shared across framework detectors.
|
|
3
|
+
*/
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Check if a file exists (any of the given names) in a directory.
|
|
7
|
+
* Returns the first matching filename, or null.
|
|
8
|
+
*/
|
|
9
|
+
export async function findFile(dir, names) {
|
|
10
|
+
for (const name of names) {
|
|
11
|
+
const file = Bun.file(join(dir, name));
|
|
12
|
+
if (await file.exists()) {
|
|
13
|
+
return name;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check if a dependency exists in package.json (dependencies or devDependencies).
|
|
20
|
+
*/
|
|
21
|
+
export function hasDependency(pkg, name) {
|
|
22
|
+
return !!(pkg.dependencies?.[name] || pkg.devDependencies?.[name]);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the version of a dependency from package.json.
|
|
26
|
+
* Returns the version range string, or null if not found.
|
|
27
|
+
*/
|
|
28
|
+
export function getDependencyVersion(pkg, name) {
|
|
29
|
+
return pkg.dependencies?.[name] ?? pkg.devDependencies?.[name] ?? null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if any dependency matching a pattern exists.
|
|
33
|
+
*/
|
|
34
|
+
export function hasDependencyMatching(pkg, pattern) {
|
|
35
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
36
|
+
return Object.keys(allDeps).some((name) => pattern.test(name));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Detect which package manager the project uses by checking lockfiles.
|
|
40
|
+
*/
|
|
41
|
+
export async function detectPackageManager(projectDir) {
|
|
42
|
+
if (await Bun.file(join(projectDir, 'bun.lockb')).exists())
|
|
43
|
+
return 'bun';
|
|
44
|
+
if (await Bun.file(join(projectDir, 'bun.lock')).exists())
|
|
45
|
+
return 'bun';
|
|
46
|
+
if (await Bun.file(join(projectDir, 'pnpm-lock.yaml')).exists())
|
|
47
|
+
return 'pnpm';
|
|
48
|
+
if (await Bun.file(join(projectDir, 'yarn.lock')).exists())
|
|
49
|
+
return 'yarn';
|
|
50
|
+
if (await Bun.file(join(projectDir, 'package-lock.json')).exists())
|
|
51
|
+
return 'npm';
|
|
52
|
+
// Default to bun (our preferred runtime)
|
|
53
|
+
return 'bun';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get the run command prefix for a package manager.
|
|
57
|
+
* e.g., 'npm run', 'bun run', 'pnpm run', 'yarn'
|
|
58
|
+
*/
|
|
59
|
+
export function getRunCommand(pm) {
|
|
60
|
+
switch (pm) {
|
|
61
|
+
case 'bun':
|
|
62
|
+
return 'bun run';
|
|
63
|
+
case 'npm':
|
|
64
|
+
return 'npm run';
|
|
65
|
+
case 'pnpm':
|
|
66
|
+
return 'pnpm run';
|
|
67
|
+
case 'yarn':
|
|
68
|
+
return 'yarn';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get the exec command prefix for a package manager (npx/bunx/etc.).
|
|
73
|
+
*/
|
|
74
|
+
export function getExecCommand(pm) {
|
|
75
|
+
switch (pm) {
|
|
76
|
+
case 'bun':
|
|
77
|
+
return 'bunx';
|
|
78
|
+
case 'npm':
|
|
79
|
+
return 'npx';
|
|
80
|
+
case 'pnpm':
|
|
81
|
+
return 'pnpm exec';
|
|
82
|
+
case 'yarn':
|
|
83
|
+
return 'yarn dlx';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Read and parse package.json from a directory.
|
|
88
|
+
* Returns null if not found or unparseable.
|
|
89
|
+
*/
|
|
90
|
+
export async function readPackageJson(dir) {
|
|
91
|
+
const file = Bun.file(join(dir, 'package.json'));
|
|
92
|
+
if (!(await file.exists()))
|
|
93
|
+
return null;
|
|
94
|
+
try {
|
|
95
|
+
return (await file.json());
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/cmd/build/detect/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,OAAO,mCA8NlB,CAAC"}
|
package/dist/cmd/build/index.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { resolve, join, relative } from 'node:path';
|
|
3
3
|
import { createCommand, DeployOptionsSchema } from '../../types';
|
|
4
|
-
import { viteBundle } from './vite-bundler';
|
|
5
4
|
import * as tui from '../../tui';
|
|
6
5
|
import { getCommand } from '../../command-prefix';
|
|
7
6
|
import { ErrorCode } from '../../errors';
|
|
8
7
|
import { typecheck } from './typecheck';
|
|
9
8
|
import { BuildReportCollector, setGlobalCollector, clearGlobalCollector } from '../../build-report';
|
|
10
|
-
import {
|
|
9
|
+
import { detectFrameworkWithPackageJson } from './detect';
|
|
10
|
+
import { getAdapter } from './adapters';
|
|
11
|
+
import { packageBuildOutput } from './package';
|
|
11
12
|
const BuildResponseSchema = z.object({
|
|
12
13
|
success: z.boolean().describe('Whether the build succeeded'),
|
|
13
14
|
bundlePath: z.string().describe('Path to the build directory'),
|
|
14
15
|
projectName: z.string().describe('Project name'),
|
|
15
16
|
dev: z.boolean().describe('Whether dev mode was enabled'),
|
|
16
17
|
size: z.number().optional().describe('Build size in bytes'),
|
|
18
|
+
framework: z.string().optional().describe('Detected framework name'),
|
|
17
19
|
});
|
|
18
20
|
const BuildOptionsSchema = z.intersection(DeployOptionsSchema, z.object({
|
|
19
21
|
dev: z.boolean().optional().describe('Enable development mode'),
|
|
@@ -50,6 +52,9 @@ export const command = createCommand({
|
|
|
50
52
|
async handler(ctx) {
|
|
51
53
|
const { opts, projectDir, project } = ctx;
|
|
52
54
|
if (opts.ci) {
|
|
55
|
+
if (!opts.url) {
|
|
56
|
+
tui.fatal('--url is required when using --ci mode', ErrorCode.CONFIG_INVALID);
|
|
57
|
+
}
|
|
53
58
|
const { runCIBuild } = await import('./ci');
|
|
54
59
|
await runCIBuild({
|
|
55
60
|
url: opts.url,
|
|
@@ -81,32 +86,55 @@ export const command = createCommand({
|
|
|
81
86
|
setGlobalCollector(collector);
|
|
82
87
|
}
|
|
83
88
|
const absoluteProjectDir = resolve(projectDir);
|
|
84
|
-
// Check for version mismatches (v1 vs v2 SDK packages)
|
|
85
|
-
const versionMismatch = detectVersionMismatch(absoluteProjectDir, ctx.logger);
|
|
86
|
-
if (versionMismatch.hasV1Packages || versionMismatch.hasMajorMismatches) {
|
|
87
|
-
tui.newline();
|
|
88
|
-
tui.warning(formatVersionMismatchWarning(versionMismatch));
|
|
89
|
-
tui.newline();
|
|
90
|
-
}
|
|
91
89
|
const outDir = opts.outdir ? resolve(opts.outdir) : join(absoluteProjectDir, '.agentuity');
|
|
92
90
|
try {
|
|
93
91
|
const rel = outDir.startsWith(absoluteProjectDir)
|
|
94
92
|
? relative(absoluteProjectDir, outDir)
|
|
95
93
|
: outDir;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
// Step 1: Detect framework
|
|
95
|
+
tui.info('Detecting framework...');
|
|
96
|
+
const { framework, packageJson } = await detectFrameworkWithPackageJson(absoluteProjectDir);
|
|
97
|
+
if (!framework) {
|
|
98
|
+
collector.addGeneralError('build', 'Could not detect a JS framework. Ensure package.json exists with a build script.', 'BUILD010');
|
|
99
|
+
if (opts.reportFile) {
|
|
100
|
+
await collector.forceWrite();
|
|
101
|
+
}
|
|
102
|
+
clearGlobalCollector();
|
|
103
|
+
tui.fatal('Could not detect a JS framework. Ensure package.json exists with a build script.', ErrorCode.BUILD_FAILED);
|
|
104
|
+
}
|
|
105
|
+
const frameworkLabel = framework.version
|
|
106
|
+
? `${framework.name} v${framework.version}`
|
|
107
|
+
: framework.name;
|
|
108
|
+
tui.success(`Detected ${tui.bold(frameworkLabel)} (${framework.runtime})`);
|
|
109
|
+
// Step 2: Get the build adapter for this framework
|
|
110
|
+
const adapter = getAdapter(framework.name);
|
|
111
|
+
tui.info(`Building with ${adapter.name} adapter to ${rel}`);
|
|
112
|
+
// Step 3: Run the build
|
|
113
|
+
const endBuildDiagnostic = collector.startDiagnostic('build');
|
|
114
|
+
const buildResult = await adapter.build({
|
|
115
|
+
projectDir: absoluteProjectDir,
|
|
116
|
+
framework,
|
|
117
|
+
packageJson: packageJson,
|
|
118
|
+
outputDir: outDir,
|
|
119
|
+
logger: ctx.logger,
|
|
120
|
+
collector,
|
|
121
|
+
dev: opts.dev,
|
|
100
122
|
projectId: project?.projectId,
|
|
101
123
|
orgId: project?.orgId,
|
|
102
124
|
region: project?.region ?? 'local',
|
|
103
|
-
logger: ctx.logger,
|
|
104
|
-
collector,
|
|
105
125
|
});
|
|
106
|
-
|
|
126
|
+
endBuildDiagnostic();
|
|
127
|
+
// Log build output
|
|
128
|
+
for (const line of buildResult.logs) {
|
|
129
|
+
tui.info(tui.muted(line));
|
|
130
|
+
}
|
|
131
|
+
// Step 4: Package the output with launch metadata
|
|
132
|
+
const packageResult = packageBuildOutput(framework, buildResult, buildResult.outputDir);
|
|
133
|
+
ctx.logger.debug('Launch metadata: %s', JSON.stringify(packageResult.launch, null, 2));
|
|
134
|
+
// Step 5: Copy profile-specific .env file AFTER building
|
|
107
135
|
if (opts.dev && ctx.config?.name) {
|
|
108
136
|
const envSourcePath = join(absoluteProjectDir, `.env.${ctx.config.name}`);
|
|
109
|
-
const envDestPath = join(
|
|
137
|
+
const envDestPath = join(buildResult.outputDir, '.env');
|
|
110
138
|
const envFile = Bun.file(envSourcePath);
|
|
111
139
|
if (await envFile.exists()) {
|
|
112
140
|
await Bun.write(envDestPath, envFile);
|
|
@@ -116,7 +144,7 @@ export const command = createCommand({
|
|
|
116
144
|
ctx.logger.debug(`No .env.${ctx.config.name} file found, skipping env copy`);
|
|
117
145
|
}
|
|
118
146
|
}
|
|
119
|
-
// Run TypeScript type checking
|
|
147
|
+
// Step 6: Run TypeScript type checking (skip in dev mode, skip for non-TS projects)
|
|
120
148
|
if (!opts.dev && !opts.skipTypeCheck) {
|
|
121
149
|
try {
|
|
122
150
|
tui.info('Running type check...');
|
|
@@ -131,7 +159,6 @@ export const command = createCommand({
|
|
|
131
159
|
console.error(typeResult.output);
|
|
132
160
|
console.error('');
|
|
133
161
|
const msg = 'errors' in typeResult ? 'Fix type errors before building' : 'Build error';
|
|
134
|
-
// Write report before fatal exit
|
|
135
162
|
if (opts.reportFile) {
|
|
136
163
|
await collector.forceWrite();
|
|
137
164
|
}
|
|
@@ -142,7 +169,6 @@ export const command = createCommand({
|
|
|
142
169
|
catch (error) {
|
|
143
170
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
144
171
|
collector.addGeneralError('typescript', errorMsg, 'BUILD008');
|
|
145
|
-
// Write report before fatal exit
|
|
146
172
|
if (opts.reportFile) {
|
|
147
173
|
await collector.forceWrite();
|
|
148
174
|
}
|
|
@@ -151,7 +177,7 @@ export const command = createCommand({
|
|
|
151
177
|
tui.fatal('Unable to run TypeScript type checking. Ensure TypeScript is installed.', ErrorCode.BUILD_FAILED);
|
|
152
178
|
}
|
|
153
179
|
}
|
|
154
|
-
tui.success(
|
|
180
|
+
tui.success(`Build complete (${frameworkLabel}, ${buildResult.duration}ms)`);
|
|
155
181
|
// Write final report on success
|
|
156
182
|
if (opts.reportFile) {
|
|
157
183
|
await collector.forceWrite();
|
|
@@ -159,9 +185,10 @@ export const command = createCommand({
|
|
|
159
185
|
clearGlobalCollector();
|
|
160
186
|
return {
|
|
161
187
|
success: true,
|
|
162
|
-
bundlePath:
|
|
188
|
+
bundlePath: buildResult.outputDir,
|
|
163
189
|
projectName: project?.projectId || 'unknown',
|
|
164
190
|
dev: opts.dev || false,
|
|
191
|
+
framework: framework.name,
|
|
165
192
|
};
|
|
166
193
|
}
|
|
167
194
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build output packaging.
|
|
3
|
+
*
|
|
4
|
+
* After a framework adapter builds the project, the packager:
|
|
5
|
+
* 1. Generates launch metadata (how to start the app)
|
|
6
|
+
* 2. Writes a Procfile for compatibility
|
|
7
|
+
* 3. Optionally generates additional metadata
|
|
8
|
+
*
|
|
9
|
+
* The output is a self-contained directory ready for deployment
|
|
10
|
+
* as a buildpack image layer or traditional zip upload.
|
|
11
|
+
*/
|
|
12
|
+
import type { DetectedFramework } from '../detect/types';
|
|
13
|
+
import type { BuildResult } from '../adapters/types';
|
|
14
|
+
import { type LaunchMetadata } from './launch';
|
|
15
|
+
export interface PackageResult {
|
|
16
|
+
/** Absolute path to the packaged output */
|
|
17
|
+
outputDir: string;
|
|
18
|
+
/** Launch metadata */
|
|
19
|
+
launch: LaunchMetadata;
|
|
20
|
+
/** Whether the output contains static assets */
|
|
21
|
+
hasStaticAssets: boolean;
|
|
22
|
+
/** Path to static assets (if any) */
|
|
23
|
+
staticDir?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Package a build result into a deployment-ready directory.
|
|
27
|
+
*/
|
|
28
|
+
export declare function packageBuildOutput(framework: DetectedFramework, buildResult: BuildResult, outputDir: string): PackageResult;
|
|
29
|
+
export type { LaunchMetadata, ProcessDefinition } from './launch';
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/package/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAA+C,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC7B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAElB,sBAAsB;IACtB,MAAM,EAAE,cAAc,CAAC;IAEvB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;IAEzB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,iBAAiB,EAC5B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GACf,aAAa,CAuBf;AAGD,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
|