@netlify/build-info 7.4.1 → 7.4.3

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/README.md CHANGED
@@ -1,106 +1,49 @@
1
1
  # Build Info
2
2
 
3
- Build information detection utility.
4
-
5
- The purpose of this lib is to, given a project and a configuration, return a set of useful data for our build system.
6
- Currently it's used to detect:
7
-
8
- - [`jsWorkspaces`](https://docs.npmjs.com/cli/v7/using-npm/workspaces)
9
- - [`frameworks`](https://github.com/netlify/framework-info)
10
-
11
- But it's possible to extend it in the future to extract other bits of information, such as the heuristics present in the
12
- [`build-image`](https://github.com/netlify/build-image/blob/xenial/run-build-functions.sh#L214).
13
-
14
- # Example (Node.js)
15
-
16
- ```js
17
- import { getBuildInfo } from '@netlify/build-info'
18
-
19
- console.log(await getBuildInfo({ projectDir: 'path/to/site', rootDir: '/project/root/dir' }))
20
- // {
21
- // jsWorkspaces: {
22
- // isRoot: false,
23
- // packages: [
24
- // 'path/to/site',
25
- // 'path/to/component/library'
26
- // 'path/to/utility/library'
27
- // ]
28
- // },
29
- // frameworks: [
30
- // {
31
- // name: 'gatsby',
32
- // category: 'static_site_generator',
33
- // dev: {
34
- // commands: ['gatsby develop'],
35
- // port: 8000
36
- // },
37
- // build: {
38
- // commands: ['gatsby build'],
39
- // directory: 'public'
40
- // },
41
- // env: { GATSBY_LOGGER: 'yurnalist' },
42
- // plugins: []
43
- // }
44
- // ]
45
- // }
46
-
47
- console.log(await getBuildInfo({ projectDir: '/project/root/dir' }))
48
- // {
49
- // jsWorkspaces: {
50
- // isRoot: true,
51
- // packages: [
52
- // 'path/to/site',
53
- // 'path/to/component/library'
54
- // 'path/to/utility/library'
55
- // ]
56
- // },
57
- // frameworks: []
58
- // }
3
+ Build info is the core part of detecting settings and heuristics about the users code. The library is platform agnostic
4
+ to be used in our React UI, Node.js CLI and build system.
5
+
6
+ It provides a layered approach to detecting the following information:
7
+
8
+ 1. Package Manager
9
+ 2. Workspaces (pnpm, yarn, npm)
10
+ 3. Build Systems
11
+ 4. Frameworks
12
+ 5. Build Settings
13
+
14
+ How to use it: First of all, you need to create a `FileSystem` that works for your platform. For Node.js we ship already
15
+ one that can be used: For other platforms, a file system needs to implement the `FileSystem` interface:
16
+
17
+ ```typescript
18
+ import { FileSystem } from '@netlify/build-info'
19
+
20
+ export class WebFS extends FileSystem {
21
+ // ...
22
+ }
59
23
  ```
60
24
 
25
+ After that the core piece is the Project that needs to be initialized with a file system, the base directory and an
26
+ optional repository root.
27
+
28
+ It is important to note that setting a node version is important for some frameworks to load the correct plugins.
29
+
30
+ ```typescript
31
+ const project = new Project(fs, baseDir, root).setEnvironment(process.env).setNodeVersion(process.version)
32
+ ```
33
+
34
+ after that on the project, we can call multiple methods like `getBuildSettings` which is running all the other steps as
35
+ well.
36
+
61
37
  # Example (CLI)
62
38
 
63
39
  ```bash
40
+ # will use the current working directory as base directory
41
+ $ build-info
42
+
64
43
  $ build-info /project/root/dir
65
- {
66
- jsWorkspaces: {
67
- isRoot: true,
68
- packages: [
69
- 'path/to/site',
70
- 'path/to/component/library'
71
- 'path/to/utility/library'
72
- ]
73
- },
74
- frameworks: []
75
- }
76
44
 
77
45
  $ build-info path/to/site --rootDir /project/root/dir
78
- {
79
- jsWorkspaces: {
80
- isRoot: false,
81
- packages: [
82
- 'path/to/site',
83
- 'path/to/component/library'
84
- 'path/to/utility/library'
85
- ]
86
- },
87
- frameworks: [
88
- {
89
- name: 'gatsby',
90
- category: 'static_site_generator',
91
- dev: {
92
- commands: ['gatsby develop'],
93
- port: 8000
94
- },
95
- build: {
96
- commands: ['gatsby build'],
97
- directory: 'public'
98
- },
99
- env: { GATSBY_LOGGER: 'yurnalist' },
100
- plugins: []
101
- }
102
- ]
103
- }
46
+
104
47
  ```
105
48
 
106
49
  ## Contributors
@@ -14,6 +14,8 @@ export interface BuildSystem {
14
14
  getCommands?(path: string): Promise<Command[]>;
15
15
  /** A function that can be implemented to override the dist location of a framework */
16
16
  getDist?(path: string): Promise<string>;
17
+ /** A function that can be implemented to override the framework port */
18
+ getPort?(path: string): Promise<number | null>;
17
19
  /** The detect function that is called to check if this build system is in use */
18
20
  detect(): Promise<BuildSystem | undefined>;
19
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-system.js","sourceRoot":"","sources":["../../src/build-systems/build-system.ts"],"names":[],"mappings":"AAuBA,MAAM,OAAgB,aAAa;IAcd;IAbnB,EAAE,CAAQ;IACV,IAAI,CAAQ;IACZ,OAAO,CAAS;IAChB,WAAW,GAAa,EAAE,CAAA;IAC1B,iEAAiE;IACjE,WAAW,CAAU;IAErB,IAAI,CAIH;IAED,YAAmB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEvC,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5D,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;SAC1B,CAAC,CAAA;QAEF,IAAI,MAAM,EAAE;YACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;YAClF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;SACZ;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM;QACJ,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACb,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,qCAAqC,KAAK,EAAE,EAAE,CAAC,EAC1F,EAAE,CACH;gBACH,CAAC,CAAC,SAAS;SACd,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"build-system.js","sourceRoot":"","sources":["../../src/build-systems/build-system.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAgB,aAAa;IAcd;IAbnB,EAAE,CAAQ;IACV,IAAI,CAAQ;IACZ,OAAO,CAAS;IAChB,WAAW,GAAa,EAAE,CAAA;IAC1B,iEAAiE;IACjE,WAAW,CAAU;IAErB,IAAI,CAIH;IAED,YAAmB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEvC,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5D,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;SAC1B,CAAC,CAAA;QAEF,IAAI,MAAM,EAAE;YACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;YAClF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;SACZ;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM;QACJ,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACb,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,qCAAqC,KAAK,EAAE,EAAE,CAAC,EAC1F,EAAE,CACH;gBACH,CAAC,CAAC,SAAS;SACd,CAAA;IACH,CAAC;CACF"}
@@ -1,4 +1,22 @@
1
+ import { WorkspacePackage } from '../workspaces/detect-workspace.js';
1
2
  import { BaseBuildTool, type Command } from './build-system.js';
3
+ type Target = WorkspaceJsonTarget | ProjectJsonTarget;
4
+ type WorkspaceJsonTarget = {
5
+ /** will be manually set */
6
+ name: string;
7
+ builder: string;
8
+ options?: Record<string, any>;
9
+ configurations?: Record<string, any>;
10
+ };
11
+ type ProjectJsonTarget = {
12
+ /** will be manually set */
13
+ name: string;
14
+ executor: string;
15
+ outputs?: string[];
16
+ options?: Record<string, any>;
17
+ defaultConfiguration?: string;
18
+ configurations?: Record<string, any>;
19
+ };
2
20
  export declare class Nx extends BaseBuildTool {
3
21
  id: string;
4
22
  name: string;
@@ -15,10 +33,19 @@ export declare class Nx extends BaseBuildTool {
15
33
  * @see https://nx.dev/concepts/integrated-vs-package-based
16
34
  */
17
35
  isIntegrated: boolean;
36
+ /** List of target patterns */
37
+ targets: Map<string, Target[]>;
18
38
  /** Retrieves a list of possible commands for a package */
19
39
  getCommands(packagePath: string): Promise<Command[]>;
20
40
  /** Retrieve the dist directory of a package */
21
41
  getDist(packagePath: string): Promise<string | null>;
22
- getOutputDirFromProjectJSON(packagePath: string): Promise<string | null>;
42
+ /** Retrieve the overridden port of the nx executor for integrated setups */
43
+ getPort(packagePath: string): Promise<number | null>;
44
+ getOutputFromTarget(packagePath: string): Promise<string | null>;
45
+ /** detect workspace packages with the workspace.json file */
46
+ detectWorkspaceFile(): Promise<WorkspacePackage[]>;
47
+ /** detect workspace pacakges with the project.json files */
48
+ detectProjectJson(): Promise<WorkspacePackage[]>;
23
49
  detect(): Promise<this | undefined>;
24
50
  }
51
+ export {};
@@ -18,31 +18,25 @@ export class Nx extends BaseBuildTool {
18
18
  * @see https://nx.dev/concepts/integrated-vs-package-based
19
19
  */
20
20
  isIntegrated = false;
21
+ /** List of target patterns */
22
+ targets = new Map();
21
23
  /** Retrieves a list of possible commands for a package */
22
24
  async getCommands(packagePath) {
23
- const projectPath = this.project.resolveFromPackage(packagePath, 'project.json');
24
- const packageJSONPath = this.project.resolveFromPackage(packagePath, 'package.json');
25
- let name = '';
26
- const targets = [];
25
+ let name = this.project.workspace?.getPackage(packagePath)?.name || '';
26
+ const targets = this.targets.get(packagePath) || [];
27
+ const targetNames = targets.map((t) => t.name);
28
+ // it can be a mix of integrated and package based
27
29
  try {
28
- const project = await this.project.fs.readJSON(projectPath, { fail: true });
29
- this.isIntegrated = true;
30
- targets.push(...Object.keys(project?.targets || {}));
31
- name = project.name || '';
30
+ const packageJSONPath = this.project.resolveFromPackage(packagePath, 'package.json');
31
+ const json = await this.project.fs.readJSON(packageJSONPath, { fail: true });
32
+ targetNames.push(...Object.keys(json?.scripts || {}));
33
+ name = json.name || '';
32
34
  }
33
35
  catch {
34
- // if no project.json exists it's probably a package based nx workspace and not a integrated one
35
- try {
36
- const json = await this.project.fs.readJSON(packageJSONPath, { fail: true });
37
- targets.push(...Object.keys(json?.scripts || {}));
38
- name = json.name || '';
39
- }
40
- catch {
41
- // noop
42
- }
36
+ // noop
43
37
  }
44
- if (name.length !== 0 && targets.length !== 0) {
45
- return targets.map((target) => {
38
+ if (name.length !== 0 && targetNames.length !== 0) {
39
+ return targetNames.map((target) => {
46
40
  let type = 'unknown';
47
41
  if (NPM_DEV_SCRIPTS.includes(target)) {
48
42
  type = 'dev';
@@ -64,17 +58,40 @@ export class Nx extends BaseBuildTool {
64
58
  if (!this.isIntegrated) {
65
59
  return null;
66
60
  }
67
- return this.getOutputDirFromProjectJSON(packagePath);
61
+ return this.getOutputFromTarget(packagePath);
68
62
  }
69
- async getOutputDirFromProjectJSON(packagePath) {
63
+ /** Retrieve the overridden port of the nx executor for integrated setups */
64
+ async getPort(packagePath) {
65
+ // only nx integrated has the `project.json`
66
+ if (!this.isIntegrated) {
67
+ return null;
68
+ }
69
+ const targets = this.targets.get(packagePath)?.filter((t) => NPM_DEV_SCRIPTS.includes(t.name)) || [];
70
+ const executor = targets[0] && ('executor' in targets[0] ? targets[0].executor : targets[0].builder);
71
+ switch (executor) {
72
+ case '@nxtensions/astro:dev':
73
+ return 3000;
74
+ case '@nrwl/next:server':
75
+ case '@nx/webpack:dev-server':
76
+ case '@angular-devkit/build-angular:dev-server':
77
+ return 4200;
78
+ case '@nx-plus/vue:dev-server':
79
+ return 8000;
80
+ default:
81
+ this.project.report({
82
+ name: 'UndetectedExecutor',
83
+ message: `Undetected executor for Nx integrated: ${executor}`,
84
+ });
85
+ return null;
86
+ }
87
+ }
88
+ async getOutputFromTarget(packagePath) {
70
89
  // dynamic import out of performance reasons on the react UI
71
90
  const { getProperty } = await import('dot-prop');
72
91
  try {
73
- const projectPath = this.project.resolveFromPackage(packagePath, 'project.json');
74
- const project = await this.project.fs.readJSON(projectPath, { fail: true });
75
- const target = project?.targets?.build;
92
+ const target = this.targets.get(packagePath)?.find((t) => t.name === 'build');
76
93
  if (target) {
77
- const pattern = project?.targets?.build?.outputs?.[0];
94
+ const pattern = 'outputs' in target ? target.outputs?.[0] : target.options?.outputPath;
78
95
  if (pattern) {
79
96
  return this.project.fs.join(pattern
80
97
  .replace('{workspaceRoot}/', '')
@@ -88,43 +105,79 @@ export class Nx extends BaseBuildTool {
88
105
  // As a fallback use the convention of the dist combined with the package path
89
106
  return this.project.fs.join('dist', packagePath);
90
107
  }
91
- async detect() {
92
- const detected = await super.detect();
108
+ /** detect workspace packages with the workspace.json file */
109
+ async detectWorkspaceFile() {
93
110
  const fs = this.project.fs;
94
- if (detected) {
95
- try {
96
- // in nx integrated setup the workspace is not managed through the package manager
97
- // in this case we have to check the `nx.json` for the project references
98
- if (this.project.workspace === null) {
99
- const { workspaceLayout } = await fs.readJSON(fs.join(this.project.jsWorkspaceRoot, 'nx.json'));
100
- // if an apps dir is specified get it.
101
- if (workspaceLayout?.appsDir?.length) {
102
- const identifyPkg = async ({ entry, directory, packagePath }) => {
103
- // ignore e2e test applications as there is no need to deploy them
104
- if (entry === 'project.json' && !packagePath.endsWith('-e2e')) {
105
- try {
106
- // we need to check the project json for application types (we don't care about libraries)
107
- const { projectType, name } = await fs.readJSON(fs.join(directory, entry));
108
- if (projectType === 'application') {
109
- return { name, path: packagePath };
110
- }
111
- }
112
- catch {
113
- // noop
114
- }
111
+ try {
112
+ const { projects } = await fs.readJSON(fs.join(this.project.jsWorkspaceRoot, 'workspace.json'), {
113
+ fail: true,
114
+ });
115
+ return Object.entries(projects || {})
116
+ .map(([key, { root, projectType, architect }]) => {
117
+ if (!root || key.endsWith('-e2e') || projectType !== 'application') {
118
+ return;
119
+ }
120
+ this.targets.set(fs.join(root), Object.entries(architect || {}).map(([name, target]) => ({ ...target, name })));
121
+ return { name: key, path: fs.join(root) };
122
+ })
123
+ .filter(Boolean);
124
+ }
125
+ catch {
126
+ // noop
127
+ }
128
+ return [];
129
+ }
130
+ /** detect workspace pacakges with the project.json files */
131
+ async detectProjectJson() {
132
+ const fs = this.project.fs;
133
+ try {
134
+ const { workspaceLayout = { appsDir: 'apps' } } = await fs.readJSON(fs.join(this.project.jsWorkspaceRoot, 'nx.json'), {
135
+ fail: true,
136
+ });
137
+ // if an apps dir is specified get it.
138
+ if (workspaceLayout?.appsDir?.length) {
139
+ const identifyPkg = async ({ entry, directory, packagePath }) => {
140
+ // ignore e2e test applications as there is no need to deploy them
141
+ if (entry === 'project.json' && !packagePath.endsWith('-e2e')) {
142
+ try {
143
+ // we need to check the project json for application types (we don't care about libraries)
144
+ const { projectType, name, targets } = await fs.readJSON(fs.join(directory, entry));
145
+ if (projectType === 'application') {
146
+ this.targets.set(fs.join(packagePath), Object.entries(targets || {}).map(([name, target]) => ({ ...target, name })));
147
+ return { name, path: fs.join(packagePath) };
115
148
  }
116
- return null;
117
- };
118
- this.project.workspace = new WorkspaceInfo();
119
- this.project.workspace.isRoot = this.project.jsWorkspaceRoot === this.project.baseDirectory;
120
- this.project.workspace.rootDir = this.project.jsWorkspaceRoot;
121
- this.project.workspace.packages = await findPackages(this.project, workspaceLayout.appsDir, identifyPkg, '*');
122
- this.project.events.emit('detectWorkspaces', this.project.workspace);
149
+ }
150
+ catch {
151
+ // noop
152
+ }
123
153
  }
124
- }
154
+ return null;
155
+ };
156
+ return findPackages(this.project, workspaceLayout.appsDir, identifyPkg, '*');
125
157
  }
126
- catch {
127
- // noop
158
+ }
159
+ catch {
160
+ // noop
161
+ }
162
+ return [];
163
+ }
164
+ async detect() {
165
+ const detected = await super.detect();
166
+ if (detected) {
167
+ const pkgs = [...(await this.detectWorkspaceFile()), ...(await this.detectProjectJson())];
168
+ if (pkgs.length) {
169
+ // in this case it's an integrated setup
170
+ this.isIntegrated = true;
171
+ if (!this.project.workspace) {
172
+ this.project.workspace = new WorkspaceInfo();
173
+ this.project.workspace.isRoot = this.project.jsWorkspaceRoot === this.project.baseDirectory;
174
+ this.project.workspace.rootDir = this.project.jsWorkspaceRoot;
175
+ this.project.workspace.packages = pkgs;
176
+ }
177
+ else {
178
+ this.project.workspace.packages.push(...pkgs);
179
+ }
180
+ this.project.events.emit('detectWorkspaces', this.project.workspace);
128
181
  }
129
182
  return this;
130
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nx.js","sourceRoot":"","sources":["../../src/build-systems/nx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nx.js","sourceRoot":"","sources":["../../src/build-systems/nx.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { listFrameworks } from '@netlify/framework-info';
2
- import { report } from '../metrics.js';
3
1
  import { Project } from '../project.js';
4
2
  import { NodeFS } from './file-system.js';
5
3
  /** A noop logger that is used to not log anything (we use the stdout for parsing the json output) */
@@ -30,19 +28,8 @@ export async function getBuildInfo(config = { featureFlags: {} }) {
30
28
  .setEnvironment(process.env)
31
29
  .setNodeVersion(process.version);
32
30
  const info = {};
33
- if (config.featureFlags?.build_info_new_framework_detection) {
34
- info.frameworks = (await project.detectFrameworksInPath(project.baseDirectory)) || [];
35
- }
36
- else {
37
- try {
38
- // if the framework detection is crashing we should not crash the build info and package-manager detection
39
- info.frameworks = (await listFrameworks({ projectDir: project.baseDirectory }));
40
- }
41
- catch (error) {
42
- report(error, { client: config.bugsnagClient });
43
- info.frameworks = [];
44
- }
45
- }
31
+ // we are only interested in the frameworks of the base directory here (as they are for this site)
32
+ info.frameworks = (await project.detectFrameworksInPath(project.baseDirectory)) || [];
46
33
  info.settings = await project.getBuildSettings();
47
34
  info.langRuntimes = await project.detectRuntime();
48
35
  // some framework detection like NX can update the workspace in the project so assign it later on
@@ -1 +1 @@
1
- {"version":3,"file":"get-build-info.js","sourceRoot":"","sources":["../../src/node/get-build-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAczC,qGAAqG;AACrG,MAAM,OAAO,UAAU;IACrB,KAAK;QACH,WAAW;IACb,CAAC;IACD,GAAG;QACD,WAAW;IACb,CAAC;IACD,KAAK;QACH,WAAW;IACb,CAAC;IACD,IAAI;QACF,WAAW;IACb,CAAC;IACD,IAAI;QACF,WAAW;IACb,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAKI,EAAE,YAAY,EAAE,EAAE,EAAE;IAExB,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAA;IACvB,qEAAqE;IACrE,EAAE,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;SAC/D,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;SAChC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;SAC3B,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,EAAU,CAAA;IAEvB,IAAI,MAAM,CAAC,YAAY,EAAE,kCAAkC,EAAE;QAC3D,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAA;KACtF;SAAM;QACL,IAAI;YACF,2GAA2G;YAC3G,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,cAAc,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAmC,CAAA;SAClH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;YAC/C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;SACrB;KACF;IAED,IAAI,CAAC,QAAQ,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAA;IAChD,IAAI,CAAC,YAAY,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;IAEjD,iGAAiG;IACjG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAA;IACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;IACxC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;IAE5C,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"get-build-info.js","sourceRoot":"","sources":["../../src/node/get-build-info.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAczC,qGAAqG;AACrG,MAAM,OAAO,UAAU;IACrB,KAAK;QACH,WAAW;IACb,CAAC;IACD,GAAG;QACD,WAAW;IACb,CAAC;IACD,KAAK;QACH,WAAW;IACb,CAAC;IACD,IAAI;QACF,WAAW;IACb,CAAC;IACD,IAAI;QACF,WAAW;IACb,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAKI,EAAE,YAAY,EAAE,EAAE,EAAE;IAExB,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAA;IACvB,qEAAqE;IACrE,EAAE,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;SAC/D,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;SAChC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;SAC3B,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,EAAU,CAAA;IAEvB,kGAAkG;IAClG,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAA;IACrF,IAAI,CAAC,QAAQ,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAA;IAChD,IAAI,CAAC,YAAY,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;IAEjD,iGAAiG;IACjG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAA;IACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;IACxC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;IAE5C,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -6,6 +6,7 @@ async function applyBuildSystemOverrides(settings, project, baseDirectory) {
6
6
  const build = cmds.find((cmd) => cmd.type === 'build');
7
7
  const dev = cmds.find((cmd) => cmd.type === 'dev');
8
8
  const dist = await buildSystem.getDist?.(baseDirectory);
9
+ const port = await buildSystem.getPort?.(baseDirectory);
9
10
  updatedSettings.name = `${buildSystem.name} + ${settings.name} ${baseDirectory}`;
10
11
  if (build) {
11
12
  updatedSettings.buildCommand = build.command;
@@ -16,6 +17,9 @@ async function applyBuildSystemOverrides(settings, project, baseDirectory) {
16
17
  if (dist) {
17
18
  updatedSettings.dist = dist;
18
19
  }
20
+ if (port !== undefined && port !== null) {
21
+ updatedSettings.frameworkPort = port;
22
+ }
19
23
  // if the build system should be run from the root then set the base directory to an empty string
20
24
  // only applicable if we have a build or dev command for it
21
25
  if (buildSystem.runFromRoot && build && dev) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-build-settings.js","sourceRoot":"","sources":["../../src/settings/get-build-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-build-settings.js","sourceRoot":"","sources":["../../src/settings/get-build-settings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@netlify/build-info",
3
- "version": "7.4.1",
3
+ "version": "7.4.3",
4
4
  "description": "Build info utility",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
8
+ "types": "./lib/index.d.ts",
8
9
  "import": "./lib/index.js",
9
- "default": "./lib/index.js",
10
- "types": "./lib/index.d.ts"
10
+ "browser": "./lib/index.js",
11
+ "default": "./lib/index.js"
11
12
  },
12
13
  "./node": {
14
+ "types": "./lib/node/index.d.ts",
13
15
  "import": "./lib/node/index.js",
14
- "default": "./lib/node/index.js",
15
- "types": "./lib/node/index.d.ts"
16
+ "default": "./lib/node/index.js"
16
17
  }
17
18
  },
18
- "browser": "./lib/index.js",
19
19
  "main": "./lib/index.js",
20
20
  "types": "./lib/index.d.ts",
21
21
  "bin": {
@@ -46,7 +46,6 @@
46
46
  "author": "Netlify Inc.",
47
47
  "dependencies": {
48
48
  "@bugsnag/js": "^7.20.0",
49
- "@netlify/framework-info": "^9.8.10",
50
49
  "dot-prop": "^7.2.0",
51
50
  "find-up": "^6.3.0",
52
51
  "minimatch": "^9.0.0",
@@ -59,7 +58,7 @@
59
58
  "devDependencies": {
60
59
  "@bugsnag/source-maps": "^2.3.1",
61
60
  "@playwright/test": "^1.30.0",
62
- "@types/node": "^18.14.2",
61
+ "@types/node": "^14.18.53",
63
62
  "@types/semver": "^7.3.13",
64
63
  "@vitest/coverage-c8": "^0.30.1",
65
64
  "@vitest/ui": "^0.30.1",
@@ -74,5 +73,5 @@
74
73
  "engines": {
75
74
  "node": "^14.16.0 || >=16.0.0"
76
75
  },
77
- "gitHead": "25447244217b9c167851ed6e7c36f5f226961d9f"
76
+ "gitHead": "cb267888c86d49df78734852c6ce42f8b306ed66"
78
77
  }