@vercel/static-build 2.7.23 → 2.7.24

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.
Files changed (2) hide show
  1. package/dist/index.js +268 -8
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -10196,19 +10196,28 @@ var require_frameworks = __commonJS({
10196
10196
  ]
10197
10197
  },
10198
10198
  {
10199
- name: "FastAPI (Experimental)",
10199
+ name: "FastAPI",
10200
10200
  slug: "fastapi",
10201
+ demo: "https://vercel-fastapi-gamma-smoky.vercel.app/",
10201
10202
  logo: "https://api-frameworks.vercel.sh/framework-logos/fastapi.svg",
10202
10203
  darkModeLogo: "https://api-frameworks.vercel.sh/framework-logos/fastapi.svg",
10203
10204
  tagline: "FastAPI framework, high performance, easy to learn, fast to code, ready for production",
10204
10205
  description: "FastAPI framework, high performance, easy to learn, fast to code, ready for production",
10205
10206
  website: "https://fastapi.tiangolo.com",
10206
- useRuntime: { src: "main.py", use: "@vercel/python" },
10207
+ useRuntime: { src: "index.py", use: "@vercel/python" },
10207
10208
  detectors: {
10208
- every: [
10209
+ some: [
10209
10210
  {
10210
10211
  path: "requirements.txt",
10211
10212
  matchContent: "fastapi"
10213
+ },
10214
+ {
10215
+ path: "pyproject.toml",
10216
+ matchContent: "fastapi"
10217
+ },
10218
+ {
10219
+ path: "Pipfile",
10220
+ matchContent: "fastapi"
10212
10221
  }
10213
10222
  ]
10214
10223
  },
@@ -10221,25 +10230,26 @@ var require_frameworks = __commonJS({
10221
10230
  value: null
10222
10231
  },
10223
10232
  devCommand: {
10224
- value: "uvicorn main:app --reload --port $PORT"
10233
+ placeholder: "None",
10234
+ value: null
10225
10235
  },
10226
10236
  outputDirectory: {
10227
10237
  value: "N/A"
10228
10238
  }
10229
10239
  },
10230
- getOutputDirName: async () => "",
10240
+ getOutputDirName: async () => "public",
10231
10241
  defaultRoutes: [
10232
10242
  {
10233
10243
  handle: "filesystem"
10234
10244
  },
10235
10245
  {
10236
10246
  src: "/(.*)",
10237
- dest: "/main"
10247
+ dest: "/"
10238
10248
  }
10239
10249
  ]
10240
10250
  },
10241
10251
  {
10242
- name: "FastHTML (Experimental)",
10252
+ name: "FastHTML",
10243
10253
  slug: "fasthtml",
10244
10254
  demo: "https://fasthtml-template.vercel.app",
10245
10255
  logo: "https://api-frameworks.vercel.sh/framework-logos/fasthtml.png",
@@ -10649,6 +10659,7 @@ var require_frameworks = __commonJS({
10649
10659
  name: "Express",
10650
10660
  slug: "express",
10651
10661
  logo: "https://api-frameworks.vercel.sh/framework-logos/express.svg",
10662
+ demo: "https://express-vercel-example-demo.vercel.app/",
10652
10663
  darkModeLogo: "https://api-frameworks.vercel.sh/framework-logos/express-dark.svg",
10653
10664
  tagline: "Fast, unopinionated, minimalist web framework for Node.js",
10654
10665
  description: "Fast, unopinionated, minimalist web framework for Node.js",
@@ -10831,6 +10842,236 @@ var require_frameworks = __commonJS({
10831
10842
  dependency: "express",
10832
10843
  getOutputDirName: async () => "public"
10833
10844
  },
10845
+ {
10846
+ name: "H3",
10847
+ slug: "h3",
10848
+ logo: "https://api-frameworks.vercel.sh/framework-logos/h3.svg",
10849
+ tagline: "Universal, Tiny, and Fast Servers",
10850
+ description: "H(TTP) server framework built on top of web standards for high performance and composability.",
10851
+ website: "https://h3.dev/",
10852
+ useRuntime: { src: "index.js", use: "@vercel/h3" },
10853
+ defaultRoutes: [
10854
+ {
10855
+ handle: "filesystem"
10856
+ },
10857
+ {
10858
+ src: "/(.*)",
10859
+ dest: "/"
10860
+ }
10861
+ ],
10862
+ detectors: {
10863
+ every: [{ matchPackage: "h3" }],
10864
+ some: [
10865
+ {
10866
+ path: "app.cjs",
10867
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10868
+ },
10869
+ {
10870
+ path: "app.js",
10871
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10872
+ },
10873
+ {
10874
+ path: "app.mjs",
10875
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10876
+ },
10877
+ {
10878
+ path: "app.mts",
10879
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10880
+ },
10881
+ {
10882
+ path: "app.ts",
10883
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10884
+ },
10885
+ {
10886
+ path: "app.cts",
10887
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10888
+ },
10889
+ {
10890
+ path: "index.cjs",
10891
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10892
+ },
10893
+ {
10894
+ path: "index.js",
10895
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10896
+ },
10897
+ {
10898
+ path: "index.mjs",
10899
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10900
+ },
10901
+ {
10902
+ path: "index.mts",
10903
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10904
+ },
10905
+ {
10906
+ path: "index.ts",
10907
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10908
+ },
10909
+ {
10910
+ path: "index.cts",
10911
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10912
+ },
10913
+ {
10914
+ path: "server.cjs",
10915
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10916
+ },
10917
+ {
10918
+ path: "server.js",
10919
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10920
+ },
10921
+ {
10922
+ path: "server.mjs",
10923
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10924
+ },
10925
+ {
10926
+ path: "server.mts",
10927
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10928
+ },
10929
+ {
10930
+ path: "server.ts",
10931
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10932
+ },
10933
+ {
10934
+ path: "server.cts",
10935
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10936
+ },
10937
+ {
10938
+ path: "src/index.cjs",
10939
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10940
+ },
10941
+ {
10942
+ path: "src/index.js",
10943
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10944
+ },
10945
+ {
10946
+ path: "src/index.mjs",
10947
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10948
+ },
10949
+ {
10950
+ path: "src/index.mts",
10951
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10952
+ },
10953
+ {
10954
+ path: "src/index.ts",
10955
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10956
+ },
10957
+ {
10958
+ path: "src/index.cts",
10959
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10960
+ },
10961
+ {
10962
+ path: "src/app.cjs",
10963
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10964
+ },
10965
+ {
10966
+ path: "src/app.js",
10967
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10968
+ },
10969
+ {
10970
+ path: "src/app.mjs",
10971
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10972
+ },
10973
+ {
10974
+ path: "src/app.mts",
10975
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10976
+ },
10977
+ {
10978
+ path: "src/app.ts",
10979
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10980
+ },
10981
+ {
10982
+ path: "src/app.cts",
10983
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10984
+ },
10985
+ {
10986
+ path: "src/server.cjs",
10987
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10988
+ },
10989
+ {
10990
+ path: "src/server.js",
10991
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10992
+ },
10993
+ {
10994
+ path: "src/server.mjs",
10995
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
10996
+ },
10997
+ {
10998
+ path: "src/server.mts",
10999
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
11000
+ },
11001
+ {
11002
+ path: "src/server.ts",
11003
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
11004
+ },
11005
+ {
11006
+ path: "src/server.cts",
11007
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']h3["']\\s*(?:\\))?`
11008
+ }
11009
+ ]
11010
+ },
11011
+ settings: {
11012
+ installCommand: {
11013
+ placeholder: "`yarn install`, `pnpm install`, `npm install`, or `bun install`"
11014
+ },
11015
+ buildCommand: {
11016
+ placeholder: "None",
11017
+ value: null
11018
+ },
11019
+ devCommand: {
11020
+ placeholder: "None",
11021
+ value: null
11022
+ },
11023
+ outputDirectory: {
11024
+ value: "N/A"
11025
+ }
11026
+ },
11027
+ dependency: "h3",
11028
+ getOutputDirName: async () => "public"
11029
+ },
11030
+ {
11031
+ name: "NestJS",
11032
+ slug: "nestjs",
11033
+ logo: "https://api-frameworks.vercel.sh/framework-logos/nestjs.svg",
11034
+ tagline: "Framework for building efficient, scalable Node.js server-side applications",
11035
+ description: "A progressive Node.js framework for building efficient, reliable and scalable server-side applications.",
11036
+ website: "https://nestjs.com/",
11037
+ useRuntime: { src: "index.js", use: "@vercel/nestjs" },
11038
+ defaultRoutes: [
11039
+ {
11040
+ handle: "filesystem"
11041
+ },
11042
+ {
11043
+ src: "/(.*)",
11044
+ dest: "/"
11045
+ }
11046
+ ],
11047
+ detectors: {
11048
+ every: [{ matchPackage: "@nestjs/core" }],
11049
+ some: [
11050
+ {
11051
+ path: "src/main.ts",
11052
+ matchContent: `(?:from|require|import)\\s*(?:\\(\\s*)?["']@nestjs/core["']\\s*(?:\\))?`
11053
+ }
11054
+ ]
11055
+ },
11056
+ settings: {
11057
+ installCommand: {
11058
+ placeholder: "`yarn install`, `pnpm install`, `npm install`, or `bun install`"
11059
+ },
11060
+ buildCommand: {
11061
+ placeholder: "None",
11062
+ value: null
11063
+ },
11064
+ devCommand: {
11065
+ placeholder: "None",
11066
+ value: null
11067
+ },
11068
+ outputDirectory: {
11069
+ value: "N/A"
11070
+ }
11071
+ },
11072
+ dependency: "nestjs",
11073
+ getOutputDirName: async () => "public"
11074
+ },
10834
11075
  {
10835
11076
  name: "xmcp",
10836
11077
  slug: "xmcp",
@@ -18621,7 +18862,7 @@ var require_detect_builders = __commonJS({
18621
18862
  builders.push(...apiBuilders);
18622
18863
  }
18623
18864
  if (frontendBuilder) {
18624
- if (frontendBuilder?.use === "@vercel/express") {
18865
+ if (frontendBuilder?.use === "@vercel/express" || frontendBuilder?.use === "@vercel/hono" || frontendBuilder?.use === "@vercel/python") {
18625
18866
  builders.push({
18626
18867
  src: "public/**/*",
18627
18868
  use: "@vercel/static",
@@ -18888,6 +19129,25 @@ var require_detect_builders = __commonJS({
18888
19129
  }
18889
19130
  }
18890
19131
  }
19132
+ if (frontendBuilder && ((0, import_is_official_runtime.isOfficialRuntime)("express", frontendBuilder.use) || (0, import_is_official_runtime.isOfficialRuntime)("hono", frontendBuilder.use))) {
19133
+ const validFilenames = [
19134
+ "app",
19135
+ "index",
19136
+ "server",
19137
+ "src/app",
19138
+ "src/index",
19139
+ "src/server"
19140
+ ];
19141
+ const validExtensions = ["js", "cjs", "mjs", "ts", "cts", "mts"];
19142
+ const validEntrypoints = validFilenames.flatMap(
19143
+ (filename) => validExtensions.map((extension) => `${filename}.${extension}`)
19144
+ );
19145
+ for (const fnKey of unusedFunctions.values()) {
19146
+ if (validEntrypoints.includes(fnKey)) {
19147
+ unusedFunctions.delete(fnKey);
19148
+ }
19149
+ }
19150
+ }
18891
19151
  if (unusedFunctions.size) {
18892
19152
  const [fnKey] = Array.from(unusedFunctions);
18893
19153
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/static-build",
3
- "version": "2.7.23",
3
+ "version": "2.7.24",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index",
6
6
  "homepage": "https://vercel.com/docs/build-step",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@vercel/gatsby-plugin-vercel-analytics": "1.0.11",
17
- "@vercel/gatsby-plugin-vercel-builder": "2.0.95",
17
+ "@vercel/gatsby-plugin-vercel-builder": "2.0.96",
18
18
  "@vercel/static-config": "3.1.2",
19
19
  "ts-morph": "12.0.0"
20
20
  },
@@ -28,11 +28,11 @@
28
28
  "@types/node-fetch": "2.5.4",
29
29
  "@types/promise-timeout": "1.3.0",
30
30
  "@types/semver": "7.3.13",
31
- "@vercel/build-utils": "12.1.0",
31
+ "@vercel/build-utils": "12.1.1",
32
32
  "@vercel/error-utils": "2.0.3",
33
- "@vercel/frameworks": "3.8.4",
34
- "@vercel/fs-detectors": "5.5.2",
35
- "@vercel/routing-utils": "5.1.1",
33
+ "@vercel/frameworks": "3.11.0",
34
+ "@vercel/fs-detectors": "5.6.0",
35
+ "@vercel/routing-utils": "5.2.0",
36
36
  "execa": "3.2.0",
37
37
  "fs-extra": "10.0.0",
38
38
  "get-port": "5.0.0",