@vercel/build-utils 2.12.3-canary.13 → 2.12.3-canary.14

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 +346 -1
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -26248,6 +26248,7 @@ exports.frameworks = [
26248
26248
  },
26249
26249
  devCommand: 'blitz start',
26250
26250
  buildCommand: 'blitz build',
26251
+ getFsOutputDir: async () => '.next',
26251
26252
  getOutputDirName: async () => 'public',
26252
26253
  },
26253
26254
  {
@@ -26292,6 +26293,7 @@ exports.frameworks = [
26292
26293
  ],
26293
26294
  devCommand: 'next dev --port $PORT',
26294
26295
  buildCommand: 'next build',
26296
+ getFsOutputDir: async () => '.next',
26295
26297
  getOutputDirName: async () => 'public',
26296
26298
  cachePattern: '.next/cache/**',
26297
26299
  },
@@ -26332,6 +26334,7 @@ exports.frameworks = [
26332
26334
  devCommand: 'gatsby develop --port $PORT',
26333
26335
  buildCommand: 'gatsby build',
26334
26336
  getOutputDirName: async () => 'public',
26337
+ getFsOutputDir: async () => 'public',
26335
26338
  defaultRoutes: async (dirPrefix) => {
26336
26339
  // This file could be generated by gatsby-plugin-now or gatsby-plugin-zeit-now
26337
26340
  try {
@@ -26413,6 +26416,7 @@ exports.frameworks = [
26413
26416
  dependency: 'hexo',
26414
26417
  devCommand: 'hexo server --port $PORT',
26415
26418
  buildCommand: 'hexo generate',
26419
+ getFsOutputDir: async () => 'public',
26416
26420
  getOutputDirName: async () => 'public',
26417
26421
  },
26418
26422
  {
@@ -26450,6 +26454,7 @@ exports.frameworks = [
26450
26454
  dependency: '@11ty/eleventy',
26451
26455
  devCommand: 'npx @11ty/eleventy --serve --watch --port $PORT',
26452
26456
  buildCommand: 'npx @11ty/eleventy',
26457
+ getFsOutputDir: async () => '_site',
26453
26458
  getOutputDirName: async () => '_site',
26454
26459
  cachePattern: '.cache/**',
26455
26460
  },
@@ -26487,6 +26492,21 @@ exports.frameworks = [
26487
26492
  dependency: '@docusaurus/core',
26488
26493
  devCommand: 'docusaurus start --port $PORT',
26489
26494
  buildCommand: 'docusaurus build',
26495
+ getFsOutputDir: async (dirPrefix) => {
26496
+ const base = 'build';
26497
+ try {
26498
+ const location = path_1.join(dirPrefix, base);
26499
+ const content = await readdir(location, { withFileTypes: true });
26500
+ // If there is only one file in it that is a dir we'll use it as dist dir
26501
+ if (content.length === 1 && content[0].isDirectory()) {
26502
+ return path_1.join(base, content[0].name);
26503
+ }
26504
+ }
26505
+ catch (error) {
26506
+ console.error(`Error detecting output directory: `, error);
26507
+ }
26508
+ return base;
26509
+ },
26490
26510
  getOutputDirName: async (dirPrefix) => {
26491
26511
  const base = 'build';
26492
26512
  try {
@@ -26502,6 +26522,51 @@ exports.frameworks = [
26502
26522
  }
26503
26523
  return base;
26504
26524
  },
26525
+ defaultHeaders: [
26526
+ {
26527
+ source: '^/[^./]+\\.[0-9a-f]{8}\\.(css|js)$',
26528
+ regex: '^/[^./]+\\.[0-9a-f]{8}\\.(css|js)$',
26529
+ headers: [
26530
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
26531
+ ],
26532
+ },
26533
+ {
26534
+ source: '^/assets/images/[^/]+-[0-9a-f]{32}\\.(ico|svg|jpg|jpeg|png|gif|webp)$',
26535
+ regex: '^/assets/images/[^/]+-[0-9a-f]{32}\\.(ico|svg|jpg|jpeg|png|gif|webp)$',
26536
+ headers: [
26537
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
26538
+ ],
26539
+ },
26540
+ {
26541
+ source: '^/assets/medias/[^/]+-[0-9a-f]{32}\\.(ogv|wav|mp3|m4a|aac|oga|flac)$',
26542
+ regex: '^/assets/medias/[^/]+-[0-9a-f]{32}\\.(ogv|wav|mp3|m4a|aac|oga|flac)$',
26543
+ headers: [
26544
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
26545
+ ],
26546
+ },
26547
+ {
26548
+ source: '^/assets/files/[^/]+-[0-9a-f]{32}\\.(pdf|doc|docx|xls|xlsx|zip|rar)$',
26549
+ regex: '^/assets/files/[^/]+-[0-9a-f]{32}\\.(pdf|doc|docx|xls|xlsx|zip|rar)$',
26550
+ headers: [
26551
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
26552
+ ],
26553
+ },
26554
+ {
26555
+ source: '^/ideal-img/[^/]+\\.[0-9a-f]{7}\\.\\d+\\.(png|jpe?g|gif)$',
26556
+ regex: '^/ideal-img/[^/]+\\.[0-9a-f]{7}\\.\\d+\\.(png|jpe?g|gif)$',
26557
+ headers: [
26558
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
26559
+ ],
26560
+ },
26561
+ ],
26562
+ defaultRedirects: [
26563
+ {
26564
+ source: '.*',
26565
+ regex: '.*',
26566
+ statusCode: 404,
26567
+ destination: '404.html',
26568
+ },
26569
+ ],
26505
26570
  defaultRoutes: [
26506
26571
  {
26507
26572
  src: '^/[^./]+\\.[0-9a-f]{8}\\.(css|js)$',
@@ -26572,6 +26637,21 @@ exports.frameworks = [
26572
26637
  dependency: 'docusaurus',
26573
26638
  devCommand: 'docusaurus-start --port $PORT',
26574
26639
  buildCommand: 'docusaurus-build',
26640
+ getFsOutputDir: async (dirPrefix) => {
26641
+ const base = 'build';
26642
+ try {
26643
+ const location = path_1.join(dirPrefix, base);
26644
+ const content = await readdir(location, { withFileTypes: true });
26645
+ // If there is only one file in it that is a dir we'll use it as dist dir
26646
+ if (content.length === 1 && content[0].isDirectory()) {
26647
+ return path_1.join(base, content[0].name);
26648
+ }
26649
+ }
26650
+ catch (error) {
26651
+ console.error(`Error detecting output directory: `, error);
26652
+ }
26653
+ return base;
26654
+ },
26575
26655
  getOutputDirName: async (dirPrefix) => {
26576
26656
  const base = 'build';
26577
26657
  try {
@@ -26622,6 +26702,7 @@ exports.frameworks = [
26622
26702
  dependency: 'preact-cli',
26623
26703
  devCommand: 'preact watch --port $PORT',
26624
26704
  buildCommand: 'preact build',
26705
+ getFsOutputDir: async () => 'build',
26625
26706
  getOutputDirName: async () => 'build',
26626
26707
  defaultRoutes: [
26627
26708
  {
@@ -26632,6 +26713,13 @@ exports.frameworks = [
26632
26713
  dest: '/index.html',
26633
26714
  },
26634
26715
  ],
26716
+ defaultRewrites: [
26717
+ {
26718
+ source: '/(.*)',
26719
+ regex: '/(.*)',
26720
+ destination: '/index.html',
26721
+ },
26722
+ ],
26635
26723
  },
26636
26724
  {
26637
26725
  name: 'Dojo',
@@ -26670,6 +26758,7 @@ exports.frameworks = [
26670
26758
  dependency: '@dojo/cli',
26671
26759
  devCommand: 'dojo build -m dev -w -s -p $PORT',
26672
26760
  buildCommand: 'dojo build',
26761
+ getFsOutputDir: async () => 'output/dist',
26673
26762
  getOutputDirName: async () => path_1.join('output', 'dist'),
26674
26763
  defaultRoutes: [
26675
26764
  {
@@ -26685,6 +26774,21 @@ exports.frameworks = [
26685
26774
  dest: '/index.html',
26686
26775
  },
26687
26776
  ],
26777
+ defaulHeaders: [
26778
+ {
26779
+ source: '/service-worker.js',
26780
+ regex: '/service-worker.js',
26781
+ headers: { 'cache-control': 's-maxage=0' },
26782
+ continue: true,
26783
+ },
26784
+ ],
26785
+ defaultRewrites: [
26786
+ {
26787
+ source: '/(.*)',
26788
+ regex: '/(.*)',
26789
+ destination: '/index.html',
26790
+ },
26791
+ ],
26688
26792
  },
26689
26793
  {
26690
26794
  name: 'Ember.js',
@@ -26720,6 +26824,7 @@ exports.frameworks = [
26720
26824
  dependency: 'ember-cli',
26721
26825
  devCommand: 'ember serve --port $PORT',
26722
26826
  buildCommand: 'ember build',
26827
+ getFsOutputDir: async () => 'dist',
26723
26828
  getOutputDirName: async () => 'dist',
26724
26829
  defaultRoutes: [
26725
26830
  {
@@ -26730,6 +26835,13 @@ exports.frameworks = [
26730
26835
  dest: '/index.html',
26731
26836
  },
26732
26837
  ],
26838
+ defaultRewrites: [
26839
+ {
26840
+ source: '/(.*)',
26841
+ regex: '/(.*)',
26842
+ destination: '/index.html',
26843
+ },
26844
+ ],
26733
26845
  },
26734
26846
  {
26735
26847
  name: 'Vue.js',
@@ -26766,6 +26878,7 @@ exports.frameworks = [
26766
26878
  dependency: '@vue/cli-service',
26767
26879
  devCommand: 'vue-cli-service serve --port $PORT',
26768
26880
  buildCommand: 'vue-cli-service build',
26881
+ getFsOutputDir: async () => 'dist',
26769
26882
  getOutputDirName: async () => 'dist',
26770
26883
  defaultRoutes: [
26771
26884
  {
@@ -26786,6 +26899,27 @@ exports.frameworks = [
26786
26899
  dest: '/index.html',
26787
26900
  },
26788
26901
  ],
26902
+ defaultHeaders: [
26903
+ {
26904
+ source: '^/[^/]*\\.(js|txt|ico|json)',
26905
+ regex: '^/[^/]*\\.(js|txt|ico|json)',
26906
+ headers: [{ key: 'cache-control', value: 'max-age=300' }],
26907
+ },
26908
+ {
26909
+ source: '^/(img|js|css|fonts|media)/[^/]+\\.[0-9a-f]{8}\\.*',
26910
+ regex: '^/(img|js|css|fonts|media)/[^/]+\\.[0-9a-f]{8}\\.*',
26911
+ headers: [
26912
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
26913
+ ],
26914
+ },
26915
+ ],
26916
+ defaultRewrites: [
26917
+ {
26918
+ source: '^.*',
26919
+ regex: '^.*',
26920
+ destination: '/index.html',
26921
+ },
26922
+ ],
26789
26923
  },
26790
26924
  {
26791
26925
  name: 'Scully',
@@ -26821,6 +26955,7 @@ exports.frameworks = [
26821
26955
  dependency: '@scullyio/init',
26822
26956
  devCommand: 'ng serve --port $PORT',
26823
26957
  buildCommand: 'ng build && scully',
26958
+ getFsOutputDir: async () => 'dist',
26824
26959
  getOutputDirName: async () => 'dist/static',
26825
26960
  },
26826
26961
  {
@@ -26856,6 +26991,7 @@ exports.frameworks = [
26856
26991
  dependency: '@ionic/angular',
26857
26992
  devCommand: 'ng serve --port $PORT',
26858
26993
  buildCommand: 'ng build',
26994
+ getFsOutputDir: async () => 'www',
26859
26995
  getOutputDirName: async () => 'www',
26860
26996
  defaultRoutes: [
26861
26997
  {
@@ -26866,6 +27002,13 @@ exports.frameworks = [
26866
27002
  dest: '/index.html',
26867
27003
  },
26868
27004
  ],
27005
+ defaultRewrites: [
27006
+ {
27007
+ source: '/(.*)',
27008
+ regex: '/(.*)',
27009
+ destination: '/index.html',
27010
+ },
27011
+ ],
26869
27012
  },
26870
27013
  {
26871
27014
  name: 'Angular',
@@ -26901,6 +27044,7 @@ exports.frameworks = [
26901
27044
  dependency: '@angular/cli',
26902
27045
  devCommand: 'ng serve --port $PORT',
26903
27046
  buildCommand: 'ng build',
27047
+ getFsOutputDir: async () => 'dist',
26904
27048
  getOutputDirName: async (dirPrefix) => {
26905
27049
  const base = 'dist';
26906
27050
  try {
@@ -26925,6 +27069,13 @@ exports.frameworks = [
26925
27069
  dest: '/index.html',
26926
27070
  },
26927
27071
  ],
27072
+ defaultRewrites: [
27073
+ {
27074
+ source: '/(.*)',
27075
+ regex: '/(.*)',
27076
+ destination: '/index.html',
27077
+ },
27078
+ ],
26928
27079
  },
26929
27080
  {
26930
27081
  name: 'Polymer',
@@ -26960,6 +27111,7 @@ exports.frameworks = [
26960
27111
  dependency: 'polymer-cli',
26961
27112
  devCommand: 'polymer serve --port $PORT',
26962
27113
  buildCommand: 'polymer build',
27114
+ getFsOutputDir: async () => 'build',
26963
27115
  getOutputDirName: async (dirPrefix) => {
26964
27116
  const base = 'build';
26965
27117
  try {
@@ -26982,6 +27134,13 @@ exports.frameworks = [
26982
27134
  dest: '/index.html',
26983
27135
  },
26984
27136
  ],
27137
+ defaultRewrites: [
27138
+ {
27139
+ source: '/(.*)',
27140
+ regex: '/(.*)',
27141
+ destination: '/index.html',
27142
+ },
27143
+ ],
26985
27144
  },
26986
27145
  {
26987
27146
  name: 'Svelte',
@@ -27020,6 +27179,7 @@ exports.frameworks = [
27020
27179
  dependency: 'sirv-cli',
27021
27180
  devCommand: 'rollup -c -w',
27022
27181
  buildCommand: 'rollup -c',
27182
+ getFsOutputDir: async () => 'public',
27023
27183
  getOutputDirName: async () => 'public',
27024
27184
  defaultRoutes: [
27025
27185
  {
@@ -27030,6 +27190,13 @@ exports.frameworks = [
27030
27190
  dest: '/index.html',
27031
27191
  },
27032
27192
  ],
27193
+ defaultRewrites: [
27194
+ {
27195
+ source: '/(.*)',
27196
+ regex: '/(.*)',
27197
+ destination: '/index.html',
27198
+ },
27199
+ ],
27033
27200
  },
27034
27201
  {
27035
27202
  name: 'SvelteKit',
@@ -27064,6 +27231,7 @@ exports.frameworks = [
27064
27231
  },
27065
27232
  devCommand: 'svelte-kit dev --port $PORT',
27066
27233
  buildCommand: 'svelte-kit build',
27234
+ getFsOutputDir: async () => '.output',
27067
27235
  getOutputDirName: async () => 'public',
27068
27236
  },
27069
27237
  {
@@ -27099,6 +27267,7 @@ exports.frameworks = [
27099
27267
  dependency: '@ionic/react',
27100
27268
  devCommand: 'react-scripts start',
27101
27269
  buildCommand: 'react-scripts build',
27270
+ getFsOutputDir: async () => 'build',
27102
27271
  getOutputDirName: async () => 'build',
27103
27272
  defaultRoutes: [
27104
27273
  {
@@ -27125,6 +27294,45 @@ exports.frameworks = [
27125
27294
  dest: '/index.html',
27126
27295
  },
27127
27296
  ],
27297
+ defaultHeaders: [
27298
+ {
27299
+ source: '/static/(.*)',
27300
+ regex: '/static/(.*)',
27301
+ headers: [
27302
+ { key: 'cache-control', value: 's-maxage=31536000, immutable' },
27303
+ ],
27304
+ },
27305
+ {
27306
+ source: '/service-worker.js',
27307
+ regex: '/service-worker.js',
27308
+ headers: [{ key: 'cache-control', value: 's-maxage=0' }],
27309
+ },
27310
+ {
27311
+ source: '/(.*)',
27312
+ regex: '/(.*)',
27313
+ headers: [{ key: 'cache-control', value: 's-maxage=0' }],
27314
+ },
27315
+ ],
27316
+ defaultRedirects: [
27317
+ {
27318
+ source: '/static/(.*)',
27319
+ destination: '/404.html',
27320
+ statusCode: 404,
27321
+ regex: '/static/(.*)',
27322
+ },
27323
+ ],
27324
+ defaultRewrites: [
27325
+ {
27326
+ source: '/sockjs-node/(.*)',
27327
+ destination: '/sockjs-node/$1',
27328
+ regex: '/sockjs-node/(.*)',
27329
+ },
27330
+ {
27331
+ source: '/(.*)',
27332
+ destination: '/index.html',
27333
+ regex: '/(.*)',
27334
+ },
27335
+ ],
27128
27336
  },
27129
27337
  {
27130
27338
  name: 'Create React App',
@@ -27164,6 +27372,7 @@ exports.frameworks = [
27164
27372
  dependency: 'react-scripts',
27165
27373
  devCommand: 'react-scripts start',
27166
27374
  buildCommand: 'react-scripts build',
27375
+ getFsOutputDir: async () => 'build',
27167
27376
  getOutputDirName: async () => 'build',
27168
27377
  defaultRoutes: [
27169
27378
  {
@@ -27190,6 +27399,45 @@ exports.frameworks = [
27190
27399
  dest: '/index.html',
27191
27400
  },
27192
27401
  ],
27402
+ defaultHeaders: [
27403
+ {
27404
+ source: '/static/(.*)',
27405
+ regex: '/static/(.*)',
27406
+ headers: [
27407
+ { key: 'cache-control', value: 's-maxage=31536000, immutable' },
27408
+ ],
27409
+ },
27410
+ {
27411
+ source: '/service-worker.js',
27412
+ regex: '/service-worker.js',
27413
+ headers: [{ key: 'cache-control', value: 's-maxage=0' }],
27414
+ },
27415
+ {
27416
+ source: '/(.*)',
27417
+ regex: '/(.*)',
27418
+ headers: [{ key: 'cache-control', value: 's-maxage=0' }],
27419
+ },
27420
+ ],
27421
+ defaultRedirects: [
27422
+ {
27423
+ source: '/static/(.*)',
27424
+ destination: '/404.html',
27425
+ statusCode: 404,
27426
+ regex: '/static/(.*)',
27427
+ },
27428
+ ],
27429
+ defaultRewrites: [
27430
+ {
27431
+ source: '/sockjs-node/(.*)',
27432
+ destination: '/sockjs-node/$1',
27433
+ regex: '/sockjs-node/(.*)',
27434
+ },
27435
+ {
27436
+ source: '/(.*)',
27437
+ destination: '/index.html',
27438
+ regex: '/(.*)',
27439
+ },
27440
+ ],
27193
27441
  },
27194
27442
  {
27195
27443
  name: 'Gridsome',
@@ -27225,6 +27473,7 @@ exports.frameworks = [
27225
27473
  dependency: 'gridsome',
27226
27474
  devCommand: 'gridsome develop -p $PORT',
27227
27475
  buildCommand: 'gridsome build',
27476
+ getFsOutputDir: async () => 'dist',
27228
27477
  getOutputDirName: async () => 'dist',
27229
27478
  },
27230
27479
  {
@@ -27261,6 +27510,7 @@ exports.frameworks = [
27261
27510
  dependency: 'umi',
27262
27511
  devCommand: 'umi dev --port $PORT',
27263
27512
  buildCommand: 'umi build',
27513
+ getFsOutputDir: async () => 'dist',
27264
27514
  getOutputDirName: async () => 'dist',
27265
27515
  defaultRoutes: [
27266
27516
  {
@@ -27271,6 +27521,13 @@ exports.frameworks = [
27271
27521
  dest: '/index.html',
27272
27522
  },
27273
27523
  ],
27524
+ defaultRewrites: [
27525
+ {
27526
+ source: '/(.*)',
27527
+ destination: '/index.html',
27528
+ regex: '/(.*)',
27529
+ },
27530
+ ],
27274
27531
  },
27275
27532
  {
27276
27533
  name: 'Sapper',
@@ -27306,6 +27563,7 @@ exports.frameworks = [
27306
27563
  dependency: 'sapper',
27307
27564
  devCommand: 'sapper dev --port $PORT',
27308
27565
  buildCommand: 'sapper export',
27566
+ getFsOutputDir: async () => '__sapper__/export',
27309
27567
  getOutputDirName: async () => '__sapper__/export',
27310
27568
  },
27311
27569
  {
@@ -27342,6 +27600,7 @@ exports.frameworks = [
27342
27600
  dependency: 'saber',
27343
27601
  devCommand: 'saber --port $PORT',
27344
27602
  buildCommand: 'saber build',
27603
+ getFsOutputDir: async () => 'public',
27345
27604
  getOutputDirName: async () => 'public',
27346
27605
  defaultRoutes: [
27347
27606
  {
@@ -27357,6 +27616,23 @@ exports.frameworks = [
27357
27616
  dest: '404.html',
27358
27617
  },
27359
27618
  ],
27619
+ defaultHeaders: [
27620
+ {
27621
+ source: '/_saber/.*',
27622
+ regex: '/_saber/.*',
27623
+ headers: [
27624
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
27625
+ ],
27626
+ },
27627
+ ],
27628
+ defaultRedirects: [
27629
+ {
27630
+ source: '.*',
27631
+ statusCode: 404,
27632
+ destination: '404.html',
27633
+ regex: '.*',
27634
+ },
27635
+ ],
27360
27636
  },
27361
27637
  {
27362
27638
  name: 'Stencil',
@@ -27392,6 +27668,7 @@ exports.frameworks = [
27392
27668
  dependency: '@stencil/core',
27393
27669
  devCommand: 'stencil build --dev --watch --serve --port $PORT',
27394
27670
  buildCommand: 'stencil build',
27671
+ getFsOutputDir: async () => 'www',
27395
27672
  getOutputDirName: async () => 'www',
27396
27673
  defaultRoutes: [
27397
27674
  {
@@ -27417,6 +27694,32 @@ exports.frameworks = [
27417
27694
  dest: '/index.html',
27418
27695
  },
27419
27696
  ],
27697
+ defaultHeaders: [
27698
+ {
27699
+ source: '/assets/(.*)',
27700
+ regex: '/assets/(.*)',
27701
+ headers: [{ key: 'cache-control', value: 'max-age=2592000' }],
27702
+ },
27703
+ {
27704
+ source: '/build/p-.*',
27705
+ regex: '/build/p-.*',
27706
+ headers: [
27707
+ { key: 'cache-control', value: 'max-age=31536000, immutable' },
27708
+ ],
27709
+ },
27710
+ {
27711
+ source: '/sw.js',
27712
+ regex: '/sw.js',
27713
+ headers: [{ key: 'cache-control', value: 'no-cache' }],
27714
+ },
27715
+ ],
27716
+ defaultRewrites: [
27717
+ {
27718
+ source: '/(.*)',
27719
+ destination: '/index.html',
27720
+ regex: '/(.*)',
27721
+ },
27722
+ ],
27420
27723
  },
27421
27724
  {
27422
27725
  name: 'Nuxt.js',
@@ -27452,6 +27755,7 @@ exports.frameworks = [
27452
27755
  dependency: 'nuxt',
27453
27756
  devCommand: 'nuxt',
27454
27757
  buildCommand: 'nuxt generate',
27758
+ getFsOutputDir: async () => '.output',
27455
27759
  getOutputDirName: async () => 'dist',
27456
27760
  cachePattern: '.nuxt/**',
27457
27761
  defaultRoutes: [
@@ -27510,6 +27814,7 @@ exports.frameworks = [
27510
27814
  },
27511
27815
  devCommand: 'yarn rw dev --fwd="--port=$PORT --open=false',
27512
27816
  buildCommand: 'yarn rw deploy vercel',
27817
+ getFsOutputDir: async () => 'public',
27513
27818
  getOutputDirName: async () => 'public',
27514
27819
  },
27515
27820
  {
@@ -27554,6 +27859,12 @@ exports.frameworks = [
27554
27859
  },
27555
27860
  devCommand: 'hugo server -D -w -p $PORT',
27556
27861
  buildCommand: 'hugo -D --gc',
27862
+ getFsOutputDir: async (dirPrefix) => {
27863
+ const config = await read_config_file_1.readConfigFile(['config.json', 'config.yaml', 'config.toml'].map(fileName => {
27864
+ return path_1.join(dirPrefix, fileName);
27865
+ }));
27866
+ return (config && config.publishDir) || 'public';
27867
+ },
27557
27868
  getOutputDirName: async (dirPrefix) => {
27558
27869
  const config = await read_config_file_1.readConfigFile(['config.json', 'config.yaml', 'config.toml'].map(fileName => {
27559
27870
  return path_1.join(dirPrefix, fileName);
@@ -27594,6 +27905,10 @@ exports.frameworks = [
27594
27905
  },
27595
27906
  devCommand: 'bundle exec jekyll serve --watch --port $PORT',
27596
27907
  buildCommand: 'jekyll build',
27908
+ getFsOutputDir: async (dirPrefix) => {
27909
+ const config = await read_config_file_1.readConfigFile(path_1.join(dirPrefix, '_config.yml'));
27910
+ return (config && config.destination) || '_site';
27911
+ },
27597
27912
  getOutputDirName: async (dirPrefix) => {
27598
27913
  const config = await read_config_file_1.readConfigFile(path_1.join(dirPrefix, '_config.yml'));
27599
27914
  return (config && config.destination) || '_site';
@@ -27632,6 +27947,7 @@ exports.frameworks = [
27632
27947
  },
27633
27948
  devCommand: 'brunch watch --server --port $PORT',
27634
27949
  buildCommand: 'brunch build --production',
27950
+ getFsOutputDir: async () => 'public',
27635
27951
  getOutputDirName: async () => 'public',
27636
27952
  },
27637
27953
  {
@@ -27666,6 +27982,7 @@ exports.frameworks = [
27666
27982
  },
27667
27983
  devCommand: 'bundle exec middleman server -p $PORT',
27668
27984
  buildCommand: 'bundle exec middleman build',
27985
+ getFsOutputDir: async () => 'build',
27669
27986
  getOutputDirName: async () => 'build',
27670
27987
  cachePattern: '{vendor/bin,vendor/cache,vendor/bundle}/**',
27671
27988
  },
@@ -27702,6 +28019,7 @@ exports.frameworks = [
27702
28019
  },
27703
28020
  devCommand: 'zola serve --port $PORT',
27704
28021
  buildCommand: 'zola build',
28022
+ getFsOutputDir: async () => 'public',
27705
28023
  getOutputDirName: async () => 'public',
27706
28024
  defaultVersion: '0.13.0',
27707
28025
  },
@@ -27739,6 +28057,7 @@ exports.frameworks = [
27739
28057
  dependency: 'vite',
27740
28058
  devCommand: 'vite',
27741
28059
  buildCommand: 'vite build',
28060
+ getFsOutputDir: async () => 'dist',
27742
28061
  getOutputDirName: async () => 'dist',
27743
28062
  },
27744
28063
  {
@@ -27774,6 +28093,7 @@ exports.frameworks = [
27774
28093
  dependency: 'parcel',
27775
28094
  devCommand: 'parcel',
27776
28095
  buildCommand: 'parcel build',
28096
+ getFsOutputDir: async () => 'dist',
27777
28097
  getOutputDirName: async () => 'dist',
27778
28098
  defaultRoutes: [
27779
28099
  {
@@ -27785,12 +28105,21 @@ exports.frameworks = [
27785
28105
  handle: 'filesystem',
27786
28106
  },
27787
28107
  ],
28108
+ defaultHeaders: [
28109
+ {
28110
+ source: '^/[^./]+\\.[0-9a-f]{8}\\.(css|js|png|jpg|webp|avif|svg)$',
28111
+ regex: '^/[^./]+\\.[0-9a-f]{8}\\.(css|js|png|jpg|webp|avif|svg)$',
28112
+ headers: [
28113
+ { key: 'cache-control', value: 's-maxage=31536000, immutable' },
28114
+ ],
28115
+ },
28116
+ ],
27788
28117
  },
27789
28118
  {
27790
28119
  name: 'Other',
27791
28120
  slug: null,
27792
28121
  logo: 'https://raw.githubusercontent.com/vercel/vercel/main/packages/frameworks/logos/other.svg',
27793
- description: 'No framework or a unoptimized framework.',
28122
+ description: 'No framework or an unoptimized framework.',
27794
28123
  settings: {
27795
28124
  installCommand: {
27796
28125
  placeholder: '`yarn install` or `npm install`',
@@ -27807,6 +28136,22 @@ exports.frameworks = [
27807
28136
  },
27808
28137
  devCommand: null,
27809
28138
  buildCommand: null,
28139
+ getFsOutputDir: async (dirPrefix) => {
28140
+ // Public if it exists or `.`
28141
+ let base = 'public';
28142
+ try {
28143
+ const location = path_1.join(dirPrefix, base);
28144
+ const content = await readdir(location, { withFileTypes: true });
28145
+ // If there is only one file in it that is a dir we'll use it as dist dir
28146
+ if (content.length === 1 && content[0].isDirectory()) {
28147
+ return path_1.join(base, content[0].name);
28148
+ }
28149
+ }
28150
+ catch (_error) {
28151
+ base = '.';
28152
+ }
28153
+ return base;
28154
+ },
27810
28155
  getOutputDirName: async () => 'public',
27811
28156
  },
27812
28157
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/build-utils",
3
- "version": "2.12.3-canary.13",
3
+ "version": "2.12.3-canary.14",
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.1",
33
- "@vercel/frameworks": "0.5.1-canary.9",
33
+ "@vercel/frameworks": "0.5.1-canary.10",
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.4.3"
51
51
  },
52
- "gitHead": "cd7185a872a5767cfc010b849a4064cbc4e9f679"
52
+ "gitHead": "2bf060c70880ac71e50606719a77f2b456e354bc"
53
53
  }