From d4decfc6c75b47636ee57be3bf7e4de15a18b8ef Mon Sep 17 00:00:00 2001 From: Mateusz Bocian Date: Mon, 9 Jun 2025 22:55:29 -0400 Subject: [PATCH 1/3] fix: remove references to framework-info --- package-lock.json | 1 - packages/build/package.json | 1 - packages/build/src/core/build.ts | 6 +++++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d5fe10557..e7cab618d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25344,7 +25344,6 @@ "@netlify/cache-utils": "^6.0.3", "@netlify/config": "^23.0.10", "@netlify/edge-bundler": "14.0.6", - "@netlify/framework-info": "^10.0.5", "@netlify/functions-utils": "^6.0.10", "@netlify/git-utils": "^6.0.2", "@netlify/opentelemetry-utils": "^2.0.1", diff --git a/packages/build/package.json b/packages/build/package.json index 99ea2e1d0f..2931f79e3f 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -71,7 +71,6 @@ "@netlify/cache-utils": "^6.0.3", "@netlify/config": "^23.0.10", "@netlify/edge-bundler": "14.0.6", - "@netlify/framework-info": "^10.0.5", "@netlify/functions-utils": "^6.0.10", "@netlify/git-utils": "^6.0.2", "@netlify/opentelemetry-utils": "^2.0.1", diff --git a/packages/build/src/core/build.ts b/packages/build/src/core/build.ts index 3840a21b3c..d5335c3c9d 100644 --- a/packages/build/src/core/build.ts +++ b/packages/build/src/core/build.ts @@ -1,4 +1,3 @@ -import { supportedRuntimes } from '@netlify/framework-info' import { addAttributesToActiveSpan } from '@netlify/opentelemetry-utils' import { getErrorInfo } from '../error/info.js' @@ -24,6 +23,11 @@ import { warnOnMissingSideFiles } from './missing_side_file.js' import { normalizeFlags } from './normalize_flags.js' import type { BuildFlags } from './types.js' +const supportedRuntimes = { + next: { package: '@netlify/plugin-nextjs', skipFlag: 'NETLIFY_NEXT_PLUGIN_SKIP' }, + gatsby: { package: '@netlify/plugin-gatsby', skipFlag: 'NETLIFY_GATSBY_PLUGIN_SKIP' }, +} + // Performed on build start. Must be kept small and unlikely to fail since it // does not have proper error handling. Error handling relies on `errorMonitor` // being built, which relies itself on flags being normalized. From 902989898edbc569ce3860a1ad38ffa30b3a30cb Mon Sep 17 00:00:00 2001 From: Mateusz Bocian Date: Mon, 9 Jun 2025 23:04:06 -0400 Subject: [PATCH 2/3] chore: deprecate framework-info package --- .eslintrc.cjs | 2 - .prettierignore | 1 - .release-please-manifest.json | 1 - CONTRIBUTING.md | 2 - package-lock.json | 610 +------------ packages/framework-info/.gitignore | 14 - packages/framework-info/CHANGELOG.md | 863 ------------------ packages/framework-info/LICENSE | 22 - packages/framework-info/README.md | 4 - packages/framework-info/index.html | 8 - packages/framework-info/package.json | 90 -- packages/framework-info/scripts/frameworks.js | 60 -- .../framework-info/scripts/transform_json.js | 64 -- packages/framework-info/src/context.ts | 42 - packages/framework-info/src/core.ts | 139 --- packages/framework-info/src/detect.ts | 52 -- packages/framework-info/src/dev.ts | 72 -- .../src/frameworks/angular.json | 26 - .../src/frameworks/assemble.json | 22 - .../framework-info/src/frameworks/astro.json | 27 - .../framework-info/src/frameworks/blitz.json | 26 - .../framework-info/src/frameworks/brunch.json | 26 - .../framework-info/src/frameworks/cecil.json | 26 - .../src/frameworks/create-react-app.json | 27 - .../framework-info/src/frameworks/docpad.json | 21 - .../src/frameworks/docusaurus-v2.json | 27 - .../src/frameworks/docusaurus.json | 27 - .../src/frameworks/eleventy.json | 26 - .../framework-info/src/frameworks/ember.json | 26 - .../framework-info/src/frameworks/expo.json | 26 - .../framework-info/src/frameworks/gatsby.json | 37 - .../src/frameworks/gridsome.json | 26 - .../framework-info/src/frameworks/grunt.json | 22 - .../framework-info/src/frameworks/gulp.json | 22 - .../framework-info/src/frameworks/harp.json | 26 - .../framework-info/src/frameworks/hexo.json | 26 - .../framework-info/src/frameworks/hugo.json | 26 - .../src/frameworks/hydrogen.json | 26 - .../framework-info/src/frameworks/jekyll.json | 26 - .../src/frameworks/metalsmith.json | 22 - .../src/frameworks/middleman.json | 26 - .../src/frameworks/next-nx.json | 26 - .../framework-info/src/frameworks/next.json | 31 - .../framework-info/src/frameworks/nuxt.json | 26 - .../framework-info/src/frameworks/nuxt3.json | 29 - .../framework-info/src/frameworks/parcel.json | 26 - .../src/frameworks/phenomic.json | 26 - .../src/frameworks/quasar-v0.17.json | 26 - .../framework-info/src/frameworks/quasar.json | 26 - .../framework-info/src/frameworks/qwik.json | 26 - .../src/frameworks/react-static.json | 26 - .../src/frameworks/redwoodjs.json | 31 - .../framework-info/src/frameworks/remix.json | 24 - .../framework-info/src/frameworks/roots.json | 26 - .../framework-info/src/frameworks/sapper.json | 27 - .../src/frameworks/solid-js.json | 26 - .../src/frameworks/solid-start.json | 26 - .../src/frameworks/stencil.json | 26 - .../src/frameworks/svelte-kit.json | 27 - .../framework-info/src/frameworks/svelte.json | 26 - .../framework-info/src/frameworks/vite.json | 26 - .../framework-info/src/frameworks/vue.json | 26 - .../src/frameworks/vuepress.json | 26 - .../src/frameworks/wintersmith.json | 26 - .../framework-info/src/frameworks/wmr.json | 26 - .../framework-info/src/frameworks/zola.json | 21 - packages/framework-info/src/main.ts | 92 -- packages/framework-info/src/package.ts | 40 - packages/framework-info/src/plugins.ts | 21 - packages/framework-info/src/run_script.ts | 19 - packages/framework-info/src/types.ts | 60 -- .../tests/__snapshots__/main.test.ts.snap | 283 ------ packages/framework-info/tests/detect.test.ts | 51 -- packages/framework-info/tests/dev.test.ts | 51 -- .../tests/fixtures/colon_scripts/package.json | 10 - .../tests/fixtures/config_files/config.rb | 0 .../tests/fixtures/config_files/package.json | 4 - .../tests/fixtures/dependencies/package.json | 8 - .../fixtures/dev_command_scripts/package.json | 13 - .../fixtures/dev_dependencies/package.json | 8 - .../tests/fixtures/empty/.gitkeep | 0 .../tests/fixtures/empty/package.json | 4 - .../fixtures/empty_dependencies/config.rb | 0 .../fixtures/empty_dependencies/package.json | 4 - .../tests/fixtures/empty_scripts/package.json | 8 - .../excluded_dependencies/package.json | 8 - .../fixtures/excluded_script/package.json | 13 - .../invalid_dependencies/package.json | 8 - .../fixtures/invalid_package/package.json | 1 - .../fixtures/invalid_scripts/package.json | 10 - .../fixtures/monorepos/app1/package.json | 7 - .../fixtures/monorepos/app2/package.json | 7 - .../monorepos/node_modules/next/package.json | 3 - .../@vue/cli-service/package.json | 3 - .../node_modules/vuepress/package.json | 3 - .../tests/fixtures/multiple/package.json | 8 - .../tests/fixtures/next-plugin/package.json | 15 - .../tests/fixtures/no-version/package.json | 7 - .../tests/fixtures/no_package/config.rb | 0 .../tests/fixtures/package.json | 3 - .../fixtures/parent_package/package.json | 7 - .../scripts-order/build-first/package.json | 10 - .../command-substring/package.json | 13 - .../scripts-order/dev-first/package.json | 10 - .../scripts-order/postfix-format/package.json | 10 - .../scripts-order/vite-framework/package.json | 12 - .../several_dependencies/package.json | 7 - .../simple/node_modules/sapper/package.json | 3 - .../tests/fixtures/simple/package.json | 7 - .../fixtures/syntax_package/package.json | 1 - .../tests/fixtures/use_scripts/package.json | 12 - .../tests/fixtures/yarn_scripts/package.json | 12 - .../tests/fixtures/yarn_scripts/yarn.lock | 0 .../framework-info/tests/frameworks.test.ts | 157 ---- packages/framework-info/tests/helpers/main.ts | 20 - packages/framework-info/tests/main.test.ts | 74 -- packages/framework-info/tests/options.test.ts | 21 - packages/framework-info/tests/package.test.ts | 50 - .../framework-info/tests/run_script.test.ts | 9 - packages/framework-info/tsconfig.json | 14 - packages/framework-info/vite.config.js | 32 - release-please-config.json | 1 - 122 files changed, 1 insertion(+), 4575 deletions(-) delete mode 100644 packages/framework-info/.gitignore delete mode 100644 packages/framework-info/CHANGELOG.md delete mode 100644 packages/framework-info/LICENSE delete mode 100644 packages/framework-info/README.md delete mode 100644 packages/framework-info/index.html delete mode 100644 packages/framework-info/package.json delete mode 100644 packages/framework-info/scripts/frameworks.js delete mode 100644 packages/framework-info/scripts/transform_json.js delete mode 100644 packages/framework-info/src/context.ts delete mode 100644 packages/framework-info/src/core.ts delete mode 100644 packages/framework-info/src/detect.ts delete mode 100644 packages/framework-info/src/dev.ts delete mode 100644 packages/framework-info/src/frameworks/angular.json delete mode 100644 packages/framework-info/src/frameworks/assemble.json delete mode 100644 packages/framework-info/src/frameworks/astro.json delete mode 100644 packages/framework-info/src/frameworks/blitz.json delete mode 100644 packages/framework-info/src/frameworks/brunch.json delete mode 100644 packages/framework-info/src/frameworks/cecil.json delete mode 100644 packages/framework-info/src/frameworks/create-react-app.json delete mode 100644 packages/framework-info/src/frameworks/docpad.json delete mode 100644 packages/framework-info/src/frameworks/docusaurus-v2.json delete mode 100644 packages/framework-info/src/frameworks/docusaurus.json delete mode 100644 packages/framework-info/src/frameworks/eleventy.json delete mode 100644 packages/framework-info/src/frameworks/ember.json delete mode 100644 packages/framework-info/src/frameworks/expo.json delete mode 100644 packages/framework-info/src/frameworks/gatsby.json delete mode 100644 packages/framework-info/src/frameworks/gridsome.json delete mode 100644 packages/framework-info/src/frameworks/grunt.json delete mode 100644 packages/framework-info/src/frameworks/gulp.json delete mode 100644 packages/framework-info/src/frameworks/harp.json delete mode 100644 packages/framework-info/src/frameworks/hexo.json delete mode 100644 packages/framework-info/src/frameworks/hugo.json delete mode 100644 packages/framework-info/src/frameworks/hydrogen.json delete mode 100644 packages/framework-info/src/frameworks/jekyll.json delete mode 100644 packages/framework-info/src/frameworks/metalsmith.json delete mode 100644 packages/framework-info/src/frameworks/middleman.json delete mode 100644 packages/framework-info/src/frameworks/next-nx.json delete mode 100644 packages/framework-info/src/frameworks/next.json delete mode 100644 packages/framework-info/src/frameworks/nuxt.json delete mode 100644 packages/framework-info/src/frameworks/nuxt3.json delete mode 100644 packages/framework-info/src/frameworks/parcel.json delete mode 100644 packages/framework-info/src/frameworks/phenomic.json delete mode 100644 packages/framework-info/src/frameworks/quasar-v0.17.json delete mode 100644 packages/framework-info/src/frameworks/quasar.json delete mode 100644 packages/framework-info/src/frameworks/qwik.json delete mode 100644 packages/framework-info/src/frameworks/react-static.json delete mode 100644 packages/framework-info/src/frameworks/redwoodjs.json delete mode 100644 packages/framework-info/src/frameworks/remix.json delete mode 100644 packages/framework-info/src/frameworks/roots.json delete mode 100644 packages/framework-info/src/frameworks/sapper.json delete mode 100644 packages/framework-info/src/frameworks/solid-js.json delete mode 100644 packages/framework-info/src/frameworks/solid-start.json delete mode 100644 packages/framework-info/src/frameworks/stencil.json delete mode 100644 packages/framework-info/src/frameworks/svelte-kit.json delete mode 100644 packages/framework-info/src/frameworks/svelte.json delete mode 100644 packages/framework-info/src/frameworks/vite.json delete mode 100644 packages/framework-info/src/frameworks/vue.json delete mode 100644 packages/framework-info/src/frameworks/vuepress.json delete mode 100644 packages/framework-info/src/frameworks/wintersmith.json delete mode 100644 packages/framework-info/src/frameworks/wmr.json delete mode 100644 packages/framework-info/src/frameworks/zola.json delete mode 100644 packages/framework-info/src/main.ts delete mode 100644 packages/framework-info/src/package.ts delete mode 100644 packages/framework-info/src/plugins.ts delete mode 100644 packages/framework-info/src/run_script.ts delete mode 100644 packages/framework-info/src/types.ts delete mode 100644 packages/framework-info/tests/__snapshots__/main.test.ts.snap delete mode 100644 packages/framework-info/tests/detect.test.ts delete mode 100644 packages/framework-info/tests/dev.test.ts delete mode 100644 packages/framework-info/tests/fixtures/colon_scripts/package.json delete mode 100644 packages/framework-info/tests/fixtures/config_files/config.rb delete mode 100644 packages/framework-info/tests/fixtures/config_files/package.json delete mode 100644 packages/framework-info/tests/fixtures/dependencies/package.json delete mode 100644 packages/framework-info/tests/fixtures/dev_command_scripts/package.json delete mode 100644 packages/framework-info/tests/fixtures/dev_dependencies/package.json delete mode 100644 packages/framework-info/tests/fixtures/empty/.gitkeep delete mode 100644 packages/framework-info/tests/fixtures/empty/package.json delete mode 100644 packages/framework-info/tests/fixtures/empty_dependencies/config.rb delete mode 100644 packages/framework-info/tests/fixtures/empty_dependencies/package.json delete mode 100644 packages/framework-info/tests/fixtures/empty_scripts/package.json delete mode 100644 packages/framework-info/tests/fixtures/excluded_dependencies/package.json delete mode 100644 packages/framework-info/tests/fixtures/excluded_script/package.json delete mode 100644 packages/framework-info/tests/fixtures/invalid_dependencies/package.json delete mode 100644 packages/framework-info/tests/fixtures/invalid_package/package.json delete mode 100644 packages/framework-info/tests/fixtures/invalid_scripts/package.json delete mode 100644 packages/framework-info/tests/fixtures/monorepos/app1/package.json delete mode 100644 packages/framework-info/tests/fixtures/monorepos/app2/package.json delete mode 100644 packages/framework-info/tests/fixtures/monorepos/node_modules/next/package.json delete mode 100644 packages/framework-info/tests/fixtures/multiple/node_modules/@vue/cli-service/package.json delete mode 100644 packages/framework-info/tests/fixtures/multiple/node_modules/vuepress/package.json delete mode 100644 packages/framework-info/tests/fixtures/multiple/package.json delete mode 100644 packages/framework-info/tests/fixtures/next-plugin/package.json delete mode 100644 packages/framework-info/tests/fixtures/no-version/package.json delete mode 100644 packages/framework-info/tests/fixtures/no_package/config.rb delete mode 100644 packages/framework-info/tests/fixtures/package.json delete mode 100644 packages/framework-info/tests/fixtures/parent_package/package.json delete mode 100644 packages/framework-info/tests/fixtures/scripts-order/build-first/package.json delete mode 100644 packages/framework-info/tests/fixtures/scripts-order/command-substring/package.json delete mode 100644 packages/framework-info/tests/fixtures/scripts-order/dev-first/package.json delete mode 100644 packages/framework-info/tests/fixtures/scripts-order/postfix-format/package.json delete mode 100644 packages/framework-info/tests/fixtures/scripts-order/vite-framework/package.json delete mode 100644 packages/framework-info/tests/fixtures/several_dependencies/package.json delete mode 100644 packages/framework-info/tests/fixtures/simple/node_modules/sapper/package.json delete mode 100644 packages/framework-info/tests/fixtures/simple/package.json delete mode 100644 packages/framework-info/tests/fixtures/syntax_package/package.json delete mode 100644 packages/framework-info/tests/fixtures/use_scripts/package.json delete mode 100644 packages/framework-info/tests/fixtures/yarn_scripts/package.json delete mode 100644 packages/framework-info/tests/fixtures/yarn_scripts/yarn.lock delete mode 100644 packages/framework-info/tests/frameworks.test.ts delete mode 100644 packages/framework-info/tests/helpers/main.ts delete mode 100644 packages/framework-info/tests/main.test.ts delete mode 100644 packages/framework-info/tests/options.test.ts delete mode 100644 packages/framework-info/tests/package.test.ts delete mode 100644 packages/framework-info/tests/run_script.test.ts delete mode 100644 packages/framework-info/tsconfig.json delete mode 100644 packages/framework-info/vite.config.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index c6a3111667..720d362a05 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -22,8 +22,6 @@ const config = { // don't lint fixtures 'packages/*/tests/**/fixtures*/**', 'packages/*/benchmarks/**/fixtures*/**', - 'packages/framework-info/test/fixtures/**', - 'packages/framework-info/dist/**', 'packages/*/lib/**', 'packages/*/dist/**', diff --git a/.prettierignore b/.prettierignore index a20dbebb26..6f7d3d8984 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,7 +2,6 @@ packages/*/tests/**/fixtures/** packages/*/test/**/fixtures*/** packages/*/benchmarks/**/fixtures*/** -packages/framework-info/test/fixtures/** # don't lint outputs packages/*/lib packages/*/dist diff --git a/.release-please-manifest.json b/.release-please-manifest.json index a357dff151..1b7377267a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -4,7 +4,6 @@ "packages/edge-bundler": "14.0.6", "packages/cache-utils": "6.0.3", "packages/config": "23.0.10", - "packages/framework-info": "10.0.5", "packages/functions-utils": "6.0.10", "packages/git-utils": "6.0.2", "packages/headers-parser": "9.0.1", diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d2cf50b80b..7f51061ae5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -98,8 +98,6 @@ any @netlify/*-utils -> @netlify/build -> buildbot build-image -> buildbot netlify/plugins -> buildbot -@netlify/framework-info -> buildbot - -> netlify-cli ``` Note that Renovate should take care of opening PRs to update the relevant packages that depend upon the modules you just diff --git a/package-lock.json b/package-lock.json index e7cab618d8..6d639d53c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2312,10 +2312,6 @@ "resolved": "packages/edge-bundler", "link": true }, - "node_modules/@netlify/framework-info": { - "resolved": "packages/framework-info", - "link": true - }, "node_modules/@netlify/functions-utils": { "resolved": "packages/functions-utils", "link": true @@ -9127,53 +9123,6 @@ "node": ">=6" } }, - "node_modules/cp-file": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz", - "integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.10", - "nested-error-stacks": "^2.1.1", - "p-event": "^5.0.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cp-file/node_modules/p-event": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", - "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-timeout": "^5.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cp-file/node_modules/p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cpy": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/cpy/-/cpy-11.1.0.tgz", @@ -9194,173 +9143,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cpy-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-5.0.0.tgz", - "integrity": "sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cpy": "^10.1.0", - "meow": "^12.0.1" - }, - "bin": { - "cpy": "cli.js" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/cpy": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-10.1.0.tgz", - "integrity": "sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^3.0.0", - "cp-file": "^10.0.0", - "globby": "^13.1.4", - "junk": "^4.0.1", - "micromatch": "^4.0.5", - "nested-error-stacks": "^2.1.1", - "p-filter": "^3.0.0", - "p-map": "^6.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/p-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-map": "^5.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/p-filter/node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/p-map": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz", - "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy-cli/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", @@ -17393,13 +17175,6 @@ "dev": true, "license": "MIT" }, - "node_modules/nested-error-stacks": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", - "dev": true, - "license": "MIT" - }, "node_modules/nock": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", @@ -20731,63 +20506,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-inject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", - "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^0.6.1", - "magic-string": "^0.25.3", - "rollup-pluginutils": "^2.8.1" - } - }, - "node_modules/rollup-plugin-inject/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup-plugin-inject/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/rollup-plugin-node-polyfills": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", - "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", - "dev": true, - "license": "MIT", - "dependencies": { - "rollup-plugin-inject": "^3.0.0" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true, - "license": "MIT" - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -21431,14 +21149,6 @@ "source-map": "^0.6.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true, - "license": "MIT" - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -27092,6 +26802,7 @@ "packages/framework-info": { "name": "@netlify/framework-info", "version": "10.0.5", + "extraneous": true, "license": "MIT", "dependencies": { "ajv": "^8.12.0", @@ -27119,325 +26830,6 @@ "node": ">=18.14.0" } }, - "packages/framework-info/node_modules/@types/chai": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", - "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*" - } - }, - "packages/framework-info/node_modules/@vitest/expect": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.0.tgz", - "integrity": "sha512-0v4YVbhDKX3SKoy0PHWXpKhj44w+3zZkIoVES9Ex2pq+u6+Bijijbi2ua5kE+h3qT6LBWFTNZSCOEU37H8Y5sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.0", - "@vitest/utils": "3.2.0", - "chai": "^5.2.0", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/framework-info/node_modules/@vitest/runner": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.0.tgz", - "integrity": "sha512-bXdmnHxuB7fXJdh+8vvnlwi/m1zvu+I06i1dICVcDQFhyV4iKw2RExC/acavtDn93m/dRuawUObKsrNE1gJacA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "3.2.0", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/framework-info/node_modules/@vitest/snapshot": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.0.tgz", - "integrity": "sha512-z7P/EneBRMe7hdvWhcHoXjhA6at0Q4ipcoZo6SqgxLyQQ8KSMMCmvw1cSt7FHib3ozt0wnRHc37ivuUMbxzG/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "3.2.0", - "magic-string": "^0.30.17", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/framework-info/node_modules/@vitest/spy": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.0.tgz", - "integrity": "sha512-s3+TkCNUIEOX99S0JwNDfsHRaZDDZZR/n8F0mop0PmsEbQGKZikCGpTGZ6JRiHuONKew3Fb5//EPwCP+pUX9cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^4.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/framework-info/node_modules/@vitest/ui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-3.2.0.tgz", - "integrity": "sha512-cYFZZSl1usgzsHoGF66GHfYXlEwc06ggapS1TaSLMKCzhTPWBPI9b/t1RvKIsLSjdKUakpSPf33jQMvRjMvvlQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/utils": "3.2.0", - "fflate": "^0.8.2", - "flatted": "^3.3.3", - "pathe": "^2.0.3", - "sirv": "^3.0.1", - "tinyglobby": "^0.2.14", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": "3.2.0" - } - }, - "packages/framework-info/node_modules/@vitest/utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.0.tgz", - "integrity": "sha512-gXXOe7Fj6toCsZKVQouTRLJftJwmvbhH5lKOBR6rlP950zUq9AitTUjnFoXS/CqjBC2aoejAztLPzzuva++XBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "3.2.0", - "loupe": "^3.1.3", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/framework-info/node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "packages/framework-info/node_modules/chai": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "packages/framework-info/node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "packages/framework-info/node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages/framework-info/node_modules/loupe": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", - "dev": true, - "license": "MIT" - }, - "packages/framework-info/node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "packages/framework-info/node_modules/pathval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, - "packages/framework-info/node_modules/sirv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", - "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "packages/framework-info/node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" - }, - "packages/framework-info/node_modules/tinypool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz", - "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "packages/framework-info/node_modules/tinyspy": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", - "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "packages/framework-info/node_modules/vite-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.0.tgz", - "integrity": "sha512-8Fc5Ko5Y4URIJkmMF/iFP1C0/OJyY+VGVe9Nw6WAdZyw4bTO+eVg9mwxWkQp/y8NnAoQY3o9KAvE1ZdA2v+Vmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.1", - "es-module-lexer": "^1.7.0", - "pathe": "^2.0.3", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/framework-info/node_modules/vitest": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.0.tgz", - "integrity": "sha512-P7Nvwuli8WBNmeMHHek7PnGW4oAZl9za1fddfRVidZar8wDZRi7hpznLKQePQ8JPLwSBEYDK11g+++j7uFJV8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.0", - "@vitest/mocker": "3.2.0", - "@vitest/pretty-format": "^3.2.0", - "@vitest/runner": "3.2.0", - "@vitest/snapshot": "3.2.0", - "@vitest/spy": "3.2.0", - "@vitest/utils": "3.2.0", - "chai": "^5.2.0", - "debug": "^4.4.1", - "expect-type": "^1.2.1", - "magic-string": "^0.30.17", - "pathe": "^2.0.3", - "picomatch": "^4.0.2", - "std-env": "^3.9.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tinypool": "^1.1.0", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.0", - "@vitest/ui": "3.2.0", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/debug": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, "packages/functions-utils": { "name": "@netlify/functions-utils", "version": "6.0.10", diff --git a/packages/framework-info/.gitignore b/packages/framework-info/.gitignore deleted file mode 100644 index 67ed40ad8a..0000000000 --- a/packages/framework-info/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -node_modules -yarn-error.log -.vscode -dist -src/generated -.DS_Store - -# Local Netlify folder -.netlify - -# These are mock node_modules folder for testing purposes -!tests/fixtures/simple/node_modules -!tests/fixtures/multiple/node_modules -!tests/fixtures/monorepos/node_modules diff --git a/packages/framework-info/CHANGELOG.md b/packages/framework-info/CHANGELOG.md deleted file mode 100644 index 6f1110febb..0000000000 --- a/packages/framework-info/CHANGELOG.md +++ /dev/null @@ -1,863 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to -[Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - -## [10.0.5](https://github.com/netlify/build/compare/framework-info-v10.0.4...framework-info-v10.0.5) (2025-06-10) - - -### Bug Fixes - -* **docs:** add deprecation notice to framework-info ([#6452](https://github.com/netlify/build/issues/6452)) ([d907226](https://github.com/netlify/build/commit/d907226f08be2bf586652f4f8fdda810dccb4ca0)) - -## [10.0.4](https://github.com/netlify/build/compare/framework-info-v10.0.3...framework-info-v10.0.4) (2025-05-21) - - -### Bug Fixes - -* **deps:** update dependency filter-obj to v6 ([#6340](https://github.com/netlify/build/issues/6340)) ([cad4c01](https://github.com/netlify/build/commit/cad4c01213811d8663e1b137da522a0380f01254)) - -## [10.0.3](https://github.com/netlify/build/compare/framework-info-v10.0.2...framework-info-v10.0.3) (2025-05-20) - - -### Bug Fixes - -* **deps:** update dependency find-up to v7 ([#6341](https://github.com/netlify/build/issues/6341)) ([49aca1a](https://github.com/netlify/build/commit/49aca1a6917aba7d7bed963a8c7f313d5dd39838)) - -## [10.0.2](https://github.com/netlify/build/compare/framework-info-v10.0.1...framework-info-v10.0.2) (2025-05-20) - - -### Bug Fixes - -* **deps:** update dependency cpy to v11 ([#6324](https://github.com/netlify/build/issues/6324)) ([9b106e6](https://github.com/netlify/build/commit/9b106e60ca50250c61c3f1a052c37902f0371e88)) - -## [10.0.1](https://github.com/netlify/build/compare/framework-info-v10.0.0...framework-info-v10.0.1) (2025-05-16) - - -### Bug Fixes - -* **deps:** replace dependency read-pkg-up with read-package-up ^11.0.0 ([#6314](https://github.com/netlify/build/issues/6314)) ([16f548a](https://github.com/netlify/build/commit/16f548a99da7a864fb4057f30b3118c01b542bb7)) - -## [10.0.0](https://github.com/netlify/build/compare/framework-info-v9.9.3...framework-info-v10.0.0) (2025-05-14) - - -### ⚠ BREAKING CHANGES - -* end of support for v14 and v16 ([#6223](https://github.com/netlify/build/issues/6223)) - -### Features - -* end of support for v14 and v16 ([#6223](https://github.com/netlify/build/issues/6223)) ([9917ef4](https://github.com/netlify/build/commit/9917ef4eb0bd47162e33aa432be7c9fa3fa462c4)) - -## [9.9.3](https://github.com/netlify/build/compare/framework-info-v9.9.2...framework-info-v9.9.3) (2025-04-09) - - -### Bug Fixes - -* swap from read-package-up to read-pkg-up ([#6189](https://github.com/netlify/build/issues/6189)) ([b6fa012](https://github.com/netlify/build/commit/b6fa0125695cd2b240690039610dc39f4bcc48e4)) - -## [9.9.2](https://github.com/netlify/build/compare/framework-info-v9.9.1...framework-info-v9.9.2) (2025-03-19) - - -### Bug Fixes - -* **deps:** remove 2 unused deps and 20 unused dev deps ([#6097](https://github.com/netlify/build/issues/6097)) ([99ec56a](https://github.com/netlify/build/commit/99ec56a5bdc8f57d27dfe0f2739381961b382a87)) - -## [9.9.1](https://github.com/netlify/build/compare/framework-info-v9.9.0...framework-info-v9.9.1) (2025-01-08) - - -### Bug Fixes - -* **deps:** update dependency p-filter to v4 ([#5967](https://github.com/netlify/build/issues/5967)) ([b5d9d86](https://github.com/netlify/build/commit/b5d9d86a86bf4f7bb8cb534b73cc156ed4ca52e0)) - -## [9.9.0](https://github.com/netlify/build/compare/framework-info-v9.8.13...framework-info-v9.9.0) (2024-12-11) - - -### Features - -* add node 22 to supported versions list ([#5917](https://github.com/netlify/build/issues/5917)) ([5455393](https://github.com/netlify/build/commit/545539369a3f1a0e9d2036df7d41a8bed1df8272)) - -## [9.8.13](https://github.com/netlify/build/compare/framework-info-v9.8.12...framework-info-v9.8.13) (2024-05-27) - - -### Bug Fixes - -* revert update of `read-pkg-up` ([#5672](https://github.com/netlify/build/issues/5672)) ([d30cea9](https://github.com/netlify/build/commit/d30cea9db5ca1262540554fc53eac9fe011bbe8a)) - -## [9.8.12](https://github.com/netlify/build/compare/framework-info-v9.8.11...framework-info-v9.8.12) (2024-05-14) - - -### Bug Fixes - -* **deps:** replace dependency read-pkg-up with read-package-up ^11.0.0 ([#5504](https://github.com/netlify/build/issues/5504)) ([d32e5bd](https://github.com/netlify/build/commit/d32e5bd871752aa5b895fc4f5e1a8656b9257126)) - -## [9.8.11](https://github.com/netlify/build/compare/framework-info-v9.8.10...framework-info-v9.8.11) (2024-03-26) - - -### Bug Fixes - -* don't poll HTTP on startup to prevent dependency cycle between framework dev server and Netlify Dev ([#5558](https://github.com/netlify/build/issues/5558)) ([0291702](https://github.com/netlify/build/commit/0291702cac745ef0f32d9e651340841582b25de9)) - -## [9.8.10](https://github.com/netlify/build/compare/framework-info-v9.8.9...framework-info-v9.8.10) (2023-06-09) - - -### Bug Fixes - -* **deps:** update dependency filter-obj to v5 ([#4482](https://github.com/netlify/build/issues/4482)) ([24ec285](https://github.com/netlify/build/commit/24ec285a83e189d99d2ac29af2d67ac9ba23efe5)) - -## [9.8.9](https://github.com/netlify/build/compare/framework-info-v9.8.8...framework-info-v9.8.9) (2023-06-05) - - -### Bug Fixes - -* update minimum version of semver to be ESM compatible ([#5049](https://github.com/netlify/build/issues/5049)) ([6454437](https://github.com/netlify/build/commit/6454437dbbc54de309c2a7dbeb59149e1b7d02ca)) - -## [9.8.8](https://github.com/netlify/build/compare/framework-info-v9.8.7...framework-info-v9.8.8) (2023-06-01) - - -### Bug Fixes - -* **deps:** remove unnecessary dependency on node-url ([#5029](https://github.com/netlify/build/issues/5029)) ([40b09be](https://github.com/netlify/build/commit/40b09becb1f6138eec0c4a2686776a6b12353424)) - -## [9.8.7](https://github.com/netlify/build/compare/framework-info-v9.8.6...framework-info-v9.8.7) (2023-05-12) - - -### Bug Fixes - -* remove `del` package ([#5006](https://github.com/netlify/build/issues/5006)) ([f2c7df3](https://github.com/netlify/build/commit/f2c7df35019fa8f356ff8c13874760e8fbebc381)) - -## [9.8.6](https://github.com/netlify/build/compare/framework-info-v9.8.5...framework-info-v9.8.6) (2023-04-25) - - -### Bug Fixes - -* **deps:** update dependency @netlify/zip-it-and-ship-it to v9 ([#4982](https://github.com/netlify/build/issues/4982)) ([4a77bbc](https://github.com/netlify/build/commit/4a77bbcb6b1edb6f705282a8cece7963710e8e3e)) - -## [9.8.5](https://github.com/netlify/build/compare/framework-info-v9.8.4...framework-info-v9.8.5) (2023-03-06) - - -### Bug Fixes - -* fix deployment of framework-info icons ([#4917](https://github.com/netlify/build/issues/4917)) ([5803c1a](https://github.com/netlify/build/commit/5803c1ac5cfea481cc5229bf46c55eaa8072b573)) - -## [9.8.4](https://github.com/netlify/build/compare/framework-info-v9.8.3...framework-info-v9.8.4) (2023-03-01) - - -### Bug Fixes - -* **framework-info:** detect gatsby typescript project ([#4895](https://github.com/netlify/build/issues/4895)) ([3978402](https://github.com/netlify/build/commit/39784024f631ff22b998ac731bcd9b6bd807a576)) - -## [9.8.3](https://github.com/netlify/build/compare/framework-info-v9.8.2...framework-info-v9.8.3) (2023-02-27) - - -### Bug Fixes - -* **framework-info:** add missing types in package.json ([#4873](https://github.com/netlify/build/issues/4873)) ([b03c28e](https://github.com/netlify/build/commit/b03c28ea812724c01bd54e04f6bf19fd0a2f6247)) - -## [9.8.2](https://github.com/netlify/build/compare/framework-info-v9.8.1...framework-info-v9.8.2) (2023-02-17) - - -### Bug Fixes - -* Updated logos to correct file name ([#4867](https://github.com/netlify/build/issues/4867)) ([08dbacb](https://github.com/netlify/build/commit/08dbacbb0aa2173b609c93083d47b391c40c8b19)) - -## [9.8.1](https://github.com/netlify/build/compare/framework-info-v9.8.0...framework-info-v9.8.1) (2023-02-09) - - -### Bug Fixes - -* respect manual order of frameworks ([#4858](https://github.com/netlify/build/issues/4858)) ([45c0cf2](https://github.com/netlify/build/commit/45c0cf2b3fbc669a0c39f7b0529fce741b25106b)) - -## [9.8.0](https://github.com/netlify/build/compare/framework-info-v9.7.2...framework-info-v9.8.0) (2023-02-09) - - -### Features - -* export getFrameworkById ([#4852](https://github.com/netlify/build/issues/4852)) ([ff37e4c](https://github.com/netlify/build/commit/ff37e4c0ae5775fe7748b0e12c14df159b592709)) - - -### Bug Fixes - -* migrate framework-info to TS and vitest and enable more strictness ([#4819](https://github.com/netlify/build/issues/4819)) ([5acb25b](https://github.com/netlify/build/commit/5acb25b3e1e8cd6d5fa85fdb76baea5a34a1131b)) -* Revert "fix: update Solid Start default port ([#4845](https://github.com/netlify/build/issues/4845))" ([#4851](https://github.com/netlify/build/issues/4851)) ([eea7d29](https://github.com/netlify/build/commit/eea7d29d7535cb7252b9e806b3d4987954710c30)) - -## [9.7.2](https://github.com/netlify/build/compare/framework-info-v9.7.1...framework-info-v9.7.2) (2023-02-01) - - -### Bug Fixes - -* update Solid Start default port ([#4845](https://github.com/netlify/build/issues/4845)) ([e5f4c12](https://github.com/netlify/build/commit/e5f4c12b67b1be521d0feb36148dbc82c6f59f8a)) - -## [9.7.1](https://github.com/netlify/build/compare/framework-info-v9.7.0...framework-info-v9.7.1) (2023-01-18) - - -### Bug Fixes - -* Correctly handle missing node_modules ([#4828](https://github.com/netlify/build/issues/4828)) ([2e9ff5c](https://github.com/netlify/build/commit/2e9ff5ca8ad17ea234e06956f662f0beee8d33a7)) - -## [9.7.0](https://github.com/netlify/build/compare/framework-info-v9.6.0...framework-info-v9.7.0) (2023-01-16) - - -### Features - -* install framework runtime ([#4812](https://github.com/netlify/build/issues/4812)) ([5abc39d](https://github.com/netlify/build/commit/5abc39dfd074bfda52fef3222ee9d73c2ed98403)) - - -### Bug Fixes - -* correct default sveltekit publish directory ([#4823](https://github.com/netlify/build/issues/4823)) ([fbc98fd](https://github.com/netlify/build/commit/fbc98fdc1efea1b720dfe0e15b7a1a6879e52e20)) - -## [9.6.0](https://github.com/netlify/build/compare/framework-info-v9.5.3...framework-info-v9.6.0) (2023-01-10) - - -### Features - -* add build system detection ([#4763](https://github.com/netlify/build/issues/4763)) ([73bdb7b](https://github.com/netlify/build/commit/73bdb7bed7347cf6a8c4d729142c322297a0dce8)) -* move framework-info into build packages ([#4783](https://github.com/netlify/build/issues/4783)) ([d37cbc4](https://github.com/netlify/build/commit/d37cbc48e4524ef486b3e408ae4e38125618a49c)) - - -### Bug Fixes - -* **deps:** update dependency @netlify/edge-bundler to v4.1.0 ([#4696](https://github.com/netlify/build/issues/4696)) ([f7044e0](https://github.com/netlify/build/commit/f7044e013804096dfb61ba0459226ff6d702ddf3)) - -## [9.5.3](https://github.com/netlify/framework-info/compare/v9.5.2...v9.5.3) (2022-12-06) - - -### Bug Fixes - -* support new 11ty config files ([#848](https://github.com/netlify/framework-info/issues/848)) ([3aa65f8](https://github.com/netlify/framework-info/commit/3aa65f8ad65984ff3477e61d859cdc5d5dc5ac8a)) - -## [9.5.2](https://github.com/netlify/framework-info/compare/v9.5.1...v9.5.2) (2022-11-21) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.11.2 ([#839](https://github.com/netlify/framework-info/issues/839)) ([4d7e59f](https://github.com/netlify/framework-info/commit/4d7e59f9e8b74edb07f2ec3f995143c781932587)) -* handle version for frameworks which are not detected by npm package ([#842](https://github.com/netlify/framework-info/issues/842)) ([5735d2e](https://github.com/netlify/framework-info/commit/5735d2e298e6637c65add9680cbccac0c0245f51)) - -## [9.5.1](https://github.com/netlify/framework-info/compare/v9.5.0...v9.5.1) (2022-11-10) - - -### Bug Fixes - -* updated Remix framework info that was missing ([#836](https://github.com/netlify/framework-info/issues/836)) ([e594ddf](https://github.com/netlify/framework-info/commit/e594ddfc84df0cfdb292176fc61d26cd3c115722)) - -## [9.5.0](https://github.com/netlify/framework-info/compare/v9.4.0...v9.5.0) (2022-11-01) - - -### Features - -* update next.js logos ([#825](https://github.com/netlify/framework-info/issues/825)) ([213ec23](https://github.com/netlify/framework-info/commit/213ec23ad22ee5826a9fd1e3a81264d7107bd095)) - - -### Bug Fixes - -* update filepaths ([#831](https://github.com/netlify/framework-info/issues/831)) ([308b2a6](https://github.com/netlify/framework-info/commit/308b2a65446240d456dbb0c5dfda03b5c76972e0)) -* update the files entry in package.json ([#828](https://github.com/netlify/framework-info/issues/828)) ([259f6c0](https://github.com/netlify/framework-info/commit/259f6c0efb250a915192723afccb5f7d8f55ff96)) - -## [9.4.0](https://github.com/netlify/framework-info/compare/v9.3.0...v9.4.0) (2022-10-27) - - -### Features - -* detect installed version of framework ([#822](https://github.com/netlify/framework-info/issues/822)) ([8f4c78a](https://github.com/netlify/framework-info/commit/8f4c78a66f04b39da1f19422e42d7e4739af6d54)) -* migrate from webpack to vite ([#819](https://github.com/netlify/framework-info/issues/819)) ([13430d9](https://github.com/netlify/framework-info/commit/13430d9deaa7ac739a622ba950bf7eac6cd5fd56)) - - -### Bug Fixes - -* changed the Vite port to the new Vite default port 5173 ([#792](https://github.com/netlify/framework-info/issues/792)) ([664e6df](https://github.com/netlify/framework-info/commit/664e6df4062da80cffd583d45b3e6364da47bc0f)) -* **deps:** update dependency semver to v7.3.8 ([#820](https://github.com/netlify/framework-info/issues/820)) ([33d106e](https://github.com/netlify/framework-info/commit/33d106e08bdb1e9ec5cdcfb7862a1c6f02a353aa)) -* use correct icon for Remix framework ([#811](https://github.com/netlify/framework-info/issues/811)) ([9a6fb03](https://github.com/netlify/framework-info/commit/9a6fb037d137100b8f58617e9c643cbf2256ccee)) - -## [9.3.0](https://github.com/netlify/framework-info/compare/v9.2.0...v9.3.0) (2022-10-04) - - -### Features - -* add a light-theme friendly logo for harp ([#812](https://github.com/netlify/framework-info/issues/812)) ([7cfce5a](https://github.com/netlify/framework-info/commit/7cfce5a5a33e709d06d61c84cf11d9cf5d698330)) -* add detection for SolidJS ([#813](https://github.com/netlify/framework-info/issues/813)) ([b06c7df](https://github.com/netlify/framework-info/commit/b06c7df5ea262a41d35cc07602144f97680ea6d5)) -* replace parcel logo name with parcel icon ([#808](https://github.com/netlify/framework-info/issues/808)) ([8a6260f](https://github.com/netlify/framework-info/commit/8a6260fd0360ccaefc3ecdb14b307b228e4c18d0)) - -### Bug Fixes - -* updated SvelteKit framework info ([#818](https://github.com/netlify/framework-info/issues/818)) - ([acd85cf](https://github.com/netlify/framework-info/commit/acd85cf798a7f9ab169dc5e62dd5543e0c185d29)) - -## [9.2.0](https://github.com/netlify/framework-info/compare/v9.1.1...v9.2.0) (2022-08-09) - - -### Features - -* add framework logos where available ([#802](https://github.com/netlify/framework-info/issues/802)) ([a6a1a22](https://github.com/netlify/framework-info/commit/a6a1a22ba150ce9864f8d3f7e10b98f2f9c03ef7)) -* add Gatsby logo to returned framework info ([#797](https://github.com/netlify/framework-info/issues/797)) ([2a1ee73](https://github.com/netlify/framework-info/commit/2a1ee739535e0ebb209d14c56f4205db2229de9c)) - - -### Bug Fixes - -* fixed typo in qwik excluded dependency ([#805](https://github.com/netlify/framework-info/issues/805)) ([8a4352d](https://github.com/netlify/framework-info/commit/8a4352d1540556ad85c282bd24a0436243e07561)) - -## [9.1.1](https://github.com/netlify/framework-info/compare/v9.1.0...v9.1.1) (2022-07-17) - - -### Bug Fixes - -* **deps:** update dependency is-plain-obj to v4.1.0 ([#781](https://github.com/netlify/framework-info/issues/781)) ([3ca96f2](https://github.com/netlify/framework-info/commit/3ca96f2fe34da0ce26b50d1801fd5e6f7c45dd38)) - -## [9.1.0](https://github.com/netlify/framework-info/compare/v9.0.2...v9.1.0) (2022-06-14) - - -### Features - -* add specific vite-powered frameworks ([#777](https://github.com/netlify/framework-info/issues/777)) ([fa305fe](https://github.com/netlify/framework-info/commit/fa305fea08363c13bd39a1cc4ba0530a4e8cac60)) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.11.0 ([#741](https://github.com/netlify/framework-info/issues/741)) ([179f9ec](https://github.com/netlify/framework-info/commit/179f9ec549e903354eab3ae949075256aaac27bd)) -* **deps:** update dependency locate-path to v7.1.1 ([#775](https://github.com/netlify/framework-info/issues/775)) ([2eaafa1](https://github.com/netlify/framework-info/commit/2eaafa1ab64cd422667c119b365039cc85339958)) -* **deps:** update dependency semver to v7.3.6 ([#748](https://github.com/netlify/framework-info/issues/748)) ([9b91402](https://github.com/netlify/framework-info/commit/9b914026cf6ec4d147236bf1c2aea40b8f352057)) -* **deps:** update dependency semver to v7.3.7 ([#753](https://github.com/netlify/framework-info/issues/753)) ([27854a3](https://github.com/netlify/framework-info/commit/27854a3d8af478c7f4c40cdeff7054d941749a96)) - -### [9.0.2](https://github.com/netlify/framework-info/compare/v9.0.1...v9.0.2) (2022-02-21) - - -### Bug Fixes - -* **deps:** update dependency locate-path to v7.1.0 ([#709](https://github.com/netlify/framework-info/issues/709)) ([236e473](https://github.com/netlify/framework-info/commit/236e4734b064ccf058125b181d585cbfeaf05521)) -* **deps:** update dependency read-pkg-up to v9.1.0 ([#710](https://github.com/netlify/framework-info/issues/710)) ([b7e075f](https://github.com/netlify/framework-info/commit/b7e075f3fd79ffb65a93e12ede75d9bfdceaf8aa)) - -### [9.0.1](https://github.com/netlify/framework-info/compare/v9.0.0...v9.0.1) (2022-02-07) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.10.0 ([#697](https://github.com/netlify/framework-info/issues/697)) ([a21770a](https://github.com/netlify/framework-info/commit/a21770ae786bcf0ed5ed91d627b395976612d106)) -* **deps:** update dependency filter-obj to v3 ([#699](https://github.com/netlify/framework-info/issues/699)) ([5a32463](https://github.com/netlify/framework-info/commit/5a324633cacbef197bf4f0d0b0f61670a8645026)) -* **deps:** update dependency is-plain-obj to v4 ([#700](https://github.com/netlify/framework-info/issues/700)) ([3db4a32](https://github.com/netlify/framework-info/commit/3db4a32f0b9d20149823f82246dc85b845f5aac0)) -* **deps:** update dependency locate-path to v7 ([#701](https://github.com/netlify/framework-info/issues/701)) ([dac0c7b](https://github.com/netlify/framework-info/commit/dac0c7b93fcff1ae7d647b9f8d3795a07af65917)) -* **deps:** update dependency p-filter to v3 ([#691](https://github.com/netlify/framework-info/issues/691)) ([5143fd1](https://github.com/netlify/framework-info/commit/5143fd1859b731e6ad09d6e73badeb48cecc1f57)) -* **deps:** update dependency p-locate to v6 ([#692](https://github.com/netlify/framework-info/issues/692)) ([14a0feb](https://github.com/netlify/framework-info/commit/14a0feb415b078771d0cf36d2a9e16fadcc7c4c0)) -* **deps:** update dependency read-pkg-up to v9 ([#703](https://github.com/netlify/framework-info/issues/703)) ([f7dd862](https://github.com/netlify/framework-info/commit/f7dd8623dfdbadadc3edc2bf5d33c372c38d4e40)) - -## [9.0.0](https://github.com/netlify/framework-info/compare/v8.0.2...v9.0.0) (2022-01-19) - - -### ⚠ BREAKING CHANGES - -* use pure ES modules (#577) - -### Miscellaneous Chores - -* use pure ES modules ([#577](https://github.com/netlify/framework-info/issues/577)) ([2d3cf6a](https://github.com/netlify/framework-info/commit/2d3cf6a610bedb9dd8938d2b7e9ac6fe17247db0)) - -### [8.0.2](https://github.com/netlify/framework-info/compare/v8.0.1...v8.0.2) (2022-01-17) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.9.0 ([#670](https://github.com/netlify/framework-info/issues/670)) ([9e29378](https://github.com/netlify/framework-info/commit/9e29378ab7adee8e692b5e158e4bef1a938f26f7)) - -### [8.0.1](https://github.com/netlify/framework-info/compare/v8.0.0...v8.0.1) (2022-01-12) - - -### Bug Fixes - -* **remix:** use correct configuration ([#663](https://github.com/netlify/framework-info/issues/663)) ([e35f96e](https://github.com/netlify/framework-info/commit/e35f96eaa410274153a4436638cc74a9f9acc747)) - -## [8.0.0](https://github.com/netlify/framework-info/compare/v7.0.0...v8.0.0) (2022-01-10) - - -### ⚠ BREAKING CHANGES - -* add Remix, make dev port optional (#658) - -### Features - -* add Remix, make dev port optional ([#658](https://github.com/netlify/framework-info/issues/658)) ([0c4e5bd](https://github.com/netlify/framework-info/commit/0c4e5bdb80af49fc37f15626a2d0acb8d3d20b11)) - -## [7.0.0](https://www.github.com/netlify/framework-info/compare/v6.1.0...v7.0.0) (2021-12-14) - - -### ⚠ BREAKING CHANGES - -* drop support for `next` < 10.0.9 and @netlify/plugin-nextjs < 4.0.0 (#606) - -### Features - -* drop support for `next` < 10.0.9 and @netlify/plugin-nextjs < 4.0.0 ([#606](https://www.github.com/netlify/framework-info/issues/606)) ([5949a88](https://www.github.com/netlify/framework-info/commit/5949a886f90ea4d0cf645a2a7d357af4ae9db359)) - - -### Bug Fixes - -* remove `--ignore-scripts` from `npm publish` in prereleases ([#589](https://www.github.com/netlify/framework-info/issues/589)) ([481d3e5](https://www.github.com/netlify/framework-info/commit/481d3e5a308a804188a5d8ceb772f7a48268e4e2)) - -## [6.1.0](https://www.github.com/netlify/framework-info/compare/v6.0.0...v6.1.0) (2021-12-06) - - -### Features - -* process JSON files at build time ([#578](https://www.github.com/netlify/framework-info/issues/578)) ([c1eaed6](https://www.github.com/netlify/framework-info/commit/c1eaed6b28de9d4136a40ae023c656b138641cf8)) - -## [6.0.0](https://www.github.com/netlify/framework-info/compare/v5.11.0...v6.0.0) (2021-11-24) - - -### ⚠ BREAKING CHANGES - -* drop support for Node 10 (#571) - -### Bug Fixes - -* **deps:** update dependency ajv to v8.8.0 ([#562](https://www.github.com/netlify/framework-info/issues/562)) ([27d37d8](https://www.github.com/netlify/framework-info/commit/27d37d81f63c36c5a5a3260bb3a084cb18aa00c7)) - - -### Miscellaneous Chores - -* drop support for Node 10 ([#571](https://www.github.com/netlify/framework-info/issues/571)) ([576368d](https://www.github.com/netlify/framework-info/commit/576368de4545a7b6d6e2361e929fedc4bb893dad)) - -## [5.11.0](https://www.github.com/netlify/framework-info/compare/v5.10.0...v5.11.0) (2021-10-11) - - -### Features - -* add Nuxt 3 ([#445](https://www.github.com/netlify/framework-info/issues/445)) ([39f9e3f](https://www.github.com/netlify/framework-info/commit/39f9e3fff4370a23f1d62f76cc07bfda3b20e59b)) - -## [5.10.0](https://www.github.com/netlify/framework-info/compare/v5.9.2...v5.10.0) (2021-10-11) - - -### Features - -* **gatsby:** set node version to 14 for build and functions ([#413](https://www.github.com/netlify/framework-info/issues/413)) ([c4bd400](https://www.github.com/netlify/framework-info/commit/c4bd400647e389c4f4d0454a5f1926cb6e8d84da)) - -### [5.9.2](https://www.github.com/netlify/framework-info/compare/v5.9.1...v5.9.2) (2021-09-20) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.6.3 ([#407](https://www.github.com/netlify/framework-info/issues/407)) ([7c67a75](https://www.github.com/netlify/framework-info/commit/7c67a759d2f507d43bd7058806dbb5cf87b1d159)) - -### [5.9.1](https://www.github.com/netlify/framework-info/compare/v5.9.0...v5.9.1) (2021-08-18) - - -### Bug Fixes - -* **sveltekit:** specify better output location ([#380](https://www.github.com/netlify/framework-info/issues/380)) ([9b9acea](https://www.github.com/netlify/framework-info/commit/9b9acea4f8505243275e957f166dacda220a5a2d)) - -## [5.9.0](https://www.github.com/netlify/framework-info/compare/v5.8.0...v5.9.0) (2021-08-17) - - -### Features - -* **gatsby:** precompile functions in develop ([#378](https://www.github.com/netlify/framework-info/issues/378)) ([74f5831](https://www.github.com/netlify/framework-info/commit/74f58312c75e6e8e89ebbfa3ec6d80419a2dc120)) - -## [5.8.0](https://www.github.com/netlify/framework-info/compare/v5.7.3...v5.8.0) (2021-08-03) - - -### Features - -* add auto installed plugin for gatsby ([#299](https://www.github.com/netlify/framework-info/issues/299)) ([d93a1c6](https://www.github.com/netlify/framework-info/commit/d93a1c605c65582e31d86ce97a2c3d2c0366be32)) - -### [5.7.3](https://www.github.com/netlify/framework-info/compare/v5.7.2...v5.7.3) (2021-08-02) - - -### Bug Fixes - -* **dev:** add list of excluded dev commands ([#363](https://www.github.com/netlify/framework-info/issues/363)) ([f5c9bb6](https://www.github.com/netlify/framework-info/commit/f5c9bb6eefbf36e183144a97ed0a34301eed5ec0)) - -### [5.7.2](https://www.github.com/netlify/framework-info/compare/v5.7.1...v5.7.2) (2021-07-13) - - -### Bug Fixes - -* **dev-detection:** prioritize dev over serve ([#348](https://www.github.com/netlify/framework-info/issues/348)) ([6667e9f](https://www.github.com/netlify/framework-info/commit/6667e9f5cade41fc8b556d800ce1e8e1a8fd2e2d)) - -### [5.7.1](https://www.github.com/netlify/framework-info/compare/v5.7.0...v5.7.1) (2021-07-12) - - -### Bug Fixes - -* sort framework ids when reporting an error ([#342](https://www.github.com/netlify/framework-info/issues/342)) ([e315dfb](https://www.github.com/netlify/framework-info/commit/e315dfb2f41cb2c5840a38ca581b19b36694e83d)) - -## [5.7.0](https://www.github.com/netlify/framework-info/compare/v5.6.1...v5.7.0) (2021-07-12) - - -### Features - -* add Astro ([#338](https://www.github.com/netlify/framework-info/issues/338)) ([53a30bb](https://www.github.com/netlify/framework-info/commit/53a30bbff14c828e3641cdbc7c325355cd15b73f)) - -### [5.6.1](https://www.github.com/netlify/framework-info/compare/v5.6.0...v5.6.1) (2021-07-11) - - -### Bug Fixes - -* **framework-vite:** remove HTTP polling ([#340](https://www.github.com/netlify/framework-info/issues/340)) ([d5245cd](https://www.github.com/netlify/framework-info/commit/d5245cd65983fcc974d1099f2f4fca92f981b8af)) - -## [5.6.0](https://www.github.com/netlify/framework-info/compare/v5.5.0...v5.6.0) (2021-07-05) - - -### Features - -* add Zola ([#326](https://www.github.com/netlify/framework-info/issues/326)) ([2f571d9](https://www.github.com/netlify/framework-info/commit/2f571d908f82bc7b555c38d5cf5be790b5600c63)) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.6.1 ([6051f44](https://www.github.com/netlify/framework-info/commit/6051f443995fa54f3e54cfa20e3f88a539b855a5)) - -## [5.5.0](https://www.github.com/netlify/framework-info/compare/v5.4.0...v5.5.0) (2021-06-30) - - -### Features - -* add detection of Next with Nx ([#327](https://www.github.com/netlify/framework-info/issues/327)) ([16f2c41](https://www.github.com/netlify/framework-info/commit/16f2c413d7b0dfef7146dafadf51ac7d8a15c43c)) - -## [5.4.0](https://www.github.com/netlify/framework-info/compare/v5.3.0...v5.4.0) (2021-06-27) - - -### Features - -* add WMR ([#315](https://www.github.com/netlify/framework-info/issues/315)) ([393e950](https://www.github.com/netlify/framework-info/commit/393e95039958b6830e9890d478020f68acde2bc8)) - -## [5.3.0](https://www.github.com/netlify/framework-info/compare/v5.2.0...v5.3.0) (2021-06-15) - - -### Features - -* add SvelteKit ([#308](https://www.github.com/netlify/framework-info/issues/308)) ([95d1ca9](https://www.github.com/netlify/framework-info/commit/95d1ca9a6f94bf76d5aa8494ee6f433ed236c15d)) - -## [5.2.0](https://www.github.com/netlify/framework-info/compare/v5.1.4...v5.2.0) (2021-06-13) - - -### Features - -* Add Cecil ([#300](https://www.github.com/netlify/framework-info/issues/300)) ([7019a64](https://www.github.com/netlify/framework-info/commit/7019a6431bc6e69cb54c6143ceda6b8c2311c66c)) - -### [5.1.4](https://www.github.com/netlify/framework-info/compare/v5.1.3...v5.1.4) (2021-06-07) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.6.0 ([cd263e8](https://www.github.com/netlify/framework-info/commit/cd263e8664df09753594bb8d98fcb6e0f34ee2b8)) - -### [5.1.3](https://www.github.com/netlify/framework-info/compare/v5.1.2...v5.1.3) (2021-06-02) - - -### Bug Fixes - -* **nuxt:** update name ([#283](https://www.github.com/netlify/framework-info/issues/283)) ([f5486e5](https://www.github.com/netlify/framework-info/commit/f5486e569fe77af56e7f770103bcc51785899012)) - -### [5.1.2](https://www.github.com/netlify/framework-info/compare/v5.1.1...v5.1.2) (2021-05-31) - - -### Bug Fixes - -* **jekyll:** add additional config files ([#281](https://www.github.com/netlify/framework-info/issues/281)) ([461aebb](https://www.github.com/netlify/framework-info/commit/461aebbf3ad7d56689890171dafbea01ae32845b)) - -### [5.1.1](https://www.github.com/netlify/framework-info/compare/v5.1.0...v5.1.1) (2021-05-31) - - -### Bug Fixes - -* **deps:** update dependency is-plain-obj to v3 ([#277](https://www.github.com/netlify/framework-info/issues/277)) ([ec61f07](https://www.github.com/netlify/framework-info/commit/ec61f075605196c228d9829159689165f3eb64dd)) -* **deps:** update dependency locate-path to v6 ([#278](https://www.github.com/netlify/framework-info/issues/278)) ([66fb671](https://www.github.com/netlify/framework-info/commit/66fb671ee1364b67384aa39f5e9f06b089a30f31)) -* **deps:** update dependency p-locate to v5 ([#279](https://www.github.com/netlify/framework-info/issues/279)) ([1d1718a](https://www.github.com/netlify/framework-info/commit/1d1718a0ef18bb61fc12182b68d4946b2292aafa)) - -## [5.1.0](https://www.github.com/netlify/framework-info/compare/v5.0.0...v5.1.0) (2021-05-30) - - -### Features - -* **frameworks:** Adds framework detection json for RedwoodJS ([d62f8ba](https://www.github.com/netlify/framework-info/commit/d62f8ba6895295d69638ff47446e0a1e7aa9131a)) - -## [5.0.0](https://www.github.com/netlify/framework-info/compare/v4.1.1...v5.0.0) (2021-05-27) - - -### ⚠ BREAKING CHANGES - -* drop support for Node.js 8 (#258) - -### Miscellaneous Chores - -* drop support for Node.js 8 ([#258](https://www.github.com/netlify/framework-info/issues/258)) ([80c626e](https://www.github.com/netlify/framework-info/commit/80c626e98cb6d2801639f4b78a0b2007b6b68474)) - -### [4.1.1](https://www.github.com/netlify/framework-info/compare/v4.1.0...v4.1.1) (2021-05-14) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.4.0 ([deb2935](https://www.github.com/netlify/framework-info/commit/deb2935b34da5df822501da6ba6022fc0552908a)) - -## [4.1.0](https://www.github.com/netlify/framework-info/compare/v4.0.1...v4.1.0) (2021-05-11) - - -### Features - -* add Blitz.js support ([#243](https://www.github.com/netlify/framework-info/issues/243)) ([fb01ff5](https://www.github.com/netlify/framework-info/commit/fb01ff504f4a399405c5e1f8916f3413f468d2db)) - -### [4.0.1](https://www.github.com/netlify/framework-info/compare/v4.0.0...v4.0.1) (2021-05-09) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8.2.0 ([#231](https://www.github.com/netlify/framework-info/issues/231)) ([4c1b29d](https://www.github.com/netlify/framework-info/commit/4c1b29db48623f862e4cec72a983cca4064bc96a)) - -## [4.0.0](https://www.github.com/netlify/framework-info/compare/v3.3.0...v4.0.0) (2021-04-26) - - -### ⚠ BREAKING CHANGES - -* **bin:** remove the cli execution - -### Miscellaneous Chores - -* **bin:** remove the cli execution ([7f09120](https://www.github.com/netlify/framework-info/commit/7f0912062774f0ee06ad10e47c885f402971a953)) - -## [3.3.0](https://www.github.com/netlify/framework-info/compare/v3.2.1...v3.3.0) (2021-04-06) - - -### Features - -* **frameworks:** add Vite ([#206](https://www.github.com/netlify/framework-info/issues/206)) ([15ca31a](https://www.github.com/netlify/framework-info/commit/15ca31a62ac4c16e48e0c5cef199d00c097fd5d5)) - -### [3.2.1](https://www.github.com/netlify/framework-info/compare/v3.2.0...v3.2.1) (2021-03-29) - - -### Bug Fixes - -* **deps:** update dependency ajv to v8 ([#192](https://www.github.com/netlify/framework-info/issues/192)) ([7c81511](https://www.github.com/netlify/framework-info/commit/7c8151152d024ac145a1bfe4d7ac7878eb071e70)) - -## [3.2.0](https://www.github.com/netlify/framework-info/compare/v3.1.3...v3.2.0) (2021-03-16) - - -### Features - -* add static assets directory ([#177](https://www.github.com/netlify/framework-info/issues/177)) ([e830e07](https://www.github.com/netlify/framework-info/commit/e830e0764a85c03034e2d6dbdd1d0c0247666d42)) - -### [3.1.3](https://www.github.com/netlify/framework-info/compare/v3.1.2...v3.1.3) (2021-03-01) - - -### Bug Fixes - -* support browsers without globalThis ([#152](https://www.github.com/netlify/framework-info/issues/152)) ([2f7306d](https://www.github.com/netlify/framework-info/commit/2f7306dce002301bc114d1770591221e1c3c6149)) - -### [3.1.2](https://www.github.com/netlify/framework-info/compare/v3.1.1...v3.1.2) (2021-02-24) - - -### Bug Fixes - -* Update the build command and directory for Angular.js ([edd9212](https://www.github.com/netlify/framework-info/commit/edd9212d4b2dc33265ee96510f9aa4c47e2753ac)) - -### [3.1.1](https://www.github.com/netlify/framework-info/compare/v3.1.0...v3.1.1) (2021-02-18) - - -### Bug Fixes - -* fix `files` in `package.json` ([1751eab](https://www.github.com/netlify/framework-info/commit/1751eabdb96dab3b68b16b07055ce0a5893d14f5)) - -## [3.1.0](https://www.github.com/netlify/framework-info/compare/v3.0.0...v3.1.0) (2021-02-11) - - -### Features - -* **dev:** add polling strategies ([#125](https://www.github.com/netlify/framework-info/issues/125)) ([4c553e8](https://www.github.com/netlify/framework-info/commit/4c553e8be40f6b01948ccbeb56ee58f86dd6bfb0)) - -## [3.0.0](https://www.github.com/netlify/framework-info/compare/v2.3.0...v3.0.0) (2021-02-10) - - -### ⚠ BREAKING CHANGES - -* rename title to name (#139) -* rename name property to id (#137) - -### Features - -* rename name property to id ([#137](https://www.github.com/netlify/framework-info/issues/137)) ([bf298d2](https://www.github.com/netlify/framework-info/commit/bf298d2ce4e4ca010a4cf05642aac952f0afa675)) -* rename title to name ([#139](https://www.github.com/netlify/framework-info/issues/139)) ([2b444e0](https://www.github.com/netlify/framework-info/commit/2b444e071b4a2b5c82afa639240c7014bc3a865c)) - -## [2.3.0](https://www.github.com/netlify/framework-info/compare/v2.2.0...v2.3.0) (2021-02-10) - - -### Features - -* add frameworks titles ([#134](https://www.github.com/netlify/framework-info/issues/134)) ([4aec35e](https://www.github.com/netlify/framework-info/commit/4aec35e7917d98a27ac9fe9f8c0b35b652fad594)) - -## [2.2.0](https://www.github.com/netlify/framework-info/compare/v2.1.1...v2.2.0) (2021-02-08) - - -### Features - -* add nodeVersion option ([#124](https://www.github.com/netlify/framework-info/issues/124)) ([647f94b](https://www.github.com/netlify/framework-info/commit/647f94b15c642c65c6cd1d74396ac17c8d02c8e4)) - -### [2.1.1](https://www.github.com/netlify/framework-info/compare/v2.1.0...v2.1.1) (2021-01-25) - - -### Bug Fixes - -* remove duplicate plugins entry from grunt.json ([#116](https://www.github.com/netlify/framework-info/issues/116)) ([2721217](https://www.github.com/netlify/framework-info/commit/2721217dfa4f9525f02465dfdc89006b5b6bdd83)) - -## [2.1.0](https://www.github.com/netlify/framework-info/compare/v2.0.0...v2.1.0) (2021-01-25) - - -### Features - -* add plugins detection ([#111](https://www.github.com/netlify/framework-info/issues/111)) ([db4e8f5](https://www.github.com/netlify/framework-info/commit/db4e8f5eaeb3f7f05f7f2c82ec94fdc8312322d2)) - -## [2.0.0](https://www.github.com/netlify/framework-info/compare/v1.1.2...v2.0.0) (2021-01-07) - - -### ⚠ BREAKING CHANGES - -* rename watch to dev (#96) -* add build command detection (#92) - -### Features - -* add build command detection ([#92](https://www.github.com/netlify/framework-info/issues/92)) ([4d5c35e](https://www.github.com/netlify/framework-info/commit/4d5c35ee948f5a97a0896cb1907a58a85ca6588b)) - - -### Bug Fixes - -* **docs:** update readme ([#98](https://www.github.com/netlify/framework-info/issues/98)) ([8c734df](https://www.github.com/netlify/framework-info/commit/8c734df7bdf30e5cdf7e2bf49860671901edc45b)) -* rename watch to dev ([#96](https://www.github.com/netlify/framework-info/issues/96)) ([58aadd5](https://www.github.com/netlify/framework-info/commit/58aadd50f66bf54e43adf6c5fc2c6a0b8ae65965)) -* sort preferred scripts ([#99](https://www.github.com/netlify/framework-info/issues/99)) ([d7d9093](https://www.github.com/netlify/framework-info/commit/d7d9093dde7b69a959a14280647b4de0b67f616a)) -* **create-react-app:** update build directory ([#94](https://www.github.com/netlify/framework-info/issues/94)) ([54222d5](https://www.github.com/netlify/framework-info/commit/54222d52ed4e18bca3322744277b3ce4d372fd09)) - -### [1.1.2](https://www.github.com/netlify/framework-info/compare/v1.1.1...v1.1.2) (2020-12-20) - - -### Bug Fixes - -* **eleventy:** update watch command ([#74](https://www.github.com/netlify/framework-info/issues/74)) ([26a3b71](https://www.github.com/netlify/framework-info/commit/26a3b71c04d02c0a1d1baa3dbbc69745adc6683d)) -* **watch-command:** return watch commands in consistent order ([#76](https://www.github.com/netlify/framework-info/issues/76)) ([eb9de6d](https://www.github.com/netlify/framework-info/commit/eb9de6db1c1a1f2e9e9660a3e6c5ea79e561c679)) - -### [1.1.1](https://www.github.com/netlify/framework-info/compare/v1.1.0...v1.1.1) (2020-12-17) - - -### Bug Fixes - -* **angular:** update watch command ([#72](https://www.github.com/netlify/framework-info/issues/72)) ([fb5425f](https://www.github.com/netlify/framework-info/commit/fb5425f49fcd11eac1043a0a620300be53870628)) - -## [1.1.0](https://www.github.com/netlify/framework-info/compare/v1.0.0...v1.1.0) (2020-12-16) - - -### Features - -* make the library browser compatible ([#58](https://www.github.com/netlify/framework-info/issues/58)) ([b172413](https://www.github.com/netlify/framework-info/commit/b17241389e4ead400b8f7bfddd35496b260d6f25)) - -## [1.0.0](https://www.github.com/netlify/framework-info/compare/v0.3.2...v1.0.0) (2020-12-15) - - -### ⚠ BREAKING CHANGES - -* remove ignoredWatchCommand option (#59) - -### Code Refactoring - -* remove ignoredWatchCommand option ([#59](https://www.github.com/netlify/framework-info/issues/59)) ([defd809](https://www.github.com/netlify/framework-info/commit/defd80956006a0b3ff65e265115d662c4bd8b679)) - -## [v0.3.2](https://github.com/netlify/framework-info/compare/v0.3.1...v0.3.2) - -### Merged - -- chore(deps): update dependency @netlify/eslint-config-node to v2 - [`#60`](https://github.com/netlify/framework-info/pull/60) -- chore(deps): lock file maintenance [`#61`](https://github.com/netlify/framework-info/pull/61) - -## [v0.3.1](https://github.com/netlify/framework-info/compare/v0.3.0...v0.3.1) - 2020-12-10 - -### Merged - -- fix: add missing frameworks to main.js [`#57`](https://github.com/netlify/framework-info/pull/57) - -## [v0.3.0](https://github.com/netlify/framework-info/compare/v0.2.0...v0.3.0) - 2020-12-10 - -### Merged - -- chore: add commit linting [`#55`](https://github.com/netlify/framework-info/pull/55) -- chore: add pr labeler [`#54`](https://github.com/netlify/framework-info/pull/54) -- chore: fix version script [`#53`](https://github.com/netlify/framework-info/pull/53) -- feat: add quasar-v0.17 [`#52`](https://github.com/netlify/framework-info/pull/52) -- feat: add docusaurus v2 [`#51`](https://github.com/netlify/framework-info/pull/51) -- fix(docusaurus): add missing BROWSER env variable [`#50`](https://github.com/netlify/framework-info/pull/50) -- chore: gitignore vscode [`#49`](https://github.com/netlify/framework-info/pull/49) -- fix(jsdoc): use typedef instead of dot notation [`#48`](https://github.com/netlify/framework-info/pull/48) -- chore: apply eslint config node [`#47`](https://github.com/netlify/framework-info/pull/47) -- fix(contributing): use correct repo name [`#45`](https://github.com/netlify/framework-info/pull/45) -- chore: use eslint config node [`#46`](https://github.com/netlify/framework-info/pull/46) -- chore(deps): lock file maintenance [`#43`](https://github.com/netlify/framework-info/pull/43) -- chore(deps): lock file maintenance [`#39`](https://github.com/netlify/framework-info/pull/39) -- chore(deps): lock file maintenance [`#38`](https://github.com/netlify/framework-info/pull/38) -- chore(deps): lock file maintenance [`#37`](https://github.com/netlify/framework-info/pull/37) -- chore(deps): lock file maintenance [`#36`](https://github.com/netlify/framework-info/pull/36) -- github tools: fix fossa workflow file [`#35`](https://github.com/netlify/framework-info/pull/35) -- chore(deps): lock file maintenance [`#34`](https://github.com/netlify/framework-info/pull/34) -- Add `--fail` flag to `curl` for Codecov [`#33`](https://github.com/netlify/framework-info/pull/33) - -### Commits - -- Fix lock file [`a1d7de4`](https://github.com/netlify/framework-info/commit/a1d7de4c64f9e70f14635aab7aaa3f71d15aa3e4) -- fix github actions workflow file for fossa - [`9ab34c1`](https://github.com/netlify/framework-info/commit/9ab34c165dd8efeb582a94f16f0f842c52a6f3dc) - -## [v0.2.0](https://github.com/netlify/framework-info/compare/v0.1.3...v0.2.0) - 2020-10-29 - -### Merged - -- Add `hasFramework()` [`#31`](https://github.com/netlify/framework-info/pull/31) -- chore(deps): update dependency eslint-config-prettier to v6.14.0 - [`#29`](https://github.com/netlify/framework-info/pull/29) -- Add `is-plain-obj` to `renovate.json5` [`#28`](https://github.com/netlify/framework-info/pull/28) -- chore(deps): update dependency eslint-config-prettier to v6.13.0 - [`#26`](https://github.com/netlify/framework-info/pull/26) -- chore(deps): update dependency ajv to v6.12.6 [`#25`](https://github.com/netlify/framework-info/pull/25) -- chore(deps): update dependency gh-release to v4.0.3 [`#24`](https://github.com/netlify/framework-info/pull/24) -- Add `del` to `renovate.json5` [`#23`](https://github.com/netlify/framework-info/pull/23) -- chore(deps): update dependency eslint-plugin-import to v2.22.1 - [`#21`](https://github.com/netlify/framework-info/pull/21) -- chore(deps): update dependency eslint-config-prettier to v6.12.0 - [`#20`](https://github.com/netlify/framework-info/pull/20) -- chore(deps): update dependency gh-release to v4.0.2 [`#19`](https://github.com/netlify/framework-info/pull/19) -- chore(deps): update dependency auto-changelog to v2.2.1 [`#18`](https://github.com/netlify/framework-info/pull/18) -- Add `yargs` to `renovate.json5` [`#17`](https://github.com/netlify/framework-info/pull/17) -- chore(deps): update dependency ajv to v6.12.5 [`#14`](https://github.com/netlify/framework-info/pull/14) -- chore(deps): update dependency gh-release to v4 [`#15`](https://github.com/netlify/framework-info/pull/15) -- chore(deps): lock file maintenance [`#13`](https://github.com/netlify/framework-info/pull/13) -- chore(deps): lock file maintenance [`#11`](https://github.com/netlify/framework-info/pull/11) -- chore(deps): lock file maintenance [`#9`](https://github.com/netlify/framework-info/pull/9) -- chore(deps): lock file maintenance [`#6`](https://github.com/netlify/framework-info/pull/6) - -### Commits - -- Merge pull request #30 from netlify/renovate/actions-checkout-2.x - [`7dbe1c0`](https://github.com/netlify/framework-info/commit/7dbe1c03f020ce1dc703b58a756039160078bfe5) -- chore(deps): update actions/checkout action to v2 - [`b9086ab`](https://github.com/netlify/framework-info/commit/b9086ab3a30d727c5e3f7c966fb6772be7a5f2e1) -- Merge pull request #10 from netlify/renovate/lock-file-maintenance - [`6d87bdf`](https://github.com/netlify/framework-info/commit/6d87bdf9971c5bec2614d9cc4d82c27b596fb88d) - -## [v0.1.3](https://github.com/netlify/framework-info/compare/v0.1.2...v0.1.3) - 2020-08-07 - -### Commits - -- Dummy commit [`6e2dc72`](https://github.com/netlify/framework-info/commit/6e2dc72a98986b239e5549731f2904e97908bdcd) - -## [v0.1.2](https://github.com/netlify/framework-info/compare/v0.1.1...v0.1.2) - 2020-08-07 - -## [v0.1.1](https://github.com/netlify/framework-info/compare/v0.1.0...v0.1.1) - 2020-08-07 - -## v0.1.0 - 2020-08-07 - -### Merged - -- github tools: add fossa license scanning [`#1`](https://github.com/netlify/framework-info/pull/1) - -### Commits - -- Init [`fc3e3d7`](https://github.com/netlify/framework-info/commit/fc3e3d76dae04fb1f017eb1b11567d2a8f298125) -- Add frameworks [`03ed590`](https://github.com/netlify/framework-info/commit/03ed59041abcbc10fcd9ffbe9bc212bd9f955470) -- chore(deps): lock file maintenance - [`6bc61ba`](https://github.com/netlify/framework-info/commit/6bc61baae3968974d4496faed01c84efd38feb74) diff --git a/packages/framework-info/LICENSE b/packages/framework-info/LICENSE deleted file mode 100644 index 7d56877130..0000000000 --- a/packages/framework-info/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2020 Netlify - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/framework-info/README.md b/packages/framework-info/README.md deleted file mode 100644 index 56353bcb19..0000000000 --- a/packages/framework-info/README.md +++ /dev/null @@ -1,4 +0,0 @@ -> [!IMPORTANT] -> This package is deprecated and will no longer receive updates. -> -> Please refer to the [`@netlify/build-info`](https://www.npmjs.com/package/@netlify/build-info) package instead. diff --git a/packages/framework-info/index.html b/packages/framework-info/index.html deleted file mode 100644 index d1268d76ed..0000000000 --- a/packages/framework-info/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Framework Info - - - diff --git a/packages/framework-info/package.json b/packages/framework-info/package.json deleted file mode 100644 index af5e5e4001..0000000000 --- a/packages/framework-info/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "@netlify/framework-info", - "version": "10.0.5", - "description": "Framework detection utility", - "type": "module", - "main": "./dist/index.umd.cjs", - "exports": { - "node": "./lib/main.js", - "default": "./dist/index.umd.cjs" - }, - "types": "./lib/main.d.ts", - "files": [ - "lib", - "dist/index.umd.cjs" - ], - "scripts": { - "prebuild": "node scripts/transform_json.js", - "build": "run-s build:*", - "build:ts": "tsc", - "build:browser": "run-s build:browser:*", - "build:browser:core": "vite build", - "build:browser:site-root": "cpy index.html ./dist", - "pretest": "run-s prebuild", - "test": "vitest run", - "test:dev": "vitest", - "test:ci": "vitest run --reporter=default" - }, - "keywords": [ - "dependency-management", - "continuous-integration", - "deployment", - "es6", - "framework", - "gulp", - "javascript", - "html", - "library", - "markdown", - "nodejs", - "npmjs", - "package-manager", - "webapp", - "jamstack", - "static-site-generator", - "static-site", - "gatsby", - "hugo", - "netlify" - ], - "author": "Netlify, Inc", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/netlify/build.git", - "directory": "packages/framework-info" - }, - "homepage": "https://github.com/netlify/build", - "bugs": { - "url": "https://github.com/netlify/build/issues" - }, - "dependencies": { - "ajv": "^8.12.0", - "filter-obj": "^6.0.0", - "find-up": "^7.0.0", - "is-plain-obj": "^4.0.0", - "locate-path": "^7.0.0", - "p-filter": "^4.0.0", - "p-locate": "^6.0.0", - "read-package-up": "^11.0.0", - "semver": "^7.3.8" - }, - "devDependencies": { - "cpy": "^11.0.0", - "cpy-cli": "^5.0.0", - "fast-glob": "^3.2.12", - "npm-run-all2": "^6.0.0", - "rollup-plugin-node-polyfills": "^0.2.1", - "tmp-promise": "^3.0.2", - "typescript": "^5.0.0", - "vite": "^6.0.0", - "vitest": "^3.0.0" - }, - "engines": { - "node": ">=18.14.0" - }, - "ava": { - "verbose": true, - "workerThreads": false - } -} diff --git a/packages/framework-info/scripts/frameworks.js b/packages/framework-info/scripts/frameworks.js deleted file mode 100644 index 2ad8a7667e..0000000000 --- a/packages/framework-info/scripts/frameworks.js +++ /dev/null @@ -1,60 +0,0 @@ -// We purposely order the following array to ensure the most relevant framework -// is always first, if several frameworks are detected at once. - -// Therefore, we cannot use `fs.readdir()`. -export const FRAMEWORK_NAMES = [ - // Static site generators - 'astro', - 'docusaurus', - 'docusaurus-v2', - 'eleventy', - 'gatsby', - 'gridsome', - 'hexo', - 'hugo', - 'hydrogen', - 'jekyll', - 'middleman', - 'next-nx', - 'next', - 'blitz', - 'nuxt', - 'nuxt3', - 'phenomic', - 'qwik', - 'react-static', - 'redwoodjs', - 'remix', - 'solid-js', - 'solid-start', - 'stencil', - 'vuepress', - 'assemble', - 'docpad', - 'harp', - 'metalsmith', - 'roots', - 'wintersmith', - 'cecil', - 'zola', - - // Front-end frameworks - 'angular', - 'create-react-app', - 'ember', - 'expo', - 'quasar', - 'quasar-v0.17', - 'sapper', - 'svelte', - 'svelte-kit', - 'vue', - - // Build tools - 'brunch', - 'parcel', - 'grunt', - 'gulp', - 'vite', - 'wmr', -] diff --git a/packages/framework-info/scripts/transform_json.js b/packages/framework-info/scripts/transform_json.js deleted file mode 100644 index 3b041b20f8..0000000000 --- a/packages/framework-info/scripts/transform_json.js +++ /dev/null @@ -1,64 +0,0 @@ -import { promises as fs } from 'fs' -import process from 'process' - -import { FRAMEWORK_NAMES } from './frameworks.js' - -const FRAMEWORKS_SOURCE = new URL('./frameworks.js', import.meta.url) -const FRAMEWORKS_DIR = new URL('../src/frameworks/', import.meta.url) -const BUILD_DIR = new URL('../src/generated/', import.meta.url) -const FRAMEWORKS_BUILD = new URL('frameworks.ts', BUILD_DIR) -const FRAMEWORK_NAMES_BUILD = new URL('frameworkNames.ts', BUILD_DIR) - -// We enforce frameworks to be written with JSON to ensure they remain logicless -// which is simpler for contributors and avoid adding unnecessary logic. -// However, Node.js does not support JSON imports without any experimental -// flags. Also, not all browsers support it unless Webpack preprocesses it. -// Therefore, we transform JSON to JavaScript files using at build time. -const transformFrameworks = async function () { - await fs.mkdir(BUILD_DIR, { recursive: true }) - // We use the framework names here to generate the frameworks infos, so that - // we keep the exact same order as in FRAMEWORK_NAMES - const frameworks = await Promise.all(FRAMEWORK_NAMES.map(transformFramework)) - const fileContents = `${FRAMEWORKS_HEADER}${JSON.stringify(frameworks, null, 2)}` - await fs.writeFile(FRAMEWORKS_BUILD, fileContents) -} - -const updateLogoUrls = function (contents) { - const updatedContents = contents - const originalLogo = contents.logo - if (originalLogo) { - for (const [theme, urlPath] of Object.entries(originalLogo)) { - updatedContents.logo[theme] = (process.env.DEPLOY_PRIME_URL || 'https://framework-info.netlify.app') + urlPath - } - } - - return updatedContents -} - -const transformFramework = async function (frameworkName) { - const frameworkUrl = new URL(`${frameworkName}.json`, FRAMEWORKS_DIR) - const jsonContents = await fs.readFile(frameworkUrl) - const contents = JSON.parse(jsonContents) - - const updatedContents = updateLogoUrls(contents) - return updatedContents -} - -const FRAMEWORKS_HEADER = `import type { FrameworkDefinition } from "../types.js" -// This file is autogenerated at build time -export const FRAMEWORKS: FrameworkDefinition[] = ` - -const transformFrameworkNames = async function () { - const frameworkNamesContent = await fs.readFile(FRAMEWORKS_SOURCE, 'utf-8') - const fileContents = `${FRAMEWORK_NAMES_HEADER}${frameworkNamesContent.trim()}${FRAMEWORK_NAMES_FOOTER}` - await fs.writeFile(FRAMEWORK_NAMES_BUILD, fileContents) -} - -const FRAMEWORK_NAMES_HEADER = '// This file is autogenerated at build time\n\n' - -const FRAMEWORK_NAMES_FOOTER = ` as const - -export type FrameworkName = typeof FRAMEWORK_NAMES[number]` - -await transformFrameworks() -await transformFrameworkNames() diff --git a/packages/framework-info/src/context.ts b/packages/framework-info/src/context.ts deleted file mode 100644 index 7e14acf102..0000000000 --- a/packages/framework-info/src/context.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { cwd, version as nodejsVersion } from 'process' - -import { locatePath } from 'locate-path' -import { PackageJson, readPackageUp } from 'read-package-up' - -interface PackageJsonInfo { - packageJson?: PackageJson - packageJsonPath?: string -} - -export type PathExists = (path: string) => Promise - -export interface Context extends PackageJsonInfo { - pathExists: PathExists - nodeVersion: string -} - -export const getPackageJson = async (projectDir: string): Promise => { - try { - const result = await readPackageUp({ cwd: projectDir, normalize: false }) - if (result === undefined) { - return {} - } - - const { packageJson, path: packageJsonPath } = result - - return { packageJson, packageJsonPath } - } catch { - return {} - } -} - -export const getContext = async (projectDir: string = cwd(), nodeVersion: string = nodejsVersion): Promise => { - const { packageJson, packageJsonPath = projectDir } = await getPackageJson(projectDir) - - return { - pathExists: async (path) => (await locatePath([path], { type: 'file', cwd: projectDir })) !== undefined, - packageJson, - packageJsonPath, - nodeVersion, - } -} diff --git a/packages/framework-info/src/core.ts b/packages/framework-info/src/core.ts deleted file mode 100644 index a4a39523d3..0000000000 --- a/packages/framework-info/src/core.ts +++ /dev/null @@ -1,139 +0,0 @@ -import pFilter from 'p-filter' -import type { PackageJson } from 'read-package-up' - -import type { Context, PathExists } from './context.js' -import { usesFramework } from './detect.js' -import { getDevCommands } from './dev.js' -import type { FrameworkName } from './generated/frameworkNames.js' -import { FRAMEWORKS } from './generated/frameworks.js' -import { getPackageJsonContent } from './package.js' -import { getPlugins } from './plugins.js' -import { getRunScriptCommand } from './run_script.js' -import type { Framework, FrameworkDefinition } from './types.js' - -const getContext = (context: Context) => { - const { pathExists, packageJson, packageJsonPath = '.', nodeVersion } = context - - return { pathExists, packageJson, packageJsonPath, nodeVersion } -} - -/** - * Return all the frameworks used by a project. - */ -export const listFrameworks = async function (context: Context): Promise { - const { pathExists, packageJson, packageJsonPath, nodeVersion } = getContext(context) - const { npmDependencies, scripts, runScriptCommand } = await getProjectInfo({ - pathExists, - packageJson, - packageJsonPath, - }) - const frameworks = await pFilter(FRAMEWORKS, (framework) => usesFramework(framework, { pathExists, npmDependencies })) - const frameworkInfos = frameworks.map((framework) => - getFrameworkInfo(framework, { scripts, runScriptCommand, nodeVersion }), - ) - return frameworkInfos -} - -/** - * Return whether a project uses a specific framework - */ -export const hasFramework = async function (frameworkId: FrameworkName, context: Context): Promise { - const framework = getFrameworkById(frameworkId) - const { pathExists, packageJson, packageJsonPath } = getContext(context) - const { npmDependencies } = await getProjectInfo({ pathExists, packageJson, packageJsonPath }) - const result = await usesFramework(framework, { pathExists, npmDependencies }) - return result -} - -/** - * Return some information about a framework used by a project. - */ -export const getFramework = async function (frameworkId: FrameworkName, context: Context): Promise { - const framework = getFrameworkById(frameworkId) - const { pathExists, packageJson, packageJsonPath, nodeVersion } = getContext(context) - const { scripts, runScriptCommand } = await getProjectInfo({ - pathExists, - packageJson, - packageJsonPath, - }) - const frameworkInfo = getFrameworkInfo(framework, { scripts, runScriptCommand, nodeVersion }) - return frameworkInfo -} -/** - * Gets the framework by its id - * @param {string} frameworkId - Id such as `"gatsby"` - * @returns - */ - -export const getFrameworkById = function (frameworkId: FrameworkName): FrameworkDefinition { - const framework = FRAMEWORKS.find(({ id }) => id === frameworkId) - if (framework === undefined) { - const frameworkIds = FRAMEWORKS.map((knownFramework) => getFrameworkId(knownFramework)) - .sort() - .join(', ') - throw new Error(`Invalid framework "${frameworkId}". It should be one of: ${frameworkIds}`) - } - - return framework -} - -const getFrameworkId = function ({ id }: FrameworkDefinition): string { - return id -} - -const getProjectInfo = async function ({ - pathExists, - packageJson, - packageJsonPath, -}: { - pathExists: PathExists - packageJson: PackageJson | undefined - packageJsonPath: string -}) { - const { npmDependencies, scripts } = getPackageJsonContent(packageJson) - const runScriptCommand = await getRunScriptCommand({ pathExists, packageJsonPath }) - return { npmDependencies, scripts, runScriptCommand } -} - -const getFrameworkInfo = function ( - { - id, - name, - detect, - category, - dev: { command: frameworkDevCommand, port, pollingStrategies }, - build: { command: frameworkBuildCommand, directory }, - staticAssetsDirectory, - env, - logo, - plugins, - }: FrameworkDefinition, - { - scripts, - runScriptCommand, - nodeVersion, - }: { - scripts: Record - runScriptCommand: string - nodeVersion: string - }, -): Framework { - const devCommands = getDevCommands({ frameworkDevCommand, scripts, runScriptCommand }) - const recommendedPlugins = getPlugins(plugins, { nodeVersion }) - - return { - id, - name, - package: { - name: detect.npmDependencies[0], - version: 'unknown', - }, - category, - dev: { commands: devCommands, port, pollingStrategies }, - build: { commands: [frameworkBuildCommand], directory }, - staticAssetsDirectory, - env, - logo, - plugins: recommendedPlugins, - } -} diff --git a/packages/framework-info/src/detect.ts b/packages/framework-info/src/detect.ts deleted file mode 100644 index 8b72266248..0000000000 --- a/packages/framework-info/src/detect.ts +++ /dev/null @@ -1,52 +0,0 @@ -import pLocate from 'p-locate' - -import type { PathExists } from './context.js' -import type { FrameworkDefinition } from './types.js' - -// Checks if the project is using a specific framework: -// - if `framework.npmDependencies` is set, one of them must be present in the -// `package.json` `dependencies|devDependencies` -// - if `framework.excludedNpmDependencies` is set, none of them must be -// present in the `package.json` `dependencies|devDependencies` -// - if `framework.configFiles` is set, one of the files must exist -export const usesFramework = async function ( - { - detect: { - npmDependencies: frameworkNpmDependencies, - excludedNpmDependencies: frameworkExcludedNpmDependencies, - configFiles, - }, - }: FrameworkDefinition, - { pathExists, npmDependencies }: { pathExists: PathExists; npmDependencies: string[] }, -): Promise { - return ( - usesNpmDependencies(frameworkNpmDependencies, npmDependencies) && - lacksExcludedNpmDependencies(frameworkExcludedNpmDependencies, npmDependencies) && - (await usesConfigFiles(configFiles, pathExists)) - ) -} - -const usesNpmDependencies = function (frameworkNpmDependencies: string[], npmDependencies: string[]): boolean { - return ( - frameworkNpmDependencies.length === 0 || - frameworkNpmDependencies.some((frameworkNpmDependency) => npmDependencies.includes(frameworkNpmDependency)) - ) -} - -const lacksExcludedNpmDependencies = function ( - frameworkExcludedNpmDependencies: string[], - npmDependencies: string[], -): boolean { - return frameworkExcludedNpmDependencies.every( - (frameworkNpmDependency) => !npmDependencies.includes(frameworkNpmDependency), - ) -} - -const configExists = async (configFiles: string[], pathExists: PathExists): Promise => { - const exists = await pLocate(configFiles, (file: string) => pathExists(file)) - return !!exists -} - -const usesConfigFiles = async function (configFiles: string[], pathExists: PathExists): Promise { - return configFiles.length === 0 || (await configExists(configFiles, pathExists)) -} diff --git a/packages/framework-info/src/dev.ts b/packages/framework-info/src/dev.ts deleted file mode 100644 index 408ac008b6..0000000000 --- a/packages/framework-info/src/dev.ts +++ /dev/null @@ -1,72 +0,0 @@ -// Retrieve framework's dev commands. -// We use, in priority order: -// - `package.json` `scripts` containing `framework.dev.command` -// - `package.json` `scripts` whose names are among `NPM_DEV_SCRIPTS` -// - `framework.dev.command` -export const getDevCommands = function ({ - frameworkDevCommand, - scripts, - runScriptCommand, -}: { - frameworkDevCommand?: string - scripts: Record - runScriptCommand: string -}): string[] { - if (frameworkDevCommand === undefined) { - return [] - } - const scriptDevCommands = getScriptDevCommands(scripts, frameworkDevCommand).map( - (scriptName) => `${runScriptCommand} ${scriptName}`, - ) - if (scriptDevCommands.length !== 0) { - return scriptDevCommands - } - - return [frameworkDevCommand] -} - -const getScriptDevCommands = function (scripts: Record, frameworkDevCommand: string): string[] { - const preferredScripts = getPreferredScripts(scripts, frameworkDevCommand) - if (preferredScripts.length !== 0) { - return preferredScripts - } - - const devScripts = Object.keys(scripts).filter((script) => isNpmDevScript(script, scripts[script])) - return devScripts.sort(scriptsSorter) -} - -const getSortIndex = (index: number): number => (index === -1 ? Number.MAX_SAFE_INTEGER : index) - -const scriptsSorter = (script1: string, script2: string): number => { - const index1 = NPM_DEV_SCRIPTS.findIndex((devScriptName) => matchesNpmWDevScript(script1, devScriptName)) - const index2 = NPM_DEV_SCRIPTS.findIndex((devScriptName) => matchesNpmWDevScript(script2, devScriptName)) - - return getSortIndex(index1) - getSortIndex(index2) -} - -const getPreferredScripts = function (scripts: Record, frameworkDevCommand: string): string[] { - return Object.entries(scripts) - .filter(([, scriptValue]) => scriptValue.includes(frameworkDevCommand)) - .map(([key]) => key) - .sort(scriptsSorter) -} - -// Check if the npm script is likely to contain a dev command -const isNpmDevScript = function (scriptName: string, scriptValue: string): boolean { - return NPM_DEV_SCRIPTS.some( - (devScriptName) => matchesNpmWDevScript(scriptName, devScriptName) && !isExcludedScript(scriptValue), - ) -} - -// We also match script names like `docs:dev` -const matchesNpmWDevScript = function (scriptName: string, devScriptName: string): boolean { - return scriptName === devScriptName || scriptName.endsWith(`:${devScriptName}`) -} - -const NPM_DEV_SCRIPTS = ['dev', 'serve', 'develop', 'start', 'run', 'build', 'web'] - -const isExcludedScript = function (scriptValue: string): boolean { - return EXCLUDED_SCRIPTS.some((excluded) => scriptValue.includes(excluded)) -} - -const EXCLUDED_SCRIPTS = ['netlify dev'] diff --git a/packages/framework-info/src/frameworks/angular.json b/packages/framework-info/src/frameworks/angular.json deleted file mode 100644 index 9656ef36c3..0000000000 --- a/packages/framework-info/src/frameworks/angular.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "angular", - "name": "Angular", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["@angular/cli"], - "excludedNpmDependencies": [], - "configFiles": ["angular.json"] - }, - "dev": { - "command": "ng serve", - "port": 4200, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "ng build --prod", - "directory": "dist/" - }, - "logo": { - "default": "/logos/angular/default.svg", - "light": "/logos/angular/default.svg", - "dark": "/logos/angular/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/assemble.json b/packages/framework-info/src/frameworks/assemble.json deleted file mode 100644 index 9522150f31..0000000000 --- a/packages/framework-info/src/frameworks/assemble.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "assemble", - "name": "Assemble", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["assemble"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": {}, - "build": { - "command": "grunt build", - "directory": "dist" - }, - "env": {}, - "logo": { - "default": "/logos/assemble/default.svg", - "light": "/logos/assemble/default.svg", - "dark": "/logos/assemble/default.svg" - }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/astro.json b/packages/framework-info/src/frameworks/astro.json deleted file mode 100644 index b692a29d69..0000000000 --- a/packages/framework-info/src/frameworks/astro.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "astro", - "name": "Astro", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["astro"], - "excludedNpmDependencies": [], - "configFiles": ["astro.config.mjs"] - }, - "dev": { - "command": "astro dev", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "astro build", - "directory": "dist" - }, - "staticAssetsDirectory": "public", - "env": {}, - "logo": { - "default": "/logos/astro/light.svg", - "light": "/logos/astro/light.svg", - "dark": "/logos/astro/dark.svg" - }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/blitz.json b/packages/framework-info/src/frameworks/blitz.json deleted file mode 100644 index 49066a0774..0000000000 --- a/packages/framework-info/src/frameworks/blitz.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "blitz", - "name": "Blitz.js", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["blitz"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "blitz dev", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }] - }, - "build": { - "command": "blitz build", - "directory": "out" - }, - "logo": { - "default": "/logos/blitz/light.svg", - "light": "/logos/blitz/light.svg", - "dark": "/logos/blitz/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/brunch.json b/packages/framework-info/src/frameworks/brunch.json deleted file mode 100644 index 819d538573..0000000000 --- a/packages/framework-info/src/frameworks/brunch.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "brunch", - "name": "Brunch", - "category": "build_tool", - "detect": { - "npmDependencies": ["brunch"], - "excludedNpmDependencies": [], - "configFiles": ["brunch-config.js"] - }, - "dev": { - "command": "brunch watch --server", - "port": 3333, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "brunch build", - "directory": "public" - }, - "env": {}, - "logo": { - "default": "/logos/brunch/default.svg", - "light": "/logos/brunch/default.svg", - "dark": "/logos/brunch/default.svg" - }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/cecil.json b/packages/framework-info/src/frameworks/cecil.json deleted file mode 100644 index 7e93a63f80..0000000000 --- a/packages/framework-info/src/frameworks/cecil.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "cecil", - "name": "Cecil", - "category": "static_site_generator", - "detect": { - "npmDependencies": [], - "excludedNpmDependencies": [], - "configFiles": ["config.yml"] - }, - "dev": { - "command": "cecil serve", - "port": 8000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "cecil build", - "directory": "_site" - }, - "env": {}, - "logo": { - "default": "/logos/cecil/default.svg", - "light": "/logos/cecil/default.svg", - "dark": "/logos/cecil/default.svg" - }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/create-react-app.json b/packages/framework-info/src/frameworks/create-react-app.json deleted file mode 100644 index 464e490575..0000000000 --- a/packages/framework-info/src/frameworks/create-react-app.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "create-react-app", - "name": "Create React App", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["react-scripts"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "react-scripts start", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "react-scripts build", - "directory": "build" - }, - "staticAssetsDirectory": "public", - "logo": { - "default": "/logos/create-react-app/default.svg", - "light": "/logos/create-react-app/default.svg", - "dark": "/logos/create-react-app/default.svg" - }, - "env": { "BROWSER": "none", "PORT": "3000" }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/docpad.json b/packages/framework-info/src/frameworks/docpad.json deleted file mode 100644 index abcac85e0b..0000000000 --- a/packages/framework-info/src/frameworks/docpad.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "docpad", - "name": "DocPad", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["docpad"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "docpad run", - "port": 9778, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "docpad generate", - "directory": "out" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/docusaurus-v2.json b/packages/framework-info/src/frameworks/docusaurus-v2.json deleted file mode 100644 index 610a23799c..0000000000 --- a/packages/framework-info/src/frameworks/docusaurus-v2.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "docusaurus-v2", - "name": "Docusaurus 2", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@docusaurus/core"], - "excludedNpmDependencies": [], - "configFiles": ["docusaurus.config.js"] - }, - "dev": { - "command": "docusaurus start", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "docusaurus build", - "directory": "build" - }, - "staticAssetsDirectory": "static", - "logo": { - "default": "/logos/docusaurus/default.svg", - "light": "/logos/docusaurus/default.svg", - "dark": "/logos/docusaurus/default.svg" - }, - "env": { "BROWSER": "none" }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/docusaurus.json b/packages/framework-info/src/frameworks/docusaurus.json deleted file mode 100644 index b75833c578..0000000000 --- a/packages/framework-info/src/frameworks/docusaurus.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "docusaurus", - "name": "Docusaurus", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["docusaurus"], - "excludedNpmDependencies": [], - "configFiles": ["siteConfig.js"] - }, - "dev": { - "command": "docusaurus-start", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "docusaurus-build", - "directory": "build/" - }, - "staticAssetsDirectory": "static", - "logo": { - "default": "/logos/docusaurus/default.svg", - "light": "/logos/docusaurus/default.svg", - "dark": "/logos/docusaurus/default.svg" - }, - "env": { "BROWSER": "none" }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/eleventy.json b/packages/framework-info/src/frameworks/eleventy.json deleted file mode 100644 index 6507977a49..0000000000 --- a/packages/framework-info/src/frameworks/eleventy.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "eleventy", - "name": "Eleventy", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@11ty/eleventy"], - "excludedNpmDependencies": [], - "configFiles": [".eleventy.js", "eleventy.config.js", "eleventy.config.cjs"] - }, - "dev": { - "command": "eleventy --serve", - "port": 8080, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "eleventy", - "directory": "_site" - }, - "logo": { - "default": "/logos/eleventy/default.svg", - "light": "/logos/eleventy/default.svg", - "dark": "/logos/eleventy/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/ember.json b/packages/framework-info/src/frameworks/ember.json deleted file mode 100644 index 76f4001a73..0000000000 --- a/packages/framework-info/src/frameworks/ember.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "ember", - "name": "Ember.js", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["ember-cli"], - "excludedNpmDependencies": [], - "configFiles": ["ember-cli-build.js"] - }, - "dev": { - "command": "ember serve", - "port": 4200, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "ember build", - "directory": "dist" - }, - "logo": { - "default": "/logos/ember/default.svg", - "light": "/logos/ember/light.svg", - "dark": "/logos/ember/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/expo.json b/packages/framework-info/src/frameworks/expo.json deleted file mode 100644 index 71d114ba3c..0000000000 --- a/packages/framework-info/src/frameworks/expo.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "expo", - "name": "Expo", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["expo"], - "excludedNpmDependencies": [], - "configFiles": ["app.json"] - }, - "dev": { - "command": "expo start --web", - "port": 19006, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "expo build:web", - "directory": "web-build" - }, - "logo": { - "default": "/logos/expo/default.svg", - "light": "/logos/expo/light.svg", - "dark": "/logos/expo/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/gatsby.json b/packages/framework-info/src/frameworks/gatsby.json deleted file mode 100644 index cc02b109f5..0000000000 --- a/packages/framework-info/src/frameworks/gatsby.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "id": "gatsby", - "name": "Gatsby", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["gatsby"], - "excludedNpmDependencies": [], - "configFiles": ["gatsby-config.js", "gatsby-config.ts"] - }, - "dev": { - "command": "gatsby develop", - "port": 8000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "gatsby build", - "directory": "public" - }, - "staticAssetsDirectory": "static", - "env": { - "GATSBY_LOGGER": "yurnalist", - "GATSBY_PRECOMPILE_DEVELOP_FUNCTIONS": "true", - "AWS_LAMBDA_JS_RUNTIME": "nodejs14.x", - "NODE_VERSION": "14" - }, - "logo": { - "default": "/logos/gatsby/default.svg", - "light": "/logos/gatsby/light.svg", - "dark": "/logos/gatsby/dark.svg" - }, - "plugins": [ - { - "packageName": "@netlify/plugin-gatsby", - "condition": { "minNodeVersion": "12.13.0" } - } - ] -} diff --git a/packages/framework-info/src/frameworks/gridsome.json b/packages/framework-info/src/frameworks/gridsome.json deleted file mode 100644 index 13567a2582..0000000000 --- a/packages/framework-info/src/frameworks/gridsome.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "gridsome", - "name": "Gridsome", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["gridsome"], - "excludedNpmDependencies": [], - "configFiles": ["gridsome.config.js"] - }, - "dev": { - "command": "gridsome develop", - "port": 8080, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "gridsome build", - "directory": "dist" - }, - "logo": { - "default": "/logos/gridsome/default.svg", - "light": "/logos/gridsome/light.svg", - "dark": "/logos/gridsome/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/grunt.json b/packages/framework-info/src/frameworks/grunt.json deleted file mode 100644 index cdab5030d9..0000000000 --- a/packages/framework-info/src/frameworks/grunt.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "grunt", - "name": "Grunt", - "category": "build_tool", - "detect": { - "npmDependencies": ["grunt"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": {}, - "build": { - "command": "grunt build", - "directory": "dist" - }, - "logo": { - "default": "/logos/grunt/default.svg", - "light": "/logos/grunt/default.svg", - "dark": "/logos/grunt/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/gulp.json b/packages/framework-info/src/frameworks/gulp.json deleted file mode 100644 index ea3466a22c..0000000000 --- a/packages/framework-info/src/frameworks/gulp.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "gulp", - "name": "gulp.js", - "category": "build_tool", - "detect": { - "npmDependencies": ["gulp"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": {}, - "build": { - "command": "gulp build", - "directory": "dist" - }, - "logo": { - "default": "/logos/gulp/default.svg", - "light": "/logos/gulp/default.svg", - "dark": "/logos/gulp/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/harp.json b/packages/framework-info/src/frameworks/harp.json deleted file mode 100644 index ca3d4c7e6b..0000000000 --- a/packages/framework-info/src/frameworks/harp.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "harp", - "name": "Harp", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["harp"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "harp server", - "port": 9000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "harp compile", - "directory": "www" - }, - "logo": { - "default": "/logos/harp/default.svg", - "light": "/logos/harp/light.svg", - "dark": "/logos/harp/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/hexo.json b/packages/framework-info/src/frameworks/hexo.json deleted file mode 100644 index 0b0f6a66bb..0000000000 --- a/packages/framework-info/src/frameworks/hexo.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "hexo", - "name": "Hexo", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["hexo"], - "excludedNpmDependencies": [], - "configFiles": ["_config.yml"] - }, - "dev": { - "command": "hexo server", - "port": 4000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "hexo generate", - "directory": "public" - }, - "logo": { - "default": "/logos/hexo/default.svg", - "light": "/logos/hexo/light.svg", - "dark": "/logos/hexo/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/hugo.json b/packages/framework-info/src/frameworks/hugo.json deleted file mode 100644 index 653d199667..0000000000 --- a/packages/framework-info/src/frameworks/hugo.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "hugo", - "name": "Hugo", - "category": "static_site_generator", - "detect": { - "npmDependencies": [], - "excludedNpmDependencies": [], - "configFiles": ["config.json", "config.toml", "config.yaml", "hugo.toml"] - }, - "dev": { - "command": "hugo server -w", - "port": 1313, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "hugo", - "directory": "public" - }, - "logo": { - "default": "/logos/hugo/default.svg", - "light": "/logos/hugo/default.svg", - "dark": "/logos/hugo/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/hydrogen.json b/packages/framework-info/src/frameworks/hydrogen.json deleted file mode 100644 index 41cc3fda6e..0000000000 --- a/packages/framework-info/src/frameworks/hydrogen.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "hydrogen", - "name": "Hydrogen", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@shopify/hydrogen"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "vite", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }] - }, - "build": { - "command": "npm run build", - "directory": "dist/client" - }, - "logo": { - "default": "/logos/hydrogen/default.svg", - "light": "/logos/hydrogen/default.svg", - "dark": "/logos/hydrogen/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/jekyll.json b/packages/framework-info/src/frameworks/jekyll.json deleted file mode 100644 index 6fc231eef5..0000000000 --- a/packages/framework-info/src/frameworks/jekyll.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "jekyll", - "name": "Jekyll", - "category": "static_site_generator", - "detect": { - "npmDependencies": [], - "excludedNpmDependencies": [], - "configFiles": ["_config.yml", "_config.yaml", "_config.toml"] - }, - "dev": { - "command": "bundle exec jekyll serve -w", - "port": 4000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "bundle exec jekyll build", - "directory": "_site" - }, - "logo": { - "default": "/logos/jekyll/dark.svg", - "light": "/logos/jekyll/light.svg", - "dark": "/logos/jekyll/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/metalsmith.json b/packages/framework-info/src/frameworks/metalsmith.json deleted file mode 100644 index 65dfa9c18e..0000000000 --- a/packages/framework-info/src/frameworks/metalsmith.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "metalsmith", - "name": "Metalsmith", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["metalsmith"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": {}, - "build": { - "command": "metalsmith", - "directory": "build" - }, - "logo": { - "default": "/logos/metalsmith/default.svg", - "light": "/logos/metalsmith/default.svg", - "dark": "/logos/metalsmith/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/middleman.json b/packages/framework-info/src/frameworks/middleman.json deleted file mode 100644 index a8e1796b6e..0000000000 --- a/packages/framework-info/src/frameworks/middleman.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "middleman", - "name": "Middleman", - "category": "static_site_generator", - "detect": { - "npmDependencies": [], - "excludedNpmDependencies": [], - "configFiles": ["config.rb"] - }, - "dev": { - "command": "bundle exec middleman server", - "port": 4567, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "bundle exec middleman build", - "directory": "build" - }, - "logo": { - "default": "/logos/middleman/default.svg", - "light": "/logos/middleman/default.svg", - "dark": "/logos/middleman/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/next-nx.json b/packages/framework-info/src/frameworks/next-nx.json deleted file mode 100644 index 111dcebaf6..0000000000 --- a/packages/framework-info/src/frameworks/next-nx.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "next-nx", - "name": "Next.js with Nx", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@nrwl/next"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "nx serve", - "port": 4200, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "nx build", - "directory": "dist/apps//.next" - }, - "env": {}, - "plugins": [ - { - "packageName": "@netlify/plugin-nextjs", - "condition": { "minNodeVersion": "10.13.0" } - } - ] -} diff --git a/packages/framework-info/src/frameworks/next.json b/packages/framework-info/src/frameworks/next.json deleted file mode 100644 index 7aedc768cc..0000000000 --- a/packages/framework-info/src/frameworks/next.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "id": "next", - "name": "Next.js", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["next"], - "excludedNpmDependencies": ["@nrwl/next"], - "configFiles": [] - }, - "dev": { - "command": "next", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }] - }, - "build": { - "command": "next build", - "directory": ".next" - }, - "logo": { - "default": "/logos/nextjs/light.svg", - "light": "/logos/nextjs/light.svg", - "dark": "/logos/nextjs/dark.svg" - }, - "env": {}, - "plugins": [ - { - "packageName": "@netlify/plugin-nextjs", - "condition": { "minNodeVersion": "10.13.0" } - } - ] -} diff --git a/packages/framework-info/src/frameworks/nuxt.json b/packages/framework-info/src/frameworks/nuxt.json deleted file mode 100644 index efe3504f63..0000000000 --- a/packages/framework-info/src/frameworks/nuxt.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "nuxt", - "name": "Nuxt 2", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["nuxt", "nuxt-edge"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "nuxt", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "nuxt generate", - "directory": "dist" - }, - "logo": { - "default": "/logos/nuxt/default.svg", - "light": "/logos/nuxt/light.svg", - "dark": "/logos/nuxt/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/nuxt3.json b/packages/framework-info/src/frameworks/nuxt3.json deleted file mode 100644 index 0142c6933c..0000000000 --- a/packages/framework-info/src/frameworks/nuxt3.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "nuxt3", - "name": "Nuxt 3", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["nuxt3"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "npm run dev", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "npm run build", - "directory": "dist" - }, - "env": { - "AWS_LAMBDA_JS_RUNTIME": "nodejs14.x", - "NODE_VERSION": "14" - }, - "logo": { - "default": "/logos/nuxt/default.svg", - "light": "/logos/nuxt/light.svg", - "dark": "/logos/nuxt/dark.svg" - }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/parcel.json b/packages/framework-info/src/frameworks/parcel.json deleted file mode 100644 index 26514eb1d1..0000000000 --- a/packages/framework-info/src/frameworks/parcel.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "parcel", - "name": "Parcel", - "category": "build_tool", - "detect": { - "npmDependencies": ["parcel-bundler", "parcel"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "parcel", - "port": 1234, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "parcel build", - "directory": "dist" - }, - "logo": { - "default": "/logos/parcel/default.svg", - "light": "/logos/parcel/default.svg", - "dark": "/logos/parcel/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/phenomic.json b/packages/framework-info/src/frameworks/phenomic.json deleted file mode 100644 index 077a4c88d3..0000000000 --- a/packages/framework-info/src/frameworks/phenomic.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "phenomic", - "name": "Phenomic", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@phenomic/core"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "phenomic start", - "port": 3333, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "phenomic build", - "directory": "public" - }, - "logo": { - "default": "/logos/phenomic/default.svg", - "light": "/logos/phenomic/default.svg", - "dark": "/logos/phenomic/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/quasar-v0.17.json b/packages/framework-info/src/frameworks/quasar-v0.17.json deleted file mode 100644 index 614c600249..0000000000 --- a/packages/framework-info/src/frameworks/quasar-v0.17.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "quasar-v0.17", - "name": "Quasar", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["quasar-cli"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "quasar dev -p 8080", - "port": 8080, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "quasar build", - "directory": ".quasar" - }, - "logo": { - "default": "/logos/quasar/default.svg", - "light": "/logos/quasar/default.svg", - "dark": "/logos/quasar/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/quasar.json b/packages/framework-info/src/frameworks/quasar.json deleted file mode 100644 index 94fce06e16..0000000000 --- a/packages/framework-info/src/frameworks/quasar.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "quasar", - "name": "Quasar", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["@quasar/app"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "quasar dev -p 8081", - "port": 8081, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "quasar build", - "directory": "dist/spa" - }, - "logo": { - "default": "/logos/quasar/default.svg", - "light": "/logos/quasar/default.svg", - "dark": "/logos/quasar/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/qwik.json b/packages/framework-info/src/frameworks/qwik.json deleted file mode 100644 index ac97947551..0000000000 --- a/packages/framework-info/src/frameworks/qwik.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "qwik", - "name": "Qwik", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@builder.io/qwik"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "vite", - "port": 5173, - "pollingStrategies": [{ "name": "TCP" }] - }, - "build": { - "command": "npm run build", - "directory": "dist" - }, - "logo": { - "default": "/logos/qwik/default.svg", - "light": "/logos/qwik/default.svg", - "dark": "/logos/qwik/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/react-static.json b/packages/framework-info/src/frameworks/react-static.json deleted file mode 100644 index bf2de6563b..0000000000 --- a/packages/framework-info/src/frameworks/react-static.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "react-static", - "name": "React Static", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["react-static"], - "excludedNpmDependencies": [], - "configFiles": ["static.config.js"] - }, - "dev": { - "command": "react-static start", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "react-static build", - "directory": "dist" - }, - "logo": { - "default": "/logos/react-static/default.png", - "light": "/logos/react-static/default.png", - "dark": "/logos/react-static/default.png" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/redwoodjs.json b/packages/framework-info/src/frameworks/redwoodjs.json deleted file mode 100644 index 01cde8c813..0000000000 --- a/packages/framework-info/src/frameworks/redwoodjs.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "id": "redwoodjs", - "name": "RedwoodJS", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@redwoodjs/core"], - "excludedNpmDependencies": [], - "configFiles": ["redwood.toml"] - }, - "dev": { - "command": "yarn rw dev", - "port": 8910, - "pollingStrategies": [ - { - "name": "TCP" - } - ] - }, - "build": { - "command": "rw deploy netlify", - "directory": "web/dist" - }, - "staticAssetsDirectory": "public", - "logo": { - "default": "/logos/redwoodjs/default.svg", - "light": "/logos/redwoodjs/default.svg", - "dark": "/logos/redwoodjs/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/remix.json b/packages/framework-info/src/frameworks/remix.json deleted file mode 100644 index 2b6a996447..0000000000 --- a/packages/framework-info/src/frameworks/remix.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "id": "remix", - "name": "Remix", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["remix", "@remix-run/netlify", "@remix-run/netlify-edge"], - "excludedNpmDependencies": [], - "configFiles": ["remix.config.js"] - }, - "dev": { - "command": "remix watch" - }, - "build": { - "command": "remix build", - "directory": "public" - }, - "logo": { - "default": "/logos/remix/default.svg", - "light": "/logos/remix/light.svg", - "dark": "/logos/remix/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/roots.json b/packages/framework-info/src/frameworks/roots.json deleted file mode 100644 index a447078f9a..0000000000 --- a/packages/framework-info/src/frameworks/roots.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "roots", - "name": "Roots", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["roots"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "roots watch", - "port": 1111, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "roots compile", - "directory": "public" - }, - "logo": { - "default": "/logos/roots/default.svg", - "light": "/logos/roots/default.svg", - "dark": "/logos/roots/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/sapper.json b/packages/framework-info/src/frameworks/sapper.json deleted file mode 100644 index 735406f232..0000000000 --- a/packages/framework-info/src/frameworks/sapper.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "sapper", - "name": "Sapper", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["sapper"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "sapper dev", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "sapper export", - "directory": "__sapper__/export" - }, - "logo": { - "default": "/logos/sapper/default.svg", - "light": "/logos/sapper/default.svg", - "dark": "/logos/sapper/default.svg" - }, - "staticAssetsDirectory": "static", - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/solid-js.json b/packages/framework-info/src/frameworks/solid-js.json deleted file mode 100644 index 89aa4786c7..0000000000 --- a/packages/framework-info/src/frameworks/solid-js.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "solid-js", - "name": "SolidJS", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["solid-js"], - "excludedNpmDependencies": ["solid-start"], - "configFiles": [] - }, - "dev": { - "command": "npm run dev", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }] - }, - "build": { - "command": "npm run build", - "directory": "netlify" - }, - "logo": { - "default": "/logos/solid-js/default.svg", - "light": "/logos/solid-js/default.svg", - "dark": "/logos/solid-js/dark.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/solid-start.json b/packages/framework-info/src/frameworks/solid-start.json deleted file mode 100644 index f901aaeceb..0000000000 --- a/packages/framework-info/src/frameworks/solid-start.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "solid-start", - "name": "Solid Start", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["solid-start"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "solid-start dev", - "port": 3000, - "pollingStrategies": [{ "name": "TCP" }] - }, - "build": { - "command": "solid-start build", - "directory": "netlify" - }, - "logo": { - "default": "/logos/solid-start/default.svg", - "light": "/logos/solid-start/default.svg", - "dark": "/logos/solid-start/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/stencil.json b/packages/framework-info/src/frameworks/stencil.json deleted file mode 100644 index 08334e9bb9..0000000000 --- a/packages/framework-info/src/frameworks/stencil.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "stencil", - "name": "Stencil", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["@stencil/core"], - "excludedNpmDependencies": [], - "configFiles": ["stencil.config.ts"] - }, - "dev": { - "command": "stencil build --dev --watch --serve", - "port": 3333, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "stencil build", - "directory": "www" - }, - "logo": { - "default": "/logos/stencil/light.svg", - "light": "/logos/stencil/light.svg", - "dark": "/logos/stencil/dark.svg" - }, - "env": { "BROWSER": "none", "PORT": "3000" }, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/svelte-kit.json b/packages/framework-info/src/frameworks/svelte-kit.json deleted file mode 100644 index 74d3e9ed7e..0000000000 --- a/packages/framework-info/src/frameworks/svelte-kit.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "svelte-kit", - "name": "SvelteKit", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["@sveltejs/kit"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "vite dev", - "port": 5173, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "vite build", - "directory": "build" - }, - "logo": { - "default": "/logos/svelte-kit/default.svg", - "light": "/logos/svelte-kit/default.svg", - "dark": "/logos/svelte-kit/default.svg" - }, - "staticAssetsDirectory": "static", - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/svelte.json b/packages/framework-info/src/frameworks/svelte.json deleted file mode 100644 index 4c802718fb..0000000000 --- a/packages/framework-info/src/frameworks/svelte.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "svelte", - "name": "Svelte", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["svelte"], - "excludedNpmDependencies": ["sapper", "@sveltejs/kit"], - "configFiles": [] - }, - "dev": { - "command": "npm run dev", - "port": 5000, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "npm run build", - "directory": "public" - }, - "logo": { - "default": "/logos/svelte-kit/default.svg", - "light": "/logos/svelte-kit/default.svg", - "dark": "/logos/svelte-kit/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/vite.json b/packages/framework-info/src/frameworks/vite.json deleted file mode 100644 index df3bbfb4d2..0000000000 --- a/packages/framework-info/src/frameworks/vite.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "vite", - "name": "Vite", - "category": "build_tool", - "detect": { - "npmDependencies": ["vite"], - "excludedNpmDependencies": ["@shopify/hydrogen", "@builder.io/qwik", "solid-start", "solid-js", "@sveltejs/kit"], - "configFiles": [] - }, - "dev": { - "command": "vite", - "port": 5173, - "pollingStrategies": [{ "name": "TCP" }] - }, - "build": { - "command": "vite build", - "directory": "dist" - }, - "logo": { - "default": "/logos/vite/default.svg", - "light": "/logos/vite/default.svg", - "dark": "/logos/vite/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/vue.json b/packages/framework-info/src/frameworks/vue.json deleted file mode 100644 index 619af87c38..0000000000 --- a/packages/framework-info/src/frameworks/vue.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "vue", - "name": "Vue.js", - "category": "frontend_framework", - "detect": { - "npmDependencies": ["@vue/cli-service"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "vue-cli-service serve", - "port": 8080, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "vue-cli-service build", - "directory": "dist" - }, - "logo": { - "default": "/logos/vue/default.svg", - "light": "/logos/vue/default.svg", - "dark": "/logos/vue/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/vuepress.json b/packages/framework-info/src/frameworks/vuepress.json deleted file mode 100644 index 62d4026185..0000000000 --- a/packages/framework-info/src/frameworks/vuepress.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "vuepress", - "name": "VuePress", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["vuepress"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "vuepress dev", - "port": 8080, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "vuepress build", - "directory": ".vuepress/dist" - }, - "logo": { - "default": "/logos/vuepress/default.svg", - "light": "/logos/vuepress/default.svg", - "dark": "/logos/vuepress/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/wintersmith.json b/packages/framework-info/src/frameworks/wintersmith.json deleted file mode 100644 index 5f67a6c01c..0000000000 --- a/packages/framework-info/src/frameworks/wintersmith.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "wintersmith", - "name": "Wintersmith", - "category": "static_site_generator", - "detect": { - "npmDependencies": ["wintersmith"], - "excludedNpmDependencies": [], - "configFiles": ["config.json"] - }, - "dev": { - "command": "wintersmith preview", - "port": 8080, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "wintersmith build", - "directory": "build" - }, - "logo": { - "default": "/logos/wintersmith/default.svg", - "light": "/logos/wintersmith/default.svg", - "dark": "/logos/wintersmith/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/wmr.json b/packages/framework-info/src/frameworks/wmr.json deleted file mode 100644 index e18344fc7f..0000000000 --- a/packages/framework-info/src/frameworks/wmr.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "wmr", - "name": "WMR", - "category": "build_tool", - "detect": { - "npmDependencies": ["wmr"], - "excludedNpmDependencies": [], - "configFiles": [] - }, - "dev": { - "command": "wmr", - "port": 8080, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "wmr build", - "directory": "dist" - }, - "logo": { - "default": "/logos/wmr/default.svg", - "light": "/logos/wmr/default.svg", - "dark": "/logos/wmr/default.svg" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/frameworks/zola.json b/packages/framework-info/src/frameworks/zola.json deleted file mode 100644 index d09ee20377..0000000000 --- a/packages/framework-info/src/frameworks/zola.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "zola", - "name": "Zola", - "category": "static_site_generator", - "detect": { - "npmDependencies": [], - "excludedNpmDependencies": [], - "configFiles": ["config.toml"] - }, - "dev": { - "command": "zola serve", - "port": 1111, - "pollingStrategies": [{ "name": "TCP" }, { "name": "HTTP" }] - }, - "build": { - "command": "zola build", - "directory": "public" - }, - "env": {}, - "plugins": [] -} diff --git a/packages/framework-info/src/main.ts b/packages/framework-info/src/main.ts deleted file mode 100644 index 03c122d669..0000000000 --- a/packages/framework-info/src/main.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { join } from 'path' -import { cwd } from 'process' - -import { findUp } from 'find-up' - -import { getContext, getPackageJson } from './context.js' -import { listFrameworks as list, hasFramework as has, getFramework as get } from './core.js' -import type { FrameworkName } from './generated/frameworkNames.js' -import type { Framework } from './types.js' - -interface Options { - projectDir?: string - nodeVersion?: string -} - -/** - * Gets the version of the framework that is installed in a project. - * - * This cannot currently be used in the browser at this time, which is why it's defined - * here rather than in `core.js` as part of the `getFrameworkInfo` method - */ -const getFrameworkVersion = async (projectDir: string, frameworkInfo: Framework): Promise => { - if (!frameworkInfo.package || !frameworkInfo.package.name) { - return frameworkInfo - } - - const npmPackage = frameworkInfo.package.name - - // Get path of package.json for the installed framework. We need to traverse up the directories - // in the event that the project uses something like npm workspaces, and the installed framework package - // has been hoisted to the root directory of the project (which differs from the directory of the project/application being built) - const installedFrameworkPath = await findUp(join('node_modules', npmPackage, 'package.json'), { cwd: projectDir }) - - if (!installedFrameworkPath) { - return frameworkInfo - } - - const { packageJson } = await getPackageJson(installedFrameworkPath) - - return { - ...frameworkInfo, - package: { - name: npmPackage, - version: packageJson?.version || 'unknown', - }, - } -} - -/** - * Return all the frameworks used by a project. - */ -export const listFrameworks = async function (opts: Options = {}): Promise { - const context = await getContext(opts.projectDir, opts.nodeVersion) - const frameworkList = await list(context) - - const projectDir = opts && opts.projectDir ? opts.projectDir : cwd() - - const settledPromises = await Promise.allSettled( - frameworkList.map((framework) => getFrameworkVersion(projectDir, framework)), - ) - const updatedList = settledPromises.map((result) => { - if (result.status === 'fulfilled') { - return result.value - } - - throw result.reason - }) - - return updatedList -} - -/** - * Return whether a project uses a specific framework - */ -export const hasFramework = async function (frameworkId: FrameworkName, options: Options = {}): Promise { - const context = await getContext(options.projectDir, options.nodeVersion) - return has(frameworkId, context) -} - -/** - * Return some information about a framework used by a project. - */ -export const getFramework = async function (frameworkId: FrameworkName, options: Options = {}): Promise { - const context = await getContext(options.projectDir, options.nodeVersion) - - return get(frameworkId, context) -} - -export const supportedRuntimes = { - next: { package: '@netlify/plugin-nextjs', skipFlag: 'NETLIFY_NEXT_PLUGIN_SKIP' }, - gatsby: { package: '@netlify/plugin-gatsby', skipFlag: 'NETLIFY_GATSBY_PLUGIN_SKIP' }, -} diff --git a/packages/framework-info/src/package.ts b/packages/framework-info/src/package.ts deleted file mode 100644 index 3201d9dc48..0000000000 --- a/packages/framework-info/src/package.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { includeKeys } from 'filter-obj' -import isPlainObj from 'is-plain-obj' -import type { PackageJson } from 'read-package-up' - -export const getPackageJsonContent = function (packageJson: PackageJson | undefined) { - if (packageJson === undefined) { - return { npmDependencies: [], scripts: {} } - } - - const npmDependencies = getNpmDependencies(packageJson) - const scripts = getScripts(packageJson) - - return { npmDependencies, scripts } -} - -// Retrieve `package.json` `dependencies` and `devDependencies` names -const getNpmDependencies = function ({ dependencies, devDependencies }: PackageJson) { - return [...getObjectKeys(dependencies), ...getObjectKeys(devDependencies)] -} - -const getObjectKeys = function (value: any): string[] { - if (!isPlainObj(value)) { - return [] - } - - return Object.keys(value) -} - -// Retrieve `package.json` `scripts` -const getScripts = function ({ scripts }: PackageJson): Record { - if (!isPlainObj(scripts)) { - return {} - } - - return includeKeys(scripts, isValidScript) as Record -} - -const isValidScript = function (_key: unknown, value: any): value is string { - return typeof value === 'string' -} diff --git a/packages/framework-info/src/plugins.ts b/packages/framework-info/src/plugins.ts deleted file mode 100644 index e884ed4426..0000000000 --- a/packages/framework-info/src/plugins.ts +++ /dev/null @@ -1,21 +0,0 @@ -import Ajv from 'ajv' -import semver from 'semver' - -import type { FrameworkDefinition } from './types.js' - -const MIN_NODE_VERSION_KEYWORD = { - keyword: 'minNodeVersion', - validate: (minNodeVersion: string, { nodeVersion }: { nodeVersion: string }) => - semver.valid(minNodeVersion) && semver.valid(nodeVersion) && semver.gte(nodeVersion, minNodeVersion), -} - -// https://github.com/ajv-validator/ajv/issues/2132 -// @ts-expect-error Ajv types do not work with moduleResolution:nodenext -const ajv = new Ajv({}) -ajv.addKeyword(MIN_NODE_VERSION_KEYWORD) - -export const getPlugins = function (plugins: FrameworkDefinition['plugins'], { nodeVersion }: { nodeVersion: string }) { - return plugins - .filter(({ condition }) => ajv.validate(condition, { nodeVersion })) - .map(({ packageName }) => packageName) -} diff --git a/packages/framework-info/src/run_script.ts b/packages/framework-info/src/run_script.ts deleted file mode 100644 index fab9d37aae..0000000000 --- a/packages/framework-info/src/run_script.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { dirname } from 'path' - -import type { PathExists } from './context.js' - -// Retrieve the command to run `package.json` `scripts` commands -export const getRunScriptCommand = async function ({ - pathExists, - packageJsonPath, -}: { - pathExists: PathExists - packageJsonPath: string -}) { - const yarnExists = await pathExists(`${dirname(packageJsonPath)}/yarn.lock`) - if (yarnExists) { - return 'yarn' - } - - return 'npm run' -} diff --git a/packages/framework-info/src/types.ts b/packages/framework-info/src/types.ts deleted file mode 100644 index 627b9305a4..0000000000 --- a/packages/framework-info/src/types.ts +++ /dev/null @@ -1,60 +0,0 @@ -import type { FrameworkName } from './generated/frameworkNames.js' - -interface PollingStrategy { - name: 'HTTP' | 'TCP' -} - -interface Plugin { - packageName: string - condition: { - minNodeVersion: string - } -} - -interface BaseFramework { - id: FrameworkName - name: string - category: 'build_tool' | 'frontend_framework' | 'static_site_generator' - logo?: { - default: string - light: string - dark: string - } - staticAssetsDirectory?: string - env: Record -} - -export interface FrameworkDefinition extends BaseFramework { - detect: { - npmDependencies: string[] - excludedNpmDependencies: string[] - configFiles: string[] - } - dev: { - command?: string - port?: number - pollingStrategies?: PollingStrategy[] - } - build: { - command: string - directory: string - } - plugins: Plugin[] -} - -export interface Framework extends BaseFramework { - package: { - name: string - version: string - } - dev: { - commands?: string[] - port?: number - pollingStrategies?: PollingStrategy[] - } - build: { - commands: string[] - directory: string - } - plugins: string[] -} diff --git a/packages/framework-info/tests/__snapshots__/main.test.ts.snap b/packages/framework-info/tests/__snapshots__/main.test.ts.snap deleted file mode 100644 index c3c26e3d0a..0000000000 --- a/packages/framework-info/tests/__snapshots__/main.test.ts.snap +++ /dev/null @@ -1,283 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`getFramework > Should allow getting a specific framework 1`] = ` -{ - "build": { - "commands": [ - "sapper export", - ], - "directory": "__sapper__/export", - }, - "category": "frontend_framework", - "dev": { - "commands": [ - "sapper dev", - ], - "pollingStrategies": [ - { - "name": "TCP", - }, - { - "name": "HTTP", - }, - ], - "port": 3000, - }, - "env": {}, - "id": "sapper", - "logo": { - "dark": "https://framework-info.netlify.app/logos/sapper/default.svg", - "default": "https://framework-info.netlify.app/logos/sapper/default.svg", - "light": "https://framework-info.netlify.app/logos/sapper/default.svg", - }, - "name": "Sapper", - "package": { - "name": "sapper", - "version": "unknown", - }, - "plugins": [], - "staticAssetsDirectory": "static", -} -`; - -exports[`getFrameworks > Should detect frameworks 1`] = ` -[ - { - "build": { - "commands": [ - "sapper export", - ], - "directory": "__sapper__/export", - }, - "category": "frontend_framework", - "dev": { - "commands": [ - "sapper dev", - ], - "pollingStrategies": [ - { - "name": "TCP", - }, - { - "name": "HTTP", - }, - ], - "port": 3000, - }, - "env": {}, - "id": "sapper", - "logo": { - "dark": "https://framework-info.netlify.app/logos/sapper/default.svg", - "default": "https://framework-info.netlify.app/logos/sapper/default.svg", - "light": "https://framework-info.netlify.app/logos/sapper/default.svg", - }, - "name": "Sapper", - "package": { - "name": "sapper", - "version": "3.4.3", - }, - "plugins": [], - "staticAssetsDirectory": "static", - }, -] -`; - -exports[`getFrameworks > Should return the version of a framework that is not detected by npm package 1`] = ` -[ - { - "build": { - "commands": [ - "bundle exec middleman build", - ], - "directory": "build", - }, - "category": "static_site_generator", - "dev": { - "commands": [ - "bundle exec middleman server", - ], - "pollingStrategies": [ - { - "name": "TCP", - }, - { - "name": "HTTP", - }, - ], - "port": 4567, - }, - "env": {}, - "id": "middleman", - "logo": { - "dark": "https://framework-info.netlify.app/logos/middleman/default.svg", - "default": "https://framework-info.netlify.app/logos/middleman/default.svg", - "light": "https://framework-info.netlify.app/logos/middleman/default.svg", - }, - "name": "Middleman", - "package": { - "name": undefined, - "version": "unknown", - }, - "plugins": [], - "staticAssetsDirectory": undefined, - }, -] -`; - -exports[`getFrameworks > Should return the version of each framework when multiple are detected 1`] = ` -[ - { - "build": { - "commands": [ - "vuepress build", - ], - "directory": ".vuepress/dist", - }, - "category": "static_site_generator", - "dev": { - "commands": [ - "vuepress dev", - ], - "pollingStrategies": [ - { - "name": "TCP", - }, - { - "name": "HTTP", - }, - ], - "port": 8080, - }, - "env": {}, - "id": "vuepress", - "logo": { - "dark": "https://framework-info.netlify.app/logos/vuepress/default.svg", - "default": "https://framework-info.netlify.app/logos/vuepress/default.svg", - "light": "https://framework-info.netlify.app/logos/vuepress/default.svg", - }, - "name": "VuePress", - "package": { - "name": "vuepress", - "version": "4.5.6", - }, - "plugins": [], - "staticAssetsDirectory": undefined, - }, - { - "build": { - "commands": [ - "vue-cli-service build", - ], - "directory": "dist", - }, - "category": "frontend_framework", - "dev": { - "commands": [ - "vue-cli-service serve", - ], - "pollingStrategies": [ - { - "name": "TCP", - }, - { - "name": "HTTP", - }, - ], - "port": 8080, - }, - "env": {}, - "id": "vue", - "logo": { - "dark": "https://framework-info.netlify.app/logos/vue/default.svg", - "default": "https://framework-info.netlify.app/logos/vue/default.svg", - "light": "https://framework-info.netlify.app/logos/vue/default.svg", - }, - "name": "Vue.js", - "package": { - "name": "@vue/cli-service", - "version": "1.2.3", - }, - "plugins": [], - "staticAssetsDirectory": undefined, - }, -] -`; - -exports[`getFrameworks > Should return the version of the framework when the installed package is hoisted to the root project directory 1`] = ` -[ - { - "build": { - "commands": [ - "next build", - ], - "directory": ".next", - }, - "category": "static_site_generator", - "dev": { - "commands": [ - "next", - ], - "pollingStrategies": [ - { - "name": "TCP", - }, - ], - "port": 3000, - }, - "env": {}, - "id": "next", - "logo": { - "dark": "https://framework-info.netlify.app/logos/nextjs/dark.svg", - "default": "https://framework-info.netlify.app/logos/nextjs/light.svg", - "light": "https://framework-info.netlify.app/logos/nextjs/light.svg", - }, - "name": "Next.js", - "package": { - "name": "next", - "version": "3.2.1", - }, - "plugins": [ - "@netlify/plugin-nextjs", - ], - "staticAssetsDirectory": undefined, - }, -] -`; - -exports[`getFrameworks > Should work if version cannot be detected 1`] = ` -[ - { - "build": { - "commands": [ - "docpad generate", - ], - "directory": "out", - }, - "category": "static_site_generator", - "dev": { - "commands": [ - "docpad run", - ], - "pollingStrategies": [ - { - "name": "TCP", - }, - { - "name": "HTTP", - }, - ], - "port": 9778, - }, - "env": {}, - "id": "docpad", - "logo": undefined, - "name": "DocPad", - "package": { - "name": "docpad", - "version": "unknown", - }, - "plugins": [], - "staticAssetsDirectory": undefined, - }, -] -`; diff --git a/packages/framework-info/tests/detect.test.ts b/packages/framework-info/tests/detect.test.ts deleted file mode 100644 index efacb9da85..0000000000 --- a/packages/framework-info/tests/detect.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { version as nodeVersion } from 'process' - -import { expect, test } from 'vitest' - -import { getFrameworks } from './helpers/main.js' - -test('Should detect dependencies', async () => { - const frameworks = await getFrameworks('dependencies') - expect(frameworks).toHaveLength(1) -}) - -test('Should detect devDependencies', async () => { - const frameworks = await getFrameworks('dev_dependencies') - expect(frameworks).toHaveLength(1) -}) - -test('Should ignore empty framework.npmDependencies', async () => { - const frameworks = await getFrameworks('empty_dependencies') - expect(frameworks).toHaveLength(1) -}) - -test('Should detect any of several framework.npmDependencies', async () => { - const frameworks = await getFrameworks('several_dependencies') - expect(frameworks).toHaveLength(1) -}) - -test('Should ignore if matching any framework.excludedNpmDependencies', async () => { - const frameworks = await getFrameworks('excluded_dependencies') - expect(frameworks).toHaveLength(1) -}) - -test('Should detect config files', async () => { - const frameworks = await getFrameworks('config_files') - expect(frameworks).toHaveLength(1) -}) - -if (nodeVersion !== 'v8.3.0') { - test('Should detect Next.js plugin for Next.js if when Node version >= 10.13.0', async () => { - const frameworks = await getFrameworks('next-plugin') - expect(frameworks[0].id).toBe('next') - expect(frameworks[0].plugins).toEqual(['@netlify/plugin-nextjs']) - }) -} - -if (nodeVersion === 'v8.3.0') { - test('Should not detect Next.js plugin for Next.js if when Node version < 10.13.0', async () => { - const frameworks = await getFrameworks('next-plugin') - expect(frameworks[0].id).toBe('next') - expect(frameworks[0].plugins).toHaveLength(0) - }) -} diff --git a/packages/framework-info/tests/dev.test.ts b/packages/framework-info/tests/dev.test.ts deleted file mode 100644 index 586590e1e9..0000000000 --- a/packages/framework-info/tests/dev.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { expect, test } from 'vitest' - -import { getFrameworks } from './helpers/main.js' - -test('Should use package scripts as dev command', async () => { - const frameworks = await getFrameworks('use_scripts') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['npm run dev', 'npm run start']) -}) - -test('Should allow package scripts names with colons', async () => { - const frameworks = await getFrameworks('colon_scripts') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['npm run docs:dev']) -}) - -test('Should only use package scripts if it includes framework.dev.command', async () => { - const frameworks = await getFrameworks('dev_command_scripts') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['npm run another']) -}) - -test('Should default dev.commands to framework.dev.command', async () => { - const frameworks = await getFrameworks('empty_scripts') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['sapper dev']) -}) - -test('Should sort scripts in the format *:', async () => { - const frameworks = await getFrameworks('scripts-order/postfix-format') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['npm run site:dev', 'npm run site:start', 'npm run site:build']) -}) - -test('Should sort scripts when dev command is a substring of build command', async () => { - const frameworks = await getFrameworks('scripts-order/command-substring') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['npm run dev', 'npm run build']) -}) - -test('Should prioritize dev over serve', async () => { - const frameworks = await getFrameworks('scripts-order/vite-framework') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['npm run dev', 'npm run serve', 'npm run build']) -}) - -test(`Should exclude 'netlify dev' script`, async () => { - const frameworks = await getFrameworks('excluded_script') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['npm run build']) -}) diff --git a/packages/framework-info/tests/fixtures/colon_scripts/package.json b/packages/framework-info/tests/fixtures/colon_scripts/package.json deleted file mode 100644 index b60b5fe834..0000000000 --- a/packages/framework-info/tests/fixtures/colon_scripts/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "@quasar/app": "*" - }, - "scripts": { - "docs:dev": "test" - } -} diff --git a/packages/framework-info/tests/fixtures/config_files/config.rb b/packages/framework-info/tests/fixtures/config_files/config.rb deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/framework-info/tests/fixtures/config_files/package.json b/packages/framework-info/tests/fixtures/config_files/package.json deleted file mode 100644 index bd8dd310d2..0000000000 --- a/packages/framework-info/tests/fixtures/config_files/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "test", - "version": "1.0.0" -} diff --git a/packages/framework-info/tests/fixtures/dependencies/package.json b/packages/framework-info/tests/fixtures/dependencies/package.json deleted file mode 100644 index e5545f60ce..0000000000 --- a/packages/framework-info/tests/fixtures/dependencies/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "sapper": "*", - "other": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/dev_command_scripts/package.json b/packages/framework-info/tests/fixtures/dev_command_scripts/package.json deleted file mode 100644 index ddb0147729..0000000000 --- a/packages/framework-info/tests/fixtures/dev_command_scripts/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "@quasar/app": "*" - }, - "scripts": { - "another": "test quasar dev -p 8081 test", - "other": "testThree", - "start": "testTwo", - "dev": "test" - } -} diff --git a/packages/framework-info/tests/fixtures/dev_dependencies/package.json b/packages/framework-info/tests/fixtures/dev_dependencies/package.json deleted file mode 100644 index 873334512d..0000000000 --- a/packages/framework-info/tests/fixtures/dev_dependencies/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "devDependencies": { - "sapper": "*", - "other": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/empty/.gitkeep b/packages/framework-info/tests/fixtures/empty/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/framework-info/tests/fixtures/empty/package.json b/packages/framework-info/tests/fixtures/empty/package.json deleted file mode 100644 index bd8dd310d2..0000000000 --- a/packages/framework-info/tests/fixtures/empty/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "test", - "version": "1.0.0" -} diff --git a/packages/framework-info/tests/fixtures/empty_dependencies/config.rb b/packages/framework-info/tests/fixtures/empty_dependencies/config.rb deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/framework-info/tests/fixtures/empty_dependencies/package.json b/packages/framework-info/tests/fixtures/empty_dependencies/package.json deleted file mode 100644 index bd8dd310d2..0000000000 --- a/packages/framework-info/tests/fixtures/empty_dependencies/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "test", - "version": "1.0.0" -} diff --git a/packages/framework-info/tests/fixtures/empty_scripts/package.json b/packages/framework-info/tests/fixtures/empty_scripts/package.json deleted file mode 100644 index 0d408b9b4d..0000000000 --- a/packages/framework-info/tests/fixtures/empty_scripts/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "sapper": "*" - }, - "scripts": {} -} diff --git a/packages/framework-info/tests/fixtures/excluded_dependencies/package.json b/packages/framework-info/tests/fixtures/excluded_dependencies/package.json deleted file mode 100644 index 87f7ffa165..0000000000 --- a/packages/framework-info/tests/fixtures/excluded_dependencies/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "sapper": "*", - "svelte": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/excluded_script/package.json b/packages/framework-info/tests/fixtures/excluded_script/package.json deleted file mode 100644 index 47c40d9c30..0000000000 --- a/packages/framework-info/tests/fixtures/excluded_script/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "create-app", - "version": "1.0.0", - "dependencies": { - "react-scripts": "*" - }, - "scripts": { - "start": "netlify dev", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" - } -} diff --git a/packages/framework-info/tests/fixtures/invalid_dependencies/package.json b/packages/framework-info/tests/fixtures/invalid_dependencies/package.json deleted file mode 100644 index 38588eec73..0000000000 --- a/packages/framework-info/tests/fixtures/invalid_dependencies/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": true, - "devDependencies": { - "sapper": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/invalid_package/package.json b/packages/framework-info/tests/fixtures/invalid_package/package.json deleted file mode 100644 index e1c0a76705..0000000000 --- a/packages/framework-info/tests/fixtures/invalid_package/package.json +++ /dev/null @@ -1 +0,0 @@ -{{ diff --git a/packages/framework-info/tests/fixtures/invalid_scripts/package.json b/packages/framework-info/tests/fixtures/invalid_scripts/package.json deleted file mode 100644 index 2a7c10a00d..0000000000 --- a/packages/framework-info/tests/fixtures/invalid_scripts/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "sapper": "*" - }, - "scripts": { - "build": true - } -} diff --git a/packages/framework-info/tests/fixtures/monorepos/app1/package.json b/packages/framework-info/tests/fixtures/monorepos/app1/package.json deleted file mode 100644 index 0f73fdd38d..0000000000 --- a/packages/framework-info/tests/fixtures/monorepos/app1/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "app1", - "version": "1.0.0", - "dependencies": { - "next":"*" - } -} diff --git a/packages/framework-info/tests/fixtures/monorepos/app2/package.json b/packages/framework-info/tests/fixtures/monorepos/app2/package.json deleted file mode 100644 index 132cc449a5..0000000000 --- a/packages/framework-info/tests/fixtures/monorepos/app2/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "app2", - "version": "2.0.0", - "dependencies": { - "next":"*" - } -} diff --git a/packages/framework-info/tests/fixtures/monorepos/node_modules/next/package.json b/packages/framework-info/tests/fixtures/monorepos/node_modules/next/package.json deleted file mode 100644 index 7706f9e51d..0000000000 --- a/packages/framework-info/tests/fixtures/monorepos/node_modules/next/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "version": "3.2.1" -} diff --git a/packages/framework-info/tests/fixtures/multiple/node_modules/@vue/cli-service/package.json b/packages/framework-info/tests/fixtures/multiple/node_modules/@vue/cli-service/package.json deleted file mode 100644 index a510e8069c..0000000000 --- a/packages/framework-info/tests/fixtures/multiple/node_modules/@vue/cli-service/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "version": "1.2.3" -} diff --git a/packages/framework-info/tests/fixtures/multiple/node_modules/vuepress/package.json b/packages/framework-info/tests/fixtures/multiple/node_modules/vuepress/package.json deleted file mode 100644 index 07484632ce..0000000000 --- a/packages/framework-info/tests/fixtures/multiple/node_modules/vuepress/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "version": "4.5.6" -} diff --git a/packages/framework-info/tests/fixtures/multiple/package.json b/packages/framework-info/tests/fixtures/multiple/package.json deleted file mode 100644 index f8048b9e38..0000000000 --- a/packages/framework-info/tests/fixtures/multiple/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "@vue/cli-service": "*", - "vuepress": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/next-plugin/package.json b/packages/framework-info/tests/fixtures/next-plugin/package.json deleted file mode 100644 index c9e1651805..0000000000 --- a/packages/framework-info/tests/fixtures/next-plugin/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "my-next-app", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "10.0.5", - "react": "17.0.1", - "react-dom": "17.0.1" - } -} diff --git a/packages/framework-info/tests/fixtures/no-version/package.json b/packages/framework-info/tests/fixtures/no-version/package.json deleted file mode 100644 index 19a60488b3..0000000000 --- a/packages/framework-info/tests/fixtures/no-version/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "docpad": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/no_package/config.rb b/packages/framework-info/tests/fixtures/no_package/config.rb deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/framework-info/tests/fixtures/package.json b/packages/framework-info/tests/fixtures/package.json deleted file mode 100644 index 561cc98b9d..0000000000 --- a/packages/framework-info/tests/fixtures/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "description": "This is only here so fixtures never reach outside of this folder when finding package.json" -} diff --git a/packages/framework-info/tests/fixtures/parent_package/package.json b/packages/framework-info/tests/fixtures/parent_package/package.json deleted file mode 100644 index 2f5f808687..0000000000 --- a/packages/framework-info/tests/fixtures/parent_package/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "sapper": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/scripts-order/build-first/package.json b/packages/framework-info/tests/fixtures/scripts-order/build-first/package.json deleted file mode 100644 index fa498fa700..0000000000 --- a/packages/framework-info/tests/fixtures/scripts-order/build-first/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "scripts": { - "build": "rollup -c", - "dev": "rollup -c -w", - "start": "sirv public" - }, - "devDependencies": { - "svelte": "^3.0.0" - } -} diff --git a/packages/framework-info/tests/fixtures/scripts-order/command-substring/package.json b/packages/framework-info/tests/fixtures/scripts-order/command-substring/package.json deleted file mode 100644 index 3a9571bf57..0000000000 --- a/packages/framework-info/tests/fixtures/scripts-order/command-substring/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "parcel-ste", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "dependencies": { - "parcel-bundler": "^1.12.4" - }, - "scripts": { - "build": "parcel build index.html", - "dev": "parcel index.html" - } -} diff --git a/packages/framework-info/tests/fixtures/scripts-order/dev-first/package.json b/packages/framework-info/tests/fixtures/scripts-order/dev-first/package.json deleted file mode 100644 index 86c1eea55a..0000000000 --- a/packages/framework-info/tests/fixtures/scripts-order/dev-first/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "scripts": { - "dev": "rollup -c -w", - "build": "rollup -c", - "start": "sirv public" - }, - "devDependencies": { - "svelte": "^3.0.0" - } -} diff --git a/packages/framework-info/tests/fixtures/scripts-order/postfix-format/package.json b/packages/framework-info/tests/fixtures/scripts-order/postfix-format/package.json deleted file mode 100644 index be7b2a5c95..0000000000 --- a/packages/framework-info/tests/fixtures/scripts-order/postfix-format/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "scripts": { - "site:build": "rollup -c", - "site:start": "sirv public", - "site:dev": "rollup -c -w" - }, - "devDependencies": { - "svelte": "^3.0.0" - } -} diff --git a/packages/framework-info/tests/fixtures/scripts-order/vite-framework/package.json b/packages/framework-info/tests/fixtures/scripts-order/vite-framework/package.json deleted file mode 100644 index 31e880c0bc..0000000000 --- a/packages/framework-info/tests/fixtures/scripts-order/vite-framework/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "vite-project", - "version": "0.0.0", - "scripts": { - "dev": "vite", - "build": "vite build", - "serve": "vite preview" - }, - "devDependencies": { - "vite": "^2.1.5" - } -} diff --git a/packages/framework-info/tests/fixtures/several_dependencies/package.json b/packages/framework-info/tests/fixtures/several_dependencies/package.json deleted file mode 100644 index acee9df381..0000000000 --- a/packages/framework-info/tests/fixtures/several_dependencies/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "parcel": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/simple/node_modules/sapper/package.json b/packages/framework-info/tests/fixtures/simple/node_modules/sapper/package.json deleted file mode 100644 index 4c49bb1f29..0000000000 --- a/packages/framework-info/tests/fixtures/simple/node_modules/sapper/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "version": "3.4.3" -} diff --git a/packages/framework-info/tests/fixtures/simple/package.json b/packages/framework-info/tests/fixtures/simple/package.json deleted file mode 100644 index 2f5f808687..0000000000 --- a/packages/framework-info/tests/fixtures/simple/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "sapper": "*" - } -} diff --git a/packages/framework-info/tests/fixtures/syntax_package/package.json b/packages/framework-info/tests/fixtures/syntax_package/package.json deleted file mode 100644 index 27ba77ddaf..0000000000 --- a/packages/framework-info/tests/fixtures/syntax_package/package.json +++ /dev/null @@ -1 +0,0 @@ -true diff --git a/packages/framework-info/tests/fixtures/use_scripts/package.json b/packages/framework-info/tests/fixtures/use_scripts/package.json deleted file mode 100644 index edd55d0ac2..0000000000 --- a/packages/framework-info/tests/fixtures/use_scripts/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "@quasar/app": "*" - }, - "scripts": { - "other": "testThree", - "start": "testTwo", - "dev": "test" - } -} diff --git a/packages/framework-info/tests/fixtures/yarn_scripts/package.json b/packages/framework-info/tests/fixtures/yarn_scripts/package.json deleted file mode 100644 index edd55d0ac2..0000000000 --- a/packages/framework-info/tests/fixtures/yarn_scripts/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "test", - "version": "1.0.0", - "dependencies": { - "@quasar/app": "*" - }, - "scripts": { - "other": "testThree", - "start": "testTwo", - "dev": "test" - } -} diff --git a/packages/framework-info/tests/fixtures/yarn_scripts/yarn.lock b/packages/framework-info/tests/fixtures/yarn_scripts/yarn.lock deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/framework-info/tests/frameworks.test.ts b/packages/framework-info/tests/frameworks.test.ts deleted file mode 100644 index d2854bd03e..0000000000 --- a/packages/framework-info/tests/frameworks.test.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { fileURLToPath } from 'url' - -import Ajv from 'ajv' -import glob from 'fast-glob' -import { describe, expect, test } from 'vitest' - -import { FRAMEWORK_NAMES } from '../src/generated/frameworkNames.js' -import { FRAMEWORKS } from '../src/generated/frameworks.js' - -const FRAMEWORKS_DIR = new URL('../src/frameworks/', import.meta.url) - -const ajv = new Ajv({}) - -const validate = function (value, schema) { - const isValid = ajv.validate(schema, value) - - if (isValid) { - return true - } - - return ajv.errorsText(ajv.errors, { separator: '\n' }) -} - -const RELATIVE_PATH_SCHEMA = { - type: 'string', - minLength: 1, - allOf: [{ not: { pattern: '^/' } }, { not: { pattern: '^\\.\\.?\\/' } }], -} - -const COMMAND_SCHEMA = { - type: 'string', - minLength: 1, -} - -const PLUGIN_SCHEMA = { - type: 'object', - required: ['packageName', 'condition'], - additionalProperties: false, - properties: { - packageName: { type: 'string', minLength: 1 }, - condition: { type: 'object' }, - }, -} - -const POLLING_STRATEGY_SCHEMA = { - type: 'object', - required: ['name'], - additionalProperties: false, - properties: { - name: { enum: ['TCP', 'HTTP'] }, - }, -} - -const MAX_PORT = 65_535 -const FRAMEWORK_JSON_SCHEMA = { - type: 'object', - required: ['id', 'name', 'category', 'detect', 'dev', 'build', 'env'], - additionalProperties: false, - properties: { - id: { type: 'string', pattern: '^[a-z\\d_]+', minLength: 1 }, - name: { type: 'string', pattern: '^\\w+', minLength: 1 }, - category: { - type: 'string', - enum: ['static_site_generator', 'frontend_framework', 'build_tool'], - }, - detect: { - type: 'object', - required: ['npmDependencies', 'excludedNpmDependencies', 'configFiles'], - additionalProperties: false, - properties: { - npmDependencies: { - type: 'array', - items: { type: 'string', minLength: 1 }, - }, - excludedNpmDependencies: { - type: 'array', - items: { type: 'string', minLength: 1 }, - }, - configFiles: { - type: 'array', - items: RELATIVE_PATH_SCHEMA, - }, - }, - }, - dev: { - oneOf: [ - { - type: 'object', - required: ['command'], - additionalProperties: false, - properties: { - command: COMMAND_SCHEMA, - port: { type: 'integer', minimum: 1, maximum: MAX_PORT }, - pollingStrategies: { - type: 'array', - items: POLLING_STRATEGY_SCHEMA, - minItems: 1, - uniqueItems: true, - }, - }, - }, - { type: 'object', additionalProperties: false, properties: {} }, - ], - }, - build: { - type: 'object', - required: ['command', 'directory'], - additionalProperties: false, - properties: { - command: COMMAND_SCHEMA, - directory: RELATIVE_PATH_SCHEMA, - }, - }, - staticAssetsDirectory: { - type: 'string', - }, - env: { - type: 'object', - additionalProperties: { type: 'string' }, - }, - logo: { - type: 'object', - additionalProperties: false, - properties: { - default: { type: 'string' }, - light: { type: 'string' }, - dark: { type: 'string' }, - }, - }, - plugins: { - type: 'array', - items: PLUGIN_SCHEMA, - }, - }, -} - -test.each(FRAMEWORKS)('Framework $id should have a valid shape', (framework) => { - expect(validate(framework, FRAMEWORK_JSON_SCHEMA)).toBe(true) -}) - -describe('JSON files', async () => { - const jsonFiles = await glob('*.json', { cwd: fileURLToPath(FRAMEWORKS_DIR) }) - - test('each json file should be required in main.ts FRAMEWORKS', async () => { - expect(FRAMEWORKS).toHaveLength(jsonFiles.length) - FRAMEWORKS.forEach(({ id }) => { - expect(jsonFiles).toContain(`${id}.json`) - }) - }) - - test('each json file should be listed in main.ts FRAMEWORK_NAMES', async () => { - expect(FRAMEWORK_NAMES).toHaveLength(jsonFiles.length) - FRAMEWORK_NAMES.forEach((id) => { - expect(jsonFiles).toContain(`${id}.json`) - }) - }) -}) diff --git a/packages/framework-info/tests/helpers/main.ts b/packages/framework-info/tests/helpers/main.ts deleted file mode 100644 index 52a5d7323c..0000000000 --- a/packages/framework-info/tests/helpers/main.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { fileURLToPath } from 'url' - -import { listFrameworks, getFramework as getFrameworkLib, hasFramework as hasFrameworkLib } from '../../src/main.js' - -export const FIXTURES_DIR = fileURLToPath(new URL('../fixtures', import.meta.url)) - -const getOptions = (fixtureName) => ({ projectDir: `${FIXTURES_DIR}/${fixtureName}` }) - -// Fire the main function with a specific fixture -export const getFrameworks = function (fixtureName) { - return listFrameworks(getOptions(fixtureName)) -} - -export const getFramework = function (fixtureName, frameworkId) { - return getFrameworkLib(frameworkId, getOptions(fixtureName)) -} - -export const hasFramework = function (fixtureName, frameworkId) { - return hasFrameworkLib(frameworkId, getOptions(fixtureName)) -} diff --git a/packages/framework-info/tests/main.test.ts b/packages/framework-info/tests/main.test.ts deleted file mode 100644 index dc68b054d0..0000000000 --- a/packages/framework-info/tests/main.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { describe, expect, test } from 'vitest' - -import { getFrameworks, getFramework, hasFramework } from './helpers/main.js' - -describe('getFrameworks', () => { - test('Should detect frameworks', async () => { - const frameworks = await getFrameworks('simple') - expect(frameworks).toMatchSnapshot() - }) - - test('Should return an empty array when no framework is detected', async () => { - const frameworks = await getFrameworks('empty') - expect(frameworks).toHaveLength(0) - }) - - test('Should return several items when multiple frameworks are detected', async () => { - const frameworks = await getFrameworks('multiple') - expect(frameworks).toHaveLength(2) - }) - - test('Should return the version of each framework when multiple are detected', async () => { - const frameworks = await getFrameworks('multiple') - expect(frameworks).toMatchSnapshot() - }) - - test('Should return the version of a framework that is not detected by npm package', async () => { - const frameworks = await getFrameworks('no_package') - expect(frameworks).toMatchSnapshot() - }) - - test('Should return the version of the framework when the installed package is hoisted to the root project directory', async () => { - const frameworks = await getFrameworks('monorepos/app1') - expect(frameworks).toMatchSnapshot() - }) - - test('Should work if version cannot be detected', async () => { - const frameworks = await getFrameworks('no-version') - expect(frameworks).toMatchSnapshot() - }) -}) - -describe('getFramework', () => { - test('Should allow getting a specific framework', async () => { - const framework = await getFramework('simple', 'sapper') - expect(framework).toMatchSnapshot() - }) - - test('Should throw when passing an invalid framework', async () => { - await expect(getFramework('simple', 'doesNotExist')).rejects.toThrowError() - }) -}) - -describe('hasFramework', () => { - test('Should allow testing a specific framework', async () => { - expect(await hasFramework('simple', 'sapper')).toBe(true) - expect(await hasFramework('simple', 'nuxt')).toBe(false) - }) - - test('Should throw when testing an invalid framework', async () => { - await expect(hasFramework('simple', 'doesNotExist')).rejects.toThrowError() - }) - - test('Should sort framework ids in invalid framework error message', async () => { - try { - await hasFramework('simple', 'doesNotExist') - expect.fail('should throw') - } catch (error) { - const [, frameworksFromMessage] = error.message.match(/It should be one of: (.+)/) - const frameworksArray = frameworksFromMessage.split(', ') - - expect(frameworksArray).toEqual([...frameworksArray].sort()) - } - }) -}) diff --git a/packages/framework-info/tests/options.test.ts b/packages/framework-info/tests/options.test.ts deleted file mode 100644 index 6dbe3215f7..0000000000 --- a/packages/framework-info/tests/options.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import process from 'process' - -import { expect, test, vi } from 'vitest' - -import { listFrameworks } from '../src/main.js' - -import { FIXTURES_DIR } from './helpers/main.js' - -test('projectDir option defaults to process.cwd()', async () => { - const spyInstance = vi.spyOn(process, 'cwd').mockReturnValue(`${FIXTURES_DIR}/simple`) - const frameworks = await listFrameworks({}) - expect(frameworks).toHaveLength(1) - spyInstance.mockRestore() -}) - -test('Can trigger with no options', async () => { - const spyInstance = vi.spyOn(process, 'cwd').mockReturnValue(`${FIXTURES_DIR}/simple`) - const frameworks = await listFrameworks() - expect(frameworks).toHaveLength(1) - spyInstance.mockRestore() -}) diff --git a/packages/framework-info/tests/package.test.ts b/packages/framework-info/tests/package.test.ts deleted file mode 100644 index 5bbcf4244f..0000000000 --- a/packages/framework-info/tests/package.test.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { rm } from 'fs/promises' - -import cpy from 'cpy' -import { dir as getTmpDir } from 'tmp-promise' -import { expect, test } from 'vitest' - -import { listFrameworks } from '../src/main.js' - -import { getFrameworks, FIXTURES_DIR } from './helpers/main.js' - -test('Should detect package.json in parent directories', async () => { - const frameworks = await getFrameworks('parent_package/parent') - expect(frameworks).toHaveLength(1) -}) - -test('Should work without a package.json', async () => { - const { path: tmpDir } = await getTmpDir() - try { - await cpy(`${FIXTURES_DIR}/no_package/**`, tmpDir) - const frameworks = await listFrameworks({ projectDir: tmpDir }) - expect(frameworks).toHaveLength(1) - } finally { - rm(tmpDir, { force: true, recursive: true, maxRetries: 10 }) - } -}) - -test('Should ignore invalid package.json', async () => { - const frameworks = await getFrameworks('invalid_package') - expect(frameworks).toHaveLength(0) -}) - -test('Should ignore package.json with a wrong syntax', async () => { - const frameworks = await getFrameworks('syntax_package') - expect(frameworks).toHaveLength(0) -}) - -test('Should ignore invalid package.json dependencies', async () => { - const frameworks = await getFrameworks('invalid_dependencies') - expect(frameworks).toHaveLength(1) -}) - -test('Should ignore invalid package.json scripts', async () => { - const frameworks = await getFrameworks('invalid_scripts') - expect(frameworks).toHaveLength(1) -}) - -test('Should ignore empty package.json scripts', async () => { - const frameworks = await getFrameworks('empty_scripts') - expect(frameworks).toHaveLength(1) -}) diff --git a/packages/framework-info/tests/run_script.test.ts b/packages/framework-info/tests/run_script.test.ts deleted file mode 100644 index 0c2f7e5733..0000000000 --- a/packages/framework-info/tests/run_script.test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { expect, test } from 'vitest' - -import { getFrameworks } from './helpers/main.js' - -test('Should use Yarn when there is a yarn.lock', async () => { - const frameworks = await getFrameworks('yarn_scripts') - expect(frameworks).toHaveLength(1) - expect(frameworks[0].dev.commands).toEqual(['yarn dev', 'yarn start']) -}) diff --git a/packages/framework-info/tsconfig.json b/packages/framework-info/tsconfig.json deleted file mode 100644 index b6f7555f2e..0000000000 --- a/packages/framework-info/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "outDir": "lib" /* Specify an output folder for all emitted files. */, - "strict": true, - "noImplicitAny": true, - "strictFunctionTypes": true, - "strictPropertyInitialization": true, - "useUnknownInCatchVariables": true, - "noImplicitReturns": true - }, - "include": ["src/**/*.ts"], - "exclude": ["tests/**"] -} diff --git a/packages/framework-info/vite.config.js b/packages/framework-info/vite.config.js deleted file mode 100644 index b40ac8d7cb..0000000000 --- a/packages/framework-info/vite.config.js +++ /dev/null @@ -1,32 +0,0 @@ -import { fileURLToPath } from 'node:url' - -import nodePolyfills from 'rollup-plugin-node-polyfills' - -const CORE_FILE = fileURLToPath(new URL('src/core.ts', import.meta.url)) - -/** @type {import('vite').UserConfig} */ -export default { - test: { - environment: 'node', - }, - resolve: { - alias: { - path: 'rollup-plugin-node-polyfills/polyfills/path', - }, - }, - // Need to specify the directory because if this is invoked from the repository root, - // the 'dist' folder is created outside of the 'framework-info' directory - root: '.', - publicDir: 'assets', - build: { - lib: { - entry: CORE_FILE, - name: 'frameworkInfo', - fileName: 'index', - }, - sourcemap: true, - rollupOptions: { - plugins: [nodePolyfills()], - }, - }, -} diff --git a/release-please-config.json b/release-please-config.json index 99733332cb..c18f2c40fc 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -6,7 +6,6 @@ "packages/cache-utils": {}, "packages/config": {}, "packages/edge-bundler": {}, - "packages/framework-info": {}, "packages/functions-utils": {}, "packages/git-utils": {}, "packages/headers-parser": {}, From 4e9236704b794dd61dd17db55d2fb6b81f9b45b0 Mon Sep 17 00:00:00 2001 From: Mateusz Bocian Date: Tue, 10 Jun 2025 07:21:59 -0400 Subject: [PATCH 3/3] ci: fix postbuild command --- package-lock.json | 222 ++++++++++++++++++++++++++++++++++++ packages/build/package.json | 1 + 2 files changed, 223 insertions(+) diff --git a/package-lock.json b/package-lock.json index 6d639d53c2..bb0b0829e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9123,6 +9123,53 @@ "node": ">=6" } }, + "node_modules/cp-file": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz", + "integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.10", + "nested-error-stacks": "^2.1.1", + "p-event": "^5.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cp-file/node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cp-file/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cpy": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/cpy/-/cpy-11.1.0.tgz", @@ -9143,6 +9190,173 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cpy-cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-5.0.0.tgz", + "integrity": "sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cpy": "^10.1.0", + "meow": "^12.0.1" + }, + "bin": { + "cpy": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/cpy": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-10.1.0.tgz", + "integrity": "sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^3.0.0", + "cp-file": "^10.0.0", + "globby": "^13.1.4", + "junk": "^4.0.1", + "micromatch": "^4.0.5", + "nested-error-stacks": "^2.1.1", + "p-filter": "^3.0.0", + "p-map": "^6.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/p-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", + "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^5.1.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/p-filter/node_modules/p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/p-map": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz", + "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", @@ -17175,6 +17389,13 @@ "dev": true, "license": "MIT" }, + "node_modules/nested-error-stacks": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", + "dev": true, + "license": "MIT" + }, "node_modules/nock": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", @@ -25118,6 +25339,7 @@ "ava": "^5.0.0", "c8": "^10.0.0", "cpy": "^11.0.0", + "cpy-cli": "^5.0.0", "get-node": "^14.2.1", "get-port": "^7.0.0", "has-ansi": "^6.0.0", diff --git a/packages/build/package.json b/packages/build/package.json index 2931f79e3f..bc2af4c52a 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -132,6 +132,7 @@ "ava": "^5.0.0", "c8": "^10.0.0", "cpy": "^11.0.0", + "cpy-cli": "^5.0.0", "get-node": "^14.2.1", "get-port": "^7.0.0", "has-ansi": "^6.0.0",