@vercel/build-utils 2.16.1-canary.0 → 2.16.1-canary.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/dist/fs/run-user-scripts.js +9 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +217 -8
- package/dist/should-serve.d.ts +2 -2
- package/dist/should-serve.js +4 -3
- package/dist/types.d.ts +2 -0
- package/dist/workspaces/workspace-managers.d.ts +17 -0
- package/dist/workspaces/workspace-managers.js +127 -0
- package/package.json +3 -3
@@ -312,6 +312,15 @@ function getEnvForPackageManager({ cliType, lockfileVersion, nodeVersion, env, }
|
|
312
312
|
console.log('Detected `package-lock.json` generated by npm 7...');
|
313
313
|
}
|
314
314
|
}
|
315
|
+
else if (cliType === 'pnpm') {
|
316
|
+
if (typeof lockfileVersion === 'number' &&
|
317
|
+
lockfileVersion === 5.4 &&
|
318
|
+
((nodeVersion === null || nodeVersion === void 0 ? void 0 : nodeVersion.major) || 0) > 12) {
|
319
|
+
// Ensure that pnpm 7 is at the beginning of the `$PATH`
|
320
|
+
newEnv.PATH = `/pnpm7/pnpm:${env.PATH}`;
|
321
|
+
console.log('Detected `pnpm-lock.yaml` generated by pnpm 7...');
|
322
|
+
}
|
323
|
+
}
|
315
324
|
else {
|
316
325
|
// Yarn v2 PnP mode may be activated, so force "node-modules" linker style
|
317
326
|
if (!env.YARN_NODE_LINKER) {
|
package/dist/index.d.ts
CHANGED
@@ -11,11 +11,10 @@ import rename from './fs/rename';
|
|
11
11
|
import { execAsync, spawnAsync, execCommand, spawnCommand, walkParentDirs, getScriptName, installDependencies, runPackageJsonScript, runNpmInstall, runBundleInstall, runPipInstall, runShellScript, runCustomInstallCommand, getEnvForPackageManager, getNodeVersion, getSpawnOptions, getNodeBinPath, scanParentDirs } from './fs/run-user-scripts';
|
12
12
|
import { getLatestNodeVersion, getDiscontinuedNodeVersions } from './fs/node-version';
|
13
13
|
import streamToBuffer from './fs/stream-to-buffer';
|
14
|
-
import shouldServe from './should-serve';
|
15
14
|
import debug from './debug';
|
16
15
|
import getIgnoreFilter from './get-ignore-filter';
|
17
16
|
import { getPlatformEnv } from './get-platform-env';
|
18
|
-
export { FileBlob, FileFsRef, FileRef, Lambda, NodejsLambda, createLambda, Prerender, download, DownloadedFiles, getWriteableDirectory, glob, GlobOptions, rename, execAsync, spawnAsync, getScriptName, installDependencies, runPackageJsonScript, execCommand, spawnCommand, walkParentDirs, getNodeBinPath, runNpmInstall, runBundleInstall, runPipInstall, runShellScript, runCustomInstallCommand, getEnvForPackageManager, getNodeVersion, getLatestNodeVersion, getDiscontinuedNodeVersions, getSpawnOptions, getPlatformEnv, streamToBuffer,
|
17
|
+
export { FileBlob, FileFsRef, FileRef, Lambda, NodejsLambda, createLambda, Prerender, download, DownloadedFiles, getWriteableDirectory, glob, GlobOptions, rename, execAsync, spawnAsync, getScriptName, installDependencies, runPackageJsonScript, execCommand, spawnCommand, walkParentDirs, getNodeBinPath, runNpmInstall, runBundleInstall, runPipInstall, runShellScript, runCustomInstallCommand, getEnvForPackageManager, getNodeVersion, getLatestNodeVersion, getDiscontinuedNodeVersions, getSpawnOptions, getPlatformEnv, streamToBuffer, debug, isSymbolicLink, getLambdaOptionsFromFunction, scanParentDirs, getIgnoreFilter, };
|
19
18
|
export { EdgeFunction } from './edge-function';
|
20
19
|
export { detectBuilders, detectOutputDirectory, detectApiDirectory, detectApiExtensions, } from './detect-builders';
|
21
20
|
export { detectFileSystemAPI } from './detect-file-system-api';
|
@@ -23,6 +22,7 @@ export { detectFramework } from './detect-framework';
|
|
23
22
|
export { DetectorFilesystem } from './detectors/filesystem';
|
24
23
|
export { readConfigFile } from './fs/read-config-file';
|
25
24
|
export { normalizePath } from './fs/normalize-path';
|
25
|
+
export * from './should-serve';
|
26
26
|
export * from './schemas';
|
27
27
|
export * from './types';
|
28
28
|
export * from './errors';
|
@@ -31,3 +31,4 @@ export * from './errors';
|
|
31
31
|
*/
|
32
32
|
export declare const isOfficialRuntime: (desired: string, name?: string | undefined) => boolean;
|
33
33
|
export declare const isStaticRuntime: (name?: string | undefined) => boolean;
|
34
|
+
export { workspaceManagers } from './workspaces/workspace-managers';
|
package/dist/index.js
CHANGED
@@ -27001,8 +27001,7 @@ exports.frameworks = [
|
|
27001
27001
|
detectors: {
|
27002
27002
|
every: [
|
27003
27003
|
{
|
27004
|
-
path: '
|
27005
|
-
matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*"remix":\\s*".+?"[^}]*}',
|
27004
|
+
path: 'remix.config.js',
|
27006
27005
|
},
|
27007
27006
|
],
|
27008
27007
|
},
|
@@ -27058,6 +27057,70 @@ exports.frameworks = [
|
|
27058
27057
|
},
|
27059
27058
|
],
|
27060
27059
|
},
|
27060
|
+
{
|
27061
|
+
name: 'Astro',
|
27062
|
+
slug: 'astro',
|
27063
|
+
demo: 'https://astro-template.vercel.app',
|
27064
|
+
logo: 'https://raw.githubusercontent.com/vercel/vercel/main/packages/frameworks/logos/astro.svg',
|
27065
|
+
darkModeLogo: 'https://raw.githubusercontent.com/vercel/vercel/main/packages/frameworks/logos/astro-dark.svg',
|
27066
|
+
tagline: 'Astro is a new kind of static site builder for the modern web. Powerful developer experience meets lightweight output.',
|
27067
|
+
description: 'An Astro site, using the basics starter kit.',
|
27068
|
+
website: 'https://astro.build',
|
27069
|
+
envPrefix: 'PUBLIC_',
|
27070
|
+
detectors: {
|
27071
|
+
every: [
|
27072
|
+
{
|
27073
|
+
path: 'package.json',
|
27074
|
+
matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*"astro":\\s*".+?"[^}]*}',
|
27075
|
+
},
|
27076
|
+
],
|
27077
|
+
},
|
27078
|
+
settings: {
|
27079
|
+
installCommand: {
|
27080
|
+
placeholder: '`yarn install` or `npm install`',
|
27081
|
+
},
|
27082
|
+
buildCommand: {
|
27083
|
+
value: 'astro build',
|
27084
|
+
placeholder: '`npm run build` or `astro build`',
|
27085
|
+
},
|
27086
|
+
devCommand: {
|
27087
|
+
value: 'astro dev --port $PORT',
|
27088
|
+
placeholder: 'astro dev',
|
27089
|
+
},
|
27090
|
+
outputDirectory: {
|
27091
|
+
value: 'dist',
|
27092
|
+
},
|
27093
|
+
},
|
27094
|
+
dependency: 'astro',
|
27095
|
+
getFsOutputDir: async () => 'dist',
|
27096
|
+
getOutputDirName: async () => 'dist',
|
27097
|
+
defaultRoutes: [
|
27098
|
+
{
|
27099
|
+
src: '^/dist/(.*)$',
|
27100
|
+
headers: { 'cache-control': 'public, max-age=31536000, immutable' },
|
27101
|
+
continue: true,
|
27102
|
+
},
|
27103
|
+
{
|
27104
|
+
handle: 'filesystem',
|
27105
|
+
},
|
27106
|
+
{
|
27107
|
+
src: '/(.*)',
|
27108
|
+
dest: '/index.html',
|
27109
|
+
},
|
27110
|
+
],
|
27111
|
+
defaultHeaders: [
|
27112
|
+
{
|
27113
|
+
source: '^/dist/(.*)$',
|
27114
|
+
regex: '^/dist/(.*)$',
|
27115
|
+
headers: [
|
27116
|
+
{
|
27117
|
+
key: 'cache-control',
|
27118
|
+
value: 'public, max-age=31536000, immutable',
|
27119
|
+
},
|
27120
|
+
],
|
27121
|
+
},
|
27122
|
+
],
|
27123
|
+
},
|
27061
27124
|
{
|
27062
27125
|
name: 'Hexo',
|
27063
27126
|
slug: 'hexo',
|
@@ -35175,6 +35238,15 @@ function getEnvForPackageManager({ cliType, lockfileVersion, nodeVersion, env, }
|
|
35175
35238
|
console.log('Detected `package-lock.json` generated by npm 7...');
|
35176
35239
|
}
|
35177
35240
|
}
|
35241
|
+
else if (cliType === 'pnpm') {
|
35242
|
+
if (typeof lockfileVersion === 'number' &&
|
35243
|
+
lockfileVersion === 5.4 &&
|
35244
|
+
((nodeVersion === null || nodeVersion === void 0 ? void 0 : nodeVersion.major) || 0) > 12) {
|
35245
|
+
// Ensure that pnpm 7 is at the beginning of the `$PATH`
|
35246
|
+
newEnv.PATH = `/pnpm7/pnpm:${env.PATH}`;
|
35247
|
+
console.log('Detected `pnpm-lock.yaml` generated by pnpm 7...');
|
35248
|
+
}
|
35249
|
+
}
|
35178
35250
|
else {
|
35179
35251
|
// Yarn v2 PnP mode may be activated, so force "node-modules" linker style
|
35180
35252
|
if (!env.YARN_NODE_LINKER) {
|
@@ -35446,7 +35518,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35446
35518
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
35447
35519
|
};
|
35448
35520
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
35449
|
-
exports.isStaticRuntime = exports.isOfficialRuntime = exports.normalizePath = exports.readConfigFile = exports.DetectorFilesystem = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = exports.EdgeFunction = exports.getIgnoreFilter = exports.scanParentDirs = exports.getLambdaOptionsFromFunction = exports.isSymbolicLink = exports.debug = exports.
|
35521
|
+
exports.workspaceManagers = exports.isStaticRuntime = exports.isOfficialRuntime = exports.normalizePath = exports.readConfigFile = exports.DetectorFilesystem = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = exports.EdgeFunction = exports.getIgnoreFilter = exports.scanParentDirs = exports.getLambdaOptionsFromFunction = exports.isSymbolicLink = exports.debug = exports.streamToBuffer = exports.getPlatformEnv = exports.getSpawnOptions = exports.getDiscontinuedNodeVersions = exports.getLatestNodeVersion = exports.getNodeVersion = exports.getEnvForPackageManager = exports.runCustomInstallCommand = exports.runShellScript = exports.runPipInstall = exports.runBundleInstall = exports.runNpmInstall = exports.getNodeBinPath = exports.walkParentDirs = exports.spawnCommand = exports.execCommand = exports.runPackageJsonScript = exports.installDependencies = exports.getScriptName = exports.spawnAsync = exports.execAsync = exports.rename = exports.glob = exports.getWriteableDirectory = exports.download = exports.Prerender = exports.createLambda = exports.NodejsLambda = exports.Lambda = exports.FileRef = exports.FileFsRef = exports.FileBlob = void 0;
|
35450
35522
|
const file_blob_1 = __importDefault(__webpack_require__(2397));
|
35451
35523
|
exports.FileBlob = file_blob_1.default;
|
35452
35524
|
const file_fs_ref_1 = __importDefault(__webpack_require__(9331));
|
@@ -35494,8 +35566,6 @@ Object.defineProperty(exports, "getLatestNodeVersion", ({ enumerable: true, get:
|
|
35494
35566
|
Object.defineProperty(exports, "getDiscontinuedNodeVersions", ({ enumerable: true, get: function () { return node_version_1.getDiscontinuedNodeVersions; } }));
|
35495
35567
|
const stream_to_buffer_1 = __importDefault(__webpack_require__(2560));
|
35496
35568
|
exports.streamToBuffer = stream_to_buffer_1.default;
|
35497
|
-
const should_serve_1 = __importDefault(__webpack_require__(2564));
|
35498
|
-
exports.shouldServe = should_serve_1.default;
|
35499
35569
|
const debug_1 = __importDefault(__webpack_require__(1868));
|
35500
35570
|
exports.debug = debug_1.default;
|
35501
35571
|
const get_ignore_filter_1 = __importDefault(__webpack_require__(1148));
|
@@ -35519,6 +35589,7 @@ var read_config_file_1 = __webpack_require__(7792);
|
|
35519
35589
|
Object.defineProperty(exports, "readConfigFile", ({ enumerable: true, get: function () { return read_config_file_1.readConfigFile; } }));
|
35520
35590
|
var normalize_path_1 = __webpack_require__(6261);
|
35521
35591
|
Object.defineProperty(exports, "normalizePath", ({ enumerable: true, get: function () { return normalize_path_1.normalizePath; } }));
|
35592
|
+
__exportStar(__webpack_require__(2564), exports);
|
35522
35593
|
__exportStar(__webpack_require__(2416), exports);
|
35523
35594
|
__exportStar(__webpack_require__(5748), exports);
|
35524
35595
|
__exportStar(__webpack_require__(3983), exports);
|
@@ -35539,6 +35610,8 @@ const isStaticRuntime = (name) => {
|
|
35539
35610
|
return exports.isOfficialRuntime('static', name);
|
35540
35611
|
};
|
35541
35612
|
exports.isStaticRuntime = isStaticRuntime;
|
35613
|
+
var workspace_managers_1 = __webpack_require__(4896);
|
35614
|
+
Object.defineProperty(exports, "workspaceManagers", ({ enumerable: true, get: function () { return workspace_managers_1.workspaceManagers; } }));
|
35542
35615
|
|
35543
35616
|
|
35544
35617
|
/***/ }),
|
@@ -35829,8 +35902,9 @@ exports.buildsSchema = {
|
|
35829
35902
|
"use strict";
|
35830
35903
|
|
35831
35904
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
35905
|
+
exports.shouldServe = void 0;
|
35832
35906
|
const path_1 = __webpack_require__(5622);
|
35833
|
-
|
35907
|
+
const shouldServe = ({ entrypoint, files, requestPath, }) => {
|
35834
35908
|
requestPath = requestPath.replace(/\/$/, ''); // sanitize trailing '/'
|
35835
35909
|
entrypoint = entrypoint.replace(/\\/, '/'); // windows compatibility
|
35836
35910
|
if (entrypoint === requestPath && hasProp(files, entrypoint)) {
|
@@ -35841,8 +35915,8 @@ function shouldServe({ entrypoint, files, requestPath, }) {
|
|
35841
35915
|
return true;
|
35842
35916
|
}
|
35843
35917
|
return false;
|
35844
|
-
}
|
35845
|
-
exports.
|
35918
|
+
};
|
35919
|
+
exports.shouldServe = shouldServe;
|
35846
35920
|
function hasProp(obj, key) {
|
35847
35921
|
return Object.hasOwnProperty.call(obj, key);
|
35848
35922
|
}
|
@@ -35858,6 +35932,141 @@ function hasProp(obj, key) {
|
|
35858
35932
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
35859
35933
|
|
35860
35934
|
|
35935
|
+
/***/ }),
|
35936
|
+
|
35937
|
+
/***/ 4896:
|
35938
|
+
/***/ ((__unused_webpack_module, exports) => {
|
35939
|
+
|
35940
|
+
"use strict";
|
35941
|
+
|
35942
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
35943
|
+
exports.workspaceManagers = void 0;
|
35944
|
+
/**
|
35945
|
+
* The supported list of workspace managers.
|
35946
|
+
*
|
35947
|
+
* This list is designed to work with the @see {@link detectFramework} function.
|
35948
|
+
*
|
35949
|
+
* @example
|
35950
|
+
* import { workspaceManagers as frameworkList } from '@vercel/build-utils/workspaces'
|
35951
|
+
* import { detectFramework } from '@vercel/build-utils'
|
35952
|
+
*
|
35953
|
+
* const fs = new GitDetectorFilesystem(...)
|
35954
|
+
* detectFramwork({ fs, frameworkList }) // returns the 'slug' field if detected, otherwise null
|
35955
|
+
*
|
35956
|
+
* @todo Will be used by the detect-eligible-projects API endpoint for a given git url.
|
35957
|
+
*/
|
35958
|
+
exports.workspaceManagers = [
|
35959
|
+
{
|
35960
|
+
name: 'Yarn',
|
35961
|
+
slug: 'yarn',
|
35962
|
+
detectors: {
|
35963
|
+
every: [
|
35964
|
+
{
|
35965
|
+
path: 'package.json',
|
35966
|
+
matchContent: '"workspaces":\\s*(?:\\[[^\\]]*]|{[^}]*"packages":[^}]*})',
|
35967
|
+
},
|
35968
|
+
{
|
35969
|
+
path: 'yarn.lock',
|
35970
|
+
},
|
35971
|
+
],
|
35972
|
+
},
|
35973
|
+
// unused props - needed for typescript
|
35974
|
+
description: '',
|
35975
|
+
logo: '',
|
35976
|
+
settings: {
|
35977
|
+
buildCommand: {
|
35978
|
+
value: '',
|
35979
|
+
placeholder: '',
|
35980
|
+
},
|
35981
|
+
devCommand: {
|
35982
|
+
value: '',
|
35983
|
+
placeholder: '',
|
35984
|
+
},
|
35985
|
+
installCommand: {
|
35986
|
+
value: '',
|
35987
|
+
placeholder: '',
|
35988
|
+
},
|
35989
|
+
outputDirectory: {
|
35990
|
+
value: '',
|
35991
|
+
placeholder: '',
|
35992
|
+
},
|
35993
|
+
},
|
35994
|
+
getOutputDirName: () => Promise.resolve(''),
|
35995
|
+
},
|
35996
|
+
{
|
35997
|
+
name: 'pnpm',
|
35998
|
+
slug: 'pnpm',
|
35999
|
+
detectors: {
|
36000
|
+
every: [
|
36001
|
+
{
|
36002
|
+
path: 'pnpm-workspace.yaml',
|
36003
|
+
},
|
36004
|
+
],
|
36005
|
+
},
|
36006
|
+
// unused props - needed for typescript
|
36007
|
+
description: '',
|
36008
|
+
logo: '',
|
36009
|
+
settings: {
|
36010
|
+
buildCommand: {
|
36011
|
+
value: '',
|
36012
|
+
placeholder: '',
|
36013
|
+
},
|
36014
|
+
devCommand: {
|
36015
|
+
value: '',
|
36016
|
+
placeholder: '',
|
36017
|
+
},
|
36018
|
+
installCommand: {
|
36019
|
+
value: '',
|
36020
|
+
placeholder: '',
|
36021
|
+
},
|
36022
|
+
outputDirectory: {
|
36023
|
+
value: '',
|
36024
|
+
placeholder: '',
|
36025
|
+
},
|
36026
|
+
},
|
36027
|
+
getOutputDirName: () => Promise.resolve(''),
|
36028
|
+
},
|
36029
|
+
{
|
36030
|
+
name: 'npm',
|
36031
|
+
slug: 'npm',
|
36032
|
+
detectors: {
|
36033
|
+
every: [
|
36034
|
+
{
|
36035
|
+
path: 'package.json',
|
36036
|
+
matchContent: '"workspaces":\\s*(?:\\[[^\\]]*]|{[^}]*"packages":[^}]*})',
|
36037
|
+
},
|
36038
|
+
{
|
36039
|
+
path: 'package-lock.json',
|
36040
|
+
},
|
36041
|
+
],
|
36042
|
+
},
|
36043
|
+
// unused props - needed for typescript
|
36044
|
+
description: '',
|
36045
|
+
logo: '',
|
36046
|
+
settings: {
|
36047
|
+
buildCommand: {
|
36048
|
+
value: '',
|
36049
|
+
placeholder: '',
|
36050
|
+
},
|
36051
|
+
devCommand: {
|
36052
|
+
value: '',
|
36053
|
+
placeholder: '',
|
36054
|
+
},
|
36055
|
+
installCommand: {
|
36056
|
+
value: '',
|
36057
|
+
placeholder: '',
|
36058
|
+
},
|
36059
|
+
outputDirectory: {
|
36060
|
+
value: '',
|
36061
|
+
placeholder: '',
|
36062
|
+
},
|
36063
|
+
},
|
36064
|
+
getOutputDirName: () => Promise.resolve(''),
|
36065
|
+
},
|
36066
|
+
];
|
36067
|
+
exports.default = exports.workspaceManagers;
|
36068
|
+
|
36069
|
+
|
35861
36070
|
/***/ }),
|
35862
36071
|
|
35863
36072
|
/***/ 5685:
|
package/dist/should-serve.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import {
|
2
|
-
export
|
1
|
+
import type { ShouldServe } from './types';
|
2
|
+
export declare const shouldServe: ShouldServe;
|
package/dist/should-serve.js
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.shouldServe = void 0;
|
3
4
|
const path_1 = require("path");
|
4
|
-
|
5
|
+
const shouldServe = ({ entrypoint, files, requestPath, }) => {
|
5
6
|
requestPath = requestPath.replace(/\/$/, ''); // sanitize trailing '/'
|
6
7
|
entrypoint = entrypoint.replace(/\\/, '/'); // windows compatibility
|
7
8
|
if (entrypoint === requestPath && hasProp(files, entrypoint)) {
|
@@ -12,8 +13,8 @@ function shouldServe({ entrypoint, files, requestPath, }) {
|
|
12
13
|
return true;
|
13
14
|
}
|
14
15
|
return false;
|
15
|
-
}
|
16
|
-
exports.
|
16
|
+
};
|
17
|
+
exports.shouldServe = shouldServe;
|
17
18
|
function hasProp(obj, key) {
|
18
19
|
return Object.hasOwnProperty.call(obj, key);
|
19
20
|
}
|
package/dist/types.d.ts
CHANGED
@@ -305,6 +305,7 @@ export interface BuilderV3 {
|
|
305
305
|
version: 3;
|
306
306
|
build: BuildV3;
|
307
307
|
prepareCache?: PrepareCache;
|
308
|
+
shouldServe?: ShouldServe;
|
308
309
|
startDevServer?: StartDevServer;
|
309
310
|
}
|
310
311
|
declare type ImageFormat = 'image/avif' | 'image/webp';
|
@@ -353,5 +354,6 @@ export interface BuildResultV3 {
|
|
353
354
|
export declare type BuildV2 = (options: BuildOptions) => Promise<BuildResultV2>;
|
354
355
|
export declare type BuildV3 = (options: BuildOptions) => Promise<BuildResultV3>;
|
355
356
|
export declare type PrepareCache = (options: PrepareCacheOptions) => Promise<Files>;
|
357
|
+
export declare type ShouldServe = (options: ShouldServeOptions) => boolean | Promise<boolean>;
|
356
358
|
export declare type StartDevServer = (options: StartDevServerOptions) => Promise<StartDevServerResult>;
|
357
359
|
export {};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import type { Framework } from '@vercel/frameworks';
|
2
|
+
/**
|
3
|
+
* The supported list of workspace managers.
|
4
|
+
*
|
5
|
+
* This list is designed to work with the @see {@link detectFramework} function.
|
6
|
+
*
|
7
|
+
* @example
|
8
|
+
* import { workspaceManagers as frameworkList } from '@vercel/build-utils/workspaces'
|
9
|
+
* import { detectFramework } from '@vercel/build-utils'
|
10
|
+
*
|
11
|
+
* const fs = new GitDetectorFilesystem(...)
|
12
|
+
* detectFramwork({ fs, frameworkList }) // returns the 'slug' field if detected, otherwise null
|
13
|
+
*
|
14
|
+
* @todo Will be used by the detect-eligible-projects API endpoint for a given git url.
|
15
|
+
*/
|
16
|
+
export declare const workspaceManagers: Array<Framework>;
|
17
|
+
export default workspaceManagers;
|
@@ -0,0 +1,127 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.workspaceManagers = void 0;
|
4
|
+
/**
|
5
|
+
* The supported list of workspace managers.
|
6
|
+
*
|
7
|
+
* This list is designed to work with the @see {@link detectFramework} function.
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* import { workspaceManagers as frameworkList } from '@vercel/build-utils/workspaces'
|
11
|
+
* import { detectFramework } from '@vercel/build-utils'
|
12
|
+
*
|
13
|
+
* const fs = new GitDetectorFilesystem(...)
|
14
|
+
* detectFramwork({ fs, frameworkList }) // returns the 'slug' field if detected, otherwise null
|
15
|
+
*
|
16
|
+
* @todo Will be used by the detect-eligible-projects API endpoint for a given git url.
|
17
|
+
*/
|
18
|
+
exports.workspaceManagers = [
|
19
|
+
{
|
20
|
+
name: 'Yarn',
|
21
|
+
slug: 'yarn',
|
22
|
+
detectors: {
|
23
|
+
every: [
|
24
|
+
{
|
25
|
+
path: 'package.json',
|
26
|
+
matchContent: '"workspaces":\\s*(?:\\[[^\\]]*]|{[^}]*"packages":[^}]*})',
|
27
|
+
},
|
28
|
+
{
|
29
|
+
path: 'yarn.lock',
|
30
|
+
},
|
31
|
+
],
|
32
|
+
},
|
33
|
+
// unused props - needed for typescript
|
34
|
+
description: '',
|
35
|
+
logo: '',
|
36
|
+
settings: {
|
37
|
+
buildCommand: {
|
38
|
+
value: '',
|
39
|
+
placeholder: '',
|
40
|
+
},
|
41
|
+
devCommand: {
|
42
|
+
value: '',
|
43
|
+
placeholder: '',
|
44
|
+
},
|
45
|
+
installCommand: {
|
46
|
+
value: '',
|
47
|
+
placeholder: '',
|
48
|
+
},
|
49
|
+
outputDirectory: {
|
50
|
+
value: '',
|
51
|
+
placeholder: '',
|
52
|
+
},
|
53
|
+
},
|
54
|
+
getOutputDirName: () => Promise.resolve(''),
|
55
|
+
},
|
56
|
+
{
|
57
|
+
name: 'pnpm',
|
58
|
+
slug: 'pnpm',
|
59
|
+
detectors: {
|
60
|
+
every: [
|
61
|
+
{
|
62
|
+
path: 'pnpm-workspace.yaml',
|
63
|
+
},
|
64
|
+
],
|
65
|
+
},
|
66
|
+
// unused props - needed for typescript
|
67
|
+
description: '',
|
68
|
+
logo: '',
|
69
|
+
settings: {
|
70
|
+
buildCommand: {
|
71
|
+
value: '',
|
72
|
+
placeholder: '',
|
73
|
+
},
|
74
|
+
devCommand: {
|
75
|
+
value: '',
|
76
|
+
placeholder: '',
|
77
|
+
},
|
78
|
+
installCommand: {
|
79
|
+
value: '',
|
80
|
+
placeholder: '',
|
81
|
+
},
|
82
|
+
outputDirectory: {
|
83
|
+
value: '',
|
84
|
+
placeholder: '',
|
85
|
+
},
|
86
|
+
},
|
87
|
+
getOutputDirName: () => Promise.resolve(''),
|
88
|
+
},
|
89
|
+
{
|
90
|
+
name: 'npm',
|
91
|
+
slug: 'npm',
|
92
|
+
detectors: {
|
93
|
+
every: [
|
94
|
+
{
|
95
|
+
path: 'package.json',
|
96
|
+
matchContent: '"workspaces":\\s*(?:\\[[^\\]]*]|{[^}]*"packages":[^}]*})',
|
97
|
+
},
|
98
|
+
{
|
99
|
+
path: 'package-lock.json',
|
100
|
+
},
|
101
|
+
],
|
102
|
+
},
|
103
|
+
// unused props - needed for typescript
|
104
|
+
description: '',
|
105
|
+
logo: '',
|
106
|
+
settings: {
|
107
|
+
buildCommand: {
|
108
|
+
value: '',
|
109
|
+
placeholder: '',
|
110
|
+
},
|
111
|
+
devCommand: {
|
112
|
+
value: '',
|
113
|
+
placeholder: '',
|
114
|
+
},
|
115
|
+
installCommand: {
|
116
|
+
value: '',
|
117
|
+
placeholder: '',
|
118
|
+
},
|
119
|
+
outputDirectory: {
|
120
|
+
value: '',
|
121
|
+
placeholder: '',
|
122
|
+
},
|
123
|
+
},
|
124
|
+
getOutputDirName: () => Promise.resolve(''),
|
125
|
+
},
|
126
|
+
];
|
127
|
+
exports.default = exports.workspaceManagers;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vercel/build-utils",
|
3
|
-
"version": "2.16.1-canary.
|
3
|
+
"version": "2.16.1-canary.3",
|
4
4
|
"license": "MIT",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"types": "./dist/index.d.js",
|
@@ -30,7 +30,7 @@
|
|
30
30
|
"@types/node-fetch": "^2.1.6",
|
31
31
|
"@types/semver": "6.0.0",
|
32
32
|
"@types/yazl": "2.4.2",
|
33
|
-
"@vercel/frameworks": "0.8.
|
33
|
+
"@vercel/frameworks": "0.8.1-canary.1",
|
34
34
|
"@vercel/ncc": "0.24.0",
|
35
35
|
"aggregate-error": "3.0.1",
|
36
36
|
"async-retry": "1.2.3",
|
@@ -49,5 +49,5 @@
|
|
49
49
|
"typescript": "4.3.4",
|
50
50
|
"yazl": "2.5.1"
|
51
51
|
},
|
52
|
-
"gitHead": "
|
52
|
+
"gitHead": "41d66661399754aed76a655c92f28c19afd0e8f1"
|
53
53
|
}
|